Commit c1d62a30 authored by Francesco Mani's avatar Francesco Mani

some fixes including for ssb periodicity (decoded frame still wrongly taken from proc)

parent afd578a0
...@@ -936,8 +936,6 @@ typedef struct { ...@@ -936,8 +936,6 @@ typedef struct {
fapi_nr_tdd_table_t tdd_table; fapi_nr_tdd_table_t tdd_table;
fapi_nr_prach_config_t prach_config; fapi_nr_prach_config_t prach_config;
uint16_t mib_sfn;
fapi_nr_dl_bwp_common_config_t dl_bwp_common; fapi_nr_dl_bwp_common_config_t dl_bwp_common;
fapi_nr_dl_bwp_dedicated_config_t dl_bwp_dedicated; fapi_nr_dl_bwp_dedicated_config_t dl_bwp_dedicated;
......
...@@ -90,4 +90,7 @@ void phy_adjust_gain_nr(PHY_VARS_NR_UE *ue, ...@@ -90,4 +90,7 @@ void phy_adjust_gain_nr(PHY_VARS_NR_UE *ue,
uint32_t rx_power_fil_dB, uint32_t rx_power_fil_dB,
uint8_t eNB_id); uint8_t eNB_id);
int16_t get_nr_PL(PHY_VARS_NR_UE *ue,
uint8_t gNB_index);
#endif #endif
...@@ -370,7 +370,7 @@ void nr_compute_srs_pos(lte_frame_type_t frameType,uint16_t isrs,uint16_t *psrsP ...@@ -370,7 +370,7 @@ void nr_compute_srs_pos(lte_frame_type_t frameType,uint16_t isrs,uint16_t *psrsP
void set_tx_harq_id(NR_UE_ULSCH_t *ulsch, int harq_pid, int slot_tx); void set_tx_harq_id(NR_UE_ULSCH_t *ulsch, int harq_pid, int slot_tx);
int get_tx_harq_id(NR_UE_ULSCH_t *ulsch, int slot_tx); int get_tx_harq_id(NR_UE_ULSCH_t *ulsch, int slot_tx);
int is_pbch_in_slot(fapi_nr_config_request_t *config, int frame, int slot, NR_DL_FRAME_PARMS *fp); int is_pbch_in_slot(fapi_nr_config_request_t *config, int frame, int slot, NR_DL_FRAME_PARMS *fp, int mib_sfn);
/*@}*/ /*@}*/
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
//#include <sched.h> //#include <sched.h>
//#include "targets/RT/USER/nr-softmodem.h" //#include "targets/RT/USER/nr-softmodem.h"
#include "PHY/NR_UE_ESTIMATION/nr_estimation.h" #include "PHY/NR_UE_ESTIMATION/nr_estimation.h"
#include "PHY/NR_TRANSPORT/nr_dci.h"
#ifdef EMOS #ifdef EMOS
#include "SCHED/phy_procedures_emos.h" #include "SCHED/phy_procedures_emos.h"
#endif #endif
...@@ -4027,11 +4027,11 @@ void *UE_thread_slot1_dl_processing(void *arg) { ...@@ -4027,11 +4027,11 @@ void *UE_thread_slot1_dl_processing(void *arg) {
#endif #endif
int is_pbch_in_slot(fapi_nr_config_request_t *config, int frame, int slot, NR_DL_FRAME_PARMS *fp) { int is_pbch_in_slot(fapi_nr_config_request_t *config, int frame, int slot, NR_DL_FRAME_PARMS *fp, int mib_sfn) {
int ssb_slot_decoded = (fp->ssb_index)/2; int ssb_slot_decoded = (fp->ssb_index)/2;
if (config->ssb_table.ssb_period == 5) { if (config->ssb_table.ssb_period == 0) {
// check for pbch in corresponding slot each half frame // check for pbch in corresponding slot each half frame
if (fp->half_frame_bit) if (fp->half_frame_bit)
return(slot == ssb_slot_decoded || slot == ssb_slot_decoded - fp->slots_per_frame/2); return(slot == ssb_slot_decoded || slot == ssb_slot_decoded - fp->slots_per_frame/2);
...@@ -4040,7 +4040,7 @@ int is_pbch_in_slot(fapi_nr_config_request_t *config, int frame, int slot, NR_DL ...@@ -4040,7 +4040,7 @@ int is_pbch_in_slot(fapi_nr_config_request_t *config, int frame, int slot, NR_DL
} }
else { else {
// if the current frame is supposed to contain ssb // if the current frame is supposed to contain ssb
if (!((frame-(config->mib_sfn))%(config->ssb_table.ssb_period/10))) if (!((frame-(mib_sfn))%(1<<config->ssb_table.ssb_period)))
return(slot == ssb_slot_decoded); return(slot == ssb_slot_decoded);
else else
return 0; return 0;
...@@ -4081,7 +4081,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, ...@@ -4081,7 +4081,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
if (pdcch_vars->nb_search_space > 0) if (pdcch_vars->nb_search_space > 0)
get_coreset_rballoc(pdcch_vars->pdcch_config[0].coreset.frequency_domain_resource,&coreset_nb_rb,&coreset_start_rb); get_coreset_rballoc(pdcch_vars->pdcch_config[0].coreset.frequency_domain_resource,&coreset_nb_rb,&coreset_start_rb);
slot_pbch = is_pbch_in_slot(cfg, frame_rx, nr_tti_rx, fp); slot_pbch = is_pbch_in_slot(cfg, frame_rx, nr_tti_rx, fp, proc->decoded_frame_rx);
// looking for pbch only in slot where it is supposed to be // looking for pbch only in slot where it is supposed to be
if ((ue->decode_MIB == 1) && slot_pbch) if ((ue->decode_MIB == 1) && slot_pbch)
......
...@@ -609,8 +609,6 @@ int8_t nr_ue_decode_mib(UE_nr_rxtx_proc_t *proc, ...@@ -609,8 +609,6 @@ int8_t nr_ue_decode_mib(UE_nr_rxtx_proc_t *proc,
mac->phy_config.Mod_id = module_id; mac->phy_config.Mod_id = module_id;
mac->phy_config.CC_id = cc_id; mac->phy_config.CC_id = cc_id;
mac->phy_config.config_req.mib_sfn = frame;
proc->decoded_frame_rx=frame; proc->decoded_frame_rx=frame;
//} //}
return 0; return 0;
...@@ -627,8 +625,7 @@ uint32_t get_ssb_frame(uint32_t test){ ...@@ -627,8 +625,7 @@ uint32_t get_ssb_frame(uint32_t test){
// 1. TODO: Call RRC for link status return to PHY // 1. TODO: Call RRC for link status return to PHY
// 2. TODO: Perform SR/BSR procedures for scheduling feedback // 2. TODO: Perform SR/BSR procedures for scheduling feedback
// 3. TODO: Perform PHR procedures // 3. TODO: Perform PHR procedures
NR_UE_L2_STATE_t nr_ue_scheduler( NR_UE_L2_STATE_t nr_ue_scheduler(const module_id_t module_id,
const module_id_t module_id,
const uint8_t gNB_index, const uint8_t gNB_index,
const int cc_id, const int cc_id,
const frame_t rx_frame, const frame_t rx_frame,
......
...@@ -218,7 +218,7 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info){ ...@@ -218,7 +218,7 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info){
for(i=0; i<dl_info->rx_ind->number_pdus; ++i){ for(i=0; i<dl_info->rx_ind->number_pdus; ++i){
switch(dl_info->rx_ind->rx_indication_body[i].pdu_type){ switch(dl_info->rx_ind->rx_indication_body[i].pdu_type){
case FAPI_NR_RX_PDU_TYPE_MIB: case FAPI_NR_RX_PDU_TYPE_MIB:
ret_mask |= (handle_bcch_bch( dl_info->proc, ret_mask |= (handle_bcch_bch(dl_info->proc,
dl_info->module_id, dl_info->cc_id, dl_info->gNB_index, dl_info->module_id, dl_info->cc_id, dl_info->gNB_index,
(dl_info->rx_ind->rx_indication_body+i)->mib_pdu.pdu, (dl_info->rx_ind->rx_indication_body+i)->mib_pdu.pdu,
(dl_info->rx_ind->rx_indication_body+i)->mib_pdu.additional_bits, (dl_info->rx_ind->rx_indication_body+i)->mib_pdu.additional_bits,
......
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