[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