pub struct InboundResult {
pub to_local: HashMap<OverlayTransportId, Vec<PacketMut>>,
pub to_peers: HashMap<(UnderlayTransportId, PeerId), Vec<PacketMut>>,
pub learned_disco_keys: Vec<(PeerId, DiscoKeyAdvertisement)>,
}Expand description
The result of processing inbound packets.
Fields§
§to_local: HashMap<OverlayTransportId, Vec<PacketMut>>Decrypted packets to be delivered to overlay transports.
to_peers: HashMap<(UnderlayTransportId, PeerId), Vec<PacketMut>>Encrypted packets to be sent to wireguard peers by the underlay.
learned_disco_keys: Vec<(PeerId, DiscoKeyAdvertisement)>Disco keys peers advertised over TSMP in this batch, each paired with the WireGuard peer
whose session carried it (Go tstun.Wrapper publishing events.PeerDiscoKeyUpdate, which
wgengine turns into a magicsock.Conn.HandleDiscoKeyAdvertisement call).
The advertisement packets themselves are dropped: they are inter-node control messages, not traffic for the local stack. Zero keys are already filtered out. Empty for a batch that carried none, which is the overwhelmingly common case.
Auto Trait Implementations§
impl Freeze for InboundResult
impl RefUnwindSafe for InboundResult
impl Send for InboundResult
impl Sync for InboundResult
impl Unpin for InboundResult
impl UnsafeUnpin for InboundResult
impl UnwindSafe for InboundResult
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more