mirror of https://github.com/PentHertz/srsLTE.git
SRSENB: minor format, renaming and interface changes
This commit is contained in:
parent
67c07dfb56
commit
385102fa2d
|
@ -101,19 +101,48 @@ public:
|
|||
virtual int sr_detected(uint32_t tti, uint16_t rnti) = 0;
|
||||
virtual int rach_detected(uint32_t tti, uint32_t primary_cc_idx, uint32_t preamble_idx, uint32_t time_adv) = 0;
|
||||
|
||||
virtual int ri_info(uint32_t tti, uint16_t rnti, uint32_t ri_value) = 0;
|
||||
virtual int pmi_info(uint32_t tti, uint16_t rnti, uint32_t pmi_value) = 0;
|
||||
/**
|
||||
* PHY callback for giving MAC the Rank Indicator information of a given RNTI for an eNb cell/carrier.
|
||||
*
|
||||
* @param tti the given TTI
|
||||
* @param rnti the UE identifier in the eNb
|
||||
* @param cc_idx The eNb Cell/Carrier where the measurement corresponds
|
||||
* @param ri_value the actual Rank Indicator value, 0 for 1 layer, 1 for two layers and so on.
|
||||
* @return SRSLTE_SUCCESS if no error occurs, SRSLTE_ERROR* if an error occurs
|
||||
*/
|
||||
virtual int ri_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t ri_value) = 0;
|
||||
|
||||
/**
|
||||
* PHY callback for giving MAC the Pre-coding Matrix Indicator information of a given RNTI for an eNb cell/carrier.
|
||||
*
|
||||
* @param tti the given TTI
|
||||
* @param rnti the UE identifier in the eNb
|
||||
* @param cc_idx The eNb Cell/Carrier where the measurement corresponds
|
||||
* @param pmi_value the actual PMI value
|
||||
* @return SRSLTE_SUCCESS if no error occurs, SRSLTE_ERROR* if an error occurs
|
||||
*/
|
||||
virtual int pmi_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t pmi_value) = 0;
|
||||
|
||||
/**
|
||||
* PHY callback for for giving MAC the Channel Quality information of a given RNTI, TTI and eNb cell/carrier
|
||||
* @param tti the given TTI
|
||||
* @param rnti the UE identifier in the eNb
|
||||
* @param cc_idx The eNb Cell/Carrier where the measurement corresponds
|
||||
* @param cqi_value the corresponding Channel Quality Information
|
||||
* @return SRSLTE_SUCCESS if no error occurs, SRSLTE_ERROR* if an error occurs
|
||||
*/
|
||||
virtual int cqi_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t cqi_value) = 0;
|
||||
|
||||
virtual int snr_info(uint32_t tti, uint16_t rnti, float snr_db) = 0;
|
||||
/**
|
||||
* PHY callback for giving MAC the SNR in dB of an UL transmission for a given RNTI at a given carrier
|
||||
*
|
||||
* @param tti The measurement was made
|
||||
* @param rnti The UE identifier in the eNb
|
||||
* @param cc_idx The eNb Cell/Carrier where the UL transmission was received
|
||||
* @param snr_db The actual SNR of the received signal
|
||||
* @return SRSLTE_SUCCESS if no error occurs, SRSLTE_ERROR* if an error occurs
|
||||
*/
|
||||
virtual int snr_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, float snr_db) = 0;
|
||||
|
||||
/**
|
||||
* PHY callback for giving MAC the HARQ DL ACK/NACK feedback information for a given RNTI, TTI, eNb cell/carrier and
|
||||
|
@ -127,7 +156,18 @@ public:
|
|||
* @return SRSLTE_SUCCESS if no error occurs, SRSLTE_ERROR* if an error occurs
|
||||
*/
|
||||
virtual int ack_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t tb_idx, bool ack) = 0;
|
||||
virtual int crc_info(uint32_t tti, uint16_t rnti, uint32_t nof_bytes, bool crc_res) = 0;
|
||||
|
||||
/**
|
||||
* Informs MAC about a received PUSCH transmission for given RNTI, TTI and eNb Cell/carrier.
|
||||
*
|
||||
* @param tti the given TTI
|
||||
* @param rnti the UE identifier in the eNb
|
||||
* @param cc_idx the eNb Cell/Carrier identifier
|
||||
* @param nof_bytes the number of grants carrierd by the PUSCH message
|
||||
* @param crc_res the CRC check, set to true if the message was decoded succesfully
|
||||
* @return SRSLTE_SUCCESS if no error occurs, SRSLTE_ERROR* if an error occurs
|
||||
*/
|
||||
virtual int crc_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t nof_bytes, bool crc_res) = 0;
|
||||
|
||||
virtual int get_dl_sched(uint32_t tti, dl_sched_list_t& dl_sched_res) = 0;
|
||||
virtual int get_mch_sched(uint32_t tti, bool is_mcch, dl_sched_list_t& dl_sched_res) = 0;
|
||||
|
@ -153,8 +193,28 @@ public:
|
|||
* @param is_temporal Indicates whether the UE is temporal
|
||||
*/
|
||||
virtual int add_rnti(uint16_t rnti, uint32_t pcell_index, bool is_temporal) = 0;
|
||||
|
||||
/**
|
||||
* Removes an RNTI context from all the physical layer components, including secondary cells
|
||||
* @param rnti identifier of the user
|
||||
*/
|
||||
virtual void rem_rnti(uint16_t rnti) = 0;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param stop
|
||||
*/
|
||||
virtual void set_mch_period_stop(uint32_t stop) = 0;
|
||||
|
||||
/**
|
||||
* Activates and/or deactivates Secondary Cells in the PHY for a given RNTI. Requires the RNTI of the given UE and a
|
||||
* vector with the activation/deactivation values. Use true for activation and false for deactivation. The index 0 is
|
||||
* reserved for PCell and will not be used.
|
||||
*
|
||||
* @param rnti identifier of the user
|
||||
* @param activation vector with the activate/deactivate.
|
||||
*/
|
||||
virtual void set_activation_deactivation_scell(uint16_t rnti, bool activation[SRSLTE_MAX_CARRIERS]) = 0;
|
||||
};
|
||||
|
||||
/* Interface RRC -> PHY */
|
||||
|
@ -176,7 +236,7 @@ public:
|
|||
configure_mbsfn(asn1::rrc::sib_type2_s* sib2, asn1::rrc::sib_type13_r9_s* sib13, asn1::rrc::mcch_msg_s mcch) = 0;
|
||||
|
||||
typedef struct {
|
||||
bool active = false; ///< Indicates whether PHY shall consider using this or not
|
||||
bool configured = false; ///< Indicates whether PHY shall consider configuring this cell/carrier
|
||||
uint32_t cc_idx = 0; ///< eNb Cell index
|
||||
srslte::phy_cfg_t phy_cfg = {}; ///< Dedicated physical layer configuration
|
||||
} phy_rrc_dedicated_t;
|
||||
|
|
|
@ -75,7 +75,7 @@ srslte_pucch_format_t srslte_pucch_proc_select_format(const srslte_cell_t*
|
|||
else if (total_ack == 2) {
|
||||
format = SRSLTE_PUCCH_FORMAT_2B;
|
||||
}
|
||||
// CQI + 2-bit ACK + cyclic prefix
|
||||
// CQI + 1-bit ACK + extended cyclic prefix
|
||||
else if (total_ack == 1 && SRSLTE_CP_ISEXT(cell->cp)) {
|
||||
format = SRSLTE_PUCCH_FORMAT_2B;
|
||||
}
|
||||
|
|
|
@ -54,6 +54,7 @@ public:
|
|||
int add_rnti(uint16_t rnti, uint32_t pcell_index, bool is_temporal) final;
|
||||
void rem_rnti(uint16_t rnti) final;
|
||||
void set_mch_period_stop(uint32_t stop) final;
|
||||
void set_activation_deactivation_scell(uint16_t rnti, bool activation[SRSLTE_MAX_CARRIERS]);
|
||||
|
||||
/*RRC-PHY interface*/
|
||||
void configure_mbsfn(asn1::rrc::sib_type2_s* sib2, asn1::rrc::sib_type13_r9_s* sib13, asn1::rrc::mcch_msg_s mcch);
|
||||
|
|
|
@ -67,20 +67,29 @@ public:
|
|||
{
|
||||
return mac.rach_detected(tti, primary_cc_idx, preamble_idx, time_adv);
|
||||
}
|
||||
int ri_info(uint32_t tti, uint16_t rnti, uint32_t ri_value) final { return mac.ri_info(tti, rnti, ri_value); }
|
||||
int pmi_info(uint32_t tti, uint16_t rnti, uint32_t pmi_value) final { return mac.pmi_info(tti, rnti, pmi_value); }
|
||||
int ri_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t ri_value) final
|
||||
{
|
||||
return mac.ri_info(tti, rnti, cc_idx, ri_value);
|
||||
}
|
||||
int pmi_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t pmi_value) final
|
||||
{
|
||||
return mac.pmi_info(tti, rnti, cc_idx, pmi_value);
|
||||
}
|
||||
int cqi_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t cqi_value) final
|
||||
{
|
||||
return mac.cqi_info(tti, rnti, cc_idx, cqi_value);
|
||||
}
|
||||
int snr_info(uint32_t tti, uint16_t rnti, float snr_db) final { return mac.snr_info(tti, rnti, snr_db); }
|
||||
int snr_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, float snr_db) final
|
||||
{
|
||||
return mac.snr_info(tti, rnti, cc_idx, snr_db);
|
||||
}
|
||||
int ack_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t tb_idx, bool ack) final
|
||||
{
|
||||
return mac.ack_info(tti, rnti, cc_idx, tb_idx, ack);
|
||||
}
|
||||
int crc_info(uint32_t tti, uint16_t rnti, uint32_t nof_bytes, bool crc_res) final
|
||||
int crc_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t nof_bytes, bool crc_res) final
|
||||
{
|
||||
return mac.crc_info(tti, rnti, nof_bytes, crc_res);
|
||||
return mac.crc_info(tti, rnti, cc_idx, nof_bytes, crc_res);
|
||||
}
|
||||
int get_dl_sched(uint32_t tti, dl_sched_list_t& dl_sched_res) final { return mac.get_dl_sched(tti, dl_sched_res); }
|
||||
int get_mch_sched(uint32_t tti, bool is_mcch, dl_sched_list_t& dl_sched_res) final
|
||||
|
|
|
@ -56,23 +56,23 @@ public:
|
|||
int sr_detected(uint32_t tti, uint16_t rnti) final;
|
||||
int rach_detected(uint32_t tti, uint32_t primary_cc_idx, uint32_t preamble_idx, uint32_t time_adv) final;
|
||||
|
||||
int ri_info(uint32_t tti, uint16_t rnti, uint32_t ri_value);
|
||||
int pmi_info(uint32_t tti, uint16_t rnti, uint32_t pmi_value);
|
||||
int ri_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t ri_value) override;
|
||||
int pmi_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t pmi_value) override;
|
||||
int cqi_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t cqi_value) override;
|
||||
int snr_info(uint32_t tti, uint16_t rnti, float snr);
|
||||
int snr_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, float snr) override;
|
||||
int ack_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t tb_idx, bool ack) override;
|
||||
int crc_info(uint32_t tti, uint16_t rnti, uint32_t nof_bytes, bool crc_res);
|
||||
int crc_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t nof_bytes, bool crc_res) override;
|
||||
|
||||
int get_dl_sched(uint32_t tti, dl_sched_list_t& dl_sched_res);
|
||||
int get_ul_sched(uint32_t tti, ul_sched_list_t& ul_sched_res);
|
||||
int get_mch_sched(uint32_t tti, bool is_mcch, dl_sched_list_t& dl_sched_res);
|
||||
void set_sched_dl_tti_mask(uint8_t* tti_mask, uint32_t nof_sfs) final
|
||||
int get_dl_sched(uint32_t tti, dl_sched_list_t& dl_sched_res) override;
|
||||
int get_ul_sched(uint32_t tti, ul_sched_list_t& ul_sched_res) override;
|
||||
int get_mch_sched(uint32_t tti, bool is_mcch, dl_sched_list_t& dl_sched_res) override;
|
||||
void set_sched_dl_tti_mask(uint8_t* tti_mask, uint32_t nof_sfs) override
|
||||
{
|
||||
scheduler.set_dl_tti_mask(tti_mask, nof_sfs);
|
||||
}
|
||||
void build_mch_sched(uint32_t tbs);
|
||||
void rl_failure(uint16_t rnti);
|
||||
void rl_ok(uint16_t rnti);
|
||||
void rl_failure(uint16_t rnti) override;
|
||||
void rl_ok(uint16_t rnti) override;
|
||||
|
||||
/******** Interface from RRC (RRC -> MAC) ****************/
|
||||
/* Provides cell configuration including SIB periodicity, etc. */
|
||||
|
|
|
@ -397,7 +397,7 @@ void cc_worker::send_uci_data(uint16_t rnti, srslte_uci_cfg_t* uci_cfg, srslte_u
|
|||
phy->stack->cqi_info(tti_rx, rnti, 0, cqi_value);
|
||||
}
|
||||
if (uci_cfg->cqi.ri_len) {
|
||||
phy->stack->ri_info(tti_rx, rnti, uci_value->ri);
|
||||
phy->stack->ri_info(tti_rx, 0, rnti, uci_value->ri);
|
||||
phy->ue_db_set_ri(rnti, uci_value->ri);
|
||||
}
|
||||
if (uci_cfg->cqi.pmi_present) {
|
||||
|
@ -413,7 +413,7 @@ void cc_worker::send_uci_data(uint16_t rnti, srslte_uci_cfg_t* uci_cfg, srslte_u
|
|||
Error("CQI type=%d not implemented for PMI\n", uci_cfg->cqi.type);
|
||||
break;
|
||||
}
|
||||
phy->stack->pmi_info(tti_rx, rnti, pmi_value);
|
||||
phy->stack->pmi_info(tti_rx, rnti, 0, pmi_value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -466,7 +466,7 @@ int cc_worker::decode_pusch(stack_interface_phy_lte::ul_sched_grant_t* grants, u
|
|||
|
||||
// Notify MAC of RL status
|
||||
if (snr_db >= PUSCH_RL_SNR_DB_TH) {
|
||||
phy->stack->snr_info(ul_sf.tti, rnti, snr_db);
|
||||
phy->stack->snr_info(ul_sf.tti, rnti, cc_idx, snr_db);
|
||||
|
||||
if (grants[i].dci.tb.rv == 0) {
|
||||
if (!pusch_res.crc) {
|
||||
|
@ -483,7 +483,7 @@ int cc_worker::decode_pusch(stack_interface_phy_lte::ul_sched_grant_t* grants, u
|
|||
|
||||
// Notify MAC new received data and HARQ Indication value
|
||||
if (pusch_res.data) {
|
||||
phy->stack->crc_info(tti_rx, rnti, grant->tb.tbs / 8, pusch_res.crc);
|
||||
phy->stack->crc_info(tti_rx, rnti, cc_idx, grant->tb.tbs / 8, pusch_res.crc);
|
||||
|
||||
// Save metrics stats
|
||||
ue_db[rnti]->metrics_ul(grants[i].dci.tb.mcs_idx, 0, snr_db, pusch_res.avg_iterations_block);
|
||||
|
|
|
@ -222,6 +222,11 @@ void phy::set_mch_period_stop(uint32_t stop)
|
|||
workers_common.set_mch_period_stop(stop);
|
||||
}
|
||||
|
||||
void phy::set_activation_deactivation_scell(uint16_t rnti, bool activation[SRSLTE_MAX_CARRIERS])
|
||||
{
|
||||
Info("Set activation/deactivation not implemented\n");
|
||||
}
|
||||
|
||||
void phy::get_metrics(phy_metrics_t metrics[ENB_METRICS_MAX_USERS])
|
||||
{
|
||||
phy_metrics_t metrics_tmp[ENB_METRICS_MAX_USERS] = {};
|
||||
|
@ -259,11 +264,9 @@ void phy::set_config_dedicated(uint16_t rnti, const phy_rrc_dedicated_list_t& de
|
|||
// Create list, empty by default
|
||||
std::vector<uint32_t> scell_idx_list;
|
||||
|
||||
for (uint32_t i = 0; i < dedicated_list.size(); i++) {
|
||||
auto& config = dedicated_list[i];
|
||||
|
||||
for (const auto& config : dedicated_list) {
|
||||
// Configure only if active, ignore otherwise
|
||||
if (config.active) {
|
||||
if (config.configured) {
|
||||
// Set PCell/SCell index in list
|
||||
scell_idx_list.push_back(config.cc_idx);
|
||||
|
||||
|
|
|
@ -306,7 +306,6 @@ void mac::rl_ok(uint16_t rnti)
|
|||
|
||||
int mac::ack_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t tb_idx, bool ack)
|
||||
{
|
||||
// TODO: add cc_idx to interface
|
||||
pthread_rwlock_rdlock(&rwlock);
|
||||
log_h->step(tti);
|
||||
uint32_t nof_bytes = scheduler.dl_ack_info(tti, rnti, cc_idx, tb_idx, ack);
|
||||
|
@ -322,10 +321,8 @@ int mac::ack_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t tb_idx,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int mac::crc_info(uint32_t tti, uint16_t rnti, uint32_t nof_bytes, bool crc)
|
||||
int mac::crc_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t nof_bytes, bool crc)
|
||||
{
|
||||
// TODO: add cc_idx to interface
|
||||
uint32_t cc_idx = 0;
|
||||
log_h->step(tti);
|
||||
int ret = -1;
|
||||
pthread_rwlock_rdlock(&rwlock);
|
||||
|
@ -351,10 +348,8 @@ int mac::crc_info(uint32_t tti, uint16_t rnti, uint32_t nof_bytes, bool crc)
|
|||
return ret;
|
||||
}
|
||||
|
||||
int mac::ri_info(uint32_t tti, uint16_t rnti, uint32_t ri_value)
|
||||
int mac::ri_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t ri_value)
|
||||
{
|
||||
// TODO: add cc_idx to interface
|
||||
uint32_t cc_idx = 0;
|
||||
log_h->step(tti);
|
||||
int ret = -1;
|
||||
pthread_rwlock_rdlock(&rwlock);
|
||||
|
@ -369,10 +364,8 @@ int mac::ri_info(uint32_t tti, uint16_t rnti, uint32_t ri_value)
|
|||
return ret;
|
||||
}
|
||||
|
||||
int mac::pmi_info(uint32_t tti, uint16_t rnti, uint32_t pmi_value)
|
||||
int mac::pmi_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t pmi_value)
|
||||
{
|
||||
// TODO: add cc_idx to interface
|
||||
uint32_t cc_idx = 0;
|
||||
log_h->step(tti);
|
||||
pthread_rwlock_rdlock(&rwlock);
|
||||
int ret = -1;
|
||||
|
@ -404,10 +397,8 @@ int mac::cqi_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t cqi_val
|
|||
return ret;
|
||||
}
|
||||
|
||||
int mac::snr_info(uint32_t tti, uint16_t rnti, float snr)
|
||||
int mac::snr_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, float snr)
|
||||
{
|
||||
// TODO: add cc_idx to interface
|
||||
uint32_t cc_idx = 0;
|
||||
log_h->step(tti);
|
||||
int ret = -1;
|
||||
pthread_rwlock_rdlock(&rwlock);
|
||||
|
|
|
@ -2154,7 +2154,7 @@ void rrc::ue::apply_setup_phy_config(const asn1::rrc::phys_cfg_ded_s& phys_cfg_d
|
|||
}
|
||||
|
||||
// Set PCell index
|
||||
phy_rrc_dedicated_list[0].active = true;
|
||||
phy_rrc_dedicated_list[0].configured = true;
|
||||
phy_rrc_dedicated_list[0].cc_idx = current_sched_ue_cfg.supported_cc_list[0].enb_cc_idx;
|
||||
|
||||
// Load PCell dedicated configuration
|
||||
|
@ -2162,7 +2162,7 @@ void rrc::ue::apply_setup_phy_config(const asn1::rrc::phys_cfg_ded_s& phys_cfg_d
|
|||
|
||||
// Deactivates eNb/Cells for this UE
|
||||
for (uint32_t cc = 1; cc < phy_rrc_dedicated_list.size(); cc++) {
|
||||
phy_rrc_dedicated_list[cc].active = false;
|
||||
phy_rrc_dedicated_list[cc].configured = false;
|
||||
}
|
||||
|
||||
// Send configuration to physical layer
|
||||
|
@ -2211,7 +2211,7 @@ void rrc::ue::apply_reconf_phy_config(const asn1::rrc::rrc_conn_recfg_r8_ies_s&
|
|||
auto& phy_rrc_dedicated = phy_rrc_dedicated_list[scell_idx];
|
||||
|
||||
// Set eNb Cell/Carrier index
|
||||
phy_rrc_dedicated.active = true;
|
||||
phy_rrc_dedicated.configured = true;
|
||||
phy_rrc_dedicated.cc_idx = current_sched_ue_cfg.supported_cc_list[scell_idx].enb_cc_idx;
|
||||
|
||||
// Set SCell configuration
|
||||
|
@ -2233,7 +2233,7 @@ void rrc::ue::apply_reconf_phy_config(const asn1::rrc::rrc_conn_recfg_r8_ies_s&
|
|||
parent->rrc_log->error("SCell index (%d) is reserved for PCell\n", scell_to_release);
|
||||
} else if (scell_to_release < current_sched_ue_cfg.supported_cc_list.size()) {
|
||||
// Deactivate cell configuration
|
||||
phy_rrc_dedicated_list[scell_to_release].active = false;
|
||||
phy_rrc_dedicated_list[scell_to_release].configured = false;
|
||||
} else {
|
||||
// Out of bounds, log error
|
||||
parent->rrc_log->error("SCell index (%d) points out of the supported list (%ld)\n",
|
||||
|
|
|
@ -330,12 +330,12 @@ public:
|
|||
notify_rach_detected();
|
||||
return 0;
|
||||
}
|
||||
int ri_info(uint32_t tti, uint16_t rnti, uint32_t ri_value) override
|
||||
int ri_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t ri_value) override
|
||||
{
|
||||
notify_ri_info();
|
||||
return 0;
|
||||
}
|
||||
int pmi_info(uint32_t tti, uint16_t rnti, uint32_t pmi_value) override
|
||||
int pmi_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t pmi_value) override
|
||||
{
|
||||
notify_pmi_info();
|
||||
return 0;
|
||||
|
@ -345,7 +345,7 @@ public:
|
|||
notify_cqi_info();
|
||||
return 0;
|
||||
}
|
||||
int snr_info(uint32_t tti, uint16_t rnti, float snr_db) override
|
||||
int snr_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, float snr_db) override
|
||||
{
|
||||
notify_snr_info();
|
||||
return 0;
|
||||
|
@ -363,7 +363,7 @@ public:
|
|||
notify_ack_info();
|
||||
return 0;
|
||||
}
|
||||
int crc_info(uint32_t tti, uint16_t rnti, uint32_t nof_bytes, bool crc_res) override
|
||||
int crc_info(uint32_t tti, uint16_t rnti, uint32_t cc_idx, uint32_t nof_bytes, bool crc_res) override
|
||||
{
|
||||
notify_crc_info();
|
||||
return 0;
|
||||
|
@ -769,7 +769,7 @@ public:
|
|||
for (uint32_t i = 0; i < 4; i++) {
|
||||
common_dedicated.dl_cfg.cqi_report.pmi_idx = 16 + i;
|
||||
dedicated_list[i].cc_idx = (i + pcell_idx) % phy_cfg.phy_cell_cfg.size();
|
||||
dedicated_list[i].active = true;
|
||||
dedicated_list[i].configured = true;
|
||||
dedicated_list[i].phy_cfg = common_dedicated;
|
||||
|
||||
// Disable SCell stuff
|
||||
|
|
Loading…
Reference in New Issue