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
{{ message }}
Repository navigation
fix(ipv6-opts): RPL option drops reserved flag bits on rebuild and rejects RFC 6553 sub-TLVs #1199
Describe the bug _read_opt_rpl and _make_opt_rpl in HOPOPT and IPv6_Opts have two gaps that predate #1198. Both apply to type 0x23 and type 0x63.
Reserved flag bits are dropped. Only O, R and F survive the read and the maker, so 3b00230401020000 rebuilds through from_data as 3b00230400020000. The rebuild is byte-exact only when the reserved bits are 0.
Sub-TLVs are rejected.hopopt.py:1006 and ipv6_opts.py:995 raise ProtocolError unless the option length is exactly 4. RFC 6553 §3 makes the length variable and says unrecognised sub-TLVs MUST be skipped. For example, 3b0123060102000000aa000000000000 gives ProtocolError: HOPOPT: [OptNo 35] invalid format.
Expected behavior
Reserved bits round-trip unchanged. An option longer than 4 octets parses, and its sub-TLV bytes are kept so that the rebuild is byte-exact.
Found by the #1198 cross-review. I re-ran both inputs on the #1198 branch.
Activity
JarryShaw commentedon Oct 7, 2026
Blocked until #1198 merges, because both edit
hopopt.pyandipv6_opts.py.JarryShaw commentedon Oct 7, 2026
Unblocked: #1198 merged. A worker is on it now.
fix(ipv6-opts): RPL option drops reserved flag bits on rebuild and re…