L1CTL_Types: Add support to set L1 Header params during SACCH tx

Change-Id: Id014f790ee2ede8ae796c37b1c6b25c4af9034d2
This commit is contained in:
Pau Espin 2018-09-28 16:03:55 +02:00 committed by Harald Welte
parent 98e0315878
commit 0aad596264
2 changed files with 38 additions and 0 deletions

View File

@ -158,6 +158,21 @@ module GSM_RR_Types {
message_type := msg_type 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 { type record MaioHsn {
} with { variant "" }; } with { variant "" };

View File

@ -263,6 +263,11 @@ module L1CTL_Types {
OCT2 padding OCT2 padding
} with { variant "" }; } with { variant "" };
type record L1ctlDataReq {
SacchL1Header l1header optional,
octetstring l2_payload
} with { variant "" };
type record L1ctlH1 { type record L1ctlH1 {
uint8_t hsn, uint8_t hsn,
uint8_t maio, uint8_t maio,
@ -320,6 +325,7 @@ module L1CTL_Types {
L1CtlCryptoReq crypto_req, L1CtlCryptoReq crypto_req,
L1ctlTrafficReq traffic_req, L1ctlTrafficReq traffic_req,
L1ctlTbfCfgReq tbf_cfg_req, L1ctlTbfCfgReq tbf_cfg_req,
L1ctlDataReq data_req,
octetstring other octetstring other
} with { } with {
variant (other) "BYTEORDER(first)" variant (other) "BYTEORDER(first)"
@ -351,6 +357,7 @@ module L1CTL_Types {
crypto_req, header.msg_type = L1CTL_CRYPTO_REQ; crypto_req, header.msg_type = L1CTL_CRYPTO_REQ;
traffic_req, header.msg_type = L1CTL_TRAFFIC_REQ; traffic_req, header.msg_type = L1CTL_TRAFFIC_REQ;
tbf_cfg_req, header.msg_type = L1CTL_TBF_CFG_REQ; tbf_cfg_req, header.msg_type = L1CTL_TBF_CFG_REQ;
data_req, header.msg_type = L1CTL_DATA_REQ;
other, OTHERWISE; 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) := { template (value) L1ctlUlMessage ts_L1CTL_TBF_CFG_REQ(boolean is_uplink, TfiUsfArr tfi_usf) := {
header := ts_L1ctlHeader(L1CTL_TBF_CFG_REQ), header := ts_L1ctlHeader(L1CTL_TBF_CFG_REQ),
ul_info := omit, ul_info := omit,