F20-ND: Yes
Rationale
NFD transit has mandatory pending-request state, but not a mandatory end-to-end flow or circuit entry. Pit::findOrInsert indexes Interests by name and matching selectors; Entry::canMatch compares Name, CanBePrefix and MustBeFresh, not a consumer-producer connection identifier. Matching requests can share an entry with per-neighbor in/out records. Entries expire or are satisfied independently of an application session. Faces represent local adjacencies. This meets the existing flow/circuit-specific criterion, not a stronger stateless-forwarding criterion: PIT occupancy still grows with outstanding distinct requests and can be resource-sensitive.
Assessment method
Pinned forwarding-state inventory; no runtime execution
Source context
NFD 24.07 PIT lookup, matching and face records
Outstanding qualification
Capture two consumers requesting the same name/selectors and separate names; inspect PIT aggregation, per-face records, expiry and satisfaction. Confirm no end-to-end circuit setup. Measure PIT occupancy separately; this Yes does not establish resource isolation.
Public sources
- https://raw.githubusercontent.com/named-data/NFD/NFD-24.07/daemon/table/pit.cpp
- https://raw.githubusercontent.com/named-data/NFD/NFD-24.07/daemon/table/pit-entry.cpp
- https://raw.githubusercontent.com/named-data/NFD/NFD-24.07/daemon/table/pit-entry.hpp
- https://raw.githubusercontent.com/named-data/NFD/NFD-24.07/daemon/fw/forwarder.cpp