Skip to content

Convention page: protocol family grouping and the id() criterion #2476

Closed

Description

@JarryShaw

Convention page: protocol family grouping and the id() criterion

Summary

On #2441 (2026-10-30 16:20Z) the maintainer asked for the id() criterion and the subclassing/grouping logic to be saved as a convention. No page exists yet. The rules are currently spread across PR threads (#2441, #2443, #2444, #2446, #2462, #2464), and each new protocol family has re-derived them, sometimes wrongly.

Scope

A new page under docs/source/contributing/conventions/, a sibling of extension-header-subclassing.rst, covering:

  • The id() criterion (feat(application): implement TLS/SSL and DTLS record layer + handshake framing #2441, 16:08Z): a family base lists only its direct concrete subclasses, and excludes abstract intermediates and their subclasses. IP gives ('IPv4', 'IPv6'), without AH/ESP, which belong to IPsec.
  • Grouping by name and history, not wire format. SSL covers the SSL versions, TLS and DTLS, as HTTP groups HTTP/1–2. No dispatcher logic is needed where the precedent (IP/IPsec) has none.
  • The member shapes in use. Narrow-to-self (AH, ESP); family-inclusive (C_Tag/S_Tag, HTTPv1/HTTPv2, L2TPv2); the ARP/InARP single class with a dynamic alias and a fixed id(), plus a thin explicit-construction subclass; a base doubling as its own default member when names collide (L2TP/L2TPv2).
  • What selectors actually match. Registry-key strings and class objects expand through id(), while non-key labels match by name. Measured on feat(link): implement LINUX_SLL and LINUX_SLL2 dissectors #2443: 'HTTPv2' in an HTTP/1.1 frame is True.
  • No invented suffixes. No _Family base exists, and none should be minted.

Blocked on

#2462's open question: whether a concrete fallback parser (IPv6_Ext) carries a family tuple or none. #2446's ICMP raises the same concrete-base question. The page should state the answer rather than guess it. Unblocks when #2462's needs: decision is answered.

Activity

  1. added
    docsPull requests that change documentation only (docs: subject prefix)
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    and removed
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    on Oct 30, 2026
  2. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Unblocked: #2462 is answered. Held only on Actions queue depth (30) while the 1.5.1 release runs.

  3. added this to the PyPCAPKit v1.5 milestone on Oct 30, 2026
  4. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Still held: Actions queue at 41 while the 1.5.1 release Unit Tests runs (14/32 jobs done).

  5. moved this to Pending in PyPCAPKiton Oct 30, 2026
  6. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Still held: Actions queue at 36 while the 1.5.1 release Unit Tests finishes (18/32 jobs done).

  7. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Still held: Actions queue at 29 while the 1.5.1 release Unit Tests finishes (31/46 jobs done).

  8. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Still held: Actions queue at 37; main's release Unit Tests is waiting on runners for its ordering legs. No new pushes from me until it completes.

  9. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Still held: main's release Unit Tests has 14 jobs waiting for runners (Actions queue at 31).

  10. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Still held: the 1.5.1 release Unit Tests re-run is in progress; no pushes until it completes.

  11. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Still held: release Unit Tests re-run in progress.

  12. 6 remaining items

  13. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Still held: 1.5.1 is on PyPI; conda builds finishing.

  14. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Still held: 1.5.1 conda builds finishing.

  15. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Still held: last 1.5.1 conda builds finishing.

  16. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Still held: one 1.5.1 conda build left.

  17. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    and removed
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Oct 30, 2026
  18. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Dispatched now that 1.5.1 is published.

  19. moved this from Pending to WIP in PyPCAPKiton Oct 30, 2026
  20. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    docsPull requests that change documentation only (docs: subject prefix)

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions