Link-Layer Types for PCAP and PCAPNG Capture File Formats
Internet-Draft pcaplinktype-test
Guy Harris, Ed.
gharris@sonic.net
Michael C. Richardson
Sandelman Software Works Inc
mcr+ietf@sandelman.ca
http://www.sandelman.ca/
16 August 2024
This document creates an IANA registry for the PCAP and PCAPNG LINKTYPE values. The PCAP and PCAPNG formats are used to save network captures from programs such as tcpdump and wireshark, when using libraries such as libpcap.
About This Document
Status information for this document may be found at https://datatracker.ietf.org/doc/draft-ietf-opsawg-pcaplinktype/.
Discussion of this document takes place on the opsawg Working Group mailing list (mailto:opsawg@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/opsawg/. Subscribe at https://www.ietf.org/mailman/listinfo/opsawg/.
Source for this draft and an issue tracker can be found at https://github.com/IETF-OPSAWG-WG/pcapng.
Introduction
In the late 1980's, Van Jacobson, Steve McCanne, and others at the Network Research Group at Lawrence Berkeley National Laboratory developed the tcpdump program to capture and dissect network traces. The code to capture traffic, using low-level mechanisms in various operating systems, and to read and write network traces to a file was later put into a library named libpcap [LIBPCAP].
Other documents describe the original (legacy) format used by tcpdump (pcap), as well as the revised format (pcapng) which is used by tcpdump and Wireshark [Wireshark].
Within those formats each packet that is captured is described by a LINKTYPE value. The LINKTYPE value selects one of many hundred formats for metadata and Layer 2 encapsulation of the packet.
This document creates an IANA registry for the LINKTYPE format, establishing the IANA Considerations by which other uses of the pcap and pcapng formats may register new LINKTYPE values.
Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
IANA Considerations
PCAP Registry
IANA is requested to create a new registry group entitled "The PCAP Registry".
LinkType Registry
IANA is also requested to create a registry entitled "PCAP LinkType List" under The PCAP registry group (Section 3.1).
The registry has the following structure:
- LINKTYPE Name: Indicates the symbolic name for this LinkType. The name is prefixed with "LINKTYPE_" (i.e., LINKTYPE_something).
- LINKTYPE Value: Indicates the integer value assigned for this LinkType.
- Description: Provides a very short description.
- Reference: Indicates an authoritative the document reference for the LinkType or a requester reference.
The LinkType value is a 16-bit number. The policy allocation for the LinkType values is as follows:
- Values from 0 to 32767 must be allocated via Specification Required (Section 4.6 of [RFC8126]). Guidance for Designated Experts is provided in Section X.
- Values from 32768 to 65000 are allocated following a First-Come First-Served policy (Section 4.4 of [RFC8126]).
- Values from 65001 to 65535 are reserved for Private Use (Section 4.1 of [RFC8126]).
The initial version of the registry is provided in Section 3.2.1. In each case here, the reference should be to [TCPDUMP] and the RFC number to be assigned to this document, which is not repeated each time.
The initial values table is based upon the Link type list maintained by libpcap, and published on [TCPDUMP].
Note that historically, values were assigned incrementally following First Come First Served policy, with a preference for a public specification, but with no mandate. Some historical values may have less specification than desired.
LinkType values 147 to 162 named LINKTYPE_RESERVED_xx were originally reserved for Private Use. Their use is Deprecated in favour of the values in the 65001-65535 range.
In general, Private Use values should never leak out of the entity that uses it. As the First Come First Served range is large and easily obtained, official values are recommended.
- There is often an associated DLT value which is often identical in value, but not universally so. DLT values are associated with specific operation system captures, and are operating system specific, and are thus not subject to standardization.
Initial Values
Option A: Initial Values of "PCAP LinkType List" Registry
Value:
0
Name:
LINKTYPE_NULL
Description:
BSD loopback encapsulation
Reference:
[LINKTYPE_NULL]
Value:
1
Name:
LINKTYPE_ETHERNET
Description:
IEEE 802.3 Ethernet
Reference:
- Value:
189
Name:
LINKTYPE_USB_LINUX
Description:
USB packets, beginning with a Linux USB header, as specified by the struct usbmon_packet in the Documentation/usb/usbmon.txt file in the Linux source tree. Only the first 48 octets of that header are present. All fields in the header are in host byte order. When performing a live capture, the host byte order is the byte order of the machine on which the packets are captured. When reading a pcap file, the byte order is the byte order for the file, as specified by the file's magic number; when reading a pcapng file, the byte order is the byte order for the section of the pcapng file, as specified by the Section Header Block
Reference:
- Value:
237
Name:
LINKTYPE_STANAG_5066_D_PDU
Description:
D_PDUs as described by NATO standard STANAG 5066, starting with the synchronization sequence, and including both header and data CRCs. The current version of STANAG 5066 is backwards-compatible with the 1.0.2 version , although newer versions are classified
Reference:
[STANAG-5066]
----------------------------------------------
Option B: Initial Values of "PCAP LinkType List" Registry
Initial Values of the "PCAP LinkType List" Registry
Value | Name Description | Reference
0 | LINKTYPE_NULL BSD loopback encapsulation | [LINKTYPE_NULL]
1 | LINKTYPE_ETHERNET IEEE 802.3 Ethernet |
189 | LINKTYPE_USB_LINUX USB packets, beginning with a Linux USB header, as specified by the struct usbmon_packet in the Documentation/usb/usbmon.txt file in the Linux source tree. Only the first 48 octets of that header are present. All fields in the header are in host byte order. When performing a live capture, the host byte order is the byte order of the machine on which the packets are captured. When reading a pcap file, the byte order is the byte order for the file, as specified by the file's magic number; when reading a pcapng file, the byte order is the byte order for the section of the pcapng file, as specified by the Section Header Block |
237 | LINKTYPE_STANAG_5066_D_PDU D_PDUs as described by NATO standard STANAG 5066, starting with the synchronization sequence, and including both header and data CRCs. The current version of STANAG 5066 is backwards-compatible with the 1.0.2 version , although newer versions are classified | [STANAG-5066]
References
Normative References
[RFC2119]

Key words for use in RFCs to Indicate Requirement Levels
S. Bradner
March 1997
BCP 14
RFC 2119
DOI 10.17487/RFC2119
[RFC8174]

Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words
B. Leiba
May 2017
BCP 14
RFC 8174
DOI 10.17487/RFC8174
[RFC8126]

Guidelines for Writing an IANA Considerations Section in RFCs
M. Cotton
B. Leiba
T. Narten
June 2017
BCP 26
RFC 8126
DOI 10.17487/RFC8126
Informative References
[TCPDUMP]

LINK-LAYER HEADER TYPES
n.d.
[LIBPCAP]

libpcap
n.d.
[Wireshark]

Homepage of Wireshark
n.d.
[_3GPP-TS-04.64]

Digital cellular telecommunications system (Phase 2+); General Packet Radio Service (GPRS); Mobile Station - Serving GPRS Support Node (MS-SGSN) Logical Link Control (LLC) layer specification
n.d.
3GPP TS 04.64
[ASHRAE-135]

BACnet(TM): A Data Communication Protocol for Building Automation and Control Networks
n.d.
ANSI/ASHRAE Standard 135
[AVS]

Archived AVS specification
Solomon Peachy
n.d.
[AX.25]

AX.25 Link Access Protocol for Amateur Packet Radio Version 2.2
William A. Beech
Douglas E. Nielsen
Jack Taylor
July 1998
[D-Bus]

D-Bus Specification
Havoc Pennington
Red Hat, Inc.
Anders Carlsson
CodeFactory AB
Alexander Larsson
Red Hat, Inc.
Sven Herzberg
Imendio AB
Simon McVittie
Collabora Ltd.
David Zeuthen
n.d.
[DOCSIS-4.0-MULP]

DOCSIS 4.0 MAC and Upper Layer Protocols Interface Specification
n.d.
[DOCSIS-XRA]

Excentis XRA Header
n.d.
[DVB-CI]

Common Interface Specification for Conditional Access and other Digital Video Broadcasting Decoder Applications
n.d.
[DVB-CI-PCAP]

PCAP format for DVB-CI
Martin Kaiser
January 2021
[EBHSCR]

Documentation EBHSCR
n.d.
[ERF]

ERF Types Reference Guide
n.d.
[Exegin-TAP-Link]

IEEE 802.15.4 TAP Link Type Specification
n.d.
[FD.io-VPP]

VNET (VPP Network Stack)
n.d.
[FRF.16.1]

Multilink Frame Relay UNI/NNI Implementation Agreement FRF.16.1
May 2002
[G.7041]

Generic Framing Procedure
n.d.
ITU-T Recommendation G.7041/Y.1303
[G.9959]

Short range narrow-band digital radiocommunication transceivers - PHY, MAC, SAR and LLC layer specifications
n.d.
ITU-T Recommendation G.9959
[H.222.0]

Information technology - Generic coding of moving pictures and associated audio information: Systems
n.d.
ITU-T Recommendation H.222.0
[ISO-14443-PCAP]

PCAP format for ISO14443
Martin Kaiser
January 2021
[KISS]

The KISS TNC - A simple Host-to-TNC communications protocol
n.d.
[LINKTYPE_APPLE_IP_OVER_IEEE1394]

LINKTYPE_APPLE_IP_OVER_IEEE1394
n.d.
[LINKTYPE_BLUETOOTH_BREDR_BB]

LINKTYPE_BLUETOOTH_BREDR_BB
n.d.
[LINKTYPE_BLUETOOTH_LE_LL_WITH_PHDR]

LINKTYPE_BLUETOOTH_LE_LL_WITH_PHDR
n.d.
[LINKTYPE_BLUETOOTH_LINUX_MONITOR]

LINKTYPE_BLUETOOTH_LINUX_MONITOR
n.d.
[LINKTYPE_CAN_SOCKETCAN]

LINKTYPE_CAN_SOCKETCAN
n.d.
[LINKTYPE_DISPLAYPORT_AUX]

LINKTYPE_DISPLAYPORT_AUX
n.d.
[LINKTYPE_DSA_TAG_BRCM]

LINKTYPE_DSA_TAG_BRCM
n.d.
[LINKTYPE_DSA_TAG_BRCM_PREPEND]

LINKTYPE_DSA_TAG_BRCM_PREPEND
n.d.
[LINKTYPE_DSA_TAG_DSA]

LINKTYPE_DSA_TAG_DSA
n.d.
[LINKTYPE_DSA_TAG_EDSA]

LINKTYPE_DSA_TAG_EDSA
n.d.
[LINKTYPE_ETW]

LINKTYPE_ETW
n.d.
[LINKTYPE_FIRA_UCI]

LINKTYPE_FIRA_UCI
n.d.
[LINKTYPE_FLEXRAY]

LINKTYPE_FLEXRAY
n.d.
[LINKTYPE_I2C_LINUX]

LINKTYPE_I2C_LINUX
n.d.
[LINKTYPE_IEEE802_11_PRISM]

LINKTYPE_IEEE802_11_PRISM
n.d.
[LINKTYPE_IPNET]

LINKTYPE_IPNET
n.d.
[LINKTYPE_LIN]

LINKTYPE_LIN
n.d.
[LINKTYPE_LINUX_IRDA]

LINKTYPE_LINUX_IRDA
n.d.
[LINKTYPE_LINUX_LAPD]

LINKTYPE_LINUX_LAPD
n.d.
[LINKTYPE_LINUX_SLL]

LINKTYPE_LINUX_SLL
n.d.
[LINKTYPE_LINUX_SLL2]

LINKTYPE_LINUX_SLL2
n.d.
[LINKTYPE_LOOP]

LINKTYPE_LOOP
n.d.
[LINKTYPE_MUX27010]

LINKTYPE_MUX27010
n.d.
[LINKTYPE_NETANALYZER]

LINKTYPE_NETANALYZER
n.d.
[LINKTYPE_NETANALYZER_TRANSPARENT]

LINKTYPE_NETANALYZER_TRANSPARENT
n.d.
[LINKTYPE_NETLINK]

LINKTYPE_NETLINK
n.d.
[LINKTYPE_NFC_LLCP]

LINKTYPE_NFC_LLCP
n.d.
[LINKTYPE_NFLOG]

LINKTYPE_NFLOG
n.d.
[LINKTYPE_NG40]

LINKTYPE_NG40
n.d.
[LINKTYPE_NORDIC_BLE]

LINKTYPE_NORDIC_BLE
n.d.
[LINKTYPE_NULL]

LINKTYPE_NULL
n.d.
[LINKTYPE_PKTAP]

LINKTYPE_PKTAP
n.d.
[LINKTYPE_RDS]

LINKTYPE_RDS
n.d.
[LINKTYPE_RTAC_SERIAL]

LINKTYPE_RTAC_SERIAL
n.d.
[LINKTYPE_SITA]

LINKTYPE_SITA
n.d.
[LINKTYPE_SLIP]

LINKTYPE_SLIP
n.d.
[LINKTYPE_SUNATM]

LINKTYPE_SUNATM
n.d.
[LINKTYPE_USB_DARWIN]

LINKTYPE_USB_DARWIN
n.d.
[LINKTYPE_VSOCK]

LINKTYPE_VSOCK
n.d.
[LINKTYPE_WATTSTOPPER_DLM]

LINKTYPE_WATTSTOPPER_DLM
n.d.
[LINKTYPE_ZBOSS_NCP]

LINKTYPE_ZBOSS_NCP
n.d.
[LINKTYPE_ZWAVE_R1_R2]

LINKTYPE_ZWAVE_R1_R2
n.d.
[LINKTYPE_ZWAVE_R3]

LINKTYPE_ZWAVE_R3
n.d.
[LoRaTap]

LoRaTap
n.d.
[LoRaWAN]

About the LoRaWAN Standards
n.d.
[OpenVizsla]

OpenVizsla protocol description
August 2018
[PPI]

Per-Packet Information Header Specification
May 2007
[Q.703]

Specifications of Signalling System No. 7 Signalling Link
n.d.
ITU-T Recommendation Q.703
[Q.704]

Specifications of Signalling System No. 7 Signalling Network Functions And Messages
n.d.
ITU-T Recommendation Q.704
[Q.711]

Specifications of Signalling System No. 7 Functional description of the signalling connection control part
n.d.
ITU-T Recommendation Q.711
[Q.712]

Specifications of Signalling System No. 7 Definition and function of signalling connection control part messages
n.d.
ITU-T Recommendation Q.712
[Q.713]

Specifications of Signalling System No. 7 Signalling connection control part functions and codes
n.d.
ITU-T Recommendation Q.713
[Q.714]

Specifications of Signalling System No. 7 Signalling connection control part procedures
n.d.
ITU-T Recommendation Q.714
[Radiotap]

Radiotap Web site
radiotap.org
n.d.
[Q.920]

Digital Subscriber Signalling System No. 1 (DSS1) - ISDN User-Network Interface Data Link Layer - General aspects
n.d.
ITU-T Recommendation Q.920
[Q.921]

ISDN user-network interface - Data Link Layer specification
n.d.
ITU-T Recommendation Q.921
[STANAG-5066]

Profile for Maritime High Frequency (HF) Radio Data Communications
n.d.
STANAG 5066
[USBPcap]

USBPcap Capture format specification
n.d.
[Z_WAVE_SERIAL]

Z-Wave Serial API Host Application Programming Guide
n.d.
[RFC1661]

The Point-to-Point Protocol (PPP)
W. Simpson, Ed.
July 1994
STD 51
RFC 1661
DOI 10.17487/RFC1661
[RFC1662]

PPP in HDLC-like Framing
W. Simpson, Ed.
July 1994
STD 51
RFC 1662
DOI 10.17487/RFC1662
[RFC2516]

A Method for Transmitting PPP Over Ethernet (PPPoE)
L. Mamakos
K. Lidl
J. Evarts
D. Carrel
D. Simone
R. Wheeler
February 1999
RFC 2516
DOI 10.17487/RFC2516
[RFC1483]

Multiprotocol Encapsulation over ATM Adaptation Layer 5
J. Heinanen
July 1993
RFC 1483
DOI 10.17487/RFC1483
[RFC1547]

Requirements for an Internet Standard Point-to-Point Protocol
D. Perkins
December 1993
RFC 1547
DOI 10.17487/RFC1547
[RFC2625]

IP and ARP over Fibre Channel
M. Rajagopal
R. Bhagwat
W. Rickard
June 1999
RFC 2625
DOI 10.17487/RFC2625
[RFC4391]

Transmission of IP over InfiniBand (IPoIB)
J. Chu
V. Kashyap
April 2006
RFC 4391
DOI 10.17487/RFC4391
[RFC3549]

Linux Netlink as an IP Services Protocol
J. Salim
H. Khosravi
A. Kleen
A. Kuznetsov
July 2003
RFC 3549
DOI 10.17487/RFC3549