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.
This requires titan.ProtocolModules.BSSMAP updated for modern-day
VGCS/VBS related message definitions as I submitted in
https://gitlab.eclipse.org/eclipse/titan/titan.ProtocolModules.BSSMAP_v11.2.0/-/merge_requests/3
Change-Id: I949f731de794b22292b01d0ddf9a75a9e7e7e71d
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index 02aad9f..c564cfd 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
@@ -653,6 +653,32 @@
codecElements := valueof(elem)
}
+function ts_BSSMAP_IE_CallIdentifier(template (omit) OCT4 cid) return template (omit) BSSMAP_IE_CallIdentifier {
+ if (istemplatekind(cid, "omit")) {
+ return omit;
+ } else {
+ var template (present) BSSMAP_IE_CallIdentifier ie := {
+ elementIdentifier := '7F'O,
+ callIdentifierInfo := cid
+ }
+ return ie;
+ }
+}
+function tr_BSSMAP_IE_CallIdentifier(template OCT4 cid) return template BSSMAP_IE_CallIdentifier {
+ if (istemplatekind(cid, "*")) {
+ return *;
+ } else if (istemplatekind(cid, "omit")) {
+ return omit;
+ } else {
+ var template BSSMAP_IE_CallIdentifier ie := {
+ elementIdentifier := '7F'O,
+ callIdentifierInfo := cid
+ }
+ return ie;
+ }
+}
+
+
template (present) BSSMAP_IE_Osmo_OsmuxCID tr_OsmuxCID(template (present) INT1 cid := ?) := {
elementIdentifier := 'F1'O,
osmuxCID := cid
@@ -1962,6 +1988,688 @@
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 */
+function ts_BSSMAP_IE_TalkerPriority(template (omit) BIT2 prio)
+return template (omit) BSSMAP_IE_TalkerPriority {
+ if (istemplatekind(prio, "omit")) {
+ return omit;
+ } else {
+ var template (present) BSSMAP_IE_TalkerPriority tp := {
+ elementIdentifier := '6A'O,
+ priority := prio,
+ spare := '000000'B
+ };
+ return tp;
+ }
+}
+function tr_BSSMAP_IE_TalkerPriority(template BIT2 prio)
+return template BSSMAP_IE_TalkerPriority {
+ if (istemplatekind(prio, "omit")) {
+ return omit;
+ } else if (istemplatekind(prio, "*")) {
+ return *;
+ } else {
+ var template BSSMAP_IE_TalkerPriority tp := {
+ elementIdentifier := '6A'O,
+ priority := prio,
+ spare := ?
+ }
+ return tp;
+ }
+}
+
+/* 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,
+ template (omit) BSSMAP_IE_VGCS_FeatureFlags feature_flags := omit)
+modifies ts_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ vGCS_VBSSetup := {
+ messageType := '04'O,
+ groupCallReference := ts_BSSMAP_IE_GroupCallRef(group_call_ref),
+ priority := omit,
+ vGCS_FeatureFlags := feature_flags
+ }
+ }
+ }
+}
+template (present) PDU_BSSAP
+tr_BSSMAP_VGCS_VBS_Setup(template (present) GroupCallRef group_call_ref,
+ template BSSMAP_IE_VGCS_FeatureFlags feature_flags := *)
+modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ vGCS_VBSSetup := {
+ messageType := '04'O,
+ groupCallReference := tr_BSSMAP_IE_GroupCallRef(group_call_ref),
+ priority := *,
+ vGCS_FeatureFlags := feature_flags
+ }
+ }
+ }
+}
+
+/* Section 3.2.1.51 */
+template (value) PDU_BSSAP
+ts_BSSMAP_VGCS_VBS_SetupAck(template (omit) BSSMAP_IE_VGCS_FeatureFlags feature_flags := omit)
+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,
+ template (omit) OCT4 call_id := 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,
+ callIdentifier := ts_BSSMAP_IE_CallIdentifier(call_id),
+ 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 := ?,
+ template OCT4 call_id := ?)
+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,
+ callIdentifier := tr_BSSMAP_IE_CallIdentifier(call_id),
+ 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,
+ template (omit) OCT4 call_id := 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 := ts_BSSMAP_IE_CallIdentifier(call_id)
+ }
+ }
+ }
+}
+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 := *,
+ template BSSMAP_IE_CircuitIdentityCode cic := omit,
+ template BSSMAP_IE_AoIP_TransportLayerAddress aoip := ?,
+ template BSSMAP_IE_SpeechCodec speech_codec := ?,
+ template OCT4 call_id := ?)
+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 := tr_BSSMAP_IE_CallIdentifier(call_id)
+ }
+ }
+ }
+}
+
+/* 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 (omit) 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 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 (omit) 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
+ }
+ }
+ }
+}
+template (present) PDU_BSSAP
+tr_BSSMAP_UplinkReqAck(template BIT2 priority,
+ template BSSMAP_IE_EmergencySetIndication ems := *,
+ template BSSMAP_IE_TalkerIdentity talker_id := *)
+modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ uplinkRequestAck := {
+ messageType := '27'O,
+ talkerPriority := tr_BSSMAP_IE_TalkerPriority(priority),
+ emergencySetIndication := ems,
+ talkerIdentity := talker_id
+ }
+ }
+ }
+}
+
+/* 3.2.1.59 */
+template (value) PDU_BSSAP
+ts_BSSMAP_UplinkReqConf(template (value) BSSMAP_IE_CellIdentifier cell_id,
+ template (omit) BSSMAP_IE_TalkerIdentity talker_id := omit,
+ template (value) octetstring l3_info)
+modifies ts_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ uplinkRequestConfirmation := {
+ messageType := '49'O,
+ cellIdentifier := cell_id,
+ talkerIdentity := talker_id,
+ layer3Information := ts_BSSMAP_IE_L3Info(l3_info)
+ }
+ }
+ }
+}
+template (present) PDU_BSSAP
+tr_BSSMAP_UplinkReqConf(template (present) BSSMAP_IE_CellIdentifier cell_id,
+ template BSSMAP_IE_TalkerIdentity talker_id := *,
+ template (present) octetstring l3_info)
+modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ uplinkRequestConfirmation := {
+ messageType := '49'O,
+ cellIdentifier := cell_id,
+ talkerIdentity := talker_id,
+ layer3Information := tr_BSSMAP_IE_L3Info(l3_info)
+ }
+ }
+ }
+}
+
+
+/* 3.2.1.60 */
+template (value) PDU_BSSAP
+ts_BSSMAP_UplinkRelInd(BssmapCause cause, template (omit) BIT2 prio)
+modifies ts_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ uplinkReleaseIndication := {
+ messageType := '4A'O,
+ cause := ts_BSSMAP_IE_Cause(cause),
+ talkerPriority := ts_BSSMAP_IE_TalkerPriority(prio)
+ }
+ }
+ }
+}
+template (present) PDU_BSSAP
+tr_BSSMAP_UplinkRelInd(template (present) myBSSMAP_Cause cause, template BIT2 prio)
+modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ uplinkReleaseIndication := {
+ messageType := '4A'O,
+ cause := tr_BSSMAP_IE_Cause(cause),
+ talkerPriority := tr_BSSMAP_IE_TalkerPriority(prio)
+ }
+ }
+ }
+}
+
+
+/* 3.2.1.61 */
+template (value) PDU_BSSAP
+ts_BSSMAP_UplinkRejCmd(BssmapCause cause,
+ template (omit) BIT2 cur_talker_prio := omit,
+ template (omit) BIT2 rej_talker_prio := omit,
+ template (omit) BSSMAP_IE_TalkerIdentity talker_id := omit)
+modifies ts_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ uplinkRejectCommand := {
+ messageType := '4B'O,
+ cause := ts_BSSMAP_IE_Cause(cause),
+ currentTalkerPriority := ts_BSSMAP_IE_TalkerPriority(cur_talker_prio),
+ rejectedTalkerPriority := ts_BSSMAP_IE_TalkerPriority(rej_talker_prio),
+ talkerIdentity := talker_id
+ }
+ }
+ }
+}
+template (present) PDU_BSSAP
+tr_BSSMAP_UplinkRejCmd(template (present) myBSSMAP_Cause cause,
+ template BIT2 cur_talker_prio := *,
+ template BIT2 rej_talker_prio := *,
+ template BSSMAP_IE_TalkerIdentity talker_id := *)
+modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ uplinkRejectCommand := {
+ messageType := '4B'O,
+ cause := tr_BSSMAP_IE_Cause(cause),
+ currentTalkerPriority := tr_BSSMAP_IE_TalkerPriority(cur_talker_prio),
+ rejectedTalkerPriority := tr_BSSMAP_IE_TalkerPriority(rej_talker_prio),
+ talkerIdentity := talker_id
+ }
+ }
+ }
+}
+
+
+/* 3.2.1.62 */
+template (value) PDU_BSSAP
+ts_BSSMAP_UplinkRelCmd(BssmapCause cause)
+modifies ts_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ uplinkReleaseCommand := {
+ messageType := '4C'O,
+ cause := ts_BSSMAP_IE_Cause(cause)
+ }
+ }
+ }
+}
+template (present) PDU_BSSAP
+tr_BSSMAP_UplinkRelCmd(template (present) myBSSMAP_Cause cause)
+modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ uplinkReleaseCommand := {
+ messageType := '4C'O,
+ cause := tr_BSSMAP_IE_Cause(cause)
+ }
+ }
+ }
+}
+
+
+/* 3.2.1.63 */
+template (value) PDU_BSSAP
+ts_BSSMAP_UplinkSeizedCmd(BssmapCause cause,
+ template (omit) BIT2 talker_prio := omit,
+ template (omit) BSSMAP_IE_EmergencySetIndication emerg := omit,
+ template (omit) BSSMAP_IE_TalkerIdentity talker_id := omit)
+modifies ts_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ uplinkSeizedCommand := {
+ messageType := '4D'O,
+ cause := ts_BSSMAP_IE_Cause(cause),
+ talkerPriority := ts_BSSMAP_IE_TalkerPriority(talker_prio),
+ emergencySetIndication := emerg,
+ talkerIdentity := talker_id
+ }
+ }
+ }
+}
+template (present) PDU_BSSAP
+tr_BSSMAP_UplinkSeizedCmd(template (present) myBSSMAP_Cause cause,
+ template BIT2 talker_prio := *,
+ template BSSMAP_IE_EmergencySetIndication emerg := *,
+ template BSSMAP_IE_TalkerIdentity talker_id := *)
+modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ uplinkSeizedCommand := {
+ messageType := '4D'O,
+ cause := tr_BSSMAP_IE_Cause(cause),
+ talkerPriority := tr_BSSMAP_IE_TalkerPriority(talker_prio),
+ emergencySetIndication := emerg,
+ 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,