From 00d4dace7250d0cfffd3344d57f9941aa8f8d8ee Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 30 Jul 2017 00:50:32 +0200 Subject: L1CTL_Types: Add upcoming L1CTL_TBF_CFG_{REQ,CONF} Related primitives are used to configure L1 for GPRS / TBF operation --- library/L1CTL_Types.ttcn | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'library/L1CTL_Types.ttcn') diff --git a/library/L1CTL_Types.ttcn b/library/L1CTL_Types.ttcn index 6ace8926..95e935fe 100644 --- a/library/L1CTL_Types.ttcn +++ b/library/L1CTL_Types.ttcn @@ -38,7 +38,9 @@ module L1CTL_Types { L1CTL_NEIGH_PM_IND, L1CTL_TRAFFIC_REQ, L1CTL_TRAFFIC_CONF, - L1CTL_TRAFFIC_IND + L1CTL_TRAFFIC_IND, + L1CTL_TBF_CFG_REQ, + L1CTL_TBF_CFG_CONF } with { variant "FIELDLENGTH(8)" }; type enumerated L1ctlCcchMode { @@ -129,6 +131,7 @@ module L1CTL_Types { L1ctlTchModeConf tch_mode_conf, L1ctlDataInd data_ind, L1ctlTrafficReq traffic_ind, + L1ctlTbfCfgReq tbf_cfg_conf, octetstring other } with { variant "" }; @@ -146,6 +149,7 @@ module L1CTL_Types { tch_mode_conf, header.msg_type = L1CTL_TCH_MODE_CONF; data_ind, header.msg_type = L1CTL_DATA_IND; traffic_ind, header.msg_type = L1CTL_TRAFFIC_IND; + tbf_cfg_conf, header.msg_type = L1CTL_TBF_CFG_CONF; other, OTHERWISE; )" }; @@ -239,6 +243,15 @@ module L1CTL_Types { octetstring data length(TRAFFIC_DATA_LEN) } with { variant "" }; + type record length(8) of uint8_t TfiUsfArr; + + type record L1ctlTbfCfgReq { + uint8_t tbf_nr, + boolean is_uplink, + OCT2 padding, + TfiUsfArr tfi_usf + } with { variant (is_uplink) "FIELDLENGTH(8)" }; + type union L1ctlUlPayload { L1ctlFbsbReq fbsb_req, L1ctlCcchModeReq ccch_mode_req, @@ -249,6 +262,7 @@ module L1CTL_Types { L1ctlReset reset_req, //L1ctlNeighPmReq neigh_pm_req, L1ctlTrafficReq traffic_req, + L1ctlTbfCfgReq tbf_cfg_req, octetstring other } with { variant "" }; @@ -272,6 +286,7 @@ module L1CTL_Types { dm_est_req, header.msg_type = L1CTL_DM_EST_REQ; reset_req, header.msg_type = L1CTL_RESET_REQ; traffic_req, header.msg_type = L1CTL_TRAFFIC_REQ; + tbf_cfg_req, header.msg_type = L1CTL_TBF_CFG_REQ; other, OTHERWISE; )" }; @@ -406,6 +421,32 @@ module L1CTL_Types { } } + template L1ctlUlMessage t_L1CTL_TBF_CFG_REQ(boolean is_uplink, TfiUsfArr tfi_usf) := { + header := t_L1ctlHeader(L1CTL_TBF_CFG_REQ), + ul_info := omit, + payload := { + tbf_cfg_req := { + tbf_nr := 0, + is_uplink := is_uplink, + padding := '0000'O, + tfi_usf := tfi_usf + } + } + }; + + template L1ctlDlMessage t_L1CTL_TBF_CFG_CONF(template boolean is_uplink) := { + header := t_L1ctlHeader(L1CTL_TBF_CFG_CONF), + dl_info := omit, + payload := { + tbf_cfg_conf := { + tbf_nr := 0, + is_uplink := is_uplink, + padding := ?, + tfi_usf := ? + } + } + }; + /* for matching against incoming RACH_CONF */ template L1ctlDlMessage t_L1CTL_RACH_CONF := { header := t_L1ctlHeader(L1CTL_RACH_CONF), -- cgit v1.2.3