aboutsummaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-05-28 22:33:07 +0200
committerHarald Welte <laforge@gnumonks.org>2018-06-01 12:00:56 +0200
commit0b50aeda34f2a6f4a2e8688e11ac26a9084c989f (patch)
tree25e1a5a0909414612632202e94c6d84c02043cd3 /library
parente32ad992af328bf9a021ac44c5980a6dccb78d19 (diff)
BSSMAP_Templates: Add templates for LCLS related IEs + messages
We will soon implement some LCLS related test cases, and hence we need some templates for sending and matching received messages. Change-Id: I5300418ae493f6c315248562938b47ae1931b452
Diffstat (limited to 'library')
-rw-r--r--library/BSSMAP_Templates.ttcn161
1 files changed, 161 insertions, 0 deletions
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index 91de5fbf..be535ab5 100644
--- a/library/BSSMAP_Templates.ttcn
+++ b/library/BSSMAP_Templates.ttcn
@@ -970,6 +970,167 @@ function f_bssap_extract_l3(PDU_BSSAP bssap) return template octetstring {
}
}
+/* TS 29.205 B.2.1.9 */
+template (value) GlobalCallReferenceValue ts_GCR(octetstring net_id, OCT2 node_id, OCT5 cref_id) := {
+ networkIDLengthIndicator := 0, /* overwritten */
+ networkID := net_id,
+ nodeIDLengthIndicator := 0, /* overwritten */
+ nodeID := node_id,
+ callReferenceIDLengthIndicator := 0, /* overwritten */
+ callReferenceID := cref_id
+}
+template GlobalCallReferenceValue tr_GCR(template octetstring net_id,
+ template OCT2 node_id,
+ template OCT5 cref_id) := {
+ networkIDLengthIndicator := ?,
+ networkID := net_id,
+ nodeIDLengthIndicator := ?,
+ nodeID := node_id,
+ callReferenceIDLengthIndicator := ?,
+ callReferenceID := cref_id
+}
+
+/* TS 47.008 3.2.2.115 */
+template (value) BSSMAP_IE_GlobalCallReference ts_BSSMAP_IE_GCR(template (value) GlobalCallReferenceValue gcr) := {
+ elementIdentifier := '89'O,
+ lengthIndicator := 0, /* overwritten */
+ globalCallReferenceValue := gcr
+}
+template BSSMAP_IE_GlobalCallReference tr_BSSMAP_IE_GCR(template GlobalCallReferenceValue gcr) := {
+ elementIdentifier := '89'O,
+ lengthIndicator := ?,
+ globalCallReferenceValue := gcr
+}
+
+/* TS 48.008 3.2.2.116 */
+const BIT4 LCLS_CFG_both_way := '0000'B;
+const BIT4 LCLS_CFG_both_way_and_bicast_UL := '0001'B;
+const BIT4 LCLS_CFG_both_way_and_send_DL := '0010'B;
+const BIT4 LCLS_CFG_both_way_and_send_DL_block_local_DL := '0011'B;
+const BIT4 LCLS_CFG_both_way_and_bicast_UL_send_DL := '0100'B;
+const BIT4 LCLS_CFG_both_way_and_bicast_UL_send_DL_block_local_DL := '0101'B;
+
+template (value) BSSMAP_IE_LCLS_Configuration ts_BSSMAP_IE_LclsCfg(BIT4 cfg_val) := {
+ elementIdentifier := '8A'O,
+ lCLS_ConfigurationValue := cfg_val,
+ spare := '0000'B
+}
+template BSSMAP_IE_LCLS_Configuration tr_BSSMAP_IE_LclsCfg(template BIT4 cfg_val) := {
+ elementIdentifier := '8A'O,
+ lCLS_ConfigurationValue := cfg_val,
+ spare := '0000'B
+}
+
+/* TS 48.008 3.2.2.117 */
+const BIT4 LCLS_CSC_connect := '0000'B;
+const BIT4 LCLS_CSC_do_not_connect := '0001'B;
+const BIT4 LCLS_CSC_release_lcls := '0010'B;
+const BIT4 LCLS_CSC_bicast_UL_at_handover := '0011'B;
+const BIT4 LCLS_CSC_bicast_UL_and_recv_DL_at_handover := '0100'B;
+
+template (value) BSSMAP_IE_LCLS_ConnectionStatusControl ts_BSSMAP_IE_LclsCsc(BIT4 csc) := {
+ elementIdentifier := '8B'O,
+ lCLS_ConnectionStatusControlValue := csc,
+ spare := '0000'B
+}
+template BSSMAP_IE_LCLS_ConnectionStatusControl tr_BSSMAP_IE_LclsCsc(template BIT4 csc) := {
+ elementIdentifier := '8B'O,
+ lCLS_ConnectionStatusControlValue := csc,
+ spare := '0000'B
+}
+
+/* TS 48.008 3.2.2.119 */
+const BIT4 LCLS_STS_not_yet_ls := '0000'B;
+const BIT4 LCLS_STS_not_possible_ls := '0001'B;
+const BIT4 LCLS_STS_no_longer_ls := '0010'B;
+const BIT4 LCLS_STS_req_lcls_not_supp := '0011'B;
+const BIT4 LCLS_STS_locally_switched := '0100'B;
+
+template (value) BSSMAP_IE_LCLS_BSS_Status ts_BSSMAP_IE_LclsSts(BIT4 sts) := {
+ elementIdentifier := '8D'O,
+ lCLS_BSS_StatusValue := sts,
+ spare := '0000'B
+}
+template BSSMAP_IE_LCLS_BSS_Status tr_BSSMAP_IE_LclsSts(template BIT4 sts) := {
+ elementIdentifier := '8D'O,
+ lCLS_BSS_StatusValue := sts,
+ spare := '0000'B
+}
+
+/* TS 48.008 3.2.1.91 */
+template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrl(template (omit) BSSMAP_IE_LCLS_Configuration cfg,
+ template (omit) BSSMAP_IE_LCLS_ConnectionStatusControl csc) := {
+ pdu := {
+ bssmap := {
+ lCLS_ConnectControl := {
+ messageType := '74'O,
+ lCLS_Configuration := cfg,
+ lCLS_ConnectionStatusControl := csc
+ }
+ }
+ }
+}
+template PDU_BSSAP tr_BSSMAP_LclsConnCtrl(template BSSMAP_IE_LCLS_Configuration cfg,
+ template BSSMAP_IE_LCLS_ConnectionStatusControl csc) := {
+ pdu := {
+ bssmap := {
+ lCLS_ConnectControl := {
+ messageType := '74'O,
+ lCLS_Configuration := cfg,
+ lCLS_ConnectionStatusControl := csc
+ }
+ }
+ }
+}
+
+/* TS 48.008 3.2.1.92 */
+template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrlAck(template (value) BSSMAP_IE_LCLS_BSS_Status sts) := {
+ pdu := {
+ bssmap := {
+ lCLS_connectControlAck := {
+ messageType := '75'O,
+ lCLS_BSS_Status := sts
+ }
+ }
+ }
+}
+template PDU_BSSAP tr_BSSMAP_LclsConnCtrlAck(template BSSMAP_IE_LCLS_BSS_Status sts) := {
+ pdu := {
+ bssmap := {
+ lCLS_connectControlAck := {
+ messageType := '75'O,
+ lCLS_BSS_Status := sts
+ }
+ }
+ }
+}
+
+/* TS 48.008 3.2.1.93 */
+template (value) PDU_BSSAP ts_BSSMAP_LclsNotification(template (omit) BSSMAP_IE_LCLS_BSS_Status sts,
+ template (omit) BSSMAP_IE_LCLS_BreakRequest brq) := {
+ pdu := {
+ bssmap := {
+ lCLS_Notification := {
+ messageType := '76'O,
+ lCLS_BSS_Status := sts,
+ lCLS_BreakRequest := brq
+ }
+ }
+ }
+}
+template PDU_BSSAP tr_BSSMAP_LclsNotification(template BSSMAP_IE_LCLS_BSS_Status sts,
+ template BSSMAP_IE_LCLS_BreakRequest brq) := {
+ pdu := {
+ bssmap := {
+ lCLS_Notification := {
+ messageType := '76'O,
+ lCLS_BSS_Status := sts,
+ lCLS_BreakRequest := brq
+ }
+ }
+ }
+}
+