mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-03 05:10:55 +00:00
network: move out channel size constants
This commit is contained in:
parent
60c9aefdda
commit
d595f1639a
@ -19,6 +19,8 @@ use tokio::io::{AsyncReadExt, AsyncWriteExt};
|
|||||||
use tokio::select;
|
use tokio::select;
|
||||||
use tokio::sync::mpsc::{channel, Receiver};
|
use tokio::sync::mpsc::{channel, Receiver};
|
||||||
|
|
||||||
|
const TX_CHANNEL_BUFFER_LEN: usize = 300;
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct NetworkBackend {
|
pub struct NetworkBackend {
|
||||||
metadata: NetworkMetadata,
|
metadata: NetworkMetadata,
|
||||||
@ -121,7 +123,7 @@ impl NetworkBackend {
|
|||||||
];
|
];
|
||||||
let mut kdev = AsyncRawSocket::bound_to_interface(&interface, RawSocketProtocol::Ethernet)?;
|
let mut kdev = AsyncRawSocket::bound_to_interface(&interface, RawSocketProtocol::Ethernet)?;
|
||||||
let mtu = kdev.mtu_of_interface(&interface)?;
|
let mtu = kdev.mtu_of_interface(&interface)?;
|
||||||
let (tx_sender, tx_receiver) = channel::<BytesMut>(100);
|
let (tx_sender, tx_receiver) = channel::<BytesMut>(TX_CHANNEL_BUFFER_LEN);
|
||||||
let mut udev = ChannelDevice::new(mtu, Medium::Ethernet, tx_sender.clone());
|
let mut udev = ChannelDevice::new(mtu, Medium::Ethernet, tx_sender.clone());
|
||||||
let mac = self.metadata.gateway.mac;
|
let mac = self.metadata.gateway.mac;
|
||||||
let nat = NatRouter::new(mtu, proxy, mac, addresses.clone(), tx_sender.clone());
|
let nat = NatRouter::new(mtu, proxy, mac, addresses.clone(), tx_sender.clone());
|
||||||
|
@ -25,6 +25,8 @@ use tokio::sync::mpsc::channel;
|
|||||||
use tokio::sync::mpsc::Receiver;
|
use tokio::sync::mpsc::Receiver;
|
||||||
use tokio::sync::mpsc::Sender;
|
use tokio::sync::mpsc::Sender;
|
||||||
|
|
||||||
|
const RECLAIM_CHANNEL_QUEUE_LEN: usize = 10;
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, Eq, PartialEq, PartialOrd, Ord, Hash)]
|
#[derive(Debug, Copy, Clone, Eq, PartialEq, PartialOrd, Ord, Hash)]
|
||||||
pub enum NatKeyProtocol {
|
pub enum NatKeyProtocol {
|
||||||
Tcp,
|
Tcp,
|
||||||
@ -118,7 +120,7 @@ impl NatRouter {
|
|||||||
local_cidrs: Vec<IpCidr>,
|
local_cidrs: Vec<IpCidr>,
|
||||||
tx_sender: Sender<BytesMut>,
|
tx_sender: Sender<BytesMut>,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let (reclaim_sender, reclaim_receiver) = channel(4);
|
let (reclaim_sender, reclaim_receiver) = channel(RECLAIM_CHANNEL_QUEUE_LEN);
|
||||||
Self {
|
Self {
|
||||||
mtu,
|
mtu,
|
||||||
local_mac,
|
local_mac,
|
||||||
|
@ -32,6 +32,8 @@ const TCP_BUFFER_SIZE: usize = 65535;
|
|||||||
const TCP_ACCEPT_TIMEOUT_SECS: u64 = 120;
|
const TCP_ACCEPT_TIMEOUT_SECS: u64 = 120;
|
||||||
const TCP_DANGLE_TIMEOUT_SECS: u64 = 10;
|
const TCP_DANGLE_TIMEOUT_SECS: u64 = 10;
|
||||||
|
|
||||||
|
const TCP_IP_BUFFER_LEN: usize = 300;
|
||||||
|
|
||||||
pub struct ProxyTcpHandler {
|
pub struct ProxyTcpHandler {
|
||||||
rx_sender: Sender<BytesMut>,
|
rx_sender: Sender<BytesMut>,
|
||||||
}
|
}
|
||||||
@ -108,7 +110,7 @@ impl ProxyTcpHandler {
|
|||||||
mut external_socket: TcpStream,
|
mut external_socket: TcpStream,
|
||||||
mut rx_receiver: Receiver<BytesMut>,
|
mut rx_receiver: Receiver<BytesMut>,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let (ip_sender, mut ip_receiver) = channel::<BytesMut>(300);
|
let (ip_sender, mut ip_receiver) = channel::<BytesMut>(TCP_IP_BUFFER_LEN);
|
||||||
let mut external_buffer = vec![0u8; TCP_BUFFER_SIZE];
|
let mut external_buffer = vec![0u8; TCP_BUFFER_SIZE];
|
||||||
|
|
||||||
let mut device = ChannelDevice::new(
|
let mut device = ChannelDevice::new(
|
||||||
|
@ -21,9 +21,9 @@ use tokio::{
|
|||||||
|
|
||||||
const BROADCAST_MAC_ADDR: &[u8; 6] = &[0xff; 6];
|
const BROADCAST_MAC_ADDR: &[u8; 6] = &[0xff; 6];
|
||||||
|
|
||||||
const BRIDGE_TX_QUEUE_LEN: usize = 4;
|
const BRIDGE_TX_QUEUE_LEN: usize = 50;
|
||||||
const BRIDGE_RX_QUEUE_LEN: usize = 4;
|
const BRIDGE_RX_QUEUE_LEN: usize = 50;
|
||||||
const BROADCAST_RX_QUEUE_LEN: usize = 4;
|
const BROADCAST_RX_QUEUE_LEN: usize = 50;
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
struct BridgeMember {
|
struct BridgeMember {
|
||||||
|
Loading…
Reference in New Issue
Block a user