mirror of
				https://github.com/edera-dev/krata.git
				synced 2025-11-03 07:19:37 +00:00 
			
		
		
		
	network: move out channel size constants
This commit is contained in:
		@ -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 {
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user