consider enb sib config when activating UL 64QAM

This commit is contained in:
Francisco Paisana 2020-11-10 11:42:55 +00:00 committed by Andre Puschmann
parent bf7c587e4f
commit b369d6d5d5
1 changed files with 19 additions and 15 deletions

View File

@ -64,8 +64,7 @@ void ue_cfg_apply_srb_updates(ue_cfg_t& ue_cfg, const srb_to_add_mod_list_l& srb
*/ */
void ue_cfg_apply_reconf_complete_updates(ue_cfg_t& ue_cfg, void ue_cfg_apply_reconf_complete_updates(ue_cfg_t& ue_cfg,
const rrc_conn_recfg_r8_ies_s& conn_recfg, const rrc_conn_recfg_r8_ies_s& conn_recfg,
const cell_ctxt_dedicated_list& ue_cell_list, const cell_ctxt_dedicated_list& ue_cell_list);
const srslte::rrc_ue_capabilities_t& uecaps);
/** /**
* Adds to sched_interface::ue_cfg_t the changes present in the asn1 RRCReconfiguration message related to * Adds to sched_interface::ue_cfg_t the changes present in the asn1 RRCReconfiguration message related to
@ -73,6 +72,8 @@ void ue_cfg_apply_reconf_complete_updates(ue_cfg_t& u
*/ */
void ue_cfg_apply_phy_cfg_ded(ue_cfg_t& ue_cfg, const asn1::rrc::phys_cfg_ded_s& phy_cfg, const rrc_cfg_t& rrc_cfg); void ue_cfg_apply_phy_cfg_ded(ue_cfg_t& ue_cfg, const asn1::rrc::phys_cfg_ded_s& phy_cfg, const rrc_cfg_t& rrc_cfg);
void ue_cfg_apply_capabilities(ue_cfg_t& ue_cfg, const rrc_cfg_t& rrc_cfg, const srslte::rrc_ue_capabilities_t& uecaps);
/*************************** /***************************
* MAC Controller class * MAC Controller class
**************************/ **************************/
@ -201,7 +202,8 @@ void rrc::ue::mac_controller::handle_con_reconf(const asn1::rrc::rrc_conn_recfg_
// Store MAC updates that are applied once RRCReconfigurationComplete is received // Store MAC updates that are applied once RRCReconfigurationComplete is received
next_sched_ue_cfg = current_sched_ue_cfg; next_sched_ue_cfg = current_sched_ue_cfg;
ue_cfg_apply_reconf_complete_updates(next_sched_ue_cfg, conn_recfg, rrc_ue->cell_ded_list, uecaps); ue_cfg_apply_capabilities(next_sched_ue_cfg, *rrc_cfg, uecaps);
ue_cfg_apply_reconf_complete_updates(next_sched_ue_cfg, conn_recfg, rrc_ue->cell_ded_list);
// Temporarily freeze new allocations for DRBs (SRBs are needed to send RRC Reconf Message) // Temporarily freeze new allocations for DRBs (SRBs are needed to send RRC Reconf Message)
set_drb_activation(false); set_drb_activation(false);
@ -248,7 +250,8 @@ void rrc::ue::mac_controller::handle_target_enb_ho_cmd(const asn1::rrc::rrc_conn
} }
next_sched_ue_cfg = current_sched_ue_cfg; next_sched_ue_cfg = current_sched_ue_cfg;
ue_cfg_apply_reconf_complete_updates(next_sched_ue_cfg, conn_recfg, rrc_ue->cell_ded_list, uecaps); ue_cfg_apply_capabilities(next_sched_ue_cfg, *rrc_cfg, uecaps);
ue_cfg_apply_reconf_complete_updates(next_sched_ue_cfg, conn_recfg, rrc_ue->cell_ded_list);
// Temporarily freeze new allocations for DRBs (SRBs are needed to send RRC Reconf Message) // Temporarily freeze new allocations for DRBs (SRBs are needed to send RRC Reconf Message)
set_drb_activation(false); set_drb_activation(false);
@ -269,7 +272,8 @@ void rrc::ue::mac_controller::handle_intraenb_ho_cmd(const asn1::rrc::rrc_conn_r
if (conn_recfg.rr_cfg_ded_present and conn_recfg.rr_cfg_ded.phys_cfg_ded_present) { if (conn_recfg.rr_cfg_ded_present and conn_recfg.rr_cfg_ded.phys_cfg_ded_present) {
ue_cfg_apply_phy_cfg_ded(next_sched_ue_cfg, conn_recfg.rr_cfg_ded.phys_cfg_ded, *rrc_cfg); ue_cfg_apply_phy_cfg_ded(next_sched_ue_cfg, conn_recfg.rr_cfg_ded.phys_cfg_ded, *rrc_cfg);
} }
ue_cfg_apply_reconf_complete_updates(next_sched_ue_cfg, conn_recfg, rrc_ue->cell_ded_list, uecaps); ue_cfg_apply_capabilities(next_sched_ue_cfg, *rrc_cfg, uecaps);
ue_cfg_apply_reconf_complete_updates(next_sched_ue_cfg, conn_recfg, rrc_ue->cell_ded_list);
// Freeze SCells // Freeze SCells
// NOTE: this avoids that the UE receives an HOCmd retx from target cell and do an incorrect RLC-level concatenation // NOTE: this avoids that the UE receives an HOCmd retx from target cell and do an incorrect RLC-level concatenation
@ -387,8 +391,7 @@ void ue_cfg_apply_srb_updates(ue_cfg_t& ue_cfg, const srb_to_add_mod_list_l& srb
void ue_cfg_apply_reconf_complete_updates(ue_cfg_t& ue_cfg, void ue_cfg_apply_reconf_complete_updates(ue_cfg_t& ue_cfg,
const rrc_conn_recfg_r8_ies_s& conn_recfg, const rrc_conn_recfg_r8_ies_s& conn_recfg,
const cell_ctxt_dedicated_list& ue_cell_list, const cell_ctxt_dedicated_list& ue_cell_list)
const srslte::rrc_ue_capabilities_t& uecaps)
{ {
// Configure RadioResourceConfigDedicated // Configure RadioResourceConfigDedicated
if (conn_recfg.rr_cfg_ded_present) { if (conn_recfg.rr_cfg_ded_present) {
@ -453,11 +456,12 @@ void ue_cfg_apply_reconf_complete_updates(ue_cfg_t& u
} }
} }
} }
}
// Params non-dependent on Reconf message content void ue_cfg_apply_capabilities(ue_cfg_t& ue_cfg, const rrc_cfg_t& rrc_cfg, const srslte::rrc_ue_capabilities_t& uecaps)
if (uecaps.support_ul_64qam) { {
ue_cfg.support_ul_64qam = true; ue_cfg.support_ul_64qam =
} uecaps.support_ul_64qam and rrc_cfg.sibs[1].sib2().rr_cfg_common.pusch_cfg_common.pusch_cfg_basic.enable64_qam;
} }
} // namespace srsenb } // namespace srsenb