Commit 4f884db3 authored by francescomani's avatar francescomani

correct use of dataScramblingID for PDSCH at UE

parent c16bde29
...@@ -494,6 +494,7 @@ typedef struct { ...@@ -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 * ...@@ -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 * ...@@ -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) ...@@ -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, ...@@ -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, ...@@ -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,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment