From a24e5b1a2fc279805d699abfe4bfb5e324a72424 Mon Sep 17 00:00:00 2001 From: Guy De Souza <desouza@eurecom.fr> Date: Mon, 6 Aug 2018 11:04:30 +0200 Subject: [PATCH] Minor changes --- openair1/PHY/NR_TRANSPORT/nr_dci_tools.c | 21 ++++++++++++------- .../LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c | 15 ++++++++++++- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c b/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c index b43687a8ec..f706f3fd20 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c +++ b/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c @@ -47,7 +47,7 @@ void nr_fill_dci_and_dlsch(PHY_VARS_gNB *gNB, nfapi_nr_config_request_t *cfg = &gNB->gNB_config; uint16_t N_RB = fp->initial_bwp_dl.N_RB; - uint8_t fsize = 0; + uint8_t fsize=0, pos=0; /// Payload generation switch(params_rel15->dci_format) { @@ -59,15 +59,21 @@ void nr_fill_dci_and_dlsch(PHY_VARS_gNB *gNB, fsize = (int)ceil( log2( (N_RB*(N_RB+1))>>1 ) ); for (int i=0; i<fsize; i++) *dci_pdu |= ((pdu_rel15->frequency_domain_assignment>>(fsize-i))&1)<<i; + pos += fsize; + // VRB to PRB mapping + *dci_pdu |= (pdu_rel15->vrb_to_prb_mapping&1)<<pos; + pos++; // Time domain assignment for (int i=0; i<4; i++) - *dci_pdu |= ((pdu_rel15->time_domain_assignment>>(4-i))&1)<<i; + *dci_pdu |= ((pdu_rel15->time_domain_assignment>>(4-i))&1)<<(pos+i); + pos += 4; //MCS for (int i=0; i<5; i++) - *dci_pdu |= ((pdu_rel15->mcs>>(5-i))&1)<<i; + *dci_pdu |= ((pdu_rel15->mcs>>(5-i))&1)<<(pos+i); + pos += 5; // TB scaling for (int i=0; i<2; i++) - *dci_pdu |= ((pdu_rel15->tb_scaling>>(2-i))&1)<<i; + *dci_pdu |= ((pdu_rel15->tb_scaling>>(2-i))&1)<<(pos+i); break; @@ -78,15 +84,16 @@ void nr_fill_dci_and_dlsch(PHY_VARS_gNB *gNB, break; } - LOG_I(MAC, "DCI PDU: [0]->0x%08x \t [0]->0x%08x [1]->0x%08x \t [2]->0x%08x \t [3]->0x%08x\n", + LOG_I(PHY, "DCI PDU: [0]->0x%08x \t [1]->0x%08x \t [2]->0x%08x \t [3]->0x%08x\n", dci_pdu[0], dci_pdu[1], dci_pdu[2], dci_pdu[3]); /// rest of DCI alloc memcpy((void*)&dci_alloc->pdcch_params, (void*)params_rel15, sizeof(nfapi_nr_dl_config_pdcch_parameters_rel15_t)); - dci_alloc->size = nr_get_dci_size(NFAPI_NR_DL_DCI_FORMAT_1_0, - NFAPI_NR_RNTI_RA, + dci_alloc->size = nr_get_dci_size(dci_alloc->pdcch_params.dci_format, + dci_alloc->pdcch_params.rnti_type, &fp->initial_bwp_dl, cfg); + LOG_I(PHY, "DCI type %d payload (size %d) generated\n", dci_alloc->pdcch_params.dci_format, dci_alloc->size); diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c index bf3dd514b9..71f1e07e8c 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c @@ -45,6 +45,8 @@ void nr_schedule_css_dlsch_phytest(module_id_t module_idP, NR_COMMON_channels_t *cc = nr_mac->common_channels; nfapi_nr_dl_config_request_body_t *dl_req; nfapi_nr_dl_config_request_pdu_t *dl_config_pdu; + nfapi_tx_request_pdu_t *TX_req; + uint16_t sfn_sf = frameP << 4 | subframeP; for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { LOG_I(MAC, "Scheduling common search space DCI type 1 for CC_id %d\n",CC_id); @@ -72,7 +74,7 @@ void nr_schedule_css_dlsch_phytest(module_id_t module_idP, pdu_rel15->time_domain_assignment = 2; pdu_rel15->vrb_to_prb_mapping = 0; pdu_rel15->tb_scaling = 1; - LOG_I(MAC, "DCI type 1 payload: freq_alloc %d, time_alloc %d, vrb to prb %d, tb_scaling %d\n", + LOG_I(MAC, "[gNB scheduler phytest] DCI type 1 payload: freq_alloc %d, time_alloc %d, vrb to prb %d, tb_scaling %d\n", pdu_rel15->frequency_domain_assignment, pdu_rel15->time_domain_assignment, pdu_rel15->vrb_to_prb_mapping, @@ -99,6 +101,17 @@ void nr_schedule_css_dlsch_phytest(module_id_t module_idP, params_rel15->first_slot); dl_req->number_dci++; dl_req->number_pdu++; + + TX_req = &nr_mac->TX_req[CC_id].tx_request_body.tx_pdu_list[nr_mac->TX_req[CC_id].tx_request_body.number_of_pdus]; + TX_req->pdu_length = 6; + TX_req->pdu_index = nr_mac->pdu_index[CC_id]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = 8; + //TX_req->segments[0].segment_data = (uint8_t*)pdu_rel15; + nr_mac->TX_req[CC_id].tx_request_body.number_of_pdus++; + nr_mac->TX_req[CC_id].sfn_sf = sfn_sf; + nr_mac->TX_req[CC_id].tx_request_body.tl.tag = NFAPI_TX_REQUEST_BODY_TAG; + nr_mac->TX_req[CC_id].header.message_id = NFAPI_TX_REQUEST; } } -- 2.26.2