aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_map.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2006-03-30 16:46:36 +0000
committerAnders Broman <anders.broman@ericsson.com>2006-03-30 16:46:36 +0000
commit84fb70ef42d8cedf4a74e24e26d54b8bd49e0028 (patch)
tree35d0eba8f6f41fb0dddfa7b43edee76c30b26d12 /epan/dissectors/packet-gsm_map.c
parentf87b0f78ae476eb5444320a0fa986041d1571b62 (diff)
call OID subdissector for private extensiions, fix makefiles.
svn path=/trunk/; revision=17772
Diffstat (limited to 'epan/dissectors/packet-gsm_map.c')
-rw-r--r--epan/dissectors/packet-gsm_map.c101
1 files changed, 86 insertions, 15 deletions
diff --git a/epan/dissectors/packet-gsm_map.c b/epan/dissectors/packet-gsm_map.c
index d0eb142468..47445819c8 100644
--- a/epan/dissectors/packet-gsm_map.c
+++ b/epan/dissectors/packet-gsm_map.c
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
-/* ./packet-gsm_map.c */
+/* .\packet-gsm_map.c */
/* ../../tools/asn2eth.py -X -b -e -p gsm_map -c gsmmap.cnf -s packet-gsm_map-template GSMMAP.asn */
/* Input file: packet-gsm_map-template.c */
@@ -836,6 +836,8 @@ static int hf_gsm_map_diagnosticInfo = -1; /* SignalInfo */
static int hf_gsm_map_unauthorizedLCSClient_Diagnostic = -1; /* T_unauthorizedLCSClient_Diagnostic */
static int hf_gsm_map_positionMethodFailure_Diagnostic = -1; /* PositionMethodFailure_Diagnostic */
static int hf_gsm_map_pcsExtensions = -1; /* PcsExtensions */
+static int hf_gsm_map_access = -1; /* Access */
+static int hf_gsm_map_version = -1; /* Version */
/* named bits */
static int hf_gsm_map_SupportedCamelPhases_phase1 = -1;
static int hf_gsm_map_SupportedCamelPhases_phase2 = -1;
@@ -1358,6 +1360,7 @@ static gint ett_gsm_map_MM_EventNotSupported_Param = -1;
static gint ett_gsm_map_TargetCellOutsideGCA_Param = -1;
static gint ett_gsm_map_SecureTransportErrorParam = -1;
static gint ett_gsm_map_ExtensionContainer = -1;
+static gint ett_gsm_map_AccessTypePriv = -1;
/*--- End of included file: packet-gsm_map-ett.c ---*/
#line 132 "packet-gsm_map-template.c"
@@ -1378,6 +1381,7 @@ static proto_tree *top_tree;
static int application_context_version;
gint protocolId;
gint AccessNetworkProtocolId;
+const char *obj_id = NULL;
static int gsm_map_tap = -1;
/* Forward declarations */
@@ -1713,7 +1717,7 @@ static int dissect_localValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
static int
dissect_gsm_map_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+ offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_index, &obj_id);
return offset;
}
@@ -2574,9 +2578,15 @@ static int
dissect_gsm_map_T_extType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
#line 447 "gsmmap.cnf"
+
proto_tree_add_text(tree, tvb, offset, -1, "Extension Data");
- call_dissector(data_handle, tvb, pinfo, tree);
- offset = tvb_length_remaining(tvb,offset);
+ if (obj_id){
+ offset=call_ber_oid_callback(obj_id, tvb, offset, pinfo, tree);
+ }else{
+ call_dissector(data_handle, tvb, pinfo, tree);
+ offset = tvb_length_remaining(tvb,offset);
+ }
+
@@ -3074,7 +3084,7 @@ static int dissect_vlr_Capability_impl(packet_info *pinfo, proto_tree *tree, tvb
int
dissect_gsm_map_GSN_Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 525 "gsmmap.cnf"
+#line 531 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
guint8 octet;
@@ -3470,7 +3480,7 @@ static int dissect_numberOfRequestedVectors(packet_info *pinfo, proto_tree *tree
int
dissect_gsm_map_LAIFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 573 "gsmmap.cnf"
+#line 579 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
proto_item *item;
@@ -5565,7 +5575,7 @@ static int
dissect_gsm_map_T_forwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_Ext_ForwOptions(implicit_tag, tvb, offset, pinfo, tree, hf_index);
-#line 460 "gsmmap.cnf"
+#line 466 "gsmmap.cnf"
proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
@@ -6994,7 +7004,7 @@ static int dissect_pdp_ContextIdentifier_impl(packet_info *pinfo, proto_tree *tr
static int
dissect_gsm_map_PDP_Type(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 471 "gsmmap.cnf"
+#line 477 "gsmmap.cnf"
guint8 pdp_type_org;
tvbuff_t *parameter_tvb;
@@ -7043,7 +7053,7 @@ static int dissect_pdp_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff
int
dissect_gsm_map_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 497 "gsmmap.cnf"
+#line 503 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
@@ -7089,7 +7099,7 @@ static int dissect_lcsAPN_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *t
int
dissect_gsm_map_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 511 "gsmmap.cnf"
+#line 517 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
@@ -8319,7 +8329,7 @@ dissect_gsm_map_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb, int
offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
NULL);
-#line 454 "gsmmap.cnf"
+#line 460 "gsmmap.cnf"
proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
@@ -9201,7 +9211,7 @@ static int dissect_subscriberState(packet_info *pinfo, proto_tree *tree, tvbuff_
int
dissect_gsm_map_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 555 "gsmmap.cnf"
+#line 561 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
proto_item *item;
@@ -14456,6 +14466,54 @@ dissect_gsm_map_SecureTransportErrorParam(gboolean implicit_tag _U_, tvbuff_t *t
return offset;
}
+
+static const value_string gsm_map_Access_vals[] = {
+ { 1, "gsm" },
+ { 2, "geran" },
+ { 3, "utran" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_Access(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_access(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_Access(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_access);
+}
+
+
+
+static int
+dissect_gsm_map_Version(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_version(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_Version(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_version);
+}
+
+
+static const ber_sequence_t AccessTypePriv_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_access },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_version },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AccessTypePriv(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ AccessTypePriv_sequence, hf_index, ett_gsm_map_AccessTypePriv);
+
+ return offset;
+}
+
/*--- PDUs ---*/
static void dissect_Component_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
@@ -14464,7 +14522,7 @@ static void dissect_Component_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/*--- End of included file: packet-gsm_map-fn.c ---*/
-#line 350 "packet-gsm_map-template.c"
+#line 351 "packet-gsm_map-template.c"
const value_string gsm_map_opr_code_strings[] = {
{ 2, "updateLocation" },
@@ -18867,6 +18925,14 @@ void proto_register_gsm_map(void) {
{ "pcsExtensions", "gsm_map.pcsExtensions",
FT_NONE, BASE_NONE, NULL, 0,
"ExtensionContainer/pcsExtensions", HFILL }},
+ { &hf_gsm_map_access,
+ { "access", "gsm_map.access",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Access_vals), 0,
+ "AccessTypePriv/access", HFILL }},
+ { &hf_gsm_map_version,
+ { "version", "gsm_map.version",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "AccessTypePriv/version", HFILL }},
{ &hf_gsm_map_SupportedCamelPhases_phase1,
{ "phase1", "gsm_map.phase1",
FT_BOOLEAN, 8, NULL, 0x80,
@@ -19285,7 +19351,7 @@ void proto_register_gsm_map(void) {
"", HFILL }},
/*--- End of included file: packet-gsm_map-hfarr.c ---*/
-#line 1898 "packet-gsm_map-template.c"
+#line 1899 "packet-gsm_map-template.c"
};
/* List of subtrees */
@@ -19702,9 +19768,10 @@ void proto_register_gsm_map(void) {
&ett_gsm_map_TargetCellOutsideGCA_Param,
&ett_gsm_map_SecureTransportErrorParam,
&ett_gsm_map_ExtensionContainer,
+ &ett_gsm_map_AccessTypePriv,
/*--- End of included file: packet-gsm_map-ettarr.c ---*/
-#line 1916 "packet-gsm_map-template.c"
+#line 1917 "packet-gsm_map-template.c"
};
/* Register protocol */
@@ -19719,6 +19786,10 @@ void proto_register_gsm_map(void) {
BASE_DEC);
gsm_map_tap = register_tap("gsm_map");
+
+/* #include "packet-gsm_map-dis-tab.c" */
+ register_ber_oid_name("1.2.826.0.1249.58.1.0","iso(1) member-body(2) bsi(826) disc(0) ericsson(1249) gsmNetworkApplicationsDefinition(58) gsm-Map(1) gsm-Map-Ext(0)" );
+ register_ber_oid_name("1.3.12.2.1107.3.66.1.2","accessTypeNotAllowed-id" );
/*register_ber_oid_name("0.4.0.0.1.0.1.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version3(3)" );
*
* Register our configuration options, particularly our ssn:s