pub enum FrameAction {
TcpSyn {
src: SocketAddr,
dst: SocketAddr,
},
UdpRelay {
src: SocketAddr,
dst: SocketAddr,
},
Dns,
Passthrough,
}Expand description
Result of classifying a guest ethernet frame before smoltcp processes it.
Pre-inspection allows the poll loop to:
- Create TCP sockets before smoltcp sees a SYN (preventing auto-RST).
- Handle non-DNS UDP outside smoltcp (smoltcp lacks wildcard port binding).
- Route DNS queries to the interception handler.
Variants§
TcpSyn
TCP SYN to a new destination — create a smoltcp socket before letting smoltcp process the frame.
UdpRelay
Non-DNS UDP datagram — handle entirely outside smoltcp via the UDP relay.
Dns
DNS query (UDP to port 53) — let smoltcp’s bound UDP socket handle it.
Passthrough
Everything else (ARP, NDP, ICMP, TCP data/ACK/FIN, etc.) — let smoltcp process normally.
Auto Trait Implementations§
impl Freeze for FrameAction
impl RefUnwindSafe for FrameAction
impl Send for FrameAction
impl Sync for FrameAction
impl Unpin for FrameAction
impl UnsafeUnpin for FrameAction
impl UnwindSafe for FrameAction
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more