summaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2020-10-05 12:27:41 +0200
committerlaforge <laforge@osmocom.org>2020-10-11 16:34:39 +0000
commitcb14e0665c68bc56f009dc413da03737ee1a8cdb (patch)
tree80673222e42ad3a7a2bc3086c0db6b1f11369bd1 /library
parentc46ea3cefcfc996615ae6988e9f72b60cf60e585 (diff)
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
Diffstat (limited to 'library')
-rw-r--r--library/Osmocom_Gb_Types.ttcn127
1 files changed, 127 insertions, 0 deletions
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 8101712..bd2de10 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) {