diff options
author | Anders Broman <anders.broman@ericsson.com> | 2009-01-15 20:55:24 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2009-01-15 20:55:24 +0000 |
commit | dd5a7c8cd2f68af1d287cfabc75860bc55d680b1 (patch) | |
tree | b9849687fdaa8431619a842ac7bbeecf0ee347d7 /asn1 | |
parent | c7450a6a8959b51f1d39f68c5a2382f810186b40 (diff) | |
download | wireshark-dd5a7c8cd2f68af1d287cfabc75860bc55d680b1.tar.gz |
Diameter.xml: Add s6a application contex + Spec ref
Add subdisecton of 3GPP AVP 701 MSISDN using code in gsm map.
svn path=/trunk/; revision=27240
Diffstat (limited to 'asn1')
-rw-r--r-- | asn1/gsmmap/gsmmap.cnf | 21 | ||||
-rw-r--r-- | asn1/gsmmap/packet-gsmmap-template.c | 25 | ||||
-rw-r--r-- | asn1/gsmmap/packet-gsmmap-template.h | 1 |
3 files changed, 27 insertions, 20 deletions
diff --git a/asn1/gsmmap/gsmmap.cnf b/asn1/gsmmap/gsmmap.cnf index b82aa2424c..39a683a49b 100644 --- a/asn1/gsmmap/gsmmap.cnf +++ b/asn1/gsmmap/gsmmap.cnf @@ -175,10 +175,6 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS" #.FN_BODY AddressString VAL_PTR = ¶meter_tvb tvbuff_t *parameter_tvb; - char *digit_str; - guint8 octet; - guint8 na; - guint8 np; proto_tree *subtree; %(DEFAULT_BODY)s @@ -187,22 +183,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS" return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_isdn_address_string); - - proto_tree_add_item(subtree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE); - proto_tree_add_item(subtree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE); - proto_tree_add_item(subtree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE); - - digit_str = unpack_digits(parameter_tvb, 1); - - proto_tree_add_string(subtree, hf_gsm_map_address_digits, parameter_tvb, 1, -1, digit_str); - - octet = tvb_get_guint8(parameter_tvb,0); - na = (octet & 0x70)>>4; - np = octet & 0x0f; - if ((na == 1) && (np==1))/*International Number & E164*/ - dissect_e164_cc(parameter_tvb, subtree, 1, TRUE); - else if(np==6) - dissect_e212_mcc_mnc(parameter_tvb, subtree, 1); + dissect_gsm_map_msisdn(parameter_tvb, actx->pinfo , subtree); #.FN_BODY TBCD-STRING VAL_PTR = ¶meter_tvb tvbuff_t *parameter_tvb; diff --git a/asn1/gsmmap/packet-gsmmap-template.c b/asn1/gsmmap/packet-gsmmap-template.c index 0681b17b4c..9fef0ce1fd 100644 --- a/asn1/gsmmap/packet-gsmmap-template.c +++ b/asn1/gsmmap/packet-gsmmap-template.c @@ -718,6 +718,31 @@ dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree return sms_encoding; } +void +dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree) +{ + char *digit_str; + guint8 octet; + guint8 na; + guint8 np; + + proto_tree_add_item(tree, hf_gsm_map_extension, tvb, 0,1,FALSE); + proto_tree_add_item(tree, hf_gsm_map_nature_of_number, tvb, 0,1,FALSE); + proto_tree_add_item(tree, hf_gsm_map_number_plan, tvb, 0,1,FALSE); + + digit_str = unpack_digits(tvb, 1); + + proto_tree_add_string(tree, hf_gsm_map_address_digits, tvb, 1, -1, digit_str); + + octet = tvb_get_guint8(tvb,0); + na = (octet & 0x70)>>4; + np = octet & 0x0f; + if ((na == 1) && (np==1))/*International Number & E164*/ + dissect_e164_cc(tvb, tree, 1, TRUE); + else if(np==6) + dissect_e212_mcc_mnc(tvb, tree, 1); + +} #include "packet-gsm_map-fn.c" diff --git a/asn1/gsmmap/packet-gsmmap-template.h b/asn1/gsmmap/packet-gsmmap-template.h index c48103c929..b82af1aea7 100644 --- a/asn1/gsmmap/packet-gsmmap-template.h +++ b/asn1/gsmmap/packet-gsmmap-template.h @@ -52,6 +52,7 @@ extern const value_string gsm_map_ietf_defined_pdp_vals[]; extern const value_string gsm_map_etsi_defined_pdp_vals[]; guint8 dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree); +void dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree); #include "packet-gsm_map-exp.h" |