fix set of rrc reconf message radio resource cfg fields

master
Francisco Paisana 4 years ago
parent 890113fd32
commit 2ef1e286b2

@ -90,7 +90,7 @@ public:
const std::map<uint8_t, erab_t>& get_erabs() const { return erabs; }
const asn1::rrc::drb_to_add_mod_list_l& get_established_drbs() const { return current_drbs; }
const asn1::rrc::srb_to_add_mod_list_l& get_established_srbs() const { return current_srbs; }
srslte::span<const asn1::rrc::drb_to_add_mod_s> get_pending_addmod_drbs() const { return drbs_to_add; }
const asn1::rrc::drb_to_add_mod_list_l& get_pending_addmod_drbs() const { return drbs_to_add; }
srslte::span<const uint8_t> get_pending_rem_drbs() const { return drbs_to_release; }
srslte::span<const asn1::rrc::srb_to_add_mod_s> get_pending_addmod_srbs() const { return srbs_to_add; }

@ -719,13 +719,13 @@ bool rrc::ue::rrc_mobility::start_ho_preparation(uint32_t target_eci,
empty_meascfg.compute_diff_meas_cfg(target_var_meas, &hoprep_r8.as_cfg.source_meas_cfg);
// - fill source RR Config
fill_rr_cfg_ded_setup(hoprep_r8.as_cfg.source_rr_cfg, rrc_enb->cfg, rrc_ue->cell_ded_list);
// Add already established SRBs to the message
hoprep_r8.as_cfg.source_rr_cfg.srb_to_add_mod_list_present = true;
hoprep_r8.as_cfg.source_rr_cfg.srb_to_add_mod_list = rrc_ue->bearer_list.get_established_srbs();
// Get DRBs configuration
hoprep_r8.as_cfg.source_rr_cfg.drb_to_add_mod_list = rrc_ue->bearer_list.get_established_drbs();
hoprep_r8.as_cfg.source_rr_cfg.drb_to_add_mod_list_present =
hoprep_r8.as_cfg.source_rr_cfg.drb_to_add_mod_list.size() > 0;
fill_rr_cfg_ded_reconf(hoprep_r8.as_cfg.source_rr_cfg,
hoprep_r8.as_cfg.source_rr_cfg,
rrc_enb->cfg,
rrc_ue->cell_ded_list,
rrc_ue->bearer_list,
rrc_ue->ue_capabilities,
reconf_cause::handover);
// Get security cfg
hoprep_r8.as_cfg.source_security_algorithm_cfg = rrc_ue->ue_security_cfg.get_security_algorithm_cfg();
hoprep_r8.as_cfg.source_ue_id.from_number(rrc_ue->rnti);

@ -62,11 +62,11 @@ srb_to_add_mod_s* add_srb(srb_to_add_mod_list_l& srbs, uint8_t srb_id)
void fill_srbs_reconf(srb_to_add_mod_list_l& srbs, const srb_to_add_mod_list_l& current_srbs)
{
// NOTE: In case of Handover, the Reconf includes SRB1
if (not srslte::find_rrc_obj_id(current_srbs, 1)) {
if (srslte::find_rrc_obj_id(current_srbs, 1) == current_srbs.end()) {
add_srb(srbs, 1);
}
if (not srslte::find_rrc_obj_id(current_srbs, 2)) {
if (srslte::find_rrc_obj_id(current_srbs, 2) == current_srbs.end()) {
add_srb(srbs, 2);
}
}
@ -335,7 +335,7 @@ void fill_rr_cfg_ded_reconf(asn1::rrc::rr_cfg_ded_s& rr_cfg,
// Update DRBs if required
srslte::compute_cfg_diff(current_rr_cfg.drb_to_add_mod_list,
bearers.get_established_drbs(),
bearers.get_pending_addmod_drbs(),
rr_cfg.drb_to_add_mod_list,
rr_cfg.drb_to_release_list);
rr_cfg.drb_to_add_mod_list_present = rr_cfg.drb_to_add_mod_list.size() > 0;

Loading…
Cancel
Save