/* Input file: packet-gsm_map-template.c */
+#line 1 "packet-gsm_map-template.c"
/* packet-gsm_map-template.c
* Routines for GSM MobileApplication packet dissection
* Copyright 2004 - 2005 , Anders Broman <anders.broman [AT] ericsson.com>
#include <epan/prefs.h>
#include <epan/conversation.h>
#include <epan/tap.h>
+#include <epan/emem.h>
#include <stdio.h>
#include <string.h>
#include "packet-q931.h"
#include "packet-gsm_map.h"
#include "packet-gsm_a.h"
+#include "packet-tcap.h"
#define PNAME "GSM Mobile Application"
#define PSNAME "GSM_MAP"
/* 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;
/*--- 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 */
static int hf_gsm_map_na_ESRK_Request = -1; /* NULL */
static int hf_gsm_map_identity = -1; /* Identity */
static int hf_gsm_map_cancellationType = -1; /* CancellationType */
+static int hf_gsm_map_imsi_WithLMSI = -1; /* IMSI_WithLMSI */
static int hf_gsm_map_sgsn_Number = -1; /* ISDN_AddressString */
static int hf_gsm_map_freezeTMSI = -1; /* NULL */
static int hf_gsm_map_freezeP_TMSI = -1; /* NULL */
static int hf_gsm_map_accessNetworkProtocolId = -1; /* AccessNetworkProtocolId */
static int hf_gsm_map_longsignalInfo = -1; /* LongSignalInfo */
static int hf_gsm_map_suppress_T_CSI = -1; /* NULL */
-static int hf_gsm_map_imsi_WithLMSI = -1; /* IMSI_WithLMSI */
static int hf_gsm_map_HLR_List_item = -1; /* HLR_Id */
static int hf_gsm_map_SS_List_item = -1; /* SS_Code */
static int hf_gsm_map_naea_PreferredCIC = -1; /* NAEA_CIC */
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;
static int hf_gsm_map_SupportedGADShapes_ellipsoidArc = -1;
/*--- End of included file: packet-gsm_map-hf.c ---*/
-
+#line 97 "packet-gsm_map-template.c"
/* Initialize the subtree pointers */
static gint ett_gsm_map = -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;
static gint ett_gsm_map_PcsExtensions = -1;
static gint ett_gsm_map_SLR_Arg_PCS_Extensions = -1;
static gint ett_gsm_map_CancelLocationArg = -1;
+static gint ett_gsm_map_CancelLocationArgV2 = -1;
static gint ett_gsm_map_CancelLocationRes = -1;
static gint ett_gsm_map_PurgeMSArg = -1;
static gint ett_gsm_map_PurgeMSRes = -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;
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 109 "packet-gsm_map-template.c"
static dissector_table_t sms_dissector_table; /* SMS TPDU */
static dissector_handle_t data_handle;
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){
length = tvb_length(tvb);
if (length < offset)
- return NULL;
- length = length - offset;
- digit_str = g_malloc(length*2+1);
+ return "";
+ digit_str = ep_alloc((length - offset)*2+1);
while ( offset < length ){
octet = tvb_get_guint8(tvb,offset);
- digit_str[i] = ((octet & 0x0f) + 0x30);
+ digit_str[i] = ((octet & 0x0f) + '0');
i++;
/*
if (octet == 0x0f) /* odd number bytes - hit filler */
break;
- digit_str[i] = ((octet & 0x0f) + 0x30);
+ digit_str[i] = ((octet & 0x0f) + '0');
i++;
offset++;
/*--- Included file: packet-gsm_map-fn.c ---*/
-
+#line 1 "packet-gsm_map-fn.c"
/*--- Fields for imported types ---*/
-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_) {
+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"
- tvbuff_t *parameter_tvb;
- guint8 octet;
- guint8 length;
- tvbuff_t *next_tvb;
+ 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)"));
+ }
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- ¶meter_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 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;
-}
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);
}
static int
dissect_gsm_map_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+ offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
return offset;
}
+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_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 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_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_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 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_) {
+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);
- 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_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 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 },
+
+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_PrivateExtension(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,
- PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
+ Invoke_sequence, hf_index, ett_gsm_map_Invoke);
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_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 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_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_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_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 PcsExtensions_sequence[] = {
+
+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_PcsExtensions(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,
- PcsExtensions_sequence, hf_index, ett_gsm_map_PcsExtensions);
+ T_resultretres_sequence, hf_index, ett_gsm_map_T_resultretres);
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_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 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 },
+
+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_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+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,
- ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
+ ReturnResult_sequence, hf_index, ett_gsm_map_ReturnResult);
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_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 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 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 }
};
+
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);
+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_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_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 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_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_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_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);
+}
+
-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 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);
+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_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);
-}
-
-
-
-static 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_) {
-
- tvbuff_t *parameter_tvb;
- char *digit_str;
-
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- ¶meter_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);
- if (digit_str)
- g_free(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);
-}
-
-
-
-static 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_) {
-
- tvbuff_t *parameter_tvb;
- char *digit_str;
-
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- ¶meter_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);
- if (digit_str)
- g_free(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_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);
}
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);
}
static int dissect_supportedSGSN_CAMEL_Phases_flg_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_supportedSGSN_CAMEL_Phases_flg);
}
-static int dissect_tif_CSI_NotificationToCSE_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_tif_CSI_NotificationToCSE);
+static int dissect_tif_CSI_NotificationToCSE_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_tif_CSI_NotificationToCSE);
+}
+static int dissect_uplinkFree_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_uplinkFree);
+}
+static int dissect_uplinkRequest_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_uplinkRequest);
+}
+static int dissect_uplinkReleaseIndication_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_uplinkReleaseIndication);
+}
+static int dissect_releaseGroupCall_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_releaseGroupCall);
+}
+static int dissect_uplinkRequestAck_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_uplinkRequestAck);
+}
+static int dissect_uplinkRejectCommand_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_uplinkRejectCommand);
+}
+static int dissect_uplinkSeizedCommand_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_uplinkSeizedCommand);
+}
+static int dissect_uplinkReleaseCommand_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_uplinkReleaseCommand);
+}
+static int dissect_ps_LCS_NotSupportedByUE_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_ps_LCS_NotSupportedByUE);
+}
+static int dissect_gprsEnhancementsSupportIndicator_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_gprsEnhancementsSupportIndicator);
+}
+static int dissect_smsCallBarringSupportIndicator_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_smsCallBarringSupportIndicator);
+}
+static int dissect_privacyOverride_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_privacyOverride);
+}
+static int dissect_verticalCoordinateRequest_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_verticalCoordinateRequest);
+}
+static int dissect_deferredmt_lrResponseIndicator_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_deferredmt_lrResponseIndicator);
+}
+static int dissect_pseudonymIndicator_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_pseudonymIndicator);
+}
+static int dissect_userInfo_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_userInfo);
+}
+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_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,
+ ¶meter_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,
+ ¶meter_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,
+ ¶meter_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_uplinkFree_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_uplinkFree);
+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_uplinkRequest_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_uplinkRequest);
+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_uplinkReleaseIndication_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_uplinkReleaseIndication);
+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_releaseGroupCall_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_releaseGroupCall);
+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_uplinkRequestAck_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_uplinkRequestAck);
+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_uplinkRejectCommand_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_uplinkRejectCommand);
+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_uplinkSeizedCommand_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_uplinkSeizedCommand);
+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_uplinkReleaseCommand_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_uplinkReleaseCommand);
+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_ps_LCS_NotSupportedByUE_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_ps_LCS_NotSupportedByUE);
+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_gprsEnhancementsSupportIndicator_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_gprsEnhancementsSupportIndicator);
+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_smsCallBarringSupportIndicator_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_smsCallBarringSupportIndicator);
+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_privacyOverride_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_privacyOverride);
+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_verticalCoordinateRequest_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_verticalCoordinateRequest);
+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_deferredmt_lrResponseIndicator_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_deferredmt_lrResponseIndicator);
+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_pseudonymIndicator_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_pseudonymIndicator);
+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_userInfo_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_userInfo);
+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_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_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_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_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_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_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_gsm_map_SuperChargerInfo(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,
- SuperChargerInfo_choice, hf_index, ett_gsm_map_SuperChargerInfo, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ SuperChargerInfo_choice, hf_index, ett_gsm_map_SuperChargerInfo,
+ NULL);
return offset;
}
return dissect_gsm_map_SuperChargerInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_superChargerSupportedInServingNetworkEntity);
}
+
static const asn_namedbit SupportedLCS_CapabilitySets_bits[] = {
{ 0, &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet1, -1, -1, "lcsCapabilitySet1", NULL },
{ 1, &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet2, -1, -1, "lcsCapabilitySet2", NULL },
static int
dissect_gsm_map_SupportedLCS_CapabilitySets(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,
- SupportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_SupportedLCS_CapabilitySets,
- NULL);
+ SupportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_SupportedLCS_CapabilitySets,
+ NULL);
return offset;
}
return dissect_gsm_map_SupportedLCS_CapabilitySets(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additional_LCS_CapabilitySets);
}
+
static const asn_namedbit OfferedCamel4CSIs_bits[] = {
{ 0, &hf_gsm_map_OfferedCamel4CSIs_o_csi, -1, -1, "o-csi", NULL },
{ 1, &hf_gsm_map_OfferedCamel4CSIs_d_csi, -1, -1, "d-csi", NULL },
static int
dissect_gsm_map_OfferedCamel4CSIs(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,
- OfferedCamel4CSIs_bits, hf_index, ett_gsm_map_OfferedCamel4CSIs,
- NULL);
+ OfferedCamel4CSIs_bits, hf_index, ett_gsm_map_OfferedCamel4CSIs,
+ NULL);
return offset;
}
return dissect_gsm_map_OfferedCamel4CSIs(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_offeredCamel4CSIsInSGSN);
}
+
static const ber_sequence_t VLR_Capability_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_VLR_Capability(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,
- VLR_Capability_sequence, hf_index, ett_gsm_map_VLR_Capability);
+ VLR_Capability_sequence, hf_index, ett_gsm_map_VLR_Capability);
return offset;
}
-static int
+int
dissect_gsm_map_GSN_Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
NULL);
}
-static int
+
+int
dissect_gsm_map_IMEI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return dissect_gsm_map_IMEI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imei);
}
+
static const ber_sequence_t ADD_Info_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imeisv_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_skipSubscriberDataUpdate_impl },
static int
dissect_gsm_map_ADD_Info(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,
- ADD_Info_sequence, hf_index, ett_gsm_map_ADD_Info);
+ ADD_Info_sequence, hf_index, ett_gsm_map_ADD_Info);
return offset;
}
return dissect_gsm_map_ADD_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_add_info);
}
+
static const ber_sequence_t UpdateLocationArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
static int
dissect_gsm_map_UpdateLocationArg(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,
- UpdateLocationArg_sequence, hf_index, ett_gsm_map_UpdateLocationArg);
+ UpdateLocationArg_sequence, hf_index, ett_gsm_map_UpdateLocationArg);
return offset;
}
+
static const ber_sequence_t UpdateLocationRes_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_UpdateLocationRes(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,
- UpdateLocationRes_sequence, hf_index, ett_gsm_map_UpdateLocationRes);
+ UpdateLocationRes_sequence, hf_index, ett_gsm_map_UpdateLocationRes);
return offset;
}
+
static const ber_sequence_t SLR_Arg_PCS_Extensions_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRK_Request_impl },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_SLR_Arg_PCS_Extensions(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,
- SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions);
+ SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions);
return offset;
}
return dissect_gsm_map_SLR_Arg_PCS_Extensions(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_slr_Arg_PCS_Extensions);
}
+
static const ber_sequence_t SLR_ArgExtensionContainer_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_slr_Arg_PCS_Extensions_impl },
static int
dissect_gsm_map_SLR_ArgExtensionContainer(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,
- SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer);
+ SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer);
return offset;
}
return offset;
}
+
static const ber_sequence_t IMSI_WithLMSI_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_lmsi },
static int
dissect_gsm_map_IMSI_WithLMSI(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,
- IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI);
+ IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI);
return offset;
}
static int
dissect_gsm_map_Identity(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,
- Identity_choice, hf_index, ett_gsm_map_Identity, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ Identity_choice, hf_index, ett_gsm_map_Identity,
+ NULL);
return offset;
}
return dissect_gsm_map_CancellationType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cancellationType);
}
+
static const ber_sequence_t CancelLocationArg_sequence[] = {
- { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_identity },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_identity },
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cancellationType },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_CancelLocationArg(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,
- CancelLocationArg_sequence, hf_index, ett_gsm_map_CancelLocationArg);
+ CancelLocationArg_sequence, hf_index, ett_gsm_map_CancelLocationArg);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_CancelLocationArgV2_vals[] = {
+ { 0, "imsi" },
+ { 1, "imsi-WithLMSI" },
+ { 0, NULL }
+};
+
+static const ber_choice_t CancelLocationArgV2_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_imsi_WithLMSI },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_CancelLocationArgV2(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,
+ CancelLocationArgV2_choice, hf_index, ett_gsm_map_CancelLocationArgV2,
+ NULL);
return offset;
}
+
static const ber_sequence_t CancelLocationRes_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_CancelLocationRes(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,
- CancelLocationRes_sequence, hf_index, ett_gsm_map_CancelLocationRes);
+ CancelLocationRes_sequence, hf_index, ett_gsm_map_CancelLocationRes);
return offset;
}
+
static const ber_sequence_t PurgeMSArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Number_impl },
static int
dissect_gsm_map_PurgeMSArg(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,
- PurgeMSArg_sequence, hf_index, ett_gsm_map_PurgeMSArg);
+ PurgeMSArg_sequence, hf_index, ett_gsm_map_PurgeMSArg);
return offset;
}
+
static const ber_sequence_t PurgeMSRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeTMSI_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeP_TMSI_impl },
static int
dissect_gsm_map_PurgeMSRes(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,
- PurgeMSRes_sequence, hf_index, ett_gsm_map_PurgeMSRes);
+ PurgeMSRes_sequence, hf_index, ett_gsm_map_PurgeMSRes);
return offset;
}
return dissect_gsm_map_HopCounter(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_hopCounter);
}
+
static const ber_sequence_t SendIdentificationArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_tmsi },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_numberOfRequestedVectors },
static int
dissect_gsm_map_SendIdentificationArg(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,
- SendIdentificationArg_sequence, hf_index, ett_gsm_map_SendIdentificationArg);
+ SendIdentificationArg_sequence, hf_index, ett_gsm_map_SendIdentificationArg);
return offset;
}
return dissect_gsm_map_Kc(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_groupKey);
}
+
static const ber_sequence_t AuthenticationTriplet_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
static int
dissect_gsm_map_AuthenticationTriplet(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,
- AuthenticationTriplet_sequence, hf_index, ett_gsm_map_AuthenticationTriplet);
+ AuthenticationTriplet_sequence, hf_index, ett_gsm_map_AuthenticationTriplet);
return offset;
}
return dissect_gsm_map_AUTN(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_autn);
}
+
static const ber_sequence_t AuthenticationQuintuplet_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_xres },
static int
dissect_gsm_map_AuthenticationQuintuplet(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,
- AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_AuthenticationQuintuplet);
+ AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_AuthenticationQuintuplet);
return offset;
}
static int
dissect_gsm_map_AuthenticationSetList(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,
- AuthenticationSetList_choice, hf_index, ett_gsm_map_AuthenticationSetList, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ AuthenticationSetList_choice, hf_index, ett_gsm_map_AuthenticationSetList,
+ NULL);
return offset;
}
return dissect_gsm_map_Cksn(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cksn);
}
+
static const ber_sequence_t GSM_SecurityContextData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cksn },
static int
dissect_gsm_map_GSM_SecurityContextData(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,
- GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_GSM_SecurityContextData);
+ GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_GSM_SecurityContextData);
return offset;
}
return dissect_gsm_map_KSI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ksi);
}
+
static const ber_sequence_t UMTS_SecurityContextData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ck },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ik },
static int
dissect_gsm_map_UMTS_SecurityContextData(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,
- UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_UMTS_SecurityContextData);
+ UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_UMTS_SecurityContextData);
return offset;
}
static int
dissect_gsm_map_CurrentSecurityContext(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,
- CurrentSecurityContext_choice, hf_index, ett_gsm_map_CurrentSecurityContext, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ CurrentSecurityContext_choice, hf_index, ett_gsm_map_CurrentSecurityContext,
+ NULL);
return offset;
}
return dissect_gsm_map_CurrentSecurityContext(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_currentSecurityContext);
}
+
static const ber_sequence_t SendIdentificationRes_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_authenticationSetList },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_authenticationSetList },
{ BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_currentSecurityContext_impl },
{ BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_SendIdentificationRes(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,
- SendIdentificationRes_sequence, hf_index, ett_gsm_map_SendIdentificationRes);
+ SendIdentificationRes_sequence, hf_index, ett_gsm_map_SendIdentificationRes);
return offset;
}
return dissect_gsm_map_GlobalCellId(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_targetCellId);
}
+
static const ber_sequence_t PrepareHO_Arg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_targetCellId },
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired },
static int
dissect_gsm_map_PrepareHO_Arg(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,
- PrepareHO_Arg_sequence, hf_index, ett_gsm_map_PrepareHO_Arg);
+ PrepareHO_Arg_sequence, hf_index, ett_gsm_map_PrepareHO_Arg);
return offset;
}
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 377 "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,
¶meter_tvb);
+
if (!parameter_tvb)
return offset;
switch (AccessNetworkProtocolId){
break;
}
+
+
return offset;
}
static int dissect_longsignalInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_gsm_map_LongSignalInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_longsignalInfo);
}
+
static const ber_sequence_t AccessNetworkSignalInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_accessNetworkProtocolId },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_longsignalInfo },
static int
dissect_gsm_map_AccessNetworkSignalInfo(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,
- AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo);
+ AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo);
return offset;
}
return dissect_gsm_map_PermittedEncryptionAlgorithms(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_encryptionAlgorithms);
}
+
static const ber_sequence_t AllowedUMTS_Algorithms_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionAlgorithms_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionAlgorithms_impl },
static int
dissect_gsm_map_AllowedUMTS_Algorithms(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,
- AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_AllowedUMTS_Algorithms);
+ AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_AllowedUMTS_Algorithms);
return offset;
}
return dissect_gsm_map_RAB_Id(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_selectedRab_Id);
}
+
static const ber_sequence_t RadioResource_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_radioResourceInformation },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
static int
dissect_gsm_map_RadioResource(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,
- RadioResource_sequence, hf_index, ett_gsm_map_RadioResource);
+ RadioResource_sequence, hf_index, ett_gsm_map_RadioResource);
return offset;
}
return dissect_gsm_map_RANAP_ServiceHandover(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ranap_ServiceHandover);
}
+
static const ber_sequence_t BSSMAP_ServiceHandoverInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_bssmap_ServiceHandover },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
static int
dissect_gsm_map_BSSMAP_ServiceHandoverInfo(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,
- BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_BSSMAP_ServiceHandoverInfo);
+ BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_BSSMAP_ServiceHandoverInfo);
return offset;
}
}
+
static int
dissect_gsm_map_ASCI_CallReference(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return dissect_gsm_map_Codec(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_currentlyUsedCodec);
}
+
static const ber_sequence_t CodecList_sequence[] = {
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_codec1_impl },
{ BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec2_impl },
static int
dissect_gsm_map_CodecList(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,
- CodecList_sequence, hf_index, ett_gsm_map_CodecList);
+ CodecList_sequence, hf_index, ett_gsm_map_CodecList);
return offset;
}
return dissect_gsm_map_CodecList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geranCodecList);
}
+
static const ber_sequence_t SupportedCodecsList_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_utranCodecList_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geranCodecList_impl },
static int
dissect_gsm_map_SupportedCodecsList(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,
- SupportedCodecsList_sequence, hf_index, ett_gsm_map_SupportedCodecsList);
+ SupportedCodecsList_sequence, hf_index, ett_gsm_map_SupportedCodecsList);
return offset;
}
}
+
static int
dissect_gsm_map_UESBI_IuA(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,
- NULL, hf_index, -1,
- NULL);
+ NULL, hf_index, -1,
+ NULL);
return offset;
}
}
+
static int
dissect_gsm_map_UESBI_IuB(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,
- NULL, hf_index, -1,
- NULL);
+ NULL, hf_index, -1,
+ NULL);
return offset;
}
return dissect_gsm_map_UESBI_IuB(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uesbi_IuB);
}
+
static const ber_sequence_t UESBI_Iu_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuA_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuB_impl },
static int
dissect_gsm_map_UESBI_Iu(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,
- UESBI_Iu_sequence, hf_index, ett_gsm_map_UESBI_Iu);
+ UESBI_Iu_sequence, hf_index, ett_gsm_map_UESBI_Iu);
return offset;
}
return dissect_gsm_map_UESBI_Iu(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bmuef);
}
+
static const ber_sequence_t PrepareHO_ArgV3_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetCellId_impl },
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired },
static int
dissect_gsm_map_PrepareHO_ArgV3(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,
- PrepareHO_ArgV3_sequence, hf_index, ett_gsm_map_PrepareHO_ArgV3);
+ PrepareHO_ArgV3_sequence, hf_index, ett_gsm_map_PrepareHO_ArgV3);
return offset;
}
+
static const ber_sequence_t PrepareHO_Res_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_handoverNumber },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
static int
dissect_gsm_map_PrepareHO_Res(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,
- PrepareHO_Res_sequence, hf_index, ett_gsm_map_PrepareHO_Res);
+ PrepareHO_Res_sequence, hf_index, ett_gsm_map_PrepareHO_Res);
return offset;
}
return offset;
}
+
static const ber_sequence_t RelocationNumber_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_handoverNumber },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
static int
dissect_gsm_map_RelocationNumber(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,
- RelocationNumber_sequence, hf_index, ett_gsm_map_RelocationNumber);
+ RelocationNumber_sequence, hf_index, ett_gsm_map_RelocationNumber);
return offset;
}
return dissect_gsm_map_ChosenEncryptionAlgorithm(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_encryptionAlgorithm);
}
+
static const ber_sequence_t SelectedUMTS_Algorithms_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionAlgorithm_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionAlgorithm_impl },
static int
dissect_gsm_map_SelectedUMTS_Algorithms(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,
- SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_SelectedUMTS_Algorithms);
+ SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_SelectedUMTS_Algorithms);
return offset;
}
return dissect_gsm_map_ChosenSpeechVersion(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenSpeechVersion);
}
+
static const ber_sequence_t ChosenRadioResourceInformation_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannelInfo_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenSpeechVersion_impl },
static int
dissect_gsm_map_ChosenRadioResourceInformation(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,
- ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ChosenRadioResourceInformation);
+ ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ChosenRadioResourceInformation);
return offset;
}
return dissect_gsm_map_ChosenRadioResourceInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenRadioResourceInformation);
}
+
static const ber_sequence_t PrepareHO_ResV3_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_handoverNumber_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_relocationNumberList_impl },
static int
dissect_gsm_map_PrepareHO_ResV3(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,
- PrepareHO_ResV3_sequence, hf_index, ett_gsm_map_PrepareHO_ResV3);
+ PrepareHO_ResV3_sequence, hf_index, ett_gsm_map_PrepareHO_ResV3);
return offset;
}
return offset;
}
+
static const ber_sequence_t SendEndSignalArgV3_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_SendEndSignalArgV3(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,
- SendEndSignalArgV3_sequence, hf_index, ett_gsm_map_SendEndSignalArgV3);
+ SendEndSignalArgV3_sequence, hf_index, ett_gsm_map_SendEndSignalArgV3);
return offset;
}
+
static const ber_sequence_t SendEndSignalRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_SendEndSignalRes(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,
- SendEndSignalRes_sequence, hf_index, ett_gsm_map_SendEndSignalRes);
+ SendEndSignalRes_sequence, hf_index, ett_gsm_map_SendEndSignalRes);
return offset;
}
return dissect_gsm_map_SelectedGSM_Algorithm(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_selectedGSM_Algorithm);
}
+
static const ber_sequence_t ProcessAccessSignallingArgV3_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedUMTS_Algorithms_impl },
static int
dissect_gsm_map_ProcessAccessSignallingArgV3(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,
- ProcessAccessSignallingArgV3_sequence, hf_index, ett_gsm_map_ProcessAccessSignallingArgV3);
+ ProcessAccessSignallingArgV3_sequence, hf_index, ett_gsm_map_ProcessAccessSignallingArgV3);
return offset;
}
return dissect_gsm_map_KeyStatus(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_keyStatus);
}
+
static const ber_sequence_t ForwardAccessSignallingArgV3_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_integrityProtectionInfo },
static int
dissect_gsm_map_ForwardAccessSignallingArgV3(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,
- ForwardAccessSignallingArgV3_sequence, hf_index, ett_gsm_map_ForwardAccessSignallingArgV3);
+ ForwardAccessSignallingArgV3_sequence, hf_index, ett_gsm_map_ForwardAccessSignallingArgV3);
return offset;
}
+
static const ber_sequence_t PrepareSubsequentHOArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetCellId },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetMSC_Number },
static int
dissect_gsm_map_PrepareSubsequentHOArg(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,
- PrepareSubsequentHOArg_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOArg);
+ PrepareSubsequentHOArg_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOArg);
return offset;
}
+
static const ber_sequence_t PrepareSubsequentHOArgV3_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetCellId_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_targetMSC_Number_impl },
static int
dissect_gsm_map_PrepareSubsequentHOArgV3(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,
- PrepareSubsequentHOArgV3_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOArgV3);
+ PrepareSubsequentHOArgV3_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOArgV3);
return offset;
}
+
static const ber_sequence_t PrepareSubsequentHOResV3_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_PrepareSubsequentHOResV3(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,
- PrepareSubsequentHOResV3_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOResV3);
+ PrepareSubsequentHOResV3_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOResV3);
return offset;
}
+
static int
dissect_gsm_map_SendAuthenticationInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return offset;
}
+
static const ber_sequence_t Re_synchronisationInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_auts },
static int
dissect_gsm_map_Re_synchronisationInfo(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,
- Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_Re_synchronisationInfo);
+ Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_Re_synchronisationInfo);
return offset;
}
return dissect_gsm_map_PLMN_Id(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestingPLMN_Id);
}
+
static const ber_sequence_t SendAuthenticationInfoArgV2_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberOfRequestedVectors },
static int
dissect_gsm_map_SendAuthenticationInfoArgV2(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,
- SendAuthenticationInfoArgV2_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoArgV2);
+ SendAuthenticationInfoArgV2_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoArgV2);
return offset;
}
+
static const ber_sequence_t SendAuthenticationInfoRes_item_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
static int
dissect_gsm_map_SendAuthenticationInfoRes_item(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,
- SendAuthenticationInfoRes_item_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoRes_item);
+ SendAuthenticationInfoRes_item_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoRes_item);
return offset;
}
return offset;
}
+
static const ber_sequence_t SendAuthenticationInfoResV3_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_authenticationSetList },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_authenticationSetList },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
dissect_gsm_map_SendAuthenticationInfoResV3(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,
- SendAuthenticationInfoResV3_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoResV3);
+ SendAuthenticationInfoResV3_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoResV3);
return offset;
}
+
static int
dissect_gsm_map_CheckIMEIArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_IMEI(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return offset;
}
+
static const asn_namedbit RequestedEquipmentInfo_bits[] = {
{ 0, &hf_gsm_map_RequestedEquipmentInfo_equipmentStatus, -1, -1, "equipmentStatus", NULL },
{ 1, &hf_gsm_map_RequestedEquipmentInfo_bmuef, -1, -1, "bmuef", NULL },
static int
dissect_gsm_map_RequestedEquipmentInfo(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,
- RequestedEquipmentInfo_bits, hf_index, ett_gsm_map_RequestedEquipmentInfo,
- NULL);
+ RequestedEquipmentInfo_bits, hf_index, ett_gsm_map_RequestedEquipmentInfo,
+ NULL);
return offset;
}
return dissect_gsm_map_RequestedEquipmentInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_requestedEquipmentInfo);
}
+
static const ber_sequence_t CheckIMEIArgV2_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imei },
{ BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_requestedEquipmentInfo },
static int
dissect_gsm_map_CheckIMEIArgV2(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,
- CheckIMEIArgV2_sequence, hf_index, ett_gsm_map_CheckIMEIArgV2);
+ CheckIMEIArgV2_sequence, hf_index, ett_gsm_map_CheckIMEIArgV2);
return offset;
}
return dissect_gsm_map_EquipmentStatus(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_equipmentStatus);
}
+
static const ber_sequence_t CheckIMEIRes_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_equipmentStatus },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bmuef },
static int
dissect_gsm_map_CheckIMEIRes(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,
- CheckIMEIRes_sequence, hf_index, ett_gsm_map_CheckIMEIRes);
+ CheckIMEIRes_sequence, hf_index, ett_gsm_map_CheckIMEIRes);
return offset;
}
static int
dissect_gsm_map_BasicService(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,
- BasicService_choice, hf_index, ett_gsm_map_BasicService, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ BasicService_choice, hf_index, ett_gsm_map_BasicService,
+ NULL);
return offset;
}
static const ber_sequence_t BasicServiceGroupList_sequence_of[1] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceGroupList_item },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceGroupList_item },
};
static int
return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ext_basicServiceGroupList);
}
+
static const asn_namedbit ODB_GeneralData_bits[] = {
{ 0, &hf_gsm_map_ODB_GeneralData_allOG_CallsBarred, -1, -1, "allOG-CallsBarred", NULL },
{ 1, &hf_gsm_map_ODB_GeneralData_internationalOGCallsBarred, -1, -1, "internationalOGCallsBarred", NULL },
static int
dissect_gsm_map_ODB_GeneralData(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,
- ODB_GeneralData_bits, hf_index, ett_gsm_map_ODB_GeneralData,
- NULL);
+ ODB_GeneralData_bits, hf_index, ett_gsm_map_ODB_GeneralData,
+ NULL);
return offset;
}
return dissect_gsm_map_ODB_GeneralData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_GeneralData);
}
+
static const asn_namedbit ODB_HPLMN_Data_bits[] = {
{ 0, &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType1, -1, -1, "plmn-SpecificBarringType1", NULL },
{ 1, &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType2, -1, -1, "plmn-SpecificBarringType2", NULL },
static int
dissect_gsm_map_ODB_HPLMN_Data(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,
- ODB_HPLMN_Data_bits, hf_index, ett_gsm_map_ODB_HPLMN_Data,
- NULL);
+ ODB_HPLMN_Data_bits, hf_index, ett_gsm_map_ODB_HPLMN_Data,
+ NULL);
return offset;
}
return dissect_gsm_map_DefaultCallHandling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultCallHandling);
}
+
static const ber_sequence_t BcsmCamelTDPData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_bcsmTriggerDetectionPoint },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
static int
dissect_gsm_map_BcsmCamelTDPData(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,
- BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_BcsmCamelTDPData);
+ BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_BcsmCamelTDPData);
return offset;
}
return dissect_gsm_map_O_BcsmTriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmTriggerDetectionPoint);
}
+
static const ber_sequence_t O_BcsmCamelTDPData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
static int
dissect_gsm_map_O_BcsmCamelTDPData(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,
- O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDPData);
+ O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDPData);
return offset;
}
return dissect_gsm_map_CamelCapabilityHandling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelCapabilityHandling);
}
+
static const ber_sequence_t O_CSI_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_BcsmCamelTDPDataList },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_O_CSI(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,
- O_CSI_sequence, hf_index, ett_gsm_map_O_CSI);
+ O_CSI_sequence, hf_index, ett_gsm_map_O_CSI);
return offset;
}
-static int
+int
dissect_gsm_map_SS_Code(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);
}
-static const value_string gsm_map_Ext_BasicServiceCode_vals[] = {
+const value_string gsm_map_Ext_BasicServiceCode_vals[] = {
{ 2, "ext-BearerService" },
{ 3, "ext-Teleservice" },
{ 0, NULL }
{ 0, 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_Ext_BasicServiceCode(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,
- Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode,
+ NULL);
return offset;
}
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 295 "gsmmap.cnf"
/* Note Ext-SS-Status can have more than one byte */
tvbuff_t *parameter_tvb;
guint8 octet;
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- ¶meter_tvb);
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
if (!parameter_tvb)
return offset;
+
return offset;
}
static int dissect_ext_ss_Status(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-static int
+int
dissect_gsm_map_ISDN_SubaddressString(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);
}
+
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 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);
proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
+
return offset;
}
static int dissect_ext_forwardingOptions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-static int
+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 245 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
char *digit_str;
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- ¶meter_tvb);
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
if (!parameter_tvb)
return offset;
digit_str = unpack_digits(parameter_tvb, 1);
proto_tree_add_string(tree, hf_gsm_map_address_digits, parameter_tvb, 1, -1, digit_str);
- if (digit_str)
- g_free(digit_str);
+
return offset;
}
+
static int
dissect_gsm_map_FTN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return dissect_gsm_map_FTN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_longForwardedToNumber);
}
+
static const ber_sequence_t Ext_ForwFeature_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService },
{ BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl },
{ BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
{ BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
static int
dissect_gsm_map_Ext_ForwFeature(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,
- Ext_ForwFeature_sequence, hf_index, ett_gsm_map_Ext_ForwFeature);
+ Ext_ForwFeature_sequence, hf_index, ett_gsm_map_Ext_ForwFeature);
return offset;
}
return dissect_gsm_map_Ext_ForwFeatureList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ext_forwardingFeatureList);
}
+
static const ber_sequence_t Ext_ForwInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_forwardingFeatureList },
static int
dissect_gsm_map_Ext_ForwInfo(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,
- Ext_ForwInfo_sequence, hf_index, ett_gsm_map_Ext_ForwInfo);
+ Ext_ForwInfo_sequence, hf_index, ett_gsm_map_Ext_ForwInfo);
return offset;
}
return dissect_gsm_map_Ext_ForwInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ext_forwardingInfo);
}
+
static const ber_sequence_t Ext_CallBarringFeature_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService },
{ BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_Ext_CallBarringFeature(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,
- Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_Ext_CallBarringFeature);
+ Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_Ext_CallBarringFeature);
return offset;
}
return dissect_gsm_map_Ext_CallBarFeatureList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ext_callBarringFeatureList);
}
+
static const ber_sequence_t Ext_CallBarInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_callBarringFeatureList },
static int
dissect_gsm_map_Ext_CallBarInfo(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,
- Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_Ext_CallBarInfo);
+ Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_Ext_CallBarInfo);
return offset;
}
-static int
+int
dissect_gsm_map_CUG_Index(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);
-static int
+int
dissect_gsm_map_CUG_Interlock(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);
static const ber_sequence_t Ext_BasicServiceGroupList_sequence_of[1] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_Ext_BasicServiceGroupList_item },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_Ext_BasicServiceGroupList_item },
};
static int
return dissect_gsm_map_Ext_BasicServiceGroupList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroupList);
}
+
static const ber_sequence_t CUG_Subscription_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_cug_Index },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
static int
dissect_gsm_map_CUG_Subscription(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,
- CUG_Subscription_sequence, hf_index, ett_gsm_map_CUG_Subscription);
+ CUG_Subscription_sequence, hf_index, ett_gsm_map_CUG_Subscription);
return offset;
}
return dissect_gsm_map_InterCUG_Restrictions(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_interCUG_Restrictions);
}
+
static const ber_sequence_t CUG_Feature_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_preferentialCUG_Indicator },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_interCUG_Restrictions },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_CUG_Feature(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,
- CUG_Feature_sequence, hf_index, ett_gsm_map_CUG_Feature);
+ CUG_Feature_sequence, hf_index, ett_gsm_map_CUG_Feature);
return offset;
}
return dissect_gsm_map_CUG_FeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_FeatureList);
}
+
static const ber_sequence_t CUG_Info_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_SubscriptionList },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_FeatureList },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_CUG_Info(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,
- CUG_Info_sequence, hf_index, ett_gsm_map_CUG_Info);
+ CUG_Info_sequence, hf_index, ett_gsm_map_CUG_Info);
return offset;
}
static int
dissect_gsm_map_SS_SubscriptionOption(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,
- SS_SubscriptionOption_choice, hf_index, ett_gsm_map_SS_SubscriptionOption, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ SS_SubscriptionOption_choice, hf_index, ett_gsm_map_SS_SubscriptionOption,
+ NULL);
return offset;
}
return dissect_gsm_map_SS_SubscriptionOption(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_SubscriptionOption);
}
+
static const ber_sequence_t Ext_SS_Data_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
{ BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
{ BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_Ext_SS_Data(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,
- Ext_SS_Data_sequence, hf_index, ett_gsm_map_Ext_SS_Data);
+ Ext_SS_Data_sequence, hf_index, ett_gsm_map_Ext_SS_Data);
return offset;
}
return dissect_gsm_map_EMLPP_Priority(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_priority);
}
+
static const ber_sequence_t EMLPP_Info_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_maximumentitledPriority },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
static int
dissect_gsm_map_EMLPP_Info(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,
- EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info);
+ EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info);
return offset;
}
static int
dissect_gsm_map_Ext_SS_Info(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,
- Ext_SS_Info_choice, hf_index, ett_gsm_map_Ext_SS_Info, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ Ext_SS_Info_choice, hf_index, ett_gsm_map_Ext_SS_Info,
+ NULL);
return offset;
}
static const ber_sequence_t Ext_SS_InfoList_sequence_of[1] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_Ext_SS_InfoList_item },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_Ext_SS_InfoList_item },
};
static int
return dissect_gsm_map_Ext_SS_InfoList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_provisionedSS);
}
+
static const ber_sequence_t ODB_Data_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_odb_GeneralData },
{ BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_odb_HPLMN_Data },
static int
dissect_gsm_map_ODB_Data(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,
- ODB_Data_sequence, hf_index, ett_gsm_map_ODB_Data);
+ ODB_Data_sequence, hf_index, ett_gsm_map_ODB_Data);
return offset;
}
}
+
static int
dissect_gsm_map_GroupId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return dissect_gsm_map_GroupId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupid);
}
+
static const ber_sequence_t VoiceBroadcastData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupid },
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_broadcastInitEntitlement },
static int
dissect_gsm_map_VoiceBroadcastData(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,
- VoiceBroadcastData_sequence, hf_index, ett_gsm_map_VoiceBroadcastData);
+ VoiceBroadcastData_sequence, hf_index, ett_gsm_map_VoiceBroadcastData);
return offset;
}
return dissect_gsm_map_VBSDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vbsSubscriptionData);
}
+
static const ber_sequence_t VoiceGroupCallData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupId },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_VoiceGroupCallData(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,
- VoiceGroupCallData_sequence, hf_index, ett_gsm_map_VoiceGroupCallData);
+ VoiceGroupCallData_sequence, hf_index, ett_gsm_map_VoiceGroupCallData);
return offset;
}
return dissect_gsm_map_SS_EventList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventList);
}
+
static const ber_sequence_t SS_CamelData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_EventList },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsmSCF_Address },
static int
dissect_gsm_map_SS_CamelData(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_CamelData_sequence, hf_index, ett_gsm_map_SS_CamelData);
+ SS_CamelData_sequence, hf_index, ett_gsm_map_SS_CamelData);
return offset;
}
return dissect_gsm_map_SS_CamelData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_CamelData);
}
+
static const ber_sequence_t SS_CSI_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_CamelData },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_SS_CSI(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_CSI_sequence, hf_index, ett_gsm_map_SS_CSI);
+ SS_CSI_sequence, hf_index, ett_gsm_map_SS_CSI);
return offset;
}
return dissect_gsm_map_DestinationNumberLengthList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberLengthList);
}
+
static const ber_sequence_t DestinationNumberCriteria_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_matchType_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberList_impl },
static int
dissect_gsm_map_DestinationNumberCriteria(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,
- DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_DestinationNumberCriteria);
+ DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_DestinationNumberCriteria);
return offset;
}
static const ber_sequence_t BasicServiceCriteria_sequence_of[1] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceCriteria_item },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceCriteria_item },
};
static int
return dissect_gsm_map_O_CauseValueCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_CauseValueCriteria);
}
+
static const ber_sequence_t O_BcsmCamelTDP_Criteria_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberCriteria_impl },
static int
dissect_gsm_map_O_BcsmCamelTDP_Criteria(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,
- O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDP_Criteria);
+ O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDP_Criteria);
return offset;
}
return dissect_gsm_map_MobilityTriggers(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mobilityTriggers);
}
+
static const ber_sequence_t M_CSI_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mobilityTriggers },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
static int
dissect_gsm_map_M_CSI(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,
- M_CSI_sequence, hf_index, ett_gsm_map_M_CSI);
+ M_CSI_sequence, hf_index, ett_gsm_map_M_CSI);
return offset;
}
return dissect_gsm_map_DefaultSMS_Handling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultSMS_Handling);
}
+
static const ber_sequence_t SMS_CAMEL_TDP_Data_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sms_TriggerDetectionPoint_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
static int
dissect_gsm_map_SMS_CAMEL_TDP_Data(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,
- SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_SMS_CAMEL_TDP_Data);
+ SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_SMS_CAMEL_TDP_Data);
return offset;
}
return dissect_gsm_map_SMS_CAMEL_TDP_DataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sms_CAMEL_TDP_DataList);
}
+
static const ber_sequence_t SMS_CSI_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sms_CAMEL_TDP_DataList_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
static int
dissect_gsm_map_SMS_CSI(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,
- SMS_CSI_sequence, hf_index, ett_gsm_map_SMS_CSI);
+ SMS_CSI_sequence, hf_index, ett_gsm_map_SMS_CSI);
return offset;
}
return dissect_gsm_map_T_BcsmTriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_t_BcsmTriggerDetectionPoint);
}
+
static const ber_sequence_t T_BcsmCamelTDPData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BcsmTriggerDetectionPoint },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
static int
dissect_gsm_map_T_BcsmCamelTDPData(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_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_T_BcsmCamelTDPData);
+ T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_T_BcsmCamelTDPData);
return offset;
}
return dissect_gsm_map_T_BcsmCamelTDPDataList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_t_BcsmCamelTDPDataList);
}
+
static const ber_sequence_t T_CSI_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_T_CSI(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_CSI_sequence, hf_index, ett_gsm_map_T_CSI);
+ T_CSI_sequence, hf_index, ett_gsm_map_T_CSI);
return offset;
}
return dissect_gsm_map_T_CauseValueCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_t_CauseValueCriteria);
}
+
static const ber_sequence_t T_BCSM_CAMEL_TDP_Criteria_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BCSM_TriggerDetectionPoint },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl },
static int
dissect_gsm_map_T_BCSM_CAMEL_TDP_Criteria(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_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_T_BCSM_CAMEL_TDP_Criteria);
+ T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_T_BCSM_CAMEL_TDP_Criteria);
return offset;
}
return dissect_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList);
}
+
static const ber_sequence_t DP_AnalysedInfoCriterium_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_dialledNumber },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
static int
dissect_gsm_map_DP_AnalysedInfoCriterium(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,
- DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_DP_AnalysedInfoCriterium);
+ DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_DP_AnalysedInfoCriterium);
return offset;
}
return dissect_gsm_map_DP_AnalysedInfoCriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_dp_AnalysedInfoCriteriaList);
}
+
static const ber_sequence_t D_CSI_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dp_AnalysedInfoCriteriaList_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
static int
dissect_gsm_map_D_CSI(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,
- D_CSI_sequence, hf_index, ett_gsm_map_D_CSI);
+ D_CSI_sequence, hf_index, ett_gsm_map_D_CSI);
return offset;
}
return dissect_gsm_map_TPDU_TypeCriterion(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_tpdu_TypeCriterion);
}
+
static const ber_sequence_t MT_smsCAMELTDP_Criteria_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sms_TriggerDetectionPoint },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tpdu_TypeCriterion_impl },
static int
dissect_gsm_map_MT_smsCAMELTDP_Criteria(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,
- MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_MT_smsCAMELTDP_Criteria);
+ MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_MT_smsCAMELTDP_Criteria);
return offset;
}
return dissect_gsm_map_MT_smsCAMELTDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mt_smsCAMELTDP_CriteriaList);
}
+
static const ber_sequence_t VlrCamelSubscriptionInfo_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_VlrCamelSubscriptionInfo(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,
- VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_VlrCamelSubscriptionInfo);
+ VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_VlrCamelSubscriptionInfo);
return offset;
}
return dissect_gsm_map_NAEA_CIC(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_naea_PreferredCIC);
}
+
static const ber_sequence_t NAEA_PreferredCI_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_naea_PreferredCIC_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_NAEA_PreferredCI(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,
- NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI);
+ NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI);
return offset;
}
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 432 "gsmmap.cnf"
guint8 pdp_type_org;
tvbuff_t *parameter_tvb;
+
offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
¶meter_tvb);
+
if (!parameter_tvb)
return offset;
proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,FALSE);
default:
break;
}
+
+
+
return offset;
}
static int dissect_pdp_Type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-static int
+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 458 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
+
offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
¶meter_tvb);
if (!parameter_tvb)
return offset;
- de_sm_qos(parameter_tvb, tree, 0, 3, NULL);
+ de_sm_qos(parameter_tvb, tree, 0, 3, NULL,0);
+
+
return offset;
}
-static int
+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 473 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
+
offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
¶meter_tvb);
if (!parameter_tvb)
return offset;
- de_sm_qos(parameter_tvb, tree, 0, 9, NULL);
+ de_sm_qos(parameter_tvb, tree, 0, 9, NULL, 0);
+
+
return offset;
}
-static int
+int
dissect_gsm_map_Ext2_QoS_Subscribed(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 dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos2_Negotiated);
}
+
static const ber_sequence_t PDP_Context_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pdp_ContextId },
{ BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl },
static int
dissect_gsm_map_PDP_Context(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,
- PDP_Context_sequence, hf_index, ett_gsm_map_PDP_Context);
+ PDP_Context_sequence, hf_index, ett_gsm_map_PDP_Context);
return offset;
}
return dissect_gsm_map_GPRSDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsDataList);
}
+
static const ber_sequence_t GPRSSubscriptionData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprsDataList_impl },
static int
dissect_gsm_map_GPRSSubscriptionData(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,
- GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_GPRSSubscriptionData);
+ GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_GPRSSubscriptionData);
return offset;
}
-static int
+int
dissect_gsm_map_LSAIdentity(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 dissect_gsm_map_LSAAttributes(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaAttributes);
}
+
static const ber_sequence_t LSAData_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lsaIdentity_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lsaAttributes_impl },
static int
dissect_gsm_map_LSAData(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,
- LSAData_sequence, hf_index, ett_gsm_map_LSAData);
+ LSAData_sequence, hf_index, ett_gsm_map_LSAData);
return offset;
}
return dissect_gsm_map_LSADataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaDataList);
}
+
static const ber_sequence_t LSAInformation_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaOnlyAccessIndicator_impl },
static int
dissect_gsm_map_LSAInformation(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,
- LSAInformation_sequence, hf_index, ett_gsm_map_LSAInformation);
+ LSAInformation_sequence, hf_index, ett_gsm_map_LSAInformation);
return offset;
}
}
-static const value_string gsm_map_NotificationToMSUser_vals[] = {
+const value_string gsm_map_NotificationToMSUser_vals[] = {
{ 0, "notifyLocationAllowed" },
{ 1, "notifyAndVerify-LocationAllowedIfNoResponse" },
{ 2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
};
-static int
+int
dissect_gsm_map_NotificationToMSUser(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 dissect_gsm_map_NotificationToMSUser(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notificationToMSUser);
}
+
static const ber_sequence_t LCSClientExternalID_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalAddress_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_LCSClientExternalID(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,
- LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID);
+ LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID);
return offset;
}
return dissect_gsm_map_GMLC_Restriction(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_Restriction);
}
+
static const ber_sequence_t ExternalClient_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_clientIdentity },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_Restriction_impl },
static int
dissect_gsm_map_ExternalClient(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,
- ExternalClient_sequence, hf_index, ett_gsm_map_ExternalClient);
+ ExternalClient_sequence, hf_index, ett_gsm_map_ExternalClient);
return offset;
}
-static int
+int
dissect_gsm_map_LCSServiceTypeID(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 dissect_gsm_map_LCSServiceTypeID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsServiceTypeID);
}
+
static const ber_sequence_t ServiceType_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceTypeIdentity },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_Restriction_impl },
static int
dissect_gsm_map_ServiceType(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,
- ServiceType_sequence, hf_index, ett_gsm_map_ServiceType);
+ ServiceType_sequence, hf_index, ett_gsm_map_ServiceType);
return offset;
}
return dissect_gsm_map_ServiceTypeList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceTypeList);
}
+
static const ber_sequence_t LCS_PrivacyClass_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ext_ss_Status },
static int
dissect_gsm_map_LCS_PrivacyClass(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,
- LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_LCS_PrivacyClass);
+ LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_LCS_PrivacyClass);
return offset;
}
return dissect_gsm_map_LCS_PrivacyExceptionList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_add_lcs_PrivacyExceptionList);
}
+
static const ber_sequence_t MOLR_Class_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ext_ss_Status },
static int
dissect_gsm_map_MOLR_Class(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,
- MOLR_Class_sequence, hf_index, ett_gsm_map_MOLR_Class);
+ MOLR_Class_sequence, hf_index, ett_gsm_map_MOLR_Class);
return offset;
}
return dissect_gsm_map_MOLR_List(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_molr_List);
}
+
static const ber_sequence_t LCSInformation_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_List_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_PrivacyExceptionList_impl },
static int
dissect_gsm_map_LCSInformation(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,
- LCSInformation_sequence, hf_index, ett_gsm_map_LCSInformation);
+ LCSInformation_sequence, hf_index, ett_gsm_map_LCSInformation);
return offset;
}
return dissect_gsm_map_MC_Bearers(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_nbrSN);
}
+
static const ber_sequence_t MC_SS_Info_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl },
static int
dissect_gsm_map_MC_SS_Info(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,
- MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info);
+ MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info);
return offset;
}
return dissect_gsm_map_DefaultGPRS_Handling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultSessionHandling);
}
+
static const ber_sequence_t GPRS_CamelTDPData_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprs_TriggerDetectionPoint_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
static int
dissect_gsm_map_GPRS_CamelTDPData(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,
- GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_GPRS_CamelTDPData);
+ GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_GPRS_CamelTDPData);
return offset;
}
return dissect_gsm_map_GPRS_CamelTDPDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_CamelTDPDataList);
}
+
static const ber_sequence_t GPRS_CSI_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CamelTDPDataList_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
static int
dissect_gsm_map_GPRS_CSI(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,
- GPRS_CSI_sequence, hf_index, ett_gsm_map_GPRS_CSI);
+ GPRS_CSI_sequence, hf_index, ett_gsm_map_GPRS_CSI);
return offset;
}
return dissect_gsm_map_GPRS_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_CSI);
}
+
static const ber_sequence_t MG_CSI_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mobilityTriggers },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
static int
dissect_gsm_map_MG_CSI(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,
- MG_CSI_sequence, hf_index, ett_gsm_map_MG_CSI);
+ MG_CSI_sequence, hf_index, ett_gsm_map_MG_CSI);
return offset;
}
return dissect_gsm_map_MG_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mg_csi);
}
+
static const ber_sequence_t SGSN_CAMEL_SubscriptionInfo_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CSI_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_sms_CSI_impl },
static int
dissect_gsm_map_SGSN_CAMEL_SubscriptionInfo(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,
- SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_SGSN_CAMEL_SubscriptionInfo);
+ SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_SGSN_CAMEL_SubscriptionInfo);
return offset;
}
return dissect_gsm_map_SGSN_CAMEL_SubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_CAMEL_SubscriptionInfo);
}
+
static const asn_namedbit AccessRestrictionData_bits[] = {
{ 0, &hf_gsm_map_AccessRestrictionData_utranNotAllowed, -1, -1, "utranNotAllowed", NULL },
{ 1, &hf_gsm_map_AccessRestrictionData_geranNotAllowed, -1, -1, "geranNotAllowed", NULL },
static int
dissect_gsm_map_AccessRestrictionData(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,
- AccessRestrictionData_bits, hf_index, ett_gsm_map_AccessRestrictionData,
- NULL);
+ AccessRestrictionData_bits, hf_index, ett_gsm_map_AccessRestrictionData,
+ NULL);
return offset;
}
return dissect_gsm_map_AccessRestrictionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_accessRestrictionData);
}
+
static const ber_sequence_t InsertSubscriberDataArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
static int
dissect_gsm_map_InsertSubscriberDataArg(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,
- InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_InsertSubscriberDataArg);
+ InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_InsertSubscriberDataArg);
return offset;
}
return dissect_gsm_map_RegionalSubscriptionResponse(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionResponse);
}
+
static const ber_sequence_t InsertSubscriberDataRes_sequence[] = {
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl },
{ BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerServiceList_impl },
static int
dissect_gsm_map_InsertSubscriberDataRes(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,
- InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_InsertSubscriberDataRes);
+ InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_InsertSubscriberDataRes);
return offset;
}
static const ber_sequence_t BasicServiceList_sequence_of[1] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceList_item },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceList_item },
};
static int
static int
dissect_gsm_map_GPRSSubscriptionDataWithdraw(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,
- GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_GPRSSubscriptionDataWithdraw, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_GPRSSubscriptionDataWithdraw,
+ NULL);
return offset;
}
static int
dissect_gsm_map_LSAInformationWithdraw(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,
- LSAInformationWithdraw_choice, hf_index, ett_gsm_map_LSAInformationWithdraw, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ LSAInformationWithdraw_choice, hf_index, ett_gsm_map_LSAInformationWithdraw,
+ NULL);
return offset;
}
return dissect_gsm_map_LSAInformationWithdraw(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaInformationWithdraw);
}
+
static const asn_namedbit SpecificCSI_Withdraw_bits[] = {
{ 0, &hf_gsm_map_SpecificCSI_Withdraw_o_csi, -1, -1, "o-csi", NULL },
{ 1, &hf_gsm_map_SpecificCSI_Withdraw_ss_csi, -1, -1, "ss-csi", NULL },
static int
dissect_gsm_map_SpecificCSI_Withdraw(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,
- SpecificCSI_Withdraw_bits, hf_index, ett_gsm_map_SpecificCSI_Withdraw,
- NULL);
+ SpecificCSI_Withdraw_bits, hf_index, ett_gsm_map_SpecificCSI_Withdraw,
+ NULL);
return offset;
}
return dissect_gsm_map_SpecificCSI_Withdraw(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_specificCSIDeletedList);
}
+
static const ber_sequence_t DeleteSubscriberDataArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceList_impl },
static int
dissect_gsm_map_DeleteSubscriberDataArg(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,
- DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataArg);
+ DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataArg);
return offset;
}
+
static const ber_sequence_t DeleteSubscriberDataRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_DeleteSubscriberDataRes(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,
- DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataRes);
+ DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataRes);
return offset;
}
-static int
+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 268 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
guint8 octet;
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- ¶meter_tvb);
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
if (!parameter_tvb)
return offset;
+
return offset;
}
static int dissect_ss_Status(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
static int
dissect_gsm_map_BasicServiceCode(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,
- BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode,
+ NULL);
return offset;
}
return dissect_gsm_map_BasicServiceCode(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroup);
}
+
static const ber_sequence_t CallBarringFeature_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
{ BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
{ 0, 0, 0, NULL }
};
static int
dissect_gsm_map_CallBarringFeature(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,
- CallBarringFeature_sequence, hf_index, ett_gsm_map_CallBarringFeature);
+ CallBarringFeature_sequence, hf_index, ett_gsm_map_CallBarringFeature);
return offset;
}
offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
NULL);
+#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);
proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
+
return offset;
}
static int dissect_forwardingOptions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_gsm_map_NoReplyConditionTime(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noReplyConditionTime);
}
+
static const ber_sequence_t ForwardingFeature_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
{ BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
{ BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
{ BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
static int
dissect_gsm_map_ForwardingFeature(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,
- ForwardingFeature_sequence, hf_index, ett_gsm_map_ForwardingFeature);
+ ForwardingFeature_sequence, hf_index, ett_gsm_map_ForwardingFeature);
return offset;
}
return offset;
}
+
static const ber_sequence_t ForwardingInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList },
static int
dissect_gsm_map_ForwardingInfo(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,
- ForwardingInfo_sequence, hf_index, ett_gsm_map_ForwardingInfo);
+ ForwardingInfo_sequence, hf_index, ett_gsm_map_ForwardingInfo);
return offset;
}
return dissect_gsm_map_ForwardingInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingInfo);
}
+
static const ber_sequence_t CallBarringInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_callBarringFeatureList },
static int
dissect_gsm_map_CallBarringInfo(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,
- CallBarringInfo_sequence, hf_index, ett_gsm_map_CallBarringInfo);
+ CallBarringInfo_sequence, hf_index, ett_gsm_map_CallBarringInfo);
return offset;
}
}
+
static int
dissect_gsm_map_HLR_Id(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return dissect_gsm_map_HLR_List(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_List);
}
+
static const ber_sequence_t ResetArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_hlr_List },
static int
dissect_gsm_map_ResetArg(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,
- ResetArg_sequence, hf_index, ett_gsm_map_ResetArg);
+ ResetArg_sequence, hf_index, ett_gsm_map_ResetArg);
return offset;
}
return offset;
}
+
static const ber_sequence_t RestoreDataArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
static int
dissect_gsm_map_RestoreDataArg(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,
- RestoreDataArg_sequence, hf_index, ett_gsm_map_RestoreDataArg);
+ RestoreDataArg_sequence, hf_index, ett_gsm_map_RestoreDataArg);
return offset;
}
+
static const ber_sequence_t RestoreDataRes_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msNotReachable },
static int
dissect_gsm_map_RestoreDataRes(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,
- RestoreDataRes_sequence, hf_index, ett_gsm_map_RestoreDataRes);
+ RestoreDataRes_sequence, hf_index, ett_gsm_map_RestoreDataRes);
return offset;
}
return dissect_gsm_map_OCTET_STRING_SIZE_1_20(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventSpecification_item);
}
+
static const ber_sequence_t ActivateTraceModeArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
static int
dissect_gsm_map_ActivateTraceModeArg(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,
- ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_ActivateTraceModeArg);
+ ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_ActivateTraceModeArg);
return offset;
}
+
static const ber_sequence_t ActivateTraceModeRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_ActivateTraceModeRes(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,
- ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_ActivateTraceModeRes);
+ ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_ActivateTraceModeRes);
return offset;
}
+
static const ber_sequence_t DeactivateTraceModeArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
static int
dissect_gsm_map_DeactivateTraceModeArg(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,
- DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_DeactivateTraceModeArg);
+ DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_DeactivateTraceModeArg);
return offset;
}
+
static const ber_sequence_t DeactivateTraceModeRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_DeactivateTraceModeRes(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,
- DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_DeactivateTraceModeRes);
+ DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_DeactivateTraceModeRes);
return offset;
}
+
static const ber_sequence_t CUG_CheckInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_OutgoingAccess },
static int
dissect_gsm_map_CUG_CheckInfo(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,
- CUG_CheckInfo_sequence, hf_index, ett_gsm_map_CUG_CheckInfo);
+ CUG_CheckInfo_sequence, hf_index, ett_gsm_map_CUG_CheckInfo);
return offset;
}
return dissect_gsm_map_ForwardingReason(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingReason);
}
+
static const ber_sequence_t ExternalSignalInfo_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 },
static int
dissect_gsm_map_ExternalSignalInfo(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,
- ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo);
+ ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo);
return offset;
}
return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callInfo);
}
+
static const ber_sequence_t CamelInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_supportedCamelPhases },
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_suppress_T_CSI },
static int
dissect_gsm_map_CamelInfo(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,
- CamelInfo_sequence, hf_index, ett_gsm_map_CamelInfo);
+ CamelInfo_sequence, hf_index, ett_gsm_map_CamelInfo);
return offset;
}
-static int
+int
dissect_gsm_map_AlertingPattern(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 dissect_gsm_map_Ext_ProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ext_ProtocolId);
}
+
static const ber_sequence_t Ext_ExternalSignalInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_ext_ProtocolId },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
static int
dissect_gsm_map_Ext_ExternalSignalInfo(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,
- Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo);
+ Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo);
return offset;
}
return dissect_gsm_map_CallDiversionTreatmentIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callDiversionTreatmentIndicator);
}
+
static const ber_sequence_t SendRoutingInfoArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
static int
dissect_gsm_map_SendRoutingInfoArg(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,
- SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoArg);
+ SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoArg);
return offset;
}
+
static const ber_sequence_t ForwardingData_sequence[] = {
{ BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
{ BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
static int
dissect_gsm_map_ForwardingData(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,
- ForwardingData_sequence, hf_index, ett_gsm_map_ForwardingData);
+ ForwardingData_sequence, hf_index, ett_gsm_map_ForwardingData);
return offset;
}
static int
dissect_gsm_map_RoutingInfo(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,
- RoutingInfo_choice, hf_index, ett_gsm_map_RoutingInfo, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ RoutingInfo_choice, hf_index, ett_gsm_map_RoutingInfo,
+ NULL);
return offset;
}
return dissect_gsm_map_RoutingInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_routingInfo);
}
+
static const ber_sequence_t GmscCamelSubscriptionInfo_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CSI_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
static int
dissect_gsm_map_GmscCamelSubscriptionInfo(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,
- GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_GmscCamelSubscriptionInfo);
+ GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_GmscCamelSubscriptionInfo);
return offset;
}
return dissect_gsm_map_GmscCamelSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmscCamelSubscriptionInfo);
}
+
static const ber_sequence_t CamelRoutingInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_forwardingData },
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gmscCamelSubscriptionInfo_impl },
static int
dissect_gsm_map_CamelRoutingInfo(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,
- CamelRoutingInfo_sequence, hf_index, ett_gsm_map_CamelRoutingInfo);
+ CamelRoutingInfo_sequence, hf_index, ett_gsm_map_CamelRoutingInfo);
return offset;
}
};
static const ber_choice_t ExtendedRoutingInfo_choice[] = {
- { 0, BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_routingInfo },
+ { 0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_routingInfo },
{ 1, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_camelRoutingInfo_impl },
{ 0, 0, 0, 0, NULL }
};
static int
dissect_gsm_map_ExtendedRoutingInfo(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,
- ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ExtendedRoutingInfo, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ExtendedRoutingInfo,
+ NULL);
return offset;
}
-static int
+int
dissect_gsm_map_AgeOfLocationInformation(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);
-static int
+int
dissect_gsm_map_GeographicalInformation(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);
-static int
+int
dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(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);
static int
dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(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,
- CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
+ NULL);
return offset;
}
return dissect_gsm_map_GeodeticInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geodeticInformation);
}
+
static const ber_sequence_t LocationInformation_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ageOfLocationInformation },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geographicalInformation_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_LocationInformation(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,
- LocationInformation_sequence, hf_index, ett_gsm_map_LocationInformation);
+ LocationInformation_sequence, hf_index, ett_gsm_map_LocationInformation);
return offset;
}
}
-static const value_string gsm_map_SubscriberState_vals[] = {
+const value_string gsm_map_SubscriberState_vals[] = {
{ 0, "assumedIdle" },
{ 1, "camelBusy" },
{ 2, "notProvidedFromVLR" },
{ 0, 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_SubscriberState(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,
- SubscriberState_choice, hf_index, ett_gsm_map_SubscriberState, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ SubscriberState_choice, hf_index, ett_gsm_map_SubscriberState,
+ NULL);
return offset;
}
-static int
+int
dissect_gsm_map_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
NULL);
return dissect_gsm_map_RAIdentity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_routeingAreaIdentity);
}
+
static const ber_sequence_t LocationInformationGPRS_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_cellGlobalIdOrServiceAreaIdOrLAI },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_routeingAreaIdentity },
static int
dissect_gsm_map_LocationInformationGPRS(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,
- LocationInformationGPRS_sequence, hf_index, ett_gsm_map_LocationInformationGPRS);
+ LocationInformationGPRS_sequence, hf_index, ett_gsm_map_LocationInformationGPRS);
return offset;
}
-static int
+int
dissect_gsm_map_GPRSChargingID(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 dissect_gsm_map_GPRSChargingID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chargingId);
}
+
static const ber_sequence_t PDP_ContextInfo_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pdp_ContextIdentifier_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_ContextActive_impl },
static int
dissect_gsm_map_PDP_ContextInfo(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,
- PDP_ContextInfo_sequence, hf_index, ett_gsm_map_PDP_ContextInfo);
+ PDP_ContextInfo_sequence, hf_index, ett_gsm_map_PDP_ContextInfo);
return offset;
}
static int
dissect_gsm_map_PS_SubscriberState(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,
- PS_SubscriberState_choice, hf_index, ett_gsm_map_PS_SubscriberState, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ PS_SubscriberState_choice, hf_index, ett_gsm_map_PS_SubscriberState,
+ NULL);
return offset;
}
-static int
+int
dissect_gsm_map_MS_Classmark2(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 dissect_gsm_map_MSRadioAccessCapability(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mSRadioAccessCapability);
}
+
static const ber_sequence_t GPRSMSClass_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mSNetworkCapability_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mSRadioAccessCapability_impl },
static int
dissect_gsm_map_GPRSMSClass(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,
- GPRSMSClass_sequence, hf_index, ett_gsm_map_GPRSMSClass);
+ GPRSMSClass_sequence, hf_index, ett_gsm_map_GPRSMSClass);
return offset;
}
}
+
static int
dissect_gsm_map_RouteingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return dissect_gsm_map_NumberPortabilityStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_numberPortabilityStatus);
}
+
static const ber_sequence_t MNPInfoRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeingNumber_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
static int
dissect_gsm_map_MNPInfoRes(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,
- MNPInfoRes_sequence, hf_index, ett_gsm_map_MNPInfoRes);
+ MNPInfoRes_sequence, hf_index, ett_gsm_map_MNPInfoRes);
return offset;
}
return dissect_gsm_map_MNPInfoRes(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mnpInfoRes);
}
+
static const ber_sequence_t SubscriberInfo_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_subscriberState },
static int
dissect_gsm_map_SubscriberInfo(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,
- SubscriberInfo_sequence, hf_index, ett_gsm_map_SubscriberInfo);
+ SubscriberInfo_sequence, hf_index, ett_gsm_map_SubscriberInfo);
return offset;
}
return dissect_gsm_map_SubscriberInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberInfo);
}
+
static const ber_sequence_t CCBS_Indicators_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keepCCBS_CallIndicator_impl },
static int
dissect_gsm_map_CCBS_Indicators(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,
- CCBS_Indicators_sequence, hf_index, ett_gsm_map_CCBS_Indicators);
+ CCBS_Indicators_sequence, hf_index, ett_gsm_map_CCBS_Indicators);
return offset;
}
return dissect_gsm_map_CCBS_Indicators(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Indicators);
}
+
static const asn_namedbit AllowedServices_bits[] = {
{ 0, &hf_gsm_map_AllowedServices_firstServiceAllowed, -1, -1, "firstServiceAllowed", NULL },
{ 1, &hf_gsm_map_AllowedServices_secondServiceAllowed, -1, -1, "secondServiceAllowed", NULL },
static int
dissect_gsm_map_AllowedServices(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,
- AllowedServices_bits, hf_index, ett_gsm_map_AllowedServices,
- NULL);
+ AllowedServices_bits, hf_index, ett_gsm_map_AllowedServices,
+ NULL);
return offset;
}
return dissect_gsm_map_UnavailabilityCause(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_unavailabilityCause);
}
+
static const ber_sequence_t SendRoutingInfoRes_sequence[] = {
{ BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { -1/*choice*/ , -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_extendedRoutingInfo },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_extendedRoutingInfo },
{ BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
{ BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cugSubscriptionFlag_impl },
{ BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberInfo_impl },
static int
dissect_gsm_map_SendRoutingInfoRes(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,
- SendRoutingInfoRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoRes);
+ SendRoutingInfoRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoRes);
return offset;
}
static int
dissect_gsm_map_SubscriberId(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,
- SubscriberId_choice, hf_index, ett_gsm_map_SubscriberId, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ SubscriberId_choice, hf_index, ett_gsm_map_SubscriberId,
+ NULL);
return offset;
}
static int
dissect_gsm_map_SubscriberIdentity(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,
- SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity,
+ NULL);
return offset;
}
return offset;
}
+
static const ber_sequence_t ProvideRoamingNumberArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
static int
dissect_gsm_map_ProvideRoamingNumberArg(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,
- ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberArg);
+ ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberArg);
return offset;
}
+
static const ber_sequence_t ProvideRoamingNumberRes_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_ProvideRoamingNumberRes(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,
- ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberRes);
+ ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberRes);
return offset;
}
return dissect_gsm_map_UUI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uui);
}
+
static const ber_sequence_t UU_Data_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uuIndicator_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uui_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_UU_Data(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,
- UU_Data_sequence, hf_index, ett_gsm_map_UU_Data);
+ UU_Data_sequence, hf_index, ett_gsm_map_UU_Data);
return offset;
}
return dissect_gsm_map_UU_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uu_Data);
}
+
static const ber_sequence_t ResumeCallHandlingArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ext_basicServiceGroup },
static int
dissect_gsm_map_ResumeCallHandlingArg(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,
- ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ResumeCallHandlingArg);
+ ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ResumeCallHandlingArg);
return offset;
}
+
static const ber_sequence_t ResumeCallHandlingRes_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_ResumeCallHandlingRes(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,
- ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ResumeCallHandlingRes);
+ ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ResumeCallHandlingRes);
return offset;
}
return dissect_gsm_map_CallDirection(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_call_Direction);
}
+
static const ber_sequence_t ProvideSIWFSNumberArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_BearerCapability_impl },
static int
dissect_gsm_map_ProvideSIWFSNumberArg(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,
- ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberArg);
+ ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberArg);
return offset;
}
+
static const ber_sequence_t ProvideSIWFSNumberRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sIWFSNumber_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_ProvideSIWFSNumberRes(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,
- ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberRes);
+ ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberRes);
return offset;
}
+
static const ber_sequence_t SIWFSSignallingModifyArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_channelType_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
static int
dissect_gsm_map_SIWFSSignallingModifyArg(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,
- SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyArg);
+ SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyArg);
return offset;
}
+
static const ber_sequence_t SIWFSSignallingModifyRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_channelType_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_SIWFSSignallingModifyRes(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,
- SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyRes);
+ SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyRes);
return offset;
}
return dissect_gsm_map_ReportingState(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Monitoring);
}
+
static const ber_sequence_t SetReportingStateArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_imsi },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_lmsi },
static int
dissect_gsm_map_SetReportingStateArg(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,
- SetReportingStateArg_sequence, hf_index, ett_gsm_map_SetReportingStateArg);
+ SetReportingStateArg_sequence, hf_index, ett_gsm_map_SetReportingStateArg);
return offset;
}
return dissect_gsm_map_CCBS_SubscriberStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_SubscriberStatus);
}
+
static const ber_sequence_t SetReportingStateRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_SetReportingStateRes(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,
- SetReportingStateRes_sequence, hf_index, ett_gsm_map_SetReportingStateRes);
+ SetReportingStateRes_sequence, hf_index, ett_gsm_map_SetReportingStateRes);
return offset;
}
+
static const ber_sequence_t EventReportData_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_EventReportData(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,
- EventReportData_sequence, hf_index, ett_gsm_map_EventReportData);
+ EventReportData_sequence, hf_index, ett_gsm_map_EventReportData);
return offset;
}
return dissect_gsm_map_CallOutcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callOutcome);
}
+
static const ber_sequence_t CallReportData_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitoringMode_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callOutcome_impl },
static int
dissect_gsm_map_CallReportData(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,
- CallReportData_sequence, hf_index, ett_gsm_map_CallReportData);
+ CallReportData_sequence, hf_index, ett_gsm_map_CallReportData);
return offset;
}
return dissect_gsm_map_CallReportData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callReportdata);
}
+
static const ber_sequence_t StatusReportArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventReportData_impl },
static int
dissect_gsm_map_StatusReportArg(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,
- StatusReportArg_sequence, hf_index, ett_gsm_map_StatusReportArg);
+ StatusReportArg_sequence, hf_index, ett_gsm_map_StatusReportArg);
return offset;
}
+
static const ber_sequence_t StatusReportRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_StatusReportRes(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,
- StatusReportRes_sequence, hf_index, ett_gsm_map_StatusReportRes);
+ StatusReportRes_sequence, hf_index, ett_gsm_map_StatusReportRes);
return offset;
}
return dissect_gsm_map_Ruf_Outcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ruf_Outcome);
}
+
static const ber_sequence_t IST_AlertArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_IST_AlertArg(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,
- IST_AlertArg_sequence, hf_index, ett_gsm_map_IST_AlertArg);
+ IST_AlertArg_sequence, hf_index, ett_gsm_map_IST_AlertArg);
return offset;
}
return dissect_gsm_map_CallTerminationIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callTerminationIndicator);
}
+
static const ber_sequence_t IST_AlertRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istAlertTimer_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istInformationWithdraw_impl },
static int
dissect_gsm_map_IST_AlertRes(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,
- IST_AlertRes_sequence, hf_index, ett_gsm_map_IST_AlertRes);
+ IST_AlertRes_sequence, hf_index, ett_gsm_map_IST_AlertRes);
return offset;
}
+
static const ber_sequence_t IST_CommandArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_IST_CommandArg(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,
- IST_CommandArg_sequence, hf_index, ett_gsm_map_IST_CommandArg);
+ IST_CommandArg_sequence, hf_index, ett_gsm_map_IST_CommandArg);
return offset;
}
+
static const ber_sequence_t IST_CommandRes_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_IST_CommandRes(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,
- IST_CommandRes_sequence, hf_index, ett_gsm_map_IST_CommandRes);
+ IST_CommandRes_sequence, hf_index, ett_gsm_map_IST_CommandRes);
return offset;
}
+
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 }
};
static int
dissect_gsm_map_ReleaseResourcesArg(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,
- ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ReleaseResourcesArg);
+ ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ReleaseResourcesArg);
return offset;
}
+
static const ber_sequence_t ReleaseResourcesRes_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_ReleaseResourcesRes(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,
- ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ReleaseResourcesRes);
+ ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ReleaseResourcesRes);
return offset;
}
return dissect_gsm_map_CCBS_Index(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Index);
}
+
static const ber_sequence_t CCBS_Feature_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_CCBS_Feature(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,
- CCBS_Feature_sequence, hf_index, ett_gsm_map_CCBS_Feature);
+ CCBS_Feature_sequence, hf_index, ett_gsm_map_CCBS_Feature);
return offset;
}
return dissect_gsm_map_CCBS_Feature(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_CCBS_FeatureList_item);
}
+
static const ber_sequence_t RemoteUserFreeArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callInfo_impl },
static int
dissect_gsm_map_RemoteUserFreeArg(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,
- RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_RemoteUserFreeArg);
+ RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_RemoteUserFreeArg);
return offset;
}
+
static const ber_sequence_t RemoteUserFreeRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ruf_Outcome_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_RemoteUserFreeRes(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,
- RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_RemoteUserFreeRes);
+ RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_RemoteUserFreeRes);
return offset;
}
return offset;
}
+
static const ber_sequence_t SS_Data_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code },
{ BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ext_basicServiceGroupList },
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
{ BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nbrUser_impl },
static int
dissect_gsm_map_SS_Data(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_Data_sequence, hf_index, ett_gsm_map_SS_Data);
+ SS_Data_sequence, hf_index, ett_gsm_map_SS_Data);
return offset;
}
return dissect_gsm_map_SS_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Data);
}
+
static const ber_sequence_t RegisterSS_Arg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
{ BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_addr_impl },
{ BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
{ BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_RegisterSS_Arg(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,
- RegisterSS_Arg_sequence, hf_index, ett_gsm_map_RegisterSS_Arg);
+ RegisterSS_Arg_sequence, hf_index, ett_gsm_map_RegisterSS_Arg);
return offset;
}
-static const value_string gsm_map_SS_Info_vals[] = {
+const value_string gsm_map_SS_Info_vals[] = {
{ 0, "forwardingInfo" },
{ 1, "callBarringInfo" },
{ 3, "ss-Data" },
{ 0, 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_SS_Info(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,
- SS_Info_choice, hf_index, ett_gsm_map_SS_Info, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ SS_Info_choice, hf_index, ett_gsm_map_SS_Info,
+ NULL);
return offset;
}
return dissect_gsm_map_CCBS_FeatureList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_FeatureList);
}
+
static const ber_sequence_t GenericServiceInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cliRestrictionOption },
static int
dissect_gsm_map_GenericServiceInfo(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,
- GenericServiceInfo_sequence, hf_index, ett_gsm_map_GenericServiceInfo);
+ GenericServiceInfo_sequence, hf_index, ett_gsm_map_GenericServiceInfo);
return offset;
}
}
-static const value_string gsm_map_InterrogateSS_Res_vals[] = {
+const value_string gsm_map_InterrogateSS_Res_vals[] = {
{ 0, "ss-Status" },
{ 2, "basicServiceGroupList" },
{ 3, "forwardingFeatureList" },
{ 0, 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_InterrogateSS_Res(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,
- InterrogateSS_Res_choice, hf_index, ett_gsm_map_InterrogateSS_Res, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ InterrogateSS_Res_choice, hf_index, ett_gsm_map_InterrogateSS_Res,
+ NULL);
return offset;
}
-static int
+int
dissect_gsm_map_USSD_DataCodingScheme(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);
-static int
+int
dissect_gsm_map_USSD_String(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 dissect_gsm_map_USSD_String(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ussd_String);
}
+
static const ber_sequence_t Ussd_Arg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_Ussd_Arg(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,
- Ussd_Arg_sequence, hf_index, ett_gsm_map_Ussd_Arg);
+ Ussd_Arg_sequence, hf_index, ett_gsm_map_Ussd_Arg);
return offset;
}
+
static const ber_sequence_t Ussd_Res_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_Ussd_Res(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,
- Ussd_Res_sequence, hf_index, ett_gsm_map_Ussd_Res);
+ Ussd_Res_sequence, hf_index, ett_gsm_map_Ussd_Res);
return offset;
}
return dissect_gsm_map_AccessType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_accessType);
}
+
static const ber_sequence_t AuthenticationFailureReportArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_failureCause },
static int
dissect_gsm_map_AuthenticationFailureReportArg(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,
- AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_AuthenticationFailureReportArg);
+ AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_AuthenticationFailureReportArg);
return offset;
}
+
static const ber_sequence_t AuthenticationFailureReportRes_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_AuthenticationFailureReportRes(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,
- AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_AuthenticationFailureReportRes);
+ AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_AuthenticationFailureReportRes);
return offset;
}
-static int
+
+int
dissect_gsm_map_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
- pinfo, tree, tvb, offset, hf_index,
- NULL);
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static const value_string gsm_map_GetPasswordArg_vals[] = {
+const value_string gsm_map_GetPasswordArg_vals[] = {
{ 0, "enterPW" },
{ 1, "enterNewPW" },
{ 2, "enterNewPW-Again" },
};
-static int
+int
dissect_gsm_map_GetPasswordArg(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);
}
-static int
+
+int
dissect_gsm_map_CurrentPassword(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
- pinfo, tree, tvb, offset, hf_index,
- NULL);
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+
static const asn_namedbit ServiceIndicator_bits[] = {
{ 0, &hf_gsm_map_ServiceIndicator_clir_invoked, -1, -1, "clir-invoked", NULL },
{ 1, &hf_gsm_map_ServiceIndicator_camel_invoked, -1, -1, "camel-invoked", NULL },
static int
dissect_gsm_map_ServiceIndicator(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,
- ServiceIndicator_bits, hf_index, ett_gsm_map_ServiceIndicator,
- NULL);
+ ServiceIndicator_bits, hf_index, ett_gsm_map_ServiceIndicator,
+ NULL);
return offset;
}
return dissect_gsm_map_ServiceIndicator(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_serviceIndicator);
}
+
static const ber_sequence_t CCBS_Data_sequence[] = {
{ BER_CLASS_CON, 0, 0, dissect_ccbs_Feature },
{ BER_CLASS_CON, 1, 0, dissect_translatedB_Number },
static int
dissect_gsm_map_CCBS_Data(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,
- CCBS_Data_sequence, hf_index, ett_gsm_map_CCBS_Data);
+ CCBS_Data_sequence, hf_index, ett_gsm_map_CCBS_Data);
return offset;
}
return dissect_gsm_map_CCBS_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Data);
}
+
static const ber_sequence_t RegisterCC_EntryArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Data_impl },
static int
dissect_gsm_map_RegisterCC_EntryArg(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,
- RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_RegisterCC_EntryArg);
+ RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_RegisterCC_EntryArg);
return offset;
}
+
static const ber_sequence_t RegisterCC_EntryRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_RegisterCC_EntryRes(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,
- RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_RegisterCC_EntryRes);
+ RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_RegisterCC_EntryRes);
return offset;
}
+
static const ber_sequence_t EraseCC_EntryArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_EraseCC_EntryArg(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,
- EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_EraseCC_EntryArg);
+ EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_EraseCC_EntryArg);
return offset;
}
+
static const ber_sequence_t EraseCC_EntryRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_EraseCC_EntryRes(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,
- EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_EraseCC_EntryRes);
+ EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_EraseCC_EntryRes);
return offset;
}
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 193 "gsmmap.cnf"
tvbuff_t *parameter_tvb;
char *digit_str;
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- ¶meter_tvb);
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
if (!parameter_tvb)
return offset;
digit_str = unpack_digits(parameter_tvb, 1);
proto_tree_add_string(tree, hf_gsm_map_servicecentreaddress_digits, parameter_tvb, 1, -1, digit_str);
- if (digit_str)
- g_free(digit_str);
pinfo->p2p_dir = P2P_DIR_SENT;
+
return offset;
}
static int dissect_serviceCentreAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_gsm_map_OCTET_STRING_SIZE_1_12(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_SMEA);
}
+
static const ber_sequence_t RoutingInfoForSMArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sm_RP_PRI_impl },
static int
dissect_gsm_map_RoutingInfoForSMArg(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,
- RoutingInfoForSMArg_sequence, hf_index, ett_gsm_map_RoutingInfoForSMArg);
+ RoutingInfoForSMArg_sequence, hf_index, ett_gsm_map_RoutingInfoForSMArg);
return offset;
}
static int
dissect_gsm_map_Additional_Number(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,
- Additional_Number_choice, hf_index, ett_gsm_map_Additional_Number, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ Additional_Number_choice, hf_index, ett_gsm_map_Additional_Number,
+ NULL);
return offset;
}
return dissect_gsm_map_Additional_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additional_Number);
}
+
static const ber_sequence_t LocationInfoWithLMSI_sequence[] = {
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_networkNode_Number_impl },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
static int
dissect_gsm_map_LocationInfoWithLMSI(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,
- LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_LocationInfoWithLMSI);
+ LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_LocationInfoWithLMSI);
return offset;
}
return dissect_gsm_map_LocationInfoWithLMSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInfoWithLMSI);
}
+
static const ber_sequence_t RoutingInfoForSM_Res_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationInfoWithLMSI_impl },
static int
dissect_gsm_map_RoutingInfoForSM_Res(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,
- RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForSM_Res);
+ RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForSM_Res);
return offset;
}
static int
dissect_gsm_map_Sm_RP_DA(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,
- Sm_RP_DA_choice, hf_index, ett_gsm_map_Sm_RP_DA, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ Sm_RP_DA_choice, hf_index, ett_gsm_map_Sm_RP_DA,
+ NULL);
return offset;
}
static int
dissect_gsm_map_Sm_RP_OA(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,
- Sm_RP_OA_choice, hf_index, ett_gsm_map_Sm_RP_OA, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ Sm_RP_OA_choice, hf_index, ett_gsm_map_Sm_RP_OA,
+ NULL);
return offset;
}
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 152 "gsmmap.cnf"
tvbuff_t *tpdu_tvb;
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- &tpdu_tvb);
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ &tpdu_tvb);
+
+
/*
* dissect the embedded TPDU message
*/
dissector_try_port(sms_dissector_table, 0, tpdu_tvb, pinfo, top_tree);
+
return offset;
}
static int dissect_sm_RP_UI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_gsm_map_Sm_RP_UI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_UI);
}
+
static const ber_sequence_t Mo_forwardSM_Arg_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
static int
dissect_gsm_map_Mo_forwardSM_Arg(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,
- Mo_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Arg);
+ Mo_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Arg);
return offset;
}
+
static const ber_sequence_t Mo_forwardSM_Res_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_Mo_forwardSM_Res(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,
- Mo_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Res);
+ Mo_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Res);
return offset;
}
+
static const ber_sequence_t Mt_forwardSM_Arg_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_moreMessagesToSend },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_Mt_forwardSM_Arg(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,
- Mt_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Arg);
+ Mt_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Arg);
return offset;
}
+
static const ber_sequence_t Mt_forwardSM_Res_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_Mt_forwardSM_Res(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,
- Mt_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Res);
+ Mt_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Res);
return offset;
}
+
static int
dissect_gsm_map_StoredMSISDN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return dissect_gsm_map_AbsentSubscriberDiagnosticSM(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mobileNotReachableReason);
}
+
static const ber_sequence_t ReportSM_DeliveryStatusArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
static int
dissect_gsm_map_ReportSM_DeliveryStatusArg(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,
- ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusArg);
+ ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusArg);
return offset;
}
+
static const ber_sequence_t ReportSM_DeliveryStatusRes_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_ReportSM_DeliveryStatusRes(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,
- ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusRes);
+ ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusRes);
return offset;
}
+
static const asn_namedbit T_mw_Status_bits[] = {
{ 0, &hf_gsm_map_T_mw_Status_scAddressNotIncluded, -1, -1, "scAddressNotIncluded", NULL },
{ 1, &hf_gsm_map_T_mw_Status_mnrfSet, -1, -1, "mnrfSet", NULL },
static int
dissect_gsm_map_T_mw_Status(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,
- T_mw_Status_bits, hf_index, ett_gsm_map_T_mw_Status,
- NULL);
+ T_mw_Status_bits, hf_index, ett_gsm_map_T_mw_Status,
+ NULL);
return offset;
}
return dissect_gsm_map_T_mw_Status(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mw_Status);
}
+
static const ber_sequence_t InformServiceCentreArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
{ BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_mw_Status },
static int
dissect_gsm_map_InformServiceCentreArg(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,
- InformServiceCentreArg_sequence, hf_index, ett_gsm_map_InformServiceCentreArg);
+ InformServiceCentreArg_sequence, hf_index, ett_gsm_map_InformServiceCentreArg);
return offset;
}
+
static const ber_sequence_t AlertServiceCentreArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
static int
dissect_gsm_map_AlertServiceCentreArg(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,
- AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_AlertServiceCentreArg);
+ AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_AlertServiceCentreArg);
return offset;
}
return dissect_gsm_map_T_alertReason(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertReason);
}
+
static const ber_sequence_t ReadyForSM_Arg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_alertReason },
static int
dissect_gsm_map_ReadyForSM_Arg(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,
- ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_ReadyForSM_Arg);
+ ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_ReadyForSM_Arg);
return offset;
}
+
static const ber_sequence_t ReadyForSM_Res_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_ReadyForSM_Res(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,
- ReadyForSM_Res_sequence, hf_index, ett_gsm_map_ReadyForSM_Res);
+ ReadyForSM_Res_sequence, hf_index, ett_gsm_map_ReadyForSM_Res);
return offset;
}
return dissect_gsm_map_T_requestedDomain(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedDomain);
}
+
static const ber_sequence_t RequestedInfo_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_flg_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberState_flg_impl },
static int
dissect_gsm_map_RequestedInfo(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,
- RequestedInfo_sequence, hf_index, ett_gsm_map_RequestedInfo);
+ RequestedInfo_sequence, hf_index, ett_gsm_map_RequestedInfo);
return offset;
}
return dissect_gsm_map_RequestedInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedInfo);
}
+
static const ber_sequence_t ProvideSubscriberInfoArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
static int
dissect_gsm_map_ProvideSubscriberInfoArg(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,
- ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoArg);
+ ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoArg);
return offset;
}
+
static const ber_sequence_t ProvideSubscriberInfoRes_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_ProvideSubscriberInfoRes(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,
- ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoRes);
+ ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoRes);
return offset;
}
+
static const ber_sequence_t AnyTimeInterrogationArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl },
static int
dissect_gsm_map_AnyTimeInterrogationArg(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,
- AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationArg);
+ AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationArg);
return offset;
}
+
static const ber_sequence_t AnyTimeInterrogationRes_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_AnyTimeInterrogationRes(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,
- AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationRes);
+ AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationRes);
return offset;
}
+
static const ber_sequence_t SS_ForBS_Code_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
{ BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_SS_ForBS_Code(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_ForBS_Code_sequence, hf_index, ett_gsm_map_SS_ForBS_Code);
+ SS_ForBS_Code_sequence, hf_index, ett_gsm_map_SS_ForBS_Code);
return offset;
}
return dissect_gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo);
}
+
static const ber_sequence_t RequestedSubscriptionInfo_sequence[] = {
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedSS_Info_impl },
{ BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_impl },
static int
dissect_gsm_map_RequestedSubscriptionInfo(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,
- RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_RequestedSubscriptionInfo);
+ RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_RequestedSubscriptionInfo);
return offset;
}
return dissect_gsm_map_RequestedSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedSubscriptionInfo);
}
+
static const ber_sequence_t AnyTimeSubscriptionInterrogationArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedSubscriptionInfo_impl },
static int
dissect_gsm_map_AnyTimeSubscriptionInterrogationArg(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,
- AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationArg);
+ AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationArg);
return offset;
}
+
static const ber_sequence_t CallForwardingData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_forwardingFeatureList },
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE },
static int
dissect_gsm_map_CallForwardingData(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,
- CallForwardingData_sequence, hf_index, ett_gsm_map_CallForwardingData);
+ CallForwardingData_sequence, hf_index, ett_gsm_map_CallForwardingData);
return offset;
}
}
+
static int
dissect_gsm_map_Password(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
- pinfo, tree, tvb, offset, hf_index,
- NULL);
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
return dissect_gsm_map_WrongPasswordAttemptsCounter(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_wrongPasswordAttemptsCounter);
}
+
static const ber_sequence_t CallBarringData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_callBarringFeatureList },
{ BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_password },
static int
dissect_gsm_map_CallBarringData(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,
- CallBarringData_sequence, hf_index, ett_gsm_map_CallBarringData);
+ CallBarringData_sequence, hf_index, ett_gsm_map_CallBarringData);
return offset;
}
return dissect_gsm_map_CallBarringData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringData);
}
+
static const ber_sequence_t ODB_Info_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_odb_Data },
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE },
static int
dissect_gsm_map_ODB_Info(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,
- ODB_Info_sequence, hf_index, ett_gsm_map_ODB_Info);
+ ODB_Info_sequence, hf_index, ett_gsm_map_ODB_Info);
return offset;
}
return dissect_gsm_map_ODB_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_Info);
}
+
static const ber_sequence_t CAMEL_SubscriptionInfo_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
static int
dissect_gsm_map_CAMEL_SubscriptionInfo(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,
- CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_CAMEL_SubscriptionInfo);
+ CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_CAMEL_SubscriptionInfo);
return offset;
}
return dissect_gsm_map_CAMEL_SubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camel_SubscriptionInfo);
}
+
static const ber_sequence_t AnyTimeSubscriptionInterrogationRes_sequence[] = {
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callForwardingData_impl },
{ BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callBarringData_impl },
static int
dissect_gsm_map_AnyTimeSubscriptionInterrogationRes(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,
- AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationRes);
+ AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationRes);
return offset;
}
+
static const asn_namedbit OfferedCamel4Functionalities_bits[] = {
{ 0, &hf_gsm_map_OfferedCamel4Functionalities_initiateCallAttempt, -1, -1, "initiateCallAttempt", NULL },
{ 1, &hf_gsm_map_OfferedCamel4Functionalities_splitLeg, -1, -1, "splitLeg", NULL },
{ 0, NULL, 0, 0, NULL, NULL }
};
-static int
+int
dissect_gsm_map_OfferedCamel4Functionalities(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,
- OfferedCamel4Functionalities_bits, hf_index, ett_gsm_map_OfferedCamel4Functionalities,
- NULL);
+ OfferedCamel4Functionalities_bits, hf_index, ett_gsm_map_OfferedCamel4Functionalities,
+ NULL);
return offset;
}
return dissect_gsm_map_ModificationInstruction(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modifyCSI_State);
}
+
static const ber_sequence_t ModificationRequestFor_CF_Info_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService_impl },
static int
dissect_gsm_map_ModificationRequestFor_CF_Info(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,
- ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CF_Info);
+ ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CF_Info);
return offset;
}
return dissect_gsm_map_ModificationRequestFor_CF_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_CF_Info);
}
+
static const ber_sequence_t ModificationRequestFor_CB_Info_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService_impl },
static int
dissect_gsm_map_ModificationRequestFor_CB_Info(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,
- ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CB_Info);
+ ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CB_Info);
return offset;
}
return dissect_gsm_map_ModificationRequestFor_CB_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_CB_Info);
}
+
static const ber_sequence_t ModificationRequestFor_CSI_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedCamel_SubscriptionInfo_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
static int
dissect_gsm_map_ModificationRequestFor_CSI(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,
- ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CSI);
+ ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CSI);
return offset;
}
return dissect_gsm_map_ModificationRequestFor_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_CSI);
}
+
static const ber_sequence_t ModificationRequestFor_ODB_data_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_data_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
static int
dissect_gsm_map_ModificationRequestFor_ODB_data(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,
- ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ModificationRequestFor_ODB_data);
+ ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ModificationRequestFor_ODB_data);
return offset;
}
return dissect_gsm_map_ModificationRequestFor_ODB_data(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_ODB_data);
}
+
static const ber_sequence_t AnyTimeModificationArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
static int
dissect_gsm_map_AnyTimeModificationArg(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,
- AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_AnyTimeModificationArg);
+ AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_AnyTimeModificationArg);
return offset;
}
+
static const ber_sequence_t Ext_ForwardingInfoFor_CSE_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ext_forwardingFeatureList_impl },
static int
dissect_gsm_map_Ext_ForwardingInfoFor_CSE(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,
- Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_Ext_ForwardingInfoFor_CSE);
+ Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_Ext_ForwardingInfoFor_CSE);
return offset;
}
return dissect_gsm_map_Ext_ForwardingInfoFor_CSE(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingInfoFor_CSE);
}
+
static const ber_sequence_t Ext_CallBarringInfoFor_CSE_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ext_callBarringFeatureList_impl },
static int
dissect_gsm_map_Ext_CallBarringInfoFor_CSE(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,
- Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_Ext_CallBarringInfoFor_CSE);
+ Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_Ext_CallBarringInfoFor_CSE);
return offset;
}
static int
dissect_gsm_map_Ext_SS_InfoFor_CSE(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,
- Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_Ext_SS_InfoFor_CSE, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_Ext_SS_InfoFor_CSE,
+ NULL);
return offset;
}
return dissect_gsm_map_Ext_SS_InfoFor_CSE(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_InfoFor_CSE);
}
+
static const ber_sequence_t AnyTimeModificationRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_InfoFor_CSE_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SubscriptionInfo_impl },
static int
dissect_gsm_map_AnyTimeModificationRes(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,
- AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_AnyTimeModificationRes);
+ AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_AnyTimeModificationRes);
return offset;
}
+
static const ber_sequence_t NoteSubscriberDataModifiedArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
static int
dissect_gsm_map_NoteSubscriberDataModifiedArg(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,
- NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_NoteSubscriberDataModifiedArg);
+ NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_NoteSubscriberDataModifiedArg);
return offset;
}
+
static const ber_sequence_t NoteSubscriberDataModifiedRes_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_NoteSubscriberDataModifiedRes(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,
- NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_NoteSubscriberDataModifiedRes);
+ NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_NoteSubscriberDataModifiedRes);
return offset;
}
+
static const ber_sequence_t NoteMM_EventArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventMet_impl },
static int
dissect_gsm_map_NoteMM_EventArg(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,
- NoteMM_EventArg_sequence, hf_index, ett_gsm_map_NoteMM_EventArg);
+ NoteMM_EventArg_sequence, hf_index, ett_gsm_map_NoteMM_EventArg);
return offset;
}
+
static const ber_sequence_t NoteMM_EventRes_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_NoteMM_EventRes(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,
- NoteMM_EventRes_sequence, hf_index, ett_gsm_map_NoteMM_EventRes);
+ NoteMM_EventRes_sequence, hf_index, ett_gsm_map_NoteMM_EventRes);
return offset;
}
return dissect_gsm_map_T_ss_EventSpecification(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventSpecification);
}
+
static const ber_sequence_t Ss_InvocationNotificationArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
static int
dissect_gsm_map_Ss_InvocationNotificationArg(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_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationArg);
+ Ss_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationArg);
return offset;
}
+
static const ber_sequence_t Ss_InvocationNotificationRes_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_InvocationNotificationRes(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_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationRes);
+ Ss_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationRes);
return offset;
}
return dissect_gsm_map_VSTK_RAND(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vstk_rand);
}
+
static const ber_sequence_t PrepareGroupCallArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ext_teleservice },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_asciCallReference },
static int
dissect_gsm_map_PrepareGroupCallArg(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,
- PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_PrepareGroupCallArg);
+ PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_PrepareGroupCallArg);
return offset;
}
+
static const ber_sequence_t PrepareGroupCallRes_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupCallNumber },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_PrepareGroupCallRes(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,
- PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_PrepareGroupCallRes);
+ PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_PrepareGroupCallRes);
return offset;
}
+
static const ber_sequence_t SendGroupCallEndSignalArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_SendGroupCallEndSignalArg(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,
- SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalArg);
+ SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalArg);
return offset;
}
+
static const ber_sequence_t SendGroupCallEndSignalRes_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_SendGroupCallEndSignalRes(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,
- SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalRes);
+ SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalRes);
return offset;
}
+
static const ber_sequence_t ProcessGroupCallSignallingArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequest_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl },
static int
dissect_gsm_map_ProcessGroupCallSignallingArg(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,
- ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ProcessGroupCallSignallingArg);
+ ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ProcessGroupCallSignallingArg);
return offset;
}
+
static const ber_sequence_t ForwardGroupCallSignallingArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequestAck_impl },
static int
dissect_gsm_map_ForwardGroupCallSignallingArg(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,
- ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ForwardGroupCallSignallingArg);
+ ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ForwardGroupCallSignallingArg);
return offset;
}
+
static const ber_sequence_t SGSN_Capability_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_solsaSupportIndicator },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_SGSN_Capability(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,
- SGSN_Capability_sequence, hf_index, ett_gsm_map_SGSN_Capability);
+ SGSN_Capability_sequence, hf_index, ett_gsm_map_SGSN_Capability);
return offset;
}
return dissect_gsm_map_SGSN_Capability(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Capability);
}
+
static const ber_sequence_t UpdateGprsLocationArg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Number },
static int
dissect_gsm_map_UpdateGprsLocationArg(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,
- UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_UpdateGprsLocationArg);
+ UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_UpdateGprsLocationArg);
return offset;
}
+
static const ber_sequence_t UpdateGprsLocationRes_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_UpdateGprsLocationRes(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,
- UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_UpdateGprsLocationRes);
+ UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_UpdateGprsLocationRes);
return offset;
}
+
static const ber_sequence_t SendRoutingInfoForGprsArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
static int
dissect_gsm_map_SendRoutingInfoForGprsArg(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,
- SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsArg);
+ SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsArg);
return offset;
}
+
static const ber_sequence_t SendRoutingInfoForGprsRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
static int
dissect_gsm_map_SendRoutingInfoForGprsRes(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,
- SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsRes);
+ SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsRes);
return offset;
}
+
static const ber_sequence_t FailureReportArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl },
static int
dissect_gsm_map_FailureReportArg(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,
- FailureReportArg_sequence, hf_index, ett_gsm_map_FailureReportArg);
+ FailureReportArg_sequence, hf_index, ett_gsm_map_FailureReportArg);
return offset;
}
+
static const ber_sequence_t FailureReportRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_FailureReportRes(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,
- FailureReportRes_sequence, hf_index, ett_gsm_map_FailureReportRes);
+ FailureReportRes_sequence, hf_index, ett_gsm_map_FailureReportRes);
return offset;
}
+
static const ber_sequence_t NoteMsPresentForGprsArg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
static int
dissect_gsm_map_NoteMsPresentForGprsArg(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,
- NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsArg);
+ NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsArg);
return offset;
}
+
static const ber_sequence_t NoteMsPresentForGprsRes_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_NoteMsPresentForGprsRes(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,
- NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsRes);
+ NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsRes);
return offset;
}
return offset;
}
-static int dissect_locationEstimateType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_LocationEstimateType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimateType);
+static int dissect_locationEstimateType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_LocationEstimateType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimateType);
}
+
static const asn_namedbit DeferredLocationEventType_bits[] = {
{ 0, &hf_gsm_map_DeferredLocationEventType_msAvailable, -1, -1, "msAvailable", NULL },
{ 1, &hf_gsm_map_DeferredLocationEventType_enteringIntoArea, -1, -1, "enteringIntoArea", NULL },
{ 0, NULL, 0, 0, NULL, NULL }
};
-static int
+int
dissect_gsm_map_DeferredLocationEventType(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,
- DeferredLocationEventType_bits, hf_index, ett_gsm_map_DeferredLocationEventType,
- NULL);
+ DeferredLocationEventType_bits, hf_index, ett_gsm_map_DeferredLocationEventType,
+ NULL);
return offset;
}
static int dissect_deferredLocationEventType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_gsm_map_DeferredLocationEventType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_deferredLocationEventType);
}
+static int dissect_deferredLocationEventType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gsm_map_DeferredLocationEventType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_deferredLocationEventType);
+}
+
static const ber_sequence_t LocationType_sequence[] = {
- { BER_CLASS_CON, 0, 0, dissect_locationEstimateType },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_deferredLocationEventType },
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationEstimateType_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deferredLocationEventType_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_LocationType(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,
- LocationType_sequence, hf_index, ett_gsm_map_LocationType);
+ LocationType_sequence, hf_index, ett_gsm_map_LocationType);
return offset;
}
}
+
static int
dissect_gsm_map_NameString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_USSD_String(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return dissect_gsm_map_LCS_FormatIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_FormatIndicator);
}
+
static const ber_sequence_t LCSClientName_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl },
{ BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_nameString_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_LCSClientName(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,
- LCSClientName_sequence, hf_index, ett_gsm_map_LCSClientName);
+ LCSClientName_sequence, hf_index, ett_gsm_map_LCSClientName);
return offset;
}
}
+
static int
dissect_gsm_map_RequestorIDString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_USSD_String(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return dissect_gsm_map_RequestorIDString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestorIDString);
}
+
static const ber_sequence_t LCSRequestorID_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestorIDString_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_LCSRequestorID(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,
- LCSRequestorID_sequence, hf_index, ett_gsm_map_LCSRequestorID);
+ LCSRequestorID_sequence, hf_index, ett_gsm_map_LCSRequestorID);
return offset;
}
return dissect_gsm_map_LCSRequestorID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsRequestorID);
}
+
static const ber_sequence_t LCS_ClientID_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lcsClientType_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientExternalID_impl },
static int
dissect_gsm_map_LCS_ClientID(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,
- LCS_ClientID_sequence, hf_index, ett_gsm_map_LCS_ClientID);
+ LCS_ClientID_sequence, hf_index, ett_gsm_map_LCS_ClientID);
return offset;
}
return dissect_gsm_map_ResponseTimeCategory(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_responseTimeCategory);
}
+
static const ber_sequence_t ResponseTime_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_responseTimeCategory },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_ResponseTime(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,
- ResponseTime_sequence, hf_index, ett_gsm_map_ResponseTime);
+ ResponseTime_sequence, hf_index, ett_gsm_map_ResponseTime);
return offset;
}
return dissect_gsm_map_ResponseTime(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_responseTime);
}
+
static const ber_sequence_t LCS_QoS_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_horizontal_accuracy_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_verticalCoordinateRequest_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_LCS_QoS(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,
- LCS_QoS_sequence, hf_index, ett_gsm_map_LCS_QoS);
+ LCS_QoS_sequence, hf_index, ett_gsm_map_LCS_QoS);
return offset;
}
return dissect_gsm_map_LCS_QoS(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_QoS);
}
+
static const asn_namedbit SupportedGADShapes_bits[] = {
{ 0, &hf_gsm_map_SupportedGADShapes_ellipsoidPoint, -1, -1, "ellipsoidPoint", NULL },
{ 1, &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, -1, -1, "ellipsoidPointWithUncertaintyCircle", NULL },
{ 0, NULL, 0, 0, NULL, NULL }
};
-static int
+int
dissect_gsm_map_SupportedGADShapes(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,
- SupportedGADShapes_bits, hf_index, ett_gsm_map_SupportedGADShapes,
- NULL);
+ SupportedGADShapes_bits, hf_index, ett_gsm_map_SupportedGADShapes,
+ NULL);
return offset;
}
-static int
+int
dissect_gsm_map_LCS_ReferenceNumber(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);
}
+
static int
dissect_gsm_map_LCSCodewordString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_gsm_map_USSD_String(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return dissect_gsm_map_LCSCodewordString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsCodewordString);
}
+
static const ber_sequence_t LCSCodeword_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lcsCodewordString_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_LCSCodeword(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,
- LCSCodeword_sequence, hf_index, ett_gsm_map_LCSCodeword);
+ LCSCodeword_sequence, hf_index, ett_gsm_map_LCSCodeword);
return offset;
}
return dissect_gsm_map_PrivacyCheckRelatedAction(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callSessionRelated);
}
+
static const ber_sequence_t LCS_PrivacyCheck_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callSessionUnrelated_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSessionRelated_impl },
static int
dissect_gsm_map_LCS_PrivacyCheck(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,
- LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_LCS_PrivacyCheck);
+ LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_LCS_PrivacyCheck);
return offset;
}
return dissect_gsm_map_AreaIdentification(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_areaIdentification);
}
+
static const ber_sequence_t Area_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_areaType_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_areaIdentification_impl },
static int
dissect_gsm_map_Area(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,
- Area_sequence, hf_index, ett_gsm_map_Area);
+ Area_sequence, hf_index, ett_gsm_map_Area);
return offset;
}
return dissect_gsm_map_AreaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_areaList);
}
+
static const ber_sequence_t AreaDefinition_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_areaList_impl },
{ 0, 0, 0, NULL }
static int
dissect_gsm_map_AreaDefinition(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,
- AreaDefinition_sequence, hf_index, ett_gsm_map_AreaDefinition);
+ AreaDefinition_sequence, hf_index, ett_gsm_map_AreaDefinition);
return offset;
}
return dissect_gsm_map_IntervalTime(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_intervalTime);
}
+
static const ber_sequence_t AreaEventInfo_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_areaDefinition_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_occurrenceInfo_impl },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_AreaEventInfo(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,
- AreaEventInfo_sequence, hf_index, ett_gsm_map_AreaEventInfo);
+ AreaEventInfo_sequence, hf_index, ett_gsm_map_AreaEventInfo);
return offset;
}
return dissect_gsm_map_AreaEventInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_areaEventInfo);
}
+
static const ber_sequence_t ProvideSubscriberLocation_Arg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_locationType },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_mlc_Number },
static int
dissect_gsm_map_ProvideSubscriberLocation_Arg(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,
- ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Arg);
+ ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Arg);
return offset;
}
-static int
+int
dissect_gsm_map_Ext_GeographicalInformation(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);
-static int
+int
dissect_gsm_map_Add_GeographicalInformation(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 dissect_gsm_map_UtranPositioningDataInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_utranPositioningData);
}
+
static const ber_sequence_t ProvideSubscriberLocation_Res_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_locationEstimate },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl },
static int
dissect_gsm_map_ProvideSubscriberLocation_Res(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,
- ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Res);
+ ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Res);
return offset;
}
static int
dissect_gsm_map_TargetMS(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,
- TargetMS_choice, hf_index, ett_gsm_map_TargetMS, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ TargetMS_choice, hf_index, ett_gsm_map_TargetMS,
+ NULL);
return offset;
}
+
static const ber_sequence_t RoutingInfoForLCS_Arg_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mlcNumber_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_targetMS_impl },
static int
dissect_gsm_map_RoutingInfoForLCS_Arg(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,
- RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Arg);
+ RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Arg);
return offset;
}
+
static const ber_sequence_t LCSLocationInfo_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_networkNode_Number },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
static int
dissect_gsm_map_LCSLocationInfo(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,
- LCSLocationInfo_sequence, hf_index, ett_gsm_map_LCSLocationInfo);
+ LCSLocationInfo_sequence, hf_index, ett_gsm_map_LCSLocationInfo);
return offset;
}
return dissect_gsm_map_LCSLocationInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsLocationInfo);
}
+
static const ber_sequence_t RoutingInfoForLCS_Res_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_targetMS },
{ BER_CLASS_CON, 1, 0, dissect_lcsLocationInfo },
static int
dissect_gsm_map_RoutingInfoForLCS_Res(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,
- RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Res);
+ RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Res);
return offset;
}
return dissect_gsm_map_TerminationCause(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_terminationCause);
}
+
static const ber_sequence_t Deferredmt_lrData_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_deferredLocationEventType },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_terminationCause_impl },
static int
dissect_gsm_map_Deferredmt_lrData(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,
- Deferredmt_lrData_sequence, hf_index, ett_gsm_map_Deferredmt_lrData);
+ Deferredmt_lrData_sequence, hf_index, ett_gsm_map_Deferredmt_lrData);
return offset;
}
return dissect_gsm_map_Deferredmt_lrData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_deferredmt_lrData);
}
+
static const ber_sequence_t SubscriberLocationReport_Arg_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_lcs_Event },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcs_ClientID },
static int
dissect_gsm_map_SubscriberLocationReport_Arg(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,
- SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Arg);
+ SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Arg);
return offset;
}
+
static const ber_sequence_t SubscriberLocationReport_Res_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_na_ESRK_impl },
static int
dissect_gsm_map_SubscriberLocationReport_Res(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,
- SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Res);
+ SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Res);
return offset;
}
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);
}
};
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 }
};
static int
dissect_gsm_map_OperationCode(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,
- OperationCode_choice, hf_index, ett_gsm_map_OperationCode, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ OperationCode_choice, hf_index, ett_gsm_map_OperationCode,
+ NULL);
return offset;
}
};
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 }
};
static int
dissect_gsm_map_ErrorCode(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,
- ErrorCode_choice, hf_index, ett_gsm_map_ErrorCode, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ErrorCode_choice, hf_index, ett_gsm_map_ErrorCode,
+ NULL);
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);
}
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 }
};
static int
dissect_gsm_map_OriginalComponentIdentifier(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,
- OriginalComponentIdentifier_choice, hf_index, ett_gsm_map_OriginalComponentIdentifier, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ OriginalComponentIdentifier_choice, hf_index, ett_gsm_map_OriginalComponentIdentifier,
+ NULL);
return offset;
}
return dissect_gsm_map_InitialisationVector(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_initialisationVector);
}
+
static const ber_sequence_t SecurityHeader_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_securityParametersIndex },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_originalComponentIdentifier },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_originalComponentIdentifier },
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_initialisationVector },
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_gsm_map_SecurityHeader(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,
- SecurityHeader_sequence, hf_index, ett_gsm_map_SecurityHeader);
+ SecurityHeader_sequence, hf_index, ett_gsm_map_SecurityHeader);
return offset;
}
-static int
+int
dissect_gsm_map_ProtectedPayload(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 dissect_gsm_map_ProtectedPayload(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_protectedPayload);
}
+
static const ber_sequence_t SecureTransportArg_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 },
static int
dissect_gsm_map_SecureTransportArg(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,
- SecureTransportArg_sequence, hf_index, ett_gsm_map_SecureTransportArg);
+ SecureTransportArg_sequence, hf_index, ett_gsm_map_SecureTransportArg);
return offset;
}
+
static const ber_sequence_t SecureTransportRes_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 },
static int
dissect_gsm_map_SecureTransportRes(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,
- SecureTransportRes_sequence, hf_index, ett_gsm_map_SecureTransportRes);
+ SecureTransportRes_sequence, hf_index, ett_gsm_map_SecureTransportRes);
return offset;
}
return dissect_gsm_map_NetworkResource(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_networkResource);
}
+
static const ber_sequence_t T_extensibleSystemFailureParam_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_networkResource },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_T_extensibleSystemFailureParam(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_extensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_T_extensibleSystemFailureParam);
+ T_extensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_T_extensibleSystemFailureParam);
return offset;
}
static int
dissect_gsm_map_SystemFailureParam(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,
- SystemFailureParam_choice, hf_index, ett_gsm_map_SystemFailureParam, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ SystemFailureParam_choice, hf_index, ett_gsm_map_SystemFailureParam,
+ NULL);
return offset;
}
+
static const ber_sequence_t DataMissingParam_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_DataMissingParam(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,
- DataMissingParam_sequence, hf_index, ett_gsm_map_DataMissingParam);
+ DataMissingParam_sequence, hf_index, ett_gsm_map_DataMissingParam);
return offset;
}
+
static const ber_sequence_t UnexpectedDataParam_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_UnexpectedDataParam(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,
- UnexpectedDataParam_sequence, hf_index, ett_gsm_map_UnexpectedDataParam);
+ UnexpectedDataParam_sequence, hf_index, ett_gsm_map_UnexpectedDataParam);
return offset;
}
+
static const ber_sequence_t FacilityNotSupParam_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_FacilityNotSupParam(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,
- FacilityNotSupParam_sequence, hf_index, ett_gsm_map_FacilityNotSupParam);
+ FacilityNotSupParam_sequence, hf_index, ett_gsm_map_FacilityNotSupParam);
+
+ return offset;
+}
+
+
+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 }
static int
dissect_gsm_map_IncompatibleTerminalParam(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,
- IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_IncompatibleTerminalParam);
+ IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_IncompatibleTerminalParam);
return offset;
}
+
static const ber_sequence_t ResourceLimitationParam_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_ResourceLimitationParam(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,
- ResourceLimitationParam_sequence, hf_index, ett_gsm_map_ResourceLimitationParam);
+ ResourceLimitationParam_sequence, hf_index, ett_gsm_map_ResourceLimitationParam);
return offset;
}
return dissect_gsm_map_T_unknownSubscriberDiagnostic(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_unknownSubscriberDiagnostic);
}
+
static const ber_sequence_t UnknownSubscriberParam_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_unknownSubscriberDiagnostic },
static int
dissect_gsm_map_UnknownSubscriberParam(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,
- UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_UnknownSubscriberParam);
+ UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_UnknownSubscriberParam);
return offset;
}
+
static const ber_sequence_t NumberChangedParam_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_NumberChangedParam(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,
- NumberChangedParam_sequence, hf_index, ett_gsm_map_NumberChangedParam);
+ NumberChangedParam_sequence, hf_index, ett_gsm_map_NumberChangedParam);
return offset;
}
+
static const ber_sequence_t UnidentifiedSubParam_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_UnidentifiedSubParam(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,
- UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_UnidentifiedSubParam);
+ UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_UnidentifiedSubParam);
return offset;
}
return dissect_gsm_map_T_roamingNotAllowedCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_roamingNotAllowedCause);
}
+
static const ber_sequence_t RoamingNotAllowedParam_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_roamingNotAllowedCause },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_RoamingNotAllowedParam(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,
- RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_RoamingNotAllowedParam);
+ RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_RoamingNotAllowedParam);
return offset;
}
+
static const ber_sequence_t IllegalSubscriberParam_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_IllegalSubscriberParam(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,
- IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_IllegalSubscriberParam);
+ IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_IllegalSubscriberParam);
return offset;
}
+
static const ber_sequence_t IllegalEquipmentParam_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_IllegalEquipmentParam(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,
- IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_IllegalEquipmentParam);
+ IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_IllegalEquipmentParam);
return offset;
}
+
static const ber_sequence_t BearerServNotProvParam_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_BearerServNotProvParam(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,
- BearerServNotProvParam_sequence, hf_index, ett_gsm_map_BearerServNotProvParam);
+ BearerServNotProvParam_sequence, hf_index, ett_gsm_map_BearerServNotProvParam);
return offset;
}
+
static const ber_sequence_t TeleservNotProvParam_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_TeleservNotProvParam(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,
- TeleservNotProvParam_sequence, hf_index, ett_gsm_map_TeleservNotProvParam);
+ TeleservNotProvParam_sequence, hf_index, ett_gsm_map_TeleservNotProvParam);
return offset;
}
+
static const ber_sequence_t TracingBufferFullParam_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_TracingBufferFullParam(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,
- TracingBufferFullParam_sequence, hf_index, ett_gsm_map_TracingBufferFullParam);
+ TracingBufferFullParam_sequence, hf_index, ett_gsm_map_TracingBufferFullParam);
return offset;
}
+
static const ber_sequence_t NoRoamingNbParam_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_NoRoamingNbParam(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,
- NoRoamingNbParam_sequence, hf_index, ett_gsm_map_NoRoamingNbParam);
+ NoRoamingNbParam_sequence, hf_index, ett_gsm_map_NoRoamingNbParam);
return offset;
}
-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 }
};
static int
dissect_gsm_map_AbsentSubscriberParam(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,
- AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_AbsentSubscriberParam);
+ AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_AbsentSubscriberParam);
return offset;
}
+
static const ber_sequence_t BusySubscriberParam_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_ccbs_Possible_impl },
static int
dissect_gsm_map_BusySubscriberParam(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,
- BusySubscriberParam_sequence, hf_index, ett_gsm_map_BusySubscriberParam);
+ BusySubscriberParam_sequence, hf_index, ett_gsm_map_BusySubscriberParam);
return offset;
}
+
static const ber_sequence_t NoSubscriberReplyParam_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_NoSubscriberReplyParam(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,
- NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_NoSubscriberReplyParam);
+ NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_NoSubscriberReplyParam);
+
+ return offset;
+}
+
+
+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;
}
return dissect_gsm_map_CallBarringCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringCause);
}
-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);
}
static int
dissect_gsm_map_CallBarredParam(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,
- CallBarredParam_choice, hf_index, ett_gsm_map_CallBarredParam, NULL);
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ CallBarredParam_choice, hf_index, ett_gsm_map_CallBarredParam,
+ NULL);
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 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;
}
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 }
};
static int
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,
- Cug_RejectParam_sequence, hf_index, ett_gsm_map_Cug_RejectParam);
+ Cug_RejectParam_sequence, hf_index, ett_gsm_map_Cug_RejectParam);
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 NoGroupCallNbParam_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_NoGroupCallNbParam(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,
- NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_NoGroupCallNbParam);
+ NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_NoGroupCallNbParam);
return offset;
}
+
static const ber_sequence_t SS_IncompatibilityCause_sequence[] = {
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
{ BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
{ 0, 0, 0, NULL }
};
static int
dissect_gsm_map_SS_IncompatibilityCause(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_IncompatibilityCause_sequence, hf_index, ett_gsm_map_SS_IncompatibilityCause);
+ SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_SS_IncompatibilityCause);
return offset;
}
-static const value_string gsm_map_Pw_RegistrationFailureCause_vals[] = {
+static const value_string gsm_map_PW_RegistrationFailureCause_vals[] = {
{ 0, "undetermined" },
{ 1, "invalidFormat" },
{ 2, "newPasswordsMismatch" },
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);
return offset;
}
+
static const ber_sequence_t ShortTermDenialParam_sequence[] = {
{ 0, 0, 0, NULL }
};
static int
dissect_gsm_map_ShortTermDenialParam(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,
- ShortTermDenialParam_sequence, hf_index, ett_gsm_map_ShortTermDenialParam);
+ ShortTermDenialParam_sequence, hf_index, ett_gsm_map_ShortTermDenialParam);
return offset;
}
+
static const ber_sequence_t LongTermDenialParam_sequence[] = {
{ 0, 0, 0, NULL }
};
static int
dissect_gsm_map_LongTermDenialParam(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,
- LongTermDenialParam_sequence, hf_index, ett_gsm_map_LongTermDenialParam);
+ LongTermDenialParam_sequence, hf_index, ett_gsm_map_LongTermDenialParam);
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_T_sm_EnumeratedDeliveryFailureCause_vals[] = {
+static const value_string gsm_map_SM_EnumeratedDeliveryFailureCause_vals[] = {
{ 0, "memoryCapacityExceeded" },
{ 1, "equipmentProtocolError" },
{ 2, "equipmentNotSM-Equipped" },
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 },
};
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;
}
+
static const ber_sequence_t MessageWaitListFullParam_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_MessageWaitListFullParam(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,
- MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_MessageWaitListFullParam);
+ MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_MessageWaitListFullParam);
return offset;
}
+
static const ber_sequence_t AbsentSubscriberSM_Param_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_absentSubscriberDiagnosticSM },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
static int
dissect_gsm_map_AbsentSubscriberSM_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,
- AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_AbsentSubscriberSM_Param);
+ AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_AbsentSubscriberSM_Param);
return offset;
}
+
static const ber_sequence_t UnauthorizedRequestingNetwork_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_UnauthorizedRequestingNetwork_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,
- UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_UnauthorizedRequestingNetwork_Param);
+ UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_UnauthorizedRequestingNetwork_Param);
return offset;
}
return dissect_gsm_map_T_unauthorizedLCSClient_Diagnostic(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_unauthorizedLCSClient_Diagnostic);
}
+
static const ber_sequence_t UnauthorizedLCSClient_Param_sequence[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorizedLCSClient_Diagnostic_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
static int
dissect_gsm_map_UnauthorizedLCSClient_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,
- UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_UnauthorizedLCSClient_Param);
+ UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_UnauthorizedLCSClient_Param);
return offset;
}
-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" },
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);
+}
+
+
+static const ber_sequence_t PositionMethodFailure_Param_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_positionMethodFailure_Diagnostic_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_PositionMethodFailure_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,
+ PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_PositionMethodFailure_Param);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UnknownOrUnreachableLCSClient_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_UnknownOrUnreachableLCSClient_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,
+ UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_UnknownOrUnreachableLCSClient_Param);
+
+ return offset;
+}
+
+
+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 PositionMethodFailure_Param_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_positionMethodFailure_Diagnostic_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+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_PositionMethodFailure_Param(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+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,
- PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_PositionMethodFailure_Param);
+ TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_TargetCellOutsideGCA_Param);
return offset;
}
-static const ber_sequence_t UnknownOrUnreachableLCSClient_Param_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+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_UnknownOrUnreachableLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+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,
- UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_UnknownOrUnreachableLCSClient_Param);
+ 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 ---*/
+/*--- End of included file: packet-gsm_map-fn.c ---*/
+#line 172 "packet-gsm_map-template.c"
const value_string gsm_map_opr_code_strings[] = {
{ 2, "updateLocation" },
"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) {
offset = offset +2;
offset=dissect_gsm_map_CancelLocationArg(TRUE, tvb, offset, pinfo, tree, -1);
}else{
- offset=dissect_gsm_map_CancelLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
+ offset=dissect_gsm_map_CancelLocationArgV2(FALSE, tvb, offset, pinfo, tree, -1);
}
break;
case 4: /*provideRoamingNumber*/
offset=dissect_gsm_map_DeactivateTraceModeArg(FALSE, tvb, offset, pinfo, tree, -1);
break;
case 55: /*sendIdentification*/
- offset=dissect_gsm_map_TMSI(FALSE, tvb, offset, pinfo, tree, -1);
+ offset=dissect_gsm_map_SendIdentificationArg(FALSE, tvb, offset, pinfo, tree, -1);
break;
case 56: /*sendAuthenticationInfo*/
if (application_context_version < 3 ){
offset=dissect_gsm_map_SecureTransportArg(FALSE, tvb, offset, pinfo, tree, -1);
break;
case 83: /*provideSubscriberLocation*/
- offset=dissect_gsm_map_EraseCC_EntryArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
offset=dissect_gsm_map_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, pinfo, tree, -1);
break;
case 85: /*sendRoutingInfoForLCS*/
offset=dissect_gsm_map_InterrogateSS_Res(FALSE, tvb, offset, pinfo, tree, -1);
break;
case 15: /*authenticationFailureReport*/
- offset=dissect_gsm_map_AuthenticationFailureReportArg(FALSE, tvb, offset, pinfo, tree, -1);
+ offset=dissect_gsm_map_AuthenticationFailureReportRes(FALSE, tvb, offset, pinfo, tree, -1);
break;
case 17: /*registerPassword*/
offset=dissect_gsm_map_NewPassword(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
case 51: /*deactivateTraceMode*/
offset=dissect_gsm_map_DeactivateTraceModeRes(FALSE, tvb, offset, pinfo, tree, -1);
break;
- case 55: /*sendIdentification*/
- offset=dissect_gsm_map_SendIdentificationRes(FALSE, tvb, offset, pinfo, tree, -1);
+ case 55: /*sendIdentification
+ * In newer versions IMSI and authenticationSetList is OPTIONAL and two new parameters added
+ * however if the tag (3) is stripped of it should work with the 'new' def.(?)
+ */
+ octet = tvb_get_guint8(tvb,0) & 0xf;
+ if ( octet == 3){ /* This is a V3 message ??? */
+ offset = offset +2;
+ }
+ offset=dissect_gsm_map_SendIdentificationRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 56: /*sendAuthenticationInfo*/
octet = tvb_get_guint8(tvb,0) & 0xf;
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;
static int
dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo , proto_tree *tree, int hf_index) {
- char *version_ptr, *version_str;
+ char *version_ptr;
opcode = 0;
application_context_version = 0;
if (pinfo->private_data != NULL){
version_ptr = strrchr(pinfo->private_data,'.');
if (version_ptr) {
- version_str = g_strdup(version_ptr+1);
- application_context_version = atoi(version_str);
+ application_context_version = atoi(version_ptr+1);
}
}
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_ber_CHOICE(pinfo, tree, tvb, offset,
+ 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;
}
}
top_tree = parent_tree;
- dissector_add("tcap.itu_ssn",pinfo->match_port, map_handle);
+
/* create display subtree for the protocol */
if(parent_tree){
item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, FALSE);
tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
}
-static const value_string ssCode_vals[] = {
+const value_string ssCode_vals[] = {
{ 0x00, "allSS - all SS" },
{ 0x10 ,"allLineIdentificationSS - all line identification SS" },
{ 0x11 ,"clip - calling line identification presentation" },
static void range_delete_callback(guint32 ssn)
{
if (ssn) {
- dissector_delete("tcap.itu_ssn", ssn, map_handle);
+ delete_itu_tcap_subdissector(ssn, map_handle);
}
}
static void range_add_callback(guint32 ssn)
{
if (ssn) {
- dissector_add("tcap.itu_ssn", ssn, map_handle);
+ add_itu_tcap_subdissector(ssn, map_handle);
}
}
register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version3(3)" );
register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version2(2)" );
register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version1(1)" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version3(3)" );
register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version3(3)" );
register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version2(2)" );
register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version1(1)" );
/* 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,
{ "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,
"localerrorCode", HFILL }},
{&hf_gsm_map_global_errorCode_oid,
{ "Global Error Code OID", "gsm_map.hlobalerrorCodeoid",
- FT_BYTES, BASE_NONE, NULL, 0,
+ FT_STRING, BASE_NONE, NULL, 0,
"globalerrorCodeoid", HFILL }},
{&hf_gsm_map_global_errorCode,
{ "Global Error Code", "gsm_map.globalerrorCode",
{ "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,
FT_UINT8, BASE_HEX, VALS(gsm_map_number_plan_values), 0x0f,
"Number plan", HFILL }},
{ &hf_gsm_map_isdn_address_digits,
- { "ISDN Address digits", "gsm_map.isdn.adress.digits",
+ { "ISDN Address digits", "gsm_map.isdn.address.digits",
FT_STRING, BASE_NONE, NULL, 0,
"ISDN Address digits", HFILL }},
{ &hf_gsm_map_address_digits,
- { "Address digits", "gsm_map.adress.digits",
+ { "Address digits", "gsm_map.address.digits",
FT_STRING, BASE_NONE, NULL, 0,
"Address digits", HFILL }},
{ &hf_gsm_map_servicecentreaddress_digits,
/*--- 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,
"PrivateExtensionList/_item", HFILL }},
{ &hf_gsm_map_extId,
{ "extId", "gsm_map.extId",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"PrivateExtension/extId", HFILL }},
{ &hf_gsm_map_extType,
{ "extType", "gsm_map.extType",
{ "cancellationType", "gsm_map.cancellationType",
FT_UINT32, BASE_DEC, VALS(gsm_map_CancellationType_vals), 0,
"CancelLocationArg/cancellationType", HFILL }},
+ { &hf_gsm_map_imsi_WithLMSI,
+ { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
{ &hf_gsm_map_sgsn_Number,
{ "sgsn-Number", "gsm_map.sgsn_Number",
FT_BYTES, BASE_HEX, NULL, 0,
{ "suppress-T-CSI", "gsm_map.suppress_T_CSI",
FT_NONE, BASE_NONE, NULL, 0,
"CamelInfo/suppress-T-CSI", HFILL }},
- { &hf_gsm_map_imsi_WithLMSI,
- { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
- FT_NONE, BASE_NONE, NULL, 0,
- "Identity/imsi-WithLMSI", HFILL }},
{ &hf_gsm_map_HLR_List_item,
{ "Item", "gsm_map.HLR_List_item",
FT_BYTES, BASE_HEX, NULL, 0,
{ "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 }},
{ "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_STRING, BASE_NONE, NULL, 0,
- "", HFILL }},
{ &hf_gsm_map_networkResource,
{ "networkResource", "gsm_map.networkResource",
FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
"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,
{ &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",
"", HFILL }},
/*--- End of included file: packet-gsm_map-hfarr.c ---*/
-
+#line 1611 "packet-gsm_map-template.c"
};
/* List of subtrees */
&ett_gsm_map_GSMMAPPDU,
/*--- 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,
&ett_gsm_map_PcsExtensions,
&ett_gsm_map_SLR_Arg_PCS_Extensions,
&ett_gsm_map_CancelLocationArg,
+ &ett_gsm_map_CancelLocationArgV2,
&ett_gsm_map_CancelLocationRes,
&ett_gsm_map_PurgeMSArg,
&ett_gsm_map_PurgeMSRes,
&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,
&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 1624 "packet-gsm_map-template.c"
};
/* Register protocol */