Skip to content

Commit ef54275

Browse files
committed
Initial Capture Information Block (CIB) concept.
Adds CIB with location/orientation/velocity vectors, this is optionally attached to an IDB or referenced from EPBs.
1 parent ac177d5 commit ef54275

File tree

1 file changed

+179
-2
lines changed

1 file changed

+179
-2
lines changed

draft-tuexen-opsawg-pcapng.xml

Lines changed: 179 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,11 @@
145145
<list style='hanging'>
146146
<t hangText='SHB:'>Section Header Block</t>
147147
<t hangText='IDB:'>Interface Description Block</t>
148-
<t hangText='ISB:'>Interface Statistics Block</t>
148+
<t hangText='ISB:'>Interface Statistics Block</t>
149149
<t hangText='EPB:'>Enhanced Packet Block</t>
150150
<t hangText='SPB:'>Simple Packet Block</t>
151-
<t hangText='NRB:'>Name Resolution Block</t>
151+
<t hangText='NRB:'>Name Resolution Block</t>
152+
<t hangText='CIB:'>Capture Information Block</t>
152153
<t hangText='CB:'>Custom Block</t>
153154
</list>
154155

@@ -267,6 +268,11 @@
267268
capture has been made. If this appears in a file, an Interface
268269
Description Block is also required, before this block.</t>
269270

271+
<t><xref target="section_cib">Capture Information Block</xref>: it
272+
defines how to store some capture information (such as location,
273+
orientation, velocity and associated errors, as well as rf frequencies
274+
and channels)</t>
275+
270276
<t><xref target="section_custom_block">Custom Block</xref>: it
271277
contains vendor-specific data in a portable fashion.</t>
272278

@@ -1269,6 +1275,11 @@ Section Header
12691275
<c>4</c>
12701276
<c>8</c>
12711277
<c>no</c>
1278+
1279+
<c>epb_cib</c>
1280+
<c>4</c>
1281+
<c>4</c>
1282+
<c>no</c>
12721283
</texttable>
12731284

12741285
<t>
@@ -1306,6 +1317,10 @@ Section Header
13061317

13071318
<t>Example: '0'.</t>
13081319

1320+
<t hangText="epb_cib:"><vspace blankLines="0"/>The epb_cib
1321+
option indicates the Capture Information Block ID to be associated
1322+
with this packet, allowing the addition of capture related metadata.</t>
1323+
13091324
</list>
13101325
</t>
13111326

@@ -1828,6 +1843,168 @@ Section Header
18281843

18291844
</section>
18301845

1846+
<section anchor="section_cib" title="Capture Information Block">
1847+
1848+
<t>The Capture Information Block (CIB) is used to support the addition
1849+
of metadata associated with capture interfaces or packets, including
1850+
location, orientation, velocity and related errors, as well as wireless
1851+
channel and medium options.
1852+
This block can be associated with a specific interface and applied to all
1853+
packets received on this interface, or to (a) specific packet(s).
1854+
If applied to an interface, this block effects all capture blocks following
1855+
until it is superseded by a new CIB applied to the same interface.
1856+
</t>
1857+
1858+
<t>
1859+
Tools that write / read the capture file associate an incrementing 32-bit
1860+
number (starting from '0') to each Capture Information Block, called
1861+
the CIB ID for the CIB in question. This number is unique within each Section
1862+
and identifies the CIB that is referred to in an epb_cip option; it is only
1863+
unique inside the current section, so, two Sections can have different
1864+
CIBs identified by the same CIB ID values. This unique identifier
1865+
is referenced by other blocks, such as Enhanced Packet Blocks, to indicate the
1866+
CIB to which the block refers.
1867+
</t>
1868+
1869+
<t>The format of the Capture Information Block is shown in <xref
1870+
target="format_cib"/>.</t>
1871+
1872+
<figure anchor="format_cib" title="Capture Information Block Format">
1873+
<artwork xml:space="preserve" name="" type="" align="center" alt="" width="" height="">
1874+
0 1 2 3
1875+
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
1876+
+---------------------------------------------------------------+
1877+
0 | Block Type = 0x00000006 |
1878+
+---------------------------------------------------------------+
1879+
4 | Block Total Length |
1880+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1881+
8 / /
1882+
/ Options (variable) /
1883+
/ /
1884+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1885+
| Block Total Length |
1886+
+---------------------------------------------------------------+
1887+
</artwork>
1888+
</figure>
1889+
<t>The fields have the following meaning:
1890+
<list style="symbols">
1891+
1892+
<t>Block Type: The block type of the Capture Information Block is
1893+
6.</t>
1894+
1895+
<t>Block Total Length: total size of this block, as described in
1896+
<xref target="section_block"/>.</t>
1897+
1898+
<t>Options: optionally, a list of options (formatted according to
1899+
the rules defined in <xref target="section_opt"/>) can be present.</t>
1900+
1901+
</list>
1902+
</t>
1903+
1904+
<t>All the statistic fields are defined as options in order to deal
1905+
with systems that do not have a complete set of statistics. Therefore,
1906+
In addition to the options defined in <xref target="section_opt"/>,
1907+
the following options are valid within this block:</t>
1908+
1909+
<texttable anchor="options_cib" title="Capture Information Block Options">
1910+
<ttcol align="left">Name</ttcol>
1911+
<ttcol align="left">Code</ttcol>
1912+
<ttcol align="left">Length</ttcol>
1913+
<ttcol align="left">Multiple allowed?</ttcol>
1914+
1915+
<c>interface_id</c>
1916+
<c>1</c>
1917+
<c>4</c>
1918+
<c>no</c>
1919+
1920+
<c>global_location</c>
1921+
<c>2</c>
1922+
<c>12</c>
1923+
<c>no</c>
1924+
1925+
<c>global_location_error</c>
1926+
<c>3</c>
1927+
<c>12</c>
1928+
<c>no</c>
1929+
1930+
<c>orientation</c>
1931+
<c>4</c>
1932+
<c>12</c>
1933+
<c>no</c>
1934+
1935+
<c>orientation_error</c>
1936+
<c>5</c>
1937+
<c>12</c>
1938+
<c>no</c>
1939+
1940+
<c>velocity</c>
1941+
<c>6</c>
1942+
<c>12</c>
1943+
<c>no</c>
1944+
1945+
<c>velocity_error</c>
1946+
<c>7</c>
1947+
<c>12</c>
1948+
<c>no</c>
1949+
</texttable>
1950+
1951+
<t>
1952+
<list hangIndent="8" style="hanging">
1953+
1954+
<t hangText="cib_interface_id:"><vspace blankLines="0"/>The
1955+
interface_id option specifies the interface these statistics refers
1956+
to; the correct interface will be the one whose Interface
1957+
Description Block (within the current Section of the file) is
1958+
identified by same number (see <xref target="section_idb"/>) of
1959+
this field.</t>
1960+
1961+
<t hangText="cib_global_location"><vspace blankLines="0"/>The
1962+
cib_global_location option specifies the location of the packet
1963+
capture or interface; location is stored as three 32-bit floats
1964+
representing latitude and longitude in degrees, and altitude in
1965+
metres.</t>
1966+
1967+
<t>Example: TODO</t>
1968+
1969+
<t hangText="cib_global_location_error"><vspace blankLines="0"/>The
1970+
global_location_error option specifies the error in location capture,
1971+
this is stored as three 32-bit floats in the same order and
1972+
representation as cib_location</t>
1973+
1974+
<t>Example: TODO</t>
1975+
1976+
<t hangText="cib_orientation"><vspace blankLines="0"/>The
1977+
cib_orientation option specifies the location of the packet
1978+
capture or interface; location is stored as three 32-bit floats
1979+
representing yaw, pitch, and roll in radians.</t>
1980+
1981+
<t>Example: TODO</t>
1982+
1983+
<t hangText="cib_orientation_error"><vspace blankLines="0"/>The
1984+
orientation_error option specifies the error in orientation capture,
1985+
this is stored as three 32-bit floats in the same order and
1986+
representation as cib_orientation</t>
1987+
1988+
<t>Example: TODO</t>
1989+
1990+
<t hangText="cib_velocity"><vspace blankLines="0"/>The
1991+
cib_velocity option specifies the location of the packet
1992+
capture or interface; location is stored as three 32-bit floats
1993+
representing yaw, pitch, and roll in radians.</t>
1994+
1995+
<t>Example: TODO</t>
1996+
1997+
<t hangText="cib_velocity_error"><vspace blankLines="0"/>The
1998+
cib_velocity_error option specifies the error in velocity capture,
1999+
this is stored as three 32-bit floats in the same order and
2000+
representation as cib_velocity</t>
2001+
2002+
<t>Example: TODO</t>
2003+
2004+
</list>
2005+
</t>
2006+
2007+
</section>
18312008

18322009
<section anchor="section_custom_block" title="Custom Block">
18332010

0 commit comments

Comments
 (0)