Merge remote-tracking branch 'origin/better-dci-decoding' into integration_2024_w09
This commit is contained in:
@@ -497,7 +497,7 @@ int nr_ue_pusch_scheduler(const NR_UE_MAC_INST_t *mac,
|
||||
int *slot_tx,
|
||||
const long k2);
|
||||
|
||||
int get_rnti_type(NR_UE_MAC_INST_t *mac, uint16_t rnti);
|
||||
int get_rnti_type(const NR_UE_MAC_INST_t *mac, const uint16_t rnti);
|
||||
|
||||
// Configuration of Msg3 PDU according to clauses:
|
||||
// - 8.3 of 3GPP TS 38.213 version 16.3.0 Release 16
|
||||
|
||||
@@ -44,7 +44,7 @@ void fill_dci_search_candidates(const NR_SearchSpace_t *ss,
|
||||
fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15,
|
||||
const uint32_t Y)
|
||||
{
|
||||
LOG_D(NR_MAC,"Filling search candidates for DCI\n");
|
||||
LOG_D(NR_MAC_DCI, "Filling search candidates for DCI\n");
|
||||
|
||||
int i = 0;
|
||||
for (int maxL = 16; maxL > 0; maxL >>= 1) {
|
||||
@@ -55,7 +55,7 @@ void fill_dci_search_candidates(const NR_SearchSpace_t *ss,
|
||||
maxL);
|
||||
if (max_number_of_candidates == 0)
|
||||
continue;
|
||||
LOG_D(NR_MAC,"L %d, max number of candidates %d, aggregation %d\n", maxL, max_number_of_candidates, aggregation);
|
||||
LOG_D(NR_MAC_DCI, "L %d, max number of candidates %d, aggregation %d\n", maxL, max_number_of_candidates, aggregation);
|
||||
int N_cce_sym = 0; // nb of rbs of coreset per symbol
|
||||
for (int f = 0; f < 6; f++) {
|
||||
for (int t = 0; t < 8; t++) {
|
||||
@@ -67,13 +67,20 @@ void fill_dci_search_candidates(const NR_SearchSpace_t *ss,
|
||||
continue;
|
||||
for (int j = 0; j < max_number_of_candidates; j++) {
|
||||
int first_cce = aggregation * ((Y + ((j * N_cces) / (aggregation * max_number_of_candidates)) + 0) % (N_cces / aggregation));
|
||||
LOG_D(NR_MAC,"Candidate %d of %d first_cce %d (L %d N_cces %d Y %d)\n", j, max_number_of_candidates, first_cce, aggregation, N_cces, Y);
|
||||
LOG_D(NR_MAC_DCI,
|
||||
"Candidate %d of %d first_cce %d (L %d N_cces %d Y %d)\n",
|
||||
j,
|
||||
max_number_of_candidates,
|
||||
first_cce,
|
||||
aggregation,
|
||||
N_cces,
|
||||
Y);
|
||||
// to avoid storing more than one candidate with the same aggregation and starting CCE (duplicated candidate)
|
||||
bool duplicated = false;
|
||||
for (int k = 0; k < i; k++) {
|
||||
if (rel15->CCE[k] == first_cce && rel15->L[k] == aggregation) {
|
||||
duplicated = true;
|
||||
LOG_D(NR_MAC, "Candidate %d of %d is duplicated\n", j, max_number_of_candidates);
|
||||
LOG_D(NR_MAC_DCI, "Candidate %d of %d is duplicated\n", j, max_number_of_candidates);
|
||||
}
|
||||
}
|
||||
if (!duplicated) {
|
||||
@@ -296,7 +303,9 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac,
|
||||
|
||||
#ifdef DEBUG_DCI
|
||||
for (int i = 0; i < rel15->num_dci_options; i++) {
|
||||
LOG_D(MAC, "[DCI_CONFIG] Configure DCI PDU: rnti_type %d BWPSize %d BWPStart %d rel15->SubcarrierSpacing %d rel15->dci_format %d rel15->dci_length %d sps %d monitoringSymbolsWithinSlot %d \n",
|
||||
LOG_D(NR_MAC_DCI,
|
||||
"[DCI_CONFIG] Configure DCI PDU: rnti_type %d BWPSize %d BWPStart %d rel15->SubcarrierSpacing %d rel15->dci_format %d "
|
||||
"rel15->dci_length %d sps %d monitoringSymbolsWithinSlot %d \n",
|
||||
rnti_type,
|
||||
rel15->BWPSize,
|
||||
rel15->BWPStart,
|
||||
@@ -490,7 +499,7 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
|
||||
fill_coresetZero(mac->coreset0, &mac->type0_PDCCH_CSS_config);
|
||||
fill_searchSpaceZero(mac->search_space_zero, slots_per_frame, &mac->type0_PDCCH_CSS_config);
|
||||
if (is_ss_monitor_occasion(frame, slot, slots_per_frame, mac->search_space_zero)) {
|
||||
LOG_D(NR_MAC, "Monitoring DCI for SIB1 in frame %d slot %d\n", frame, slot);
|
||||
LOG_D(NR_MAC_DCI, "Monitoring DCI for SIB1 in frame %d slot %d\n", frame, slot);
|
||||
config_dci_pdu(mac, dl_config, TYPE_SI_RNTI_, slot, mac->search_space_zero);
|
||||
}
|
||||
}
|
||||
@@ -501,7 +510,7 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
|
||||
const NR_SearchSpace_t *ss = pdcch_config->otherSI_SS ? pdcch_config->otherSI_SS : mac->search_space_zero;
|
||||
// TODO configure SI-window
|
||||
if (monitior_dci_for_other_SI(mac, ss, slots_per_frame, frame, slot)) {
|
||||
LOG_D(NR_MAC, "Monitoring DCI for other SIs in frame %d slot %d\n", frame, slot);
|
||||
LOG_D(NR_MAC_DCI, "Monitoring DCI for other SIs in frame %d slot %d\n", frame, slot);
|
||||
config_dci_pdu(mac, dl_config, TYPE_SI_RNTI_, slot, ss);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user