From 97da9e67b632cd3457597fd8b815fe6aff8c1fc1 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Fri, 28 Sep 2018 16:03:55 +0200 Subject: [PATCH] L1CTL_Types: Add support to set L1 Header params during SACCH tx Change-Id: Id014f790ee2ede8ae796c37b1c6b25c4af9034d2 --- library/L1CTL_Types.ttcn | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/library/L1CTL_Types.ttcn b/library/L1CTL_Types.ttcn index 656f292d2..0e1f036a8 100644 --- a/library/L1CTL_Types.ttcn +++ b/library/L1CTL_Types.ttcn @@ -263,6 +263,26 @@ module L1CTL_Types { OCT2 padding } with { variant "" }; + /* TS 44.004 7.2.1 */ + type record SACCH_L1_HEADER { + uint2_t reserved, + boolean fpc, + uint5_t ms_power_lvl, + uint8_t actual_ta + } with { variant "FIELDORDER(msb)" }; + + template (value) SACCH_L1_HEADER ts_SACCH_L1_HEADER(uint5_t ms_power_lvl, boolean fpc, uint8_t actual_ta) := { + reserved := 0, + fpc := fpc, + ms_power_lvl := ms_power_lvl, + actual_ta := actual_ta + }; + + type record L1ctlDataReq { + SACCH_L1_HEADER l1header optional, + octetstring l2_payload + } with { variant "" }; + type record L1ctlH1 { uint8_t hsn, uint8_t maio, @@ -320,6 +340,7 @@ module L1CTL_Types { L1CtlCryptoReq crypto_req, L1ctlTrafficReq traffic_req, L1ctlTbfCfgReq tbf_cfg_req, + L1ctlDataReq data_req, octetstring other } with { variant (other) "BYTEORDER(first)" @@ -351,6 +372,7 @@ module L1CTL_Types { crypto_req, header.msg_type = L1CTL_CRYPTO_REQ; traffic_req, header.msg_type = L1CTL_TRAFFIC_REQ; tbf_cfg_req, header.msg_type = L1CTL_TBF_CFG_REQ; + data_req, header.msg_type = L1CTL_DATA_REQ; other, OTHERWISE; )" }; @@ -542,6 +564,22 @@ module L1CTL_Types { } } + template (value) L1ctlUlMessage ts_L1CTL_DATA_REQ_SACCH(template (value) RslChannelNr chan_nr, + template (value) RslLinkId link_id, + L1ctlDataReq data_req) := { + header := ts_L1ctlHeader(L1CTL_DATA_REQ), + ul_info := { + chan_nr := chan_nr, + link_id := link_id, + padding := '0000'O + }, + ul_info_tbf := omit, + ul_info_abs := omit, + payload := { + data_req := data_req + } + } + template (value) L1ctlUlMessage ts_L1CTL_TBF_CFG_REQ(boolean is_uplink, TfiUsfArr tfi_usf) := { header := ts_L1ctlHeader(L1CTL_TBF_CFG_REQ), ul_info := omit,