pub enum Inbound<'d> {
Deliver(Delivery<'d>),
Nak {
to: SocketAddrV4,
code: BvlcResultCode,
malformed: bool,
},
Bbmd(ForBbmd<'d>),
Discarded(Discard),
Matched {
exchange: ExchangeId,
message: Result<Bvll<'d>, BvllError>,
accepted: bool,
settled: bool,
},
Duplicate {
exchange: ExchangeId,
},
Unmatched {
peer: SocketAddrV4,
code: Option<BvlcResultCode>,
late: bool,
},
}Expand description
A received datagram’s fate, with responses matched to this node’s own exchanges.
Variants§
Deliver(Delivery<'d>)
Hand an NPDU up (Received::Deliver).
Nak
Send a NAK (Received::Nak).
Bbmd(ForBbmd<'d>)
The BBMD’s share (Received::Bbmd).
Discarded(Discard)
Dropped (Received::Discarded).
Matched
The response answers exchange. A malformed table ACK still
completes the exchange it fits, with the codec’s error, and so does
one Policy::accept_table refused, as received.
Fields
exchange: ExchangeIdThe exchange.
accepted: boolWhether the codec decoded it and Policy::accept_table took
it (Response::accepted). Only an accepted response counts as
an answer; the caller fails the exchange otherwise.
settled: boolWhether the exchange ended now. When it beat
Node::exchange_sent, the caller keeps the response until
that returns true.
Duplicate
A second response for an exchange already holding one that beat its send. The first is kept; drop this one.
Fields
exchange: ExchangeIdThe exchange.
Unmatched
The response answers no live exchange. Well-formed ones count as
unmatched, malformed ones as malformed (NodeCounters).
Fields
peer: SocketAddrV4Who sent it.
code: Option<BvlcResultCode>A well-formed BVLC-Result’s code.