Commit 292addf8 authored by hardy's avatar hardy

Merge remote-tracking branch 'origin/NR_DCI_01' into integration_2020_wk30

parents 0b58e7a6 1f74524d
...@@ -160,6 +160,7 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){ ...@@ -160,6 +160,7 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
gNB->dlsch[i][0]->harq_mask=0; gNB->dlsch[i][0]->harq_mask=0;
} }
gNB->pdcch_pdu = NULL; gNB->pdcch_pdu = NULL;
gNB->ul_dci_pdu = NULL;
gNB->pbch_configured=0; gNB->pbch_configured=0;
for (int i=0;i<number_dl_pdu;i++) { for (int i=0;i<number_dl_pdu;i++) {
......
...@@ -2010,7 +2010,6 @@ uint16_t nr_dci_size(NR_ServingCellConfigCommon_t *scc, ...@@ -2010,7 +2010,6 @@ uint16_t nr_dci_size(NR_ServingCellConfigCommon_t *scc,
} }
// Precoding info and number of layers // Precoding info and number of layers
long transformPrecoder; long transformPrecoder;
dci_pdu->precoding_information.nbits = 0;
if (pusch_Config->transformPrecoder == NULL){ if (pusch_Config->transformPrecoder == NULL){
// if transform precoder is null, apply the values from msg3 // if transform precoder is null, apply the values from msg3
if(scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder == NULL) if(scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder == NULL)
......
...@@ -474,6 +474,7 @@ void config_uldci(NR_BWP_Uplink_t *ubwp, ...@@ -474,6 +474,7 @@ void config_uldci(NR_BWP_Uplink_t *ubwp,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15, nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15,
dci_pdu_rel15_t *dci_pdu_rel15, dci_pdu_rel15_t *dci_pdu_rel15,
int *dci_formats, int *rnti_types, int *dci_formats, int *rnti_types,
int time_domain_assignment,
int n_ubwp, int bwp_id) { int n_ubwp, int bwp_id) {
switch(dci_formats[(pdcch_pdu_rel15->numDlDci)-1]) { switch(dci_formats[(pdcch_pdu_rel15->numDlDci)-1]) {
...@@ -482,7 +483,7 @@ void config_uldci(NR_BWP_Uplink_t *ubwp, ...@@ -482,7 +483,7 @@ void config_uldci(NR_BWP_Uplink_t *ubwp,
pusch_pdu->rb_start, pusch_pdu->rb_start,
NRRIV2BW(ubwp->bwp_Common->genericParameters.locationAndBandwidth,275)); NRRIV2BW(ubwp->bwp_Common->genericParameters.locationAndBandwidth,275));
dci_pdu_rel15->time_domain_assignment.val = 2; // row index used here instead of SLIV; dci_pdu_rel15->time_domain_assignment.val = time_domain_assignment;
dci_pdu_rel15->frequency_hopping_flag.val = pusch_pdu->frequency_hopping; dci_pdu_rel15->frequency_hopping_flag.val = pusch_pdu->frequency_hopping;
dci_pdu_rel15->mcs = 9; dci_pdu_rel15->mcs = 9;
...@@ -497,7 +498,7 @@ void config_uldci(NR_BWP_Uplink_t *ubwp, ...@@ -497,7 +498,7 @@ void config_uldci(NR_BWP_Uplink_t *ubwp,
dci_pdu_rel15->rv = pusch_pdu->pusch_data.rv_index; dci_pdu_rel15->rv = pusch_pdu->pusch_data.rv_index;
dci_pdu_rel15->harq_pid = pusch_pdu->pusch_data.harq_process_id; dci_pdu_rel15->harq_pid = pusch_pdu->pusch_data.harq_process_id;
dci_pdu_rel15->frequency_hopping_flag.val = pusch_pdu->frequency_hopping; dci_pdu_rel15->frequency_hopping_flag.val = pusch_pdu->frequency_hopping;
//dci_pdu_rel15->dai[0].val = ???; //TODO dci_pdu_rel15->dai[0].val = 0; //TODO
// bwp indicator // bwp indicator
if (n_ubwp < 4) if (n_ubwp < 4)
dci_pdu_rel15->bwp_indicator.val = bwp_id; dci_pdu_rel15->bwp_indicator.val = bwp_id;
...@@ -511,7 +512,7 @@ void config_uldci(NR_BWP_Uplink_t *ubwp, ...@@ -511,7 +512,7 @@ void config_uldci(NR_BWP_Uplink_t *ubwp,
else else
AssertFatal(1==0,"Only frequency resource allocation type 1 is currently supported\n"); AssertFatal(1==0,"Only frequency resource allocation type 1 is currently supported\n");
// time domain assignment // time domain assignment
dci_pdu_rel15->time_domain_assignment.val = 2; dci_pdu_rel15->time_domain_assignment.val = time_domain_assignment;
// mcs // mcs
dci_pdu_rel15->mcs = pusch_pdu->mcs_index; dci_pdu_rel15->mcs = pusch_pdu->mcs_index;
// tpc command for pusch // tpc command for pusch
...@@ -918,8 +919,8 @@ void nr_schedule_uss_ulsch_phytest(int Mod_idP, ...@@ -918,8 +919,8 @@ void nr_schedule_uss_ulsch_phytest(int Mod_idP,
pusch_pdu->pusch_identity = *scc->physCellId; pusch_pdu->pusch_identity = *scc->physCellId;
} }
pusch_dmrs_AdditionalPosition_t additional_pos; pusch_dmrs_AdditionalPosition_t additional_pos;
if (NR_DMRS_UplinkConfig->dmrs_AdditionalPosition == NULL){printf("%d\n",2); if (NR_DMRS_UplinkConfig->dmrs_AdditionalPosition == NULL)
additional_pos = 2;} additional_pos = 2;
else { else {
if (*NR_DMRS_UplinkConfig->dmrs_AdditionalPosition == NR_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos3) if (*NR_DMRS_UplinkConfig->dmrs_AdditionalPosition == NR_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos3)
additional_pos = 3; additional_pos = 3;
...@@ -1052,9 +1053,10 @@ void nr_schedule_uss_ulsch_phytest(int Mod_idP, ...@@ -1052,9 +1053,10 @@ void nr_schedule_uss_ulsch_phytest(int Mod_idP,
return; return;
} }
else { else {
dci_pdu_rel15_t dci_pdu_rel15[MAX_DCI_CORESET]; dci_pdu_rel15_t *dci_pdu_rel15 = calloc(MAX_DCI_CORESET,sizeof(dci_pdu_rel15_t));
config_uldci(ubwp,pusch_pdu,pdcch_pdu_rel15,&dci_pdu_rel15[0],dci_formats,rnti_types,n_ubwp,bwp_id); config_uldci(ubwp,pusch_pdu,pdcch_pdu_rel15,&dci_pdu_rel15[0],dci_formats,rnti_types,time_domain_assignment,n_ubwp,bwp_id);
fill_dci_pdu_rel15(scc,secondaryCellGroup,pdcch_pdu_rel15,dci_pdu_rel15,dci_formats,rnti_types,pusch_pdu->bwp_size,bwp_id); fill_dci_pdu_rel15(scc,secondaryCellGroup,pdcch_pdu_rel15,dci_pdu_rel15,dci_formats,rnti_types,pusch_pdu->bwp_size,bwp_id);
free(dci_pdu_rel15);
} }
} }
...@@ -818,7 +818,7 @@ void fill_dci_pdu_rel15(NR_ServingCellConfigCommon_t *scc, ...@@ -818,7 +818,7 @@ void fill_dci_pdu_rel15(NR_ServingCellConfigCommon_t *scc,
pdcch_pdu_rel15->dci_pdu.PayloadSizeBits[d] = dci_size; pdcch_pdu_rel15->dci_pdu.PayloadSizeBits[d] = dci_size;
AssertFatal(pdcch_pdu_rel15->dci_pdu.PayloadSizeBits[d]<=64, "DCI sizes above 64 bits not yet supported"); AssertFatal(pdcch_pdu_rel15->dci_pdu.PayloadSizeBits[d]<=64, "DCI sizes above 64 bits not yet supported");
if(dci_formats[d]==NR_DL_DCI_FORMAT_1_1) if(dci_formats[d]==NR_DL_DCI_FORMAT_1_1 || dci_formats[d]==NR_UL_DCI_FORMAT_0_1)
prepare_dci(secondaryCellGroup,&dci_pdu_rel15[d],dci_formats[d],bwp_id); prepare_dci(secondaryCellGroup,&dci_pdu_rel15[d],dci_formats[d],bwp_id);
/// Payload generation /// Payload generation
......
...@@ -137,6 +137,7 @@ void config_uldci(NR_BWP_Uplink_t *ubwp, ...@@ -137,6 +137,7 @@ void config_uldci(NR_BWP_Uplink_t *ubwp,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15, nfapi_nr_dl_tti_pdcch_pdu_rel15_t *pdcch_pdu_rel15,
dci_pdu_rel15_t *dci_pdu_rel15, dci_pdu_rel15_t *dci_pdu_rel15,
int *dci_formats, int *rnti_types, int *dci_formats, int *rnti_types,
int time_domain_assignment,
int n_ubwp, int bwp_id); int n_ubwp, int bwp_id);
void configure_fapi_dl_Tx(module_id_t Mod_idP, void configure_fapi_dl_Tx(module_id_t Mod_idP,
......
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