Dynamic Host Configuration Protocol Options for Coordinate-Based Location Configuration Information
obsoletes
- rfc-3825 — Dynamic Host Configuration Protocol Option for Coordinate-based Location Configuration Information
Extracted elements (29)
Conversion from PIDF-LO to DHCPv4 GeoConf Option 123 (resolution encoding) is not specified because it is not possible to translate an arbitrary PIDF-LO to that format with a bounded increase in uncertainty; only conversion to/from the GeoLoc uncertainty format is specified.
Location information is stored on the end device after DHCP exchange rather than elsewhere, because retrieving it remotely might be difficult in practice — an important design goal for emergency telephony applications.
Two distinct encoding approaches are provided: the legacy DHCPv4 GeoConf Option 123 (from RFC 3825) uses resolution fields indicating valid bit counts, while the new DHCPv4 GeoLoc Option 144 and DHCPv6 GeoLoc Option 63 use logarithmically-encoded uncertainty distances that map directly to PIDF-LO without unbounded uncertainty increase.
Uncertainty is represented as a rectangular prism (independent per-axis values) rather than a more complex shape, because each of the three axes can be assigned an uncertainty value independently. Conversion from PIDF-LO to the GeoLoc uncertainty encoding increases uncertainty by less than a factor of 2 per dimension.
For NAD83 datums (values 2 or 3), no available CRS URN covers three-dimensional coordinates; therefore, locations in these datums can only be represented as two-dimensional GML shapes (point or polygon), not as a three-dimensional prism.
RFC 6225 obsoletes RFC 3825. The former single Datum field has been split into Ver, Res, and Datum sub-fields in the new GeoLoc options. DHCPv4 clients MAY still support the legacy GeoConf Option 123 originally defined in RFC 3825 for backward compatibility.
A DHCPv4 server implementing this specification MUST support sending GeoLoc Option 144 version 1 and SHOULD support sending GeoConf Option 123 in responses.
All hosts MUST support the WGS84 datum (Datum value 1).
DHCPv4 clients implementing this specification MUST support receiving DHCPv4 GeoLoc Option 144 (version 1) and MAY support receiving DHCPv4 GeoConf Option 123.
DHCPv6 clients implementing this specification MUST support receiving version 1 responses; DHCPv6 servers implementing this specification MUST send version 1 responses.
Longitude values outside −180 to 180 degrees or latitude values outside −90 to 90 degrees MUST be considered invalid. Location consumers MUST ignore invalid location coordinates and SHOULD log errors related to invalid location.
The LCI option SHOULD be returned by DHCP servers only when the DHCP client has included this option in its Parameter Request List, to minimize unintended exposure of location information.
When AType = 0 (no known altitude), the Altitude and Altitude Uncertainty fields can contain any value and MUST be ignored by receivers.
When DHCPv4 and DHCPv6 clients do not understand a datum value, they MUST assume a WGS84 datum (EPSG 4326 or 4979 depending on whether altitude is present) and proceed accordingly, ensuring some location is available even if less accurate.
Where critical decisions might be based on the value of this option, DHCP authentication (RFC 3118 for DHCPv4, RFC 3315 for DHCPv6) SHOULD be used to protect the integrity of the DHCP options.
Altitude uncertainty (AltUnc) is a 6-bit field encoding uncertainty in meters as: uncertainty = 2^(21 − x), encoded as x = 21 − ceil(log2(uncertainty)). A value of 0 means unknown; values above 30 are reserved. Altitude uncertainty applies only to AType=1 (meters).
Latitude/longitude uncertainty (LatUnc, LongUnc) is a 6-bit encoded value where the actual uncertainty in degrees is derived as: uncertainty = 2^(8 − x), and encoded as x = 8 − ceil(log2(uncertainty)). A value of 0 means unknown; values greater than 34 are reserved.
Resolution fields (LaRes, LoRes, AltRes) in DHCPv4 GeoConf Option 123 are 6-bit unsigned integers indicating the number of high-order bits that are valid. Bits beyond the resolution limit MUST NOT be considered valid and may be zeroed or purposely false.
The Datum field is 3 bits and selects the coordinate reference system: 1 = WGS84 (EPSG 4979/4326), 2 = NAD83 horizontal + NAVD88 vertical (North American land), 3 = NAD83 horizontal + MLLW vertical (North American tidal). Datum 0 is reserved; values 4–7 are unassigned.
IANA Altitude Type registry: values 0 (no known altitude), 1 (altitude in meters), and 2 (altitude in floors) are defined by RFC 6225; values 3–15 are unassigned. New assignments follow Standards Action policy.
IANA Datum registry: value 0 is reserved, values 1 (WGS84/EPSG 4327), 2 (NAD83+NAVD88), and 3 (NAD83+MLLW) are defined by RFC 6225; values 4–7 are unassigned. New assignments follow Standards Action policy.
IANA GeoLoc Option Version registry: value 0 is reserved, value 1 (uncertainty parameters for DHCPv4 and DHCPv6 GeoLoc options) is defined by RFC 6225; values 2–3 are unassigned. New assignments follow Standards Action policy.
RFC 6225 assigns DHCPv6 option code 63 (OPTION_GEOLOCATION), DHCPv4 option code 123 (GeoConf), and DHCPv4 option code 144 (GeoLoc, length 16, Geospatial Location with Uncertainty).
DHCP messages have no privacy protection; an eavesdropper monitoring the link between a DHCP server and client can discover Location Configuration Information (LCI). Link-layer confidentiality and integrity protection may reduce the risk of location disclosure and tampering.
Altitude is a 30-bit two's complement fixed-point value with 22 integer bits and 8 fractional bits, valid for both AType=1 (meters) and AType=2 (floors). AType is a 4-bit field: 0 means no known altitude, 1 means meters, 2 means floors relative to ground level.
DHCPv4 GeoConf Option (code 123) is 16 octets: 8-bit code, 8-bit length, 6-bit LaRes (latitude resolution), 34-bit Latitude, 6-bit LoRes (longitude resolution), 34-bit Longitude, 4-bit AType, 6-bit AltRes (altitude resolution), 30-bit Altitude, 5-bit Res, 3-bit Datum. Uses resolution rather than uncertainty fields.
DHCPv4 GeoLoc Option (code 144) is 16 octets: 8-bit code, 8-bit length, 6-bit LatUnc, 34-bit Latitude, 6-bit LongUnc, 34-bit Longitude, 4-bit AType, 6-bit AltUnc, 30-bit Altitude, 2-bit Ver, 3-bit Res, 3-bit Datum. Mirrors the DHCPv6 GeoLoc Option format.
DHCPv6 GeoLoc Option (code 63) is 16 octets: 16-bit option code, 16-bit OptLen, 6-bit LatUnc, 34-bit Latitude, 6-bit LongUnc, 34-bit Longitude, 4-bit AType, 6-bit AltUnc, 30-bit Altitude, 2-bit Ver, 3-bit Res, 3-bit Datum.
Latitude and Longitude are each encoded as 34-bit, two's complement, fixed-point values with 9 integer bits and 25 fractional bits. Positive latitudes are north of the equator; positive longitudes are east of the Prime Meridian; values are rounded to the nearest 34-bit binary representation.