From cb14e0665c68bc56f009dc413da03737ee1a8cdb Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 5 Oct 2020 12:27:41 +0200 Subject: 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 --- library/Osmocom_Gb_Types.ttcn | 127 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) (limited to 'library') diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 8101712e..bd2de109 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -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) { -- cgit v1.2.3