Repository navigation
fix(internet)!: refuse or rebuild exactly an MH mobility option changed in one octet (#2684) - #2700
Merged
Merged
Conversation
Owner
Author
|
NEEDS CHANGES at
|
…ed in one octet (#2684) - Option fields were read at their own widths whatever the length said, so a length they overran or fell short of read octets that were not the option's and rebuilt another. A mobility option, FID, ANI or LCMP sub-option, QoS attribute or CGA extension whose fields do not take its declared length is refused, and so is a target care-of address neither IPv4 nor IPv6, as BID's is. - A CGA public key takes the long form of a DER length, and a CGA parameter whose fixed fields or key run past its option is refused in the schema. - The IPv4 Address Acknowledgement, IPv4 Home Address Request and Reply, and Delegated MNP makers check a prefix length against its field width alone, so one past the address that the reader keeps no longer refuses to rebuild. - The Service Selection and MN-ID NAI makers count the octets the identifier packs as, rather than its text re-encoded or its characters. - The QoS option keeps the two reserved traffic-class bits as tc_reserved, a new required field of its data model, which a direct construction now has to pass: the breaking change. - Adds a one-octet mutation sweep over every registered mobility option. New tests fail on be83061 without the pcapkit/ change; MH and guard modules pass.
Owner
Author
|
The fix round is ready at |
JarryShaw
force-pushed
the
fix/2684-mh-option-roundtrip
branch
from
November 2, 2026 23:10
87a0172 to
faa02c7
Compare
Owner
Author
|
GOOD TO GO at
|
JarryShaw
added a commit
that referenced
this pull request
Nov 2, 2026
…s, the cut schema lists, the TSO checksum cut and short ZigBee keys into 1.6.0 (#2449) - Breaking: MH (#2700) refuses a mobility option, or a sub-option, QoS attribute or CGA extension of one, whose fields do not take its length, where 1.5.x rebuilt another; QualityOfServiceOption gains a required tc_reserved. Prefix lengths are held to their field's width, the NAI and service identifier makers count octets, and a long-form DER CGA key parses. Folded into the MH/DSS and makers' range-check entries, with a QoS entry of its own; old and new values measured against v1.5.1. - Fixed: ListField zero-fills a cut list of schema items, bounded by ZERO_PAD_BUDGET_RATIO with no free band, and a SACK past the data raises ProtocolError where it raised FieldValueError (#2701); a Decryption Secrets Block made from a short parsed ZigBee key is written as captured, and zigbee_key_held's schema holds the octets given (#2697). - Folded into unreleased entries: radiotap's mixed bitmaps, their known-bits registries and BitmapField (#2696), into the Radiotap entry; the TSO and AH checksum cut (#2699), into the checksum and contextvars entries; the zero-filled SETTINGS and IGMPv3 records and the IGMPv3 Additional Data rebuild (#2701), into the HTTP/2 SETTINGS and IGMP entries, dropping HTTPv2.make's unreleased frame_length. - No entry for the docstring-and-test-only be83061 (#2695). - CHANGELOG.md regenerated; util/changelog_md.py --check passes.
1 of 5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
make pylint,make mypy,make isort)make testpasses, and a test case covers the changeWhat is the purpose of your pull request?
fix— corrects a defectDescription of your pull request and other information
MH mobility options that did not round-trip after a one-octet change now either rebuild byte for byte or are refused. A refused option is kept as
Rawinside IPv6, which rebuilds exactly and logs nothing.tc_reservedfield.Breaking:
QualityOfServiceOptiongains the required fieldtc_reserved.The tests include a one-octet mutation sweep over every option code
MH.__option__knows, and it fails onmain. Shipped captures parse identically tomain, apart from the QoS frame gainingtc_reserved: 0.Closes #2684