aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-12-19 19:36:32 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-12-19 19:36:32 +0000
commitf9d87c58002791c80547593c52ed09b2bc125641 (patch)
treec623e58907d522ee20dc746a97dde18fe7369b17 /epan
parenta010425f352c5094344b863adc85a4d8d76fbb7d (diff)
Get rid of some GCC warnings about unused code.
svn path=/trunk/; revision=16861
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-gsm_map.c2189
-rw-r--r--epan/dissectors/packet-gsm_map.h2
-rw-r--r--epan/dissectors/packet-h450.c217
-rw-r--r--epan/dissectors/packet-h450.h2
4 files changed, 1707 insertions, 703 deletions
diff --git a/epan/dissectors/packet-gsm_map.c b/epan/dissectors/packet-gsm_map.c
index 4b747c2a02..33a7316e7a 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 */
@@ -62,18 +62,20 @@
/* Initialize the protocol and registered fields */
int proto_gsm_map = -1;
-static int hf_gsm_map_invokeCmd = -1; /* Opcode */
-static int hf_gsm_map_invokeid = -1; /* INTEGER */
-static int hf_gsm_map_absent = -1; /* NULL */
-static int hf_gsm_map_invokeId = -1; /* InvokeId */
-static int hf_gsm_map_invoke = -1; /* InvokePDU */
-static int hf_gsm_map_returnResult = -1; /* InvokePDU */
+/*
+static int hf_gsm_map_invokeCmd = -1; / Opcode /
+static int hf_gsm_map_invokeid = -1; / INTEGER /
+static int hf_gsm_map_absent = -1; / NULL /
+static int hf_gsm_map_invokeId = -1; / InvokeId /
+static int hf_gsm_map_invoke = -1; / InvokePDU /
+static int hf_gsm_map_returnResult = -1; / InvokePDU /
static int hf_gsm_map_returnResult_result = -1;
static int hf_gsm_map_returnError_result = -1;
static int hf_gsm_map_returnError = -1;
static int hf_gsm_map_local_errorCode = -1;
static int hf_gsm_map_global_errorCode_oid = -1;
static int hf_gsm_map_global_errorCode = -1;
+*/
static int hf_gsm_map_SendAuthenticationInfoArg = -1;
static int hf_gsm_map_SendAuthenticationInfoRes = -1;
static int hf_gsm_mapSendEndSignal = -1;
@@ -102,6 +104,30 @@ static int hf_gsm_map_ietf_pdp_type_number = -1;
/*--- Included file: packet-gsm_map-hf.c ---*/
#line 1 "packet-gsm_map-hf.c"
+static int hf_gsm_map_Component_PDU = -1; /* Component */
+static int hf_gsm_map_invoke = -1; /* Invoke */
+static int hf_gsm_map_returnResultLast = -1; /* ReturnResult */
+static int hf_gsm_map_returnError = -1; /* ReturnError */
+static int hf_gsm_map_reject = -1; /* Reject */
+static int hf_gsm_map_invokeID = -1; /* InvokeIdType */
+static int hf_gsm_map_linkedID = -1; /* InvokeIdType */
+static int hf_gsm_map_opCode = -1; /* OPERATION */
+static int hf_gsm_map_invokeparameter = -1; /* InvokeParameter */
+static int hf_gsm_map_resultretres = -1; /* T_resultretres */
+static int hf_gsm_map_returnparameter = -1; /* ReturnResultParameter */
+static int hf_gsm_map_errorCode = -1; /* ERROR */
+static int hf_gsm_map_parameter = -1; /* ReturnErrorParameter */
+static int hf_gsm_map_invokeIDRej = -1; /* T_invokeIDRej */
+static int hf_gsm_map_derivable = -1; /* InvokeIdType */
+static int hf_gsm_map_not_derivable = -1; /* NULL */
+static int hf_gsm_map_problem = -1; /* T_problem */
+static int hf_gsm_map_generalProblem = -1; /* GeneralProblem */
+static int hf_gsm_map_invokeProblem = -1; /* InvokeProblem */
+static int hf_gsm_map_returnResultProblem = -1; /* ReturnResultProblem */
+static int hf_gsm_map_returnErrorProblem = -1; /* ReturnErrorProblem */
+static int hf_gsm_map_localValue = -1; /* OperationLocalvalue */
+static int hf_gsm_map_globalValue = -1; /* OBJECT_IDENTIFIER */
+static int hf_gsm_map_localValue1 = -1; /* LocalErrorcode */
static int hf_gsm_map_protocolId = -1; /* ProtocolId */
static int hf_gsm_map_signalInfo = -1; /* SignalInfo */
static int hf_gsm_map_extensionContainer = -1; /* ExtensionContainer */
@@ -771,25 +797,25 @@ static int hf_gsm_map_securityParametersIndex = -1; /* SecurityParametersIndex
static int hf_gsm_map_originalComponentIdentifier = -1; /* OriginalComponentIdentifier */
static int hf_gsm_map_initialisationVector = -1; /* InitialisationVector */
static int hf_gsm_map_operationCode = -1; /* OperationCode */
-static int hf_gsm_map_errorCode = -1; /* ErrorCode */
+static int hf_gsm_map_errorCode1 = -1; /* ErrorCode */
static int hf_gsm_map_userInfo = -1; /* NULL */
-static int hf_gsm_map_localValue = -1; /* INTEGER */
-static int hf_gsm_map_globalValue = -1; /* OBJECT_IDENTIFIER */
+static int hf_gsm_map_localValue2 = -1; /* INTEGER */
static int hf_gsm_map_networkResource = -1; /* NetworkResource */
static int hf_gsm_map_extensibleSystemFailureParam = -1; /* T_extensibleSystemFailureParam */
static int hf_gsm_map_unknownSubscriberDiagnostic = -1; /* T_unknownSubscriberDiagnostic */
static int hf_gsm_map_roamingNotAllowedCause = -1; /* T_roamingNotAllowedCause */
-static int hf_gsm_map_absentSubscriberReason = -1; /* T_absentSubscriberReason */
+static int hf_gsm_map_absentSubscriberReason = -1; /* AbsentSubscriberReason */
static int hf_gsm_map_ccbs_Busy = -1; /* NULL */
+static int hf_gsm_map_gprsConnectionSuspended = -1; /* NULL */
static int hf_gsm_map_callBarringCause = -1; /* CallBarringCause */
-static int hf_gsm_map_extensibleCallBarredParam = -1; /* T_extensibleCallBarredParam */
+static int hf_gsm_map_extensibleCallBarredParam = -1; /* ExtensibleCallBarredParam */
static int hf_gsm_map_unauthorisedMessageOriginator = -1; /* NULL */
-static int hf_gsm_map_cug_RejectCause = -1; /* T_cug_RejectCause */
-static int hf_gsm_map_gprsConnectionSuspended = -1; /* NULL */
-static int hf_gsm_map_sm_EnumeratedDeliveryFailureCause = -1; /* T_sm_EnumeratedDeliveryFailureCause */
-static int hf_gsm_map_diagnosticInfo = -1; /* OCTET_STRING_SIZE_1_200 */
+static int hf_gsm_map_cug_RejectCause = -1; /* CUG_RejectCause */
+static int hf_gsm_map_cug_RejectCause1 = -1; /* T_cug_RejectCause */
+static int hf_gsm_map_sm_EnumeratedDeliveryFailureCause = -1; /* SM_EnumeratedDeliveryFailureCause */
+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; /* T_positionMethodFailure_Diagnostic */
+static int hf_gsm_map_positionMethodFailure_Diagnostic = -1; /* PositionMethodFailure_Diagnostic */
static int hf_gsm_map_pcsExtensions = -1; /* PcsExtensions */
/* named bits */
static int hf_gsm_map_SupportedCamelPhases_phase1 = -1;
@@ -898,7 +924,7 @@ static int hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaint
static int hf_gsm_map_SupportedGADShapes_ellipsoidArc = -1;
/*--- End of included file: packet-gsm_map-hf.c ---*/
-#line 95 "packet-gsm_map-template.c"
+#line 97 "packet-gsm_map-template.c"
/* Initialize the subtree pointers */
static gint ett_gsm_map = -1;
@@ -913,6 +939,16 @@ static gint ett_gsm_map_GSMMAPPDU = -1;
/*--- Included file: packet-gsm_map-ett.c ---*/
#line 1 "packet-gsm_map-ett.c"
+static gint ett_gsm_map_Component = -1;
+static gint ett_gsm_map_Invoke = -1;
+static gint ett_gsm_map_ReturnResult = -1;
+static gint ett_gsm_map_T_resultretres = -1;
+static gint ett_gsm_map_ReturnError = -1;
+static gint ett_gsm_map_Reject = -1;
+static gint ett_gsm_map_T_invokeIDRej = -1;
+static gint ett_gsm_map_T_problem = -1;
+static gint ett_gsm_map_OPERATION = -1;
+static gint ett_gsm_map_ERROR = -1;
static gint ett_gsm_map_Bss_APDU = -1;
static gint ett_gsm_map_SupportedCamelPhases = -1;
static gint ett_gsm_map_UpdateLocationArg = -1;
@@ -1253,6 +1289,7 @@ static gint ett_gsm_map_T_extensibleSystemFailureParam = -1;
static gint ett_gsm_map_DataMissingParam = -1;
static gint ett_gsm_map_UnexpectedDataParam = -1;
static gint ett_gsm_map_FacilityNotSupParam = -1;
+static gint ett_gsm_map_OR_NotAllowedParam = -1;
static gint ett_gsm_map_IncompatibleTerminalParam = -1;
static gint ett_gsm_map_ResourceLimitationParam = -1;
static gint ett_gsm_map_UnknownSubscriberParam = -1;
@@ -1268,29 +1305,39 @@ static gint ett_gsm_map_NoRoamingNbParam = -1;
static gint ett_gsm_map_AbsentSubscriberParam = -1;
static gint ett_gsm_map_BusySubscriberParam = -1;
static gint ett_gsm_map_NoSubscriberReplyParam = -1;
-static gint ett_gsm_map_CallBarredParam = -1;
-static gint ett_gsm_map_T_extensibleCallBarredParam = -1;
+static gint ett_gsm_map_ForwardingViolationParam = -1;
static gint ett_gsm_map_ForwardingFailedParam = -1;
+static gint ett_gsm_map_ATI_NotAllowedParam = -1;
+static gint ett_gsm_map_ATSI_NotAllowedParam = -1;
+static gint ett_gsm_map_ATM_NotAllowedParam = -1;
+static gint ett_gsm_map_IllegalSS_OperationParam = -1;
+static gint ett_gsm_map_SS_NotAvailableParam = -1;
+static gint ett_gsm_map_SS_SubscriptionViolationParam = -1;
+static gint ett_gsm_map_InformationNotAvailableParam = -1;
+static gint ett_gsm_map_SubBusyForMT_SMS_Param = -1;
+static gint ett_gsm_map_CallBarredParam = -1;
+static gint ett_gsm_map_ExtensibleCallBarredParam = -1;
+static gint ett_gsm_map_CUG_RejectParam = -1;
static gint ett_gsm_map_Or_NotAllowedParam = -1;
-static gint ett_gsm_map_ForwardingViolationParam = -1;
static gint ett_gsm_map_Cug_RejectParam = -1;
-static gint ett_gsm_map_Ati_NotAllowedParam = -1;
static gint ett_gsm_map_NoGroupCallNbParam = -1;
static gint ett_gsm_map_SS_IncompatibilityCause = -1;
static gint ett_gsm_map_ShortTermDenialParam = -1;
static gint ett_gsm_map_LongTermDenialParam = -1;
-static gint ett_gsm_map_SubBusyForMT_SMS_Param = -1;
-static gint ett_gsm_map_Sm_DeliveryFailureCause = -1;
+static gint ett_gsm_map_SM_DeliveryFailureCause = -1;
static gint ett_gsm_map_MessageWaitListFullParam = -1;
static gint ett_gsm_map_AbsentSubscriberSM_Param = -1;
static gint ett_gsm_map_UnauthorizedRequestingNetwork_Param = -1;
static gint ett_gsm_map_UnauthorizedLCSClient_Param = -1;
static gint ett_gsm_map_PositionMethodFailure_Param = -1;
static gint ett_gsm_map_UnknownOrUnreachableLCSClient_Param = -1;
+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;
/*--- End of included file: packet-gsm_map-ett.c ---*/
-#line 107 "packet-gsm_map-template.c"
+#line 109 "packet-gsm_map-template.c"
static dissector_table_t sms_dissector_table; /* SMS TPDU */
static dissector_handle_t data_handle;
@@ -1302,13 +1349,19 @@ static range_t *ssn_range;
dissector_handle_t map_handle;
/* Global variables */
-
+static guint32 opcode=0;
+static guint32 errorCode;
static proto_tree *top_tree;
static int application_context_version;
gint protocolId;
gint AccessNetworkProtocolId;
static int gsm_map_tap = -1;
+/* Forward declarations */
+static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
+static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
+static int dissect_returnErrorData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
+
char*
unpack_digits(tvbuff_t *tvb, int offset){
@@ -1354,77 +1407,128 @@ unpack_digits(tvbuff_t *tvb, int offset){
-static const value_string gsm_map_ProtocolId_vals[] = {
- { 1, "gsm-0408" },
- { 2, "gsm-0806" },
- { 3, "gsm-BSSMAP" },
- { 4, "ets-300102-1" },
- { 0, NULL }
-};
-
static int
-dissect_gsm_map_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_gsm_map_InvokeIdType(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,
- &protocolId);
+ NULL);
return offset;
}
-static int dissect_protocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_protocolId);
+static int dissect_invokeID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_InvokeIdType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeID);
+}
+static int dissect_linkedID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_InvokeIdType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_linkedID);
+}
+static int dissect_derivable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_InvokeIdType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_derivable);
}
+static const value_string gsm_map_OperationLocalvalue_vals[] = {
+ { 2, "updateLocation" },
+ { 3, "cancelLocation" },
+ { 4, "provideRoamingNumber" },
+ { 5, "noteSubscriberDataModified" },
+ { 6, "resumeCallHandling" },
+ { 7, "insertSubscriberData" },
+ { 8, "deleteSubscriberData" },
+ { 9, "sendParameters" },
+ { 10, "registerSS" },
+ { 11, "eraseSS" },
+ { 12, "activateSS" },
+ { 13, "deactivateSS" },
+ { 14, "interrogateSS" },
+ { 15, "authenticationFailureReport" },
+ { 17, "registerPassword" },
+ { 18, "getPassword" },
+ { 19, "processUnstructuredSS-Data" },
+ { 20, "releaseResources" },
+ { 22, "sendRoutingInfo" },
+ { 23, "updateGprsLocation" },
+ { 24, "sendRoutingInfoForGprs" },
+ { 25, "failureReport" },
+ { 26, "noteMsPresentForGprs" },
+ { 28, "performHandover" },
+ { 29, "sendEndSignal" },
+ { 30, "performSubsequentHandover" },
+ { 31, "provideSIWFSNumber" },
+ { 32, "sIWFSSignallingModify" },
+ { 33, "processAccessSignalling" },
+ { 34, "forwardAccessSignalling" },
+ { 35, "noteInternalHandover" },
+ { 37, "reset" },
+ { 38, "forwardCheckSS" },
+ { 39, "prepareGroupCall" },
+ { 40, "sendGroupCallEndSignal" },
+ { 41, "processGroupCallSignalling" },
+ { 42, "forwardGroupCallSignalling" },
+ { 43, "checkIMEI" },
+ { 44, "mt-forwardSM" },
+ { 45, "sendRoutingInfoForSM" },
+ { 46, "mo-forwardSM" },
+ { 47, "reportSM-DeliveryStatus" },
+ { 48, "noteSubscriberPresent" },
+ { 49, "alertServiceCentreWithoutResult" },
+ { 50, "activateTraceMode" },
+ { 51, "deactivateTraceMode" },
+ { 52, "traceSubscriberActivity" },
+ { 54, "beginSubscriberActivity" },
+ { 55, "sendIdentification" },
+ { 56, "sendAuthenticationInfo" },
+ { 57, "restoreData" },
+ { 58, "sendIMSI" },
+ { 59, "processUnstructuredSS-Request" },
+ { 60, "unstructuredSS-Request" },
+ { 61, "unstructuredSS-Notify" },
+ { 62, "anyTimeSubscriptionInterrogation" },
+ { 63, "informServiceCentre" },
+ { 64, "alertServiceCentre" },
+ { 65, "anyTimeModification" },
+ { 66, "readyForSM" },
+ { 67, "purgeMS" },
+ { 68, "prepareHandover" },
+ { 69, "prepareSubsequentHandover" },
+ { 70, "provideSubscriberInfo" },
+ { 71, "anyTimeInterrogation" },
+ { 72, "ss-InvocationNotification" },
+ { 73, "setReportingState" },
+ { 74, "statusReport" },
+ { 75, "remoteUserFree" },
+ { 76, "registerCC-Entry" },
+ { 77, "eraseCC-Entry" },
+ { 78, "secureTransportClass1" },
+ { 79, "secureTransportClass2" },
+ { 80, "secureTransportClass3" },
+ { 81, "secureTransportClass4" },
+ { 83, "provideSubscriberLocation" },
+ { 85, "sendRoutingInfoForLCS" },
+ { 86, "subscriberLocationReport" },
+ { 87, "ist-Alert" },
+ { 88, "ist-Command" },
+ { 89, "noteMM-Event" },
+ { 0, NULL }
+};
-static int
-dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 306 "gsmmap.cnf"
-
- tvbuff_t *parameter_tvb;
- guint8 octet;
- guint8 length;
- tvbuff_t *next_tvb;
-
-
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- &parameter_tvb);
+static int
+dissect_gsm_map_OperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 137 "gsmmap.cnf"
- if (!parameter_tvb)
- return offset;
- switch (protocolId){
- /* gsm-0408 */
- case 1:
- break;
- /* gsm-0806 */
- case 2:
- break;
- /* gsm-BSSMAP TODO Is it correct to stripp off tw first octets here?*/
- case 3:
- octet = tvb_get_guint8(parameter_tvb,0);
- length = tvb_get_guint8(parameter_tvb,1);
- if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
- next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1);
- dissect_bssmap(next_tvb, pinfo, tree);
- }
- break;
- /* ets-300102-1 (~Q.931 ) */
- case 4:
- octet = tvb_get_guint8(parameter_tvb,0);
- length = tvb_get_guint8(parameter_tvb,1);
- if ( octet == 4 )
- dissect_q931_bearer_capability_ie(parameter_tvb, 2, length, tree);
- break;
- default:
- break;
-}
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ &opcode);
+
+ if (check_col(pinfo->cinfo, COL_INFO)){
+ col_append_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, gsm_map_opr_code_strings, "Unknown GSM-MAP (%u)"));
+ }
return offset;
}
-static int dissect_signalInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SignalInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_signalInfo);
+static int dissect_localValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_OperationLocalvalue(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_localValue);
}
@@ -1435,366 +1539,254 @@ dissect_gsm_map_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int
return offset;
}
-static int dissect_extId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extId);
-}
static int dissect_globalValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_gsm_map_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_globalValue);
}
-
-
-
-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 381 "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);
-
-
-
- return offset;
-}
-static int dissect_extType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_extType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extType);
+static int dissect_extId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extId);
}
-static const ber_sequence_t PrivateExtension_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_extId },
- { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extType },
- { 0, 0, 0, NULL }
+static const value_string gsm_map_OPERATION_vals[] = {
+ { 0, "localValue" },
+ { 1, "globalValue" },
+ { 0, NULL }
+};
+
+static const ber_choice_t OPERATION_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue },
+ { 0, 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_PrivateExtension(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,
- PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
+dissect_gsm_map_OPERATION(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ OPERATION_choice, hf_index, ett_gsm_map_OPERATION,
+ NULL);
return offset;
}
-static int dissect_PrivateExtensionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_PrivateExtension(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_PrivateExtensionList_item);
+static int dissect_opCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_OPERATION(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_opCode);
}
-static const ber_sequence_t PrivateExtensionList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PrivateExtensionList_item },
-};
static int
-dissect_gsm_map_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
+dissect_gsm_map_InvokeParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 124 "gsmmap.cnf"
+ offset = dissect_invokeData(pinfo, tree, tvb, offset);
+
+
return offset;
}
-static int dissect_privateExtensionList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_PrivateExtensionList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_privateExtensionList);
+static int dissect_invokeparameter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_InvokeParameter(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeparameter);
}
-static const ber_sequence_t PcsExtensions_sequence[] = {
+static const ber_sequence_t Invoke_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_linkedID_impl },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_opCode },
+ { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_invokeparameter },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_PcsExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_gsm_map_Invoke(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,
- PcsExtensions_sequence, hf_index, ett_gsm_map_PcsExtensions);
+ Invoke_sequence, hf_index, ett_gsm_map_Invoke);
return offset;
}
-static int dissect_pcsExtensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_PcsExtensions(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pcsExtensions);
+static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_Invoke(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_invoke);
}
-static const ber_sequence_t ExtensionContainer_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privateExtensionList_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pcsExtensions_impl },
- { 0, 0, 0, NULL }
-};
-int
-dissect_gsm_map_ExtensionContainer(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,
- ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
+static int
+dissect_gsm_map_ReturnResultParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 127 "gsmmap.cnf"
+ offset = dissect_returnResultData(pinfo, tree, tvb, offset);
+
+
return offset;
}
-static int dissect_extensionContainer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
-}
-static int dissect_extensionContainer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ExtensionContainer(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
+static int dissect_returnparameter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ReturnResultParameter(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_returnparameter);
}
-static const ber_sequence_t Bss_APDU_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_protocolId },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+static const ber_sequence_t T_resultretres_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_opCode },
+ { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_returnparameter },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_Bss_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_gsm_map_T_resultretres(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,
- Bss_APDU_sequence, hf_index, ett_gsm_map_Bss_APDU);
+ T_resultretres_sequence, hf_index, ett_gsm_map_T_resultretres);
return offset;
}
-static int dissect_bss_APDU(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bss_APDU);
+static int dissect_resultretres(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_T_resultretres(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_resultretres);
}
+static const ber_sequence_t ReturnResult_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_resultretres },
+ { 0, 0, 0, NULL }
+};
static int
-dissect_gsm_map_SignalInfo2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_ReturnResult(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,
+ ReturnResult_sequence, hf_index, ett_gsm_map_ReturnResult);
return offset;
}
+static int dissect_returnResultLast_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ReturnResult(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnResultLast);
+}
-static const asn_namedbit SupportedCamelPhases_bits[] = {
- { 0, &hf_gsm_map_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL },
- { 1, &hf_gsm_map_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL },
- { 2, &hf_gsm_map_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL },
- { 3, &hf_gsm_map_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL },
- { 0, NULL, 0, 0, NULL, NULL }
+static const value_string gsm_map_LocalErrorcode_vals[] = {
+ { 34, "systemFailure" },
+ { 35, "dataMissing" },
+ { 36, "unexpectedDataValue" },
+ { 21, "facilityNotSupported" },
+ { 28, "incompatibleTerminal" },
+ { 51, "resourceLimitation" },
+ { 1, "unknownSubscriber" },
+ { 44, "numberChanged" },
+ { 3, "unknownMSC" },
+ { 5, "unidentifiedSubscriber" },
+ { 7, "unknownEquipment" },
+ { 8, "roamingNotAllowed" },
+ { 9, "illegalSubscriber" },
+ { 12, "illegalEquipment" },
+ { 10, "bearerServiceNotProvisioned" },
+ { 11, "teleserviceNotProvisioned" },
+ { 25, "noHandoverNumberAvailable" },
+ { 26, "subsequentHandoverFailure" },
+ { 42, "targetCellOutsideGroupCallArea" },
+ { 40, "tracingBufferFull" },
+ { 39, "noRoamingNumberAvailable" },
+ { 27, "absentSubscriber" },
+ { 45, "busySubscriber" },
+ { 46, "noSubscriberReply" },
+ { 13, "callBarred" },
+ { 14, "forwardingViolation" },
+ { 47, "forwardingFailed" },
+ { 15, "cug-Reject" },
+ { 48, "or-NotAllowed" },
+ { 49, "ati-NotAllowed" },
+ { 60, "atsi-NotAllowed" },
+ { 61, "atm-NotAllowed" },
+ { 62, "informationNotAvailabl" },
+ { 16, "illegalSS-Operation" },
+ { 17, "ss-ErrorStatus" },
+ { 18, "ss-NotAvailable" },
+ { 19, "ss-SubscriptionViolatio" },
+ { 20, "ss-Incompatibility" },
+ { 71, "unknownAlphabe" },
+ { 72, "ussd-Busy" },
+ { 37, "pw-RegistrationFailur" },
+ { 38, "negativePW-Check" },
+ { 43, "numberOfPW-AttemptsViolation" },
+ { 29, "shortTermDenial" },
+ { 30, "longTermDenial" },
+ { 31, "subscriberBusyForMT-SMS" },
+ { 32, "sm-DeliveryFailure" },
+ { 33, "messageWaitingListFull" },
+ { 6, "absentSubscriberSM" },
+ { 50, "noGroupCallNumberAvailable" },
+ { 52, "unauthorizedRequestingNetwork" },
+ { 53, "unauthorizedLCSClient" },
+ { 54, "positionMethodFailure" },
+ { 58, "unknownOrUnreachableLCSClient" },
+ { 59, "mm-EventNotSupported" },
+ { 4, "secureTransportError" },
+ { 0, NULL }
};
-int
-dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
- SupportedCamelPhases_bits, hf_index, ett_gsm_map_SupportedCamelPhases,
- NULL);
+
+static int
+dissect_gsm_map_LocalErrorcode(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,
+ &errorCode);
return offset;
}
-static int dissect_supportedCamelPhases(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SupportedCamelPhases(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
+static int dissect_localValue1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_LocalErrorcode(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_localValue1);
}
-static int dissect_supportedCamelPhases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
-}
-static int dissect_supportedCamelPhasesInVMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhasesInVMSC);
-}
-static int dissect_supportedCamelPhasesInInterrogatingNode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhasesInInterrogatingNode);
-}
-static int dissect_supportedVLR_CAMEL_Phases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedVLR_CAMEL_Phases);
-}
-static int dissect_supportedSGSN_CAMEL_Phases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedSGSN_CAMEL_Phases);
-}
-static int dissect_supportedCAMELPhases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCAMELPhases);
-}
-
-
-
-int
-dissect_gsm_map_IMSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 144 "gsmmap.cnf"
-
- tvbuff_t *parameter_tvb;
- char *digit_str;
-
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- &parameter_tvb);
-
-
- if (!parameter_tvb)
- return offset;
- digit_str = unpack_digits(parameter_tvb, 0);
-
- proto_tree_add_string(tree, hf_gsm_map_imsi_digits, parameter_tvb, 0, -1, digit_str);
-
+static const value_string gsm_map_ERROR_vals[] = {
+ { 0, "localValue" },
+ { 1, "globalValue" },
+ { 0, NULL }
+};
+static const ber_choice_t ERROR_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue1 },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue },
+ { 0, 0, 0, 0, NULL }
+};
+static int
+dissect_gsm_map_ERROR(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ERROR_choice, hf_index, ett_gsm_map_ERROR,
+ NULL);
return offset;
}
-static int dissect_imsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_IMSI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
-}
-static int dissect_imsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_IMSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
+static int dissect_errorCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ERROR(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_errorCode);
}
-int
-dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 191 "gsmmap.cnf"
-
- tvbuff_t *parameter_tvb;
- char *digit_str;
-
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- &parameter_tvb);
-
-
- if (!parameter_tvb)
- return offset;
-
- proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
- proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
- proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
-
- digit_str = unpack_digits(parameter_tvb, 1);
-
- proto_tree_add_string(tree, hf_gsm_map_isdn_address_digits, parameter_tvb, 1, -1, digit_str);
-
- pinfo->p2p_dir = P2P_DIR_RECV;
-
+static int
+dissect_gsm_map_ReturnErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 130 "gsmmap.cnf"
+ offset = dissect_returnErrorData(pinfo, tree, tvb, offset);
return offset;
}
-static int dissect_msc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
-}
-static int dissect_msc_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
-}
-static int dissect_vlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
-}
-static int dissect_vlr_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
-}
-static int dissect_hlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_Number);
-}
-static int dissect_sgsn_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
-}
-static int dissect_sgsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
-}
-static int dissect_handoverNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_handoverNumber);
-}
-static int dissect_handoverNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_handoverNumber);
-}
-static int dissect_targetMSC_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetMSC_Number);
-}
-static int dissect_targetMSC_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_targetMSC_Number);
-}
-static int dissect_gsmSCF_Address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
-}
-static int dissect_gsmSCF_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
-}
-static int dissect_msisdn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
-}
-static int dissect_msisdn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
-}
-static int dissect_GMLC_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_GMLC_List_item);
-}
-static int dissect_dialledNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_dialledNumber);
-}
-static int dissect_forwardedToNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardedToNumber);
-}
-static int dissect_DestinationNumberList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_DestinationNumberList_item);
-}
-static int dissect_gmsc_OrGsmSCF_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmsc_OrGsmSCF_Address);
-}
-static int dissect_vmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vmsc_Address);
-}
-static int dissect_externalAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_externalAddress);
-}
-static int dissect_roamingNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_roamingNumber);
-}
-static int dissect_vlr_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_number);
-}
-static int dissect_gmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmsc_Address);
-}
-static int dissect_b_Subscriber_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_Subscriber_Address);
-}
-static int dissect_sIWFSNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sIWFSNumber);
-}
-static int dissect_msrn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msrn);
-}
-static int dissect_translatedB_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_translatedB_Number);
-}
-static int dissect_translatedB_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_translatedB_Number);
-}
-static int dissect_networkNode_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_networkNode_Number);
-}
-static int dissect_networkNode_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkNode_Number);
-}
-static int dissect_b_subscriberNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_subscriberNumber);
-}
-static int dissect_groupCallNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupCallNumber);
-}
-static int dissect_ggsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ggsn_Number);
-}
-static int dissect_mlc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mlc_Number);
-}
-static int dissect_mlcNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mlcNumber);
-}
-static int dissect_na_ESRD_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRD);
-}
-static int dissect_na_ESRK_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRK);
+static int dissect_parameter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ReturnErrorParameter(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_parameter);
}
+static const ber_sequence_t ReturnError_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_errorCode },
+ { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_parameter },
+ { 0, 0, 0, NULL }
+};
static int
-dissect_gsm_map_LMSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_ReturnError(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,
+ ReturnError_sequence, hf_index, ett_gsm_map_ReturnError);
return offset;
}
-static int dissect_lmsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_LMSI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
-}
-static int dissect_lmsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_LMSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
+static int dissect_returnError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ReturnError(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnError);
}
@@ -1805,6 +1797,9 @@ dissect_gsm_map_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packe
return offset;
}
+static int dissect_not_derivable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_not_derivable);
+}
static int dissect_informPreviousNetworkEntity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_informPreviousNetworkEntity);
}
@@ -2126,12 +2121,629 @@ static int dissect_userInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t
static int dissect_ccbs_Busy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Busy);
}
-static int dissect_unauthorisedMessageOriginator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_unauthorisedMessageOriginator);
-}
static int dissect_gprsConnectionSuspended(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsConnectionSuspended);
}
+static int dissect_unauthorisedMessageOriginator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_unauthorisedMessageOriginator);
+}
+
+
+static const value_string gsm_map_T_invokeIDRej_vals[] = {
+ { 0, "derivable" },
+ { 1, "not-derivable" },
+ { 0, NULL }
+};
+
+static const ber_choice_t T_invokeIDRej_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_derivable },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_not_derivable },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_T_invokeIDRej(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ T_invokeIDRej_choice, hf_index, ett_gsm_map_T_invokeIDRej,
+ NULL);
+
+ return offset;
+}
+static int dissect_invokeIDRej(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_T_invokeIDRej(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeIDRej);
+}
+
+
+static const value_string gsm_map_GeneralProblem_vals[] = {
+ { 0, "unrecognizedComponent" },
+ { 1, "mistypedComponent" },
+ { 2, "badlyStructuredComponent" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_GeneralProblem(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_generalProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_GeneralProblem(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_generalProblem);
+}
+
+
+static const value_string gsm_map_InvokeProblem_vals[] = {
+ { 0, "duplicateInvokeID" },
+ { 1, "unrecognizedOperation" },
+ { 2, "mistypedParameter" },
+ { 3, "resourceLimitation" },
+ { 4, "initiatingRelease" },
+ { 5, "unrecognizedLinkedID" },
+ { 6, "linkedResponseUnexpected" },
+ { 7, "unexpectedLinkedOperation" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_InvokeProblem(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_invokeProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_InvokeProblem(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_invokeProblem);
+}
+
+
+static const value_string gsm_map_ReturnResultProblem_vals[] = {
+ { 0, "unrecognizedInvokeID" },
+ { 1, "returnResultUnexpected" },
+ { 2, "mistypedParameter" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_ReturnResultProblem(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_returnResultProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ReturnResultProblem(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnResultProblem);
+}
+
+
+static const value_string gsm_map_ReturnErrorProblem_vals[] = {
+ { 0, "unrecognizedInvokeID" },
+ { 1, "returnErrorUnexpected" },
+ { 2, "unrecognizedError" },
+ { 3, "unexpectedError" },
+ { 4, "mistypedParameter" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_ReturnErrorProblem(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_returnErrorProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ReturnErrorProblem(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnErrorProblem);
+}
+
+
+static const value_string gsm_map_T_problem_vals[] = {
+ { 0, "generalProblem" },
+ { 1, "invokeProblem" },
+ { 2, "returnResultProblem" },
+ { 3, "returnErrorProblem" },
+ { 0, NULL }
+};
+
+static const ber_choice_t T_problem_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_generalProblem_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invokeProblem_impl },
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultProblem_impl },
+ { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnErrorProblem_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ T_problem_choice, hf_index, ett_gsm_map_T_problem,
+ NULL);
+
+ return offset;
+}
+static int dissect_problem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_T_problem(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_problem);
+}
+
+
+static const ber_sequence_t Reject_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeIDRej },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_problem },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Reject(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,
+ Reject_sequence, hf_index, ett_gsm_map_Reject);
+
+ return offset;
+}
+static int dissect_reject_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_Reject(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_reject);
+}
+
+
+static const value_string gsm_map_Component_vals[] = {
+ { 1, "invoke" },
+ { 2, "returnResultLast" },
+ { 3, "returnError" },
+ { 4, "reject" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Component_choice[] = {
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultLast_impl },
+ { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
+ { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Component(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ Component_choice, hf_index, ett_gsm_map_Component,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_ProtocolId_vals[] = {
+ { 1, "gsm-0408" },
+ { 2, "gsm-0806" },
+ { 3, "gsm-BSSMAP" },
+ { 4, "ets-300102-1" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_ProtocolId(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,
+ &protocolId);
+
+ return offset;
+}
+static int dissect_protocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_protocolId);
+}
+
+
+
+static int
+dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 333 "gsmmap.cnf"
+
+ tvbuff_t *parameter_tvb;
+ guint8 octet;
+ guint8 length;
+ tvbuff_t *next_tvb;
+
+
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ &parameter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+ switch (protocolId){
+ /* gsm-0408 */
+ case 1:
+ break;
+ /* gsm-0806 */
+ case 2:
+ break;
+ /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/
+ case 3:
+ octet = tvb_get_guint8(parameter_tvb,0);
+ length = tvb_get_guint8(parameter_tvb,1);
+ if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
+ next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1);
+ dissect_bssmap(next_tvb, pinfo, tree);
+ }
+ break;
+ /* ets-300102-1 (~Q.931 ) */
+ case 4:
+ octet = tvb_get_guint8(parameter_tvb,0);
+ length = tvb_get_guint8(parameter_tvb,1);
+ if ( octet == 4 )
+ dissect_q931_bearer_capability_ie(parameter_tvb, 2, length, tree);
+ break;
+ default:
+ break;
+}
+
+
+
+ return offset;
+}
+static int dissect_signalInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_SignalInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_signalInfo);
+}
+static int dissect_diagnosticInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_SignalInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_diagnosticInfo);
+}
+
+
+
+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 408 "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);
+
+
+
+ return offset;
+}
+static int dissect_extType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_T_extType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extType);
+}
+
+
+static const ber_sequence_t PrivateExtension_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_extId },
+ { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extType },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_PrivateExtension(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,
+ PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
+
+ return offset;
+}
+static int dissect_PrivateExtensionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_PrivateExtension(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_PrivateExtensionList_item);
+}
+
+
+static const ber_sequence_t PrivateExtensionList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PrivateExtensionList_item },
+};
+
+static int
+dissect_gsm_map_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
+
+ return offset;
+}
+static int dissect_privateExtensionList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_PrivateExtensionList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_privateExtensionList);
+}
+
+
+static const ber_sequence_t PcsExtensions_sequence[] = {
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_PcsExtensions(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,
+ PcsExtensions_sequence, hf_index, ett_gsm_map_PcsExtensions);
+
+ return offset;
+}
+static int dissect_pcsExtensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_PcsExtensions(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pcsExtensions);
+}
+
+
+static const ber_sequence_t ExtensionContainer_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privateExtensionList_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pcsExtensions_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_ExtensionContainer(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,
+ ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
+
+ return offset;
+}
+static int dissect_extensionContainer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
+}
+static int dissect_extensionContainer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ExtensionContainer(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
+}
+
+
+static const ber_sequence_t Bss_APDU_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_protocolId },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Bss_APDU(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,
+ Bss_APDU_sequence, hf_index, ett_gsm_map_Bss_APDU);
+
+ return offset;
+}
+static int dissect_bss_APDU(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bss_APDU);
+}
+
+
+
+static int
+dissect_gsm_map_SignalInfo2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const asn_namedbit SupportedCamelPhases_bits[] = {
+ { 0, &hf_gsm_map_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL },
+ { 1, &hf_gsm_map_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL },
+ { 2, &hf_gsm_map_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL },
+ { 3, &hf_gsm_map_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+int
+dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
+ SupportedCamelPhases_bits, hf_index, ett_gsm_map_SupportedCamelPhases,
+ NULL);
+
+ return offset;
+}
+static int dissect_supportedCamelPhases(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_SupportedCamelPhases(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
+}
+static int dissect_supportedCamelPhases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
+}
+static int dissect_supportedCamelPhasesInVMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhasesInVMSC);
+}
+static int dissect_supportedCamelPhasesInInterrogatingNode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhasesInInterrogatingNode);
+}
+static int dissect_supportedVLR_CAMEL_Phases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedVLR_CAMEL_Phases);
+}
+static int dissect_supportedSGSN_CAMEL_Phases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedSGSN_CAMEL_Phases);
+}
+static int dissect_supportedCAMELPhases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCAMELPhases);
+}
+
+
+
+int
+dissect_gsm_map_IMSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 171 "gsmmap.cnf"
+
+ tvbuff_t *parameter_tvb;
+ char *digit_str;
+
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ &parameter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ digit_str = unpack_digits(parameter_tvb, 0);
+
+ proto_tree_add_string(tree, hf_gsm_map_imsi_digits, parameter_tvb, 0, -1, digit_str);
+
+
+
+
+
+ return offset;
+}
+static int dissect_imsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_IMSI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
+}
+static int dissect_imsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_IMSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
+}
+
+
+
+int
+dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 218 "gsmmap.cnf"
+
+ tvbuff_t *parameter_tvb;
+ char *digit_str;
+
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ &parameter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
+
+ digit_str = unpack_digits(parameter_tvb, 1);
+
+ proto_tree_add_string(tree, hf_gsm_map_isdn_address_digits, parameter_tvb, 1, -1, digit_str);
+
+ pinfo->p2p_dir = P2P_DIR_RECV;
+
+
+
+
+ return offset;
+}
+static int dissect_msc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
+}
+static int dissect_msc_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
+}
+static int dissect_vlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
+}
+static int dissect_vlr_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
+}
+static int dissect_hlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_Number);
+}
+static int dissect_sgsn_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
+}
+static int dissect_sgsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
+}
+static int dissect_handoverNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_handoverNumber);
+}
+static int dissect_handoverNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_handoverNumber);
+}
+static int dissect_targetMSC_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetMSC_Number);
+}
+static int dissect_targetMSC_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_targetMSC_Number);
+}
+static int dissect_gsmSCF_Address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
+}
+static int dissect_gsmSCF_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
+}
+static int dissect_msisdn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
+}
+static int dissect_msisdn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
+}
+static int dissect_GMLC_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_GMLC_List_item);
+}
+static int dissect_dialledNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_dialledNumber);
+}
+static int dissect_forwardedToNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardedToNumber);
+}
+static int dissect_DestinationNumberList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_DestinationNumberList_item);
+}
+static int dissect_gmsc_OrGsmSCF_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmsc_OrGsmSCF_Address);
+}
+static int dissect_vmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vmsc_Address);
+}
+static int dissect_externalAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_externalAddress);
+}
+static int dissect_roamingNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_roamingNumber);
+}
+static int dissect_vlr_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_number);
+}
+static int dissect_gmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmsc_Address);
+}
+static int dissect_b_Subscriber_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_Subscriber_Address);
+}
+static int dissect_sIWFSNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sIWFSNumber);
+}
+static int dissect_msrn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msrn);
+}
+static int dissect_translatedB_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_translatedB_Number);
+}
+static int dissect_translatedB_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_translatedB_Number);
+}
+static int dissect_networkNode_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_networkNode_Number);
+}
+static int dissect_networkNode_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkNode_Number);
+}
+static int dissect_b_subscriberNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_subscriberNumber);
+}
+static int dissect_groupCallNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupCallNumber);
+}
+static int dissect_ggsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ggsn_Number);
+}
+static int dissect_mlc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mlc_Number);
+}
+static int dissect_mlcNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mlcNumber);
+}
+static int dissect_na_ESRD_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRD);
+}
+static int dissect_na_ESRK_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRK);
+}
+
+
+
+static int
+dissect_gsm_map_LMSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_lmsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_LMSI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
+}
+static int dissect_lmsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_LMSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
+}
static const value_string gsm_map_IST_SupportIndicator_vals[] = {
@@ -3075,7 +3687,7 @@ static int dissect_accessNetworkProtocolId(packet_info *pinfo, proto_tree *tree,
static int
dissect_gsm_map_LongSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 350 "gsmmap.cnf"
+#line 377 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
guint8 octet;
@@ -4674,7 +5286,7 @@ static int dissect_BasicServiceCriteria_item(packet_info *pinfo, proto_tree *tre
static int
dissect_gsm_map_Ext_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 268 "gsmmap.cnf"
+#line 295 "gsmmap.cnf"
/* Note Ext-SS-Status can have more than one byte */
tvbuff_t *parameter_tvb;
@@ -4741,7 +5353,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 394 "gsmmap.cnf"
+#line 421 "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);
@@ -4772,7 +5384,7 @@ static int dissect_ext_noReplyConditionTime_impl(packet_info *pinfo, proto_tree
int
dissect_gsm_map_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 218 "gsmmap.cnf"
+#line 245 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
char *digit_str;
@@ -6170,7 +6782,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 405 "gsmmap.cnf"
+#line 432 "gsmmap.cnf"
guint8 pdp_type_org;
tvbuff_t *parameter_tvb;
@@ -6219,7 +6831,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 431 "gsmmap.cnf"
+#line 458 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
@@ -6266,7 +6878,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 446 "gsmmap.cnf"
+#line 473 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
@@ -7368,7 +7980,7 @@ dissect_gsm_map_DeleteSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb
int
dissect_gsm_map_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 241 "gsmmap.cnf"
+#line 268 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
guint8 octet;
@@ -7497,7 +8109,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 388 "gsmmap.cnf"
+#line 415 "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);
@@ -9450,7 +10062,7 @@ dissect_gsm_map_IST_CommandRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int off
static const ber_sequence_t ReleaseResourcesArg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msrn },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msrn },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
@@ -10004,7 +10616,7 @@ dissect_gsm_map_EraseCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int o
static int
dissect_gsm_map_ServiceCentreAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 166 "gsmmap.cnf"
+#line 193 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
char *digit_str;
@@ -10210,7 +10822,7 @@ static int dissect_sm_RP_OA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb,
static int
dissect_gsm_map_Sm_RP_UI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-#line 125 "gsmmap.cnf"
+#line 152 "gsmmap.cnf"
tvbuff_t *tpdu_tvb;
@@ -12459,8 +13071,8 @@ dissect_gsm_map_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pa
return offset;
}
-static int dissect_localValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_localValue);
+static int dissect_localValue2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_localValue2);
}
@@ -12471,7 +13083,7 @@ static const value_string gsm_map_OperationCode_vals[] = {
};
static const ber_choice_t OperationCode_choice[] = {
- { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue },
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue2 },
{ 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue },
{ 0, 0, 0, 0, NULL }
};
@@ -12496,7 +13108,7 @@ static const value_string gsm_map_ErrorCode_vals[] = {
};
static const ber_choice_t ErrorCode_choice[] = {
- { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue },
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue2 },
{ 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue },
{ 0, 0, 0, 0, NULL }
};
@@ -12509,8 +13121,8 @@ dissect_gsm_map_ErrorCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
return offset;
}
-static int dissect_errorCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ErrorCode(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_errorCode);
+static int dissect_errorCode1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_ErrorCode(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_errorCode1);
}
@@ -12523,7 +13135,7 @@ static const value_string gsm_map_OriginalComponentIdentifier_vals[] = {
static const ber_choice_t OriginalComponentIdentifier_choice[] = {
{ 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_operationCode_impl },
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_errorCode_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_errorCode1_impl },
{ 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_userInfo_impl },
{ 0, 0, 0, 0, NULL }
};
@@ -12723,6 +13335,20 @@ dissect_gsm_map_FacilityNotSupParam(gboolean implicit_tag _U_, tvbuff_t *tvb, in
}
+static const ber_sequence_t OR_NotAllowedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_OR_NotAllowedParam(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,
+ OR_NotAllowedParam_sequence, hf_index, ett_gsm_map_OR_NotAllowedParam);
+
+ return offset;
+}
+
+
static const ber_sequence_t IncompatibleTerminalParam_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
@@ -12931,29 +13557,30 @@ dissect_gsm_map_NoRoamingNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int o
}
-static const value_string gsm_map_T_absentSubscriberReason_vals[] = {
+static const value_string gsm_map_AbsentSubscriberReason_vals[] = {
{ 0, "imsiDetach" },
{ 1, "restrictedArea" },
{ 2, "noPageResponse" },
+ { 3, "purgedMS" },
{ 0, NULL }
};
static int
-dissect_gsm_map_T_absentSubscriberReason(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_gsm_map_AbsentSubscriberReason(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_absentSubscriberReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_absentSubscriberReason(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberReason);
+static int dissect_absentSubscriberReason(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_AbsentSubscriberReason(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberReason);
}
static const ber_sequence_t AbsentSubscriberParam_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberReason_impl },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_absentSubscriberReason },
{ 0, 0, 0, NULL }
};
@@ -12996,6 +13623,147 @@ dissect_gsm_map_NoSubscriberReplyParam(gboolean implicit_tag _U_, tvbuff_t *tvb,
}
+static const ber_sequence_t ForwardingViolationParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ForwardingViolationParam(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,
+ ForwardingViolationParam_sequence, hf_index, ett_gsm_map_ForwardingViolationParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ForwardingFailedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ForwardingFailedParam(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,
+ ForwardingFailedParam_sequence, hf_index, ett_gsm_map_ForwardingFailedParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ATI_NotAllowedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ATI_NotAllowedParam(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,
+ ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_ATI_NotAllowedParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ATSI_NotAllowedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ATSI_NotAllowedParam(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,
+ ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_ATSI_NotAllowedParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ATM_NotAllowedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ATM_NotAllowedParam(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,
+ ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_ATM_NotAllowedParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t IllegalSS_OperationParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_IllegalSS_OperationParam(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,
+ IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_IllegalSS_OperationParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SS_NotAvailableParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SS_NotAvailableParam(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,
+ SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_SS_NotAvailableParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SS_SubscriptionViolationParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SS_SubscriptionViolationParam(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,
+ SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_SS_SubscriptionViolationParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t InformationNotAvailableParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_InformationNotAvailableParam(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,
+ InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_InformationNotAvailableParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SubBusyForMT_SMS_Param_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gprsConnectionSuspended },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SubBusyForMT_SMS_Param(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,
+ SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_SubBusyForMT_SMS_Param);
+
+ return offset;
+}
+
+
static const value_string gsm_map_CallBarringCause_vals[] = {
{ 0, "barringServiceActive" },
{ 1, "operatorBarring" },
@@ -13015,22 +13783,22 @@ static int dissect_callBarringCause(packet_info *pinfo, proto_tree *tree, tvbuff
}
-static const ber_sequence_t T_extensibleCallBarredParam_sequence[] = {
+static const ber_sequence_t ExtensibleCallBarredParam_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_callBarringCause },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorisedMessageOriginator_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_unauthorisedMessageOriginator },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_T_extensibleCallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_gsm_map_ExtensibleCallBarredParam(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,
- T_extensibleCallBarredParam_sequence, hf_index, ett_gsm_map_T_extensibleCallBarredParam);
+ ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_ExtensibleCallBarredParam);
return offset;
}
static int dissect_extensibleCallBarredParam(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_extensibleCallBarredParam(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensibleCallBarredParam);
+ return dissect_gsm_map_ExtensibleCallBarredParam(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensibleCallBarredParam);
}
@@ -13056,43 +13824,51 @@ dissect_gsm_map_CallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int of
}
-static const ber_sequence_t ForwardingFailedParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+static const value_string gsm_map_CUG_RejectCause_vals[] = {
+ { 0, "incomingCallsBarredWithinCUG" },
+ { 1, "subscriberNotMemberOfCUG" },
+ { 5, "requestedBasicServiceViolatesCUG-Constraints" },
+ { 7, "calledPartySS-InteractionViolation" },
+ { 0, NULL }
};
+
static int
-dissect_gsm_map_ForwardingFailedParam(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,
- ForwardingFailedParam_sequence, hf_index, ett_gsm_map_ForwardingFailedParam);
+dissect_gsm_map_CUG_RejectCause(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_cug_RejectCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_CUG_RejectCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_RejectCause);
+}
-static const ber_sequence_t Or_NotAllowedParam_sequence[] = {
+static const ber_sequence_t CUG_RejectParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_RejectCause },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_Or_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_gsm_map_CUG_RejectParam(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,
- Or_NotAllowedParam_sequence, hf_index, ett_gsm_map_Or_NotAllowedParam);
+ CUG_RejectParam_sequence, hf_index, ett_gsm_map_CUG_RejectParam);
return offset;
}
-static const ber_sequence_t ForwardingViolationParam_sequence[] = {
+static const ber_sequence_t Or_NotAllowedParam_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_ForwardingViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_gsm_map_Or_NotAllowedParam(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,
- ForwardingViolationParam_sequence, hf_index, ett_gsm_map_ForwardingViolationParam);
+ Or_NotAllowedParam_sequence, hf_index, ett_gsm_map_Or_NotAllowedParam);
return offset;
}
@@ -13114,13 +13890,13 @@ dissect_gsm_map_T_cug_RejectCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int
return offset;
}
-static int dissect_cug_RejectCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_cug_RejectCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_RejectCause);
+static int dissect_cug_RejectCause1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_T_cug_RejectCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_RejectCause1);
}
static const ber_sequence_t Cug_RejectParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_RejectCause },
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_RejectCause1 },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
@@ -13134,20 +13910,6 @@ dissect_gsm_map_Cug_RejectParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int of
}
-static const ber_sequence_t Ati_NotAllowedParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_gsm_map_Ati_NotAllowedParam(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,
- Ati_NotAllowedParam_sequence, hf_index, ett_gsm_map_Ati_NotAllowedParam);
-
- return offset;
-}
-
-
static const ber_sequence_t NoGroupCallNbParam_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
@@ -13178,7 +13940,7 @@ dissect_gsm_map_SS_IncompatibilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb
}
-static const value_string gsm_map_Pw_RegistrationFailureCause_vals[] = {
+static const value_string gsm_map_PW_RegistrationFailureCause_vals[] = {
{ 0, "undetermined" },
{ 1, "invalidFormat" },
{ 2, "newPasswordsMismatch" },
@@ -13187,7 +13949,7 @@ static const value_string gsm_map_Pw_RegistrationFailureCause_vals[] = {
static int
-dissect_gsm_map_Pw_RegistrationFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_gsm_map_PW_RegistrationFailureCause(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);
@@ -13221,22 +13983,7 @@ dissect_gsm_map_LongTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb, in
}
-static const ber_sequence_t SubBusyForMT_SMS_Param_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gprsConnectionSuspended },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_gsm_map_SubBusyForMT_SMS_Param(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,
- SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_SubBusyForMT_SMS_Param);
-
- return offset;
-}
-
-
-static const value_string gsm_map_T_sm_EnumeratedDeliveryFailureCause_vals[] = {
+static const value_string gsm_map_SM_EnumeratedDeliveryFailureCause_vals[] = {
{ 0, "memoryCapacityExceeded" },
{ 1, "equipmentProtocolError" },
{ 2, "equipmentNotSM-Equipped" },
@@ -13249,31 +13996,18 @@ static const value_string gsm_map_T_sm_EnumeratedDeliveryFailureCause_vals[] = {
static int
-dissect_gsm_map_T_sm_EnumeratedDeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_gsm_map_SM_EnumeratedDeliveryFailureCause(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_sm_EnumeratedDeliveryFailureCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_sm_EnumeratedDeliveryFailureCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_EnumeratedDeliveryFailureCause);
+ return dissect_gsm_map_SM_EnumeratedDeliveryFailureCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_EnumeratedDeliveryFailureCause);
}
-
-static int
-dissect_gsm_map_OCTET_STRING_SIZE_1_200(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-static int dissect_diagnosticInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_200(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_diagnosticInfo);
-}
-
-
-static const ber_sequence_t Sm_DeliveryFailureCause_sequence[] = {
+static const ber_sequence_t SM_DeliveryFailureCause_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_EnumeratedDeliveryFailureCause },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_diagnosticInfo },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
@@ -13281,9 +14015,9 @@ static const ber_sequence_t Sm_DeliveryFailureCause_sequence[] = {
};
static int
-dissect_gsm_map_Sm_DeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_gsm_map_SM_DeliveryFailureCause(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,
- Sm_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_Sm_DeliveryFailureCause);
+ SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_SM_DeliveryFailureCause);
return offset;
}
@@ -13370,7 +14104,7 @@ dissect_gsm_map_UnauthorizedLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t
}
-static const value_string gsm_map_T_positionMethodFailure_Diagnostic_vals[] = {
+static const value_string gsm_map_PositionMethodFailure_Diagnostic_vals[] = {
{ 0, "congestion" },
{ 1, "insufficientResources" },
{ 2, "insufficientMeasurementData" },
@@ -13385,14 +14119,14 @@ static const value_string gsm_map_T_positionMethodFailure_Diagnostic_vals[] = {
static int
-dissect_gsm_map_T_positionMethodFailure_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_gsm_map_PositionMethodFailure_Diagnostic(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_positionMethodFailure_Diagnostic_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_positionMethodFailure_Diagnostic(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_positionMethodFailure_Diagnostic);
+ return dissect_gsm_map_PositionMethodFailure_Diagnostic(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_positionMethodFailure_Diagnostic);
}
@@ -13425,8 +14159,57 @@ dissect_gsm_map_UnknownOrUnreachableLCSClient_Param(gboolean implicit_tag _U_, t
}
+static const ber_sequence_t MM_EventNotSupported_Param_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_MM_EventNotSupported_Param(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,
+ MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_MM_EventNotSupported_Param);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TargetCellOutsideGCA_Param_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_TargetCellOutsideGCA_Param(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,
+ TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_TargetCellOutsideGCA_Param);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SecureTransportErrorParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_securityHeader },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_protectedPayload },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SecureTransportErrorParam(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,
+ SecureTransportErrorParam_sequence, hf_index, ett_gsm_map_SecureTransportErrorParam);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static void dissect_Component_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_gsm_map_Component(FALSE, tvb, 0, pinfo, tree, hf_gsm_map_Component_PDU);
+}
+
+
/*--- End of included file: packet-gsm_map-fn.c ---*/
-#line 164 "packet-gsm_map-template.c"
+#line 172 "packet-gsm_map-template.c"
const value_string gsm_map_opr_code_strings[] = {
{ 2, "updateLocation" },
@@ -13625,7 +14408,6 @@ static const true_false_string gsm_map_Ss_Status_a_values = {
"not Active"
};
-static guint32 opcode=0;
static int
dissect_gsm_map_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
@@ -14126,155 +14908,158 @@ static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff
return offset;
}
-static int
-dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Opcode(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeCmd);
-}
-
-static int dissect_invokeid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_gsm_map_invokeid, NULL);
-}
-
-static const value_string InvokeId_vals[] = {
- { 0, "invokeid" },
- { 1, "absent" },
- { 0, NULL }
-};
-
-static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_absent);
-}
-
-
-static const ber_choice_t InvokeId_choice[] = {
- { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeid },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
- { 0, 0, 0, 0, NULL }
-};
-
-static int
-dissect_gsm_map_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- InvokeId_choice, hf_index, ett_gsm_map_InvokeId, NULL);
-
- return offset;
-}
-static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeId);
-}
-
-static const ber_sequence_t InvokePDU_sequence[] = {
- { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
- { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeData },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_gsm_map_InvokePDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- InvokePDU_sequence, hf_index, ett_gsm_map_InvokePDU);
-
- return offset;
-}
-static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_InvokePDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_invoke);
-}
-
-static const ber_sequence_t ReturnResult_result_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
- { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnResultData },
- { 0, 0, 0, NULL }
-};
-static int
-dissect_returnResult_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- offset = dissect_ber_sequence(FALSE, pinfo, tree, tvb, offset,
- ReturnResult_result_sequence, hf_gsm_map_returnResult_result, ett_gsm_map_ReturnResult_result);
-
- return offset;
-}
-
-static const ber_sequence_t ReturnResultPDU_sequence[] = {
- { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_returnResult_result },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_gsm_map_returnResultPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ReturnResultPDU_sequence, hf_index, ett_gsm_map_ReturnResultPDU);
-
- return offset;
-}
-static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_returnResultPDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnResult);
-}
-
-static int
-dissect_local_errorCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_gsm_map_local_errorCode, NULL);
-}
-
-static int
-dissect_global_errorCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
- hf_gsm_map_global_errorCode_oid, NULL);
- return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_gsm_map_global_errorCode, NULL);
-}
-static const ber_choice_t ReturnError_result_choice[] = {
- { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_local_errorCode },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_global_errorCode },
- { 0, 0, 0, 0, NULL }
-};
-
-
-static int
-dissect_ReturnError_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- ReturnError_result_choice, hf_gsm_map_returnError_result, ett_gsm_map_ReturnError_result, NULL);
-
- return offset;
-}
-
-static const ber_sequence_t ReturnErrorPDU_sequence[] = {
- { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
- { BER_CLASS_UNI, -1/*choice*/,BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ReturnError_result },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_gsm_map_ReturnErrorPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ReturnErrorPDU_sequence, hf_index, ett_gsm_map_ReturnErrorPDU);
+static int dissect_returnErrorData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+
+ switch(errorCode){
+ case 1: /* UnknownSubscriberParam */
+ offset=dissect_gsm_map_UnknownSubscriberParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 4: /* SecureTransportErrorParam */
+ offset=dissect_gsm_map_SecureTransportErrorParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 5: /* UnidentifiedSubParam */
+ offset=dissect_gsm_map_UnidentifiedSubParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 6: /* AbsentSubscriberSM-Param */
+ offset=dissect_gsm_map_AbsentSubscriberSM_Param(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 8: /* RoamingNotAllowedParam */
+ offset=dissect_gsm_map_RoamingNotAllowedParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 9: /* IllegalSubscriberParam */
+ offset=dissect_gsm_map_IllegalSubscriberParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 10: /* BearerServNotProvParam */
+ offset=dissect_gsm_map_BearerServNotProvParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 11: /* TeleservNotProvParam */
+ offset=dissect_gsm_map_TeleservNotProvParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 12: /* IllegalEquipmentParam */
+ offset=dissect_gsm_map_IllegalEquipmentParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 13: /* CallBarredParam */
+ offset=dissect_gsm_map_CallBarredParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 14: /* ForwardingViolationParam */
+ offset=dissect_gsm_map_ForwardingViolationParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 15: /* CUG-RejectParam */
+ offset=dissect_gsm_map_CUG_RejectParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 16: /* IllegalSS-OperationParam */
+ offset=dissect_gsm_map_IllegalSS_OperationParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 18: /* SS-NotAvailableParam */
+ offset=dissect_gsm_map_SS_NotAvailableParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 19: /* SS-SubscriptionViolationParam */
+ offset=dissect_gsm_map_SS_SubscriptionViolationParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 20: /* SS-IncompatibilityCause */
+ offset=dissect_gsm_map_SS_IncompatibilityCause(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 21: /* FacilityNotSupParam */
+ offset=dissect_gsm_map_FacilityNotSupParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 27: /* AbsentSubscriberParam */
+ offset=dissect_gsm_map_AbsentSubscriberParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 28: /* IncompatibleTerminalParam */
+ offset=dissect_gsm_map_IncompatibleTerminalParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 29: /* ShortTermDenialParam */
+ offset=dissect_gsm_map_ShortTermDenialParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 30: /* LongTermDenialParam */
+ offset=dissect_gsm_map_LongTermDenialParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 31: /* SubBusyForMT-SMS-Param */
+ offset=dissect_gsm_map_SubBusyForMT_SMS_Param(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 32: /* SM-DeliveryFailureCause */
+ offset=dissect_gsm_map_SM_DeliveryFailureCause(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 33: /* MessageWaitListFullParam */
+ offset=dissect_gsm_map_MessageWaitListFullParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 34: /* SystemFailureParam */
+ offset=dissect_gsm_map_SystemFailureParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 35: /* DataMissingParam */
+ offset=dissect_gsm_map_DataMissingParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 36: /* UnexpectedDataParam */
+ offset=dissect_gsm_map_UnexpectedDataParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 37: /* PW-RegistrationFailureCause */
+ offset=dissect_gsm_map_PW_RegistrationFailureCause(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 39: /* NoRoamingNbParam */
+ offset=dissect_gsm_map_NoRoamingNbParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 40: /* TracingBufferFullParam */
+ offset=dissect_gsm_map_TracingBufferFullParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 42: /* TargetCellOutsideGCA-Param */
+ offset=dissect_gsm_map_TargetCellOutsideGCA_Param(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 44: /* NumberChangedParam */
+ offset=dissect_gsm_map_NumberChangedParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 45: /* BusySubscriberParam */
+ offset=dissect_gsm_map_BusySubscriberParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 46: /* NoSubscriberReplyParam */
+ offset=dissect_gsm_map_NoSubscriberReplyParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 47: /* ForwardingFailedParam */
+ offset=dissect_gsm_map_ForwardingFailedParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 48: /* OR-NotAllowedParam */
+ offset=dissect_gsm_map_OR_NotAllowedParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 49: /* ATI-NotAllowedParam */
+ offset=dissect_gsm_map_ATI_NotAllowedParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 50: /* NoGroupCallNbParam */
+ offset=dissect_gsm_map_NoGroupCallNbParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 51: /* ResourceLimitationParam */
+ offset=dissect_gsm_map_ResourceLimitationParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 52: /* UnauthorizedRequestingNetwork-Param */
+ offset=dissect_gsm_map_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 53: /* UnauthorizedLCSClient-Param */
+ offset=dissect_gsm_map_UnauthorizedLCSClient_Param(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 54: /* PositionMethodFailure-Param */
+ offset=dissect_gsm_map_PositionMethodFailure_Param(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 58: /* UnknownOrUnreachableLCSClient-Param */
+ offset=dissect_gsm_map_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 59: /* MM-EventNotSupported-Param */
+ offset=dissect_gsm_map_MM_EventNotSupported_Param(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 60: /* ATSI-NotAllowedParam */
+ offset=dissect_gsm_map_ATSI_NotAllowedParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 61: /* ATM-NotAllowedParam */
+ offset=dissect_gsm_map_ATM_NotAllowedParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 62: /* InformationNotAvailableParam */
+ offset=dissect_gsm_map_InformationNotAvailableParam(FALSE, tvb, offset, pinfo, tree, -1);
+ break;
+ default:
+ proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnErrorData blob");
+ break;
+ }
return offset;
}
-static int dissect_returnError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ReturnErrorPDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnError);
-}
-
-
-static const value_string GSMMAPPDU_vals[] = {
- { 1, "Invoke " },
- { 2, "ReturnResult " },
- { 3, "ReturnError " },
- { 4, "Reject " },
- { 0, NULL }
-};
-
-static const ber_choice_t GSMMAPPDU_choice[] = {
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
- { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
- { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
-#ifdef REMOVED
- { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
-#endif
- { 0, 0, 0, 0, NULL }
-};
-
static guint8 gsmmap_pdu_type = 0;
static guint8 gsm_map_pdu_size = 0;
@@ -14297,12 +15082,14 @@ dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
if (check_col(pinfo->cinfo, COL_INFO)){
- col_set_str(pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, GSMMAPPDU_vals, "Unknown GSM-MAP PDU (%u)"));
+ col_set_str(pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, gsm_map_Component_vals, "Unknown GSM-MAP PDU (%u)"));
}
-
+ offset = dissect_gsm_map_Component(FALSE, tvb, 0, pinfo, tree, hf_gsm_map_Component_PDU);
+ return offset;
+/*
offset = dissect_ber_choice(pinfo, tree, tvb, offset,
GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU, NULL);
-
+*/
return offset;
}
@@ -14712,6 +15499,7 @@ void proto_register_gsm_map(void) {
/* List of fields */
static hf_register_info hf[] = {
+ /*
{ &hf_gsm_map_invokeCmd,
{ "invokeCmd", "gsm_map.invokeCmd",
FT_UINT32, BASE_DEC, VALS(gsm_map_opr_code_strings), 0,
@@ -14728,22 +15516,6 @@ void proto_register_gsm_map(void) {
{ "invokeId", "gsm_map.invokeId",
FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
"InvokePDU/invokeId", HFILL }},
- { &hf_gsm_map_SendAuthenticationInfoArg,
- { "SendAuthenticationInfoArg", "gsm_map.SendAuthenticationInfoArg",
- FT_BYTES, BASE_NONE, NULL, 0,
- "SendAuthenticationInfoArg", HFILL }},
- { &hf_gsm_map_SendAuthenticationInfoRes,
- { "SendAuthenticationInfoRes", "gsm_map.SendAuthenticationInfoRes",
- FT_BYTES, BASE_NONE, NULL, 0,
- "SendAuthenticationInfoRes", HFILL }},
- { &hf_gsm_map_currentPassword,
- { "currentPassword", "gsm_map.currentPassword",
- FT_STRING, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_mapSendEndSignal,
- { "mapSendEndSignalArg", "gsm_map.mapsendendsignalarg",
- FT_BYTES, BASE_NONE, NULL, 0,
- "mapSendEndSignalArg", HFILL }},
{ &hf_gsm_map_invoke,
{ "invoke", "gsm_map.invoke",
FT_NONE, BASE_NONE, NULL, 0,
@@ -14780,6 +15552,24 @@ void proto_register_gsm_map(void) {
{ "Password", "gsm_map.password",
FT_UINT8, BASE_DEC, VALS(gsm_map_GetPasswordArg_vals), 0,
"Password", HFILL }},
+
+ */
+ { &hf_gsm_map_SendAuthenticationInfoArg,
+ { "SendAuthenticationInfoArg", "gsm_map.SendAuthenticationInfoArg",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "SendAuthenticationInfoArg", HFILL }},
+ { &hf_gsm_map_SendAuthenticationInfoRes,
+ { "SendAuthenticationInfoRes", "gsm_map.SendAuthenticationInfoRes",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "SendAuthenticationInfoRes", HFILL }},
+ { &hf_gsm_map_currentPassword,
+ { "currentPassword", "gsm_map.currentPassword",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_gsm_mapSendEndSignal,
+ { "mapSendEndSignalArg", "gsm_map.mapsendendsignalarg",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "mapSendEndSignalArg", HFILL }},
{ &hf_gsm_map_extension,
{ "Extension", "gsm_map.extension",
FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80,
@@ -14861,6 +15651,102 @@ void proto_register_gsm_map(void) {
/*--- Included file: packet-gsm_map-hfarr.c ---*/
#line 1 "packet-gsm_map-hfarr.c"
+ { &hf_gsm_map_Component_PDU,
+ { "Component", "gsm_map.Component",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Component_vals), 0,
+ "Component", HFILL }},
+ { &hf_gsm_map_invoke,
+ { "invoke", "gsm_map.invoke",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Component/invoke", HFILL }},
+ { &hf_gsm_map_returnResultLast,
+ { "returnResultLast", "gsm_map.returnResultLast",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Component/returnResultLast", HFILL }},
+ { &hf_gsm_map_returnError,
+ { "returnError", "gsm_map.returnError",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Component/returnError", HFILL }},
+ { &hf_gsm_map_reject,
+ { "reject", "gsm_map.reject",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Component/reject", HFILL }},
+ { &hf_gsm_map_invokeID,
+ { "invokeID", "gsm_map.invokeID",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_gsm_map_linkedID,
+ { "linkedID", "gsm_map.linkedID",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "Invoke/linkedID", HFILL }},
+ { &hf_gsm_map_opCode,
+ { "opCode", "gsm_map.opCode",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_OPERATION_vals), 0,
+ "", HFILL }},
+ { &hf_gsm_map_invokeparameter,
+ { "invokeparameter", "gsm_map.invokeparameter",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Invoke/invokeparameter", HFILL }},
+ { &hf_gsm_map_resultretres,
+ { "resultretres", "gsm_map.resultretres",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ReturnResult/resultretres", HFILL }},
+ { &hf_gsm_map_returnparameter,
+ { "returnparameter", "gsm_map.returnparameter",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ReturnResult/resultretres/returnparameter", HFILL }},
+ { &hf_gsm_map_errorCode,
+ { "errorCode", "gsm_map.errorCode",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ERROR_vals), 0,
+ "ReturnError/errorCode", HFILL }},
+ { &hf_gsm_map_parameter,
+ { "parameter", "gsm_map.parameter",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ReturnError/parameter", HFILL }},
+ { &hf_gsm_map_invokeIDRej,
+ { "invokeIDRej", "gsm_map.invokeIDRej",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_T_invokeIDRej_vals), 0,
+ "Reject/invokeIDRej", HFILL }},
+ { &hf_gsm_map_derivable,
+ { "derivable", "gsm_map.derivable",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "Reject/invokeIDRej/derivable", HFILL }},
+ { &hf_gsm_map_not_derivable,
+ { "not-derivable", "gsm_map.not_derivable",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Reject/invokeIDRej/not-derivable", HFILL }},
+ { &hf_gsm_map_problem,
+ { "problem", "gsm_map.problem",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_T_problem_vals), 0,
+ "Reject/problem", HFILL }},
+ { &hf_gsm_map_generalProblem,
+ { "generalProblem", "gsm_map.generalProblem",
+ FT_INT32, BASE_DEC, VALS(gsm_map_GeneralProblem_vals), 0,
+ "Reject/problem/generalProblem", HFILL }},
+ { &hf_gsm_map_invokeProblem,
+ { "invokeProblem", "gsm_map.invokeProblem",
+ FT_INT32, BASE_DEC, VALS(gsm_map_InvokeProblem_vals), 0,
+ "Reject/problem/invokeProblem", HFILL }},
+ { &hf_gsm_map_returnResultProblem,
+ { "returnResultProblem", "gsm_map.returnResultProblem",
+ FT_INT32, BASE_DEC, VALS(gsm_map_ReturnResultProblem_vals), 0,
+ "Reject/problem/returnResultProblem", HFILL }},
+ { &hf_gsm_map_returnErrorProblem,
+ { "returnErrorProblem", "gsm_map.returnErrorProblem",
+ FT_INT32, BASE_DEC, VALS(gsm_map_ReturnErrorProblem_vals), 0,
+ "Reject/problem/returnErrorProblem", HFILL }},
+ { &hf_gsm_map_localValue,
+ { "localValue", "gsm_map.localValue",
+ FT_INT32, BASE_DEC, VALS(gsm_map_OperationLocalvalue_vals), 0,
+ "OPERATION/localValue", HFILL }},
+ { &hf_gsm_map_globalValue,
+ { "globalValue", "gsm_map.globalValue",
+ FT_OID, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_gsm_map_localValue1,
+ { "localValue", "gsm_map.localValue",
+ FT_INT32, BASE_DEC, VALS(gsm_map_LocalErrorcode_vals), 0,
+ "ERROR/localValue", HFILL }},
{ &hf_gsm_map_protocolId,
{ "protocolId", "gsm_map.protocolId",
FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
@@ -17537,7 +18423,7 @@ void proto_register_gsm_map(void) {
{ "operationCode", "gsm_map.operationCode",
FT_UINT32, BASE_DEC, VALS(gsm_map_OperationCode_vals), 0,
"OriginalComponentIdentifier/operationCode", HFILL }},
- { &hf_gsm_map_errorCode,
+ { &hf_gsm_map_errorCode1,
{ "errorCode", "gsm_map.errorCode",
FT_UINT32, BASE_DEC, VALS(gsm_map_ErrorCode_vals), 0,
"OriginalComponentIdentifier/errorCode", HFILL }},
@@ -17545,14 +18431,10 @@ void proto_register_gsm_map(void) {
{ "userInfo", "gsm_map.userInfo",
FT_NONE, BASE_NONE, NULL, 0,
"OriginalComponentIdentifier/userInfo", HFILL }},
- { &hf_gsm_map_localValue,
+ { &hf_gsm_map_localValue2,
{ "localValue", "gsm_map.localValue",
FT_INT32, BASE_DEC, NULL, 0,
"", HFILL }},
- { &hf_gsm_map_globalValue,
- { "globalValue", "gsm_map.globalValue",
- FT_OID, BASE_NONE, NULL, 0,
- "", HFILL }},
{ &hf_gsm_map_networkResource,
{ "networkResource", "gsm_map.networkResource",
FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
@@ -17571,12 +18453,16 @@ void proto_register_gsm_map(void) {
"RoamingNotAllowedParam/roamingNotAllowedCause", HFILL }},
{ &hf_gsm_map_absentSubscriberReason,
{ "absentSubscriberReason", "gsm_map.absentSubscriberReason",
- FT_UINT32, BASE_DEC, VALS(gsm_map_T_absentSubscriberReason_vals), 0,
+ FT_UINT32, BASE_DEC, VALS(gsm_map_AbsentSubscriberReason_vals), 0,
"AbsentSubscriberParam/absentSubscriberReason", HFILL }},
{ &hf_gsm_map_ccbs_Busy,
{ "ccbs-Busy", "gsm_map.ccbs_Busy",
FT_NONE, BASE_NONE, NULL, 0,
"BusySubscriberParam/ccbs-Busy", HFILL }},
+ { &hf_gsm_map_gprsConnectionSuspended,
+ { "gprsConnectionSuspended", "gsm_map.gprsConnectionSuspended",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SubBusyForMT-SMS-Param/gprsConnectionSuspended", HFILL }},
{ &hf_gsm_map_callBarringCause,
{ "callBarringCause", "gsm_map.callBarringCause",
FT_UINT32, BASE_DEC, VALS(gsm_map_CallBarringCause_vals), 0,
@@ -17588,30 +18474,30 @@ void proto_register_gsm_map(void) {
{ &hf_gsm_map_unauthorisedMessageOriginator,
{ "unauthorisedMessageOriginator", "gsm_map.unauthorisedMessageOriginator",
FT_NONE, BASE_NONE, NULL, 0,
- "CallBarredParam/extensibleCallBarredParam/unauthorisedMessageOriginator", HFILL }},
+ "ExtensibleCallBarredParam/unauthorisedMessageOriginator", HFILL }},
{ &hf_gsm_map_cug_RejectCause,
{ "cug-RejectCause", "gsm_map.cug_RejectCause",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CUG_RejectCause_vals), 0,
+ "CUG-RejectParam/cug-RejectCause", HFILL }},
+ { &hf_gsm_map_cug_RejectCause1,
+ { "cug-RejectCause", "gsm_map.cug_RejectCause",
FT_UINT32, BASE_DEC, VALS(gsm_map_T_cug_RejectCause_vals), 0,
"Cug-RejectParam/cug-RejectCause", HFILL }},
- { &hf_gsm_map_gprsConnectionSuspended,
- { "gprsConnectionSuspended", "gsm_map.gprsConnectionSuspended",
- FT_NONE, BASE_NONE, NULL, 0,
- "SubBusyForMT-SMS-Param/gprsConnectionSuspended", HFILL }},
{ &hf_gsm_map_sm_EnumeratedDeliveryFailureCause,
{ "sm-EnumeratedDeliveryFailureCause", "gsm_map.sm_EnumeratedDeliveryFailureCause",
- FT_UINT32, BASE_DEC, VALS(gsm_map_T_sm_EnumeratedDeliveryFailureCause_vals), 0,
- "Sm-DeliveryFailureCause/sm-EnumeratedDeliveryFailureCause", HFILL }},
+ FT_UINT32, BASE_DEC, VALS(gsm_map_SM_EnumeratedDeliveryFailureCause_vals), 0,
+ "SM-DeliveryFailureCause/sm-EnumeratedDeliveryFailureCause", HFILL }},
{ &hf_gsm_map_diagnosticInfo,
{ "diagnosticInfo", "gsm_map.diagnosticInfo",
FT_BYTES, BASE_HEX, NULL, 0,
- "Sm-DeliveryFailureCause/diagnosticInfo", HFILL }},
+ "SM-DeliveryFailureCause/diagnosticInfo", HFILL }},
{ &hf_gsm_map_unauthorizedLCSClient_Diagnostic,
{ "unauthorizedLCSClient-Diagnostic", "gsm_map.unauthorizedLCSClient_Diagnostic",
FT_UINT32, BASE_DEC, VALS(gsm_map_T_unauthorizedLCSClient_Diagnostic_vals), 0,
"UnauthorizedLCSClient-Param/unauthorizedLCSClient-Diagnostic", HFILL }},
{ &hf_gsm_map_positionMethodFailure_Diagnostic,
{ "positionMethodFailure-Diagnostic", "gsm_map.positionMethodFailure_Diagnostic",
- FT_UINT32, BASE_DEC, VALS(gsm_map_T_positionMethodFailure_Diagnostic_vals), 0,
+ FT_UINT32, BASE_DEC, VALS(gsm_map_PositionMethodFailure_Diagnostic_vals), 0,
"PositionMethodFailure-Param/positionMethodFailure-Diagnostic", HFILL }},
{ &hf_gsm_map_pcsExtensions,
{ "pcsExtensions", "gsm_map.pcsExtensions",
@@ -18035,7 +18921,7 @@ void proto_register_gsm_map(void) {
"", HFILL }},
/*--- End of included file: packet-gsm_map-hfarr.c ---*/
-#line 1596 "packet-gsm_map-template.c"
+#line 1611 "packet-gsm_map-template.c"
};
/* List of subtrees */
@@ -18051,6 +18937,16 @@ void proto_register_gsm_map(void) {
/*--- Included file: packet-gsm_map-ettarr.c ---*/
#line 1 "packet-gsm_map-ettarr.c"
+ &ett_gsm_map_Component,
+ &ett_gsm_map_Invoke,
+ &ett_gsm_map_ReturnResult,
+ &ett_gsm_map_T_resultretres,
+ &ett_gsm_map_ReturnError,
+ &ett_gsm_map_Reject,
+ &ett_gsm_map_T_invokeIDRej,
+ &ett_gsm_map_T_problem,
+ &ett_gsm_map_OPERATION,
+ &ett_gsm_map_ERROR,
&ett_gsm_map_Bss_APDU,
&ett_gsm_map_SupportedCamelPhases,
&ett_gsm_map_UpdateLocationArg,
@@ -18391,6 +19287,7 @@ void proto_register_gsm_map(void) {
&ett_gsm_map_DataMissingParam,
&ett_gsm_map_UnexpectedDataParam,
&ett_gsm_map_FacilityNotSupParam,
+ &ett_gsm_map_OR_NotAllowedParam,
&ett_gsm_map_IncompatibleTerminalParam,
&ett_gsm_map_ResourceLimitationParam,
&ett_gsm_map_UnknownSubscriberParam,
@@ -18406,29 +19303,39 @@ void proto_register_gsm_map(void) {
&ett_gsm_map_AbsentSubscriberParam,
&ett_gsm_map_BusySubscriberParam,
&ett_gsm_map_NoSubscriberReplyParam,
- &ett_gsm_map_CallBarredParam,
- &ett_gsm_map_T_extensibleCallBarredParam,
+ &ett_gsm_map_ForwardingViolationParam,
&ett_gsm_map_ForwardingFailedParam,
+ &ett_gsm_map_ATI_NotAllowedParam,
+ &ett_gsm_map_ATSI_NotAllowedParam,
+ &ett_gsm_map_ATM_NotAllowedParam,
+ &ett_gsm_map_IllegalSS_OperationParam,
+ &ett_gsm_map_SS_NotAvailableParam,
+ &ett_gsm_map_SS_SubscriptionViolationParam,
+ &ett_gsm_map_InformationNotAvailableParam,
+ &ett_gsm_map_SubBusyForMT_SMS_Param,
+ &ett_gsm_map_CallBarredParam,
+ &ett_gsm_map_ExtensibleCallBarredParam,
+ &ett_gsm_map_CUG_RejectParam,
&ett_gsm_map_Or_NotAllowedParam,
- &ett_gsm_map_ForwardingViolationParam,
&ett_gsm_map_Cug_RejectParam,
- &ett_gsm_map_Ati_NotAllowedParam,
&ett_gsm_map_NoGroupCallNbParam,
&ett_gsm_map_SS_IncompatibilityCause,
&ett_gsm_map_ShortTermDenialParam,
&ett_gsm_map_LongTermDenialParam,
- &ett_gsm_map_SubBusyForMT_SMS_Param,
- &ett_gsm_map_Sm_DeliveryFailureCause,
+ &ett_gsm_map_SM_DeliveryFailureCause,
&ett_gsm_map_MessageWaitListFullParam,
&ett_gsm_map_AbsentSubscriberSM_Param,
&ett_gsm_map_UnauthorizedRequestingNetwork_Param,
&ett_gsm_map_UnauthorizedLCSClient_Param,
&ett_gsm_map_PositionMethodFailure_Param,
&ett_gsm_map_UnknownOrUnreachableLCSClient_Param,
+ &ett_gsm_map_MM_EventNotSupported_Param,
+ &ett_gsm_map_TargetCellOutsideGCA_Param,
+ &ett_gsm_map_SecureTransportErrorParam,
&ett_gsm_map_ExtensionContainer,
/*--- End of included file: packet-gsm_map-ettarr.c ---*/
-#line 1609 "packet-gsm_map-template.c"
+#line 1624 "packet-gsm_map-template.c"
};
/* Register protocol */
diff --git a/epan/dissectors/packet-gsm_map.h b/epan/dissectors/packet-gsm_map.h
index b6921db311..df13764576 100644
--- a/epan/dissectors/packet-gsm_map.h
+++ b/epan/dissectors/packet-gsm_map.h
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
-/* ./packet-gsm_map.h */
+/* .\packet-gsm_map.h */
/* ../../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.h */
diff --git a/epan/dissectors/packet-h450.c b/epan/dissectors/packet-h450.c
index 74089e3c79..f531fc3df3 100644
--- a/epan/dissectors/packet-h450.c
+++ b/epan/dissectors/packet-h450.c
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
-/* ./packet-h450.c */
+/* .\packet-h450.c */
/* ../../tools/asn2eth.py -X -e -p h450 -c h450.cnf -s packet-h450-template h4501.asn */
/* Input file: packet-h450-template.c */
@@ -166,14 +166,7 @@ static int hf_h4501_Reject = -1;
static int hf_h4502_CTIdentifyRes = -1;
static int hf_h4502_DummyRes = -1;
static int hf_h4502_DummyArg = -1;
-static int hf_h4502_CTInitiateArg = -1;
-static int hf_h4502_CTSetupArg = -1;
-static int hf_h4502_CTUpdateArg = -1;
-static int hf_h4502_SubaddressTransferArg = -1;
-static int hf_h4502_CTCompleteArg = -1;
-static int hf_h4502_CTActiveArg = -1;
-
-static int hf_h4503ActivateDiversionQArg = -1;
+
static int hf_h4503DeactivateDiversionQArg = -1;
static int hf_h4503InterrogateDiversionQ = -1;
static int hf_h4503CheckRestrictionArg = -1;
@@ -209,6 +202,20 @@ static int hf_h4501_ROS = -1;
/*--- Included file: packet-h450-hf.c ---*/
#line 1 "packet-h450-hf.c"
+static int hf_h450_CallTransferIdentify_PDU = -1; /* CallTransferIdentify */
+static int hf_h450_CallTransferAbandon_PDU = -1; /* CallTransferAbandon */
+static int hf_h450_CallTransferInitiate_PDU = -1; /* CallTransferInitiate */
+static int hf_h450_CallTransferSetup_PDU = -1; /* CallTransferSetup */
+static int hf_h450_CallTransferUpdate_PDU = -1; /* CallTransferUpdate */
+static int hf_h450_SubaddressTransfer_PDU = -1; /* SubaddressTransfer */
+static int hf_h450_CallTransferComplete_PDU = -1; /* CallTransferComplete */
+static int hf_h450_CallTransferActive_PDU = -1; /* CallTransferActive */
+static int hf_h450_ActivateDiversionQArg_PDU = -1; /* ActivateDiversionQArg */
+static int hf_h450_ActivateDiversionQRes_PDU = -1; /* ActivateDiversionQRes */
+static int hf_h450_DeactivateDiversionQRes_PDU = -1; /* DeactivateDiversionQRes */
+static int hf_h450_InterrogateDiversionQRes_PDU = -1; /* InterrogateDiversionQRes */
+static int hf_h450_CheckRestrictionRes_PDU = -1; /* CheckRestrictionRes */
+static int hf_h450_CallReroutingRes_PDU = -1; /* CallReroutingRes */
static int hf_h450_networkFacilityExtension = -1; /* NetworkFacilityExtension */
static int hf_h450_interpretationApdu = -1; /* InterpretationApdu */
static int hf_h450_serviceApdu = -1; /* ServiceApdus */
@@ -438,7 +445,7 @@ static int hf_h450_extensionId = -1; /* OBJECT_IDENTIFIER */
static int hf_h450_extensionArgument = -1; /* ExtensionArgument */
/*--- End of included file: packet-h450-hf.c ---*/
-#line 202 "packet-h450-template.c"
+#line 195 "packet-h450-template.c"
/* Initialize the subtree pointers */
static gint ett_h4501 = -1;
@@ -579,7 +586,7 @@ static gint ett_h450_Unspecified = -1;
static gint ett_h450_Extension = -1;
/*--- End of included file: packet-h450-ett.c ---*/
-#line 217 "packet-h450-template.c"
+#line 210 "packet-h450-template.c"
/* Global variables */
static guint32 localOpcode;
@@ -4111,9 +4118,54 @@ dissect_h450_Unspecified(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, prot
return offset;
}
+/*--- PDUs ---*/
+
+static void dissect_CallTransferIdentify_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_CallTransferIdentify(tvb, 0, pinfo, tree, hf_h450_CallTransferIdentify_PDU);
+}
+static void dissect_CallTransferAbandon_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_CallTransferAbandon(tvb, 0, pinfo, tree, hf_h450_CallTransferAbandon_PDU);
+}
+static void dissect_CallTransferInitiate_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_CallTransferInitiate(tvb, 0, pinfo, tree, hf_h450_CallTransferInitiate_PDU);
+}
+static void dissect_CallTransferSetup_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_CallTransferSetup(tvb, 0, pinfo, tree, hf_h450_CallTransferSetup_PDU);
+}
+static void dissect_CallTransferUpdate_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_CallTransferUpdate(tvb, 0, pinfo, tree, hf_h450_CallTransferUpdate_PDU);
+}
+static void dissect_SubaddressTransfer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_SubaddressTransfer(tvb, 0, pinfo, tree, hf_h450_SubaddressTransfer_PDU);
+}
+static void dissect_CallTransferComplete_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_CallTransferComplete(tvb, 0, pinfo, tree, hf_h450_CallTransferComplete_PDU);
+}
+static void dissect_CallTransferActive_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_CallTransferActive(tvb, 0, pinfo, tree, hf_h450_CallTransferActive_PDU);
+}
+static void dissect_ActivateDiversionQArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_ActivateDiversionQArg(tvb, 0, pinfo, tree, hf_h450_ActivateDiversionQArg_PDU);
+}
+static void dissect_ActivateDiversionQRes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_ActivateDiversionQRes(tvb, 0, pinfo, tree, hf_h450_ActivateDiversionQRes_PDU);
+}
+static void dissect_DeactivateDiversionQRes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_DeactivateDiversionQRes(tvb, 0, pinfo, tree, hf_h450_DeactivateDiversionQRes_PDU);
+}
+static void dissect_InterrogateDiversionQRes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_InterrogateDiversionQRes(tvb, 0, pinfo, tree, hf_h450_InterrogateDiversionQRes_PDU);
+}
+static void dissect_CheckRestrictionRes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_CheckRestrictionRes(tvb, 0, pinfo, tree, hf_h450_CheckRestrictionRes_PDU);
+}
+static void dissect_CallReroutingRes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_h450_CallReroutingRes(tvb, 0, pinfo, tree, hf_h450_CallReroutingRes_PDU);
+}
+
/*--- End of included file: packet-h450-fn.c ---*/
-#line 314 "packet-h450-template.c"
+#line 307 "packet-h450-template.c"
static const value_string InvokeProblem_vals[] = {
{ 0, "duplicateInvocation"},
@@ -4192,6 +4244,23 @@ dissect_h4501_ReturnResult_result(tvbuff_t *tvb, int offset, packet_info *pinfo,
case CallTransferSetup:
dissect_h450_DummyRes(result_tvb, 0, pinfo , tree, hf_h4502_DummyRes);
break;
+
+ case ActivateDiversionQ:
+ dissect_ActivateDiversionQRes_PDU(result_tvb, pinfo, tree);
+ break;
+ case DeactivateDiversionQ:
+ dissect_DeactivateDiversionQRes_PDU(result_tvb, pinfo, tree);
+ break;
+ case InterrogateDiversionQ:
+ dissect_InterrogateDiversionQRes_PDU(result_tvb, pinfo, tree);
+ break;
+ case CheckRestriction:
+ dissect_CheckRestrictionRes_PDU(result_tvb, pinfo, tree);
+ break;
+ case CallRerouting:
+ dissect_CallReroutingRes_PDU(result_tvb, pinfo, tree);
+ break;
+
case RemoteRetrieve:
dissect_h450_RemoteRetrieveRes(result_tvb, 0, pinfo , tree, hf_h4504_RemoteRetrieveRes);
break;
@@ -4494,38 +4563,33 @@ dissect_h4501_argument(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
switch (localOpcode) {
/* h450.2 */
case CallTransferIdentify: /* Localvalue 7 */
+ dissect_CallTransferIdentify_PDU(argument_tvb, pinfo, tree);
+ break;
case CallTransferAbandon: /* Localvalue 8 */
- dissect_h450_DummyArg(argument_tvb, 0, pinfo , tree, hf_h4502_DummyArg);
- break;
-
+ dissect_CallTransferAbandon_PDU(argument_tvb, pinfo, tree);
+ break;
case CallTransferInitiate: /* Localvalue 9 */
- dissect_h450_CTInitiateArg(argument_tvb, 0, pinfo , tree, hf_h4502_CTInitiateArg);
- break;
-
+ dissect_CallTransferInitiate_PDU(argument_tvb, pinfo, tree);
+ break;
case CallTransferSetup: /* Localvalue 10 */
- dissect_h450_CTSetupArg(argument_tvb, 0, pinfo , tree, hf_h4502_CTSetupArg);
- break;
-
+ dissect_CallTransferSetup_PDU(argument_tvb, pinfo, tree);
+ break;
case CallTransferUpdate: /* Localvalue 13 */
- dissect_h450_CTUpdateArg(argument_tvb, 0, pinfo , tree, hf_h4502_CTUpdateArg);
- break;
-
+ dissect_CallTransferUpdate_PDU(argument_tvb, pinfo, tree);
+ break;
case SubaddressTransfer: /* Localvalue 14 */
- dissect_h450_SubaddressTransfer(argument_tvb, 0, pinfo , tree, hf_h4502_SubaddressTransferArg);
- break;
-
+ dissect_SubaddressTransfer_PDU(argument_tvb, pinfo, tree);
+ break;
case CallTransferComplete: /* Localvalue 12 */
- dissect_h450_CTCompleteArg(argument_tvb, 0, pinfo , tree, hf_h4502_CTCompleteArg);
- break;
-
+ dissect_CallTransferComplete_PDU(argument_tvb, pinfo, tree);
+ break;
case CallTransferActive: /* Localvalue 11 */
- dissect_h450_CTActiveArg(argument_tvb, 0, pinfo , tree, hf_h4502_CTActiveArg);
- break;
+ dissect_CallTransferActive_PDU(argument_tvb, pinfo, tree);
+ break;
/* h450.3*/
-
case ActivateDiversionQ: /* Localvalue 15 */
- dissect_h450_ActivateDiversionQArg(argument_tvb, 0, pinfo , tree, hf_h4503ActivateDiversionQArg);
- break;
+ dissect_ActivateDiversionQArg_PDU(argument_tvb, pinfo, tree);
+ break;
case DeactivateDiversionQ: /* Localvalue 16 */
dissect_h450_DeactivateDiversionQArg(argument_tvb, 0, pinfo , tree, hf_h4503DeactivateDiversionQArg);
break;
@@ -4739,13 +4803,6 @@ void proto_register_h450(void) {
{ &hf_h4501_Invoke,
{ "Invoke", "h4501.Invoke", FT_NONE, BASE_NONE,
NULL, 0, "Invoke sequence of", HFILL }},
-
- { &hf_h4502_CTActiveArg,
- { "CTActiveArg", "h4502.CTActiveArg", FT_NONE, BASE_NONE,
- NULL, 0, "CTActiveArg sequence of", HFILL }},
- { &hf_h4502_CTCompleteArg,
- { "CTCompleteArg", "h4502.CTCompleteArg", FT_NONE, BASE_NONE,
- NULL, 0, "CTCompleteArg sequence of", HFILL }},
{ &hf_h4502_CTIdentifyRes,
{ "CTIdentifyRes", "h4502.CTIdentifyRes", FT_NONE, BASE_NONE,
NULL, 0, "CTIdentifyRes sequence of", HFILL }},
@@ -4755,22 +4812,6 @@ void proto_register_h450(void) {
{ &hf_h4502_DummyArg,
{ "DummyArg", "h4502.DummyArg", FT_UINT32, BASE_DEC,
VALS(h450_DummyArg_vals), 0, "DummyArg choice", HFILL }},
- { &hf_h4502_CTInitiateArg,
- { "CTInitiateArg", "h4502.CTInitiateArg", FT_NONE, BASE_NONE,
- NULL, 0, "CTInitiateArg sequence of", HFILL }},
- { &hf_h4502_CTSetupArg,
- { "CTSetupArg", "h4502.CTSetupArg", FT_NONE, BASE_NONE,
- NULL, 0, "CTSetupArg sequence of", HFILL }},
- { &hf_h4502_CTUpdateArg,
- { "CTUpdateArg", "h4502.CTUpdateArg", FT_NONE, BASE_NONE,
- NULL, 0, "CTUpdateArg sequence of", HFILL }},
- { &hf_h4502_SubaddressTransferArg,
- { "SubaddressTransferArg", "h4502.SubaddressTransferArg", FT_NONE, BASE_NONE,
- NULL, 0, "SubaddressTransferArg sequence of", HFILL }},
-
- { &hf_h4503ActivateDiversionQArg,
- { "ActivateDiversionQArg", "h4503.ActivateDiversionQArg", FT_NONE, BASE_NONE,
- NULL, 0, "ActivateDiversionQArg sequence of", HFILL }},
{ &hf_h4503DeactivateDiversionQArg,
{ "DeactivateDiversionQArg", "h4503.DeactivateDiversionQArg", FT_NONE, BASE_NONE,
NULL, 0, "ActivateDiversionQArg sequence of", HFILL }},
@@ -4853,6 +4894,62 @@ void proto_register_h450(void) {
/*--- Included file: packet-h450-hfarr.c ---*/
#line 1 "packet-h450-hfarr.c"
+ { &hf_h450_CallTransferIdentify_PDU,
+ { "CallTransferIdentify", "h450.CallTransferIdentify",
+ FT_UINT32, BASE_DEC, VALS(h450_DummyArg_vals), 0,
+ "CallTransferIdentify", HFILL }},
+ { &hf_h450_CallTransferAbandon_PDU,
+ { "CallTransferAbandon", "h450.CallTransferAbandon",
+ FT_UINT32, BASE_DEC, VALS(h450_DummyArg_vals), 0,
+ "CallTransferAbandon", HFILL }},
+ { &hf_h450_CallTransferInitiate_PDU,
+ { "CallTransferInitiate", "h450.CallTransferInitiate",
+ FT_UINT32, BASE_DEC, VALS(h450_DummyRes_vals), 0,
+ "CallTransferInitiate", HFILL }},
+ { &hf_h450_CallTransferSetup_PDU,
+ { "CallTransferSetup", "h450.CallTransferSetup",
+ FT_UINT32, BASE_DEC, VALS(h450_DummyRes_vals), 0,
+ "CallTransferSetup", HFILL }},
+ { &hf_h450_CallTransferUpdate_PDU,
+ { "CallTransferUpdate", "h450.CallTransferUpdate",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CallTransferUpdate", HFILL }},
+ { &hf_h450_SubaddressTransfer_PDU,
+ { "SubaddressTransfer", "h450.SubaddressTransfer",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SubaddressTransfer", HFILL }},
+ { &hf_h450_CallTransferComplete_PDU,
+ { "CallTransferComplete", "h450.CallTransferComplete",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CallTransferComplete", HFILL }},
+ { &hf_h450_CallTransferActive_PDU,
+ { "CallTransferActive", "h450.CallTransferActive",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CallTransferActive", HFILL }},
+ { &hf_h450_ActivateDiversionQArg_PDU,
+ { "ActivateDiversionQArg", "h450.ActivateDiversionQArg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ActivateDiversionQArg", HFILL }},
+ { &hf_h450_ActivateDiversionQRes_PDU,
+ { "ActivateDiversionQRes", "h450.ActivateDiversionQRes",
+ FT_UINT32, BASE_DEC, VALS(h450_ActivateDiversionQRes_vals), 0,
+ "ActivateDiversionQRes", HFILL }},
+ { &hf_h450_DeactivateDiversionQRes_PDU,
+ { "DeactivateDiversionQRes", "h450.DeactivateDiversionQRes",
+ FT_UINT32, BASE_DEC, VALS(h450_DeactivateDiversionQRes_vals), 0,
+ "DeactivateDiversionQRes", HFILL }},
+ { &hf_h450_InterrogateDiversionQRes_PDU,
+ { "InterrogateDiversionQRes", "h450.InterrogateDiversionQRes",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "InterrogateDiversionQRes", HFILL }},
+ { &hf_h450_CheckRestrictionRes_PDU,
+ { "CheckRestrictionRes", "h450.CheckRestrictionRes",
+ FT_UINT32, BASE_DEC, VALS(h450_CheckRestrictionRes_vals), 0,
+ "CheckRestrictionRes", HFILL }},
+ { &hf_h450_CallReroutingRes_PDU,
+ { "CallReroutingRes", "h450.CallReroutingRes",
+ FT_UINT32, BASE_DEC, VALS(h450_CallReroutingRes_vals), 0,
+ "CallReroutingRes", HFILL }},
{ &hf_h450_networkFacilityExtension,
{ "networkFacilityExtension", "h450.networkFacilityExtension",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5763,7 +5860,7 @@ void proto_register_h450(void) {
"Extension/extensionArgument", HFILL }},
/*--- End of included file: packet-h450-hfarr.c ---*/
-#line 1051 "packet-h450-template.c"
+#line 1033 "packet-h450-template.c"
};
/* List of subtrees */
@@ -5905,7 +6002,7 @@ void proto_register_h450(void) {
&ett_h450_Extension,
/*--- End of included file: packet-h450-ettarr.c ---*/
-#line 1067 "packet-h450-template.c"
+#line 1049 "packet-h450-template.c"
};
diff --git a/epan/dissectors/packet-h450.h b/epan/dissectors/packet-h450.h
index 2bba17a7e2..638eef84c8 100644
--- a/epan/dissectors/packet-h450.h
+++ b/epan/dissectors/packet-h450.h
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
-/* ./packet-h450.h */
+/* .\packet-h450.h */
/* ../../tools/asn2eth.py -X -e -p h450 -c h450.cnf -s packet-h450-template h4501.asn */
/* Input file: packet-h450-template.h */