-
-
Notifications
You must be signed in to change notification settings - Fork 36
reg: LinkType(209) resolves to IPMB_LINUX, the name tcpdump and pcapkit both label do-not-use #844
Copy link
Copy link
Closed
Labels
bugIssues reporting a defect (set by the bug report template; a default, not an assessment)Issues reporting a defect (set by the bug report template; a default, not an assessment)constRegenerated IANA or vendor constant tables; members keep their numeric valuesRegenerated IANA or vendor constant tables; members keep their numeric valuesfixPull requests that fix a defect (fix: subject prefix)Pull requests that fix a defect (fix: subject prefix)
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
bugIssues reporting a defect (set by the bug report template; a default, not an assessment)Issues reporting a defect (set by the bug report template; a default, not an assessment)constRegenerated IANA or vendor constant tables; members keep their numeric valuesRegenerated IANA or vendor constant tables; members keep their numeric valuesfixPull requests that fix a defect (fix: subject prefix)Pull requests that fix a defect (fix: subject prefix)
Projects
- StatusShow more project fieldsDone
Found while researching #842's duplicate-value question.
LinkType(209).namereturns thename upstream explicitly says not to use, and pcapkit's own comment on that member says so
too.
Measured on
origin/main(6216de505):IPMB_LINUXis declared first, so it becomes the canonical member andI2C_LINUXanalias of it. Live:
So even asking for the current name hands back the legacy one.
Upstream is unambiguous the other way. libpcap's
pcap/dlt.hdefines#define DLT_I2C_LINUX 209first, then explains: "This was renamed as it's also used forother protocols, such as Display Data Channel as used by HDMI. We still define
DLT_IPMB_LINUX for backwards source compatibility."
tcpdump.org/linktypes.htmllabels theIPMB_LINUXrow "Legacy names (do not use)". Wireshark drops the legacy name entirely —epan/dissectors/packet-pcap_pktdata.c:174has{ 209, "I2C_LINUX" }only.Cause is mechanical, and datable. The crawler reads
linktypes.htmlrow order(
pcapkit/vendor/reg/linktype.py:35) and has no alias or precedence logic.I2C_LINUXlanded first in
78ef9f7a89(2024-04-27); a later regeneration,cfdf2ab5c7(2024-05-04),inserted
IPMB_LINUXabove it and silently flipped which name Python treats ascanonical. A regression introduced by regeneration, not by a hand edit.
Fix shape: the vendor module needs to emit the current name first when
linktypes.htmllists a legacy row above it — or carry an explicit precedence override, sincerow order demonstrably does not supply the answer. Regenerating without that change will
reintroduce it.
Separate from #842's
register_aliasdesign; this one is wrong regardless of whichconvention wins there.