diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
commit | e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch) | |
tree | 68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/asn1/m3ap/m3ap.cnf | |
parent | Initial commit. (diff) | |
download | wireshark-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.cnf | 348 |
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 = ¶meter_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, ¶meter_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 = ¶meter_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 = ¶meter_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 = ¶meter_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 = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + guint16 tvb_len; + + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 3, 3, FALSE, ¶meter_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 = ¶meter_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 |