correct use of dataScramblingID for PDSCH at UE
This commit is contained in:
@@ -494,6 +494,7 @@ typedef struct {
|
|||||||
uint32_t tbslbrm;
|
uint32_t tbslbrm;
|
||||||
uint8_t nscid;
|
uint8_t nscid;
|
||||||
uint16_t dlDmrsScramblingId;
|
uint16_t dlDmrsScramblingId;
|
||||||
|
uint16_t dlDataScramblingId;
|
||||||
uint16_t pduBitmap;
|
uint16_t pduBitmap;
|
||||||
uint32_t k1_feedback;
|
uint32_t k1_feedback;
|
||||||
uint8_t ldpcBaseGraph;
|
uint8_t ldpcBaseGraph;
|
||||||
|
|||||||
@@ -691,7 +691,7 @@ static bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *
|
|||||||
nr_dlsch_unscrambling(llr[0],
|
nr_dlsch_unscrambling(llr[0],
|
||||||
dl_harq0->G,
|
dl_harq0->G,
|
||||||
0,
|
0,
|
||||||
ue->frame_parms.Nid_cell,
|
dlsch[0].dlsch_config.dlDataScramblingId,
|
||||||
dlsch[0].rnti);
|
dlsch[0].rnti);
|
||||||
|
|
||||||
|
|
||||||
@@ -787,7 +787,7 @@ static bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *
|
|||||||
nr_dlsch_unscrambling(llr[1],
|
nr_dlsch_unscrambling(llr[1],
|
||||||
dl_harq1->G,
|
dl_harq1->G,
|
||||||
0,
|
0,
|
||||||
ue->frame_parms.Nid_cell,
|
dlsch[1].dlsch_config.dlDataScramblingId,
|
||||||
dlsch[1].rnti);
|
dlsch[1].rnti);
|
||||||
stop_meas(&ue->dlsch_unscrambling_stats);
|
stop_meas(&ue->dlsch_unscrambling_stats);
|
||||||
|
|
||||||
|
|||||||
@@ -189,10 +189,8 @@ int get_rnti_type(const NR_UE_MAC_INST_t *mac, const uint16_t rnti)
|
|||||||
} else {
|
} else {
|
||||||
AssertFatal(1 == 0, "Not identified/handled rnti %d \n", rnti);
|
AssertFatal(1 == 0, "Not identified/handled rnti %d \n", rnti);
|
||||||
}
|
}
|
||||||
|
LOG_D(MAC, "Returning rnti_type %s \n", rnti_types(rnti_type));
|
||||||
LOG_D(MAC, "Returning rnti_type %s \n", rnti_types(rnti_type));
|
return rnti_type;
|
||||||
|
|
||||||
return rnti_type;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void nr_ue_decode_mib(NR_UE_MAC_INST_t *mac, int cc_id)
|
void nr_ue_decode_mib(NR_UE_MAC_INST_t *mac, int cc_id)
|
||||||
@@ -664,6 +662,13 @@ static int nr_ue_process_dci_dl_10(NR_UE_MAC_INST_t *mac,
|
|||||||
else
|
else
|
||||||
dlsch_pdu->dlDmrsScramblingId = mac->physCellId;
|
dlsch_pdu->dlDmrsScramblingId = mac->physCellId;
|
||||||
|
|
||||||
|
if (get_rnti_type(mac, dci_ind->rnti) == TYPE_C_RNTI_
|
||||||
|
&& dci_ind->ss_type != NR_SearchSpace__searchSpaceType_PR_common
|
||||||
|
&& pdsch_config->dataScramblingIdentityPDSCH)
|
||||||
|
dlsch_pdu->dlDataScramblingId = *pdsch_config->dataScramblingIdentityPDSCH;
|
||||||
|
else
|
||||||
|
dlsch_pdu->dlDataScramblingId = mac->physCellId;
|
||||||
|
|
||||||
/* dmrs symbol positions*/
|
/* dmrs symbol positions*/
|
||||||
dlsch_pdu->dlDmrsSymbPos = fill_dmrs_mask(pdsch_config,
|
dlsch_pdu->dlDmrsSymbPos = fill_dmrs_mask(pdsch_config,
|
||||||
NR_DL_DCI_FORMAT_1_0,
|
NR_DL_DCI_FORMAT_1_0,
|
||||||
@@ -975,6 +980,11 @@ static int nr_ue_process_dci_dl_11(NR_UE_MAC_INST_t *mac,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pdsch_Config->dataScramblingIdentityPDSCH)
|
||||||
|
dlsch_pdu->dlDataScramblingId = *pdsch_Config->dataScramblingIdentityPDSCH;
|
||||||
|
else
|
||||||
|
dlsch_pdu->dlDataScramblingId = mac->physCellId;
|
||||||
|
|
||||||
dlsch_pdu->dmrsConfigType = dl_dmrs_config->dmrs_Type == NULL ? NFAPI_NR_DMRS_TYPE1 : NFAPI_NR_DMRS_TYPE2;
|
dlsch_pdu->dmrsConfigType = dl_dmrs_config->dmrs_Type == NULL ? NFAPI_NR_DMRS_TYPE1 : NFAPI_NR_DMRS_TYPE2;
|
||||||
|
|
||||||
/* TODO: fix number of DM-RS CDM groups without data according to subclause 5.1.6.2 of 3GPP TS 38.214,
|
/* TODO: fix number of DM-RS CDM groups without data according to subclause 5.1.6.2 of 3GPP TS 38.214,
|
||||||
|
|||||||
Reference in New Issue
Block a user