L1CTL_Types: Add upcoming L1CTL_TBF_CFG_{REQ,CONF}

Related primitives are used to configure L1 for GPRS / TBF operation
This commit is contained in:
Harald Welte 2017-07-30 00:50:32 +02:00
parent c84d847f01
commit 00d4dace72
1 changed files with 42 additions and 1 deletions

View File

@ -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),