From 0b50aeda34f2a6f4a2e8688e11ac26a9084c989f Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 28 May 2018 22:33:07 +0200 Subject: 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 --- library/BSSMAP_Templates.ttcn | 161 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) 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 + } + } + } +} + -- cgit v1.2.3