|
|
@ -645,12 +645,22 @@ alloc_result sf_sched::alloc_phich(sched_ue* user)
|
|
|
|
|
|
|
|
|
|
|
|
if (not user->phich_enabled(get_tti_rx(), cc_cfg->enb_cc_idx)) {
|
|
|
|
if (not user->phich_enabled(get_tti_rx(), cc_cfg->enb_cc_idx)) {
|
|
|
|
// PHICH falls in measGap. PHICH hi=1 is assumed by UE. In case of NACK, the HARQ is going to be resumed later on.
|
|
|
|
// PHICH falls in measGap. PHICH hi=1 is assumed by UE. In case of NACK, the HARQ is going to be resumed later on.
|
|
|
|
logger.info(
|
|
|
|
bool ack = h->pop_pending_phich(); // empty pending PHICH
|
|
|
|
"SCHED: UL skipped retx rnti=0x%x, pid=%d. Cause: PHICH-measGap collision", user->get_rnti(), h->get_id());
|
|
|
|
if (h->is_empty(0)) {
|
|
|
|
h->pop_pending_phich(); // empty pending PHICH
|
|
|
|
logger.debug("SCHED: PHICH hi=%d not sent for rnti=0x%x, cc=%d, pid=%d. Cause: PHICH-measGap collision",
|
|
|
|
// Note: Given that the UE assumes PHICH hi=1, it is not expecting PUSCH grants for tti_tx_ul. Requesting PDCCH
|
|
|
|
(int)ack,
|
|
|
|
// for the UL Harq has the effect of forbidding PUSCH grants, since phich_tti == pdcch_tti.
|
|
|
|
user->get_rnti(),
|
|
|
|
h->request_pdcch();
|
|
|
|
get_enb_cc_idx(),
|
|
|
|
|
|
|
|
h->get_id());
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
// Note: Given that the UE assumes PHICH hi=1, it is not expecting PUSCH grants for tti_tx_ul. Requesting PDCCH
|
|
|
|
|
|
|
|
// for the UL Harq has the effect of forbidding PUSCH grants, since phich_tti == pdcch_tti.
|
|
|
|
|
|
|
|
h->request_pdcch();
|
|
|
|
|
|
|
|
logger.info("SCHED: UL skipped retx rnti=0x%x, cc=%d, pid=%d. Cause: PHICH-measGap collision",
|
|
|
|
|
|
|
|
user->get_rnti(),
|
|
|
|
|
|
|
|
get_enb_cc_idx(),
|
|
|
|
|
|
|
|
h->get_id());
|
|
|
|
|
|
|
|
}
|
|
|
|
return alloc_result::no_cch_space;
|
|
|
|
return alloc_result::no_cch_space;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|