diff options
Diffstat (limited to 'asn1/gsmmap')
-rw-r--r-- | asn1/gsmmap/GSMMAP.asn | 2 | ||||
-rw-r--r-- | asn1/gsmmap/gsmmap.cnf | 30 | ||||
-rw-r--r-- | asn1/gsmmap/packet-gsm_map-template.c | 5 |
3 files changed, 33 insertions, 4 deletions
diff --git a/asn1/gsmmap/GSMMAP.asn b/asn1/gsmmap/GSMMAP.asn index 4fe48608e2..09d93b02dc 100644 --- a/asn1/gsmmap/GSMMAP.asn +++ b/asn1/gsmmap/GSMMAP.asn @@ -2236,7 +2236,7 @@ CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE { laiFixedLength [1] IMPLICIT LAIFixedLength} CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING (SIZE (7)) --- Refers to Cell Global Identification or Service Are Identification +-- Refers to Cell Global Identification or Service Area Identification -- defined in 3GPP TS 23.003. -- The internal structure is defined as follows: -- octet 1 bits 4321 Mobile Country Code 1st digit diff --git a/asn1/gsmmap/gsmmap.cnf b/asn1/gsmmap/gsmmap.cnf index 3107144ef9..d14a480015 100644 --- a/asn1/gsmmap/gsmmap.cnf +++ b/asn1/gsmmap/gsmmap.cnf @@ -487,22 +487,46 @@ Component tvbuff_t *parameter_tvb; guint8 octet; + proto_item *item; + proto_tree *subtree; %(DEFAULT_BODY)s if (!parameter_tvb) return offset; + item = get_ber_last_created_item(); + subtree = proto_item_add_subtree(item, ett_gsm_map_pdptypenumber); + octet = tvb_get_guint8(parameter_tvb,0); switch(octet){ case 0x04: /* IPv4 */ - proto_tree_add_item(tree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE); + proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE); break; case 0x50: /* IPv4 */ - proto_tree_add_item(tree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE); + proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE); break; default: break; - } + } + +#.FN_PARS RAIdentity + + VAL_PTR = ¶meter_tvb + +#.FN_BODY RAIdentity + + tvbuff_t *parameter_tvb; + proto_item *item; + proto_tree *subtree; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + item = get_ber_last_created_item(); + subtree = proto_item_add_subtree(item, ett_gsm_map_RAIdentity); + de_gmm_rai(parameter_tvb, subtree, 0, 3, NULL,0); + #---------------------------------------------------------------------------------------- #.TYPE_ATTR SS-Code TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ssCode_vals) diff --git a/asn1/gsmmap/packet-gsm_map-template.c b/asn1/gsmmap/packet-gsm_map-template.c index 85bdbcfc30..b344a9aea7 100644 --- a/asn1/gsmmap/packet-gsm_map-template.c +++ b/asn1/gsmmap/packet-gsm_map-template.c @@ -120,6 +120,8 @@ static gint ett_gsm_map_ReturnResult_result = -1; static gint ett_gsm_map_ReturnError_result = -1; static gint ett_gsm_map_GSMMAPPDU = -1; static gint ett_gsm_map_ext_qos_subscribed = -1; +static gint ett_gsm_map_pdptypenumber = -1; +static gint ett_gsm_map_RAIdentity = -1; #include "packet-gsm_map-ett.c" @@ -1852,6 +1854,9 @@ void proto_register_gsm_map(void) { &ett_gsm_map_ReturnError_result, &ett_gsm_map_GSMMAPPDU, &ett_gsm_map_ext_qos_subscribed, + &ett_gsm_map_pdptypenumber, + &ett_gsm_map_RAIdentity, + #include "packet-gsm_map-ettarr.c" }; |