summaryrefslogtreecommitdiff
path: root/asn1
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-01-15 20:55:24 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-01-15 20:55:24 +0000
commitdd5a7c8cd2f68af1d287cfabc75860bc55d680b1 (patch)
treeb9849687fdaa8431619a842ac7bbeecf0ee347d7 /asn1
parentc7450a6a8959b51f1d39f68c5a2382f810186b40 (diff)
downloadwireshark-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.cnf21
-rw-r--r--asn1/gsmmap/packet-gsmmap-template.c25
-rw-r--r--asn1/gsmmap/packet-gsmmap-template.h1
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 = &parameter_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 = &parameter_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"