diff options
Diffstat (limited to 'asn1')
-rw-r--r-- | asn1/gsmmap/packet-gsmmap-template.c | 710 | ||||
-rw-r--r-- | asn1/h225/packet-h225-template.c | 69 | ||||
-rw-r--r-- | asn1/ranap/packet-ranap-template.c | 9 | ||||
-rw-r--r-- | asn1/s1ap/packet-s1ap-template.c | 28 | ||||
-rw-r--r-- | asn1/sabp/packet-sabp-template.c | 15 | ||||
-rw-r--r-- | asn1/ulp/packet-ulp-template.c | 37 |
6 files changed, 430 insertions, 438 deletions
diff --git a/asn1/gsmmap/packet-gsmmap-template.c b/asn1/gsmmap/packet-gsmmap-template.c index 3397430524..0681b17b4c 100644 --- a/asn1/gsmmap/packet-gsmmap-template.c +++ b/asn1/gsmmap/packet-gsmmap-template.c @@ -179,7 +179,6 @@ static dissector_handle_t map_handle; /* Preferenc settings default */ #define MAX_SSN 254 static range_t *global_ssn_range; -static range_t *ssn_range; /* Global variables */ static guint32 opcode=0; @@ -2053,102 +2052,103 @@ static void range_add_callback(guint32 ssn) void proto_reg_handoff_gsm_map(void) { - static int map_prefs_initialized = FALSE; - data_handle = find_dissector("data"); - ranap_handle = find_dissector("ranap"); - dtap_handle = find_dissector("gsm_a_dtap"); + static gboolean map_prefs_initialized = FALSE; + static range_t *ssn_range; if (!map_prefs_initialized) { map_prefs_initialized = TRUE; - map_handle = create_dissector_handle(dissect_gsm_map, proto_gsm_map); - register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3"); - register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" ); - /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */ - /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/ - register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" ); - 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" ); + data_handle = find_dissector("data"); + ranap_handle = find_dissector("ranap"); + dtap_handle = find_dissector("gsm_a_dtap"); + + map_handle = find_dissector("gsm_map"); + register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3"); + register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" ); + /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */ + /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/ + register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" ); + 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" ); } else { range_foreach(ssn_range, range_delete_callback); + g_free(ssn_range); } - g_free(ssn_range); ssn_range = range_copy(global_ssn_range); - range_foreach(ssn_range, range_add_callback); } @@ -2159,255 +2159,255 @@ void proto_register_gsm_map(void) { /* List of fields */ static hf_register_info hf[] = { - { &hf_gsm_map_old_Component_PDU, - { "Component", "gsm_map.old.Component", - FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0, - "gsm_map.old.Component", HFILL }}, - { &hf_gsm_map_getPassword, - { "getPassword", "gsm_map.getPassword", - FT_BYTES, BASE_HEX, NULL, 0, - "getPassword", HFILL }}, - { &hf_gsm_map_currentPassword, - { "currentPassword", "gsm_map.currentPassword", - FT_STRING, BASE_NONE, NULL, 0, - "", HFILL }}, - { &hf_gsm_map_extension, - { "Extension", "gsm_map.extension", - FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80, - "Extension", HFILL }}, - { &hf_gsm_map_nature_of_number, - { "Nature of number", "gsm_map.nature_of_number", - FT_UINT8, BASE_HEX, VALS(gsm_map_nature_of_number_values), 0x70, - "Nature of number", HFILL }}, - { &hf_gsm_map_number_plan, - { "Number plan", "gsm_map.number_plan", - FT_UINT8, BASE_HEX, VALS(gsm_map_number_plan_values), 0x0f, - "Number plan", HFILL }}, - { &hf_gsm_map_isdn_address_digits, - { "ISDN Address digits", "gsm_map.isdn.address.digits", - FT_STRING, BASE_NONE, NULL, 0, - "ISDN Address digits", HFILL }}, - { &hf_gsm_map_address_digits, - { "Address digits", "gsm_map.address.digits", - FT_STRING, BASE_NONE, NULL, 0, - "Address digits", HFILL }}, - { &hf_gsm_map_servicecentreaddress_digits, - { "ServiceCentreAddress digits", "gsm_map.servicecentreaddress_digits", - FT_STRING, BASE_NONE, NULL, 0, - "ServiceCentreAddress digits", HFILL }}, - { &hf_gsm_map_imsi_digits, - { "IMSI digits", "gsm_map.imsi_digits", - FT_STRING, BASE_NONE, NULL, 0, - "IMSI digits", HFILL }}, - { &hf_gsm_map_TBCD_digits, - { "TBCD digits", "gsm_map.imsi_digits", - FT_STRING, BASE_NONE, NULL, 0, - "TBCD digits", HFILL }}, - { &hf_gsm_map_Ss_Status_unused, - { "Unused", "gsm_map.unused", - FT_UINT8, BASE_HEX, NULL, 0xf0, - "Unused", HFILL }}, - { &hf_gsm_map_Ss_Status_q_bit, - { "Q bit", "gsm_map.ss_status_q_bit", - FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08, - "Q bit", HFILL }}, - { &hf_gsm_map_Ss_Status_p_bit, - { "P bit", "gsm_map.ss_status_p_bit", - FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04, - "P bit", HFILL }}, - { &hf_gsm_map_Ss_Status_r_bit, - { "R bit", "gsm_map.ss_status_r_bit", - FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02, - "R bit", HFILL }}, - { &hf_gsm_map_Ss_Status_a_bit, - { "A bit", "gsm_map.ss_status_a_bit", - FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01, - "A bit", HFILL }}, - { &hf_gsm_map_notification_to_forwarding_party, - { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party", - FT_BOOLEAN, 8, TFS(¬ification_value), 0x80, - "Notification to forwarding party", HFILL }}, - { &hf_gsm_map_redirecting_presentation, - { "Redirecting presentation", "gsm_map.redirecting_presentation", - FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40, - "Redirecting presentation", HFILL }}, - { &hf_gsm_map_notification_to_calling_party, - { "Notification to calling party", "gsm_map.notification_to_clling_party", - FT_BOOLEAN, 8, TFS(¬ification_value), 0x20, - "Notification to calling party", HFILL }}, - { &hf_gsm_map_forwarding_reason, - { "Forwarding reason", "gsm_map.forwarding_reason", - FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c, - "forwarding reason", HFILL }}, - { &hf_gsm_map_pdp_type_org, - { "PDP Type Organization", "gsm_map.pdp_type_org", - FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f, - "PDP Type Organization", HFILL }}, - { &hf_gsm_map_etsi_pdp_type_number, - { "PDP Type Number", "gsm_map.pdp_type_org", - FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0, - "ETSI PDP Type Number", HFILL }}, - { &hf_gsm_map_ietf_pdp_type_number, - { "PDP Type Number", "gsm_map.ietf_pdp_type_number", - FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0, - "IETF PDP Type Number", HFILL }}, - { &hf_gsm_map_ext_qos_subscribed_pri, - { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri", - FT_UINT8, BASE_DEC, NULL, 0xff, - "Allocation/Retention priority", HFILL }}, - { &hf_gsm_map_qos_traffic_cls, - { "Traffic class", "gsm_map.qos.traffic_cls", - FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0xe0, - "Traffic class", HFILL }}, - { &hf_gsm_map_qos_del_order, - { "Delivery order", "gsm_map.qos.del_order", - FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0x18, - "Delivery order", HFILL }}, - { &hf_gsm_map_qos_del_of_err_sdu, - { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu", - FT_UINT8, BASE_DEC, VALS(gsm_a_qos_del_of_err_sdu_vals), 0x03, - "Delivery of erroneous SDUs", HFILL }}, - { &hf_gsm_map_qos_ber, - { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber", - FT_UINT8, BASE_DEC, VALS(gsm_a_qos_ber_vals), 0xf0, - "Residual Bit Error Rate (BER)", HFILL }}, - { &hf_gsm_map_qos_sdu_err_rat, - { "SDU error ratio", "gsm_map.qos.sdu_err_rat", - FT_UINT8, BASE_DEC, VALS(gsm_a_qos_sdu_err_rat_vals), 0x0f, - "SDU error ratio", HFILL }}, - { &hf_gsm_map_qos_traff_hdl_pri, - { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri", - FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traff_hdl_pri_vals), 0x03, - "Traffic handling priority", HFILL }}, - - { &hf_gsm_map_qos_max_sdu, - { "Maximum SDU size", "gsm_map.qos.max_sdu", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Maximum SDU size", HFILL }}, - { &hf_gsm_map_max_brate_ulink, - { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Maximum bit rate for uplink", HFILL }}, - { &hf_gsm_map_max_brate_dlink, - { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Maximum bit rate for downlink", HFILL }}, - { &hf_gsm_map_qos_transfer_delay, - { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay", - FT_UINT8, BASE_DEC, NULL, 0xfc, - "Transfer delay", HFILL }}, - { &hf_gsm_map_guaranteed_max_brate_ulink, - { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Guaranteed bit rate for uplink", HFILL }}, - { &hf_gsm_map_guaranteed_max_brate_dlink, - { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Guaranteed bit rate for downlink", HFILL }}, - { &hf_gsm_map_GSNAddress_IPv4, - { "GSN-Address IPv4", "gsm_map.gsnaddress_ipv4", - FT_IPv4, BASE_NONE, NULL, 0, - "IPAddress IPv4", HFILL }}, - { &hf_gsm_map_GSNAddress_IPv6, - { "GSN Address IPv6", "gsm_map.gsnaddress_ipv6", - FT_IPv4, BASE_NONE, NULL, 0, - "IPAddress IPv6", HFILL }}, - { &hf_gsm_map_ranap_service_Handover, - { "service-Handover", "gsm_map.ranap.service_Handover", - FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0, - "gsm_map.ranap.Service_Handover", HFILL }}, - { &hf_gsm_map_IntegrityProtectionInformation, - { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ranap.IntegrityProtectionInformation", HFILL }}, - { &hf_gsm_map_EncryptionInformation, - { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ranap.EncryptionInformation", HFILL }}, - { &hf_gsm_map_PlmnContainer_PDU, - { "PlmnContainer", "gsm_map.PlmnContainer", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.PlmnContainer", HFILL }}, - { &hf_gsm_map_ss_SS_UserData, - { "SS-UserData", "gsm_ss.SS_UserData", - FT_STRING, BASE_NONE, NULL, 0, - "gsm_map.ss.SS_UserData", HFILL }}, - { &hf_gsm_map_cbs_coding_grp, - { "Coding Group","gsm_map.cbs.coding_grp", - FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_data_coding_scheme_coding_grp_vals), 0xf0, - "Coding Group", HFILL } - }, - { &hf_gsm_map_cbs_coding_grp0_lang, - { "Language","gsm_map.cbs.coding_grp0_lang", - FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp0_lang_vals), 0x0f, - "Language", HFILL } - }, - { &hf_gsm_map_cbs_coding_grp1_lang, - { "Language","gsm_map.cbs.coding_grp1_lang", - FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp1_lang_vals), 0x0f, - "Language", HFILL } - }, - { &hf_gsm_map_cbs_coding_grp2_lang, - { "Language","gsm_map.cbs.coding_grp2_lang", - FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp2_lang_vals), 0x0f, - "Language", HFILL } - }, - { &hf_gsm_map_cbs_coding_grp3_lang, - { "Language","gsm_map.cbs.coding_grp3_lang", - FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp3_lang_vals), 0x0f, - "Language", HFILL } - }, - { &hf_gsm_map_cbs_coding_grp4_7_comp, - { "Compressed indicator","gsm_map.cbs.coding_grp4_7_comp", - FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_comp_vals), 0x20, - "Compressed indicator", HFILL } - }, - { &hf_gsm_map_cbs_coding_grp4_7_class_ind, - { "Message Class present","gsm_map.cbs.coding_grp4_7_class_ind", - FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_class_ind_vals), 0x10, - "Message Class present", HFILL } - }, - { &hf_gsm_map_cbs_coding_grp4_7_char_set, - { "Character set being used","gsm_map.cbs.coding_grp4_7_char_set", - FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_char_set_vals), 0x0c, - "Character set being used", HFILL } - }, - { &hf_gsm_map_cbs_coding_grp4_7_class, - { "Message Class","gsm_map.cbs.coding_grp4_7_class", - FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_class_vals), 0x03, - "Message Class", HFILL } - }, - { &hf_gsm_map_cbs_coding_grp15_mess_code, - { "Message coding","gsm_map.cbs.cbs_coding_grp15_mess_code", - FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_mess_code_vals), 0x04, - "Message coding", HFILL } - }, - { &hf_gsm_map_cbs_coding_grp15_class, - { "Message Class","gsm_map.cbs.gsm_map_cbs_coding_grp15_class", - FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_class_vals), 0x03, - "Message Class", HFILL } - }, - { &hf_gsm_map_tmsi, - { "tmsi", "gsm_map.tmsi", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.TMSI", HFILL }}, - - { &hf_gsm_map_ie_tag, - { "Tag", "gsm_map.ie_tag", - FT_UINT8, BASE_DEC, VALS(gsm_map_tag_vals), 0, - "GSM 04.08 tag", HFILL }}, - { &hf_gsm_map_len, - { "Length", "gsm_map.length", - FT_UINT8, BASE_DEC, NULL, 0, - "Length", HFILL }}, - { &hf_gsm_map_disc_par, - { "Discrimination parameter", "gsm_map.disc_par", - FT_UINT8, BASE_DEC, VALS(gsm_map_disc_par_vals), 0, - "Discrimination parameter", HFILL }}, - { &hf_gsm_map_dlci, - { "DLCI", "gsm_map.disc_par", - FT_UINT8, BASE_DEC, NULL, 0, - "Data Link Connection Indicator", HFILL }}, + { &hf_gsm_map_old_Component_PDU, + { "Component", "gsm_map.old.Component", + FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0, + "gsm_map.old.Component", HFILL }}, + { &hf_gsm_map_getPassword, + { "getPassword", "gsm_map.getPassword", + FT_BYTES, BASE_HEX, NULL, 0, + "getPassword", HFILL }}, + { &hf_gsm_map_currentPassword, + { "currentPassword", "gsm_map.currentPassword", + FT_STRING, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_gsm_map_extension, + { "Extension", "gsm_map.extension", + FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80, + "Extension", HFILL }}, + { &hf_gsm_map_nature_of_number, + { "Nature of number", "gsm_map.nature_of_number", + FT_UINT8, BASE_HEX, VALS(gsm_map_nature_of_number_values), 0x70, + "Nature of number", HFILL }}, + { &hf_gsm_map_number_plan, + { "Number plan", "gsm_map.number_plan", + FT_UINT8, BASE_HEX, VALS(gsm_map_number_plan_values), 0x0f, + "Number plan", HFILL }}, + { &hf_gsm_map_isdn_address_digits, + { "ISDN Address digits", "gsm_map.isdn.address.digits", + FT_STRING, BASE_NONE, NULL, 0, + "ISDN Address digits", HFILL }}, + { &hf_gsm_map_address_digits, + { "Address digits", "gsm_map.address.digits", + FT_STRING, BASE_NONE, NULL, 0, + "Address digits", HFILL }}, + { &hf_gsm_map_servicecentreaddress_digits, + { "ServiceCentreAddress digits", "gsm_map.servicecentreaddress_digits", + FT_STRING, BASE_NONE, NULL, 0, + "ServiceCentreAddress digits", HFILL }}, + { &hf_gsm_map_imsi_digits, + { "IMSI digits", "gsm_map.imsi_digits", + FT_STRING, BASE_NONE, NULL, 0, + "IMSI digits", HFILL }}, + { &hf_gsm_map_TBCD_digits, + { "TBCD digits", "gsm_map.imsi_digits", + FT_STRING, BASE_NONE, NULL, 0, + "TBCD digits", HFILL }}, + { &hf_gsm_map_Ss_Status_unused, + { "Unused", "gsm_map.unused", + FT_UINT8, BASE_HEX, NULL, 0xf0, + "Unused", HFILL }}, + { &hf_gsm_map_Ss_Status_q_bit, + { "Q bit", "gsm_map.ss_status_q_bit", + FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08, + "Q bit", HFILL }}, + { &hf_gsm_map_Ss_Status_p_bit, + { "P bit", "gsm_map.ss_status_p_bit", + FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04, + "P bit", HFILL }}, + { &hf_gsm_map_Ss_Status_r_bit, + { "R bit", "gsm_map.ss_status_r_bit", + FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02, + "R bit", HFILL }}, + { &hf_gsm_map_Ss_Status_a_bit, + { "A bit", "gsm_map.ss_status_a_bit", + FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01, + "A bit", HFILL }}, + { &hf_gsm_map_notification_to_forwarding_party, + { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party", + FT_BOOLEAN, 8, TFS(¬ification_value), 0x80, + "Notification to forwarding party", HFILL }}, + { &hf_gsm_map_redirecting_presentation, + { "Redirecting presentation", "gsm_map.redirecting_presentation", + FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40, + "Redirecting presentation", HFILL }}, + { &hf_gsm_map_notification_to_calling_party, + { "Notification to calling party", "gsm_map.notification_to_clling_party", + FT_BOOLEAN, 8, TFS(¬ification_value), 0x20, + "Notification to calling party", HFILL }}, + { &hf_gsm_map_forwarding_reason, + { "Forwarding reason", "gsm_map.forwarding_reason", + FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c, + "forwarding reason", HFILL }}, + { &hf_gsm_map_pdp_type_org, + { "PDP Type Organization", "gsm_map.pdp_type_org", + FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f, + "PDP Type Organization", HFILL }}, + { &hf_gsm_map_etsi_pdp_type_number, + { "PDP Type Number", "gsm_map.pdp_type_org", + FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0, + "ETSI PDP Type Number", HFILL }}, + { &hf_gsm_map_ietf_pdp_type_number, + { "PDP Type Number", "gsm_map.ietf_pdp_type_number", + FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0, + "IETF PDP Type Number", HFILL }}, + { &hf_gsm_map_ext_qos_subscribed_pri, + { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri", + FT_UINT8, BASE_DEC, NULL, 0xff, + "Allocation/Retention priority", HFILL }}, + { &hf_gsm_map_qos_traffic_cls, + { "Traffic class", "gsm_map.qos.traffic_cls", + FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0xe0, + "Traffic class", HFILL }}, + { &hf_gsm_map_qos_del_order, + { "Delivery order", "gsm_map.qos.del_order", + FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0x18, + "Delivery order", HFILL }}, + { &hf_gsm_map_qos_del_of_err_sdu, + { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu", + FT_UINT8, BASE_DEC, VALS(gsm_a_qos_del_of_err_sdu_vals), 0x03, + "Delivery of erroneous SDUs", HFILL }}, + { &hf_gsm_map_qos_ber, + { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber", + FT_UINT8, BASE_DEC, VALS(gsm_a_qos_ber_vals), 0xf0, + "Residual Bit Error Rate (BER)", HFILL }}, + { &hf_gsm_map_qos_sdu_err_rat, + { "SDU error ratio", "gsm_map.qos.sdu_err_rat", + FT_UINT8, BASE_DEC, VALS(gsm_a_qos_sdu_err_rat_vals), 0x0f, + "SDU error ratio", HFILL }}, + { &hf_gsm_map_qos_traff_hdl_pri, + { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri", + FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traff_hdl_pri_vals), 0x03, + "Traffic handling priority", HFILL }}, + + { &hf_gsm_map_qos_max_sdu, + { "Maximum SDU size", "gsm_map.qos.max_sdu", + FT_UINT32, BASE_DEC, NULL, 0x0, + "Maximum SDU size", HFILL }}, + { &hf_gsm_map_max_brate_ulink, + { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink", + FT_UINT32, BASE_DEC, NULL, 0x0, + "Maximum bit rate for uplink", HFILL }}, + { &hf_gsm_map_max_brate_dlink, + { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink", + FT_UINT32, BASE_DEC, NULL, 0x0, + "Maximum bit rate for downlink", HFILL }}, + { &hf_gsm_map_qos_transfer_delay, + { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay", + FT_UINT8, BASE_DEC, NULL, 0xfc, + "Transfer delay", HFILL }}, + { &hf_gsm_map_guaranteed_max_brate_ulink, + { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink", + FT_UINT32, BASE_DEC, NULL, 0x0, + "Guaranteed bit rate for uplink", HFILL }}, + { &hf_gsm_map_guaranteed_max_brate_dlink, + { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink", + FT_UINT32, BASE_DEC, NULL, 0x0, + "Guaranteed bit rate for downlink", HFILL }}, + { &hf_gsm_map_GSNAddress_IPv4, + { "GSN-Address IPv4", "gsm_map.gsnaddress_ipv4", + FT_IPv4, BASE_NONE, NULL, 0, + "IPAddress IPv4", HFILL }}, + { &hf_gsm_map_GSNAddress_IPv6, + { "GSN Address IPv6", "gsm_map.gsnaddress_ipv6", + FT_IPv4, BASE_NONE, NULL, 0, + "IPAddress IPv6", HFILL }}, + { &hf_gsm_map_ranap_service_Handover, + { "service-Handover", "gsm_map.ranap.service_Handover", + FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0, + "gsm_map.ranap.Service_Handover", HFILL }}, + { &hf_gsm_map_IntegrityProtectionInformation, + { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ranap.IntegrityProtectionInformation", HFILL }}, + { &hf_gsm_map_EncryptionInformation, + { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ranap.EncryptionInformation", HFILL }}, + { &hf_gsm_map_PlmnContainer_PDU, + { "PlmnContainer", "gsm_map.PlmnContainer", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.PlmnContainer", HFILL }}, + { &hf_gsm_map_ss_SS_UserData, + { "SS-UserData", "gsm_ss.SS_UserData", + FT_STRING, BASE_NONE, NULL, 0, + "gsm_map.ss.SS_UserData", HFILL }}, + { &hf_gsm_map_cbs_coding_grp, + { "Coding Group","gsm_map.cbs.coding_grp", + FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_data_coding_scheme_coding_grp_vals), 0xf0, + "Coding Group", HFILL } + }, + { &hf_gsm_map_cbs_coding_grp0_lang, + { "Language","gsm_map.cbs.coding_grp0_lang", + FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp0_lang_vals), 0x0f, + "Language", HFILL } + }, + { &hf_gsm_map_cbs_coding_grp1_lang, + { "Language","gsm_map.cbs.coding_grp1_lang", + FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp1_lang_vals), 0x0f, + "Language", HFILL } + }, + { &hf_gsm_map_cbs_coding_grp2_lang, + { "Language","gsm_map.cbs.coding_grp2_lang", + FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp2_lang_vals), 0x0f, + "Language", HFILL } + }, + { &hf_gsm_map_cbs_coding_grp3_lang, + { "Language","gsm_map.cbs.coding_grp3_lang", + FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp3_lang_vals), 0x0f, + "Language", HFILL } + }, + { &hf_gsm_map_cbs_coding_grp4_7_comp, + { "Compressed indicator","gsm_map.cbs.coding_grp4_7_comp", + FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_comp_vals), 0x20, + "Compressed indicator", HFILL } + }, + { &hf_gsm_map_cbs_coding_grp4_7_class_ind, + { "Message Class present","gsm_map.cbs.coding_grp4_7_class_ind", + FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_class_ind_vals), 0x10, + "Message Class present", HFILL } + }, + { &hf_gsm_map_cbs_coding_grp4_7_char_set, + { "Character set being used","gsm_map.cbs.coding_grp4_7_char_set", + FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_char_set_vals), 0x0c, + "Character set being used", HFILL } + }, + { &hf_gsm_map_cbs_coding_grp4_7_class, + { "Message Class","gsm_map.cbs.coding_grp4_7_class", + FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_class_vals), 0x03, + "Message Class", HFILL } + }, + { &hf_gsm_map_cbs_coding_grp15_mess_code, + { "Message coding","gsm_map.cbs.cbs_coding_grp15_mess_code", + FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_mess_code_vals), 0x04, + "Message coding", HFILL } + }, + { &hf_gsm_map_cbs_coding_grp15_class, + { "Message Class","gsm_map.cbs.gsm_map_cbs_coding_grp15_class", + FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_class_vals), 0x03, + "Message Class", HFILL } + }, + { &hf_gsm_map_tmsi, + { "tmsi", "gsm_map.tmsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.TMSI", HFILL }}, + + { &hf_gsm_map_ie_tag, + { "Tag", "gsm_map.ie_tag", + FT_UINT8, BASE_DEC, VALS(gsm_map_tag_vals), 0, + "GSM 04.08 tag", HFILL }}, + { &hf_gsm_map_len, + { "Length", "gsm_map.length", + FT_UINT8, BASE_DEC, NULL, 0, + "Length", HFILL }}, + { &hf_gsm_map_disc_par, + { "Discrimination parameter", "gsm_map.disc_par", + FT_UINT8, BASE_DEC, VALS(gsm_map_disc_par_vals), 0, + "Discrimination parameter", HFILL }}, + { &hf_gsm_map_dlci, + { "DLCI", "gsm_map.disc_par", + FT_UINT8, BASE_DEC, NULL, 0, + "Data Link Connection Indicator", HFILL }}, #include "packet-gsm_map-hfarr.c" }; @@ -2418,24 +2418,24 @@ void proto_register_gsm_map(void) { &ett_gsm_map_InvokeId, &ett_gsm_map_InvokePDU, &ett_gsm_map_ReturnResultPDU, - &ett_gsm_map_ReturnErrorPDU, + &ett_gsm_map_ReturnErrorPDU, &ett_gsm_map_ReturnResult_result, - &ett_gsm_map_ReturnError_result, + &ett_gsm_map_ReturnError_result, &ett_gsm_map_GSMMAPPDU, - &ett_gsm_map_ext_qos_subscribed, - &ett_gsm_map_pdptypenumber, - &ett_gsm_map_RAIdentity, - &ett_gsm_map_LAIFixedLength, - &ett_gsm_map_isdn_address_string, - &ett_gsm_map_geo_desc, - &ett_gsm_map_LongSignalInfo, - &ett_gsm_map_RadioResourceInformation, - &ett_gsm_map_MSNetworkCapability, - &ett_gsm_map_MSRadioAccessCapability, - &ett_gsm_map_externalsignalinfo, - &ett_gsm_map_cbs_data_coding, - &ett_gsm_map_GlobalCellId, - &ett_gsm_map_GeographicalInformation, + &ett_gsm_map_ext_qos_subscribed, + &ett_gsm_map_pdptypenumber, + &ett_gsm_map_RAIdentity, + &ett_gsm_map_LAIFixedLength, + &ett_gsm_map_isdn_address_string, + &ett_gsm_map_geo_desc, + &ett_gsm_map_LongSignalInfo, + &ett_gsm_map_RadioResourceInformation, + &ett_gsm_map_MSNetworkCapability, + &ett_gsm_map_MSRadioAccessCapability, + &ett_gsm_map_externalsignalinfo, + &ett_gsm_map_cbs_data_coding, + &ett_gsm_map_GlobalCellId, + &ett_gsm_map_GeographicalInformation, #include "packet-gsm_map-ettarr.c" }; @@ -2464,8 +2464,6 @@ void proto_register_gsm_map(void) { * Set default SSNs */ range_convert_str(&global_ssn_range, "6-9", MAX_SSN); - ssn_range = range_empty(); - gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map); @@ -2473,5 +2471,3 @@ void proto_register_gsm_map(void) { "TCAP Subsystem numbers used for GSM MAP", &global_ssn_range, MAX_SSN); } - - diff --git a/asn1/h225/packet-h225-template.c b/asn1/h225/packet-h225-template.c index 17646e0ef7..e2d3ad9d84 100644 --- a/asn1/h225/packet-h225-template.c +++ b/asn1/h225/packet-h225-template.c @@ -77,8 +77,6 @@ static h225_packet_info pi_arr[5]; /* We assuming a maximum of 5 H225 messaages static int pi_current=0; h225_packet_info *h225_pi=&pi_arr[0]; -static dissector_handle_t h225ras_handle; -static dissector_handle_t H323UserInformation_handle; static dissector_handle_t data_handle; /* Subdissector tables */ static dissector_table_t nsp_object_dissector_table; @@ -121,7 +119,6 @@ static gboolean h225_h245_in_tree = TRUE; static gboolean h225_tp_in_tree = TRUE; /* Global variables */ -static guint saved_h225_tls_port; static guint32 ipv4_address; static guint32 ipv4_port; guint32 T38_manufacturer_code; @@ -151,15 +148,15 @@ dissect_h225_H323UserInformation(tvbuff_t *tvb, packet_info *pinfo, proto_tree * proto_tree *tr; int offset = 0; - pi_current++; - if(pi_current==5){ - pi_current=0; - } - h225_pi=&pi_arr[pi_current]; + pi_current++; + if(pi_current==5){ + pi_current=0; + } + h225_pi=&pi_arr[pi_current]; /* Init struct for collecting h225_packet_info */ - reset_h225_packet_info(h225_pi); - h225_pi->msg_type = H225_CS; + reset_h225_packet_info(h225_pi); + h225_pi->msg_type = H225_CS; next_tvb_init(&h245_list); next_tvb_init(&tp_list); @@ -194,15 +191,15 @@ dissect_h225_h225_RasMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree proto_tree *tr; guint32 offset=0; - pi_current++; - if(pi_current==5){ - pi_current=0; - } - h225_pi=&pi_arr[pi_current]; + pi_current++; + if(pi_current==5){ + pi_current=0; + } + h225_pi=&pi_arr[pi_current]; /* Init struct for collecting h225_packet_info */ - reset_h225_packet_info(h225_pi); - h225_pi->msg_type = H225_RAS; + reset_h225_packet_info(h225_pi); + h225_pi->msg_type = H225_RAS; if (check_col(pinfo->cinfo, COL_PROTOCOL)){ col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME); @@ -304,27 +301,25 @@ void proto_reg_handoff_h225(void) { static gboolean h225_prefs_initialized = FALSE; + static dissector_handle_t h225ras_handle; + static guint saved_h225_tls_port; + + if (!h225_prefs_initialized) { + h225ras_handle=find_dissector("h225.ras"); + dissector_add("udp.port", UDP_PORT_RAS1, h225ras_handle); + dissector_add("udp.port", UDP_PORT_RAS2, h225ras_handle); + + h245_handle = find_dissector("h245"); + h245dg_handle = find_dissector("h245dg"); + h4501_handle = find_dissector("h4501"); + data_handle = find_dissector("data"); + h225_prefs_initialized = TRUE; + } else { + ssl_dissector_delete(saved_h225_tls_port, "q931.tpkt", TRUE); + } - if (h225_prefs_initialized) { - ssl_dissector_delete(saved_h225_tls_port, "q931.tpkt", TRUE); - } else { - h225_prefs_initialized = TRUE; - } - - saved_h225_tls_port = h225_tls_port; - ssl_dissector_add(saved_h225_tls_port, "q931.tpkt", TRUE); - - h225ras_handle=new_create_dissector_handle(dissect_h225_h225_RasMessage, proto_h225); - dissector_add("udp.port", UDP_PORT_RAS1, h225ras_handle); - dissector_add("udp.port", UDP_PORT_RAS2, h225ras_handle); - - H323UserInformation_handle=find_dissector("h323ui"); - - h245_handle = find_dissector("h245"); - h245dg_handle = find_dissector("h245dg"); - h4501_handle = find_dissector("h4501"); - data_handle = find_dissector("data"); - + saved_h225_tls_port = h225_tls_port; + ssl_dissector_add(saved_h225_tls_port, "q931.tpkt", TRUE); } diff --git a/asn1/ranap/packet-ranap-template.c b/asn1/ranap/packet-ranap-template.c index df56e28ace..657ba60b6b 100644 --- a/asn1/ranap/packet-ranap-template.c +++ b/asn1/ranap/packet-ranap-template.c @@ -60,8 +60,6 @@ #include "packet-ranap-val.h" -static dissector_handle_t ranap_handle = NULL; - /* Initialize the protocol and registered fields */ static int proto_ranap = -1; @@ -237,7 +235,6 @@ void proto_register_ranap(void) { /* Register dissector */ register_dissector("ranap", dissect_ranap, proto_ranap); - ranap_handle = find_dissector("ranap"); /* Register dissector tables */ ranap_ies_dissector_table = register_dissector_table("ranap.ies", "RANAP-PROTOCOL-IES", FT_UINT32, BASE_DEC); @@ -262,11 +259,14 @@ void proto_register_ranap(void) { void proto_reg_handoff_ranap(void) { - static int initialized = FALSE; + static gboolean initialized = FALSE; + static dissector_handle_t ranap_handle; static gint local_ranap_sccp_ssn; if (!initialized) { + ranap_handle = find_dissector("ranap"); initialized = TRUE; +#include "packet-ranap-dis-tab.c" } else { dissector_delete("sccp.ssn", local_ranap_sccp_ssn, ranap_handle); } @@ -274,7 +274,6 @@ proto_reg_handoff_ranap(void) dissector_add("sccp.ssn", global_ranap_sccp_ssn, ranap_handle); local_ranap_sccp_ssn = global_ranap_sccp_ssn; -#include "packet-ranap-dis-tab.c" } diff --git a/asn1/s1ap/packet-s1ap-template.c b/asn1/s1ap/packet-s1ap-template.c index 46839ff1f1..a9efbdb011 100644 --- a/asn1/s1ap/packet-s1ap-template.c +++ b/asn1/s1ap/packet-s1ap-template.c @@ -62,8 +62,6 @@ #include "packet-s1ap-val.h" -static dissector_handle_t s1ap_handle = NULL; - /* Initialize the protocol and registered fields */ static int proto_s1ap = -1; @@ -159,11 +157,14 @@ dissect_s1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) void proto_reg_handoff_s1ap(void) { - static int Initialized=FALSE; - static int SctpPort=0; + static gboolean Initialized=FALSE; + static dissector_handle_t s1ap_handle; + static guint SctpPort; if (!Initialized) { + s1ap_handle = find_dissector("s1ap"); Initialized=TRUE; +#include "packet-s1ap-dis-tab.c" } else { dissector_delete("sctp.port", SctpPort, s1ap_handle); } @@ -171,7 +172,6 @@ proto_reg_handoff_s1ap(void) SctpPort=gbl_s1apSctpPort; dissector_add("sctp.port", SctpPort, s1ap_handle); -#include "packet-s1ap-dis-tab.c" } /*--- proto_register_s1ap -------------------------------------------*/ @@ -200,7 +200,6 @@ void proto_register_s1ap(void) { /* Register dissector */ register_dissector("s1ap", dissect_s1ap, proto_s1ap); - s1ap_handle = find_dissector("s1ap"); /* Register dissector tables */ s1ap_ies_dissector_table = register_dissector_table("s1ap.ies", "S1AP-PROTOCOL-IES", FT_UINT32, BASE_DEC); @@ -211,15 +210,14 @@ void proto_register_s1ap(void) { s1ap_proc_sout_dissector_table = register_dissector_table("s1ap.proc.sout", "S1AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC); s1ap_proc_uout_dissector_table = register_dissector_table("s1ap.proc.uout", "S1AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC); - /* Register configuration options for ports */ - s1ap_module = prefs_register_protocol(proto_s1ap, - proto_reg_handoff_s1ap); - - prefs_register_uint_preference(s1ap_module, "sctp.port", - "S1AP SCTP Port", - "Set the SCTP port for S1AP messages", - 10, - &gbl_s1apSctpPort); + /* Register configuration options for ports */ + s1ap_module = prefs_register_protocol(proto_s1ap, proto_reg_handoff_s1ap); + + prefs_register_uint_preference(s1ap_module, "sctp.port", + "S1AP SCTP Port", + "Set the SCTP port for S1AP messages", + 10, + &gbl_s1apSctpPort); } diff --git a/asn1/sabp/packet-sabp-template.c b/asn1/sabp/packet-sabp-template.c index c70e4eb8b9..5fcca687e2 100644 --- a/asn1/sabp/packet-sabp-template.c +++ b/asn1/sabp/packet-sabp-template.c @@ -56,9 +56,6 @@ #include "packet-sabp-val.h" -static dissector_handle_t sabp_handle = NULL; -static dissector_handle_t sabp_tcp_handle = NULL; - /* Initialize the protocol and registered fields */ static int proto_sabp = -1; @@ -200,8 +197,6 @@ void proto_register_sabp(void) { /* Register dissector */ register_dissector("sabp", dissect_sabp, proto_sabp); register_dissector("sabp.tcp", dissect_sabp_tcp, proto_sabp); - sabp_handle = find_dissector("sabp"); - sabp_tcp_handle = find_dissector("sabp.tcp"); /* Register dissector tables */ sabp_ies_dissector_table = register_dissector_table("sabp.ies", "SABP-PROTOCOL-IES", FT_UINT32, BASE_DEC); @@ -217,14 +212,16 @@ void proto_register_sabp(void) { void proto_reg_handoff_sabp(void) { + dissector_handle_t sabp_handle; + dissector_handle_t sabp_tcp_handle; + sabp_handle = find_dissector("sabp"); + sabp_tcp_handle = find_dissector("sabp.tcp"); + dissector_add("udp.port", 3452, sabp_handle); + dissector_add("tcp.port", 3452, sabp_tcp_handle); #include "packet-sabp-dis-tab.c" - sabp_handle = find_dissector("sabp"); - dissector_add("tcp.port", 3452, sabp_tcp_handle); - dissector_add("udp.port", 3452, sabp_handle); - dissector_add_handle("tcp.port", sabp_tcp_handle); } diff --git a/asn1/ulp/packet-ulp-template.c b/asn1/ulp/packet-ulp-template.c index 6524e3d90c..5e780729df 100644 --- a/asn1/ulp/packet-ulp-template.c +++ b/asn1/ulp/packet-ulp-template.c @@ -48,14 +48,13 @@ #define PSNAME "ULP" #define PFNAME "ulp" -static dissector_handle_t ulp_handle = NULL; -static dissector_handle_t rrlp_handle = NULL; +static dissector_handle_t rrlp_handle; /* IANA Registered Ports * oma-ulp 7275/tcp OMA UserPlane Location * oma-ulp 7275/udp OMA UserPlane Location */ -guint gbl_ulp_port = 7275; +static guint gbl_ulp_port = 7275; /* Initialize the protocol and registered fields */ static int proto_ulp = -1; @@ -128,12 +127,12 @@ void proto_register_ulp(void) { " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.", &ulp_desegment); - /* Register a configuration option for port */ - prefs_register_uint_preference(ulp_module, "tcp.port", - "ULP TCP Port", - "Set the TCP port for Ulp messages(IANA registerd port is 7275)", - 10, - &gbl_ulp_port); + /* Register a configuration option for port */ + prefs_register_uint_preference(ulp_module, "tcp.port", + "ULP TCP Port", + "Set the TCP port for Ulp messages(IANA registerd port is 7275)", + 10, + &gbl_ulp_port); } @@ -142,15 +141,23 @@ void proto_register_ulp(void) { void proto_reg_handoff_ulp(void) { - - ulp_handle = create_dissector_handle(dissect_ulp_tcp, proto_ulp); - + static gboolean initialized = FALSE; + static dissector_handle_t ulp_handle; + static guint local_ulp_port; + + if (!initialized) { + ulp_handle = find_dissector("ulp"); + dissector_add_string("media_type","application/oma-supl-ulp", ulp_handle); + rrlp_handle = find_dissector("rrlp"); + initialized = TRUE; + } else { + dissector_delete("tcp.port", local_ulp_port, ulp_handle); + } + + local_ulp_port = gbl_ulp_port; dissector_add("tcp.port", gbl_ulp_port, ulp_handle); /* application/oma-supl-ulp */ - dissector_add_string("media_type","application/oma-supl-ulp", ulp_handle); - - rrlp_handle = find_dissector("rrlp"); } |