Location Objects [RFC5580] AVPs
Carrying Location Objects in RADIUS and Diameter Procedures (RFC5580)
This interface defines procedures for conveying access-network ownership and location information in RADIUS and Diameter, using both civic and geospatial location formats. It enables the transmission of location objects that can be used by the home network for various location-aware services.
Purpose of the Carrying Location Objects Procedures
Location-Aware Services: The interface provides essential location information that may be used for location-aware billing, authorization, and other services. This is especially valuable in wireless network deployments in public spaces such as airports, hotels, shopping malls, and coffee shops, where various operators (e.g., cellular network operators, WISPs, and fixed broadband operators) manage network access.
Network Ownership and Location: The interface conveys both access-network ownership and precise location details. This information helps the home network ascertain where a user is connecting from, which can influence service policies and billing.
Key Elements
Civic and Geospatial Formats:
- The procedures outlined support both civic address formats (e.g., street, city, postal code) and geospatial formats (e.g., latitude and longitude), ensuring comprehensive location representation.
Privacy Protection:
- To preserve user privacy, the interface ensures that location information is protected against unauthorized access and distribution. Access to location data is governed by requirements defined in [RFC3693].
Location Information Model includes the following components:
- Location Generator (LG): Creates the location information.
- Location Server (LS): Authorizes access to the location information based on policies.
- Location Recipient (LR): Requests and receives location information.
- Rule Maker (RM): Provides authorization policies to the LS, which then enforces access-control on location information requests.
Operational Scenario:
- In environments where multiple operators manage wireless or wired networks, the home network may require access to accurate location data to facilitate location-aware service decisions. The interface supports the conveyance of this information from the access network to the home network while ensuring privacy and security.
For complete technical specification of Diameter MIPv6 interface in Diameter protocol please refer to: [RFC5580]
package com.mobius.software.telco.protocols.diameter.primitives.rfc5580
Name |
AVP Code |
Data Type |
Vendor |
Basic-Location-Policy-Rules |
129 |
OctetString |
IETF |
Used to define rules controlling the distribution of location information in Diameter messages. It enables encoding of location privacy policies in a non-XML format and provides basic mechanisms for retention, redistribution control, and policy enforcement. This AVP may be included in the following Diameter message types:
It is designed to comply with the GEOPRIV requirements [RFC 3693] and incorporates sighting time and time-to-live (TTL) fields for policy conformance. Must adhere to [RFC 5580] format and encoding rules. Trailing bits must be zero-padded if unused. AVP follows the structure: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | String ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | String (cont.) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Parameters: Type (Required): Format: 8-bit integer. Value: 129 (indicates this is a Basic-Location-Policy-Rules AVP). Length (Required): Format: 8-bit integer. Value: Minimum size is 12 bytes. Larger lengths depend on the rules encoded in the string. String (Required): Format: OctetString. Encodes privacy rules, retention settings, redistribution permissions, and policy metadata. Default Rules:
Privacy Policy Defaults:
Example Encodings: Default Policy Rule: Type: 129 Length: 12 String: 00 00 00 00 00 00 00 00 (Default: No redistribution, retention = 24h) |
|||
Extended-Location-Policy-Rules |
130 |
OctetString |
IETF |
Provides a reference URI to a richer set of location privacy policies. Unlike the Basic-Location-Policy-Rules AVP, this AVP does not embed the rules directly but points to an external resource containing the policy rules, typically specified using XML-based formats. This AVP allows Diameter clients and servers to exchange location privacy rules without exceeding the size constraints imposed by RADIUS protocols. It is primarily intended for systems that require extended privacy controls to manage location information distribution. Contains a variable-length URI pointing to the external location policy ruleset. It is recommended to use the HTTPS URI scheme for secure retrieval. Can be sent in the following Diameter messages:
AVP follows the structure: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | String ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | String (cont.) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Parameters: Type (Required): Format: 8-bit integer. Value: 130 (identifies this as the Extended-Location-Policy-Rules AVP). Length (Required): Format: 8-bit integer. Value: Minimum size is 3 bytes, but actual size depends on the URI length. String (Required): Format: UTF-8 encoded string. Purpose: Contains the URI pointing to the external ruleset for location policies. Behavior & Processing Rules:
|
|||
Location-Capable |
131 |
OctetString |
IETF |
Used to indicate whether a NAS (Network Access Server) or a proxy server supports the functionality required to send location information as specified in the protocol. This AVP is primarily included in Access-Request messages by a NAS to inform the RADIUS server that it has the capability to send location information. The RADIUS server must not request or challenge for location information unless this AVP has been included in the Access-Request. The Location-Capable AVP acts as a flag to confirm compatibility with location-based services and the ability to handle location attributes as part of access control or accounting policies. Can be included in the following messages:
AVP follows the structure: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | String ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | String (cont.) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Parameters: Type (Required): Format: 8-bit integer. Value: 131 (identifies this as the Location-Capable AVP). Length (Required): Format: 8-bit integer. Value: 6 bytes (fixed length). Integer (Required): Format: 32-bit integer stored in network byte order. Purpose: Used as a flag to declare support for location services. Value: 1 – Location Capable. 0 – Not Location Capable. Minimum Length = 6 bytes to accommodate the Type, Length, and Integer fields. Example Encodings: NAS Declares Location Capability: Type: 131 Length: 6 Integer: 1 (Location Capable) |
|||
Location-Data |
128 |
OctetString |
IETF |
Used to encode and transport location-specific information in Access-Request and Accounting-Request messages. It provides data about a user's location, which can be utilized for authorization, policy enforcement, and accounting purposes in Diameter-based systems. This AVP supports dynamic location-aware services and applications by delivering location data through Diameter signaling. The Location-Data AVP can accommodate textual or binary representations of location information, ensuring flexibility across various implementations and use cases. Accounting-Request Conditions: Used with Acc-Status-Type values set to: Start – Marks the beginning of an accounting session. Interim – Provides updates during an ongoing session. Stop – Indicates the end of an accounting session. AVP follows the structure: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | String ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | String (cont.) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Parameters: Type (Required): Format: 8-bit integer. Value: 128 (identifies this AVP as Location-Data). Length (Required): Format: 8-bit integer. Value: >= 5 bytes (includes header and data). String (Required): Format: UTF-8 or binary string. Purpose: Represents location information in textual or binary format. Examples: Textual Format: "Building-21, Floor-3, Office-304" Binary Format: Encoded GPS coordinates. (e.g. according to GeoJSON [RFC 7946]). |
|||
Location-Information |
127 |
OctetString |
IETF |
Designed to provide meta-data about a user's location information. It supports various use cases, including access control, accounting, and policy enforcement in Diameter-based networks. This AVP may include details such as: Sighting time – The timestamp when the location data was captured. Time-to-live (TTL) – The validity duration of the location information. Location determination method – The method used to establish the user's location (e.g., GPS, Wi-Fi triangulation, or cellular network data). Can be included in the Access-Request and Accounting-Request messages. Optional in both cases. Accounting-Request Conditions: Used with Acc-Status-Type set to: Start – Session initiation. Interim – Periodic updates. Stop – Session termination. AVP follows the structure: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | String ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | String (cont.) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Parameters: Type (Required): Format: 8-bit integer. Value: 127 (identifies this AVP as Location-Information). Length (Required): Format: 8-bit integer. Value: >= 23 bytes (includes header and meta-data). String (Required): Format: UTF-8 or binary string. Purpose: Stores meta-data about the location such as timestamps, methods, and TTL. Examples: Timestamp and TTL: "2024-01-01T12:00:00Z;TTL=3600s" Location Method: "GPS;Accuracy=10m" Example Encodings: Access-Request with Time and Method: Type: 127 Length: 35 String: "2024-01-01T12:00:00Z;Method=GPS;Accuracy=10m" |
|||
Operator-Name |
126 |
OctetString |
IETF |
Uniquely identifies the owner of an access network by combining a namespace identifier with the operator name. This AVP is used for network authentication, accounting, and authorization processes in Diameter protocol exchanges. The value of the Operator-Name AVP is a non-NULL terminated text string, and its maximum length is 253 bytes. Can be included in the Access-Request and Accounting-Request messages. Accounting-Request Conditions: Supported for the following Acc-Status-Type values: Start – At the beginning of a session. Interim – For updates during a session. Stop – At the end of a session. Namespace and Naming Rules:
AVP follows the structure: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Text ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Text (cont.) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Parameters: Type (Required): Format: 8-bit integer. Value: 126 (Operator-Name identifier). Length (Required): Format: 8-bit integer. Value: >= 4 bytes (includes the AVP header). Text (Required): Format: UTF-8 encoded string. Purpose: Contains the namespace identifier and operator name combined into a single string. Maximum Length: 253 bytes. Examples: Value: realm.example.com:Operator1. Encodings: Access-Request with Operator Name: Type: 126 Length: 30 Text: "example.com:Operator1" |
|||
Requested-Location-Info |
132 |
OctetString |
IETF |
The Requested-Location-Info AVP is an OctetString that specifies the location information requested by the RADIUS server. It defines the attributes of the requested location information and the entities related to it, as indicated in the Entity field of the Location-Information AVP. This AVP is used to indicate the type of location information required and applies authorization policies that control whether the RADIUS client is permitted to provide such data. Message Types, sent by RADIUS Server:
The RADIUS server must explicitly send this AVP if it requires the RADIUS client to return location information, subject to authorization policies. This AVP MUST be present in the absence of an out-of-band agreement specifying location data exchange. The Integer field encodes requested attributes as bit flags, enabling flexible capability negotiation for location data handling. AVP follows the structure: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Integer ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Integer (cont.) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Parameters: Type (Required): Format: 8-bit integer. Value: 132 (Requested-Location-Info identifier). Length (Required): Format: 8-bit integer. Value: 6 bytes (includes the AVP header). Integer (Required): Format: 32-bit integer. Purpose: Encodes requested location attributes as bit flags, where each bit represents a specific capability or data request. Examples: Bit 0: Request for geographic coordinates. Bit 1: Request for cell tower ID. Bit 2: Request for Wi-Fi access point location. Additional bit positions can define vendor-specific attributes or extensions. Requesting Location Information: Type: 132 Length: 6 Integer: 0x00000003 (Requests geographic coordinates and cell tower ID). |
Start innovating with Mobius
What's next? Let's talk!