<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.18 (Ruby 2.6.6) -->
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc inline="yes"?>
<?rfc strict="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-pcapng-02" category="info" tocInclude="true" sortRefs="false" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.1 -->
  <front>
    <title abbrev="pcapng">PCAP Next Generation (pcapng) Capture File Format</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-pcapng-02"/>
    <author initials="M." surname="Tuexen" fullname="Michael Tuexen" role="editor">
      <organization abbrev="Muenster Univ. of Appl. Sciences">Muenster University of Applied Sciences</organization>
      <address>
        <postal>
          <street>Stegerwaldstrasse 39</street>
          <city>Steinfurt</city>
          <code>48565</code>
          <country>DE</country>
        </postal>
        <email>tuexen@fh-muenster.de</email>
      </address>
    </author>
    <author initials="F." surname="Risso" fullname="Fulvio Risso">
      <organization>Politecnico di Torino</organization>
      <address>
        <postal>
          <street>Corso Duca degli Abruzzi, 24</street>
          <city>Torino</city>
          <code>10129</code>
          <country>IT</country>
        </postal>
        <email>fulvio.risso@polito.it</email>
      </address>
    </author>
    <author initials="J." surname="Bongertz" fullname="Jasper Bongertz">
      <organization abbrev="Airbus DS CyberSecurity">Airbus Defence and Space CyberSecurity</organization>
      <address>
        <postal>
          <street>Kanzlei 63c</street>
          <city>Meerbusch</city>
          <code>40667</code>
          <country>DE</country>
        </postal>
        <email>jasper@packet-foo.com</email>
      </address>
    </author>
    <author initials="G." surname="Combs" fullname="Gerald Combs">
      <organization abbrev="Wireshark">Wireshark Foundation</organization>
      <address>
        <postal>
          <street>339 Madson Pl</street>
          <city>Davis</city>
          <region>CA</region>
          <code>95618</code>
          <country>US</country>
        </postal>
        <email>gerald@wireshark.org</email>
      </address>
    </author>
    <author initials="G." surname="Harris" fullname="Guy Harris">
      <organization/>
      <address>
        <email>gharris@sonic.net</email>
      </address>
    </author>
    <author initials="E." surname="Chaudron" fullname="Eelco Chaudron">
      <organization abbrev="Red Hat">Red Hat</organization>
      <address>
        <postal>
          <street>De Entree 238</street>
          <city>Amsterdam</city>
          <code>1101 EE</code>
          <country>NL</country>
        </postal>
        <email>eelco@redhat.com</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael C. Richardson">
      <organization abbrev="Sandelman">Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
        <uri>http://www.sandelman.ca/</uri>
      </address>
    </author>
    <date year="2024" month="August" day="04"/>
    <abstract>
      <?line 86?>

<t>This document describes a format to record captured packets to a
file. This format is extensible; Wireshark can currently read and write
it, and libpcap can currently read some pcapng files.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-opsawg-pcapng/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        opsawg Working Group mailing list (<eref target="mailto:opsawg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/opsawg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/IETF-OPSAWG-WG/pcapng"/>.</t>
    </note>
  </front>
  <middle>
    <?line 93?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The problem of exchanging packet traces becomes more and more
critical every day; unfortunately, no standard solutions exist for
this task right now. One of the most accepted packet interchange
formats is the one defined by libpcap, which is rather old and is
lacking in functionality for more modern applications particularly
from the extensibility point of view.</t>
      <t>This document proposes a new format for recording packet traces. The
following goals are being pursued:</t>
      <dl>
        <dt>Extensibility:</dt>
        <dd>
          <t>It should be possible to add new standard capabilities to the file
format over time, and third parties should be able to enrich the
information embedded in the file with proprietary extensions, with
tools unaware of newer extensions being able to ignore them.</t>
        </dd>
        <dt>Portability:</dt>
        <dd>
          <t>A capture trace must contain all the information needed to read data
independently from network, hardware and operating system of the
machine that made the capture.</t>
        </dd>
        <dt>Merge/Append data:</dt>
        <dd>
          <t>It should be possible to add data at the end of a given file, and
the resulting file must still be readable.</t>
        </dd>
      </dl>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>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 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
      <section anchor="acronyms">
        <name>Acronyms</name>
        <t>The following acronyms are used throughout this document:</t>
        <dl>
          <dt>SHB:</dt>
          <dd>
            <t>Section Header Block</t>
          </dd>
          <dt>IDB:</dt>
          <dd>
            <t>Interface Description Block</t>
          </dd>
          <dt>ISB:</dt>
          <dd>
            <t>Interface Statistics Block</t>
          </dd>
          <dt>EPB:</dt>
          <dd>
            <t>Enhanced Packet Block</t>
          </dd>
          <dt>SPB:</dt>
          <dd>
            <t>Simple Packet Block</t>
          </dd>
          <dt>NRB:</dt>
          <dd>
            <t>Name Resolution Block</t>
          </dd>
          <dt>CB:</dt>
          <dd>
            <t>Custom Block</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="general-file-structure">
      <name>General File Structure</name>
      <section anchor="section_block">
        <name>General Block Structure</name>
        <t>A capture file is organized in blocks, that are appended one to
another to form the file. All the blocks share a common format, which
is shown in <xref target="formatblock"/>.</t>
        <figure anchor="formatblock">
          <name>Basic block structure.</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                          Block Type                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 /                          Block Body                           /
   /              variable length, padded to 32 bits               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The fields have the following meaning:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type (32 bits): a unique unsigned value that
identifies the block. Values whose Most Significant Bit
(MSB) is equal to 1 are reserved for local use. They can be
used to make extensions to the file format to save private
data to the file. The list of currently defined types can
be found in <xref target="section_block_code_registry"/>.</t>
          </li>
          <li>
            <t>Block Total Length (32 bits): an unsigned value giving
the total size of this block, in octets. For instance, the
length of a block that does not have a body is 12 octets: 4
octets for the Block Type, 4 octets for the initial Block
Total Length and 4 octets for the trailing Block Total
Length. This value MUST be a multiple of 4.</t>
          </li>
          <li>
            <t>Block Body: content of the block.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, in octets. This
field is duplicated to permit backward file navigation.</t>
          </li>
        </ul>
        <t>This structure, shared among all blocks, makes it easy to process a
file and to skip unneeded or unknown blocks. Some blocks can contain
other blocks inside (nested blocks). Some of the blocks are mandatory,
i.e. a capture file is not valid if they are not present, other are
optional.</t>
        <t>The General Block Structure allows defining other blocks if needed.
A parser that does not understand them can simply ignore their
content.</t>
      </section>
      <section anchor="block-types">
        <name>Block Types</name>
        <t>The currently standardized Block Type codes are specified in <xref target="section_block_code_registry"/>; they have been grouped in the
following four categories:</t>
        <t>(1) Mandatory: The following block MUST appear at least once in each file:</t>
        <ul spacing="normal">
          <li>
            <t><xref target="section_shb">Section Header Block</xref>: it defines the most important characteristics of the
capture file.</t>
          </li>
        </ul>
        <t>(2) Optional: The following blocks MAY appear in a file:</t>
        <ul spacing="normal">
          <li>
            <t><xref target="section_idb">Interface Description Block</xref>:
it defines the most important characteristics of the interface(s)
used for capturing traffic. This block is required in certain
cases, as described later.</t>
          </li>
          <li>
            <t><xref target="section_epb">Enhanced Packet Block</xref>: it
contains a single captured packet, or a portion of it. It
represents an evolution of the original, now obsolete, <xref target="appendix_pb">Packet Block</xref>. If this appears in a
file, an Interface Description Block is also required, before this
block.</t>
          </li>
          <li>
            <t><xref target="section_spb">Simple Packet Block</xref>: it
contains a single captured packet, or a portion of it, with only a
minimal set of information about it. If this appears in a file, an
Interface Description Block is also required, before this
block.</t>
          </li>
          <li>
            <t><xref target="section_nrb">Name Resolution Block</xref>: it
defines the mapping from numeric addresses present in the packet
capture and the canonical name counterpart.</t>
          </li>
          <li>
            <t><xref target="section_isb">Interface Statistics Block</xref>: it
defines how to store some statistical data (e.g. packet dropped,
etc) which can be useful to understand the conditions in which the
capture has been made. If this appears in a file, an Interface
Description Block is also required, before this block.</t>
          </li>
          <li>
            <t><xref target="section_custom_block">Custom Block</xref>: it
contains vendor-specific data in a portable fashion.</t>
          </li>
        </ul>
        <t>(3) Obsolete: The following block SHOULD NOT appear in newly written
files (but is documented in the Appendix for reference):</t>
        <ul spacing="normal">
          <li>
            <t><xref target="appendix_pb">Packet Block</xref>: it contains a
single captured packet, or a portion of it. It is OBSOLETE, and
superseded by the <xref target="section_epb">Enhanced Packet Block</xref>.</t>
          </li>
        </ul>
        <t>(4) Experimental: The following blocks are considered interesting but
the authors believe that they deserve more in-depth discussion before
being defined:</t>
        <ul spacing="normal">
          <li>
            <t>Alternative Packet Blocks</t>
          </li>
          <li>
            <t>Compression Block</t>
          </li>
          <li>
            <t>Encryption Block</t>
          </li>
          <li>
            <t>Fixed Length Block</t>
          </li>
          <li>
            <t>Directory Block</t>
          </li>
          <li>
            <t>Traffic Statistics and Monitoring Blocks</t>
          </li>
          <li>
            <t>Event/Security Blocks</t>
          </li>
        </ul>
        <t>Requests for new standardized Block Type codes should be made by
creating a pull request to update this document as described in
<xref target="section_block_code_registry"/>.</t>
      </section>
      <section anchor="logical-block-hierarchy">
        <name>Logical Block Hierarchy</name>
        <t>The blocks build a logical hierarchy as they refer to each other. <xref target="block-hierarchy"/> shows the logical hierarchy of the
currently defined blocks in the form of a "tree view":</t>
        <figure anchor="block-hierarchy">
          <name>Logical Block Hierarchy of a pcapng File</name>
          <artwork align="left"><![CDATA[
Section Header
|
+- Interface Description
|  +- Simple Packet
|  +- Enhanced Packet
|  +- Interface Statistics
|
+- Name Resolution
]]></artwork>
        </figure>
        <t>For example: each captured packet refers to a specific capture
interface, the interface itself refers to a specific section.</t>
      </section>
      <section anchor="physical-file-layout">
        <name>Physical File Layout</name>
        <t>The file MUST begin with a Section Header Block. However, more than
one Section Header Block can be present in the capture file, each one
covering the data following it until the next one (or the end of
file). A Section includes the data delimited by two Section Header
Blocks (or by a Section Header Block and the end of the file),
including the first Section Header Block.</t>
        <t>In case an application cannot read a Section because of different
version number, it MUST skip everything until the next Section Header
Block. Note that, in order to properly skip the blocks until the next
section, all blocks MUST have the fields Type and Length at the
beginning. In order to properly skip blocks in the backward direction,
all blocks MUST have the Length repeated at the end of the block.
These are mandatory requirements that MUST be maintained in future
versions of the block format.</t>
        <t><xref target="fssample-SHB"/> shows a typical file layout, with a
single Section Header that covers the whole file.</t>
        <figure anchor="fssample-SHB">
          <name>File structure example: Typical layout with a single Section Header Block</name>
          <artwork align="left"><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SHB v1.0  |                      Data                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t><xref target="fssample-SHB3"/> shows a file that contains three headers, and is normally the result
of file concatenation. An application that understands only version
1.0 of the file format skips the intermediate section and restart
processing the packets after the third Section Header.</t>
        <figure anchor="fssample-SHB3">
          <name>File structure example: three Section Header Blocks in a single file</name>
          <artwork align="left"><![CDATA[
|--   1st Section   --|--   2nd Section   --|--  3rd Section  --|
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SHB v1.0  |  Data   | SHB V1.1  |  Data   | SHB V1.0  |  Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t><xref target="fssample-minimum"/> shows a file comparable to a "classic libpcap" file - the minimum for
a useful capture file. It contains a single Section Header Block
(SHB), a single Interface Description Block (IDB) and a few Enhanced
Packet Blocks (EPB).</t>
        <figure anchor="fssample-minimum">
          <name>File structure example: a pcapng file similar to a classical libpcap file</name>
          <artwork align="left"><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SHB | IDB | EPB | EPB |    ...    | EPB |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t><xref target="fssample-full"/> shows a complex example file. In addition to the minimum file above,
it contains packets captured from three interfaces, capturing on the
third of which begins after packets have arrived on other interfaces,
and also includes some Name Resolution Blocks (NRB) and an Interface
Statistics Block (ISB).</t>
        <figure anchor="fssample-full">
          <name>File structure example: complex pcapng file</name>
          <artwork align="left"><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SHB | IDB | IDB | EPB | NRB |...| IDB | EPB | ISB | NRB | EPB |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The last example should make it obvious that the block structure
makes the file format very flexible compared to the classical libpcap
format.</t>
      </section>
      <section anchor="section_opt">
        <name>Options</name>
        <t>All the block bodies MAY embed optional fields.
Optional fields can be used to insert some information that may be
useful when reading data, but that is not really needed for packet
processing. Therefore, each tool can either read the content of the
optional fields (if any), or skip some of them or even all at
once.</t>
        <t>A block that may contain options must be structured so that
the number of octets of data in the Block Body that precede the
options can be determined from that data; that allows the
beginning of the options to be found.  That is true for all
standard blocks that support options; for Custom Blocks that
support options, the Custom Data must be structured in such a
fashion.  This means that the Block Length field (present in
the General Block Structure, see <xref target="section_block"/>) can be used to determine how
many octets of optional fields, if any, are present in the block.
That number can be used to determine whether the block has
optional fields (if it is zero, there are no optional fields),
to check, when processing optional fields, whether any optional
fields remain, and to skip all the optional fields at once.</t>
        <t>Options are a list of Type - Length - Value fields, each one
containing a single value:</t>
        <ul spacing="normal">
          <li>
            <t>Option Type (16 bits): an unsigned value that contains
the code that specifies the type of the current TLV record.
Option types whose Most Significant Bit is equal to one are
reserved for local use; therefore, there is no guarantee
that the code used is unique among all capture files
(generated by other applications), and is most certainly not
portable.  For cross-platform globally unique
vendor-specific extensions, the Custom Option MUST be used
instead, as defined in <xref target="section_custom_option"/>).</t>
          </li>
          <li>
            <t>Option Length (16 bits): an unsigned value that contains
the actual length of the following 'Option Value' field
without the padding octets.</t>
          </li>
          <li>
            <t>Option Value (variable length): the value of the given
option, padded to a 32-bit boundary. The actual length of
this field (i.e. without the padding octets) is specified
by the Option Length field.</t>
          </li>
        </ul>
        <t>Requests for new standardized option codes for a given block
should be made by creating a pull request to update this document
as described in <xref target="section_block_code_registry"/>.</t>
        <t>A given option may have a fixed length, in which case all
instances of that option have a length that is equal to the
specified fixed length, or a variable length, in which case
the option has a minimum length and all instances of that
option must have a length equal to or greater than the specified
minimum length. The length of fixed-length options, and the
minimum length of variable-length options, is specified in the
description of the option; if the minimum length of a
variable-length option is not specified, a zero-length option is
valid. Software that reads these files SHOULD report options
that have an invalid length as errors; the software MAY stop
processing the file if it sees an option that has invalid
length, or MAY ignore the option and continue processing it.
Software that writes these files MUST NOT write files with
options that have invalid lengths.</t>
        <t>If an option's value is a string, the value is not necessarily
zero-terminated. Software that reads these files MUST NOT assume that
strings are zero-terminated, and MUST treat a zero-value octet as a
string terminator.</t>
        <t>Some options may be repeated several times; for example, a
block can have multiple comments, and an Interface Description
Block can give multiple IPv4 or IPv6 addresses for the
interface if it has multiple IPv4 or IPv6 addresses assigned to
it.  Other options may appear at most once in a given block.</t>
        <t>The option list is terminated by an option which uses the
special 'End of Option' code (opt_endofopt).  Code that
writes pcapng files MUST put an opt_endofopt option at the end
of an option list.  Code that reads pcapng files MUST NOT assume
an option list will have an opt_endofopt option at the end; it
MUST also check for the end of the block, and SHOULD treat
blocks where the option list has no opt_endofopt option as if
the option list had an opt_endofopt option at the end.</t>
        <t>The format of the optional fields is shown in <xref target="formatopt"/>.</t>
        <figure anchor="formatopt">
          <name>Options Format</name>
          <artwork align="center"><![CDATA[
                     1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Option Type              |         Option Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/                       Option Value                            /
/              variable length, padded to 32 bits               /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/                                                               /
/                 . . . other options . . .                     /
/                                                               /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Option Type == opt_endofopt |   Option Length == 0          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The following codes can always be present in any optional field:</t>
        <table anchor="optionsall">
          <name>Common Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">opt_endofopt</td>
              <td align="left">0</td>
              <td align="left">0</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">opt_comment</td>
              <td align="left">1</td>
              <td align="left">variable</td>
              <td align="left">yes</td>
            </tr>
            <tr>
              <td align="left">opt_custom</td>
              <td align="left">2988/2989/19372/19373</td>
              <td align="left">variable, minimum 4</td>
              <td align="left">yes</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>opt_endofopt:</dt>
          <dd>
            <t>The
opt_endofopt option delimits the end of the optional fields. This
option MUST NOT be repeated within a given list of options.</t>
          </dd>
        </dl>
        <dl indent="8" newline="true">
          <dt>opt_comment:</dt>
          <dd>
            <t>The
opt_comment option is a UTF-8 string containing human-readable
comment text that is associated to the current block. Line
separators SHOULD be a carriage-return + linefeed ('\r\n') or just
linefeed ('\n'); either form may appear and be considered a line
separator. The string is not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "This packet is the beginning of all of our
problems", "Packets 17-23 showing a bogus TCP retransmission!\r\n
This is reported in bugzilla entry 1486.\nIt will be fixed in the
future.".</t>
        <dl indent="8" newline="true">
          <dt>opt_custom:</dt>
          <dd>
            <t>This option is
described in detail in <xref target="section_custom_option"/>.</t>
          </dd>
        </dl>
        <section anchor="section_custom_option">
          <name>Custom Options</name>
          <t>Customs Options are used for portable, vendor-specific data
related to the block they're in. A Custom Option can be in any block
type that can have options, can be repeated any number of times in a
block, and may come before or after other option types - except the
opt_endofopt option, which is always the last option. Different Custom
Options, of different type codes and/or different Private Enterprise
Numbers, may be used in the same pcapng file. See <xref target="section_vendor"/> for additional details.</t>
          <figure anchor="formatcustomopt">
            <name>Custom Options Format</name>
            <artwork align="center"><![CDATA[
                     1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Custom Option Type        |         Option Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                Private Enterprise Number (PEN)                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/                        Custom Data                            /
/              variable length, padded to 32 bits               /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>The Custom Option has the following fields:</t>
          <ul spacing="normal">
            <li>
              <t>Custom Option Type: The type code number for the Custom Option, which
can be one of the following decimal numbers:  </t>
              <dl indent="8" newline="true">
                <dt>2988:</dt>
                <dd>
                  <t>This option type code
identifies a Custom Option containing a UTF-8 string in the
Custom Data portion.  The string is not zero-terminated.
  This Custom Option can be safely copied to a new file if
the pcapng file is manipulated by an application; otherwise
19372 should be used instead. See <xref target="section_vendor_copy"/> for details.</t>
                </dd>
              </dl>
              <dl indent="8" newline="true">
                <dt>2989:</dt>
                <dd>
                  <t>This option type code
identifies a Custom Option containing binary octets in the
Custom Data portion. This Custom Option can be safely copied
to a new file if the pcapng file is manipulated by an
application; otherwise 19372 should be used instead. See <xref target="section_vendor_copy"/> for details.</t>
                </dd>
              </dl>
              <dl indent="8" newline="true">
                <dt>19372:</dt>
                <dd>
                  <t>This option type code
identifies a Custom Option containing a UTF-8 string in the
Custom Data portion.  The string is not zero-terminated.
This Custom Option should not be copied to a new file if
the pcapng file is manipulated by an application. See <xref target="section_vendor_copy"/> for details.</t>
                </dd>
              </dl>
              <dl indent="8" newline="true">
                <dt>19373:</dt>
                <dd>
                  <t>This option type code
identifies a Custom Option containing binary octets in the
Custom Data portion. This Custom Option should not be copied
to a new file if the pcapng file is manipulated by an
application. See <xref target="section_vendor_copy"/> for
details.</t>
                </dd>
              </dl>
            </li>
            <li>
              <t>Option Length: as described in <xref target="section_block"/>,
this contains the length of the option's value, which includes the
4-octet Private Enterprise Number and variable-length Custom Data
fields, without the padding octets.</t>
            </li>
            <li>
              <t>Private Enterprise Number: An IANA-assigned Private Enterprise
Number identifying the organization which defined the Custom
Option. See <xref target="section_vendor_uses"/> for details. The
PEN MUST be encoded using the same endianness as the Section
Header Block it is within the scope of.</t>
            </li>
            <li>
              <t>Custom Data: the custom data, padded to a 32-bit boundary.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="data-format">
        <name>Data format</name>
        <section anchor="endianness">
          <name>Endianness</name>
          <t>Data contained in each section will always be saved according to
the characteristics (little endian / big endian) of the capturing
machine. This refers to all the fields that are saved as numbers and
that span over two or more octets.</t>
          <t>The approach of having each section saved in the native format of
the generating host is more efficient because it avoids translation
of data when reading / writing on the host itself, which is the most
common case when generating/processing capture captures.</t>
          <t>Please note: The endianness is indicated by the <xref target="section_shb">Section Header Block</xref>. Since this block
can appear several times in a pcapng file, a single file can contain
both endianness variants.</t>
        </section>
        <section anchor="alignment">
          <name>Alignment</name>
          <t>All fields of this specification use proper alignment for 16-
and 32-bit values. This makes it easier and faster to read/write
file contents if using techniques like memory mapped files.</t>
          <t>The alignment octets (marked in this document e.g. with "padded to
32 bits") MUST be filled with zeroes.</t>
          <t>Please note: 64-bit values are not aligned to 64-bit boundaries.
This is because the file is naturally aligned to 32-bit boundaries
only. Special care MUST be taken when reading and writing such
values. (Note also that some 64-bit values are represented as a
64-bit integer in the endianness of the machine that wrote the
file, and others are represented as 2 32-bit values, one
containing the upper 32 bits of the value and one containing
the lower 32 bits of the value, each written as 32-bit
integers in the endianness of the machine that wrote the file.
Neither of these formats guarantee 64-bit alignment.)</t>
        </section>
        <section anchor="strings">
          <name>Strings</name>
          <t>If a string is specified as being encoded as UTF-8, software that reads
that string MUST NOT assume that the string's value is valid UTF-8.
Implementations MAY discard a string that are invalid UTF-8 or MAY repair the string by
replacing invalid octet sequences with valid sequences.
For example such using the sequence for a Unicode REPLACEMENT CHARACTER.
Implementations that write string fields MUST write only valid UTF-8 strings.</t>
        </section>
      </section>
    </section>
    <section anchor="section_block_definition">
      <name>Block Definition</name>
      <t>This section details the format of the blocks currently defined.</t>
      <section anchor="section_shb">
        <name>Section Header Block</name>
        <t>The Section Header Block (SHB) is mandatory. It identifies the
beginning of a section of the capture file. The Section Header
Block does not contain data but it rather identifies a list of blocks
(interfaces, packets) that are logically correlated. Its format is
shown in <xref target="format_shb"/>.</t>
        <figure anchor="format_shb">
          <name>Section Header Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                   Block Type = 0x0A0D0D0A                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                      Byte-Order Magic                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |          Major Version        |         Minor Version         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 |                                                               |
   |                          Section Length                       |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The meaning of the fields is:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Section Header Block is the
integer corresponding to the 4-char string "\n\r\r\n"
(0x0A0D0D0A). This particular value is used for 2 reasons:  </t>
            <ol spacing="normal" type="1"><li>
                <t>This number is used to detect if a file has been transferred
  via FTP or HTTP from a machine to another with an inappropriate
  ASCII conversion. In this case, the value of this field will
  differ from the standard one ("\n\r\r\n") and the reader can
  detect a possibly corrupted file.</t>
              </li>
              <li>
                <t>This value is palindromic, so that the reader is able to
  recognize the Section Header Block regardless of the endianness
  of the section. The endianness is recognized by reading the
  Byte-Order Magic, which is located 8 octets after the Block Type.</t>
              </li>
            </ol>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Byte-Order Magic (32 bits): an unsigned magic number,
whose value is the hexadecimal number 0x1A2B3C4D. This
number can be used to distinguish sections that have been
saved on little-endian machines from the ones saved on
big-endian machines, and to heuristically identify pcapng
files.</t>
          </li>
          <li>
            <t>Major Version (16 bits): an unsigned value, giving the
number of the current major version of the format. The
value for the current version of the format is 1.</t>
          </li>
          <li>
            <t>Minor Version (16 bits): an unsigned value, giving the
number of the current minor version of the format. The
value for the current version of the format is 0.</t>
          </li>
          <li>
            <t>Section Length (64 bits): a signed value specifying the
length in octets of the following section, excluding the
Section Header Block itself.  This field can be used to skip
the section, for faster navigation inside large files. If
the Section Length is -1 (0xFFFFFFFFFFFFFFFF), this means
that the size of the section is not specified, and the only
way to skip the section is to parse the blocks that it
contains. Please note that if this field is valid (i.e.
not negative), its value is always a multiple of 4, as all
the blocks are aligned to and padded to 32-bit (4 octet)
boundaries. Also, special care should be taken in accessing
this field: since the alignment of all the blocks in the
file is 32-bits, this field is not guaranteed to be aligned
to a 64-bit boundary.  This could be a problem on 64-bit
processors.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.</t>
          </li>
        </ul>
        <t>Writers of pcapng files MUST NOT write SHBs with a Major Version other
than 1 or a Minor Version other than 0.  If they do so, they will write
a file that many readers of pcapng files, such as programs using libpcap
to read pcapng files (including, but not limited to, tcpdump),
Wireshark, and possibly other programs not to be able to read their
files.</t>
        <t>Some pcapng file writers have used a minor version of 2, but the file
format did not change incompatibly (new block types were added); Readers
of pcapng files MUST treat a Minor Version of 2 as equivalent to a Minor
Version of 0 (and, if they also write a pcapng file based on the results
of reading one or more pcapng files, they MUST NOT, as per the previous
sentence, write an SHB with a Minor Version of 2, even if they read an
SHB with a Minor Version of 2).  As indicated above, using a minor
version number other than 0 when writing a section of a pcapng file will
produce a section that most existing software will not be able to read;
future versions of some of that software will be able to read sections
with a version of 1.2, but older copies of that software that are not
updated to the latest version will still not be able to read them.</t>
        <t>The Major Version would be changed only if a new version of this
specification, for a later major version of the file format, were
created.  Such a version would only be created if the format were to
change in such a way that code that reads the new format could not read
the old format (i.e., code to read both formats would have to check the
version number and use different code paths for the two formats) and
code that reads the old format could not read the new format.  An
incompatible change to the format of an existing block or an existing
option would be such a change; the addition of a new block or a new
option would not be such a change.  An example of such an incompatible
change would be the addition of an additional field to the Section
Header Block, following the Minor Version field and before the Snaplen
field; software expecting the new SHB format would not correctly read
the old SHB format, and software expecting the old SHB format would not
correctly read the new SHB format.  (Note that a change to the SHB must
leave the Block Type, Block Total Length, Byte-Order Magic, Major
Version, and Minor Version fields at the same offsets from the beginning
of the SHB and with the same lengths, must keep the value of the Block
Type the same, must keep the two possible values of the Byte-Order
Magic the same, depending on the block's byte order, so that the rest of
the SHB can be correctly interpreted.)</t>
        <t>The Minor Version would be changed only if a new version of this
specification, for a later minor version of the file format, were
created.  Such a version would only be created if the format were to
change in such a way that code that reads the new format could read the
old format without checking the version number but code that reads the
old format could not read all files in the new format.  A
backward-compatible change to the format of an existing block or an
existing option would be such a change; the addition of a new block or
a new option would not be such a change.  An example of such a
backward-compatible but not forward-compatible change would be a change
to the Interface Description block (see below) to use the current
Reserved field to indicate the presence of additional fields before the
Options, with a zero value indicate no such fields are present.</t>
        <t>I.e., adding new block types or options would not require that either
the Major Version or the Minor Version be changed, as code that does not
know about the block type or option should just skip it; only if
skipping a block or option does not work should the minor version number
be changed.</t>
        <t>Aside from the options defined in <xref target="section_opt"/>, the
following options are valid within this block:</t>
        <table anchor="options_shb">
          <name>Section Header Block Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">shb_hardware</td>
              <td align="left">2</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">shb_os</td>
              <td align="left">3</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">shb_userappl</td>
              <td align="left">4</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>shb_hardware:</dt>
          <dd>
            <t>The
shb_hardware option is a UTF-8 string containing the description
of the hardware used to create this section. The string is
not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "x86 Personal Computer", "Sun Sparc Workstation".</t>
        <dl indent="8" newline="true">
          <dt>shb_os:</dt>
          <dd>
            <t>The shb_os option
is a UTF-8 string containing the name of the operating system used
to create this section. The string is not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "Windows XP SP2", "openSUSE 10.2".</t>
        <dl indent="8" newline="true">
          <dt>shb_userappl:</dt>
          <dd>
            <t>The
shb_userappl option is a UTF-8 string containing the name of the
application used to create this section. The string is not
zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "dumpcap V0.99.7".</t>
        <t>[Open issue: does a program which re-writes a capture file change
the original hardware/os/application info?]</t>
      </section>
      <section anchor="section_idb">
        <name>Interface Description Block</name>
        <t>An Interface Description Block (IDB) is the container for
information describing an interface on which packet data is
captured.</t>
        <t>Tools that write / read the capture file associate an incrementing
unsigned 32-bit number (starting from '0') to each Interface
Definition Block, called the Interface ID for the interface in
question. This number is unique within each Section and
identifies the interface to which the IDB refers; it is only
unique inside the current section, so, two Sections can have
different interfaces identified by the same Interface ID values.
This unique identifier is referenced by other blocks, such as
Enhanced Packet Blocks and Interface Statistic Blocks, to
indicate the interface to which the block refers (such the
interface that was used to capture the packet that an Enhanced
Packet Block contains or to which the statistics in an Interface
Statistic Block refer).</t>
        <t>Within a section, there must be an Interface Description Block for each
interface to which another block within that section refers.  Blocks
such as an Enhanced Packet Block or an Interface Statistics Block
contain an Interface ID value referring to a particular interface, and a
Simple Packet Block implicitly refers to an interface with an Interface
ID of 0.  If the file does not contain any blocks that use an Interface
ID, then the file does not need to have any IDBs.</t>
        <t>There is no requirement that all Interface Description Blocks occur
within a section before all blocks of other types, as long as the
Interface Description Block for an interface occurs before any block
that refers to that interface.</t>
        <t>An Interface Description Block is valid only inside the section
to which it belongs. The structure of an Interface Description Block is
shown in <xref target="format_idb"/>.</t>
        <figure anchor="format_idb">
          <name>Interface Description Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                    Block Type = 0x00000001                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |           LinkType            |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                            SnapLen                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The meaning of the fields is:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Interface Description Block
is 1.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>LinkType (16 bits): an unsigned value that defines the
link layer type of this interface.  The list of Standardized
Link Layer Type codes is available in <xref target="I-D.richardson-opsawg-pcaplinktype"/>.</t>
          </li>
          <li>
            <t>Reserved (16 bits): not used - MUST be filled with 0 by
pcapng file writers, and MUST be ignored by pcapng file
readers.</t>
          </li>
          <li>
            <t>SnapLen (32 bits): an unsigned value indicating the
maximum number of octets captured from each packet.  The
portion of each packet that exceeds this value will not be
stored in the file. A value of zero indicates no limit.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.</t>
          </li>
        </ul>
        <t>In addition to the options defined in <xref target="section_opt"/>,
the following options are valid within this block:</t>
        <table anchor="optionsifb">
          <name>Interface Description Block Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">if_name</td>
              <td align="left">2</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_description</td>
              <td align="left">3</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_IPv4addr</td>
              <td align="left">4</td>
              <td align="left">8</td>
              <td align="left">yes</td>
            </tr>
            <tr>
              <td align="left">if_IPv6addr</td>
              <td align="left">5</td>
              <td align="left">17</td>
              <td align="left">yes</td>
            </tr>
            <tr>
              <td align="left">if_MACaddr</td>
              <td align="left">6</td>
              <td align="left">6</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_EUIaddr</td>
              <td align="left">7</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_speed</td>
              <td align="left">8</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_tsresol</td>
              <td align="left">9</td>
              <td align="left">1</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_tzone</td>
              <td align="left">10</td>
              <td align="left">4</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_filter</td>
              <td align="left">11</td>
              <td align="left">variable, minimum 1</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_os</td>
              <td align="left">12</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_fcslen</td>
              <td align="left">13</td>
              <td align="left">1</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_tsoffset</td>
              <td align="left">14</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_hardware</td>
              <td align="left">15</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_txspeed</td>
              <td align="left">16</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_rxspeed</td>
              <td align="left">17</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">if_iana_tzname</td>
              <td align="left">18</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>if_name:</dt>
          <dd>
            <t>The if_name option
is a UTF-8 string containing the name of the device used to
capture data. The string is not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "eth0", "\Device\NPF_{AD1CE675-96D0-47C5-ADD0-2504B9126B68}".</t>
        <dl indent="8" newline="true">
          <dt>if_description:</dt>
          <dd>
            <t>The
if_description option is a UTF-8 string containing the description
of the device used to capture data. The string is not
zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "Wi-Fi", "Local Area Connection", "Wireless
Network Connection", "First Ethernet Interface".</t>
        <dl indent="8" newline="true">
          <dt>if_IPv4addr:</dt>
          <dd>
            <t>The if_IPv4addr
option is an IPv4 network address and corresponding netmask for
the interface. The first four octets are the IP address, and
the next four octets are the netmask. This option can be repeated
multiple times within the same Interface Description Block when
multiple IPv4 addresses are assigned to the interface. Note that
the IP address and netmask are both treated as four octets, one
for each octet of the address or mask; they are not 32-bit
numbers, and thus the endianness of the SHB does not affect
this field's value.</t>
          </dd>
        </dl>
        <t>Examples: '192 168 1 1 255 255 255 0'.</t>
        <dl indent="8" newline="true">
          <dt>if_IPv6addr:</dt>
          <dd>
            <t>The
if_IPv6addr option is an IPv6 network address and corresponding
prefix length for the interface. The first 16 octets are the
IP address and the next octet is the prefix length. This option
can be repeated multiple times within the same Interface
Description Block when multiple IPv6 addresses are assigned to
the interface.</t>
          </dd>
        </dl>
        <t>Example: 2001:0db8:85a3:08d3:1319:8a2e:0370:7344/64 is written
(in hex) as '20 01 0d b8 85 a3 08 d3 13 19 8a 2e 03 70 73 44
40'.</t>
        <dl indent="8" newline="true">
          <dt>if_MACaddr:</dt>
          <dd>
            <t>The if_MACaddr
option is the Interface Hardware EUI-48 (MAC) address (48 bits), if
available.</t>
          </dd>
        </dl>
        <t>Example: '00 01 02 03 04 05'.</t>
        <dl indent="8" newline="true">
          <dt>if_EUIaddr:</dt>
          <dd>
            <t>The if_EUIaddr
option is the Interface Hardware EUI-64 address (64 bits), if
available.</t>
          </dd>
        </dl>
        <t>Example: '02 34 56 FF FE 78 9A BC'.</t>
        <dl indent="8" newline="true">
          <dt>if_speed:</dt>
          <dd>
            <t>The if_speed
option is a 64-bit unsigned value indicating the interface
speed, in bits per second.</t>
          </dd>
        </dl>
        <t>Example: the 64-bit decimal number 100000000 for 100Mbps.</t>
        <dl indent="8" newline="true">
          <dt>if_tsresol:</dt>
          <dd>
            <t>The if_tsresol
option identifies the resolution of timestamps. If the Most
Significant Bit is equal to zero, the remaining bits indicates the
resolution of the timestamp as a negative power of 10 (e.g. 6
means microsecond resolution, timestamps are the number of
microseconds since 1970-01-01 00:00:00 UTC). If the Most
Significant Bit is equal to one, the remaining bits indicates
the resolution as negative power of 2 (e.g. 10 means 1/1024
of second). If this option is not present, a resolution of
10^-6 is assumed (i.e. timestamps have the same resolution of
the standard 'libpcap' timestamps).</t>
          </dd>
        </dl>
        <t>Example: '6'.</t>
        <dl indent="8" newline="true">
          <dt>if_tzone:</dt>
          <dd>
            <t>The if_tzone
option identifies the time zone for GMT support.  This option has
never been specified in greater detail, and, unless it were to
identify something such as an <eref target="https://www.iana.org/time-zones">IANA time zone database</eref>
timezone, would be insufficient for converting between UTC and local
time.  Therefore, it SHOULD NOT be used; instead, the if_iana_tzname
option SHOULD be used if time zone information is to be specified.</t>
          </dd>
        </dl>
        <t>Example: none</t>
        <dl indent="8" newline="true">
          <dt>if_filter:</dt>
          <dd>
            <t>The if_filter
option identifies the filter (e.g. "capture only TCP traffic")
used to capture traffic. The first octet of the Option Data keeps a
code of the filter used (e.g. if this is a libpcap string, or BPF
bytecode, and more). More details about this format will be
presented in Appendix XXX (TODO). (TODO: better use different
options for different fields? e.g. if_filter_pcap, if_filter_bpf,
...)</t>
          </dd>
        </dl>
        <t>Example: '00'"tcp port 23 and host 192.0.2.5".</t>
        <dl indent="8" newline="true">
          <dt>if_os:</dt>
          <dd>
            <t>The if_os option is
a UTF-8 string containing the name of the operating system of the
machine in which this interface is installed. This can be
different from the same information that can be contained by the
Section Header Block (<xref target="section_shb"/>) because the
capture can have been done on a remote machine. The string is
not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "Windows XP SP2", "openSUSE 10.2".</t>
        <dl indent="8" newline="true">
          <dt>if_fcslen:</dt>
          <dd>
            <t>The if_fcslen
option is an 8-bit unsigned integer value that specifies the
length of the Frame Check Sequence (in bits) for this interface.
For link layers whose FCS length can change during time, the
Enhanced Packet Block epb_flags Option can be used in each
Enhanced Packet Block (see <xref target="section_epb_flags"/>).</t>
          </dd>
        </dl>
        <t>Example: '4'.</t>
        <dl indent="8" newline="true">
          <dt>if_tsoffset:</dt>
          <dd>
            <t>The
if_tsoffset option is a 64-bit signed integer value that
specifies an offset (in seconds) that must be added to the
timestamp of each packet to obtain the absolute timestamp of
a packet. If the option is not present, an offset of 0 is assumed
(i.e., timestamps in blocks are absolute timestamps).
</t>
            <t>This offset is not intended to be used as an offset between local
time and UTC; for this purpose, the if_iana_tzname option SHOULD be
used to specify a timezone.</t>
          </dd>
        </dl>
        <t>Example: '1234'.</t>
        <dl indent="8" newline="true">
          <dt>if_hardware:</dt>
          <dd>
            <t>The
if_hardware option is a UTF-8 string containing the description
of the interface hardware. The string is not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "Broadcom NetXtreme", "Intel(R) PRO/1000 MT
Network Connection", "NETGEAR WNA1000Mv2 N150 Wireless USB
Micro Adapter".</t>
        <dl indent="8" newline="true">
          <dt>if_txspeed:</dt>
          <dd>
            <t>The
if_txspeed option is a 64-bit unsigned value
indicating the interface transmit speed in bits per
second.</t>
          </dd>
        </dl>
        <t>Example: the 64-bit decimal number 1024000 for
1024Kbps.</t>
        <dl indent="8" newline="true">
          <dt>if_rxspeed:</dt>
          <dd>
            <t>The
if_rxspeed option is a 64-bit unsigned value
indicating the interface receive speed, in bits per
second.</t>
          </dd>
        </dl>
        <t>Example: the 64-bit decimal number 8192000 for
8192Kbps.</t>
        <t>If the interface transmit speed and receive speed are the
same, the if_speed option MUST be used and the if_txspeed and
if_rxspeed options MUST NOT be used.  If the transmit speed is
unknown, the if_speed and if_txspeed options MUST NOT be used;
if the receive speed is unknown, the if_speed and if_rxspeed
options MUST NOT be used.</t>
        <dl indent="8" newline="true">
          <dt>if_iana_tzname:</dt>
          <dd>
            <t>The if_iana_tzname
option is a UTF-8 string that indicates the <eref target="https://www.iana.org/time-zones">IANA time zone database</eref>
timezone name for the IANA database timezone in which the interface
is located. The string is not zero-terminated.</t>
          </dd>
        </dl>
        <t>Examples: "Africa/Nairobi", "Asia/Kolkata", "America/Sao_Paulo",
"Europe/Berlin".</t>
      </section>
      <section anchor="section_epb">
        <name>Enhanced Packet Block</name>
        <t>An Enhanced Packet Block (EPB) is the standard container for
storing the packets coming from the network. The Enhanced Packet Block
is optional because packets can be stored either by means of this
block or the Simple Packet Block, which can be used to speed up
capture file generation; or a file may have no packets in it. The
format of an Enhanced Packet Block is shown in <xref target="format_epb"/>.</t>
        <t>The Enhanced Packet Block is an improvement over the original, now
obsolete, <xref target="appendix_pb">Packet Block</xref>:</t>
        <ul spacing="normal">
          <li>
            <t>it stores the Interface Identifier as a 32-bit integer value.
This is a requirement when a capture stores packets coming from a
large number of interfaces;</t>
          </li>
          <li>
            <t>unlike the <xref target="appendix_pb">Packet Block</xref>, the
number of packets dropped by the capture system between this
packet and the previous one is not stored in the header, but
rather in an option of the block itself.</t>
          </li>
        </ul>
        <figure anchor="format_epb">
          <name>Enhanced Packet Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                    Block Type = 0x00000006                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                         Interface ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                       (Upper 32 bits)                         |
   + - - - - - - - - - - - -  Timestamp  - - - - - - - - - - - - - +
16 |                       (Lower 32 bits)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
20 |                    Captured Packet Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 |                    Original Packet Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 /                                                               /
   /                          Packet Data                          /
   /              variable length, padded to 32 bits               /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The Enhanced Packet Block has the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Enhanced Packet Block is 6.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Interface ID (32 bits): an unsigned value that specifies the
interface on which this packet was received or transmitted;
the correct interface will be the one whose Interface
Description Block (within the current Section of the file) is
identified by the same number (see <xref target="section_idb"/>)
of this field. The interface ID MUST be valid, which means that an
matching interface description block MUST exist.</t>
          </li>
          <li>
            <t>Timestamp (64 bits): two 32-bit unsigned values, representing a single
64-bit unsigned integer, with the first value being the upper 32 bits
of that integer and the second value being the lower 32 bits of that
integer.  The 64-bit unsigned integer is a count of units of time.  </t>
            <t>
The length of a unit of time is specified by the 'if_tsresol' option
(see <xref target="format_idb"/>) of the Interface Description Block specified by
the Interface ID.  </t>
            <t>
The 'if_tsoffset' option value, converted from seconds to units of
time, plus the timestamp value, represents the number of units of
time that have elapsed since 1970-01-01 00:00:00 UTC.  </t>
            <t>
Note that, unlike timestamps in the pcap file format, timestamps in
Enhanced Packet Blocks are not saved as two 32-bit values
that represent the seconds and microseconds that have
elapsed since 1970-01-01 00:00:00 UTC. Timestamps in Enhanced
Packet Blocks are saved as two 32-bit words that represent
the upper and lower 32 bits of a single 64-bit quantity.</t>
          </li>
          <li>
            <t>Captured Packet Length (32 bits): an unsigned value that
indicates the number of octets captured from the packet
(i.e., the length of the Packet Data field). It will be the
minimum value among the Original Packet Length and the
snapshot length for the interface (SnapLen, defined in
<xref target="format_idb"/>). The value of this field does not include the padding
octets added at the end of the Packet Data field to align the Packet
Data field to a 32-bit boundary.</t>
          </li>
          <li>
            <t>Original Packet Length (32 bits): an unsigned value that indicates the
number of octets of packet data that would have been provided had the
packet not been truncated to the snapshot length for the interface or
to a length limit imposed by the capture mechanism.  If no truncation
was done, it will be the same as the Captured Packet Length, but it
will be different from the Captured Packet Length if the packet has
been truncated by the capture process. It SHOULD NOT be less than the
Captured Packet Length.  </t>
            <t>
A pcapng file writer MAY write an Original Packet Length that is less
than the Captured Packet Length if both the Captured Packet Length and
the Original Packet length came from a file in which a packet had an
Original Packet Length less than the Captured Packet Length;
otherwise, it MUST write an Original Packet Length that is greater
than or equal to the Captured Packet Length.  </t>
            <t>
A pcapng file reader MAY convert an Original Packet Length that is
less than the Captured Packet Length to a value that is greater than
or equal to the Captured Packet Length.</t>
          </li>
          <li>
            <t>Packet Data: the data coming from the network, including
link-layer headers. The actual length of this field is
Captured Packet Length plus the padding to a 32-bit
boundary. The format of the link-layer headers depends on
the LinkType field specified in the Interface Description
Block (see <xref target="section_idb"/>) and it is specified
in the entry for that format in <xref target="I-D.richardson-opsawg-pcaplinktype"/>.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.</t>
          </li>
        </ul>
        <t>In addition to the options defined in <xref target="section_opt"/>,
the following options are valid within this block:</t>
        <table anchor="options_epb">
          <name>Enhanced Packet Block Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">epb_flags</td>
              <td align="left">2</td>
              <td align="left">4</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">epb_hash</td>
              <td align="left">3</td>
              <td align="left">variable, minimum hash type-dependent</td>
              <td align="left">yes</td>
            </tr>
            <tr>
              <td align="left">epb_dropcount</td>
              <td align="left">4</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">epb_packetid</td>
              <td align="left">5</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">epb_queue</td>
              <td align="left">6</td>
              <td align="left">4</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">epb_verdict</td>
              <td align="left">7</td>
              <td align="left">variable, minimum verdict type-dependent</td>
              <td align="left">yes</td>
            </tr>
            <tr>
              <td align="left">epb_processid_threadid</td>
              <td align="left">8</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>epb_flags:</dt>
          <dd>
            <t>The epb_flags
option is a 32-bit flags word containing link-layer information. A
complete specification of the allowed flags can be found in <xref target="section_epb_flags"/>.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>epb_hash:</dt>
          <dd>
            <t>The epb_hash
option contains a hash of the packet. The first octet specifies the
hashing algorithm, while the following octets contain the actual
hash, whose size depends on the hashing algorithm, and hence from
the value in the first octet. The hashing algorithm can be: 2s
complement (algorithm octet = 0, size = XXX), XOR (algorithm octet =
1, size=XXX), CRC32 (algorithm octet = 2, size = 4), MD-5
(algorithm octet = 3, size = 16), SHA-1 (algorithm octet = 4,
size = 20), Toeplitz (algorithm octet = 5, size = 4). The hash covers
only the packet, not the header added by the capture driver: this
gives the possibility to calculate it inside the network card. The
hash allows easier comparison/merging of different capture files,
and reliable data transfer between the data acquisition system and
the capture library.</t>
          </dd>
        </dl>
        <t>Examples: '02 EC 1D 87 97', '03 45 6E C2 17 7C 10 1E 3C 2E 99 6E C2 9A 3D
50 8E'.</t>
        <dl indent="8" newline="true">
          <dt>epb_dropcount:</dt>
          <dd>
            <t>The
epb_dropcount option is a 64-bit unsigned integer value
specifying the number of packets lost (by the interface and
the operating system) between this packet and the preceding
one for the same interface or, for the first packet for an
interface, between this packet and the start of the capture
process.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>epb_packetid:</dt>
          <dd>
            <t>The
epb_packetid option is a 64-bit unsigned integer that uniquely
identifies the packet. If the same packet is seen by multiple
interfaces and there is a way for the capture application to
correlate them, the same epb_packetid value must be used. An
example could be a router that captures packets on all its
interfaces in both directions. When a packet hits interface A
on ingress, an EPB entry gets created, TTL gets decremented,
and right before it egresses on interface B another EPB entry
gets created in the trace file. In this case, two packets are
in the capture file, which are not identical but the
epb_packetid can be used to correlate them.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>epb_queue:</dt>
          <dd>
            <t>The epb_queue
option is a 32-bit unsigned integer that identifies on which queue
of the interface the specific packet was received.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>epb_verdict:</dt>
          <dd>
            <t>The epb_verdict
option stores a verdict of the packet. The verdict indicates what
would be done with the packet after processing it. For example, a
firewall could drop the packet. This verdict can be set by various
components, i.e. Hardware, Linux's eBPF TC or XDP framework, etc.
etc. The first octet specifies the verdict type, while the
following octets contain the actual verdict data, whose size
depends on the verdict type, and hence from the value in the first
octet. The verdict type can be: Hardware (type octet = 0, size =
variable), Linux_eBPF_TC (type octet = 1, size = 8 (64-bit unsigned
integer), value = TC_ACT_* as defined in the Linux <eref target="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/pkt_cls.h">pck_cls.h</eref> include), Linux_eBPF_XDP (type octet = 2, size = 8 (64-bit unsigned
integer), value = xdp_action as defined in the Linux <eref target="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/bpf.h">pbf.h</eref> include).</t>
          </dd>
        </dl>
        <t>Example: '02 00 00 00 00 00 00 00 02' for Linux_eBPF_XDP with
verdict XDP_PASS.</t>
        <dl indent="8" newline="true">
          <dt>epb_processid_threadid:</dt>
          <dd>
            <t>The epb_processid_threadid
option stores the numeric process identifier and thread identifier
of the process which originated the packet as unsigned 32-bit
integers. The value 0 can be used for each if the concept of a
process or thread identifier does not make sense in context (e.g.
for inbound packets) or if the operating system capturing the
packets has no concept of processes or threads, respectively.</t>
          </dd>
        </dl>
        <t>Example: '00 00 04 D2 00 00 00 00' for process 1234 and an unknown
thread.</t>
        <section anchor="section_epb_flags">
          <name>Enhanced Packet Block Flags Word</name>
          <t>The Enhanced Packet Block Flags Word is a 32-bit value that
contains link-layer information about the packet.</t>
          <t>The word is encoded as an unsigned 32-bit integer, using the
endianness of the Section Header Block scope it is in. In the
following table, the bits are numbered with 0 being the
least-significant bit and 31 being the most-significant bit of
the 32-bit unsigned integer. The meaning of the bits is the
following:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Bit Number</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0-1</td>
                <td align="left">Inbound / Outbound packet (00 = information not available, 01 = inbound, 10 = outbound)</td>
              </tr>
              <tr>
                <td align="left">2-4</td>
                <td align="left">Reception type (000 = not specified, 001 = unicast, 010 = multicast, 011 = broadcast, 100 = promiscuous).</td>
              </tr>
              <tr>
                <td align="left">5-8</td>
                <td align="left">FCS length, in octets (0000 if this information is not available). This value overrides the if_fcslen option of the Interface Description Block, and is used with those link layers (e.g. PPP) where the length of the FCS can change during time.</td>
              </tr>
              <tr>
                <td align="left">9</td>
                <td align="left">Checksum not ready, as a consequence of checksum offloading, e.g. a transmitted packet on an interface doing checksum offloading, so that the host networking stack doesn't compute and fill in the checksum before handing the packet either to the network adapter or the wraparound code path in the packet capture mechanism.</td>
              </tr>
              <tr>
                <td align="left">10</td>
                <td align="left">Checksum valid, the checksum has already been checked on the receive path before it was handed to the packet capture mechanism, so there's no need for the packet analyzer to check it.</td>
              </tr>
              <tr>
                <td align="left">11</td>
                <td align="left">TCP segmentation offloaded, this is either a received packet corresponding to several received link-layer packets, with reassembly having been done before the packet was handed to the packet capture mechanism, or a transmitted packet that will correspond to several link-layer packets after being fragmented, but that was wrapped around to the packet capture mechanism before the fragmentation occurred.</td>
              </tr>
              <tr>
                <td align="left">12-15</td>
                <td align="left">Reserved (MUST be set to zero).</td>
              </tr>
              <tr>
                <td align="left">16-31</td>
                <td align="left">link-layer-dependent errors (Bit 31 = symbol error, Bit 30 = preamble error, Bit 29 = Start Frame Delimiter error, Bit 28 = unaligned frame error, Bit 27 = wrong Inter Frame Gap error, Bit 26 = packet too short error, Bit 25 = packet too long error, Bit 24 = CRC error, other?? are 16 bits enough?).</td>
              </tr>
            </tbody>
          </table>
          <t>NOTE: in earlier versions of this specification, the bits
were specified as being numbered with 0 being the
most-significant bit and 31 being the least-significant bit
of the 32-bit unsigned integer, rather than with 0 being the
least-significant bit and 31 being the most-significant bit.
Several implementations number the bits with 0 being the
least-significant bit, and no known implementations number
them with 0 being the most-significant bit, so the
specification was changed to reflect that reality.</t>
        </section>
      </section>
      <section anchor="section_spb">
        <name>Simple Packet Block</name>
        <t>The Simple Packet Block (SPB) is a lightweight container for
storing the packets coming from the network. Its presence is
optional.</t>
        <t>A Simple Packet Block is similar to an Enhanced Packet Block (see <xref target="section_epb"/>), but it is smaller, simpler to process
and contains only a minimal set of information. This block is
preferred to the standard Enhanced Packet Block when performance or
space occupation are critical factors, such as in sustained traffic
capture applications. A capture file can contain both Enhanced Packet
Blocks and Simple Packet Blocks: for example, a capture tool could
switch from Enhanced Packet Blocks to Simple Packet Blocks when the
hardware resources become critical.</t>
        <t>The Simple Packet Block does not contain the Interface ID field.
Therefore, it MUST be assumed that all the Simple Packet Blocks have
been captured on the interface previously specified in the first
Interface Description Block.</t>
        <t><xref target="format_spb"/> shows the format of the Simple Packet
Block.</t>
        <figure anchor="format_spb">
          <name>Simple Packet Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                    Block Type = 0x00000003                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                    Original Packet Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 /                                                               /
   /                          Packet Data                          /
   /              variable length, padded to 32 bits               /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The Simple Packet Block has the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Simple Packet Block is 3.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Original Packet Length (32 bits): an unsigned value
indicating the actual length of the packet when it was
transmitted on the network. It can be different from length
of the Packet Data field's length if the packet has been
truncated by the capture process, in which case the SnapLen
value in <xref target="section_idb"/> will be less than this
Original Packet Length value, and the SnapLen value MUST be
used to determine the size of the Packet Data field
length.</t>
          </li>
          <li>
            <t>Packet Data: the data coming from the network, including
link-layer headers. The length of this field can be derived
from the field Block Total Length, present in the Block
Header, and it is the minimum value among the SnapLen
(present in the Interface Description Block) and the
Original Packet Length (present in this header). The format
of the data within this Packet Data field depends on the
LinkType field specified in the Interface Description Block
(see <xref target="section_idb"/>) and it is specified in
the entry for that format in <xref target="I-D.richardson-opsawg-pcaplinktype"/>.</t>
          </li>
        </ul>
        <t>The Simple Packet Block does not contain the timestamp because this
is often one of the most costly operations on PCs. Additionally, there
are applications that do not require it; e.g. an Intrusion Detection
System is interested in packets, not in their timestamp.</t>
        <t>A Simple Packet Block cannot be present in a Section that has more
than one interface because of the impossibility to refer to the
correct one (it does not contain any Interface ID field).</t>
        <t>The Simple Packet Block is very efficient in term of disk space: a
snapshot whose length is 100 octets requires only 16 octets of overhead,
which corresponds to an efficiency of more than 86%.</t>
      </section>
      <section anchor="section_nrb">
        <name>Name Resolution Block</name>
        <t>The Name Resolution Block (NRB) is used to support the correlation
of numeric addresses (present in the captured packets) and their
corresponding canonical names and it is optional. Having the literal
names saved in the file prevents the need for performing name
resolution at a later time, when the association between names and
addresses may be different from the one in use at capture time.
Moreover, the NRB avoids the need for issuing a lot of DNS requests
every time the trace capture is opened, and also provides name
resolution when reading the capture with a machine not connected to
the network.</t>
        <t>A Name Resolution Block is often placed at the beginning of the
file, but no assumptions can be taken about its position. Multiple
NRBs can exist in a pcapng file, either due to memory constraints or
because additional name resolutions were performed by file processing
tools, like network analyzers.</t>
        <t>A Name Resolution Block need not contain any Records, except the
nrb_record_end Record which MUST be the last Record. The addresses and
names in NRB Records MAY be repeated multiple times; i.e., the same IP
address may resolve to multiple names, the same name may resolve to
the multiple IP addresses, and even the same address-to-name pair may
appear multiple times, in the same NRB or across NRBs.</t>
        <t>The format of the Name Resolution Block is shown in <xref target="format_nrb"/>.</t>
        <figure anchor="format_nrb">
          <name>Name Resolution Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                    Block Type = 0x00000004                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |      Record Type              |      Record Value Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 /                       Record Value                            /
   /              variable length, padded to 32 bits               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   .                                                               .
   .                  . . . other records . . .                    .
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Record Type = nrb_record_end |   Record Value Length = 0     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The Name Resolution Block has the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Name Resolution Block is 4.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
        </ul>
        <t>This is followed by zero or more Name Resolution Records (in the
TLV format), each of which contains an association between a network
address and a name. An nrb_record_end MUST be added after the last
Record, and MUST exist even if there are no other Records in the NRB.
There are currently three possible types of records:</t>
        <table anchor="nrrecords">
          <name>Name Resolution Block Records</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">nrb_record_end</td>
              <td align="left">0x0000</td>
              <td align="left">0</td>
            </tr>
            <tr>
              <td align="left">nrb_record_ipv4</td>
              <td align="left">0x0001</td>
              <td align="left">variable</td>
            </tr>
            <tr>
              <td align="left">nrb_record_ipv6</td>
              <td align="left">0x0002</td>
              <td align="left">variable</td>
            </tr>
            <tr>
              <td align="left">nrb_record_eui48</td>
              <td align="left">0x0003</td>
              <td align="left">variable</td>
            </tr>
            <tr>
              <td align="left">nrb_record_eui64</td>
              <td align="left">0x0004</td>
              <td align="left">variable</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>nrb_record_end:</dt>
          <dd>
            <t>The
nrb_record_end record delimits the end of name resolution
records. This record is needed to determine when the list of name
resolution records has ended and some options (if any) begin.</t>
          </dd>
        </dl>
        <dl indent="8" newline="true">
          <dt>nrb_record_ipv4:</dt>
          <dd>
            <t>The
nrb_record_ipv4 record specifies an IPv4 address (contained in the
first 4 octets), followed by one or more zero-terminated UTF-8
strings containing the DNS entries for that address. The minimum
valid Record Length for this Record Type is thus 6: 4 for the IP
octets, 1 character, and a zero-value octet terminator. Note that
the IP address is treated as four octets, one for each octet of
the IP address; it is not a 32-bit word, and thus the endianness
of the SHB does not affect this field's value.</t>
          </dd>
        </dl>
        <t>Example: '127 0 0 1'"localhost".</t>
        <t>[Open issue: is an empty string (i.e., just a zero-value octet)
valid?]</t>
        <dl indent="8" newline="true">
          <dt>nrb_record_ipv6:</dt>
          <dd>
            <t>The
nrb_record_ipv6 record specifies an IPv6 address (contained in the
first 16 octets), followed by one or more zero-terminated strings
containing the DNS entries for that address. The minimum valid
Record Length for this Record Type is thus 18: 16 for the IP
octets, 1 character, and a zero-value octet terminator.</t>
          </dd>
        </dl>
        <t>Example: '20 01 0d b8 00 00 00 00 00 00 00 00 12 34 56
78'"somehost".</t>
        <t>[Open issue: is an empty string (i.e., just a zero-value octet)
valid?]</t>
        <dl indent="8" newline="true">
          <dt>nrb_record_eui48 / nrb_record_eui64:</dt>
          <dd>
            <t>The
nrb_record_eui48 / nrb_record_eui64 records specify an EUI (or MAC)
address (contained in the first 6 octets for eui48, 8 octets for eui64),
followed by one or more zero-terminated strings containing names resolved
for that address.  As above, the minimum valid Record Length is 8 for
EUI-48 and 10 for EUI-64.  There is no presumption implied in how these
names were acquired unless the DNS server options listed below are present
in the NRB.</t>
          </dd>
        </dl>
        <t>Example: '02 ca ff ee f0 0d'"teapot under test".</t>
        <t>[Open issue: is an empty string (i.e., just a zero-value octet)
valid?]</t>
        <t>Record Types other than those specified earlier MUST be ignored and
skipped past. More Record Types will likely be defined in the future,
and MUST NOT break backwards compatibility.</t>
        <t>Each Record Value is aligned to and padded to a 32-bit boundary.
The corresponding Record Value Length reflects the actual length of
the Record Value; it does not include the lengths of the Record Type
field, the Record Value Length field, any padding for the Record
Value, or anything after the Record Value. For Record Types with name
strings, the Record Length does include the zero-value octet
terminating that string. A Record Length of 0 is valid, unless
indicated otherwise.</t>
        <t>After the list of Name Resolution Records, optionally, a list of
options (formatted according to the rules defined in <xref target="section_opt"/>) can be present.</t>
        <t>In addition to the options defined in <xref target="section_opt"/>,
the following options are valid within this block:</t>
        <table anchor="options_nrb">
          <name>Name Resolution Block Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ns_dnsname</td>
              <td align="left">2</td>
              <td align="left">variable</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">ns_dnsIP4addr</td>
              <td align="left">3</td>
              <td align="left">4</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">ns_dnsIP6addr</td>
              <td align="left">4</td>
              <td align="left">16</td>
              <td align="left">no</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>ns_dnsname:</dt>
          <dd>
            <t>The ns_dnsname
option is a UTF-8 string containing the name of the machine (DNS
server) used to perform the name resolution. The string is not
zero-terminated.</t>
          </dd>
        </dl>
        <t>Example: "our_nameserver".</t>
        <dl indent="8" newline="true">
          <dt>ns_dnsIP4addr:</dt>
          <dd>
            <t>The
ns_dnsIP4addr option specifies the IPv4 address of the DNS server.
Note that the IP address is treated as four octets, one for each
octet of the IP address; it is not a 32-bit word, and thus the
endianness of the SHB does not affect this field's value.</t>
          </dd>
        </dl>
        <t>Example: '192 168 0 1'.</t>
        <dl indent="8" newline="true">
          <dt>ns_dnsIP6addr:</dt>
          <dd>
            <t>The
ns_dnsIP6addr option specifies the IPv6 address of the DNS
server.</t>
          </dd>
        </dl>
        <t>Example: '20 01 0d b8 00 00 00 00 00 00 00 00 12 34 56 78'.</t>
      </section>
      <section anchor="section_isb">
        <name>Interface Statistics Block</name>
        <t>The Interface Statistics Block (ISB) contains the capture
statistics for a given interface and it is optional. The statistics
are referred to the interface defined in the current Section
identified by the Interface ID field. An Interface Statistics Block is
normally placed at the end of the file, but no assumptions can be
taken about its position - it can even appear multiple times for the
same interface.</t>
        <t>The format of the Interface Statistics Block is shown in <xref target="format_isb"/>.</t>
        <figure anchor="format_isb">
          <name>Interface Statistics Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                   Block Type = 0x00000005                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                         Interface ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                       (Upper 32 bits)                         |
   + - - - - - - - - - - - -  Timestamp  - - - - - - - - - - - - - +
16 |                       (Lower 32 bits)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
20 /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The fields have the following meaning:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Interface Statistics Block is
5.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Interface ID (32 bits): an unsigned value that specifies the
interface to which these statistics refer; the correct interface
will be the one whose Interface Description Block (within the current
Section of the file) is identified by the same number (see <xref target="section_idb"/>)
of this field. The interface ID MUST be valid, which means that an
matching interface description block MUST exist.</t>
          </li>
          <li>
            <t>Timestamp (64 bits): the time at which the statistics values were
taken; two 32-bit unsigned values, in the same format as defined
for timestamps in the Enhanced Packet Block (<xref target="section_epb"/>),
using the 'if_tsresol' and 'if_tsoffset' values from the Interface
Description Block specified by the Interface ID.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.</t>
          </li>
        </ul>
        <t>All the statistics fields are defined as options in order to deal
with systems that do not have a complete set of statistics. Therefore,
In addition to the options defined in <xref target="section_opt"/>,
the following options are valid within this block:</t>
        <table anchor="options_isb">
          <name>Interface Statistics Block Options</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Type</th>
              <th align="left">Length</th>
              <th align="left">Multiple allowed?</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">isb_starttime</td>
              <td align="left">2</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_endtime</td>
              <td align="left">3</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_ifrecv</td>
              <td align="left">4</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_ifdrop</td>
              <td align="left">5</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_filteraccept</td>
              <td align="left">6</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_osdrop</td>
              <td align="left">7</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
            <tr>
              <td align="left">isb_usrdeliv</td>
              <td align="left">8</td>
              <td align="left">8</td>
              <td align="left">no</td>
            </tr>
          </tbody>
        </table>
        <dl indent="8" newline="true">
          <dt>isb_starttime:</dt>
          <dd>
            <t>The isb_starttime
option specifies the time that traffic capture started on this
interface, consisting of two unsigned 32-bit values, in the same
format as defined for timestamps in the Enhanced Packet Block
(<xref target="section_epb"/>), using the 'if_tsresol' and 'if_tsoffset' values
from the Interface Description Block specified by the Interface ID.</t>
          </dd>
        </dl>
        <t>Example: '96 c3 04 00 73 89 6a 65', in Little Endian, decodes
to 2012-06-29 06:17:00.834163 UTC.</t>
        <dl indent="8" newline="true">
          <dt>isb_endtime:</dt>
          <dd>
            <t>The isb_endtime
option specifies the time that traffic capture ended on this
interface, consisting of two unsigned 32-bit values, in the same
format as defined for timestamps in the Enhanced Packet Block
(<xref target="section_epb"/>), using the 'if_tsresol' and 'if_tsoffset' values
from the Interface Description Block specified by the Interface ID.</t>
          </dd>
        </dl>
        <t>Example: '97 c3 04 00 aa 47 ca 64', in Little Endian, decodes
to 2012-06-29 07:28:25.298858 UTC.</t>
        <dl indent="8" newline="true">
          <dt>isb_ifrecv:</dt>
          <dd>
            <t>The isb_ifrecv
option specifies the 64-bit unsigned integer number of packets
that were received from the physical interface, starting at the
beginning of the capture.</t>
          </dd>
        </dl>
        <t>Example: the decimal number 100.</t>
        <dl indent="8" newline="true">
          <dt>isb_ifdrop:</dt>
          <dd>
            <t>The isb_ifdrop
option specifies the 64-bit unsigned integer number of packets
that were dropped by the interface due to lack of resources,
starting at the beginning of the capture.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>isb_filteraccept:</dt>
          <dd>
            <t>The
isb_filteraccept option specifies the 64-bit unsigned integer
number of packets that were accepted by the filter, starting
from the beginning of the capture.</t>
          </dd>
        </dl>
        <t>Example: the decimal number 100.</t>
        <dl indent="8" newline="true">
          <dt>isb_osdrop:</dt>
          <dd>
            <t>The isb_osdrop
option specifies the 64-bit unsigned integer number of packets
that were dropped by the operating system, starting from the
beginning of the capture.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <dl indent="8" newline="true">
          <dt>isb_usrdeliv:</dt>
          <dd>
            <t>The
isb_usrdeliv option specifies the 64-bit unsigned integer number
of packets that were delivered to the user, starting from the
beginning of the capture. The value contained in this field can
be different from the value 'isb_filteraccept - isb_osdrop'
because some packets could still be in the OS buffers when the
capture ended.</t>
          </dd>
        </dl>
        <t>Example: '0'.</t>
        <t>All the fields that refer to packet counters are 64-bit values,
represented with the octet order of the current section. Special care
must be taken in accessing these fields: since all the blocks are
aligned to a 32-bit boundary, such fields are not guaranteed to be
aligned on a 64-bit boundary.</t>
      </section>
      <section anchor="section_dsb">
        <name>Decryption Secrets Block</name>
        <t>A Decryption Secrets Block (DSB) stores (session) secrets that
enable decryption of packets within the capture file. The format of
these secrets is defined by the Secrets Type.</t>
        <t>Multiple DSBs can exist in a pcapng file, but they SHOULD be written
before packet blocks that require those secrets. Tools MAY limit
decryption to secrets that appear before packet blocks.</t>
        <t>The structure of a
Decryption Secrets Block is shown in <xref target="format_dsb"/>.</t>
        <figure anchor="format_dsb">
          <name>Decryption Secrets Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                   Block Type = 0x0000000A                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                          Secrets Type                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                         Secrets Length                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 /                                                               /
   /                          Secrets Data                         /
   /              (variable length, padded to 32 bits)             /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                       Options (variable)                      /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                       Block Total Length                      /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The Decryption Secrets Block has the following fields.</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Decryption Secrets Block is
10.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Secrets Type (32 bits): an unsigned integer identifier
that describes the format of the following Secrets field.
Requests for new Secrets Type codes should be made by creating
a pull request to update this document as described in
<xref target="section_block_code_registry"/>.</t>
          </li>
          <li>
            <t>Secrets Length (32 bits): an unsigned integer that indicates
the size of the following Secrets field, without any padding
octets.</t>
          </li>
          <li>
            <t>Secrets Data: binary data containing secrets, padded to a 32-bit
boundary.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.
No DSB-specific options are currently defined.</t>
          </li>
        </ul>
        <t>The following is a list of Secrets Types.</t>
        <dl indent="8" newline="true">
          <dt>0x5353484b:</dt>
          <dd>
            <t>SSH Key Log.
Every line consists of a cookie, key type, and key separated by one space.
The cookie is the hex-encoded (client or server) 16 bytes cookie
(32 characters) found in the SSH_MSG_KEXINIT sent during
<eref target="https://datatracker.ietf.org/doc/html/rfc4253#section-7.1">algorithm negotiation</eref>
by the endpoint whose private random is disclosed.
The key type is either SHARED_SECRET or PRIVATE_KEY.
The key is hex-encoded and either the shared secret ('K' in
<eref target="https://datatracker.ietf.org/doc/html/rfc4253#section-8">RFC 4253</eref>) or the
private random number (referred to as 'x' for the client and 'y'
for the server in RFC 4253) used to generate the shared secret during DH
key exchange; its length depends on the algorithm.
Every line MUST be terminated with either a carriage return and linefeed
('\r\n') or a linefeed ('\n').
Tools MUST be able to handle both line endings.</t>
          </dd>
        </dl>
        <dl indent="8" newline="true">
          <dt>0x544c534b:</dt>
          <dd>
            <t>TLS Key Log.
This format is described in <xref target="I-D.ietf-tls-keylogfile"/>.
Every line MUST be properly terminated with
either carriage return and linefeed ('\r\n') or linefeed ('\n').
Tools MUST be able to handle both line endings.</t>
          </dd>
        </dl>
        <dl indent="8" newline="true">
          <dt>0x55414b4c:</dt>
          <dd>
            <t><eref target="https://opcfoundation.org/about/opc-technologies/opc-ua">OPC UA</eref> Key Log.
Every line consists of a key/value pair separated by a colon and one space ('<tt>: </tt>').
Every line must be terminated by a linefeed ('<tt>\n</tt>').
The key name is composed of four parts separated by underscores ('<tt>_</tt>').
</t>
            <ul spacing="normal">
              <li>
                <t>Keyset Name: Either 'server' or 'client'.      </t>
                <t>
The Client keys are used to secure Messages sent by the Client. The
  Server keys are used to secure Messages sent by the Server.</t>
              </li>
              <li>
                <t>Key Material Type:      </t>
                <ul spacing="normal">
                  <li>
                    <t>'iv': initialization vector</t>
                  </li>
                  <li>
                    <t>'key': AES key</t>
                  </li>
                  <li>
                    <t>'siglen': signature length in octets. This depends on the used
security policy.</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>Secure Channel ID: Encoded as decimal value.</t>
              </li>
              <li>
                <t>Token ID: Encoded as decimal value.</t>
              </li>
            </ul>
            <t>The <em>value</em> contains the key data encoded as hexadecimal string with upper
case letters.  To create a valid keyset, four entries for one combination of
secure channel ID and token ID are required. These entries include 'iv' and
'key' for both 'server' and 'client'.</t>
            <t>Currently, AES-128-CBC and AES-256-CBC are supported encryption algorithms:</t>
            <ul spacing="normal">
              <li>
                <t>AES-128-CBC:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>IV Length: 16 octets</t>
                  </li>
                  <li>
                    <t>Key Length: 16 octets</t>
                  </li>
                </ul>
              </li>
              <li>
                <t>AES-256-CBC:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>IV Length: 16 octets</t>
                  </li>
                  <li>
                    <t>Key Length: 32 octets</t>
                  </li>
                </ul>
              </li>
            </ul>
            <t>More details on OPC UA Security can be found in the <eref target="https://opcfoundation.org/developer-tools/documents/view/163">OPC UA Specification Part 6 - Mappings</eref>,
 the security policies are defined in <eref target="https://opcfoundation.org/developer-tools/documents/view/164">OPC UA Specification Part 7 - Profiles</eref>,
 or can be found online on the <eref target="https://opcfoundation.org/profilereporting">Profile Reporting website</eref>.</t>
          </dd>
          <dt>0x57474b4c:</dt>
          <dd>
            <t>WireGuard Key Log.
Every line consists of the key type, equals sign ('='), and the
base64-encoded 32-octet key with optional spaces before and in between.
The key type is one of LOCAL_STATIC_PRIVATE_KEY,
REMOTE_STATIC_PUBLIC_KEY, LOCAL_EPHEMERAL_PRIVATE_KEY,
or PRESHARED|_KEY. This matches the output of <eref target="https://git.zx2c4.com/WireGuard/tree/contrib/examples/extract-handshakes/README">extract-handshakes.sh</eref>, which is part of the <eref target="https://www.wireguard.com/">WireGuard</eref> project.
A PRESHARED_KEY line is linked to a session matched by a previous
LOCAL_EPHEMERAL_PRIVATE_KEY line.
Every line MUST be properly terminated with
either carriage return and linefeed ('\r\n') or linefeed ('\n').
Tools MUST be able to handle both line endings.</t>
          </dd>
        </dl>
        <t>Warning: LOCAL_STATIC_PRIVATE_KEY and potentially PRESHARED_KEY
  are long-term secrets, users SHOULD only store non-production keys,
  or ensure proper protection of the pcapng file.</t>
        <dl indent="8" newline="true">
          <dt>0x5a4e574b:</dt>
          <dd>
            <t>ZigBee NWK Key
and ZigBee PANID for that network. Network Key as described in
the <eref target="https://zigbeealliance.org/">ZigBee Specification</eref> 05-3473-21 (R21) section 4.2.2.
The NWK Key is a 16 octet binary AES-128 key used to secure NWK Level frames
within a single PAN. The NWK key is immediately followed by the
2-octet (16-bit) network PANID in little endian format. If and when
the NWK Key changes a new DSB will contain the new NWK Key.</t>
          </dd>
        </dl>
        <dl indent="8" newline="true">
          <dt>0x5a415053:</dt>
          <dd>
            <t>ZigBee APS Key.
Application Support Link Key as described in the <eref target="https://zigbeealliance.org/">ZigBee Specification</eref> 05-3473-21 (R21) section 4.4. Each 16 octet binary AES-128 key secures
frames exchanged between a pair of network nodes. The APS Key is
immediately followed by the 2-octet (16-bit) network PANID in
little endian format. The PANID is followed by the 2-octet (16-bit)
short addresses, in little endian format, of the nodes to which
the APS Key applies. The numerically lower short address shall come
first. There is an APS Key DSB for each node pair for which the
Link Key is known. As new links are formed, new DSBs contain the
new Keys. If the APS Key changes for an existing link, it is
contained in a new DSB with the new APS Key.</t>
          </dd>
        </dl>
        <figure anchor="format_zigbee_nwk">
          <name>ZigBee NWK Key Data Format</name>
          <artwork align="center"><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +---------------------------------------------------------------+
 0 |                   Block Type = 0x0000000A                     |
   +---------------------------------------------------------------+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                  Secrets Type = 0x5a4e574b                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                         Secrets Length                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 |                            AES-128                            |
   |                            NKW Key                            |
   |                          (16 octets)                          |
   |                           (128 bits)                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32 |          PAN ID               |           padding (0)         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
36 /                                                               /
   /                       Options (variable)                      /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                       Block Total Length                      /
   +---------------------------------------------------------------+
]]></artwork>
        </figure>
        <figure anchor="format_zigbee_aps">
          <name>ZigBee APS Key Data Format</name>
          <artwork align="center"><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +---------------------------------------------------------------+
 0 |                   Block Type = 0x0000000A                     |
   +---------------------------------------------------------------+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                  Secrets Type = 0x5a415053                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                         Secrets Length                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 |                            AES-128                            |
   |                            APS Key                            |
   |                          (16 octets)                          |
   |                           (128 bits)                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32 |           PAN ID              |     Low Node Short Address    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
36 |    High Node Short Address    |         padding (0)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
40 /                                                               /
   /                       Options (variable)                      /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                       Block Total Length                      /
   +---------------------------------------------------------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="section_custom_block">
        <name>Custom Block</name>
        <t>A Custom Block (CB) is the container for storing custom data that
is not part of another block; for storing custom data as part of
another block, see <xref target="section_custom_option"/>. The Custom
Block is optional, can be repeated any number of times, and can appear
before or after any other block except the first Section Header Block
which must come first in the file. Different Custom Blocks, of
different type codes and/or different Private Enterprise Numbers, may
be used in the same pcapng file. The format of a Custom Block is shown
in <xref target="format_custom_block"/>.</t>
        <figure anchor="format_custom_block">
          <name>Custom Block Format</name>
          <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |             Block Type = 0x00000BAD or 0x40000BAD             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |                Private Enterprise Number (PEN)                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 /                                                               /
   /                          Custom Data                          /
   /              variable length, padded to 32 bits               /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The Custom Block uses the type code 0x00000BAD (2989 in decimal)
for a custom block that pcapng re-writers can copy into new files, and
the type code 0x40000BAD (1073744813 in decimal) for one that should
not be copied. See <xref target="section_vendor_copy"/> for details.</t>
        <t>The Custom Block has the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>Block Type: The block type of the Custom Block is 0x00000BAD or
0x40000BAD, as described previously.</t>
          </li>
          <li>
            <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
          </li>
          <li>
            <t>Private Enterprise Number (32 bits): An IANA-assigned
Private Enterprise Number identifying the organization which
defined the Custom Block.  See <xref target="section_vendor_uses"/> for details.  The PEN MUST be
encoded using the same endianness as the Section Header
Block it is within the scope of.</t>
          </li>
          <li>
            <t>Custom Data: the custom data, padded to a 32-bit boundary.</t>
          </li>
          <li>
            <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.
Note that custom options for the Custom Block still use the custom
option format and type code, as described in <xref target="section_custom_option"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="section_vendor">
      <name>Vendor-Specific Custom Extensions</name>
      <t>This section uses the term "vendor" to describe an organization which
extends the pcapng file with custom, proprietary blocks or options. It
should be noted, however, that the "vendor" is just an abstract entity
that agrees on a custom extension format: for example it may be a
manufacturer, industry association, an individual user, or collective
group of users.</t>
      <section anchor="section_vendor_uses">
        <name>Supported Use-Cases</name>
        <t>There are two different supported use-cases for vendor-specific
custom extensions: local and portable. Local use means the custom data
is only expected to be usable on the same machine, and the same
application, which encoded it into the file. This limitation is due to
the lack of a common registry for the local use number codes (the
block or option type code numbers with the Most Significant Bit set).
Since two different vendors may choose the same number, one vendor's
application reading the other vendor's file would result in decoding
failure. Therefore, vendors SHOULD instead use the portable method, as
described next.</t>
        <t>The portable use-case supports vendor-specific custom extensions in
pcapng files which can be shared across systems, organizations, etc.
To avoid number space collisions, an IANA-registered Private
Enterprise Number (PEN) is encoded into the Custom Block or Custom
Option, using the PEN that belongs to the vendor defining the
extension. Anyone can register a new PEN with IANA, for free, by
filling out the online request form at <eref target="http://pen.iana.org/pen/PenApplication.page">http://pen.iana.org/pen/PenApplication.page</eref>.</t>
      </section>
      <section anchor="section_vendor_copy">
        <name>Controlling Copy Behavior</name>
        <t>Both Custom Blocks and Custom Options support two different type codes
to distinguish their "copy" behavior: a type code for when the block or
option can be safely copied into a new pcapng file by a pcapng
manipulating application, and a type code for when it should not be
copied. A common reason for not copying a Custom Block or Custom Option
is because it depends on other blocks or options in some way that would
invalidate the custom data if the other blocks/options were removed or
re-ordered. For example, if a Custom Block's data includes an
Interface ID number in its Custom Data portion, then it cannot be
safely copied by a pcapng application that merges pcapng files,
because the merging application might re-order or remove one or more
of the Interface Description Blocks, and thereby change the Interface
IDs that the Custom Block depends upon. The same issue arises if a
Custom Block or Custom Option depends on the presence of, or specific
ordering of, other standard-based or custom-defined blocks or
options.</t>
        <t>Note that the copy semantics is not related to privacy - there is
no guarantee that a pcapng anonymizer will remove a Custom Block or
Custom Option, even if the appropriate type code is used requesting it
not be copied; and the original pcapng file can be shared anyway. If the
Custom Data portion of the Custom Block or Custom Option contains
sensitive information, then it should be encrypted in some
fashion.</t>
      </section>
      <section anchor="section_vendor_strings">
        <name>Strings vs. Octets</name>
        <t>For the Custom Options, there are two Custom Data formats
supported: a UTF-8 string and a binary data payload. The rationale for
this separation is that a pcapng display application which does not
understand the specific PEN's Custom Option can still display the data
as a string if it's a string type code, rather than as hex-ascii of
the octets.</t>
      </section>
      <section anchor="section_vendor_endian">
        <name>Endianness Issues</name>
        <t>Implementers writing Custom Blocks or binary data Custom Options should
be aware that a pcapng file can be re-written by machines using a
different endianness than the original file, which means all known
fields of the pcapng file will change endianness in the new file.  Since
the Custom Data payload of the Custom Block or the binary data Custom
Option might be an arbitrary sequence of unknown octets to such
machines, they cannot convert multi-octet values inside the Custom Data,
or in the Options  section of a Custom Block,into the appropriate
endianness.</t>
        <t>For example, a little-endian machine can create a new pcapng file and
add some binary data Custom Options to some non-Custom Block(s) in the
file.  This file can then be sent to a big-endian host, which will
convert the Option Type, Option Length, and PEN fields of the options to
big-endian format if it re-writes the file.  However, if the software
reading the file does not understand the contents of all of the Custom
Options, it will leave the Custom Data payload of the options alone (as
little-endian format).  If this file then gets sent to a little-endian
machine, then, when that little-endian machine reads the file, it will,
if the software reading the file understands the contents of all the
Custom Options, it will detect that the file format is big-endian, and
swap the endianness while it parses the file - but that will cause the
Custom Data payload to be incorrect since it was already in
little-endian format.</t>
        <t>In addition, a little-endian machine can create a pcapng file and write
some binary data Custom Blocks, containing options, to the file.  The
file can then be sent to a big-endian host, which, if the software
reading the file does not understand the contents of the Custom Blocks,
will leave the Custom Data and Options alone (as little-endian format).
If this file then gets sent to a little-endian machine, then, when that
little-endian machine reads the file, it will, if the software reading
the file understands the contents of all the Custom Blocks, it will
detect that the file format is big-endian, and swap the endianness while
it parses the file - but that will cause the Custom Data payload, the
Option Type and Option Length values in the Options, and the PEN in any
Custom Options to be incorrect since they were already in little-endian
format.</t>
        <t>Therefore, the vendor should either encode the Custom Data of their
Custom Blocks and Custom Options, the Option Type and Option Length
fields of options in Custom Blocks, and the PEN field of Custom Options
in Custom Blocks in a consistent manner, such as always in big-endian or
always in little-endian format, regardless of the host platform's
endianness, or should encode some flag in the Custom Data payload to
indicate in which endianness the rest of the payload is written.</t>
        <t>The PEN field of a Custom Block, or of a Custom Option not contained in
a Custom Block, MUST be converted by code that reads pcapng files, so
this is not an issue for that field, except for Custom Options in Custom
Blocks.  This is also not an issue for the Custom Data payload of UTF-8
string Custom Options.</t>
      </section>
    </section>
    <section anchor="recommended-file-name-extension-pcapng">
      <name>Recommended File Name Extension: .pcapng</name>
      <t>The recommended file name extension for the "PCAP Next Generation
Capture File Format" specified in this document is ".pcapng".</t>
      <t>On Windows and macOS, files are distinguished by an extension to their
filename. Such an extension is technically not actually required, as
applications should be able to automatically detect the pcapng file
format through the Block Type and Byte-Order Magic fields in the Section
Header Block at the beginning of the file, as some desktop environments
other than those of Windows and macOS do. However, using name
extensions makes it easier to work with files (e.g. visually
distinguish file formats) so it is recommended - though not required -
to use .pcapng as the name extension for files following this
specification.</t>
      <t>Please note: To avoid confusion (such as the current usage of
.cap for a plethora of different capture file formats) file
name extensions other than .pcapng should be avoided.</t>
    </section>
    <section anchor="conclusions">
      <name>Conclusions</name>
      <t>The file format proposed in this document should be very versatile
and satisfy a wide range of applications. In the simplest case, it can
contain a raw capture of the network data, made of a series of Simple
Packet Blocks. In the most complex case, it can be used as a repository
for heterogeneous information. In every case, the file remains easy to
parse and an application can always skip the data it is not interested
in; at the same time, different applications can share the file, and
each of them can benefit of the information produced by the others. Two
or more files can be concatenated obtaining another valid file.</t>
    </section>
    <section anchor="implementations">
      <name>Implementations</name>
      <t>Some known implementations that read or write the pcapng file format
are listed on the <eref target="https://github.com/IETF-OPSAWG-WG/pcapng/wiki/Implementations">pcapng GitHub wiki</eref>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
      <t>[Open issue: decide whether the block types, option types, NRB Record
types, etc. should be IANA registries. And if so, what the IANA policy
for each should be (see RFC 5226)]</t>
      <section anchor="section_block_code_registry">
        <name>Standardized Block Type Codes</name>
        <t>Every Block is uniquely identified by a 32-bit integer value, stored
in the Block Header.</t>
        <t>As pointed out in <xref target="section_block"/>, Block Type
codes whose Most Significant Bit (bit 31) is set to 1 are reserved for
local use by the application.</t>
        <t>All the remaining Block Type codes (0x00000000 to 0x7FFFFFFF) are
standardized by this document. Requests for new Block Type codes,
Option Type codes, and Secrets Type codes should be made by creating
a pull request to update this document at <eref target="https://github.com/IETF-OPSAWG-WG/pcapng">github.com/IETF-OPSAWG-WG/pcapng</eref>.
The pull request should add a description of the new block, option,
or secret type to <xref target="section_block_definition"/>. The pull request
description should contain a clear request for a new type code
assignment.</t>
        <t>The following is a list of the Standardized Block Type Codes:</t>
        <table anchor="blockcodes">
          <name>Standardized Block Type Codes</name>
          <thead>
            <tr>
              <th align="left">Block Type Code</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x00000000</td>
              <td align="left">Reserved ???</td>
            </tr>
            <tr>
              <td align="left">0x00000001</td>
              <td align="left">
                <xref target="section_idb">Interface Description Block</xref></td>
            </tr>
            <tr>
              <td align="left">0x00000002</td>
              <td align="left">
                <xref target="appendix_pb">Packet Block</xref></td>
            </tr>
            <tr>
              <td align="left">0x00000003</td>
              <td align="left">
                <xref target="section_spb">Simple Packet Block</xref></td>
            </tr>
            <tr>
              <td align="left">0x00000004</td>
              <td align="left">
                <xref target="section_nrb">Name Resolution Block</xref></td>
            </tr>
            <tr>
              <td align="left">0x00000005</td>
              <td align="left">
                <xref target="section_isb">Interface Statistics Block</xref></td>
            </tr>
            <tr>
              <td align="left">0x00000006</td>
              <td align="left">
                <xref target="section_epb">Enhanced Packet Block</xref></td>
            </tr>
            <tr>
              <td align="left">0x00000007</td>
              <td align="left">IRIG Timestamp Block (requested by Gianluca Varenni &lt;gianluca.varenni@cacetech.com&gt;, CACE Technologies LLC); code also used for <eref target="https://github.com/google/linux-sensor/blob/master/hone-pcapng.txt">Socket Aggregation Event Block</eref></td>
            </tr>
            <tr>
              <td align="left">0x00000008</td>
              <td align="left">
                <eref target="https://en.wikipedia.org/wiki/ARINC_429">ARINC 429</eref> in AFDX Encapsulation Information Block (requested by Gianluca Varenni &lt;gianluca.varenni@cacetech.com&gt;, CACE Technologies LLC)</td>
            </tr>
            <tr>
              <td align="left">0x00000009</td>
              <td align="left">[systemd Journal Export Block]<xref target="I-D.richardson-opsawg-pcapng-extras"/></td>
            </tr>
            <tr>
              <td align="left">0x0000000A</td>
              <td align="left">
                <xref target="section_dsb">Decryption Secrets Block</xref></td>
            </tr>
            <tr>
              <td align="left">0x00000101</td>
              <td align="left">
                <eref target="https://github.com/HoneProject">Hone Project</eref> <eref target="https://github.com/HoneProject/Linux-Sensor/wiki/Augmented-PCAP-Next-Generation-Dump-File-Format">Machine Info Block</eref> (see also <eref target="https://github.com/google/linux-sensor/blob/master/hone-pcapng.txt">Google version</eref>)</td>
            </tr>
            <tr>
              <td align="left">0x00000102</td>
              <td align="left">
                <eref target="https://github.com/HoneProject">Hone Project</eref> <eref target="https://github.com/HoneProject/Linux-Sensor/wiki/Augmented-PCAP-Next-Generation-Dump-File-Format">Connection Event Block</eref> (see also <eref target="https://github.com/google/linux-sensor/blob/master/hone-pcapng.txt">Google version</eref>)</td>
            </tr>
            <tr>
              <td align="left">0x00000201</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Machine Info Block</td>
            </tr>
            <tr>
              <td align="left">0x00000202</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 1</td>
            </tr>
            <tr>
              <td align="left">0x00000203</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> FD List Block</td>
            </tr>
            <tr>
              <td align="left">0x00000204</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Event Block</td>
            </tr>
            <tr>
              <td align="left">0x00000205</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Interface List Block</td>
            </tr>
            <tr>
              <td align="left">0x00000206</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> User List Block</td>
            </tr>
            <tr>
              <td align="left">0x00000207</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 2</td>
            </tr>
            <tr>
              <td align="left">0x00000208</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Event Block with flags</td>
            </tr>
            <tr>
              <td align="left">0x00000209</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 3</td>
            </tr>
            <tr>
              <td align="left">0x00000210</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 4</td>
            </tr>
            <tr>
              <td align="left">0x00000211</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 5</td>
            </tr>
            <tr>
              <td align="left">0x00000212</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 6</td>
            </tr>
            <tr>
              <td align="left">0x00000213</td>
              <td align="left">
                <eref target="https://github.com/draios/sysdig">Sysdig</eref> Process Info Block, version 7</td>
            </tr>
            <tr>
              <td align="left">0x00000BAD</td>
              <td align="left">
                <xref target="section_custom_block">Custom Block that rewriters can copy into new files</xref></td>
            </tr>
            <tr>
              <td align="left">0x40000BAD</td>
              <td align="left">
                <xref target="section_custom_block">Custom Block that rewriters should not copy into new files</xref></td>
            </tr>
            <tr>
              <td align="left">0x0A0D0D0A</td>
              <td align="left">
                <xref target="section_shb">Section Header Block</xref></td>
            </tr>
            <tr>
              <td align="left">0x0A0D0A00-0x0A0D0AFF</td>
              <td align="left">Reserved. Used to detect trace files corrupted because of file transfers using the HTTP protocol in text mode.</td>
            </tr>
            <tr>
              <td align="left">0x000A0D0A-0xFF0A0D0A</td>
              <td align="left">Reserved. Used to detect trace files corrupted because of file transfers using the HTTP protocol in text mode.</td>
            </tr>
            <tr>
              <td align="left">0x000A0D0D-0xFF0A0D0D</td>
              <td align="left">Reserved. Used to detect trace files corrupted because of file transfers using the HTTP protocol in text mode.</td>
            </tr>
            <tr>
              <td align="left">0x0D0D0A00-0x0D0D0AFF</td>
              <td align="left">Reserved. Used to detect trace files corrupted because of file transfers using the FTP protocol in text mode.</td>
            </tr>
            <tr>
              <td align="left">0x80000000-0xFFFFFFFF</td>
              <td align="left">Reserved for local use.</td>
            </tr>
          </tbody>
        </table>
        <t>[Open issue: reserve 0x40000000-0x7FFFFFFF for do-not-copy-bit
range of base types?]</t>
      </section>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <t>Loris Degioanni and Gianluca Varenni were coauthoring this document
before it was submitted to the IETF.</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors wish to thank
Anders Broman,
Ulf Lamping,
Richard Sharpe
and many others for their invaluable comments.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.richardson-opsawg-pcaplinktype">
          <front>
            <title>PCAP and PCAPNG LINKTYPE Registry</title>
            <author fullname="Guy Harris" initials="G." surname="Harris">
         </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works Inc</organization>
            </author>
            <date day="6" month="November" year="2022"/>
            <abstract>
              <t>   This document creates a 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.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-richardson-opsawg-pcaplinktype-01"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.richardson-opsawg-pcapng-extras">
          <front>
            <title>Additional block types for PCAP Next Generation (pcapng) Capture File Format</title>
            <author fullname="Michael Tüxen" initials="M." surname="Tüxen">
              <organization>Muenster University of Applied Sciences</organization>
            </author>
            <author fullname="Fulvio Risso" initials="F." surname="Risso">
              <organization>Politecnico di Torino</organization>
            </author>
            <author fullname="Jasper Bongertz" initials="J." surname="Bongertz">
              <organization>Airbus Defence and Space CyberSecurity</organization>
            </author>
            <author fullname="Gerald Combs" initials="G." surname="Combs">
              <organization>Wireshark Foundation</organization>
            </author>
            <author fullname="Guy Harris" initials="G." surname="Harris">
         </author>
            <author fullname="Eelco Chaudron" initials="E." surname="Chaudron">
              <organization>Red Hat</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="29" month="July" year="2022"/>
            <abstract>
              <t>   This document contains a number of extensions to the PCAPng file
   format which are outside of the IETF networking mandate.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the OPSAWG Working Group
   mailing list (opsawg@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/opsawg/.

   Source for this draft and an issue tracker can be found at
   https://github.com/pcapng/pcapng.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-richardson-opsawg-pcapng-extras-01"/>
        </reference>
        <reference anchor="I-D.ietf-tls-keylogfile">
          <front>
            <title>The SSLKEYLOGFILE Format for TLS</title>
            <author fullname="Martin Thomson" initials="M." surname="Thomson">
              <organization>Mozilla</organization>
            </author>
            <date day="29" month="April" year="2024"/>
            <abstract>
              <t>   A format that supports the logging information about the secrets used
   in a TLS connection is described.  Recording secrets to a file in
   SSLKEYLOGFILE format allows diagnostic and logging tools that use
   this file to decrypt messages exchanged by TLS endpoints.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-keylogfile-02"/>
        </reference>
      </references>
    </references>
    <?line 2546?>

<section anchor="appendix_pb">
      <name>Packet Block (obsolete!)</name>
      <t>The Packet Block is obsolete, and MUST NOT be used in new files. Use
the Enhanced Packet Block or Simple Packet Block instead. This section
is for historical reference only.</t>
      <t>A Packet Block was a container for storing packets coming from the
network.</t>
      <figure anchor="formatpb">
        <name>Packet Block Format</name>
        <artwork align="center"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 0 |                    Block Type = 0x00000002                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 4 |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 8 |         Interface ID          |          Drops Count          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |                       (Upper 32 bits)                         |
   + - - - - - - - - - - - -  Timestamp  - - - - - - - - - - - - - +
16 |                       (Lower 32 bits)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
20 |                    Captured Packet Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 |                    Original Packet Length                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 /                                                               /
   /                          Packet Data                          /
   /              variable length, padded to 32 bits               /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                      Options (variable)                       /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Block Total Length                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>The Packet Block has the following fields:</t>
      <ul spacing="normal">
        <li>
          <t>Block Type: The block type of the Packet Block is 2.</t>
        </li>
        <li>
          <t>Block Total Length: total size of this block, as described in <xref target="section_block"/>.</t>
        </li>
        <li>
          <t>Interface ID: specifies the interface this packet comes from;
the correct interface will be the one whose Interface Description
Block (within the current Section of the file) is identified by the
same number (see <xref target="section_idb"/>) of this field. The
interface ID MUST be valid, which means that an matching interface
description block MUST exist.</t>
        </li>
        <li>
          <t>Drops Count: a local drop counter. It specifies the number of
packets lost (by the interface and the operating system) between
this packet and the preceding one. The value xFFFF (in hexadecimal)
is reserved for those systems in which this information is not
available.</t>
        </li>
        <li>
          <t>Timestamp (64 bits): two 32-bit unsigned values, in the same format
as defined for timestamps in the Enhanced Packet Block (<xref target="section_epb"/>),
using the 'if_tsresol' and 'if_tsoffset' values from the Interface
Description Block specified by the Interface ID.</t>
        </li>
        <li>
          <t>Captured Packet Length: number of octets captured from the
packet (i.e. the length of the Packet Data field). It will be the
minimum value among the Original Packet Length and the
snapshot length for the interface (SnapLen, defined in <xref target="format_idb"/>). The value of this field does
not include the padding octets added at the end of the Packet
Data field to align the Packet Data field to a 32-bit
boundary.</t>
        </li>
        <li>
          <t>Original Packet Length: actual length of the packet when it was
transmitted on the network. It can be different from Captured Packet
Length if the packet has been truncated by the capture process.</t>
        </li>
        <li>
          <t>Packet Data: the data coming from the network, including
link-layer headers. The actual length of this field is
Captured Packet Length plus the padding to a 32-bit
boundary. The format of the link-layer headers depends on
the LinkType field specified in the Interface Description
Block (see <xref target="section_idb"/>) and it is specified
in the entry for that format in <xref target="I-D.richardson-opsawg-pcaplinktype"/>.</t>
        </li>
        <li>
          <t>Options: optionally, a list of options (formatted according to
the rules defined in <xref target="section_opt"/>) can be present.</t>
        </li>
      </ul>
      <t>In addition to the options defined in <xref target="section_opt"/>,
the following options were valid within this block:</t>
      <table anchor="optionspb">
        <name>Packet Block Options</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">Type</th>
            <th align="left">Length</th>
            <th align="left">Multiple allowed?</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">pack_flags</td>
            <td align="left">2</td>
            <td align="left">4</td>
            <td align="left">no</td>
          </tr>
          <tr>
            <td align="left">pack_hash</td>
            <td align="left">3</td>
            <td align="left">variable</td>
            <td align="left">yes</td>
          </tr>
        </tbody>
      </table>
      <dl indent="8" newline="true">
        <dt>pack_flags:</dt>
        <dd>
          <t>The pack_flags
option is the same as the epb_flags of the enhanced packet
block.</t>
        </dd>
      </dl>
      <t>Example: '0'.</t>
      <dl indent="8" newline="true">
        <dt>pack_hash:</dt>
        <dd>
          <t>The pack_hash
option is the same as the epb_hash of the enhanced packet block.</t>
        </dd>
      </dl>
      <t>Examples: '02 EC 1D 87 97', '03 45 6E C2 17 7C 10 1E 3C 2E 99 6E
C2 9A 3D 50 8E'.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
ynllk+CFnZ2TMQ+/0xw+l8n7riaCbw3GlF8EMFyd5zAb7BxLpPBXqBgE1LIu
+XDb2ep2xMufPf/57cuz735++5fjv568Ojk3lI2DU2vDxz+50mVZMsorDlBz
lSMQUTB9xLuk6KVJdUH1I+BsrF9Wk/F6cTHY2Xq4rSJO91FvE21+IkeAoDnN
AcPFEjkt0is8XiBbDXNKJzNMy8EYy/MqJBRyXuLms+cHb46Pfn57dnz45vgc
IXH65uSHg/NjXNH/9j+k9EMOdpQWQLJo42ECCKHbO228aa39ZY0P809vnh0a
XMSnrnmv3ZZ83JGpr1Fto77zFtCTtfdrrmIU7zDpbOdr1uk+UT922EedofOc
HCUZKmWShpVJ0vSj59AVQiV5zylkn5DPlfhJ18rBWByoobdNFeHCBkiStzm1
QUQHxmKEelKQrjIuMQ5fXiRk+2yt/Vz8nK21Oa21vsDH8JC2joU8jWqk4MKc
kmXDb5S5lOaRkDN4QymxhnO7szOAk0vn9vzFmX9uKUhO8zkt3GuY3Ak3u1uN
yy4AbpyPUKhFct4Ik2mBijEMjgyBg46XDJ5VwAlA888BzMOdzZ3+zgAB89Pr
00Pz/YHD+Hw6IKrBqW8R3clND593q2RwmeUAjjQp6cEsbt+KHAIQ11m5Rfk3
AhqIxHKcM0wsPYT1//e++W+GgNet1QE5SFMXHtz+++dMvlNqQA7FKQcpUAVw
mBO528IsqjKcDQVylAPWu6z991vqCvr6GteJJmK0ze6bY97XNT6Za7h1a3x8
16g5/uDwh3ykYRZ8OdnESckAVRAvk7IEtCiZEgut5G+0KCP+nPH5v1MvZ+Ir
q3M3LzF/ESrTiG/kSXbNWnq1hviRArkfp79wTPJVgvmHtQUMC00Ojs9wAvY7
4FqAgqyhtm0EG0GlGiXaR6tQSDBqjcLg5GVdNH/M1DXNx+lgLpM941UdXqLH
8ticHAG4XTUU1ZCLfzJ9cZ6jRvDGhrghX9OfX4cOuogkxAZ5VVfg/oi1C3E+
J4I3Q388UqFSEq+qojx/MAWpS8eFtFO67Eus5kmY5ofn5XQ8Jn2KyCCtXWR0
Kwd20ezCLQsz7PbLUU6EGWVi+9TQD9xKqRRJe0aDEYGwaEpXi4+nh8osdXCD
u5tbe93Dp4fUDv/eerjLf6Pdm3N9YaxRZoULe12U+7wVXi/7gionP1jpwoY9
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
XRRMDRQsXMEeAgAN2VNhjbYBAA==

-->

</rfc>
