diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-09-28 16:03:55 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-10-03 21:39:10 +0000 |
commit | 0aad596264b85e7a51b8ef62b05334b3cfdb0f3a (patch) | |
tree | a8e3b951ac31242a7c0ff5f48693ecf75ef2a2b6 /library | |
parent | 98e03158784ceb4363dc3106f450bdf48b4d5b81 (diff) |
L1CTL_Types: Add support to set L1 Header params during SACCH tx
Change-Id: Id014f790ee2ede8ae796c37b1c6b25c4af9034d2
Diffstat (limited to 'library')
-rw-r--r-- | library/GSM_RR_Types.ttcn | 15 | ||||
-rw-r--r-- | library/L1CTL_Types.ttcn | 23 |
2 files changed, 38 insertions, 0 deletions
diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn index ef209e45..675271f4 100644 --- a/library/GSM_RR_Types.ttcn +++ b/library/GSM_RR_Types.ttcn @@ -158,6 +158,21 @@ module GSM_RR_Types { message_type := msg_type } + /* TS 44.004 7.2.1 */ + type record SacchL1Header { + uint2_t reserved, + boolean fpc, + uint5_t ms_power_lvl, + uint8_t actual_ta + } with { variant "FIELDORDER(msb)" }; + + template (value) SacchL1Header ts_SacchL1Header(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 MaioHsn { } with { variant "" }; diff --git a/library/L1CTL_Types.ttcn b/library/L1CTL_Types.ttcn index 656f292d..39732bee 100644 --- a/library/L1CTL_Types.ttcn +++ b/library/L1CTL_Types.ttcn @@ -263,6 +263,11 @@ module L1CTL_Types { OCT2 padding } with { variant "" }; + type record L1ctlDataReq { + SacchL1Header l1header optional, + octetstring l2_payload + } with { variant "" }; + type record L1ctlH1 { uint8_t hsn, uint8_t maio, @@ -320,6 +325,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 +357,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 +549,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, |