Commit 6a5f782d authored by Sakthivel Velumani's avatar Sakthivel Velumani

Fixed bug in beam index

parent 44199f0d
...@@ -518,7 +518,7 @@ uint8_t nr_generate_pdsch(PHY_VARS_gNB *gNB, ...@@ -518,7 +518,7 @@ uint8_t nr_generate_pdsch(PHY_VARS_gNB *gNB,
gNB->common_vars.beam_id[0][slot*frame_parms->symbols_per_slot+j] = rel15->precodingAndBeamforming.prgs_list[0].dig_bf_interface_list[0].beam_idx; gNB->common_vars.beam_id[0][slot*frame_parms->symbols_per_slot+j] = rel15->precodingAndBeamforming.prgs_list[0].dig_bf_interface_list[0].beam_idx;
} }
else { else {
LOG_D(PHY,"beam index for PDSCH allocation already taken\n"); LOG_W(PHY,"beam index for PDSCH allocation already taken\n");
} }
}// dlsch loop }// dlsch loop
......
...@@ -1041,6 +1041,11 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra ...@@ -1041,6 +1041,11 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
nrOfSymbols, nrOfSymbols,
startSymbolIndex, startSymbolIndex,
mappingtype); mappingtype);
pdsch_pdu_rel15->precodingAndBeamforming.num_prgs=1;
pdsch_pdu_rel15->precodingAndBeamforming.prg_size=275;
pdsch_pdu_rel15->precodingAndBeamforming.dig_bf_interfaces=1;
pdsch_pdu_rel15->precodingAndBeamforming.prgs_list[0].pm_idx = 0;
pdsch_pdu_rel15->precodingAndBeamforming.prgs_list[0].dig_bf_interface_list[0].beam_idx = ra->beam_id;
int x_Overhead = 0; int x_Overhead = 0;
uint8_t tb_scaling = 0; uint8_t tb_scaling = 0;
...@@ -1056,6 +1061,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra ...@@ -1056,6 +1061,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
dci_pdu->CceIndex = CCEIndex; dci_pdu->CceIndex = CCEIndex;
dci_pdu->beta_PDCCH_1_0 = 0; dci_pdu->beta_PDCCH_1_0 = 0;
dci_pdu->powerControlOffsetSS = 1; dci_pdu->powerControlOffsetSS = 1;
dci_pdu->precodingAndBeamforming = pdsch_pdu_rel15->precodingAndBeamforming;
dci_pdu_rel15_t dci_payload; dci_pdu_rel15_t dci_payload;
dci_payload.frequency_domain_assignment.val = PRBalloc_to_locationandbandwidth0(pdsch_pdu_rel15->rbSize, dci_payload.frequency_domain_assignment.val = PRBalloc_to_locationandbandwidth0(pdsch_pdu_rel15->rbSize,
...@@ -1364,6 +1370,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra ...@@ -1364,6 +1370,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
dci_pdu->CceIndex = CCEIndex; dci_pdu->CceIndex = CCEIndex;
dci_pdu->beta_PDCCH_1_0 = 0; dci_pdu->beta_PDCCH_1_0 = 0;
dci_pdu->powerControlOffsetSS = 1; dci_pdu->powerControlOffsetSS = 1;
dci_pdu->precodingAndBeamforming = pdsch_pdu_rel15->precodingAndBeamforming;
dci_pdu_rel15_t dci_payload; dci_pdu_rel15_t dci_payload;
dci_payload.frequency_domain_assignment.val = PRBalloc_to_locationandbandwidth0(pdsch_pdu_rel15->rbSize, dci_payload.frequency_domain_assignment.val = PRBalloc_to_locationandbandwidth0(pdsch_pdu_rel15->rbSize,
......
...@@ -142,6 +142,7 @@ void schedule_ssb(frame_t frame, sub_frame_t slot, ...@@ -142,6 +142,7 @@ void schedule_ssb(frame_t frame, sub_frame_t slot,
void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP) void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
{ {
gNB_MAC_INST *gNB = RC.nrmac[module_idP]; gNB_MAC_INST *gNB = RC.nrmac[module_idP];
nfapi_nr_config_request_scf_t *cfg = &gNB->config[0];
NR_COMMON_channels_t *cc; NR_COMMON_channels_t *cc;
nfapi_nr_dl_tti_request_t *dl_tti_request; nfapi_nr_dl_tti_request_t *dl_tti_request;
nfapi_nr_dl_tti_request_body_t *dl_req; nfapi_nr_dl_tti_request_body_t *dl_req;
...@@ -264,7 +265,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP) ...@@ -264,7 +265,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
const int nr_mix_slots = tdd->nrofDownlinkSymbols != 0 || tdd->nrofUplinkSymbols != 0; const int nr_mix_slots = tdd->nrofDownlinkSymbols != 0 || tdd->nrofUplinkSymbols != 0;
const int nr_slots_period = tdd->nrofDownlinkSlots + tdd->nrofUplinkSlots + nr_mix_slots; const int nr_slots_period = tdd->nrofDownlinkSlots + tdd->nrofUplinkSlots + nr_mix_slots;
num_tdd_period = rel_slot/nr_slots_period; num_tdd_period = rel_slot/nr_slots_period;
gNB->tdd_beam_association[num_tdd_period]=i_ssb; gNB->tdd_beam_association[num_tdd_period]=cfg->ssb_table.ssb_beam_id_list[i_ssb].beam_id.value;
num_ssb++; num_ssb++;
AssertFatal(num_ssb<2,"beamforming currently not supported for more than one SSB per slot\n"); AssertFatal(num_ssb<2,"beamforming currently not supported for more than one SSB per slot\n");
if (get_softmodem_params()->sa == 1) { if (get_softmodem_params()->sa == 1) {
......
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