decode_3gpp_access_network_info
The decode_3gpp_access_network_info
operation decodes the
Access-Network-Information
AVP value as defined in RFC-7315 and 3GPP TS
24.229.
Access-Network-Information Fields
You must specify a <prefix> in answers to the
decode_3gpp_access_network_info create_config.info questions.
The name of the input field <prefix>Info
must end with
Info
. For example, in the following selective update, the input
field is AccessNetworkInfo
. The <prefix> is
AccessNetwork
.
SelectiveUpdate:DiameterGateway:Input:Element <element>:Operation <op>:Decode3gppAccessNetworkInfo:What is the field's name?<selection>:AccessNetworkInfo
- input field =
AccessNetworkInfo
- output fields =
AccessNetwork
<suffix>
Access-Network-Information
fields for
decode_3gpp_access_network_info
decoding. The fields are set if
they are listed. Field | Type | Description |
---|---|---|
<prefix>InfoAsString |
String | Copies the BLOB field to a STRING field up to the first null character or if none found. Adds one to the end of the BLOB. |
<prefix>Type |
String | This is the access-type /
access-class field from the Diameter
3GPP-Access-Network-Information AVP. The following
access-type values are supported:
For more information, see Access Type Concatenation and Access Class Concatenation. |
<prefix>InfoType |
String | This is the access-info field from the
Diameter 3GPP-Access-Network-Information AVP. |
<prefix>MccMnc |
String | This is the combined MCC and MNC fields from the Diameter 3GPP-Access-Network-Information AVP. |
<prefix>Mcc |
Unsigned int32 | This is the MCC field from the Diameter 3GPP-Access-Network-Information AVP. |
<prefix>MccAsString |
String | This is the MCC field from the Diameter 3GPP-Access-Network-Information AVP. |
<prefix>Mnc |
Unsigned int32 | This is the MNC field from the Diameter 3GPP-Access-Network-Information AVP. |
<prefix>MncAsString |
String | This is the MNC field from the Diameter 3GPP-Access-Network-Information AVP. |
<prefix>Tac |
Unsigned int32 | This is the TAC (Tracking Area Code) field from the Diameter 3GPP-Access-Network-Information AVP. For example, 36863. |
<prefix>TacAsDecimalAsciiString |
String | This is the TAC (Tracking Area Code) field from the Diameter 3GPP-Access-Network-Information AVP. This is the value as a decimal number encoded as an ASCII string. This is a decimal ASCII string. For example, "36863". |
<prefix>TacAsString |
String | This is the TAC (Tracking Area Code) field from the Diameter
3GPP-Access-Network-Information AVP. This is copied from the
AccessNetworkInfo field with no
interpretation of the data. This is a hexadecimal ASCII string.
For example, "8fff". |
<prefix>Eci |
Unsigned int64 | This is the ECI (E-UTRAN Cell Identifier) field from the Diameter 3GPP-Access-Network-Information AVP. For example, 155198. |
<prefix>EciAsDecimalAsciiString |
String | This is the ECI (E-UTRAN Cell Identifier) field from the Diameter 3GPP-Access-Network-Information AVP. Converts ASCII Decimal to String. This is the value as a decimal number encoded as an ASCII string. For example, "155198". |
<prefix>EciAsString |
String | This is the ECI (E-UTRAN Cell Identifier) field from the
Diameter 3GPP-Access-Network-Information AVP. This is copied
from the AccessNetworkInfo field with no
interpretation of the data. This is a hexadecimal ASCII string.
For example, "0025e3e". |
<prefix>ENodeB |
Unsigned int64 | This is the eNodeB of the ECI (E-UTRAN Cell
Identifier) field from the Diameter
3GPP-Access-Network-Information AVP. This
is ECI >> 8. For example, 606. |
<prefix>ENodeBAsDecimalAsciiString |
String | This is the eNodeB of the ECI (E-UTRAN Cell
Identifier) field from the Diameter
3GPP-Access-Network-Information AVP. This
is ECI >> 8. Converts ASCII Decimal to String. This is the value
as a decimal number encoded as an ASCII string. For example,
"606". |
<prefix>ENodeBAsString |
String | This is the eNodeB of the ECI (E-UTRAN Cell
Identifier) field from the Diameter
3GPP-Access-Network-Information AVP. This
is ECI >> 8. This is copied from the
AccessNetworkInfo field with no
interpretation of the data. This is a hexadecimal ASCII string.
For example, "0025e". |
<prefix>Lac |
Unsigned int32 | This is the LAC (Location Area Code) field from the Diameter 3GPP-Access-Network-Information AVP. For example: 10702. |
<prefix>LacAsDecimalAsciiString |
String | This is the LAC (Location Area Code) field from the Diameter 3GPP-Access-Network-Information AVP. This is the <prefix>Lac field value as a decimal number encoded as an ASCII string. For example: "10702". |
<prefix>LacAsString |
String | This is the LAC (Location Area Code) field from the Diameter
3GPP-Access-Network-Information AVP. This is copied from the
AccessNetworkInfo field with no
interpretation of the data. For example: "29CE". |
<prefix>Nci |
Unsigned int64 | This is the NCI (NR Cell Identity) field from the Diameter 3GPP-Access-Network-Information AVP. For example: 6037. |
<prefix>NciAsDecimalAsciiString |
String | This is the NCI (NR Cell Identity) field from the Diameter 3GPP-Access-Network-Information AVP. This is the <prefix>Nci field value as a decimal number encoded as an ASCII string. For example: "6037". |
<prefix>NciAsString |
String | This is the NCI (NR Cell Identity) field from the Diameter
3GPP-Access-Network-Information AVP. This is copied from the
AccessNetworkInfo field with no
interpretation of the data. For example: "1795". |
<prefix>UmtsCi |
Unsigned int64 | This is the UMTS CI (UMTS Cell Identity) field from the Diameter 3GPP-Access-Network-Information AVP. For example: 176803839. |
<prefix>UmtsCiAsDecimalAsciiString |
String | This is the UMTS CI (UMTS Cell Identity) field from the
Diameter 3GPP-Access-Network-Information AVP. This is the
<prefix>UmtsCi field value as a decimal
number encoded as an ASCII string. For example:
"176803839". |
<prefix>UmtsCiAsString |
String | This is the UMTS CI (UMTS Cell Identity) field from the
Diameter 3GPP-Access-Network-Information AVP. This is copied
from the AccessNetworkInfo field with no
interpretation of the data. For example: "A89CFFF". |
<prefix>Ci |
Unsigned int32 | This is the CI (Cell Identity) field from the Diameter 3GPP-Access-Network-Information AVP. For example: 486. |
<prefix>CiAsDecimalAsciiString |
String | This is the CI (Cell Identity) field from the Diameter 3GPP-Access-Network-Information AVP. This is the <prefix>Ci field value as a decimal number encoded as an ASCII string. For example: "486". |
<prefix>CiAsString |
String | This is the CI (Cell Identity) field from the Diameter
3GPP-Access-Network-Information AVP. This is copied from the
AccessNetworkInfo field with no
interpretation of the data. For example: "01e6". |
<prefix>Sac |
Unsigned int32 | This is the Sac (Service Area Code) field from the Diameter 3GPP-Access-Network-Information AVP. |
<prefix>SacAsString |
String | This is the Sac (Service Area Code) field from the Diameter
3GPP-Access-Network-Information AVP. This is the
<prefix>Sac field value as a decimal
number encoded as an ASCII string. |
<prefix>SacAsDecimalAsciiString |
String | This is the Sac (Service Area Code) field from the Diameter
3GPP-Access-Network-Information AVP. This is copied from the
AccessNetworkInfo field with no
interpretation of the data. |
Message Types
- 3GPP2
- 3GPP2-1X
- 3GPP2-1X-Femto
- 3GPP2-1X-HRPD
- 3GPP2-UMB
- 3GPP-E-UTRAN
- 3GPP-E-UTRAN-FDD
- 3GPP-E-UTRAN-ProSe-UNR
- 3GPP-E-UTRAN-TDD
- 3GPP-GAN
- 3GPP-GERAN
- 3GPP-HSPA
- 3GPP-NR
- 3GPP-NR-FDD
- 3GPP-NR-TDD
- 3GPP-UTRAN
- 3GPP-UTRAN-FDD
- 3GPP-UTRAN-TDD
- 3GPP-WLAN
- ADSL
- ADSL2
- ADSL2+
- DOCSIS
- DVB-RCS2
- GPON
- G.SHDSL
- GSTN
- HDSL
- HDSL2
- IDSL
- IEEE-802.11
- IEEE-802.11a
- IEEE-802.11b
- IEEE-802.11g
- IEEE-802.11n
- IEEE-802.3
- IEEE-802.3a
- IEEE-802.3ab
- IEEE-802.3ae
- IEEE-802.3ah
- IEEE-802.3ak
- IEEE-802.3an
- IEEE-802.3aq
- IEEE-802.3e
- IEEE-802.3i
- IEEE-802.3j
- IEEE-802.3u
- IEEE-802.3y
- IEEE-802.3z
- RADSL
- SDSL
- untrusted-non-3GPP-VIRTUAL-EPC
- VDSL
- VIRTUAL-no-PS
- WLAN-no-PS
- xDSL
- XGPON1
The 3gppAccessNetworkInfo
field includes values such as the
utran-cell-id-3gpp
parameter and can be decoded to add
individual values in specific fields. The string value is defined to be a semi-colon
(;) separated list of keyword expressions. A keyword expression can be a keyword or
it can be keyword=value. The first keyword in the string is called the message type.
Each keyword that has a value can be mapped to an MDC field of a STRING type. Each
keyword that does not have a value can be mapped to an MDC field of a BOOL type.
3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=3114809000002583e;network-provided
,
then:- The message type is
3GPP-E-UTRAN-FDD
. - The keyword
utran-cell-id-3gpp
has a value3114809000002583e
. - The keyword
network-provided
does not have a value.
3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=3114809000002583e
. Field | Type | Result |
---|---|---|
<prefix>InfoAsString | String | 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=3114809000002583e |
<prefix>Type | String | 3GPP-E-UTRAN-FDD |
<prefix>InfoType | String | utran-cell-id-3gpp |
<prefix>MccMnc | String | 311480 |
<prefix>Mcc | Unsigned int32 | 311 |
<prefix>MccAsString | String | 311 |
<prefix>Mnc | Unsigned int32 | 480 |
<prefix>MncAsString | String | 480 |
<prefix>Tac | Unsigned int32 | 36864 |
<prefix>TacAsString | String | 9000 |
<prefix>Eci | Unsigned int64 | 153662 |
<prefix>EciAsString | String | 002583e |
<prefix>ENodeB | Unsigned int64 | 600 (This is ECI >> 8.) |
<prefix>ENodeBAsString | String | 00258 (This is ECI >> 8.) |
Access Type Concatenation
access-type
/
access-class
field. Access Type Concatenation describes how concatenation is determined according
to the access-type
. Access Type | Parameter Name | Concatenation |
---|---|---|
3GPP-UTRAN-FDD
|
utran-cell-id-3gpp | MCC,MNC,LAC,UMTS_CI |
3GPP-UTRAN-TDD |
utran-cell-id-3gpp | MCC,MNC,LAC,UMTS_CI |
3GPP-E-UTRAN-FDD
|
utran-cell-id-3gpp | MCC,MNC,TAC,ECI |
3GPP-E-UTRAN-TDD |
utran-cell-id-3gpp | MCC,MNC,TAC,ECI |
3GPP-E-UTRAN-ProSe-UNR |
utran-cell-id-3gpp | MCC,MNC,ECI |
3GPP-NR-FDD
|
utran-cell-id-3gpp | MCC,MNC,TAC6,NCI |
3GPP-NR-TDD |
utran-cell-id-3gpp | MCC,MNC,TAC6,NCI |
3GPP-GERAN |
cgi-3gpp | MCC,MNC,LAC,CI |
3GPP-UTRAN-FDD |
utran-sai-3gpp | MCC, MNC,LAC,SAC |
3GPP-UTRAN |
utran-sai-3gpp | MCC, MNC,LAC,SAC |
3GPP-HSPA |
utran-sai-3gpp | MCC, MNC,LAC,SAC |
Access Class Concatenation
access-class
. Access Type | Parameter Name | Concatenation |
---|---|---|
3GPP-E-UTRAN |
utran-cell-id-3gpp | MCC,MNC,TAC,ECI |
3GPP-NR |
utran-cell-id-3gpp | MCC,MNC,TAC6,NCI |
Access Type Parts
Name | # of Digits |
---|---|
MCC | 3 decimal digits |
MNC | 2 or 3 decimal digits |
LAC (Location Area Code) | 4 hexadecimal digits |
UMTS_CI (UMTS Cell Identity) | 7 hexadecimal digits |
TAC (Tracking Area Code) | 4 or 6 hexadecimal digits |
TAC6 (TAC - Tracking Area Code) | 6 hexadecimal digits |
ECI (E-UTRAN Cell Identity) | 7 hexadecimal digits |
NCI (NR Cell Identity | 9 hexadecimal digits |
CI (Cell Identity) | 4 hexadecimal digits |
SAC (Service Area Code) | 4 hexadecimal digits |
Total Digits
3GPP-NR-FDD
.Part | Total Digits |
---|---|
MCC — 3 digits | MCC — 3 digits |
MNC — 2 or 3 digits | MCC,MNC — 5 or 6 digits |
TAC6 — 6 digits | MCC,MNC,TAC6 — 11 or 12 digits |
NCI — 9 digits | MCC,MNC,TAC6,NCI — 20 or 21 digits |
Keywords and Field Names
Keyword | Field Name |
---|---|
cgi-3gpp | AccessNetworkCgi3gpp |
ci-3gpp2 | AccessNetworkCi3gpp2 |
ci-3gpp2-femto | AccessNetworkCi3gpp2Femto |
dsl-location | AccessNetworkDslLocation |
dvb-rcs2-node-id | AccessNetworkDvbRcs2NodeId |
eth-location | AccessNetworkEthLocation |
fiber-location | AccessNetworkFiberLocation |
gstn-location | AccessNetworkGstnLocation |
i-wlan-node-id | AccessNetworkIWlanNodeId |
local-time-zone | AccessNetworkLocalTimeZone |
network-provided | AccessNetworkNetworkProvided |
operator-specific-GI | AccessNetworkOperatorSpecificGeographicalId |
orig-utran-cid | AccessNetworkSourceUtranCellId |
ue-ip | AccessNetworkUeIpAddress |
ue-port | AccessNetworkUePort |
utran-cell-id-3gpp | AccessNetworkUtranCellId3gpp |
utran-sai-3gpp | AccessNetworkUtranSai3gpp |
Each message type can have its own list of keywords and it can also copy the keywords of a previously-defined message type. A message type of "common" has been defined and all the keywords have been defined in the "common" message type. All other message types copy the "common" message type.
y
to the following
question and then answer the remaining
questions:SelectiveUpdate:Parser:3gppAccessNetworkInfo:Do you want to modify this parser (y/n)?y
Answers to the following questions specify new keywords for a given message type, whose contents are to be copied into fields with the naming convention <prefix><suffix>:
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Add:<new message type>:What keywords and their field name suffixes do you want to add?<keyword1>,<suffix1>;<keyword2>,<suffix2>
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Modify:<message type>:What keywords and their field name suffixes do you want to add?<keyword1>,<suffix1>;<keyword2>,<suffix2>
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Do you want to modify this parser (y/n)?y
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Do you want to allow a missing cell ID (y/n)?y
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Do you want to ignore parsing errors (y/n)?y
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Do you want to ignore unknown message types and keywords (y/n)?y
SelectiveUpdate:Parser:3gppAccessNetworkInfo:What message types do you want to delete?3GPP2-1X-Femto;3GPP-GAN
SelectiveUpdate:Parser:3gppAccessNetworkInfo:What message types do you want to modify?common;3GPP-E-UTRAN
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Modify:common:What keywords do you want to delete?dsl-location
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Modify:common:What keywords and their field name suffixes do you want to add?man,Man;woman,Woman
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Modify:3GPP-E-UTRAN:What keywords do you want to delete?
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Modify:3GPP-E-UTRAN:What keywords and their field name suffixes do you want to add?dog,Dog;cat,Cat
SelectiveUpdate:Parser:3gppAccessNetworkInfo:What message types do you want to add?5GPP;6GPP
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Add:5GPP:What existing message type do you want copy?common
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Add:5GPP:What keywords and their field name suffixes do you want to add?mouse,Mouse;snake,Snake
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Add:6GPP:What existing message type do you want copy?common
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Add:6GPP:What keywords and their field name suffixes do you want to add?lion,Lion;tiger,Tiger
daylight-saving-time
as a STRING,
configure the selective update as
follows:SelectiveUpdate:Parser:3gppAccessNetworkInfo:Modify:3GPP-E-UTRAN:What keywords and their field name suffixes do you want to add?daylight-saving-time,Extra1AsString
AccessNetworkFieldName
in the MDC to store
the field value. The MtxDiamAccessNetworkData MDC has the following spare fields
that you can use when adding keywords:Field Name | Type |
---|---|
AccessNetworkExtra1AsDecimal | DECIMAL |
AccessNetworkExtra1AsInt32 | INT32 |
AccessNetworkExtra1AsInt64 | INT64 |
AccessNetworkExtra1AsString | STRING |
AccessNetworkExtra1AsUInt32 | UINT32 |
AccessNetworkExtra1AsUInt64 | UINT64 |
AccessNetworkExtra1Bool | BOOLEAN |
AccessNetworkExtra2AsDecimal | DECIMAL |
AccessNetworkExtra2AsInt32 | INT32 |
AccessNetworkExtra2AsInt64 | INT64 |
AccessNetworkExtra2AsString | STRING |
AccessNetworkExtra2AsUInt32 | UINT32 |
AccessNetworkExtra2AsUInt64 | UINT64 |
AccessNetworkExtra2Bool | BOOLEAN |
In these fields, the <suffix>
is
Extra1AsDecimal
, Extra1AsInt32
, and so forth.
DataContainer::set: Field is already set. Multiple sets are not allowed. Descriptor=<MDC>, Field key=<Key>
Parsing Configuration
y
to the
following questions:-
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Do you want to modify this parser (y/n)?y
-
SelectiveUpdate:Parser:3gppAccessNetworkInfo:Do you want to allow a missing cell ID (y/n)?y
y
to the following question to
ignore unrecognized types or
keywords.SelectiveUpdate:Parser:3gppAccessNetworkInfo:Do you want to ignore unknown message types and keywords (y/n)?
y
to the following
question:SelectiveUpdate:Parser:3gppAccessNetworkInfo:Do you want to ignore parsing errors (y/n)?
If the output field(s) do not exist in the MDC, an error is logged and decoding continues. For example:
MdcSelectiveUpdateParser::setFieldKeys: Unable to create a field key for <prefix><suffix>. Passed field name=<prefix>Info, expected suffix=Info, replacing suffix=<suffix>. MDC Descriptor name=<MDC>
Container:
<prefix>Info
<prefix>InfoAsString
<prefix>Type
...
<prefix>NewField
Container:
<prefix>NewField
Base Container:
<prefix>Info
<prefix>InfoAsString
<prefix>Type
...