summaryrefslogtreecommitdiffstats
path: root/library/L1CTL_Types.ttcn
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-07-30 00:50:32 +0200
committerHarald Welte <laforge@gnumonks.org>2017-07-30 00:50:32 +0200
commit00d4dace7250d0cfffd3344d57f9941aa8f8d8ee (patch)
tree21be02af1f6d30b3a3a8e737fa51040d7e0896d0 /library/L1CTL_Types.ttcn
parentc84d847f01da37cfffa6516a7ee31943ab775f69 (diff)
L1CTL_Types: Add upcoming L1CTL_TBF_CFG_{REQ,CONF}
Related primitives are used to configure L1 for GPRS / TBF operation
Diffstat (limited to 'library/L1CTL_Types.ttcn')
-rw-r--r--library/L1CTL_Types.ttcn43
1 files changed, 42 insertions, 1 deletions
diff --git a/library/L1CTL_Types.ttcn b/library/L1CTL_Types.ttcn
index 6ace892..95e935f 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),