2012-02-01 19:27:08 +00:00
|
|
|
# m3ap.cnf
|
|
|
|
# m3ap conformation file
|
|
|
|
# $Id$
|
|
|
|
|
|
|
|
#.OPT
|
|
|
|
PER
|
|
|
|
ALIGNED
|
|
|
|
#.END
|
|
|
|
|
2012-04-25 08:39:49 +00:00
|
|
|
#.USE_VALS_EXT
|
|
|
|
ProcedureCode
|
|
|
|
ProtocolIE-ID
|
|
|
|
|
2012-02-01 19:27:08 +00:00
|
|
|
#.EXPORTS
|
|
|
|
|
|
|
|
#.PDU_NEW
|
|
|
|
M3AP-PDU
|
|
|
|
|
|
|
|
#.MAKE_ENUM
|
|
|
|
ProcedureCode
|
|
|
|
ProtocolIE-ID
|
|
|
|
|
2012-04-25 08:39:49 +00:00
|
|
|
#.NO_EMIT
|
|
|
|
# TBCD-STRING
|
2012-02-01 19:27:08 +00:00
|
|
|
|
|
|
|
#.OMIT_ASSIGNMENT
|
|
|
|
# Get rid of unused code warnings
|
|
|
|
ProtocolIE-FieldPair
|
|
|
|
ProtocolIE-ContainerPair
|
|
|
|
ProtocolIE-ContainerPairList
|
2012-02-01 20:20:03 +00:00
|
|
|
Presence
|
2012-02-01 19:27:08 +00:00
|
|
|
|
|
|
|
#.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
|
|
|
|
|
2012-04-25 08:39:49 +00:00
|
|
|
# FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID
|
2012-02-01 20:20:03 +00:00
|
|
|
#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
|
2012-02-01 19:27:08 +00:00
|
|
|
|
|
|
|
#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
|
|
|
|
#.FN_FTR ProcedureCode
|
|
|
|
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s",
|
|
|
|
val_to_str_ext(ProcedureCode, &m3ap_ProcedureCode_vals_ext,
|
|
|
|
"unknown message"));
|
|
|
|
#.END
|
|
|
|
|
|
|
|
#.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 },
|
2013-03-21 14:29:58 +00:00
|
|
|
{ NULL, (asn1_par_type)0 }
|
2012-02-01 19:27:08 +00:00
|
|
|
};
|
|
|
|
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
|
|
|
|
|
|
|
|
# Handle 64 bit constraint
|
|
|
|
#.FN_PARS BitRate FN_VARIANT = _64b
|
|
|
|
|
2012-04-25 08:39:49 +00:00
|
|
|
# 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;
|
|
|
|
|
|
|
|
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, FALSE);
|
|
|
|
#.END
|
|
|
|
|
|
|
|
#.FN_BODY IPAddress VAL_PTR = ¶meter_tvb
|
|
|
|
tvbuff_t *parameter_tvb=NULL;
|
|
|
|
gint tvb_len;
|
|
|
|
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
|
|
|
|
if (!parameter_tvb)
|
|
|
|
return offset;
|
|
|
|
|
|
|
|
tvb_len = tvb_length(parameter_tvb);
|
|
|
|
proto_tree_add_item(tree, hf_m3ap_IPAddress, parameter_tvb, 0, tvb_len, ENC_BIG_ENDIAN);
|
|
|
|
#.END
|
|
|
|
|
|
|
|
#.FN_BODY Absolute-Time-ofMBMS-Data VAL_PTR = ¶meter_tvb
|
|
|
|
tvbuff_t *parameter_tvb=NULL;
|
|
|
|
const gchar *time_str;
|
|
|
|
gint tvb_len;
|
|
|
|
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
|
|
|
|
if (!parameter_tvb)
|
|
|
|
return offset;
|
|
|
|
|
|
|
|
tvb_len = tvb_length(parameter_tvb);
|
|
|
|
|
|
|
|
time_str = tvb_ntp_fmt_ts(parameter_tvb, 0);
|
|
|
|
proto_tree_add_string(tree, hf_m3ap_Absolute_Time_ofMBMS_Data_value, parameter_tvb, 0, tvb_len, time_str);
|
|
|
|
#.END
|
|
|
|
|
|
|
|
#.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_length(parameter_tvb);
|
|
|
|
|
|
|
|
dissect_gtpv2_mbms_service_area(parameter_tvb, actx->pinfo, tree, actx->created_item, tvb_len, 0, 0);
|
|
|
|
#.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_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);
|
|
|
|
#.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_length(parameter_tvb);
|
|
|
|
dissect_gtpv2_mbms_time_to_data_xfer(parameter_tvb, actx->pinfo, tree, actx->created_item, tvb_len, 0, 0);
|
|
|
|
#.END
|
|
|
|
|
2012-06-14 08:44:45 +00:00
|
|
|
#------ 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 ");
|
|
|
|
|
|
|
|
|
2012-02-01 19:27:08 +00:00
|
|
|
#.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
|
|
|
|
|
|
|
|
#.REGISTER_NEW
|
|
|
|
|
|
|
|
#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
|
|
|
|
|
|
|
|
#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
|
|
|
|
|
|
|
|
#.TYPE_ATTR
|
|
|
|
BitRate TYPE = FT_UINT64 DISPLAY = BASE_DEC STRINGS = NULL
|
|
|
|
#.END
|