From d595f1639ab87392e63431f090c42718a1fe9038 Mon Sep 17 00:00:00 2001 From: Alex Zenla Date: Mon, 12 Feb 2024 17:40:11 +0000 Subject: [PATCH] network: move out channel size constants --- network/src/backend.rs | 4 +++- network/src/nat.rs | 4 +++- network/src/proxynat/tcp.rs | 4 +++- network/src/vbridge.rs | 6 +++--- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/network/src/backend.rs b/network/src/backend.rs index 8d32813..a10fb89 100644 --- a/network/src/backend.rs +++ b/network/src/backend.rs @@ -19,6 +19,8 @@ use tokio::io::{AsyncReadExt, AsyncWriteExt}; use tokio::select; use tokio::sync::mpsc::{channel, Receiver}; +const TX_CHANNEL_BUFFER_LEN: usize = 300; + #[derive(Clone)] pub struct NetworkBackend { metadata: NetworkMetadata, @@ -121,7 +123,7 @@ impl NetworkBackend { ]; let mut kdev = AsyncRawSocket::bound_to_interface(&interface, RawSocketProtocol::Ethernet)?; let mtu = kdev.mtu_of_interface(&interface)?; - let (tx_sender, tx_receiver) = channel::(100); + let (tx_sender, tx_receiver) = channel::(TX_CHANNEL_BUFFER_LEN); let mut udev = ChannelDevice::new(mtu, Medium::Ethernet, tx_sender.clone()); let mac = self.metadata.gateway.mac; let nat = NatRouter::new(mtu, proxy, mac, addresses.clone(), tx_sender.clone()); diff --git a/network/src/nat.rs b/network/src/nat.rs index af0907a..cb3e485 100644 --- a/network/src/nat.rs +++ b/network/src/nat.rs @@ -25,6 +25,8 @@ use tokio::sync::mpsc::channel; use tokio::sync::mpsc::Receiver; use tokio::sync::mpsc::Sender; +const RECLAIM_CHANNEL_QUEUE_LEN: usize = 10; + #[derive(Debug, Copy, Clone, Eq, PartialEq, PartialOrd, Ord, Hash)] pub enum NatKeyProtocol { Tcp, @@ -118,7 +120,7 @@ impl NatRouter { local_cidrs: Vec, tx_sender: Sender, ) -> Self { - let (reclaim_sender, reclaim_receiver) = channel(4); + let (reclaim_sender, reclaim_receiver) = channel(RECLAIM_CHANNEL_QUEUE_LEN); Self { mtu, local_mac, diff --git a/network/src/proxynat/tcp.rs b/network/src/proxynat/tcp.rs index 659aacd..4fa487a 100644 --- a/network/src/proxynat/tcp.rs +++ b/network/src/proxynat/tcp.rs @@ -32,6 +32,8 @@ const TCP_BUFFER_SIZE: usize = 65535; const TCP_ACCEPT_TIMEOUT_SECS: u64 = 120; const TCP_DANGLE_TIMEOUT_SECS: u64 = 10; +const TCP_IP_BUFFER_LEN: usize = 300; + pub struct ProxyTcpHandler { rx_sender: Sender, } @@ -108,7 +110,7 @@ impl ProxyTcpHandler { mut external_socket: TcpStream, mut rx_receiver: Receiver, ) -> Result<()> { - let (ip_sender, mut ip_receiver) = channel::(300); + let (ip_sender, mut ip_receiver) = channel::(TCP_IP_BUFFER_LEN); let mut external_buffer = vec![0u8; TCP_BUFFER_SIZE]; let mut device = ChannelDevice::new( diff --git a/network/src/vbridge.rs b/network/src/vbridge.rs index 0bc6d54..19a0d01 100644 --- a/network/src/vbridge.rs +++ b/network/src/vbridge.rs @@ -21,9 +21,9 @@ use tokio::{ const BROADCAST_MAC_ADDR: &[u8; 6] = &[0xff; 6]; -const BRIDGE_TX_QUEUE_LEN: usize = 4; -const BRIDGE_RX_QUEUE_LEN: usize = 4; -const BROADCAST_RX_QUEUE_LEN: usize = 4; +const BRIDGE_TX_QUEUE_LEN: usize = 50; +const BRIDGE_RX_QUEUE_LEN: usize = 50; +const BROADCAST_RX_QUEUE_LEN: usize = 50; #[derive(Debug)] struct BridgeMember {