summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/m3ap/m3ap.cnf
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
commite4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch)
tree68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/asn1/m3ap/m3ap.cnf
parentInitial commit. (diff)
downloadwireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz
wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/asn1/m3ap/m3ap.cnf')
-rw-r--r--epan/dissectors/asn1/m3ap/m3ap.cnf348
1 files changed, 348 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/m3ap/m3ap.cnf b/epan/dissectors/asn1/m3ap/m3ap.cnf
new file mode 100644
index 00000000..420a6a5e
--- /dev/null
+++ b/epan/dissectors/asn1/m3ap/m3ap.cnf
@@ -0,0 +1,348 @@
+# m3ap.cnf
+# m3ap conformation file
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.USE_VALS_EXT
+ProcedureCode
+ProtocolIE-ID
+
+#.EXPORTS
+
+#.PDU
+M3AP-PDU
+
+#.MAKE_ENUM
+ProcedureCode
+ProtocolIE-ID
+
+#.NO_EMIT
+# TBCD-STRING
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+ProtocolIE-FieldPair
+ProtocolIE-ContainerPair
+ProtocolIE-ContainerPairList
+ProtocolIE-ContainerList
+Presence
+
+#.TYPE_RENAME
+InitiatingMessage/value InitiatingMessage_value
+SuccessfulOutcome/value SuccessfulOutcome_value
+UnsuccessfulOutcome/value UnsuccessfulOutcome_value
+
+#.FIELD_RENAME
+InitiatingMessage/value initiatingMessagevalue
+UnsuccessfulOutcome/value unsuccessfulOutcome_value
+SuccessfulOutcome/value successfulOutcome_value
+
+PrivateIE-Field/id private_id
+ProtocolExtensionField/id ext_id
+
+PrivateIE-Field/value private_value
+ProtocolIE-Field/value ie_field_value
+
+#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &m3ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
+ }
+#.END
+
+#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
+# Currently not used
+# FN_PARS ProtocolIE-FieldPair/firstValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairFirstValue
+# FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue
+
+# FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID
+#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
+
+#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
+
+#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
+#.FN_HDR InitiatingMessage/value
+ message_type = INITIATING_MESSAGE;
+#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
+#.FN_HDR SuccessfulOutcome/value
+ message_type = SUCCESSFUL_OUTCOME;
+#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
+#.FN_HDR UnsuccessfulOutcome/value
+ message_type = UNSUCCESSFUL_OUTCOME;
+
+#--- Parameterization is not supported in asn2wrs ---
+
+#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, M3AP-PROTOCOL-IES : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-Container {{IEsSetParam}}
+
+# FN_PARS ProtocolIE-ContainerList
+#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+# FN_HDR ProtocolIE-ContainerList
+# static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
+# { "lowerBound", ASN1_PAR_INTEGER },
+# { "upperBound", ASN1_PAR_INTEGER },
+# { NULL, (asn1_par_type)0 }
+# };
+# asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars);
+# END
+
+#ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, M3AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+# SEQUENCE (SIZE (lowerBound..upperBound)) OF
+# ProtocolIE-ContainerPair {{IEsSetParam}}
+
+# FN_PARS ProtocolIE-ContainerPairList
+#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
+#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
+# FN_HDR ProtocolIE-ContainerPairList
+# static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
+# { "lowerBound", ASN1_PAR_INTEGER },
+# { "upperBound", ASN1_PAR_INTEGER },
+# { NULL, 0 }
+# };
+# asn1_stack_frame_check(actx, "ProtocolIE-ContainerPairList", ProtocolIE_ContainerPairList_pars);
+# END
+
+# following construction is not supported by asn2wrs
+# PLMNidentity ::= TBCD-STRING (SIZE (3))
+
+#.FN_BODY PLMN-Identity VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ struct m3ap_private_data *m3ap_data = m3ap_get_private_data(actx->pinfo);
+ e212_number_type_t number_type = m3ap_data->number_type;
+ m3ap_data->number_type = E212_NONE;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &parameter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, FALSE);
+#.END
+
+#.FN_BODY ECGI
+ struct m3ap_private_data *m3ap_data = m3ap_get_private_data(actx->pinfo);
+ m3ap_data->number_type = E212_ECGI;
+%(DEFAULT_BODY)s
+
+#.FN_BODY IPAddress VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ gint tvb_len;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ tvb_len = tvb_reported_length(parameter_tvb);
+ subtree = proto_item_add_subtree(actx->created_item, ett_m3ap_IPAddress);
+ switch (tvb_len) {
+ case 4:
+ proto_tree_add_item(subtree, hf_m3ap_IPAddress_v4, parameter_tvb, 0, 4, ENC_BIG_ENDIAN);
+ break;
+ case 16:
+ proto_tree_add_item(subtree, hf_m3ap_IPAddress_v6, parameter_tvb, 0, 16, ENC_NA);
+ break;
+ default:
+ proto_tree_add_expert(subtree, actx->pinfo, &ei_m3ap_invalid_ip_address_len, parameter_tvb, 0, tvb_len);
+ break;
+ }
+#.END
+
+#.FN_BODY Absolute-Time-ofMBMS-Data VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ proto_tree_add_item(tree, hf_m3ap_Absolute_Time_ofMBMS_Data_value, parameter_tvb, 0, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
+#.END
+
+#.TYPE_ATTR
+BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+
+#.FN_BODY MBMS-Service-Area VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ guint16 tvb_len;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ tvb_len = tvb_reported_length(parameter_tvb);
+
+ dissect_gtpv2_mbms_service_area(parameter_tvb, actx->pinfo, tree, actx->created_item, tvb_len, 0, 0, NULL);
+#.END
+
+#.FN_BODY MBMS-Session-Duration VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ guint16 tvb_len;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &parameter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+
+ tvb_len = tvb_reported_length(parameter_tvb);
+
+ proto_item_append_text(actx->created_item, " ");
+ dissect_gtpv2_mbms_session_duration(parameter_tvb, actx->pinfo, tree, actx->created_item, tvb_len, 0, 0, NULL);
+#.END
+
+#.FN_BODY MinimumTimeToMBMSDataTransfer VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+ guint16 tvb_len;
+
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ tvb_len = tvb_reported_length(parameter_tvb);
+ dissect_gtpv2_mbms_time_to_data_xfer(parameter_tvb, actx->pinfo, tree, actx->created_item, tvb_len, 0, 0, NULL);
+#.END
+
+#------ Pretify info column -----
+#.FN_HDR MBMSSessionStartRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Request ");
+#.FN_HDR MBMSSessionStartResponse
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Response ");
+#.FN_HDR MBMSSessionStartFailure
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Failure ");
+#.FN_HDR MBMSSessionStopRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Stop Request ");
+#.FN_HDR MBMSSessionStopResponse
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Stop Response ");
+#.FN_HDR MBMSSessionUpdateRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Request ");
+#.FN_HDR MBMSSessionUpdateResponse
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Response ");
+#.FN_HDR MBMSSessionUpdateFailure
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Failure ");
+#.FN_HDR ErrorIndication
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"Error Indication ");
+#.FN_HDR Reset
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"Reset ");
+#.FN_HDR ResetAcknowledge
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"Reset Acknowledge ");
+#.FN_HDR PrivateMessage
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"Private Message ");
+#.FN_HDR MCEConfigurationUpdate
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update ");
+#.FN_HDR MCEConfigurationUpdateAcknowledge
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update Acknowledge ");
+#.FN_HDR MCEConfigurationUpdateFailure
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update Failure ");
+#.FN_HDR M3SetupRequest
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Request ");
+#.FN_HDR M3SetupResponse
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Response ");
+#.FN_HDR M3SetupFailure
+ col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Failure ");
+
+
+#.ASSIGN_VALUE_TO_TYPE # M3AP does not have constants assigned to types, they are pure INTEGER
+# ProcedureCode
+id-mBMSsessionStart ProcedureCode
+id-mBMSsessionStop ProcedureCode
+id-errorIndication ProcedureCode
+id-privateMessage ProcedureCode
+id-Reset ProcedureCode
+id-mBMSsessionUpdate ProcedureCode
+id-mCEConfigurationUpdate ProcedureCode
+id-m3Setup ProcedureCode
+
+# ProtocolIE
+id-MME-MBMS-M3AP-ID ProtocolIE-ID
+id-MCE-MBMS-M3AP-ID ProtocolIE-ID
+id-TMGI ProtocolIE-ID
+id-MBMS-Session-ID ProtocolIE-ID
+id-MBMS-E-RAB-QoS-Parameters ProtocolIE-ID
+id-MBMS-Session-Duration ProtocolIE-ID
+id-MBMS-Service-Area ProtocolIE-ID
+id-TNL-Information ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-MBMS-Service-Area-List ProtocolIE-ID
+id-MBMS-Service-Area-List-Item ProtocolIE-ID
+id-TimeToWait ProtocolIE-ID
+id-ResetType ProtocolIE-ID
+id-MBMS-Service-associatedLogicalM3-ConnectionItem ProtocolIE-ID
+id-MBMS-Service-associatedLogicalM3-ConnectionListResAck ProtocolIE-ID
+id-MinimumTimeToMBMSDataTransfer ProtocolIE-ID
+id-AllocationAndRetentionPriority ProtocolIE-ID
+id-Global-MCE-ID ProtocolIE-ID
+id-MCEname ProtocolIE-ID
+id-MBMSServiceAreaList ProtocolIE-ID
+id-Time-ofMBMS-DataTransfer ProtocolIE-ID
+id-Time-ofMBMS-DataStop ProtocolIE-ID
+id-Reestablishment ProtocolIE-ID
+id-Alternative-TNL-Information ProtocolIE-ID
+id-MBMS-Cell-List ProtocolIE-ID
+
+#.REGISTER
+
+#M3AP-PROTOCOL-IES
+MME-MBMS-M3AP-ID N m3ap.ies id-MME-MBMS-M3AP-ID
+MCE-MBMS-M3AP-ID N m3ap.ies id-MCE-MBMS-M3AP-ID
+TMGI N m3ap.ies id-TMGI
+MBMS-Session-ID N m3ap.ies id-MBMS-Session-ID
+MBMS-E-RAB-QoS-Parameters N m3ap.ies id-MBMS-E-RAB-QoS-Parameters
+MBMS-Session-Duration N m3ap.ies id-MBMS-Session-Duration
+MBMS-Service-Area N m3ap.ies id-MBMS-Service-Area
+TNL-Information N m3ap.ies id-TNL-Information
+CriticalityDiagnostics N m3ap.ies id-CriticalityDiagnostics
+Cause N m3ap.ies id-Cause
+#MBMS-Service-Area-List N m3ap.ies id-MBMS-Service-Area-List
+#MBMS-Service-Area-List-Item N m3ap.ies id-MBMS-Service-Area-List-Item
+TimeToWait N m3ap.ies id-TimeToWait
+ResetType N m3ap.ies id-ResetType
+MBMS-Service-associatedLogicalM3-ConnectionItem N m3ap.ies id-MBMS-Service-associatedLogicalM3-ConnectionItem
+MBMS-Service-associatedLogicalM3-ConnectionListResAck N m3ap.ies id-MBMS-Service-associatedLogicalM3-ConnectionListResAck
+MinimumTimeToMBMSDataTransfer N m3ap.ies id-MinimumTimeToMBMSDataTransfer
+AllocationAndRetentionPriority N m3ap.ies id-AllocationAndRetentionPriority
+Global-MCE-ID N m3ap.ies id-Global-MCE-ID
+MCEname N m3ap.ies id-MCEname
+MBMSServiceAreaListItem N m3ap.ies id-MBMSServiceAreaList
+Absolute-Time-ofMBMS-Data N m3ap.ies id-Time-ofMBMS-DataTransfer
+Absolute-Time-ofMBMS-Data N m3ap.ies id-Time-ofMBMS-DataStop
+Reestablishment N m3ap.ies id-Reestablishment
+TNL-Information N m3ap.ies id-Alternative-TNL-Information
+MBMS-Cell-List N m3ap.ies id-MBMS-Cell-List
+
+#M3AP-ELEMENTARY-PROCEDURE
+MBMSSessionStartRequest N m3ap.proc.imsg id-mBMSsessionStart
+MBMSSessionStartResponse N m3ap.proc.sout id-mBMSsessionStart
+MBMSSessionStartFailure N m3ap.proc.uout id-mBMSsessionStart
+
+MBMSSessionStopRequest N m3ap.proc.imsg id-mBMSsessionStop
+MBMSSessionStopResponse N m3ap.proc.sout id-mBMSsessionStop
+
+MBMSSessionUpdateRequest N m3ap.proc.imsg id-mBMSsessionUpdate
+MBMSSessionUpdateResponse N m3ap.proc.sout id-mBMSsessionUpdate
+MBMSSessionUpdateFailure N m3ap.proc.uout id-mBMSsessionUpdate
+
+ErrorIndication N m3ap.proc.imsg id-errorIndication
+
+Reset N m3ap.proc.imsg id-Reset
+ResetAcknowledge N m3ap.proc.sout id-Reset
+
+PrivateMessage N m3ap.proc.imsg id-privateMessage
+
+MCEConfigurationUpdate N m3ap.proc.imsg id-mCEConfigurationUpdate
+MCEConfigurationUpdateAcknowledge N m3ap.proc.sout id-mCEConfigurationUpdate
+MCEConfigurationUpdateFailure N m3ap.proc.uout id-mCEConfigurationUpdate
+
+M3SetupRequest N m3ap.proc.imsg id-m3Setup
+M3SetupResponse N m3ap.proc.sout id-m3Setup
+M3SetupFailure N m3ap.proc.uout id-m3Setup
+
+#.END