to avoid unnecessary error message for mixed slot in fdd
This commit is contained in:
@@ -97,7 +97,7 @@ void calculate_preferred_dl_tda(module_id_t module_id, const NR_BWP_Downlink_t *
|
|||||||
|
|
||||||
/* check that TDA index 1 fits into DL part of mixed slot, if it exists */
|
/* check that TDA index 1 fits into DL part of mixed slot, if it exists */
|
||||||
int tdaMi = -1;
|
int tdaMi = -1;
|
||||||
if (tdaList->list.count > 1) {
|
if (tdd && tdaList->list.count > 1) {
|
||||||
const NR_PDSCH_TimeDomainResourceAllocation_t *tdaP_Mi = tdaList->list.array[1];
|
const NR_PDSCH_TimeDomainResourceAllocation_t *tdaP_Mi = tdaList->list.array[1];
|
||||||
AssertFatal(!tdaP_Mi->k0 || *tdaP_Mi->k0 == 0,
|
AssertFatal(!tdaP_Mi->k0 || *tdaP_Mi->k0 == 0,
|
||||||
"TimeDomainAllocation at index 1: non-null k0 (%ld) is not supported by the scheduler\n",
|
"TimeDomainAllocation at index 1: non-null k0 (%ld) is not supported by the scheduler\n",
|
||||||
|
|||||||
@@ -144,27 +144,28 @@ void calculate_preferred_ul_tda(module_id_t module_id, const NR_BWP_Uplink_t *ub
|
|||||||
|
|
||||||
// get largest time domain allocation (TDA) for UL slot and UL in mixed slot
|
// get largest time domain allocation (TDA) for UL slot and UL in mixed slot
|
||||||
int tdaMi = -1;
|
int tdaMi = -1;
|
||||||
const NR_PUSCH_TimeDomainResourceAllocation_t *tdaP_Mi = tdaList->list.array[1];
|
if (tdd) {
|
||||||
AssertFatal(k2 == get_K2(scc, (NR_BWP_Uplink_t*)ubwp, 1, mu),
|
const NR_PUSCH_TimeDomainResourceAllocation_t *tdaP_Mi = tdaList->list.array[1];
|
||||||
"scheduler cannot handle different k2 for UL slot (%d) and UL Mixed slot (%ld)\n",
|
AssertFatal(k2 == get_K2(scc, (NR_BWP_Uplink_t*)ubwp, 1, mu),
|
||||||
k2,
|
"scheduler cannot handle different k2 for UL slot (%d) and UL Mixed slot (%ld)\n",
|
||||||
get_K2(scc, (NR_BWP_Uplink_t*)ubwp, 1, mu));
|
k2,
|
||||||
SLIV2SL(tdaP_Mi->startSymbolAndLength, &start, &len);
|
get_K2(scc, (NR_BWP_Uplink_t*)ubwp, 1, mu));
|
||||||
const uint16_t symb_tda_mi = ((1 << len) - 1) << start;
|
SLIV2SL(tdaP_Mi->startSymbolAndLength, &start, &len);
|
||||||
// check whether PUCCH and TDA overlap: then, we cannot use it. Also, check
|
const uint16_t symb_tda_mi = ((1 << len) - 1) << start;
|
||||||
// whether TDA is entirely within mixed slot, UL. Note that here we assume
|
// check whether PUCCH and TDA overlap: then, we cannot use it. Also, check
|
||||||
// that the PUCCH is scheduled in every slot, and on all RBs (which is
|
// whether TDA is entirely within mixed slot, UL. Note that here we assume
|
||||||
// mostly not true, this is a simplification)
|
// that the PUCCH is scheduled in every slot, and on all RBs (which is
|
||||||
if ((symb_pucch & symb_tda_mi) == 0 && (symb_ulMixed & symb_tda_mi) == symb_tda_mi) {
|
// mostly not true, this is a simplification)
|
||||||
tdaMi = 1;
|
if ((symb_pucch & symb_tda_mi) == 0 && (symb_ulMixed & symb_tda_mi) == symb_tda_mi) {
|
||||||
} else {
|
tdaMi = 1;
|
||||||
LOG_E(NR_MAC,
|
} else {
|
||||||
"TDA index 1 UL overlaps with PUCCH or is not entirely in mixed slot (symb_pucch %x symb_ulMixed %x symb_tda_mi %x), won't schedule UL mixed slot\n",
|
LOG_E(NR_MAC,
|
||||||
symb_pucch,
|
"TDA index 1 UL overlaps with PUCCH or is not entirely in mixed slot (symb_pucch %x symb_ulMixed %x symb_tda_mi %x), won't schedule UL mixed slot\n",
|
||||||
symb_ulMixed,
|
symb_pucch,
|
||||||
symb_tda_mi);
|
symb_ulMixed,
|
||||||
|
symb_tda_mi);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const int n = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
|
const int n = nr_slots_per_frame[*scc->ssbSubcarrierSpacing];
|
||||||
nrmac->preferred_ul_tda[bwp_id] = malloc(n * sizeof(*nrmac->preferred_ul_tda[bwp_id]));
|
nrmac->preferred_ul_tda[bwp_id] = malloc(n * sizeof(*nrmac->preferred_ul_tda[bwp_id]));
|
||||||
const int nr_mix_slots = tdd ? tdd->nrofDownlinkSymbols != 0 || tdd->nrofUplinkSymbols != 0 : 0;
|
const int nr_mix_slots = tdd ? tdd->nrofDownlinkSymbols != 0 || tdd->nrofUplinkSymbols != 0 : 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user