[pcap-ng-format] Proposing new block type for PCAP-NG (UNCLASSIFIED)

Renard, Kenneth D CIV USARMY ARL (US) kenneth.d.renard.civ at mail.mil
Wed Apr 8 16:43:37 UTC 2015


Classification: UNCLASSIFIED
Caveats: NONE

>> o  Source Types are an enumerated type with a defined list such as:
>> 
>>     0     Undefined source
>>     1     GPS
>>     2     3GPP
>>     3     INS
>>     [...]
>
>What is "3GPP" as a source type?

Simply a place-holder for some 3GPP-related location provider.


> Does "GPS" mean "some global navigation satellite system", in
> which case it should probably be called "GNSS", or does it
> specifically mean "the US Global Positioning System", in which
> case we also would want type values for GLONASS, Galileo, BeiDou,
> IRNSS, and any others I haven't mentioned because they're not
> listed in

GNSS would be fine.  I think GPS is a common term in the US that
Would be well understood as a source of positioning information.
(use "GNSS/GPS")

> What is "INS"?

Inertial Navigation System
(http://en.wikipedia.org/wiki/Inertial_navigation_system)

> If so, I might be tempted to have separate options for a UTF-8
> descriptive string, presumably intended for human consumption,
> and an actual 3D coordinate value, for computer consumption.

Sounds reasonable.  Change Location/Orientation Provider Block option
["lp_origin", variable, UTF-8] to 2 options:

  ["lp_origin_description", variable, UTF-8]
  ["lp_origin_lla", 12bytes, 3 32-bit signed ints]

>  Perhaps, instead of one lb_error option, there should be separate
> options for different types of accuracy/confidence, each specifying
> the (possibly-binary) format of the indication.

So, instead of a single generic accuracy/confidence option per Location/
Orientation Block that is interpreted based on Location/Orientation
Provider option, we could have several options in the L/OB that would
express the accuracy/confidence in its own specific format.  The L/OB
would choose 0 or more of these options to write out.  Sounds good.

> So is the point of tangency the point whose latitude and longitude or
> X and Y coordinates are given as the location and whose altitude or
> Z coordinate is 0?

Yes, noted in description.


-Ken


-----------------------------------------------
Two New Block Types

1.  Location/Orientation Provider Block [Optional]

Establish information about the provider of location information.  This
Could be something such as a specific technology that is used for
location information (e.g. GPS, 3GPP, INS), some reference to an origin.
Zero or more LPBs are allowed per Section of a file.  Location Providers
should be stored in a table and referenced by Location Blocks (similar
to how packets reference interfaces).  Location Providers MUST be
defined before they are referenced in Location Blocks.  

Provider ID: Tools that write / read the capture file associate a
progressive 32-bit number (starting from '0') to each Location
Provider Block.  This number is unique within each Section and
uniquely identifies the provider (inside the current section);
therefore, two Sections can have providers identified by the same
identifiers.  This unique identifier is referenced by other blocks
(e.g.  Location Block) to point out the provider the block refers to
(e.g. the source of the location information).

       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 = 0x00000009                    |
      +---------------------------------------------------------------+
    4 |                      Block Total Length                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    8 |                        Source Type                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      /                                                               /
      /                      Options (variable)                       /
      /                                                               /
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Block Total Length                       |
      +---------------------------------------------------------------+

Source Types are an enumerated type with a defined list such as:

     0     Undefined source
     1     GPS
     2     3GPP
     3     INS
     [...]


Option Name     Code Length     Description             Example

lp_device       2    variable   A UTF-8 string          "Garmin 430"
                                containing a
                                description of the
                                measuring device.

lp_origin       3    variable   A UTF-8 string          "Earth Center",
                                representing a          or some specific
                                reference to an         lat/lon/alt
                                origin for XYZ
                                location information

lp_description  4    variable   A UTF-8 string          "Vehicle X",
                                containing a
                                description of the          
                                location provider.

lp_tsresol      5    1 byte     Resolution of time      6
                                stamps.  If the Most
                                Significant Bit is
                                equal to  zero, the 
                                remaining bits
                                indicate the resolution
                                of the timestamp as as
                                a negative power of 10
                                (e.g. 6 means
                                microsecond resolution, 
                                time stamps are the
                                number of microseconds
                                since 1/1/1970). If
                                the Most Significant
                                Bit is equal to one,
                                the remaining  bits
                                indicate the 
                                resolution as a
                                negative power of 2
                                (e.g. 10 means 1/1024
                                of second).


2.  Location/Orientation Block

The Location Block provides some idea of where the capture is taking
place.  This could be a descriptive location such as "DMZ", "Server
Room", or "Starbucks".  It could also be a geographic location specified
in some format.  Examples of specific formats for geographic location
are: "Lattitude-Longitude-Altitude", "Orientation" (pitch, yaw, roll),
or "XYZ" (meters).  Location Blocks reference a location provider that
help define how to interpret the location data.

       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 |                 Location Provider Identifier                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   12 |                        Timestamp High                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   16 |                        Timestamp Low                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      /                                                               /
      /                      Options (variable)                       /
      /                                                               /
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Block Total Length                       |
      +---------------------------------------------------------------+

o  Location Provider ID: it specifies the location provider this location
   information comes from; the correct location provider will be the
   one whose Interface Description Block (within the current Section of
   the file) is identified by the same number of this field.  The
   Location Provider ID MUST be valid, which means that an matching
   Location Provider Block MUST exist.

o  Timestamp (High) and Timestamp (Low): high and low 32-bits of a
   64-bit quantity representing the timestamp.  The timestamp is a
   single 64-bit unsigned integer representing the number of units
   since 1/1/1970 00:00:00 UTC.  The way to interpret this field is
   specified by the 'lp_tsresol' option of the Location Provider
   Block referenced by this packet.  Please note that differently
   from the libpcap file format, timestamps are not saved as two
   32-bit values accounting for the seconds and microseconds since
   1/1/1970.  They are saved as a single 64-bit quantity saved as
   two 32-bit words.


Option Name    Code  Length     Description             Example

lb_lla          2    12         Three 32-bit signed     (32786026, 
                                integers representing   -96801908, 42)
                                the Latitude,           represents
                                Longitude, and          32.786026
                                altitude of the         latitude,
                                location.  Latitude     -96.801908
                                and Longitude are       logitude, and
                                expressed as            42 meters above
                                millionths of degrees   MSL
                                (10^-6 degrees) and
                                altitude is expressed
                                as meters above mean
                                sea level (MSL)

lb_orientation  3    12         Three 32-bit signed     (45000000,
                                integers                115000000,
                                representing the        -500000)
                                pitch, yaw, and roll    represents 45.0
                                angles expressed in     degrees pitch,
                                millionths of degrees   115.0 degrees
                                (10^-6 degrees).  The   roll, and -0.5
                                reference plane for     degrees yaw
                                these measurements
                                should be a tangent
                                to the base surface,
                                or the Z=0
                                (altitude=0) surface
                                at the current X-Y,
                                or latitude/longitude
                                as specified in the
                                lb_lla or lb_xyz
                                options

lb_xyz          4    12         Three 32-bit signed     (42, -166, 0)
                                integers representing   represents 42
                                the distance from the   meters from the
                                X, Y, and Z axis in     X=0 axis, -166
                                meters.  A reference    meters from the
                                to the origin point     Y=0 axis, and 0
                                may be found in the     meters from the
                                location provider       Z=0 axis
                                block.

lb_description  5    variable   A UTF-8 string          "Server Room",
                                containing a            "DMZ"
                                description of the
                                location.
                                Interpretation of
                                this field is up to
                                the applications and
                                users that generate
                                and use this field

lb_hiprexyz     6    28         A high-precision        (3, 42, -166, 0)
                                offset along the X,     represents a 
                                Y, and Z axis.  It is   distance of 42km
                                made up of a 32-bit     from the x=0
                                signed value that       axis, -166km from
                                represents a            the y=0 axis, and
                                resolution, followed    0km from the z=0
                                by three 64-bit         axis
                                signed values
                                representing the
                                distance in the X, Y,
                                and Z directions
                                respectively.  The
                                resolution is a
                                signed integer that
                                specifies the power
                                of 10 for the units
                                of the X, Y, and Z
                                values in meters.  If
                                the resolution value
                                is -6, then the X, Y,
                                and Z offsets are in
                                micrometers from the
                                origin.  If the
                                resolution value is
                                3, then the X, Y, and
                                Z offsets are in
                                kilometers from the
                                origin.  A reference
                                to the origin point
                                may be found in the
                                location provider
                                block.

lb_num_sat      7    4          An unsigned 32-bit      4
                                integer representing
                                the number of geo-
                                positioning
                                satellites that were
                                used in this
                                measurement

lb_resolution   8    4          An unsigned 32-bit      5000 represents
                                integer representing    5 meter
                                the resolution of the   resolution
                                measurement expressed
                                in 10^-3 meters

lb_confidence   9    1          An unsigned 32-bit      92 represents a
                                integer representing    92% confidence in
                                the percentage of       this measurement
                                confidence in this             
                                measurement.

Classification: UNCLASSIFIED
Caveats: NONE


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5573 bytes
Desc: not available
URL: <http://www.winpcap.org/pipermail/pcap-ng-format/attachments/20150408/4b9894ab/attachment.bin>


More information about the pcap-ng-format mailing list