Commit bd7d007e authored by francescomani's avatar francescomani

remove global slots_per_frame, use function instead

parent bec43f01
...@@ -862,7 +862,7 @@ printf("%d\n", slot); ...@@ -862,7 +862,7 @@ printf("%d\n", slot);
nr_l2_init_ue(1); nr_l2_init_ue(1);
UE_mac = get_mac_inst(0); UE_mac = get_mac_inst(0);
ue_init_config_request(UE_mac, nr_slots_per_frame[mu]); ue_init_config_request(UE_mac, get_slots_per_frame_from_scs(mu));
UE->if_inst = nr_ue_if_module_init(0); UE->if_inst = nr_ue_if_module_init(0);
UE->if_inst->scheduled_response = nr_ue_scheduled_response; UE->if_inst->scheduled_response = nr_ue_scheduled_response;
......
...@@ -741,7 +741,7 @@ int main(int argc, char *argv[]) ...@@ -741,7 +741,7 @@ int main(int argc, char *argv[])
nr_l2_init_ue(1); nr_l2_init_ue(1);
NR_UE_MAC_INST_t* UE_mac = get_mac_inst(0); NR_UE_MAC_INST_t* UE_mac = get_mac_inst(0);
ue_init_config_request(UE_mac, nr_slots_per_frame[mu]); ue_init_config_request(UE_mac, get_slots_per_frame_from_scs(mu));
UE->if_inst = nr_ue_if_module_init(0); UE->if_inst = nr_ue_if_module_init(0);
UE->if_inst->scheduled_response = nr_ue_scheduled_response; UE->if_inst->scheduled_response = nr_ue_scheduled_response;
......
...@@ -4129,6 +4129,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD ...@@ -4129,6 +4129,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
// 38.213 table 10.1-1 // 38.213 table 10.1-1
/// MUX PATTERN 1 /// MUX PATTERN 1
int slots_per_frame = get_slots_per_frame_from_scs(scs_ssb);
if(type0_PDCCH_CSS_config->type0_pdcch_ss_mux_pattern == 1 && frequency_range == FR1){ if(type0_PDCCH_CSS_config->type0_pdcch_ss_mux_pattern == 1 && frequency_range == FR1){
big_o = table_38213_13_11_c1[index_4lsb]; big_o = table_38213_13_11_c1[index_4lsb];
big_m = table_38213_13_11_c3[index_4lsb]; big_m = table_38213_13_11_c3[index_4lsb];
...@@ -4145,7 +4146,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD ...@@ -4145,7 +4146,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
// 38.213 chapter 13: over two consecutive slots // 38.213 chapter 13: over two consecutive slots
type0_PDCCH_CSS_config->search_space_duration = 2; type0_PDCCH_CSS_config->search_space_duration = 2;
// two frames // two frames
type0_PDCCH_CSS_config->search_space_frame_period = nr_slots_per_frame[scs_ssb]<<1; type0_PDCCH_CSS_config->search_space_frame_period = slots_per_frame << 1;
} }
if(type0_PDCCH_CSS_config->type0_pdcch_ss_mux_pattern == 1 && frequency_range == FR2){ if(type0_PDCCH_CSS_config->type0_pdcch_ss_mux_pattern == 1 && frequency_range == FR2){
...@@ -4166,7 +4167,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD ...@@ -4166,7 +4167,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
// 38.213 chapter 13: over two consecutive slots // 38.213 chapter 13: over two consecutive slots
type0_PDCCH_CSS_config->search_space_duration = 2; type0_PDCCH_CSS_config->search_space_duration = 2;
// two frames // two frames
type0_PDCCH_CSS_config->search_space_frame_period = nr_slots_per_frame[scs_ssb]<<1; type0_PDCCH_CSS_config->search_space_frame_period = slots_per_frame << 1;
} }
/// MUX PATTERN 2 /// MUX PATTERN 2
...@@ -4233,7 +4234,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD ...@@ -4233,7 +4234,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
// 38.213 chapter 13: over one slot // 38.213 chapter 13: over one slot
type0_PDCCH_CSS_config->search_space_duration = 1; type0_PDCCH_CSS_config->search_space_duration = 1;
// SSB periodicity in slots // SSB periodicity in slots
type0_PDCCH_CSS_config->search_space_frame_period = ssb_period*nr_slots_per_frame[scs_ssb]; type0_PDCCH_CSS_config->search_space_frame_period = ssb_period * slots_per_frame;
} }
/// MUX PATTERN 3 /// MUX PATTERN 3
...@@ -4263,7 +4264,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD ...@@ -4263,7 +4264,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
// 38.213 chapter 13: over one slot // 38.213 chapter 13: over one slot
type0_PDCCH_CSS_config->search_space_duration = 1; type0_PDCCH_CSS_config->search_space_duration = 1;
// SSB periodicity in slots // SSB periodicity in slots
type0_PDCCH_CSS_config->search_space_frame_period = ssb_period*nr_slots_per_frame[scs_ssb]; type0_PDCCH_CSS_config->search_space_frame_period = ssb_period * slots_per_frame;
} }
AssertFatal(type0_PDCCH_CSS_config->sfn_c >= 0, ""); AssertFatal(type0_PDCCH_CSS_config->sfn_c >= 0, "");
...@@ -4323,9 +4324,7 @@ void fill_coresetZero(NR_ControlResourceSet_t *coreset0, NR_Type0_PDCCH_CSS_conf ...@@ -4323,9 +4324,7 @@ void fill_coresetZero(NR_ControlResourceSet_t *coreset0, NR_Type0_PDCCH_CSS_conf
coreset0->pdcch_DMRS_ScramblingID = NULL; coreset0->pdcch_DMRS_ScramblingID = NULL;
} }
void fill_searchSpaceZero(NR_SearchSpace_t *ss0, void fill_searchSpaceZero(NR_SearchSpace_t *ss0, int slots_per_frame, NR_Type0_PDCCH_CSS_config_t *type0_PDCCH_CSS_config)
int slots_per_frame,
NR_Type0_PDCCH_CSS_config_t *type0_PDCCH_CSS_config)
{ {
AssertFatal(ss0, "SearchSpace0 should have been allocated outside of this function\n"); AssertFatal(ss0, "SearchSpace0 should have been allocated outside of this function\n");
if(ss0->controlResourceSetId == NULL) if(ss0->controlResourceSetId == NULL)
......
...@@ -63,7 +63,7 @@ int16_t fill_dmrs_mask(const NR_PDSCH_Config_t *pdsch_Config, ...@@ -63,7 +63,7 @@ int16_t fill_dmrs_mask(const NR_PDSCH_Config_t *pdsch_Config,
int startSymbol, int startSymbol,
mappingType_t mappingtype, mappingType_t mappingtype,
int length); int length);
int get_slots_per_frame_from_scs(int scs);
bool is_ul_slot(const slot_t slot, const frame_structure_t *fs); bool is_ul_slot(const slot_t slot, const frame_structure_t *fs);
bool is_dl_slot(const slot_t slot, const frame_structure_t *fs); bool is_dl_slot(const slot_t slot, const frame_structure_t *fs);
bool is_mixed_slot(const slot_t slot, const frame_structure_t *fs); bool is_mixed_slot(const slot_t slot, const frame_structure_t *fs);
......
...@@ -24,7 +24,12 @@ ...@@ -24,7 +24,12 @@
#include "common/utils/nr/nr_common.h" #include "common/utils/nr/nr_common.h"
#include "nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h" #include "nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h"
const uint8_t nr_slots_per_frame[5] = {10, 20, 40, 80, 160}; int get_slots_per_frame_from_scs(int scs)
{
const int nr_slots_per_frame[5] = {10, 20, 40, 80, 160};
return nr_slots_per_frame[scs];
}
const float tdd_ms_period_pattern[] = {0.5, 0.625, 1.0, 1.25, 2.0, 2.5, 5.0, 10.0}; const float tdd_ms_period_pattern[] = {0.5, 0.625, 1.0, 1.25, 2.0, 2.5, 5.0, 10.0};
const float tdd_ms_period_ext[] = {3.0, 4.0}; const float tdd_ms_period_ext[] = {3.0, 4.0};
...@@ -188,7 +193,7 @@ void config_frame_structure(int mu, ...@@ -188,7 +193,7 @@ void config_frame_structure(int mu,
uint8_t frame_type, uint8_t frame_type,
frame_structure_t *fs) frame_structure_t *fs)
{ {
fs->numb_slots_frame = nr_slots_per_frame[mu]; fs->numb_slots_frame = get_slots_per_frame_from_scs(mu);
fs->frame_type = frame_type; fs->frame_type = frame_type;
if (frame_type == TDD) { if (frame_type == TDD) {
fs->numb_period_frame = get_nb_periods_per_frame(tdd_period); fs->numb_period_frame = get_nb_periods_per_frame(tdd_period);
...@@ -196,7 +201,7 @@ void config_frame_structure(int mu, ...@@ -196,7 +201,7 @@ void config_frame_structure(int mu,
config_tdd_patterns(tdd_UL_DL_ConfigurationCommon, fs); config_tdd_patterns(tdd_UL_DL_ConfigurationCommon, fs);
} else { // FDD } else { // FDD
fs->numb_period_frame = 1; fs->numb_period_frame = 1;
fs->numb_slots_period = nr_slots_per_frame[mu]; fs->numb_slots_period = fs->numb_slots_frame;
} }
AssertFatal(fs->numb_period_frame > 0, "Frame configuration cannot be configured!\n"); AssertFatal(fs->numb_period_frame > 0, "Frame configuration cannot be configured!\n");
} }
......
...@@ -37,8 +37,6 @@ ...@@ -37,8 +37,6 @@
/*#include "PHY/defs_common.h"*/ /*#include "PHY/defs_common.h"*/
extern const uint8_t nr_slots_per_frame[5];
/* Scheduler */ /* Scheduler */
extern RAN_CONTEXT_t RC; extern RAN_CONTEXT_t RC;
extern uint8_t nfapi_mode; extern uint8_t nfapi_mode;
......
...@@ -94,7 +94,7 @@ void nr_ue_mac_default_configs(NR_UE_MAC_INST_t *mac) ...@@ -94,7 +94,7 @@ void nr_ue_mac_default_configs(NR_UE_MAC_INST_t *mac)
// sf80 default for retxBSR_Timer sf10 for periodicBSR_Timer // sf80 default for retxBSR_Timer sf10 for periodicBSR_Timer
int mu = mac->current_UL_BWP ? mac->current_UL_BWP->scs : get_softmodem_params()->numerology; int mu = mac->current_UL_BWP ? mac->current_UL_BWP->scs : get_softmodem_params()->numerology;
int subframes_per_slot = nr_slots_per_frame[mu] / 10; int subframes_per_slot = get_slots_per_frame_from_scs(mu) / 10;
nr_timer_setup(&mac->scheduling_info.retxBSR_Timer, 80 * subframes_per_slot, 1); // 1 slot update rate nr_timer_setup(&mac->scheduling_info.retxBSR_Timer, 80 * subframes_per_slot, 1); // 1 slot update rate
nr_timer_setup(&mac->scheduling_info.periodicBSR_Timer, 10 * subframes_per_slot, 1); // 1 slot update rate nr_timer_setup(&mac->scheduling_info.periodicBSR_Timer, 10 * subframes_per_slot, 1); // 1 slot update rate
...@@ -139,7 +139,7 @@ NR_UE_MAC_INST_t *nr_l2_init_ue(int nb_inst) ...@@ -139,7 +139,7 @@ NR_UE_MAC_INST_t *nr_l2_init_ue(int nb_inst)
nr_ue_init_mac(mac); nr_ue_init_mac(mac);
nr_ue_mac_default_configs(mac); nr_ue_mac_default_configs(mac);
if (IS_SA_MODE(get_softmodem_params())) if (IS_SA_MODE(get_softmodem_params()))
ue_init_config_request(mac, nr_slots_per_frame[get_softmodem_params()->numerology]); ue_init_config_request(mac, get_slots_per_frame_from_scs(get_softmodem_params()->numerology));
} }
int rc = rlc_module_init(0); int rc = rlc_module_init(0);
......
...@@ -515,7 +515,7 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl ...@@ -515,7 +515,7 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
NR_BWP_Id_t dl_bwp_id = current_DL_BWP ? current_DL_BWP->bwp_id : 0; NR_BWP_Id_t dl_bwp_id = current_DL_BWP ? current_DL_BWP->bwp_id : 0;
NR_BWP_PDCCH_t *pdcch_config = &mac->config_BWP_PDCCH[dl_bwp_id]; NR_BWP_PDCCH_t *pdcch_config = &mac->config_BWP_PDCCH[dl_bwp_id];
int scs = current_DL_BWP ? current_DL_BWP->scs : get_softmodem_params()->numerology; int scs = current_DL_BWP ? current_DL_BWP->scs : get_softmodem_params()->numerology;
const int slots_per_frame = nr_slots_per_frame[scs]; const int slots_per_frame = get_slots_per_frame_from_scs(scs);
if (mac->get_sib1) { if (mac->get_sib1) {
int ssb_sc_offset_norm; int ssb_sc_offset_norm;
if (mac->ssb_subcarrier_offset < 24 && mac->frequency_range == FR1) if (mac->ssb_subcarrier_offset < 24 && mac->frequency_range == FR1)
......
...@@ -769,7 +769,7 @@ void nr_mac_config_scc(gNB_MAC_INST *nrmac, NR_ServingCellConfigCommon_t *scc, c ...@@ -769,7 +769,7 @@ void nr_mac_config_scc(gNB_MAC_INST *nrmac, NR_ServingCellConfigCommon_t *scc, c
scc->ssb_PositionsInBurst->present); scc->ssb_PositionsInBurst->present);
const int NTN_gNB_Koffset = get_NTN_Koffset(scc); const int NTN_gNB_Koffset = get_NTN_Koffset(scc);
const int n = nr_slots_per_frame[*scc->ssbSubcarrierSpacing]; const int n = get_slots_per_frame_from_scs(*scc->ssbSubcarrierSpacing);
const int size = n << (int)ceil(log2((NTN_gNB_Koffset + 13) / n + 1)); // 13 is upper limit for max_fb_time const int size = n << (int)ceil(log2((NTN_gNB_Koffset + 13) / n + 1)); // 13 is upper limit for max_fb_time
nrmac->vrb_map_UL_size = size; nrmac->vrb_map_UL_size = size;
......
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