pub struct UdpAssoc {
pub socket: Arc<UdpSocket>,
pub peer: SocketAddr,
pub first_packet: Bytes,
pub quic: Option<QuicAssocId>,
}Fields§
§socket: Arc<UdpSocket>Physical listener socket — vane-owned, shared via Arc with the
listener’s recv loop. The fetch sends responses back to the peer
through this socket; the listener demuxes inbound datagrams to
the per-session forwarder via the dispatch table. See
spec/architecture/06-l4.md § UDP socket multiplexing.
peer: SocketAddr§first_packet: BytesDatagram that triggered the cold-path FlowGraph entry. The
L4Forward fetch sends this verbatim as the upstream session’s
first packet so no inbound bytes are lost between dispatch
table miss and forwarder registration.
quic: Option<QuicAssocId>None on the cold-path entry; populated only when an existing
QUIC session takes over (post-MVP — see
spec/architecture/06-l4.md § udp_dispatch).
Auto Trait Implementations§
impl !Freeze for UdpAssoc
impl RefUnwindSafe for UdpAssoc
impl Send for UdpAssoc
impl Sync for UdpAssoc
impl Unpin for UdpAssoc
impl UnsafeUnpin for UdpAssoc
impl UnwindSafe for UdpAssoc
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