diff --git a/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h b/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h index dccdab045036c7a16e3bb624bc4f10d2871ff5c0..ee725ba3d9145313b683d2aaf0abfffe2e0e809b 100644 --- a/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h +++ b/nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h @@ -936,8 +936,6 @@ typedef struct { fapi_nr_tdd_table_t tdd_table; 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_dedicated_config_t dl_bwp_dedicated; diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h b/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h index 3e1a579e89dc0e84bea88b5ab13fcb81601e12a0..e2ae032d15b49edd3bf1611612a16bd5be81e804 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h @@ -90,4 +90,7 @@ void phy_adjust_gain_nr(PHY_VARS_NR_UE *ue, uint32_t rx_power_fil_dB, uint8_t eNB_id); +int16_t get_nr_PL(PHY_VARS_NR_UE *ue, + uint8_t gNB_index); + #endif diff --git a/openair1/SCHED_NR_UE/defs.h b/openair1/SCHED_NR_UE/defs.h index c205468a63f719233f4ea246762fb1f4318b5926..80d01f5fa9a259b7222beed5a79f4631d1d9268e 100644 --- a/openair1/SCHED_NR_UE/defs.h +++ b/openair1/SCHED_NR_UE/defs.h @@ -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); 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); /*@}*/ diff --git a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c index c5a98d9efee2fea3567b09bb97fdbe60b86e6a65..c540da5273b7d649f1d685d0dcd81009d707add1 100644 --- a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c +++ b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c @@ -48,7 +48,7 @@ //#include <sched.h> //#include "targets/RT/USER/nr-softmodem.h" #include "PHY/NR_UE_ESTIMATION/nr_estimation.h" - +#include "PHY/NR_TRANSPORT/nr_dci.h" #ifdef EMOS #include "SCHED/phy_procedures_emos.h" #endif @@ -4027,11 +4027,11 @@ void *UE_thread_slot1_dl_processing(void *arg) { #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; - if (config->ssb_table.ssb_period == 5) { + if (config->ssb_table.ssb_period == 0) { // check for pbch in corresponding slot each half frame if (fp->half_frame_bit) 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 } else { // 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); else return 0; @@ -4081,7 +4081,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue, 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); - 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 if ((ue->decode_MIB == 1) && slot_pbch) diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c index cdbc868971d2ff678417d483f84e96fccd886497..7c6e2741b8a119c5c052933002e31044b5787eec 100644 --- a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c +++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c @@ -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.CC_id = cc_id; - mac->phy_config.config_req.mib_sfn = frame; - proc->decoded_frame_rx=frame; //} return 0; @@ -627,8 +625,7 @@ uint32_t get_ssb_frame(uint32_t test){ // 1. TODO: Call RRC for link status return to PHY // 2. TODO: Perform SR/BSR procedures for scheduling feedback // 3. TODO: Perform PHR procedures -NR_UE_L2_STATE_t nr_ue_scheduler( - const module_id_t module_id, +NR_UE_L2_STATE_t nr_ue_scheduler(const module_id_t module_id, const uint8_t gNB_index, const int cc_id, const frame_t rx_frame, diff --git a/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c b/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c index 6f43813e9dcc10e5c0a4dc1a0b2a3812b6522061..420c88774a4d75837124bb52cbfd34859cb415b6 100644 --- a/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c +++ b/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c @@ -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){ switch(dl_info->rx_ind->rx_indication_body[i].pdu_type){ 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->rx_ind->rx_indication_body+i)->mib_pdu.pdu, (dl_info->rx_ind->rx_indication_body+i)->mib_pdu.additional_bits,