bugfix: don't take into account report CQI in case of NACK or DTX
The problem that may happen is that when the UE does not transmit on PUCCH (for whatever reason) we may get no signal at all, and thus compute a very low CQI. Later on we may ask the UE to transmit louder which may lead to saturation and more problems. The solution is simple: don't care about CQI in case of DTX (and NACK also, as done for PUSCH). Only FDD case done. For TDD it seems that: - nfapi structures are not correct. See nfapi_harq_indication_tdd_rel13_t in nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h, all the cases (bundling, multiplex, ...) use nfapi_harq_indication_tdd_harq_data_t - the function extract_harq does not handle TDD
This commit is contained in:
@@ -4472,6 +4472,24 @@ UL_failure_indication(module_id_t mod_idP, int cc_idP, frame_t frameP,
|
||||
}
|
||||
}
|
||||
|
||||
static int nack_or_dtx_reported(
|
||||
COMMON_channels_t *cc,
|
||||
nfapi_harq_indication_pdu_t *harq_pdu)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (cc->tdd_Config) {
|
||||
AssertFatal(0==1, "TDD to be done. FAPI structures (see nfapi_harq_indication_tdd_rel13_t) are not clean. To be cleaned as well?\n");
|
||||
abort();
|
||||
} else {
|
||||
nfapi_harq_indication_fdd_rel13_t *hi = &harq_pdu->harq_indication_fdd_rel13;
|
||||
for (i = 0; i < hi->number_of_ack_nack; hi++)
|
||||
if (hi->harq_tb_n[i] != 1)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
harq_indication(module_id_t mod_idP, int CC_idP, frame_t frameP,
|
||||
sub_frame_t subframeP,
|
||||
@@ -4500,7 +4518,8 @@ harq_indication(module_id_t mod_idP, int CC_idP, frame_t frameP,
|
||||
extract_harq(mod_idP, CC_idP, UE_id, frameP, subframeP,
|
||||
(void *) &harq_pdu->harq_indication_fdd_rel13,
|
||||
channel);
|
||||
if (channel == 0) {
|
||||
/* don't care about cqi reporting if NACK/DTX is there */
|
||||
if (channel == 0 && !nack_or_dtx_reported(cc, harq_pdu)) {
|
||||
sched_ctl->pucch1_snr[CC_idP] = ul_cqi;
|
||||
sched_ctl->pucch1_cqi_update[CC_idP] = 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user