mirror of https://github.com/PentHertz/srsLTE.git
Added mac nr prach common config convert function with test case
This commit is contained in:
parent
b19cbdde23
commit
876858b44c
|
@ -30,6 +30,7 @@ struct sib1_s;
|
|||
struct rlc_cfg_c;
|
||||
struct pdcp_cfg_s;
|
||||
struct lc_ch_cfg_s;
|
||||
struct rach_cfg_common_s;
|
||||
|
||||
} // namespace rrc_nr
|
||||
} // namespace asn1
|
||||
|
@ -46,6 +47,7 @@ void to_asn1(asn1::rrc_nr::plmn_id_s* asn1_type, const plmn_id_t& cfg);
|
|||
* MAC Config
|
||||
**************************/
|
||||
logical_channel_config_t make_mac_logical_channel_cfg_t(uint8_t lcid, const asn1::rrc_nr::lc_ch_cfg_s& asn1_type);
|
||||
rach_nr_cfg_t make_mac_rach_cfg(const asn1::rrc_nr::rach_cfg_common_s& asn1_type);
|
||||
/***************************
|
||||
* RLC Config
|
||||
**************************/
|
||||
|
|
|
@ -66,6 +66,18 @@ logical_channel_config_t make_mac_logical_channel_cfg_t(uint8_t lcid, const lc_c
|
|||
return logical_channel_config;
|
||||
}
|
||||
|
||||
rach_nr_cfg_t make_mac_rach_cfg(const rach_cfg_common_s& asn1_type)
|
||||
{
|
||||
rach_nr_cfg_t rach_nr_cfg = {};
|
||||
rach_nr_cfg.powerRampingStep = asn1_type.rach_cfg_generic.pwr_ramp_step.to_number();
|
||||
rach_nr_cfg.ra_responseWindow = asn1_type.rach_cfg_generic.ra_resp_win.to_number();
|
||||
rach_nr_cfg.prach_ConfigurationIndex = asn1_type.rach_cfg_generic.prach_cfg_idx;
|
||||
rach_nr_cfg.PreambleReceivedTargetPower = asn1_type.rach_cfg_generic.preamb_rx_target_pwr;
|
||||
rach_nr_cfg.preambleTransMax = asn1_type.rach_cfg_generic.preamb_trans_max.to_number();
|
||||
rach_nr_cfg.ra_ContentionResolutionTimer = asn1_type.ra_contention_resolution_timer.to_number();
|
||||
return rach_nr_cfg;
|
||||
};
|
||||
|
||||
rlc_config_t make_rlc_config_t(const rlc_cfg_c& asn1_type)
|
||||
{
|
||||
rlc_config_t rlc_cfg = rlc_config_t::default_rlc_um_nr_config();
|
||||
|
|
|
@ -42,6 +42,32 @@ int test_rlc_config()
|
|||
return SRSLTE_SUCCESS;
|
||||
}
|
||||
|
||||
int test_mac_rach_common_config()
|
||||
{
|
||||
asn1::rrc_nr::rach_cfg_common_s rach_common_config_asn1;
|
||||
rach_common_config_asn1.ra_contention_resolution_timer =
|
||||
asn1::rrc_nr::rach_cfg_common_s::ra_contention_resolution_timer_opts::sf64;
|
||||
rach_common_config_asn1.rach_cfg_generic.ra_resp_win = asn1::rrc_nr::rach_cfg_generic_s::ra_resp_win_opts::sl10;
|
||||
rach_common_config_asn1.rach_cfg_generic.prach_cfg_idx = 160;
|
||||
rach_common_config_asn1.rach_cfg_generic.preamb_rx_target_pwr = -110;
|
||||
rach_common_config_asn1.rach_cfg_generic.pwr_ramp_step = asn1::rrc_nr::rach_cfg_generic_s::pwr_ramp_step_opts::db4;
|
||||
rach_common_config_asn1.rach_cfg_generic.preamb_trans_max =
|
||||
asn1::rrc_nr::rach_cfg_generic_s::preamb_trans_max_opts::n7;
|
||||
|
||||
asn1::json_writer jw;
|
||||
rach_common_config_asn1.to_json(jw);
|
||||
srslog::fetch_basic_logger("RRC").info("MAC NR RACH Common config: \n %s", jw.to_string().c_str());
|
||||
|
||||
rach_nr_cfg_t rach_nr_cfg = make_mac_rach_cfg(rach_common_config_asn1);
|
||||
TESTASSERT(rach_nr_cfg.ra_responseWindow == 10);
|
||||
TESTASSERT(rach_nr_cfg.ra_ContentionResolutionTimer == 64);
|
||||
TESTASSERT(rach_nr_cfg.prach_ConfigurationIndex == 160);
|
||||
TESTASSERT(rach_nr_cfg.PreambleReceivedTargetPower == -110);
|
||||
TESTASSERT(rach_nr_cfg.preambleTransMax == 7);
|
||||
TESTASSERT(rach_nr_cfg.powerRampingStep == 4);
|
||||
return SRSLTE_SUCCESS;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
srslte::logmap::set_default_log_level(srslte::LOG_LEVEL_DEBUG);
|
||||
|
@ -55,7 +81,8 @@ int main()
|
|||
// Start the log backend.
|
||||
srslog::init();
|
||||
|
||||
TESTASSERT(test_rlc_config() == 0);
|
||||
TESTASSERT(test_rlc_config() == SRSLTE_SUCCESS);
|
||||
TESTASSERT(test_mac_rach_common_config() == SRSLTE_SUCCESS);
|
||||
|
||||
srslog::flush();
|
||||
|
||||
|
|
|
@ -558,6 +558,13 @@ bool rrc_nr::apply_sp_cell_cfg(const sp_cell_cfg_s& sp_cell_cfg)
|
|||
if (sp_cell_cfg.recfg_with_sync_present) {
|
||||
const recfg_with_sync_s& recfg_with_sync = sp_cell_cfg.recfg_with_sync;
|
||||
mac->set_crnti(recfg_with_sync.new_ue_id);
|
||||
if(recfg_with_sync.sp_cell_cfg_common_present){
|
||||
if(recfg_with_sync.sp_cell_cfg_common.ul_cfg_common_present){
|
||||
if(recfg_with_sync.sp_cell_cfg_common.ul_cfg_common.init_ul_bwp.rach_cfg_common_present){
|
||||
// mac->set_rach_common_config();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue