mirror of https://github.com/PentHertz/srsLTE.git
updated rrc to new srsasn1 version
This commit is contained in:
parent
1212d403c6
commit
d270518d69
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
15451
lib/src/asn1/rrc_asn1.cc
15451
lib/src/asn1/rrc_asn1.cc
File diff suppressed because it is too large
Load Diff
|
@ -2745,7 +2745,18 @@ int8_t sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst
|
|||
options, 4, value, "sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_e_");
|
||||
}
|
||||
|
||||
std::string sib_info_item_c::types_opts::to_string() const
|
||||
std::string pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::types_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {
|
||||
"posSib1-1-r15", "posSib1-2-r15", "posSib1-3-r15", "posSib1-4-r15", "posSib1-5-r15", "posSib1-6-r15",
|
||||
"posSib1-7-r15", "posSib2-1-r15", "posSib2-2-r15", "posSib2-3-r15", "posSib2-4-r15", "posSib2-5-r15",
|
||||
"posSib2-6-r15", "posSib2-7-r15", "posSib2-8-r15", "posSib2-9-r15", "posSib2-10-r15", "posSib2-11-r15",
|
||||
"posSib2-12-r15", "posSib2-13-r15", "posSib2-14-r15", "posSib2-15-r15", "posSib2-16-r15", "posSib2-17-r15",
|
||||
"posSib2-18-r15", "posSib2-19-r15", "posSib3-1-r15"};
|
||||
return convert_enum_idx(options, 27, value, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::types");
|
||||
}
|
||||
|
||||
std::string sys_info_r8_ies_s::sib_type_and_info_item_c_::types_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"sib2", "sib3", "sib4", "sib5", "sib6",
|
||||
"sib7", "sib8", "sib9", "sib10", "sib11",
|
||||
|
@ -2943,7 +2954,7 @@ std::string p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::types_opts::to_string() const
|
|||
uint8_t p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::types_opts::to_number() const
|
||||
{
|
||||
switch (value) {
|
||||
case beamformed_k1a_r13:
|
||||
case bf_k1a_r13:
|
||||
return 1;
|
||||
default:
|
||||
invalid_enum_number(value, "p_c_and_cbsr_r13_s::cbsr_sel_r13_c_::types");
|
||||
|
@ -5625,15 +5636,15 @@ int8_t mac_main_cfg_s::phr_cfg_c_::setup_s_::dl_pathloss_change_opts::to_number(
|
|||
return convert_enum_idx(options, 4, value, "mac_main_cfg_s::phr_cfg_c_::setup_s_::dl_pathloss_change_e_");
|
||||
}
|
||||
|
||||
std::string mac_main_cfg_s::mac_main_cfg_v1020_s_::s_cell_deactivation_timer_r10_opts::to_string() const
|
||||
std::string mac_main_cfg_s::mac_main_cfg_v1020_s_::scell_deactivation_timer_r10_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"rf2", "rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "spare"};
|
||||
return convert_enum_idx(options, 8, value, "mac_main_cfg_s::mac_main_cfg_v1020_s_::s_cell_deactivation_timer_r10_e_");
|
||||
return convert_enum_idx(options, 8, value, "mac_main_cfg_s::mac_main_cfg_v1020_s_::scell_deactivation_timer_r10_e_");
|
||||
}
|
||||
uint8_t mac_main_cfg_s::mac_main_cfg_v1020_s_::s_cell_deactivation_timer_r10_opts::to_number() const
|
||||
uint8_t mac_main_cfg_s::mac_main_cfg_v1020_s_::scell_deactivation_timer_r10_opts::to_number() const
|
||||
{
|
||||
static constexpr uint8_t options[] = {2, 4, 8, 16, 32, 64, 128};
|
||||
return convert_enum_idx(options, 7, value, "mac_main_cfg_s::mac_main_cfg_v1020_s_::s_cell_deactivation_timer_r10_e_");
|
||||
return convert_enum_idx(options, 7, value, "mac_main_cfg_s::mac_main_cfg_v1020_s_::scell_deactivation_timer_r10_e_");
|
||||
}
|
||||
|
||||
std::string mac_main_cfg_s::dual_connect_phr_c_::setup_s_::phr_mode_other_cg_r12_opts::to_string() const
|
||||
|
@ -5655,15 +5666,15 @@ uint16_t mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::setup_s_::lc_ch_sr_prohibit_timer_
|
|||
options, 7, value, "mac_main_cfg_s::lc_ch_sr_cfg_r12_c_::setup_s_::lc_ch_sr_prohibit_timer_r12_e_");
|
||||
}
|
||||
|
||||
std::string mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_::types_opts::to_string() const
|
||||
std::string mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::types_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"sf5120", "sf10240"};
|
||||
return convert_enum_idx(options, 2, value, "mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_::types");
|
||||
return convert_enum_idx(options, 2, value, "mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::types");
|
||||
}
|
||||
uint16_t mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_::types_opts::to_number() const
|
||||
uint16_t mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::types_opts::to_number() const
|
||||
{
|
||||
static constexpr uint16_t options[] = {5120, 10240};
|
||||
return convert_enum_idx(options, 2, value, "mac_main_cfg_s::e_drx_cfg_cycle_start_offset_r13_c_::setup_c_::types");
|
||||
return convert_enum_idx(options, 2, value, "mac_main_cfg_s::edrx_cfg_cycle_start_offset_r13_c_::setup_c_::types");
|
||||
}
|
||||
|
||||
std::string mac_main_cfg_s::short_tti_and_spt_r15_c_::setup_s_::periodic_bsr_timer_r15_opts::to_string() const
|
||||
|
@ -5701,17 +5712,17 @@ std::string mac_main_cfg_s::short_tti_and_spt_r15_c_::setup_s_::proc_timeline_r1
|
|||
options, 4, value, "mac_main_cfg_s::short_tti_and_spt_r15_c_::setup_s_::proc_timeline_r15_e_");
|
||||
}
|
||||
|
||||
std::string mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::s_cell_hibernation_timer_r15_opts::to_string() const
|
||||
std::string mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::scell_hibernation_timer_r15_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"rf2", "rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "spare"};
|
||||
return convert_enum_idx(
|
||||
options, 8, value, "mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::s_cell_hibernation_timer_r15_e_");
|
||||
options, 8, value, "mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::scell_hibernation_timer_r15_e_");
|
||||
}
|
||||
uint8_t mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::s_cell_hibernation_timer_r15_opts::to_number() const
|
||||
uint8_t mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::scell_hibernation_timer_r15_opts::to_number() const
|
||||
{
|
||||
static constexpr uint8_t options[] = {2, 4, 8, 16, 32, 64, 128};
|
||||
return convert_enum_idx(
|
||||
options, 7, value, "mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::s_cell_hibernation_timer_r15_e_");
|
||||
options, 7, value, "mac_main_cfg_s::dormant_state_timers_r15_c_::setup_s_::scell_hibernation_timer_r15_e_");
|
||||
}
|
||||
|
||||
std::string
|
||||
|
@ -6973,16 +6984,16 @@ uint8_t rlf_timers_and_consts_scg_r12_c::setup_s_::n314_r12_opts::to_number() co
|
|||
return convert_enum_idx(options, 8, value, "rlf_timers_and_consts_scg_r12_c::setup_s_::n314_r12_e_");
|
||||
}
|
||||
|
||||
std::string scell_to_add_mod_r10_s::s_cell_state_r15_opts::to_string() const
|
||||
std::string scell_to_add_mod_r10_s::scell_state_r15_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"activated", "dormant"};
|
||||
return convert_enum_idx(options, 2, value, "scell_to_add_mod_r10_s::s_cell_state_r15_e_");
|
||||
return convert_enum_idx(options, 2, value, "scell_to_add_mod_r10_s::scell_state_r15_e_");
|
||||
}
|
||||
|
||||
std::string scell_to_add_mod_ext_v1430_s::s_cell_state_r15_opts::to_string() const
|
||||
std::string scell_to_add_mod_ext_v1430_s::scell_state_r15_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"activated", "dormant"};
|
||||
return convert_enum_idx(options, 2, value, "scell_to_add_mod_ext_v1430_s::s_cell_state_r15_e_");
|
||||
return convert_enum_idx(options, 2, value, "scell_to_add_mod_ext_v1430_s::scell_state_r15_e_");
|
||||
}
|
||||
|
||||
std::string sl_disc_tx_ref_carrier_ded_r13_c::types_opts::to_string() const
|
||||
|
@ -7034,15 +7045,15 @@ uint8_t sf_assign_r15_opts::to_number() const
|
|||
return convert_enum_idx(options, 7, value, "sf_assign_r15_e");
|
||||
}
|
||||
|
||||
std::string wlan_mob_cfg_r13_s::association_timer_r13_opts::to_string() const
|
||||
std::string wlan_mob_cfg_r13_s::assoc_timer_r13_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"s10", "s30", "s60", "s120", "s240"};
|
||||
return convert_enum_idx(options, 5, value, "wlan_mob_cfg_r13_s::association_timer_r13_e_");
|
||||
return convert_enum_idx(options, 5, value, "wlan_mob_cfg_r13_s::assoc_timer_r13_e_");
|
||||
}
|
||||
uint8_t wlan_mob_cfg_r13_s::association_timer_r13_opts::to_number() const
|
||||
uint8_t wlan_mob_cfg_r13_s::assoc_timer_r13_opts::to_number() const
|
||||
{
|
||||
static constexpr uint8_t options[] = {10, 30, 60, 120, 240};
|
||||
return convert_enum_idx(options, 5, value, "wlan_mob_cfg_r13_s::association_timer_r13_e_");
|
||||
return convert_enum_idx(options, 5, value, "wlan_mob_cfg_r13_s::assoc_timer_r13_e_");
|
||||
}
|
||||
|
||||
// CA-BandwidthClass-r10 ::= ENUMERATED
|
||||
|
@ -7510,7 +7521,7 @@ std::string pwr_pref_ind_cfg_r11_c::setup_s_::pwr_pref_ind_timer_r11_opts::to_nu
|
|||
return convert_enum_idx(options, 16, value, "pwr_pref_ind_cfg_r11_c::setup_s_::pwr_pref_ind_timer_r11_e_");
|
||||
}
|
||||
|
||||
std::string report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_::types_opts::to_string() const
|
||||
std::string eutra_event_s::event_id_c_::types_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"eventA1",
|
||||
"eventA2",
|
||||
|
@ -7524,7 +7535,7 @@ std::string report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_::types_op
|
|||
"eventV2-r14",
|
||||
"eventH1-r15",
|
||||
"eventH2-r15"};
|
||||
return convert_enum_idx(options, 12, value, "report_cfg_eutra_s::trigger_type_c_::event_s_::event_id_c_::types");
|
||||
return convert_enum_idx(options, 12, value, "eutra_event_s::event_id_c_::types");
|
||||
}
|
||||
|
||||
std::string report_cfg_eutra_s::trigger_type_c_::periodical_s_::purpose_opts::to_string() const
|
||||
|
@ -9890,15 +9901,15 @@ uint8_t mimo_ca_params_per_bo_bc_per_tm_v1470_s::csi_report_advanced_max_ports_r
|
|||
options, 6, value, "mimo_ca_params_per_bo_bc_per_tm_v1470_s::csi_report_advanced_max_ports_r14_e_");
|
||||
}
|
||||
|
||||
std::string stti_spt_band_params_r15_s::s_tti_supported_csi_proc_r15_opts::to_string() const
|
||||
std::string stti_spt_band_params_r15_s::stti_supported_csi_proc_r15_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"n1", "n3", "n4"};
|
||||
return convert_enum_idx(options, 3, value, "stti_spt_band_params_r15_s::s_tti_supported_csi_proc_r15_e_");
|
||||
return convert_enum_idx(options, 3, value, "stti_spt_band_params_r15_s::stti_supported_csi_proc_r15_e_");
|
||||
}
|
||||
uint8_t stti_spt_band_params_r15_s::s_tti_supported_csi_proc_r15_opts::to_number() const
|
||||
uint8_t stti_spt_band_params_r15_s::stti_supported_csi_proc_r15_opts::to_number() const
|
||||
{
|
||||
static constexpr uint8_t options[] = {1, 3, 4};
|
||||
return convert_enum_idx(options, 3, value, "stti_spt_band_params_r15_s::s_tti_supported_csi_proc_r15_e_");
|
||||
return convert_enum_idx(options, 3, value, "stti_spt_band_params_r15_s::stti_supported_csi_proc_r15_e_");
|
||||
}
|
||||
|
||||
// V2X-BandwidthClass-r14 ::= ENUMERATED
|
||||
|
@ -10024,30 +10035,30 @@ uint8_t processing_timeline_set_r15_opts::to_number() const
|
|||
return convert_enum_idx(options, 2, value, "processing_timeline_set_r15_e");
|
||||
}
|
||||
|
||||
std::string mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::n_max_res_r14_opts::to_string() const
|
||||
std::string mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::nmax_res_r14_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"ffs1", "ffs2", "ffs3", "ffs4"};
|
||||
return convert_enum_idx(
|
||||
options, 4, value, "mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::n_max_res_r14_e_");
|
||||
options, 4, value, "mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::nmax_res_r14_e_");
|
||||
}
|
||||
uint8_t mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::n_max_res_r14_opts::to_number() const
|
||||
uint8_t mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::nmax_res_r14_opts::to_number() const
|
||||
{
|
||||
static constexpr uint8_t options[] = {1, 2, 3, 4};
|
||||
return convert_enum_idx(
|
||||
options, 4, value, "mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::n_max_res_r14_e_");
|
||||
options, 4, value, "mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_aperiodic_info_r14_s_::nmax_res_r14_e_");
|
||||
}
|
||||
|
||||
std::string mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_periodic_info_r14_s_::n_max_res_r14_opts::to_string() const
|
||||
std::string mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_periodic_info_r14_s_::nmax_res_r14_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"ffs1", "ffs2", "ffs3", "ffs4"};
|
||||
return convert_enum_idx(
|
||||
options, 4, value, "mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_periodic_info_r14_s_::n_max_res_r14_e_");
|
||||
options, 4, value, "mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_periodic_info_r14_s_::nmax_res_r14_e_");
|
||||
}
|
||||
uint8_t mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_periodic_info_r14_s_::n_max_res_r14_opts::to_number() const
|
||||
uint8_t mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_periodic_info_r14_s_::nmax_res_r14_opts::to_number() const
|
||||
{
|
||||
static constexpr uint8_t options[] = {1, 2, 3, 4};
|
||||
return convert_enum_idx(
|
||||
options, 4, value, "mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_periodic_info_r14_s_::n_max_res_r14_e_");
|
||||
options, 4, value, "mimo_ue_params_per_tm_v1430_s::nzp_csi_rs_periodic_info_r14_s_::nmax_res_r14_e_");
|
||||
}
|
||||
|
||||
std::string mimo_ue_params_per_tm_v1470_s::csi_report_advanced_max_ports_r14_opts::to_string() const
|
||||
|
@ -10161,31 +10172,23 @@ uint8_t phy_layer_params_v1430_s::ce_retuning_symbols_r14_opts::to_number() cons
|
|||
return convert_enum_idx(options, 2, value, "phy_layer_params_v1430_s::ce_retuning_symbols_r14_e_");
|
||||
}
|
||||
|
||||
std::string
|
||||
phy_layer_params_v1530_s::stti_spt_capabilities_r15_s_::max_layers_slot_or_subslot_pusch_r15_opts::to_string() const
|
||||
std::string phy_layer_params_v1530_s::stti_spt_cap_r15_s_::max_layers_slot_or_subslot_pusch_r15_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"oneLayer", "twoLayers", "fourLayers"};
|
||||
return convert_enum_idx(
|
||||
options,
|
||||
3,
|
||||
value,
|
||||
"phy_layer_params_v1530_s::stti_spt_capabilities_r15_s_::max_layers_slot_or_subslot_pusch_r15_e_");
|
||||
options, 3, value, "phy_layer_params_v1530_s::stti_spt_cap_r15_s_::max_layers_slot_or_subslot_pusch_r15_e_");
|
||||
}
|
||||
uint8_t
|
||||
phy_layer_params_v1530_s::stti_spt_capabilities_r15_s_::max_layers_slot_or_subslot_pusch_r15_opts::to_number() const
|
||||
uint8_t phy_layer_params_v1530_s::stti_spt_cap_r15_s_::max_layers_slot_or_subslot_pusch_r15_opts::to_number() const
|
||||
{
|
||||
static constexpr uint8_t options[] = {1, 2, 4};
|
||||
return convert_enum_idx(
|
||||
options,
|
||||
3,
|
||||
value,
|
||||
"phy_layer_params_v1530_s::stti_spt_capabilities_r15_s_::max_layers_slot_or_subslot_pusch_r15_e_");
|
||||
options, 3, value, "phy_layer_params_v1530_s::stti_spt_cap_r15_s_::max_layers_slot_or_subslot_pusch_r15_e_");
|
||||
}
|
||||
|
||||
std::string phy_layer_params_v1530_s::stti_spt_capabilities_r15_s_::sps_stti_r15_opts::to_string() const
|
||||
std::string phy_layer_params_v1530_s::stti_spt_cap_r15_s_::sps_stti_r15_opts::to_string() const
|
||||
{
|
||||
static constexpr const char* options[] = {"slot", "subslot", "slotAndSubslot"};
|
||||
return convert_enum_idx(options, 3, value, "phy_layer_params_v1530_s::stti_spt_capabilities_r15_s_::sps_stti_r15_e_");
|
||||
return convert_enum_idx(options, 3, value, "phy_layer_params_v1530_s::stti_spt_cap_r15_s_::sps_stti_r15_e_");
|
||||
}
|
||||
|
||||
std::string supported_band_eutra_v1320_s::ue_pwr_class_n_r13_opts::to_string() const
|
||||
|
|
|
@ -334,7 +334,7 @@ void set_phy_cfg_t_dedicated_cfg(phy_cfg_t* cfg, const asn1::rrc::phys_cfg_ded_s
|
|||
asn1_type.ul_pwr_ctrl_ded.delta_mcs_enabled == asn1::rrc::ul_pwr_ctrl_ded_s::delta_mcs_enabled_e_::en0;
|
||||
cfg->ul_cfg.power_ctrl.acc_enabled = asn1_type.ul_pwr_ctrl_ded.accumulation_enabled;
|
||||
cfg->ul_cfg.power_ctrl.p0_ue_pucch = asn1_type.ul_pwr_ctrl_ded.p0_ue_pucch;
|
||||
cfg->ul_cfg.power_ctrl.p_srs_offset = asn1_type.ul_pwr_ctrl_ded.p_srs_offset;
|
||||
cfg->ul_cfg.power_ctrl.p_srs_offset = asn1_type.ul_pwr_ctrl_ded.psrs_offset;
|
||||
}
|
||||
|
||||
if (asn1_type.ul_pwr_ctrl_ded.filt_coef_present) {
|
||||
|
@ -501,8 +501,8 @@ void set_phy_cfg_t_common_pucch(phy_cfg_t* cfg, const asn1::rrc::pucch_cfg_commo
|
|||
{
|
||||
/* PUCCH configuration */
|
||||
cfg->ul_cfg.pucch.delta_pucch_shift = asn1_type.delta_pucch_shift.to_number();
|
||||
cfg->ul_cfg.pucch.N_cs = asn1_type.n_cs_an;
|
||||
cfg->ul_cfg.pucch.n_rb_2 = asn1_type.n_rb_cqi;
|
||||
cfg->ul_cfg.pucch.N_cs = asn1_type.ncs_an;
|
||||
cfg->ul_cfg.pucch.n_rb_2 = asn1_type.nrb_cqi;
|
||||
cfg->ul_cfg.pucch.N_pucch_1 = asn1_type.n1_pucch_an;
|
||||
}
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ void print_console(srsasn_logger_level_t log_level, void* ctx, const char* str)
|
|||
}
|
||||
|
||||
struct TestLogger {
|
||||
TestLogger(const std::string& layer_) : layer(layer_), last_level(LOG_LEVEL_INFO) {}
|
||||
TestLogger(const std::string& layer_) : layer(layer_) {}
|
||||
void log(srsasn_logger_level_t log_level, const char* str)
|
||||
{
|
||||
last_level = log_level;
|
||||
|
@ -395,7 +395,7 @@ int ue_rrc_conn_recfg_r15_v10_test()
|
|||
dl_dcch_msg_s dl_dcch_msg;
|
||||
dl_dcch_msg.unpack(bref);
|
||||
|
||||
TESTASSERT(ceil(bref.distance(bref0) / 8.0) == rrc_msg_len);
|
||||
TESTASSERT(bref.distance_bytes() == (int)rrc_msg_len);
|
||||
|
||||
TESTASSERT(dl_dcch_msg.msg.type() == dl_dcch_msg_type_c::types::c1);
|
||||
TESTASSERT(dl_dcch_msg.msg.c1().type() == dl_dcch_msg_type_c::c1_c_::types::rrc_conn_recfg);
|
||||
|
@ -450,7 +450,7 @@ int ue_rrc_conn_recfg_r15_v10_test()
|
|||
TESTASSERT(explicit_value.type() == rlc_cfg_c::types::am);
|
||||
rlc_cfg_c::am_s_& am = explicit_value.am();
|
||||
TESTASSERT(am.ul_am_rlc.t_poll_retx == t_poll_retx_e::ms35);
|
||||
TESTASSERT(am.ul_am_rlc.poll_pdu == poll_pdu_e::p_infinity);
|
||||
TESTASSERT(am.ul_am_rlc.poll_pdu == poll_pdu_e::pinfinity);
|
||||
TESTASSERT(am.ul_am_rlc.poll_byte == poll_byte_e::kbinfinity);
|
||||
TESTASSERT(am.ul_am_rlc.max_retx_thres == ul_am_rlc_s::max_retx_thres_e_::t32);
|
||||
TESTASSERT(am.dl_am_rlc.t_reordering == t_reordering_e::ms35);
|
||||
|
@ -511,8 +511,8 @@ int ue_rrc_conn_recfg_r15_v10_test()
|
|||
TESTASSERT(rrc_recfg_r8->non_crit_ext.non_crit_ext_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.other_cfg_r9_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.full_cfg_r9_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.s_cell_to_release_list_r10_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.s_cell_to_add_mod_list_r10_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.scell_to_release_list_r10_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.scell_to_add_mod_list_r10_present);
|
||||
TESTASSERT(rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.sib_type1_ded_r11_present);
|
||||
TESTASSERT(rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext_present);
|
||||
|
@ -527,9 +527,9 @@ int ue_rrc_conn_recfg_r15_v10_test()
|
|||
not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.sl_comm_cfg_r12_present);
|
||||
TESTASSERT(rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext
|
||||
.s_cell_to_release_list_ext_r13_present);
|
||||
.scell_to_release_list_ext_r13_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext
|
||||
.s_cell_to_add_mod_list_ext_r13_present);
|
||||
.scell_to_add_mod_list_ext_r13_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext
|
||||
.lwa_cfg_r13_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext
|
||||
|
@ -541,7 +541,7 @@ int ue_rrc_conn_recfg_r15_v10_test()
|
|||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext
|
||||
.non_crit_ext.sl_v2x_cfg_ded_r14_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext
|
||||
.non_crit_ext.s_cell_to_add_mod_list_ext_v1430_present);
|
||||
.non_crit_ext.scell_to_add_mod_list_ext_v1430_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext
|
||||
.non_crit_ext.per_cc_gap_ind_request_r14_present);
|
||||
TESTASSERT(not rrc_recfg_r8->non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext.non_crit_ext
|
||||
|
@ -594,6 +594,54 @@ int unrecognized_ext_group_test()
|
|||
return 0;
|
||||
}
|
||||
|
||||
int v2x_test()
|
||||
{
|
||||
// Suspected sl_v2x_preconfig message
|
||||
static uint8_t rrc_msg[] = {
|
||||
0x20, 0x98, 0x03, 0x5E, 0x5B, 0x5F, 0xB0, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x00, 0xBF, 0xFF, 0xFE,
|
||||
0x54, 0x02, 0x54, 0x06, 0x97, 0xFF, 0xFF, 0xCA, 0x80, 0x4A, 0x92, 0x88, 0x01, 0x00, 0x06, 0x01, 0x30, 0x00,
|
||||
0x81, 0x84, 0xE0, 0x8C, 0x00, 0x10, 0xC2, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x82, 0x30, 0x0E, 0x02,
|
||||
0x22, 0xAC, 0x04, 0x41, 0x02, 0x16, 0x2C, 0x58, 0xB1, 0x62, 0xC1, 0x02, 0x16, 0x2C, 0x58, 0xB1, 0x62, 0xC1,
|
||||
0x02, 0x16, 0x2C, 0x58, 0xB1, 0x62, 0xC1, 0x02, 0x16, 0x2C, 0x58, 0xB1, 0x62, 0xC1, 0x02, 0x16, 0x2C, 0x58,
|
||||
0xB1, 0x62, 0xC1, 0x02, 0x16, 0x2C, 0x58, 0xB1, 0x62, 0xC1, 0x02, 0x16, 0x2C, 0x58, 0xB1, 0x62, 0xC1, 0x02,
|
||||
0x16, 0x2C, 0x58, 0xB1, 0x62, 0xC0, 0xA2, 0x80, 0x04, 0x30, 0x72, 0x19, 0xE8, 0x34, 0x32, 0x19, 0xE8, 0x34,
|
||||
0x32, 0x08, 0x9C, 0x42, 0x0E, 0x00, 0x8E, 0x00, 0x19, 0x10, 0x70, 0x04, 0x70, 0x01, 0x2C, 0x83, 0x80, 0x23,
|
||||
0x80, 0x01, 0xE4, 0x1C, 0x01, 0x1C, 0x00, 0x07, 0xA0, 0xE0, 0x08, 0xE0, 0x00, 0x79, 0x31, 0xC0, 0x47, 0x00,
|
||||
0x02, 0x88, 0x38, 0x02, 0x38, 0x00, 0x0F, 0x4C, 0x70, 0x11, 0xC0, 0x00, 0x52, 0x0E, 0x00, 0x8E, 0x00};
|
||||
// 2098035E5B5FB000000040A0000000BFFFFE5402540697FFFFCA804A92880100060130008184E08C0010C22000000000000282300E0222AC044102162C58B162C102162C58B162C102162C58B162C102162C58B162C102162C58B162C102162C58B162C102162C58B162C102162C58B162C0A28004307219E8343219E83432089C420E008E001910700470012C8380238001E41C011C0007A0E008E0007931C047000288380238000F4C7011C000520E008E00
|
||||
|
||||
bit_ref bref(rrc_msg, sizeof(rrc_msg));
|
||||
sl_v2x_precfg_r14_s sl_preconf{};
|
||||
TESTASSERT(sl_preconf.unpack(bref) == SRSASN_SUCCESS);
|
||||
|
||||
// asn1::json_writer json_writer;
|
||||
// sl_preconf.to_json(json_writer);
|
||||
// printf("Content: %s\n", json_writer.to_string().c_str());
|
||||
|
||||
return SRSASN_SUCCESS;
|
||||
}
|
||||
|
||||
int test_rrc_conn_reconf_r15_2()
|
||||
{
|
||||
uint8_t rrc_msg[] = {0x20, 0x16, 0x15, 0xC8, 0x40, 0x00, 0x03, 0xC2, 0x84, 0x18, 0x10, 0xA8, 0x04, 0xD7, 0x95, 0x14,
|
||||
0xA2, 0x01, 0x02, 0x18, 0x9A, 0x01, 0x80, 0x14, 0x81, 0x0A, 0xCB, 0x84, 0x08, 0x00, 0xAD, 0x6D,
|
||||
0xC4, 0x06, 0x08, 0xAF, 0x6D, 0xC7, 0xA0, 0xC0, 0x82, 0x00, 0x00, 0x0C, 0x38, 0x60, 0x20, 0x30,
|
||||
0xC3, 0x00, 0x00, 0x10, 0x04, 0x40, 0x10, 0xC2, 0x3C, 0x2A, 0x06, 0x20, 0x30, 0x11, 0x10, 0x28,
|
||||
0x13, 0xDA, 0x4E, 0x96, 0xDA, 0x80, 0x83, 0xA1, 0x00, 0xA4, 0x83, 0x00, 0x32, 0x7B, 0x08, 0x95,
|
||||
0xAE, 0x00, 0x16, 0xA9, 0x00, 0xE0, 0x80, 0x84, 0x8C, 0x82, 0xBB, 0xB1, 0xB4, 0xBA, 0x18, 0x83,
|
||||
0x36, 0xB7, 0x31, 0x98, 0x18, 0x98, 0x83, 0x36, 0xB1, 0xB1, 0x9A, 0x1B, 0x1B, 0x02, 0x33, 0xB8,
|
||||
0x39, 0x39, 0x82, 0x80, 0x85, 0x7F, 0x80, 0x80, 0xAF, 0x03, 0x7F, 0x7F, 0x7D, 0x7D, 0x7F, 0x7F,
|
||||
0x28, 0x05, 0xFB, 0x32, 0x7B, 0x08, 0xC0, 0x00, 0x01, 0xF8, 0x3E, 0x3C, 0xB1, 0xB2, 0x00, 0xC0,
|
||||
0x30, 0x38, 0x1F, 0xFA, 0x9C, 0x08, 0x3E, 0xA2, 0x5F, 0x1C, 0xE1, 0xD0, 0x84};
|
||||
// 201615C8400003C2841810A804D79514A20102189A018014810ACB840800AD6DC40608AF6DC7A0C08200000C38602030C3000010044010C23C2A06203011102813DA4E96DA8083A100A48300327B0895AE0016A900E080848C82BBB1B4BA188336B7319818988336B1B19A1B1B0233B839398280857F8080AF037F7F7D7D7F7F2805FB327B08C00001F83E3CB1B200C030381FFA9C083EA25F1CE1D084
|
||||
|
||||
bit_ref bref(rrc_msg, sizeof(rrc_msg));
|
||||
dl_dcch_msg_s recfg_msg;
|
||||
TESTASSERT(recfg_msg.unpack(bref) == SRSASN_SUCCESS);
|
||||
|
||||
return SRSASN_SUCCESS;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
srsasn_log_register_handler(&asn_logger, print_console);
|
||||
|
@ -609,6 +657,8 @@ int main()
|
|||
TESTASSERT(ue_rrc_conn_recfg_r15_v10_test() == 0);
|
||||
TESTASSERT(failed_dl_ccch_unpack() == 0);
|
||||
TESTASSERT(unrecognized_ext_group_test() == 0);
|
||||
TESTASSERT(v2x_test() == 0);
|
||||
TESTASSERT(test_rrc_conn_reconf_r15_2() == 0);
|
||||
|
||||
printf("Success\n");
|
||||
return 0;
|
||||
|
|
|
@ -322,7 +322,7 @@ int mbsfn_area_info_list_parser::parse(Setting& root)
|
|||
return -1;
|
||||
}
|
||||
|
||||
parser::field<uint8_t> areaid("mbsfn_area_id", &mbsfn_item->mbsfn_area_id_r9);
|
||||
parser::field<uint16_t> areaid("mbsfn_area_id", &mbsfn_item->mbsfn_area_id_r9);
|
||||
if (areaid.parse(root["mbsfn_area_info_list"])) {
|
||||
fprintf(stderr, "Error parsing mbsfn_area_id\n");
|
||||
return -1;
|
||||
|
@ -1072,8 +1072,8 @@ int parse_sib2(std::string filename, sib_type2_s* data)
|
|||
rr_config.add_subsection(&pucch_cnfg);
|
||||
pucch_cnfg.add_field(
|
||||
make_asn1_enum_number_parser("delta_pucch_shift", &rr_cfg_common->pucch_cfg_common.delta_pucch_shift));
|
||||
pucch_cnfg.add_field(new parser::field<uint8>("n_rb_cqi", &rr_cfg_common->pucch_cfg_common.n_rb_cqi));
|
||||
pucch_cnfg.add_field(new parser::field<uint8>("n_cs_an", &rr_cfg_common->pucch_cfg_common.n_cs_an));
|
||||
pucch_cnfg.add_field(new parser::field<uint8>("n_rb_cqi", &rr_cfg_common->pucch_cfg_common.nrb_cqi));
|
||||
pucch_cnfg.add_field(new parser::field<uint8>("n_cs_an", &rr_cfg_common->pucch_cfg_common.ncs_an));
|
||||
pucch_cnfg.add_field(new parser::field<uint16>("n1_pucch_an", &rr_cfg_common->pucch_cfg_common.n1_pucch_an));
|
||||
|
||||
// UL PWR Ctrl configuration
|
||||
|
|
|
@ -85,8 +85,8 @@ void phy::parse_config(const phy_cfg_t& cfg)
|
|||
|
||||
// PUCCH
|
||||
workers_common.ul_cfg_com.pucch.delta_pucch_shift = cfg.pucch_cnfg.delta_pucch_shift.to_number();
|
||||
workers_common.ul_cfg_com.pucch.N_cs = cfg.pucch_cnfg.n_cs_an;
|
||||
workers_common.ul_cfg_com.pucch.n_rb_2 = cfg.pucch_cnfg.n_rb_cqi;
|
||||
workers_common.ul_cfg_com.pucch.N_cs = cfg.pucch_cnfg.ncs_an;
|
||||
workers_common.ul_cfg_com.pucch.n_rb_2 = cfg.pucch_cnfg.nrb_cqi;
|
||||
workers_common.ul_cfg_com.pucch.N_pucch_1 = cfg.pucch_cnfg.n1_pucch_an;
|
||||
workers_common.ul_cfg_com.pucch.threshold_format1 = 0.8;
|
||||
|
||||
|
|
|
@ -1574,7 +1574,7 @@ void rrc::ue::send_connection_setup(bool is_setup)
|
|||
phy_cfg->ul_pwr_ctrl_ded.p0_ue_pusch = 0;
|
||||
phy_cfg->ul_pwr_ctrl_ded.delta_mcs_enabled = ul_pwr_ctrl_ded_s::delta_mcs_enabled_e_::en0;
|
||||
phy_cfg->ul_pwr_ctrl_ded.accumulation_enabled = true;
|
||||
phy_cfg->ul_pwr_ctrl_ded.p0_ue_pucch = 0, phy_cfg->ul_pwr_ctrl_ded.p_srs_offset = 3;
|
||||
phy_cfg->ul_pwr_ctrl_ded.p0_ue_pucch = 0, phy_cfg->ul_pwr_ctrl_ded.psrs_offset = 3;
|
||||
|
||||
// PDSCH
|
||||
phy_cfg->pdsch_cfg_ded_present = true;
|
||||
|
@ -1629,8 +1629,8 @@ void rrc::ue::send_connection_setup(bool is_setup)
|
|||
sched_cfg.pucch_cfg.sr_configured = true;
|
||||
sched_cfg.pucch_cfg.n_pucch = cqi_pucch;
|
||||
sched_cfg.pucch_cfg.delta_pucch_shift = parent->sib2.rr_cfg_common.pucch_cfg_common.delta_pucch_shift.to_number();
|
||||
sched_cfg.pucch_cfg.N_cs = parent->sib2.rr_cfg_common.pucch_cfg_common.n_cs_an;
|
||||
sched_cfg.pucch_cfg.n_rb_2 = parent->sib2.rr_cfg_common.pucch_cfg_common.n_rb_cqi;
|
||||
sched_cfg.pucch_cfg.N_cs = parent->sib2.rr_cfg_common.pucch_cfg_common.ncs_an;
|
||||
sched_cfg.pucch_cfg.n_rb_2 = parent->sib2.rr_cfg_common.pucch_cfg_common.nrb_cqi;
|
||||
sched_cfg.pucch_cfg.N_pucch_1 = parent->sib2.rr_cfg_common.pucch_cfg_common.n1_pucch_an;
|
||||
|
||||
// Configure MAC
|
||||
|
@ -2247,8 +2247,8 @@ int rrc::ue::sr_allocate(uint32_t period, uint8_t* I_sr, uint16_t* N_pucch_sr)
|
|||
|
||||
// Compute N_pucch_sr
|
||||
*N_pucch_sr = i_min * max_users + parent->sr_sched.nof_users[i_min][j_min];
|
||||
if (parent->sib2.rr_cfg_common.pucch_cfg_common.n_cs_an) {
|
||||
*N_pucch_sr += parent->sib2.rr_cfg_common.pucch_cfg_common.n_cs_an;
|
||||
if (parent->sib2.rr_cfg_common.pucch_cfg_common.ncs_an) {
|
||||
*N_pucch_sr += parent->sib2.rr_cfg_common.pucch_cfg_common.ncs_an;
|
||||
}
|
||||
|
||||
// Allocate user
|
||||
|
@ -2344,8 +2344,8 @@ int rrc::ue::cqi_allocate(uint32_t period, uint16_t* pmi_idx, uint16_t* n_pucch)
|
|||
|
||||
// Compute n_pucch_2
|
||||
*n_pucch = i_min * max_users + parent->cqi_sched.nof_users[i_min][j_min];
|
||||
if (parent->sib2.rr_cfg_common.pucch_cfg_common.n_cs_an) {
|
||||
*n_pucch += parent->sib2.rr_cfg_common.pucch_cfg_common.n_cs_an;
|
||||
if (parent->sib2.rr_cfg_common.pucch_cfg_common.ncs_an) {
|
||||
*n_pucch += parent->sib2.rr_cfg_common.pucch_cfg_common.ncs_an;
|
||||
}
|
||||
|
||||
// Allocate user
|
||||
|
|
|
@ -2366,7 +2366,7 @@ void rrc::apply_phy_scell_config(const asn1::rrc::scell_to_add_mod_r10_s& scell_
|
|||
srslte::phy_cfg_t scell_phy_cfg = current_phy_cfg;
|
||||
set_phy_cfg_t_scell_config(&scell_phy_cfg, scell_config);
|
||||
|
||||
phy->set_config(scell_phy_cfg, scell_config.s_cell_idx_r10, earfcn, &scell);
|
||||
phy->set_config(scell_phy_cfg, scell_config.scell_idx_r10, earfcn, &scell);
|
||||
}
|
||||
|
||||
void rrc::log_mac_config_dedicated()
|
||||
|
@ -2461,9 +2461,9 @@ void rrc::apply_scell_config(asn1::rrc::rrc_conn_recfg_r8_ies_s* reconfig_r8)
|
|||
rrc_conn_recfg_v1020_ies_s* reconfig_r1020 = &reconfig_r920->non_crit_ext;
|
||||
|
||||
// Handle Add/Modify SCell list
|
||||
if (reconfig_r1020->s_cell_to_add_mod_list_r10_present) {
|
||||
for (uint32_t i = 0; i < reconfig_r1020->s_cell_to_add_mod_list_r10.size(); i++) {
|
||||
auto scell_config = &reconfig_r1020->s_cell_to_add_mod_list_r10[i];
|
||||
if (reconfig_r1020->scell_to_add_mod_list_r10_present) {
|
||||
for (uint32_t i = 0; i < reconfig_r1020->scell_to_add_mod_list_r10.size(); i++) {
|
||||
auto scell_config = &reconfig_r1020->scell_to_add_mod_list_r10[i];
|
||||
|
||||
// Limit enable64_qam, if the ue does not
|
||||
// since the phy does not have information about the RRC category and release, the RRC shall limit the
|
||||
|
@ -2486,7 +2486,7 @@ void rrc::apply_scell_config(asn1::rrc::rrc_conn_recfg_r8_ies_s* reconfig_r8)
|
|||
}
|
||||
|
||||
// Call mac reconfiguration
|
||||
mac->reconfiguration(scell_config->s_cell_idx_r10, true);
|
||||
mac->reconfiguration(scell_config->scell_idx_r10, true);
|
||||
|
||||
// Call phy reconfiguration
|
||||
apply_phy_scell_config(*scell_config);
|
||||
|
@ -2494,10 +2494,10 @@ void rrc::apply_scell_config(asn1::rrc::rrc_conn_recfg_r8_ies_s* reconfig_r8)
|
|||
}
|
||||
|
||||
// Handle Remove SCell list
|
||||
if (reconfig_r1020->s_cell_to_release_list_r10_present) {
|
||||
for (uint32_t i = 0; i < reconfig_r1020->s_cell_to_release_list_r10.size(); i++) {
|
||||
if (reconfig_r1020->scell_to_release_list_r10_present) {
|
||||
for (uint32_t i = 0; i < reconfig_r1020->scell_to_release_list_r10.size(); i++) {
|
||||
// Call mac reconfiguration
|
||||
mac->reconfiguration(reconfig_r1020->s_cell_to_release_list_r10[i], false);
|
||||
mac->reconfiguration(reconfig_r1020->scell_to_release_list_r10[i], false);
|
||||
|
||||
// Call phy reconfiguration
|
||||
// TODO: Implement phy layer cell removal
|
||||
|
|
Loading…
Reference in New Issue