You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(ext-hdr): match §3.1/§3.2 first-4-byte selector on reflected header TLVs
Implement the draft-ietf-ippm-stamp-ext-hdr selector rule for the Reflected
IPv6 Extension Header (Type 246) and Reflected Fixed Header (Type 247) TLVs.
Previously the reflector ignored the request's first-4-byte pattern and
concatenated every captured extension header ("Not yet implemented" per
doc/architecture.md).
Reflector (src/tlv/list/processing.rs):
- Type 246: a non-zero first-4-byte selector picks the single captured
extension-header record whose first 4 bytes match, disambiguating multiple
headers of the same length; no match zero-fills and sets the U-flag.
- Type 247: the selector acts as a validation gate after the length check —
it must equal the received header's first 4 bytes, else U-flag.
- A zero selector preserves the legacy copy-everything behavior.
Sender (opt-in): --reflected-ipv6-ext-hdr-selector /
--reflected-fixed-hdr-selector hex flags, validated in
Configuration::validate() (requires the enabling flag, >=1 non-zero byte,
family-size cap) and built via ReflectedIpv6ExtHdrTlv/ReflectedFixedHdrTlv::
request_with_selector.
The selector matches stamp-suite's reflected representation, where byte 0 is
the extension-header type (0x00 Hop-by-Hop, 0x3C Destination Options), not
the on-wire Next Header pointer — documented in CLI help and architecture.md.
No change to existing exchanges: the rule is dormant until a sender opts in.
--reflected-ipv6-ext-hdr-selector <HEX> §3.1 selector: return only the matching extension header; byte 0 is the header type (00=Hop-by-Hop, 3c=Dest-Opts) (requires --reflected-ipv6-ext-hdr)
198
200
--ber Enable BER TLVs (draft-gandhi-ippm-stamp-ber, Types 240/241/242)
199
201
--ber-pattern <HEX> Padding bit pattern (default: ff00)
200
202
--ber-padding-size <BYTES> Extra Padding length used with --ber [default: 64]
0 commit comments