laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/32405 )
Change subject: WIP: BSSMAP_Templates: Add VBS/VGCS related templates ......................................................................
WIP: BSSMAP_Templates: Add VBS/VGCS related templates
As we want to test VBS/VGCS related aspects of BSC and/or MSC soon, we will need related templates to construct and match related messages and IEs.
Change-Id: I949f731de794b22292b01d0ddf9a75a9e7e7e71d --- M library/BSSMAP_Templates.ttcn 1 file changed, 491 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/05/32405/1
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 02aad9f..7dc5ce7 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -2,7 +2,7 @@
/* BSSMAP Templates, building on top of BSSAP_Types from Ericsson. * - * (C) 2017-2019 by Harald Welte laforge@gnumonks.org + * (C) 2017-2023 by Harald Welte laforge@gnumonks.org * contributions by sysmocom - s.f.m.c. GmbH * All rights reserved. * @@ -396,13 +396,13 @@ }
-template BSSMAP_IE_Layer3Information ts_BSSMAP_IE_L3Info(octetstring l3info) := { +template (value) BSSMAP_IE_Layer3Information ts_BSSMAP_IE_L3Info(template (value) octetstring l3info) := { elementIdentifier := '17'O, lengthIndicator := 0, layer3info := l3info }
-template BSSMAP_IE_Layer3Information tr_BSSMAP_IE_L3Info(template octetstring l3info) := { +template (present) BSSMAP_IE_Layer3Information tr_BSSMAP_IE_L3Info(template (present) octetstring l3info) := { elementIdentifier := '17'O, lengthIndicator := ?, layer3info := l3info @@ -1962,6 +1962,481 @@ rTC := '00'B /* Response Time is not specified */ }
+ +/* 3.2.2.55 */ +template (value) BSSMAP_IE_GroupCallReference +ts_BSSMAP_IE_GroupCallRef(template (value) GroupCallRef group_call_ref) :={ + elementIdentifier := '37'O, + lengthIndicator := 0, // overwritten + descrGroupbroadcastCallRef := group_call_ref +} +template (present) BSSMAP_IE_GroupCallReference +tr_BSSMAP_IE_GroupCallRef(template (present) GroupCallRef group_call_ref) :={ + elementIdentifier := '37'O, + lengthIndicator := 0, // overwritten + descrGroupbroadcastCallRef := group_call_ref +} + +/* 3.2.2.88 */ +template (value) BSSMAP_IE_VGCS_FeatureFlags +ts_BSSMAP_IE_VGCS_FeatureFlags(BIT1 tp_ind, BIT2 as_ind, BIT1 bss_res, BIT1 tcp) := { + elementIdentifier := '69'O, + lengthIndicator := 0, // overwritten + TP_Ind := tp_ind, + AS_Ind := as_ind, + BSS_Res := bss_res, + tCP := tcp, + spare := '000'B +}; +template (present) BSSMAP_IE_VGCS_FeatureFlags +tr_BSSMAP_IE_VGCS_FeatureFlags(BIT1 tp_ind, BIT2 as_ind, BIT1 bss_res, BIT1 tcp) := { + elementIdentifier := '69'O, + lengthIndicator := ?, + TP_Ind := tp_ind, + AS_Ind := as_ind, + BSS_Res := bss_res, + tCP := tcp, + spare := ? +}; + +/* 3.2.2.98 */ +template (value) BSSMAP_IE_ApplicationData +ts_BSSMAP_IE_ApplicationData(template (value) OCT9 adi) := { + elementIdentifier := '78'O, + lengthIndicator := 0, // overwritten + applicationDataInfo := adi +}; +template (present) BSSMAP_IE_ApplicationData +tr_BSSMAP_IE_ApplicationData(template (present) OCT9 adi) := { + elementIdentifier := '78'O, + lengthIndicator := ?, + applicationDataInfo := adi +}; + +/* 3.2.2.99 */ +template (value) BSSMAP_IE_DataIdentity +ts_BSSMAP_IE_DataIdentity(template (value) DataIdentity data_id) := { + elementIdentifier := '79'O, + lengthIndicator := 0, // overwritten + dataIdentityInfo := data_id +}; +template (present) BSSMAP_IE_DataIdentity +tr_BSSMAP_IE_DataIdentity(template (present) DataIdentity data_id) := { + elementIdentifier := '79'O, + lengthIndicator := ?, + dataIdentityInfo := data_id +}; + +/* 3.2.2.52 */ +template (value) BSSMAP_IE_AssignmentRequirement +ts_BSSMAP_IE_AssRequirement(template (value) OCT1 ass_rqm) := { + elementIdentifier := '33'O, + assignmentRequirement := ass_rqm +} +template (present) BSSMAP_IE_AssignmentRequirement +tr_BSSMAP_IE_AssRequirement(template (present) OCT1 ass_rqm) := { + elementIdentifier := '33'O, + assignmentRequirement := ass_rqm +} + +/* 3.2.2.89 */ +template (value) BSSMAP_IE_TalkerPriority +ts_BSSMAP_IE_TalkerPriority(template (value) BIT2 prio) := { + elementIdentifier := '6A'O, + priority := prio, + spare := '000000'B +} +template (value) BSSMAP_IE_TalkerPriority +tr_BSSMAP_IE_TalkerPriority(template (value) BIT2 prio) := { + elementIdentifier := '6A'O, + priority := prio, + spare := '000000'B +} + +/* 3.2.2.90 */ +template (value) BSSMAP_IE_EmergencySetIndication +ts_BSSMAP_IE_EmergencySetIndication := { + elementIdentifier := '6B'O +} +template (present) BSSMAP_IE_EmergencySetIndication +tr_BSSMAP_IE_EmergencySetIndication := { + elementIdentifier := '6B'O +} + + + + +/* Section 3.2.1.50 */ +template (value) PDU_BSSAP +ts_BSSMAP_VGCS_VBS_Setup(template (value) GroupCallRef group_call_ref) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSSetup := { + messageType := '04'O, + groupCallReference := ts_BSSMAP_IE_GroupCallRef(group_call_ref), + priority := omit, + vGCS_FeatureFlags := omit + } + } + } +} +template (present) PDU_BSSAP +tr_BSSMAP_VGCS_VBS_Setup(template (present) GroupCallRef group_call_ref) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSSetup := { + messageType := '04'O, + groupCallReference := tr_BSSMAP_IE_GroupCallRef(group_call_ref), + priority := *, + vGCS_FeatureFlags := * + } + } + } +} + +/* Section 3.2.1.51 */ +template (value) PDU_BSSAP +ts_BSSMAP_VGCS_VBS_SetupAck(template (omit) BSSMAP_IE_VGCS_FeatureFlags feature_flags) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSSetupAck := { + messageType := '05'O, + vGCS_FeatureFlags := feature_flags + } + } + } +} +template (present) PDU_BSSAP +tr_BSSMAP_VGCS_VBS_SetupAck(template BSSMAP_IE_VGCS_FeatureFlags feature_flags) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSSetupAck := { + messageType := '05'O, + vGCS_FeatureFlags := feature_flags + } + } + } +} + +/* Section 3.2.1.52 */ +template (value) PDU_BSSAP +ts_BSSMAP_VGCS_VBS_SetupRefuse(BssmapCause cause) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSSetupRefuse := { + messageType := '06'O, + cause := ts_BSSMAP_IE_Cause(cause) + } + } + } +} +template (present) PDU_BSSAP +tr_BSSMAP_VGCS_VBS_SetupRefuse(template (present) myBSSMAP_Cause cause) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSSetupRefuse := { + messageType := '06'O, + cause := tr_BSSMAP_IE_Cause(cause) + } + } + } +} + +/* Section 3.2.1.53 */ +template (value) PDU_BSSAP +ts_BSSMAP_VGCS_VBS_AssignmentReq(template (value) BSSMAP_IE_ChannelType ch_type, + template (value) OCT1 ass_requirement, + template (value) BSSMAP_IE_CellIdentifier cell_id, + template (value) GroupCallRef group_call_ref, + template (omit) BSSMAP_IE_CircuitIdentityCode cic := omit, + template (omit) BSSMAP_IE_AoIP_TransportLayerAddress aoip := omit) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSAssignmentRequest := { + messageType := '07'O, /* overwritten */ + channelType := ch_type, + assignmentRequirement := ts_BSSMAP_IE_AssRequirement(ass_requirement), + cellIdentifier := cell_id, + groupCallReference := ts_BSSMAP_IE_GroupCallRef(group_call_ref), + priority := omit, + circuitIdentityCode := cic, + downLinkDTX_Flag := omit, + encryptionInformation := omit, + vSTK_RAND := omit, + vSTK := omit, + cellIdentifierListSegment := omit, + aoIPTransportLayer := aoip, + codecList := omit + } + } + } +} +template (present) PDU_BSSAP +tr_BSSMAP_VGCS_VBS_AssignmentReq(template (present) BSSMAP_IE_ChannelType ch_type, + template (present) OCT1 ass_requirement, + template (present) BSSMAP_IE_CellIdentifier cell_id, + template (present) GroupCallRef group_call_ref, + template BSSMAP_IE_CircuitIdentityCode cic := *, + template BSSMAP_IE_AoIP_TransportLayerAddress aoip := ?) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSAssignmentRequest := { + messageType := '07'O, /* overwritten */ + channelType := ch_type, + assignmentRequirement := tr_BSSMAP_IE_AssRequirement(ass_requirement), + cellIdentifier := cell_id, + groupCallReference := tr_BSSMAP_IE_GroupCallRef(group_call_ref), + priority := omit, + circuitIdentityCode := cic, + downLinkDTX_Flag := omit, + encryptionInformation := omit, + vSTK_RAND := omit, + vSTK := omit, + cellIdentifierListSegment := omit, + aoIPTransportLayer := aoip, + codecList := omit + } + } + } +} + +/* Section 3.2.1.54 */ +template (value) PDU_BSSAP +ts_BSSMAP_VGCS_VBS_AssignmentRes(template (value) BSSMAP_IE_ChannelType ch_type, + template (value) BSSMAP_IE_CellIdentifier cell_id, + template (omit) BSSMAP_IE_ChosenChannel chosen_ch := omit, + template (omit) BSSMAP_IE_CircuitIdentityCode cic := omit, + template (omit) BSSMAP_IE_AoIP_TransportLayerAddress aoip := omit, + template (omit) BSSMAP_IE_SpeechCodec speech_codec := omit) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSAssignmentResult := { + messageType := '1C'O, /* overwritten */ + channelType := ch_type, + cellIdentifier := cell_id, + chosenChannel := chosen_ch, + circuitIdentityCode := cic, + circuitPool := omit, + aoIPTransportLayer := aoip, + speechCodec := speech_codec, + callIdentifier := omit + } + } + } +} +template (present) PDU_BSSAP +tr_BSSMAP_VGCS_VBS_AssignmentRes(template (present) BSSMAP_IE_ChannelType ch_type, + template (present) BSSMAP_IE_CellIdentifier cell_id, + template BSSMAP_IE_ChosenChannel chosen_ch := omit, + template BSSMAP_IE_CircuitIdentityCode cic := omit, + template BSSMAP_IE_AoIP_TransportLayerAddress aoip := omit, + template BSSMAP_IE_SpeechCodec speech_codec := omit) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSAssignmentResult := { + messageType := '1C'O, /* overwritten */ + channelType := ch_type, + cellIdentifier := cell_id, + chosenChannel := chosen_ch, + circuitIdentityCode := cic, + circuitPool := *, + aoIPTransportLayer := aoip, + speechCodec := speech_codec, + callIdentifier := * + } + } + } +} + +/* Section 3.2.1.55 */ +template (value) PDU_BSSAP +ts_BSSMAP_VGCS_VBS_AssignmentFail(BssmapCause cause) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSAssignmentFailure := { + messageType := '1D'O, /* overwritten */ + cause := ts_BSSMAP_IE_Cause(cause), + /* we only implement AoIP for now... */ + circuitPool := omit, + circuitPoolList := omit + } + } + } +} +template (present) PDU_BSSAP +tr_BSSMAP_VGCS_VBS_AssignmentFail(template (present) myBSSMAP_Cause cause) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSAssignmentFailure := { + messageType := '1D'O, /* overwritten */ + cause := tr_BSSMAP_IE_Cause(cause), + /* we only implement AoIP for now... */ + circuitPool := omit, + circuitPoolList := omit + } + } + } +} + +/* Section 3.2.1.56 */ +template (value) PDU_BSSAP +ts_BSSMAP_VGCS_VBS_QueuingInd +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSQueuingIndication := { + messageType := '1E'O + } + } + } +} +template (present) PDU_BSSAP +tr_BSSMAP_VGCS_VBS_QueuingInd +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + vGCS_VBSQueuingIndication := { + messageType := '1E'O + } + } + } +} + +/* Section 3.2.1.57 */ +template (value) PDU_BSSAP +ts_BSSMAP_UplinkReq_L3(template (value) BIT2 priority, + template (omit) BSSMAP_IE_CellIdentifier cell_id, + template (value) octetstring l3_info) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + uplinkRequest := { + messageType := '1F'O, + talkerPriority := ts_BSSMAP_IE_TalkerPriority(priority), + cellIdentifier := cell_id, + layer3Information := ts_BSSMAP_IE_L3Info(l3_info), + mobileIdentity := omit + } + } + } +} +template (present) PDU_BSSAP +tr_BSSMAP_UplinkReq_L3(template (present) BIT2 priority, + template BSSMAP_IE_CellIdentifier cell_id, + template (present) octetstring l3_info) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + uplinkRequest := { + messageType := '1F'O, + talkerPriority := tr_BSSMAP_IE_TalkerPriority(priority), + cellIdentifier := cell_id, + layer3Information := tr_BSSMAP_IE_L3Info(l3_info), + mobileIdentity := omit + } + } + } +} +template (value) PDU_BSSAP +ts_BSSMAP_UplinkReq_MI(template (value) BIT2 priority, + template (omit) BSSMAP_IE_CellIdentifier cell_id, + template (value) BSSMAP_IE_MobileIdentity mobile_id) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + uplinkRequest := { + messageType := '1F'O, + talkerPriority := ts_BSSMAP_IE_TalkerPriority(priority), + cellIdentifier := cell_id, + layer3Information := omit, + mobileIdentity := mobile_id + } + } + } +} +template (present) PDU_BSSAP +tr_BSSMAP_UplinkReq_MI(template (present) BIT2 priority, + template (omit) BSSMAP_IE_CellIdentifier cell_id, + template (present) BSSMAP_IE_MobileIdentity mobile_id) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + uplinkRequest := { + messageType := '1F'O, + talkerPriority := tr_BSSMAP_IE_TalkerPriority(priority), + cellIdentifier := cell_id, + layer3Information := omit, + mobileIdentity := mobile_id + } + } + } +} + +/* 3.2.1.58 */ +template (value) PDU_BSSAP +ts_BSSMAP_UplinkReqAck(template (value) BIT2 priority, + template (omit) BSSMAP_IE_EmergencySetIndication ems := omit, + template (omit) BSSMAP_IE_TalkerIdentity talker_id := omit) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + uplinkRequestAck := { + messageType := '27'O, + talkerPriority := ts_BSSMAP_IE_TalkerPriority(priority), + emergencySetIndication := ems, + talkerIdentity := talker_id + } + } + } +} + + + + +/* Section 3.2.1.82 */ +template (value) PDU_BSSAP +ts_BSSMAP_NotificationData(template (value) OCT9 app_data, template (value) DataIdentity data_identity) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + notificationData := { + messageType := '62'O, + applicationData := ts_BSSMAP_IE_ApplicationData(app_data), + dataIdentity := ts_BSSMAP_IE_DataIdentity(data_identity), + mSISDN := omit + } + } + } +} +template (present) PDU_BSSAP +tr_BSSMAP_NotificationData(template (present) OCT9 app_data, template (present) DataIdentity data_identity) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + notificationData := { + messageType := '62'O, + applicationData := tr_BSSMAP_IE_ApplicationData(app_data), + dataIdentity := tr_BSSMAP_IE_DataIdentity(data_identity), + mSISDN := ? + } + } + } +} + + + template (value) PDU_BSSAP ts_BSSMAP_Perform_Location_Request(template (omit) BSSMAP_IE_IMSI imsi, template (omit) BSSMAP_IE_CellIdentifier cellIdentifier := omit,