Skip to content

fix(link): honour a stop at LinuxSLL on its ARPHRD registry path - #2587

Merged
JarryShaw merged 1 commit into
mainfrom
fix/2532-linuxsll-stop
Nov 1, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
fix/2532-linuxsll-stop

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

What is the purpose of your pull request?

  • fix — corrects a defect

Description of your pull request and other information

LinuxSLL._import_next_layer now checks _sigterm before its ARPHRD registry lookup, the order Protocol._import_next_layer and FRAD's SNAP path use. A parse told to stop at LinuxSLL ('LinuxSLL', the version's own name, either class, or layer='Link') now keeps a FRAD, GRE, Radiotap or Netlink payload as Raw (LINUX_SLL1:Raw) instead of dispatching it. The EtherType path already honoured every stop.

One behaviour change beyond the issue: on the registry path, layer='Link' used to stop at the next Link layer (LINUX_SLL1:FRAD:Raw); it now stops at LinuxSLL itself, as Ethernet stops before a VLAN tag. A stopped Raw keeps protocol_type as its alias, matching a registry entry registered as Raw. LinuxSLL never shipped, so there is no versionchanged.

Closes #2532

- LinuxSLL._import_next_layer checks _sigterm before the arphrd_type
  registry lookup, as Protocol._import_next_layer does, so a parse told
  to stop at LinuxSLL (layer='Link', protocol='LinuxSLL', the version's
  name or class) keeps a FRAD, GRE, Radiotap or Netlink payload Raw
  instead of dispatching it. The EtherType path already stopped.
- The stopped Raw records protocol_type, as a registered Raw entry does.
- Replace the pin of the old order with tests of every stop form on both
  versions and both paths, a stop elsewhere that still dispatches, and
  the same through pcapkit.extract.
@JarryShaw JarryShaw added fix Pull requests that fix a defect (fix: subject prefix) review: good-to-go Cross-review at the current head says ready; CI state is separate labels Nov 1, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at 156bd0010 (Sonnet review).

  • A differential of the head against main over 124,392 parses changed 3,624 rows. Every changed row is a stop naming this layer, on a registered ARPHRD (FRAD, IPGRE, IP6GRE, Radiotap, Netlink) with a non-empty payload, and all now read LINUX_SLLn:Raw. Every EtherType-path, no-stop and other-protocol row is unchanged.
  • The new tests fail without the fix (60 and 4 failures), and every stopped case round-trips byte for byte.
  • linux_sll.py coverage is 100% with branches.

@JarryShaw JarryShaw moved this to In review in PyPCAPKit Nov 1, 2026
@JarryShaw
JarryShaw merged commit f4aa577 into main Nov 1, 2026
63 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in PyPCAPKit Nov 1, 2026
@JarryShaw
JarryShaw deleted the fix/2532-linuxsll-stop branch November 1, 2026 19:10
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Nov 1, 2026
@github-actions github-actions Bot added this to the PyPCAPKit v1.6 milestone Nov 2, 2026
JarryShaw added a commit that referenced this pull request Nov 2, 2026
…1.6.0 (#2449)

- Added: DCCP, its checksum over the IP pseudo-header, register_dccp and
  register_dccp_option, and the pcapkit.const.dccp registries (#2593).
- Folded into unreleased entries: LinuxSLL's stop on its ARPHRD path
  (#2587) and ARPHRD's __proto_dest__ (#2598), SSLv2 records chained in a
  segment (#2585), the checksum's move to pcapkit.corekit.checksum.internet
  (#2586), and IGMPv2's and IGMPv3's versioned name (#2590).
- Breaking: InARP moves to pcapkit.protocols.link.inarp with no re-export,
  joining the DRARP entry (#2596).
- Changed: the conventions' new rulings (#2599), the milestone workflow's
  next-open-milestone lookup (#2591), the PyPy protocols shards (#2604).
  Fixed: a handled next-layer refusal is quiet under beholder (#2597); the
  IPX crawlers restore sys.path (#2601).
- CHANGELOG.md regenerated; util/changelog_md.py --check passes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix Pull requests that fix a defect (fix: subject prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

fix(link): a parse told to stop at LinuxSLL still dispatches FRAD, GRE and Netlink

1 participant