|
|
|
@ -978,20 +978,17 @@ void fill_srb(const rrc_nr_cfg_t& cfg, srsran::nr_srb srb_id, asn1::rrc_nr::rlc_
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Fill DRB with parameters derived from cfg
|
|
|
|
|
void fill_drb(const rrc_nr_cfg_t& cfg, uint32_t lcid, srsran::nr_drb drb_id, asn1::rrc_nr::rlc_bearer_cfg_s& out)
|
|
|
|
|
void fill_drb(const rrc_nr_cfg_t& cfg,
|
|
|
|
|
const enb_bearer_manager::radio_bearer_t& rb,
|
|
|
|
|
srsran::nr_drb drb_id,
|
|
|
|
|
asn1::rrc_nr::rlc_bearer_cfg_s& out)
|
|
|
|
|
{
|
|
|
|
|
out.lc_ch_id = lcid;
|
|
|
|
|
out.lc_ch_id = rb.lcid;
|
|
|
|
|
out.served_radio_bearer_present = true;
|
|
|
|
|
out.served_radio_bearer.set_drb_id() = (uint8_t)drb_id;
|
|
|
|
|
|
|
|
|
|
out.rlc_cfg_present = true;
|
|
|
|
|
auto& ul_um = out.rlc_cfg.set_um_bi_dir().ul_um_rlc;
|
|
|
|
|
ul_um.sn_field_len_present = true;
|
|
|
|
|
ul_um.sn_field_len.value = sn_field_len_um_opts::size12;
|
|
|
|
|
auto& dl_um = out.rlc_cfg.um_bi_dir().dl_um_rlc;
|
|
|
|
|
dl_um.sn_field_len_present = true;
|
|
|
|
|
dl_um.sn_field_len.value = sn_field_len_um_opts::size12;
|
|
|
|
|
dl_um.t_reassembly.value = t_reassembly_opts::ms50;
|
|
|
|
|
out.rlc_cfg_present = true;
|
|
|
|
|
out.rlc_cfg = cfg.five_qi_cfg.at(rb.five_qi).rlc_cfg;
|
|
|
|
|
|
|
|
|
|
// MAC logical channel config
|
|
|
|
|
out.mac_lc_ch_cfg_present = true;
|
|
|
|
@ -1319,6 +1316,8 @@ bool compute_diff_radio_bearer_cfg(const rrc_nr_cfg_t& cfg,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void fill_cellgroup_with_radio_bearer_cfg(const rrc_nr_cfg_t& cfg,
|
|
|
|
|
const uint32_t rnti,
|
|
|
|
|
const enb_bearer_manager& bearer_mapper,
|
|
|
|
|
const asn1::rrc_nr::radio_bearer_cfg_s& bearers,
|
|
|
|
|
asn1::rrc_nr::cell_group_cfg_s& out)
|
|
|
|
|
{
|
|
|
|
@ -1333,8 +1332,9 @@ void fill_cellgroup_with_radio_bearer_cfg(const rrc_nr_cfg_t&
|
|
|
|
|
// Add DRBs
|
|
|
|
|
for (const drb_to_add_mod_s& drb : bearers.drb_to_add_mod_list) {
|
|
|
|
|
out.rlc_bearer_to_add_mod_list.push_back({});
|
|
|
|
|
uint32_t lcid = drb.drb_id + (int)srsran::nr_srb::count - 1;
|
|
|
|
|
fill_drb(cfg, lcid, (srsran::nr_drb)drb.drb_id, out.rlc_bearer_to_add_mod_list.back());
|
|
|
|
|
uint32_t lcid = drb.drb_id + (int)srsran::nr_srb::count - 1;
|
|
|
|
|
enb_bearer_manager::radio_bearer_t rb = bearer_mapper.get_lcid_bearer(rnti, lcid);
|
|
|
|
|
fill_drb(cfg, rb, (srsran::nr_drb)drb.drb_id, out.rlc_bearer_to_add_mod_list.back());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Release DRBs
|
|
|
|
|