mirror of https://github.com/PentHertz/srsLTE.git
disable carrier aggregation when ue release is below 10 or category is below 5
This commit is contained in:
parent
f8cc2d176d
commit
2de702f50e
|
@ -132,7 +132,7 @@ void set_phy_cfg_t_enable_64qam(phy_cfg_t* cfg, const bool enabled);
|
|||
/***************************
|
||||
* EUTRA UE Capabilities
|
||||
**************************/
|
||||
void set_rrc_ue_capabilities_t(rrc_ue_capabilities_t& ue_cap, const asn1::rrc::ue_eutra_cap_s& eutra_cap_s);
|
||||
rrc_ue_capabilities_t make_rrc_ue_capabilities(const asn1::rrc::ue_eutra_cap_s& eutra_cap_s);
|
||||
|
||||
// mbms
|
||||
mbms_notif_cfg_t make_mbms_notif_cfg(const asn1::rrc::mbms_notif_cfg_r9_s& asn1_type);
|
||||
|
|
|
@ -348,14 +348,14 @@ inline std::string to_string(const barring_t& b)
|
|||
/**
|
||||
* Flat UE capabilities
|
||||
*/
|
||||
typedef struct {
|
||||
struct rrc_ue_capabilities_t {
|
||||
uint8_t release = 8;
|
||||
uint8_t category = 4;
|
||||
uint8_t category_dl = 0;
|
||||
uint8_t category_ul = 0;
|
||||
bool support_dl_256qam = false;
|
||||
bool support_ul_64qam = false;
|
||||
} rrc_ue_capabilities_t;
|
||||
};
|
||||
|
||||
} // namespace srslte
|
||||
|
||||
|
|
|
@ -896,9 +896,11 @@ static void set_rrc_ue_eutra_cap_t_gen(rrc_ue_capabilities_t&
|
|||
; // Do nothing
|
||||
}
|
||||
|
||||
void set_rrc_ue_capabilities_t(rrc_ue_capabilities_t& ue_cap, const asn1::rrc::ue_eutra_cap_s& eutra_cap_s)
|
||||
rrc_ue_capabilities_t make_rrc_ue_capabilities(const asn1::rrc::ue_eutra_cap_s& eutra_cap_s)
|
||||
{
|
||||
rrc_ue_capabilities_t ue_cap;
|
||||
set_rrc_ue_eutra_cap_t_gen(ue_cap, eutra_cap_s);
|
||||
return ue_cap;
|
||||
}
|
||||
|
||||
// MBMS
|
||||
|
|
|
@ -668,6 +668,7 @@ void rrc::ue::handle_rrc_reconf_complete(rrc_conn_recfg_complete_s* msg, srslte:
|
|||
parent->phy->complete_config(rnti);
|
||||
|
||||
if (last_rrc_conn_recfg.rrc_transaction_id == msg->rrc_transaction_id) {
|
||||
if (cell_ded_list.nof_cells() > 1) {
|
||||
// Finally, add secondary carriers to MAC
|
||||
auto& list = current_sched_ue_cfg.supported_cc_list;
|
||||
for (const auto& ue_cell : cell_ded_list) {
|
||||
|
@ -680,7 +681,7 @@ void rrc::ue::handle_rrc_reconf_complete(rrc_conn_recfg_complete_s* msg, srslte:
|
|||
list[ue_cc_idx].enb_cc_idx = ue_cell.cell_common->enb_cc_idx;
|
||||
}
|
||||
parent->mac->ue_cfg(rnti, ¤t_sched_ue_cfg);
|
||||
|
||||
}
|
||||
bearer_list.apply_mac_bearer_updates(parent->mac, ¤t_sched_ue_cfg);
|
||||
|
||||
// Acknowledge Dedicated Configuration
|
||||
|
@ -763,7 +764,7 @@ bool rrc::ue::handle_ue_cap_info(ue_cap_info_s* msg)
|
|||
return false;
|
||||
}
|
||||
eutra_capabilities_unpacked = true;
|
||||
srslte::set_rrc_ue_capabilities_t(ue_capabilities, eutra_capabilities);
|
||||
ue_capabilities = srslte::make_rrc_ue_capabilities(eutra_capabilities);
|
||||
|
||||
parent->rrc_log->info("UE rnti: 0x%x category: %d\n", rnti, eutra_capabilities.ue_category);
|
||||
}
|
||||
|
@ -1019,14 +1020,18 @@ cell_info_common* rrc::ue::get_ue_cc_cfg(uint32_t ue_cc_idx)
|
|||
//! Method to fill SCellToAddModList for SCell info
|
||||
int rrc::ue::fill_scell_to_addmod_list(asn1::rrc::rrc_conn_recfg_r8_ies_s* conn_reconf)
|
||||
{
|
||||
if (not eutra_capabilities_unpacked or ue_capabilities.release < 10 or ue_capabilities.category < 5) {
|
||||
return SRSLTE_SUCCESS;
|
||||
}
|
||||
|
||||
const cell_info_common* pcell_cfg = get_ue_cc_cfg(UE_PCELL_CC_IDX);
|
||||
if (pcell_cfg->cell_cfg.scell_list.empty()) {
|
||||
return SRSLTE_SUCCESS;
|
||||
}
|
||||
|
||||
// Allocate CQI + PUCCH for SCells.
|
||||
for (auto scell_idx : pcell_cfg->cell_cfg.scell_list) {
|
||||
uint32_t cell_id = scell_idx.cell_id;
|
||||
for (const scell_cfg_t& scell_cfg : pcell_cfg->cell_cfg.scell_list) {
|
||||
uint32_t cell_id = scell_cfg.cell_id;
|
||||
cell_ded_list.add_cell(parent->cell_common_list->get_cell_id(cell_id)->enb_cc_idx);
|
||||
}
|
||||
if (cell_ded_list.nof_cells() == 1) {
|
||||
|
|
Loading…
Reference in New Issue