decode_3gpp_user_location_info

Two decode operations decode User-Location-Info encoded data.

User-Location-Info Decode Operations describes the User-Location-Info decode operations.
Table 1. User-Location-Info Decode Operations
Operation Description
decode_3gpp_user_location_info Used to decode the User-Location-Info encoded data as defined in the 3GPP 29.061 specification. This decode operation interprets the Type field of User-Location-Info as an enumeration.
decode_3gpp_user_location_info_bit_mask Used to decode the User-Location-Info encoded data as defined in the 3GPP 29.274 specification. This decode operation interprets the Type field of User-Location-Info as a bit mask. This is similar to decode_3gpp_user_location_info except this operation uses a different input format. The field format should be a valid value as specified in the 3GPP 29.274 specification.
Note: The 3GPP 29.061 specification defines the ULI Type field as an enum with specific allowed values and the 3GPP 29.274 specification defines it as a bit mask.

These decode operations check the field's value and if present, decode it and set values in the output fields. The input field (<prefix>Info) must be in the format described for the 3GPP-User-Location-Info (ULI) AVP. The input field's name must end with "Info".

All output fields must be Strings or unsigned Int32 fields. When using String fields, the individual parts of the input field are treated as hexadecimal but are converted to decimal and stored in the output fields in UTF8 characters. For example, if the input data part has a value of 0x1234, then the output field contains the value "4660".
Note: If a custom MDC field is added that contains ULI type data, it must end with "Info" to be decoded. It is not required to define all the possible output fields.
The output field names are created by replacing the "Info" suffix with predefined suffixes. User-Location-Info Output Fields describes the output fields:
Table 2. User-Location-Info Output Fields
Field Description
<prefix>Type For the 3GPP 29.274 specification. Indicates one of the following geographic location types:
  • CGI (1)
  • SAI (2)
  • RAI (3)
  • TAI (4)
  • ECGI (5)
  • LAI (6)
<prefix>Type For the 3GPP 29.061 specification. Indicates one of the following geographic location types:
  • CGI (0)
  • SAI (1)
  • RAI (2)
  • TAI (128)
  • ECGI (129)
  • ECGI and TAI (130)

    A value of 130 indicates that the geographic location type is both ECGI and TAI. In this situation, there are two MCC and MNC fields (one for the TAI and one for the ECGI). The Mcc and Mnc fields are set from the TAI part of the data (starting with Octet 4 of 3GPP-User-Location-Info) and the Mcc2 and Mnc2 fields are set from the ECGI part of the data.

  • NCGI (135)

    The NR Cell Global identifier (NCGI) is constructed from the PLMN identity the cell belongs to and the NR Cell Identifier (NCI) of the cell. The NCI has two attributes: GnbId and CellId.

  • NCGI and TAI (136)

    Includes the attributes TAC, GnbId, and CellId.

<prefix>CellId (ECI) Only used if the ECI field is decoded. The value of the field is ECI & 0x000000ff;.

(NCGI) Only used if the NCI field is decoded (type field is 135 or 136).

<prefix>Ci CI (Cell Identity)
<prefix>Eci ECI (E-UTRAN Cell Identifier)
<prefix>GnbId Only used if the NCI is decoded (type field is 135 or 136). The gNB ID is part of the NR Cell Identifier (NCI) of the gNB cells.
<prefix>Lac LAC (Location Area Code)
<prefix>Mcc MCC (Mobile Country Code)
<prefix>Mcc2 Only used if the Type field is 130. In this case, this is the MCC from the ECI portion of the data.
<prefix>MccMnc2 Only used if the Type field is 130. In this case, this is the combined MCC-MNC from the ECI portion of the data.
<prefix>Mnc MNC (Mobile Network Code)
<prefix>Mnc2 Only used if the Type field is 130. In this case, this is the MNC from the ECI portion of the data.
<prefix>MccMnc MCC-MNC (Combined Mobile Country Code and Mobile Network Code)
<prefix>Nci The NR Cell Identity. Part of the NCGI.
<prefix>Rac RAC (Routing Area Code)
<prefix>Sac SAC (Service Area Code)
<prefix>Tac TAC (Tracking Area Code)
<prefix>ENodeB (E-UTRAN Node B or Evolved Node B) - Only used if the ECI field is decoded. The value of the field is (ECI & 0x0fffff00) >> 8;.

For example, if the input field name is TgppSubscriberLocationInfo, the output field names are TgppSubscriberLocationType, TgppSubscriberLocationLac, TgppSubscriberLocationCi, and so forth. For an example of using selective updates with the TgppSubscriberLocationType field, see the discussion about selective updates in MATRIXX Configuration.

If a target field is not defined, an error is logged during service initialization.

As another example, assume you have a field named TestInfo that has a value of "0105F51000102211". After it is decoded, it is not changed but the following fields are set:
  • TestType is "01"
  • TestMcc is "505"
  • TestMnc is "01"
  • TestLac is "0010"
  • TestSac is "2211".