nr,gnb,rrc: fix RRC setup to avoid configuring the SRB1 twice

master
Francisco 3 years ago committed by Francisco Paisana
parent afd417c96e
commit cc89b1607f

@ -299,6 +299,7 @@ public:
return size() == other.size() and std::equal(data_, data_ + size(), other.data_);
}
void resize(uint32_t new_size) { current_size = new_size; }
void clear() { resize(0); }
void push_back(const T& elem)
{
if (current_size >= MAX_N) {

@ -1141,6 +1141,9 @@ void fill_cellgroup_with_radio_bearer_cfg(const rrc_nr_cfg_t&
const asn1::rrc_nr::radio_bearer_cfg_s& bearers,
asn1::rrc_nr::cell_group_cfg_s& out)
{
out.rlc_bearer_to_add_mod_list.clear();
out.rlc_bearer_to_release_list.clear();
// Add SRBs
for (const srb_to_add_mod_s& srb : bearers.srb_to_add_mod_list) {
out.rlc_bearer_to_add_mod_list.push_back({});

@ -1199,7 +1199,10 @@ int rrc_nr::ue::update_rlc_bearers(const asn1::rrc_nr::cell_group_cfg_s& cell_gr
// Add/Mod RLC radio bearers
for (const rlc_bearer_cfg_s& rb : cell_group_diff.rlc_bearer_to_add_mod_list) {
srsran::rlc_config_t rlc_cfg;
if (srsran::make_rlc_config_t(rb.rlc_cfg, rb.served_radio_bearer.drb_id(), &rlc_cfg) != SRSRAN_SUCCESS) {
uint8_t rb_id = rb.served_radio_bearer.type().value == rlc_bearer_cfg_s::served_radio_bearer_c_::types_opts::drb_id
? rb.served_radio_bearer.drb_id()
: rb.served_radio_bearer.srb_id();
if (srsran::make_rlc_config_t(rb.rlc_cfg, rb_id, &rlc_cfg) != SRSRAN_SUCCESS) {
logger.error("Failed to build RLC config");
// TODO: HANDLE
return SRSRAN_ERROR;

Loading…
Cancel
Save