Osmoocm_Gb_Types.ttcn: Add various additional templates

Those can help to match if messages meet certain constraints stipulated
in the BSSGP specification.

Change-Id: I05c768f5a9e4f0b5c1375c2603135a349c38e849
This commit is contained in:
Harald Welte 2020-10-05 12:27:41 +02:00 committed by laforge
parent c46ea3cefc
commit cb14e0665c
1 changed files with 127 additions and 0 deletions

View File

@ -1555,6 +1555,133 @@ octetstring sdu) := {
}
/* PDU permitted on PTP BVC only (TS 48.018 Section 5.4.1) */
template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTP_ONLY := (
{pDU_BSSGP_DL_UNITDATA := ?},
{pDU_BSSGP_UL_UNITDATA := ?},
{pDU_BSSGP_RA_CAPABILITY := ?},
{pDU_BSSGP_RA_CAPABILITY_UPDATE := ?},
{pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK := ?},
{pDU_BSSGP_RADIO_STATUS := ?},
{pDU_BSSGP_FLOW_CONTROL_BVC := ?},
{pDU_BSSGP_FLOW_CONTROL_BVC_ACK := ?},
{pDU_BSSGP_FLOW_CONTROL_MS := ?},
{pDU_BSSGP_FLOW_CONTROL_MS_ACK := ?},
{pDU_BSSGP_FLOW_CONTROL_PFC := ?},
{pDU_BSSGP_FLOW_CONTROL_PFC_ACK := ?},
{pDU_BSSGP_DOWNLOAD_BSS_PFC := ?},
{pDU_BSSGP_CREATE_BSS_PFC := ?},
{pDU_BSSGP_CREATE_BSS_PFC_ACK := ?},
{pDU_BSSGP_CREATE_BSS_PFC_NACK := ?},
{pDU_BSSGP_MODIFY_BSS_PFC := ?},
{pDU_BSSGP_MODIFY_BSS_PFC_ACK := ?},
{pDU_BSSGP_DELETE_BSS_PFC := ?},
{pDU_BSSGP_DELETE_BSS_PFC_ACK := ?},
{pDU_BSSGP_DELETE_BSS_PFC_REQ := ?},
{pDU_BSSGP_PS_HANDOVER_REQUIRED := ?},
{pDU_BSSGP_PS_HANDOVER_REQUIRED_ACK := ?},
{pDU_BSSGP_PS_HANDOVER_REQUIRED_NACK := ?},
{pDU_BSSGP_PS_HANDOVER_REQUEST := ?},
{pDU_BSSGP_PS_HANDOVER_REQUEST_ACK := ?},
{pDU_BSSGP_PS_HANDOVER_REQUEST_NACK := ?},
{pDU_BSSGP_PS_HANDOVER_COMPLETE := ?},
{pDU_BSSGP_PS_HANDOVER_COMPLETE_ACK := ?},
{pDU_BSSGP_PS_HANDOVER_CANCEL := ?}
);
template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTP := (
tr_BSSGP_PERMITTED_PTP_ONLY,
{pDU_BSSGP_PAGING_PS := ?},
{pDU_BSSGP_PAGING_CS := ?},
{pDU_BSSGP_STATUS := ?}
);
/* PDU permitted on Signaling BVC only (TS 48.018 Section 5.4.1) */
template (present) PDU_BSSGP tr_BSSGP_PERMITTED_SIGN_ONLY := (
{pDU_BSSGP_SUSPEND := ?},
{pDU_BSSGP_SUSPEND_ACK := ?},
{pDU_BSSGP_SUSPEND_NACK := ?},
{pDU_BSSGP_RESUME := ?},
{pDU_BSSGP_RESUME_ACK := ?},
{pDU_BSSGP_RESUME_NACK := ?},
{pDU_BSSGP_FLUSH_LL := ?},
{pDU_BSSGP_FLUSH_LL_ACK := ?},
{pDU_BSSGP_LLC_DISCARDED := ?},
{pDU_BSSGP_BVC_BLOCK := ?},
{pDU_BSSGP_BVC_BLOCK_ACK := ?},
{pDU_BSSGP_BVC_UNBLOCK := ?},
{pDU_BSSGP_BVC_UNBLOCK_ACK := ?},
{pDU_BSSGP_BVC_RESET := ?},
{pDU_BSSGP_BVC_RESET_ACK := ?},
{pDU_BSSGP_SGSN_INVOKE_TRACE := ?},
{pDU_BSSGP_PERFORM_LOCATION_REQUEST := ?},
{pDU_BSSGP_PERFORM_LOCATION_RESPONSE := ?},
{pDU_BSSGP_PERFORM_LOCATION_ABORT := ?},
{pDU_BSSGP_POSITION_COMMAND := ?},
{pDU_BSSGP_POSITION_RESPONSE := ?},
{pDU_BSSGP_RAN_INFORMATION := ?},
{pDU_BSSGP_RAN_INFORMATION_REQUEST := ?},
{pDU_BSSGP_RAN_INFORMATION_ACK := ?},
{pDU_BSSGP_RAN_INFORMATION_ERROR := ?},
{pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR := ?},
{pDU_BSSGP_MBMS_SESSION_START_REQUEST := ?},
{pDU_BSSGP_MBMS_SESSION_START_RESPONSE := ?},
{pDU_BSSGP_MBMS_SESSION_STOP_REQUEST := ?},
{pDU_BSSGP_MBMS_STOP_RESPONSE := ?},
{pDU_BSSGP_SESSION_UPDATE_REQUEST := ?},
{pDU_BSSGP_SESSION_UPDATE_RESPONSE := ?}
);
template (present) PDU_BSSGP tr_BSSGP_PERMITTED_SIGN := (
tr_BSSGP_PERMITTED_SIGN_ONLY,
{pDU_BSSGP_PAGING_PS := ?},
{pDU_BSSGP_PAGING_CS := ?},
{pDU_BSSGP_SUSPEND := ?},
{pDU_BSSGP_STATUS := ?}
);
/* PDU permitted on PTM BVC only (TS 48.018 Section 5.4.1) */
template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTM_ONLY := (
{pDU_BSSGP_DL_MBMS_UNITDATA := ?},
{pDU_BSSGP_UL_MBMS_UNITDATA := ?}
);
template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTM := (
tr_BSSGP_PERMITTED_PTM_ONLY,
{pDU_BSSGP_STATUS := ?}
);
/* Template for any PTP BVCI IE */
template (present) BVCI tr_BSSGP_IE_PtpBvci := {
iEI := '04'O,
ext := '1'B,
lengthIndicator := {
length1 := 2
},
unstructured_value := complement ('0000'O, '0001'O)
}
/* message on signaling PTP but containing a ptp BVC */
/*
template PDU_BSSGP tr_BSSGP_SIG_FOR_PTP(template Bvci bvci) := (
{pDU_BSSGP_FLUSH_LL:{?,?,tr_BSSGP_IE_PtpBvci, *, *}},
{pDU_BSSGP_FLUSH_LL_ACK:{?,?,?,tr_BSSGP_IE_PtpBvci, ?, *}},
{pDU_BSSGP_LLC_DISCARDED:{?,?,?,tr_BSSGP_IE_PtpBvci, ?, *}},
{pDU_BSSGP_BVC_BLOCK:{?,tr_BSSGP_IE_PtpBvci, ?}},
{pDU_BSSGP_BVC_BLOCK_ACK:{?,tr_BSSGP_IE_PtpBvci}},
{pDU_BSSGP_BVC_UNBLOCK:{?,tr_BSSGP_IE_PtpBvci}},
{pDU_BSSGP_BVC_UNBLOCK_ACK:{?,tr_BSSGP_IE_PtpBvci}},
{pDU_BSSGP_BVC_RESET:{?,tr_BSSGP_IE_PtpBvci,?,*,*,*}},
{pDU_BSSGP_BVC_RESET_ACK:{?,tr_BSSGP_IE_PtpBvci,*,*,*}},
{pDU_BSSGP_STATUS:{?,?,tr_BSSGP_IE_PtpBvci,*}},
{pDU_BSSGP_PERFORM_LOCATION_REQUEST:{?,?,?,*,tr_BSSGP_IE_PtpBvci,?,?,?,*,*,*,*,*,*,*,*,*}},
{pDU_BSSGP_PERFORM_LOCATION_RESPONSE:{?,?,tr_BSSGP_IE_PtpBvci,*,*,*,*,*,*}},
{pDU_BSSGP_PERFORM_LOCATION_ABORT:{?,?,tr_BSSGP_IE_PtpBvci,?}},
{pDU_BSSGP_POSITION_COMMAND:{
);
*/
/* extract the BVCI IE of given PDU + return it */
function f_BSSGP_BVCI_IE_get(PDU_BSSGP pdu) return template (omit) BVCI {
select (pdu) {