pub struct FaceState {
pub cancel: CancellationToken,
pub persistency: FacePersistency,
pub last_activity: AtomicU64,
pub counters: FaceCounters,
pub send_tx: Sender<Bytes>,
pub reliability: Option<Mutex<LpReliability>>,
pub uses_lp: AtomicBool,
}Expand description
Per-face lifecycle state stored alongside the cancellation token.
Fields§
§cancel: CancellationToken§persistency: FacePersistency§last_activity: AtomicU64Last packet activity (nanoseconds since Unix epoch). Updated on recv and send; used for idle-timeout of on-demand faces.
counters: FaceCountersPer-face traffic counters (incremented by pipeline stages).
send_tx: Sender<Bytes>Outbound send queue.
The pipeline pushes packets here via try_send (non-blocking) and a
dedicated per-face send task drains the queue, calling face.send()
sequentially. This decouples pipeline processing from I/O, preserves
per-face ordering (critical for TCP framing), and provides bounded
backpressure.
reliability: Option<Mutex<LpReliability>>NDNLPv2 per-hop reliability state (unicast UDP faces only).
uses_lp: AtomicBoolNDNLPv2 link mode: auto-detected at the face I/O layer when the remote peer sends LP-wrapped packets (type 0x64). Once set, the face sender wraps all outgoing bare NDN packets in a minimal LpPacket so that NDNLPv2-native peers (e.g. NDNts) can parse them.
This mirrors NFD’s GenericLinkService behavior: LP encoding is a
per-link property determined by what the peer sends, not by face kind.
Implementations§
Source§impl FaceState
impl FaceState
pub fn new( cancel: CancellationToken, persistency: FacePersistency, send_tx: Sender<Bytes>, ) -> Self
Sourcepub fn new_reliable(
cancel: CancellationToken,
persistency: FacePersistency,
send_tx: Sender<Bytes>,
mtu: usize,
) -> Self
pub fn new_reliable( cancel: CancellationToken, persistency: FacePersistency, send_tx: Sender<Bytes>, mtu: usize, ) -> Self
Create a FaceState with NDNLPv2 reliability enabled.