summaryrefslogtreecommitdiff
path: root/asn1/gsm_map/packet-gsm_map-template.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2013-11-26 20:29:17 +0000
committerAnders Broman <anders.broman@ericsson.com>2013-11-26 20:29:17 +0000
commit861e0334f40a244561640d5b0c0a01c44e582e2e (patch)
treef464a18555708c8f34a7ecda8095db98312144a5 /asn1/gsm_map/packet-gsm_map-template.c
parent730bd9ca9d942eaaef65d7b75a5f615d2018df6d (diff)
downloadwireshark-861e0334f40a244561640d5b0c0a01c44e582e2e.tar.gz
From Vineeth:
Support for Nokias GSM MAP Private Extensions svn path=/trunk/; revision=53600
Diffstat (limited to 'asn1/gsm_map/packet-gsm_map-template.c')
-rw-r--r--asn1/gsm_map/packet-gsm_map-template.c88
1 files changed, 87 insertions, 1 deletions
diff --git a/asn1/gsm_map/packet-gsm_map-template.c b/asn1/gsm_map/packet-gsm_map-template.c
index 8988420c7b..4ec30d754d 100644
--- a/asn1/gsm_map/packet-gsm_map-template.c
+++ b/asn1/gsm_map/packet-gsm_map-template.c
@@ -1842,6 +1842,86 @@ static void dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo,
dissect_gsm_old_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, -1);
}
+static void dissect_NokiaMAP_ext_SriResExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_text(parent_tree, tvb, 0, -1, "Nokia Extension");
+ tree = proto_item_add_subtree(item, ett_NokiaMAP_Extensions_SriResExtension_U);
+ }
+ dissect_NokiaMAP_Extensions_SriResExtension(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+
+static void dissect_NokiaMAP_ext_SriExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_text(parent_tree, tvb, 0, -1, "Nokia Extension");
+ tree = proto_item_add_subtree(item, ett_NokiaMAP_Extensions_SriExtension_U);
+ }
+ dissect_NokiaMAP_Extensions_SriExtension(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static void dissect_NokiaMAP_ext_SS_DataExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_text(parent_tree, tvb, 0, -1, "Nokia Extension");
+ tree = proto_item_add_subtree(item, ett_NokiaMAP_Extensions_SS_DataExtension_U);
+ }
+ dissect_NokiaMAP_Extensions_SS_DataExtension(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static void dissect_NokiaMAP_ext_HOExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_text(parent_tree, tvb, 0, -1, "Nokia Extension");
+ tree = proto_item_add_subtree(item, ett_NokiaMAP_Extensions_HO_Ext_U);
+ }
+ dissect_NokiaMAP_Extensions_HO_Ext(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+static void dissect_NokiaMAP_ext_UlResExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_text(parent_tree, tvb, 0, -1, "Nokia Extension");
+ tree = proto_item_add_subtree(item, ett_NokiaMAP_Extensions_UlResExt_U);
+ }
+ dissect_NokiaMAP_Extensions_UlResExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
+
+static void dissect_NokiaMAP_ext_IsdArgExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_text(parent_tree, tvb, 0, -1, "Nokia Extension");
+ tree = proto_item_add_subtree(item, ett_NokiaMAP_Extensions_IsdArgExt_U);
+ }
+ dissect_NokiaMAP_Extensions_IsdArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
static guint8 gsmmap_pdu_type = 0;
static guint8 gsm_map_pdu_size = 0;
@@ -2292,12 +2372,18 @@ void proto_reg_handoff_gsm_map(void) {
register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
/* Private extension container */
register_ber_oid_dissector("1.3.12.2.1006.53.2.1.3", dissect_gsm_mapext_PlmnContainer, proto_gsm_map,"alcatel-E10-MAP-extension-PlmnContainer" );
+ register_ber_oid_dissector("0.34.0",dissect_NokiaMAP_ext_IsdArgExtension,proto_gsm_map,"Nokia ISD Extension");
+ register_ber_oid_dissector("0.34.2",dissect_NokiaMAP_ext_UlResExtension,proto_gsm_map,"Nokia Location Update Extension");
+ register_ber_oid_dissector("0.34.4",dissect_NokiaMAP_ext_SS_DataExtension,proto_gsm_map,"Nokia SS Data Extension");
+ register_ber_oid_dissector("0.34.5",dissect_NokiaMAP_ext_SriExtension,proto_gsm_map,"Nokia SRI Request Extension");
+ register_ber_oid_dissector("0.34.7",dissect_NokiaMAP_ext_SriResExtension,proto_gsm_map,"Nokia SRI Response Extension");
+ register_ber_oid_dissector("0.34.15",dissect_NokiaMAP_ext_HOExtension,proto_gsm_map,"Nokia HandOver Extension");
}
else {
range_foreach(ssn_range, range_delete_callback);
g_free(ssn_range);
}
-
+
ssn_range = range_copy(global_ssn_range);
range_foreach(ssn_range, range_add_callback);