pub enum IpStackStream {
Tcp(IpStackTcpStream),
Udp(IpStackUdpStream),
UnknownTransport(IpStackUnknownTransport),
UnknownNetwork(Vec<u8>),
}Expand description
A network stream accepted by the IP stack.
This enum represents different types of network streams that can be accepted from the TUN device. Each variant provides appropriate abstractions for handling specific protocol types.
§Variants
Tcp- A TCP connection stream implementingAsyncRead+AsyncWriteUdp- A UDP stream implementingAsyncRead+AsyncWriteUnknownTransport- A stream for unknown transport layer protocols (e.g., ICMP, IGMP)UnknownNetwork- Raw network layer packets that couldn’t be parsed
Variants§
Tcp(IpStackTcpStream)
A TCP connection stream.
Udp(IpStackUdpStream)
A UDP stream.
UnknownTransport(IpStackUnknownTransport)
A stream for unknown transport protocols.
UnknownNetwork(Vec<u8>)
Raw network packets that couldn’t be parsed.
Implementations§
Source§impl IpStackStream
impl IpStackStream
Sourcepub fn local_addr(&self) -> SocketAddr
pub fn local_addr(&self) -> SocketAddr
Returns the local socket address for this stream.
For TCP and UDP streams, this returns the source address of the connection. For unknown transport and network streams, this returns an unspecified address.
§Examples
let local_addr = stream.local_addr();
println!("Local address: {}", local_addr);Sourcepub fn peer_addr(&self) -> SocketAddr
pub fn peer_addr(&self) -> SocketAddr
Returns the remote socket address for this stream.
For TCP and UDP streams, this returns the destination address of the connection. For unknown transport and network streams, this returns an unspecified address.
§Examples
let peer_addr = stream.peer_addr();
println!("Peer address: {}", peer_addr);