Commit d1dc15f3 authored by Francesco Mani's avatar Francesco Mani

SSB correctly demodulated at FSW, CRC passes, but payload is wrong

parent ac092841
......@@ -39,6 +39,7 @@
#include "PHY/NR_TRANSPORT/nr_transport.h"
#include "PHY/NR_TRANSPORT/nr_transport_common_proto.h"
#include "PHY/NR_TRANSPORT/nr_dlsch.h"
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
#include "SCHED_NR/sched_nr.h"
#include "defs.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
......
......@@ -227,7 +227,6 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
uint8_t ssb_start_symbol,
uint8_t n_hf,
uint8_t Lmax,
uint8_t ssb_index,
int sfn,
nfapi_nr_config_request_scf_t *config,
NR_DL_FRAME_PARMS *frame_parms) {
......@@ -243,6 +242,7 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
///Payload generation
memset((void *)pbch, 0, sizeof(NR_gNB_PBCH));
pbch->pbch_a=0;
uint8_t ssb_index = ssb_pdu->ssb_pdu_rel15.SsbBlockIndex;
uint8_t *pbch_pdu = (uint8_t*)&ssb_pdu->ssb_pdu_rel15.bchPayload;
for (int i=0; i<NR_PBCH_PDU_BITS; i++)
pbch->pbch_a |= ((pbch_pdu[2-(i>>3)]>>(7-(i&7)))&1)<<i;
......
......@@ -92,7 +92,6 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
uint8_t ssb_start_symbol,
uint8_t n_hf,
uint8_t Lmax,
uint8_t ssb_index,
int sfn,
nfapi_nr_config_request_scf_t *config,
NR_DL_FRAME_PARMS *frame_parms);
......
......@@ -161,7 +161,6 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
gNB->num_pdsch_rnti=0;
gNB->pdcch_pdu = NULL;
gNB->pbch_configured=0;
gNB->ssb_pdu=NULL;
for (int i=0;i<number_dl_pdu;i++) {
nfapi_nr_dl_tti_request_pdu_t *dl_tti_pdu = &DL_req->dl_tti_request_body.dl_tti_pdu_list[i];
......
......@@ -117,6 +117,8 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
ssb_index = i + 2*rel_slot; // computing the ssb_index
if ((fp->L_ssb >> ssb_index) & 0x01) { // generating the ssb only if the bit of L_ssb at current ssb index is 1
gNB->ssb_pdu->ssb_pdu_rel15.SsbBlockIndex = ssb_index;
int ssb_start_symbol_abs = nr_get_ssb_start_symbol(fp, ssb_index); // computing the starting symbol for current ssb
ssb_start_symbol = ssb_start_symbol_abs % 14; // start symbol wrt slot
......@@ -137,7 +139,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
txdataF[0],
AMP,
ssb_start_symbol,
n_hf,fp->Lmax,ssb_index,
n_hf,fp->Lmax,
frame, cfg, fp);
}
}
......
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