diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-05-28 22:33:07 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-06-01 12:00:56 +0200 |
commit | 0b50aeda34f2a6f4a2e8688e11ac26a9084c989f (patch) | |
tree | 25e1a5a0909414612632202e94c6d84c02043cd3 /library | |
parent | e32ad992af328bf9a021ac44c5980a6dccb78d19 (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.ttcn | 161 |
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 + } + } + } +} + |