SRSUE: 64QAM R8 compatible

master
Xavier Arteaga 5 years ago committed by Andre Puschmann
parent ca12b2353c
commit 87433c83da

@ -725,7 +725,6 @@ typedef struct {
int worker_cpu_mask; int worker_cpu_mask;
int sync_cpu_affinity; int sync_cpu_affinity;
uint32_t ue_category;
uint32_t nof_carriers; uint32_t nof_carriers;
uint32_t nof_radios; uint32_t nof_radios;
uint32_t nof_rx_ant; uint32_t nof_rx_ant;
@ -828,6 +827,7 @@ public:
asn1::rrc::ul_pwr_ctrl_common_s ul_pwr_ctrl; asn1::rrc::ul_pwr_ctrl_common_s ul_pwr_ctrl;
asn1::rrc::tdd_cfg_s tdd_cnfg; asn1::rrc::tdd_cfg_s tdd_cnfg;
asn1::rrc::srs_ant_port_e ant_info; asn1::rrc::srs_ant_port_e ant_info;
bool rrc_enable_64qam;
}; };
struct phy_cfg_mbsfn_t { struct phy_cfg_mbsfn_t {

@ -1131,7 +1131,7 @@ void cc_worker::set_pcell_config(phy_interface_rrc_lte::phy_cfg_t* phy_cfg)
// Configure PUSCH // Configure PUSCH
ue_ul_cfg.ul_cfg.pusch.enable_64qam = ue_ul_cfg.ul_cfg.pusch.enable_64qam =
phy->args->ue_category >= 5 && phy_cfg->common.pusch_cnfg.pusch_cfg_basic.enable64_qam; phy_cfg->common.pusch_cnfg.pusch_cfg_basic.enable64_qam && phy_cfg->common.rrc_enable_64qam;
/* PUSCH DMRS signal configuration */ /* PUSCH DMRS signal configuration */
bzero(&ue_ul_cfg.ul_cfg.dmrs, sizeof(srslte_refsignal_dmrs_pusch_cfg_t)); bzero(&ue_ul_cfg.ul_cfg.dmrs, sizeof(srslte_refsignal_dmrs_pusch_cfg_t));

@ -1972,6 +1972,12 @@ void rrc::handle_sib2()
current_phy_cfg.common.prach_cnfg = sib2->rr_cfg_common.prach_cfg; current_phy_cfg.common.prach_cnfg = sib2->rr_cfg_common.prach_cfg;
current_phy_cfg.common.srs_ul_cnfg = sib2->rr_cfg_common.srs_ul_cfg_common; current_phy_cfg.common.srs_ul_cnfg = sib2->rr_cfg_common.srs_ul_cfg_common;
// Filter here 64-QAM Enable
if (args.ue_category == 5 || (sib2->rr_cfg_common.pusch_cfg_common_v1270_present && args.release > 11)) {
// ASN1 Generator simplifies enable64QAM-v1270 because it is an enumeration that is always true
current_phy_cfg.common.rrc_enable_64qam = true;
}
phy->set_config(&current_phy_cfg); phy->set_config(&current_phy_cfg);
log_rr_config_common(); log_rr_config_common();
@ -2523,7 +2529,7 @@ void rrc::send_rrc_ue_cap_info()
ue_eutra_cap_v11a0_ies_s cap_v11a0; ue_eutra_cap_v11a0_ies_s cap_v11a0;
ue_eutra_cap_v1180_ies_s cap_v1180; ue_eutra_cap_v1180_ies_s cap_v1180;
cap_v11a0.non_crit_ext_present = true; cap_v1180.non_crit_ext_present = true;
cap_v1180.non_crit_ext = cap_v11a0; cap_v1180.non_crit_ext = cap_v11a0;
ue_eutra_cap_v1170_ies_s cap_v1170; ue_eutra_cap_v1170_ies_s cap_v1170;
@ -2551,7 +2557,7 @@ void rrc::send_rrc_ue_cap_info()
for (uint32_t i = 0; i < args.nof_supported_bands; i++) { for (uint32_t i = 0; i < args.nof_supported_bands; i++) {
supported_band_eutra_v1250_s supported_band_eutra_v1250; supported_band_eutra_v1250_s supported_band_eutra_v1250;
supported_band_eutra_v1250.dl_minus256_qam_r12_present = false; // 256-QAM support supported_band_eutra_v1250.dl_minus256_qam_r12_present = false; // 256-QAM support
supported_band_eutra_v1250.ul_minus64_qam_r12_present = true; // 64-QAM support supported_band_eutra_v1250.ul_minus64_qam_r12_present = (args.ue_category >= 5); // 64-QAM support
supported_band_list_eutra_v1250.push_back(supported_band_eutra_v1250); supported_band_list_eutra_v1250.push_back(supported_band_eutra_v1250);
} }
@ -2561,6 +2567,10 @@ void rrc::send_rrc_ue_cap_info()
rf_params_v1250.supported_band_list_eutra_v1250 = supported_band_list_eutra_v1250; rf_params_v1250.supported_band_list_eutra_v1250 = supported_band_list_eutra_v1250;
ue_eutra_cap_v1250_ies_s cap_v1250; ue_eutra_cap_v1250_ies_s cap_v1250;
cap_v1250.ue_category_dl_r12_present = true;
cap_v1250.ue_category_dl_r12 = 13;
cap_v1250.ue_category_ul_r12_present = true;
cap_v1250.ue_category_ul_r12 = 5;
cap_v1250.rf_params_v1250_present = true; cap_v1250.rf_params_v1250_present = true;
cap_v1250.rf_params_v1250 = rf_params_v1250; cap_v1250.rf_params_v1250 = rf_params_v1250;

@ -164,7 +164,6 @@ int ue::parse_args(const all_args_t& args_)
// replicate some RF parameter to make them available to PHY // replicate some RF parameter to make them available to PHY
args.phy.nof_rx_ant = args.rf.nof_rx_ant; args.phy.nof_rx_ant = args.rf.nof_rx_ant;
args.phy.ue_category = args.stack.rrc.ue_category;
args.phy.agc_enable = args.rf.rx_gain < 0.0f; args.phy.agc_enable = args.rf.rx_gain < 0.0f;
// Calculate number of carriers available in all radios // Calculate number of carriers available in all radios

Loading…
Cancel
Save