mirror of https://github.com/PentHertz/srsLTE.git
update RRC NR ASN1 to 2020-09 v15.11
This commit is contained in:
parent
d5daf60773
commit
66aa34d173
File diff suppressed because it is too large
Load Diff
43499
lib/src/asn1/rrc_nr.cc
43499
lib/src/asn1/rrc_nr.cc
File diff suppressed because it is too large
Load Diff
|
@ -47,6 +47,10 @@ target_link_libraries(rrc_asn1_test rrc_asn1 asn1_utils srslte_common)
|
|||
add_test(rrc_asn1_test rrc_asn1_test)
|
||||
|
||||
if (ENABLE_5GNR)
|
||||
add_executable(rrc_nr_asn1_test rrc_nr_test.cc)
|
||||
target_link_libraries(rrc_nr_asn1_test rrc_nr_asn1 asn1_utils srslte_common)
|
||||
add_test(rrc_nr_asn1_test rrc_nr_asn1_test)
|
||||
|
||||
add_executable(ngap_asn1_test ngap_test.cc)
|
||||
target_link_libraries(ngap_asn1_test ngap_nr_asn1 srslte_common)
|
||||
add_test(ngap_asn1_test ngap_asn1_test)
|
||||
|
|
|
@ -0,0 +1,154 @@
|
|||
/**
|
||||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2020 Software Radio Systems Limited
|
||||
*
|
||||
* By using this file, you agree to the terms and conditions set
|
||||
* forth in the LICENSE file which can be found at the top level of
|
||||
* the distribution.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "srslte/asn1/rrc_nr.h"
|
||||
#include "srslte/common/test_common.h"
|
||||
#include <cstdio>
|
||||
|
||||
using namespace asn1;
|
||||
using namespace asn1::rrc_nr;
|
||||
|
||||
int test_eutra_nr_capabilities()
|
||||
{
|
||||
struct ue_mrdc_cap_s mrdc_cap;
|
||||
band_combination_s band_combination;
|
||||
struct band_params_c band_param_eutra;
|
||||
band_param_eutra.set_eutra();
|
||||
band_param_eutra.eutra().ca_bw_class_dl_eutra_present = true;
|
||||
band_param_eutra.eutra().ca_bw_class_ul_eutra_present = true;
|
||||
band_param_eutra.eutra().band_eutra = 1;
|
||||
band_param_eutra.eutra().ca_bw_class_dl_eutra = asn1::rrc_nr::ca_bw_class_eutra_opts::options::a;
|
||||
band_param_eutra.eutra().ca_bw_class_ul_eutra = asn1::rrc_nr::ca_bw_class_eutra_opts::options::a;
|
||||
band_combination.band_list.push_back(band_param_eutra);
|
||||
struct band_params_c band_param_nr;
|
||||
band_param_nr.set_nr();
|
||||
band_param_nr.nr().ca_bw_class_dl_nr_present = true;
|
||||
band_param_nr.nr().ca_bw_class_ul_nr_present = true;
|
||||
band_param_nr.nr().band_nr = 78;
|
||||
band_param_nr.nr().ca_bw_class_dl_nr = asn1::rrc_nr::ca_bw_class_nr_opts::options::a;
|
||||
band_param_nr.nr().ca_bw_class_ul_nr = asn1::rrc_nr::ca_bw_class_nr_opts::options::a;
|
||||
band_combination.band_list.push_back(band_param_nr);
|
||||
|
||||
mrdc_cap.rf_params_mrdc.supported_band_combination_list.push_back(band_combination);
|
||||
mrdc_cap.rf_params_mrdc.supported_band_combination_list_present = true;
|
||||
|
||||
mrdc_cap.rf_params_mrdc.ext = true;
|
||||
|
||||
// RF Params MRDC applied_freq_band_list_filt
|
||||
freq_band_info_c band_info_eutra;
|
||||
band_info_eutra.set_band_info_eutra();
|
||||
band_info_eutra.band_info_eutra().ca_bw_class_dl_eutra_present = false;
|
||||
band_info_eutra.band_info_eutra().ca_bw_class_ul_eutra_present = false;
|
||||
band_info_eutra.band_info_eutra().band_eutra = 1;
|
||||
mrdc_cap.rf_params_mrdc.applied_freq_band_list_filt.push_back(band_info_eutra);
|
||||
|
||||
freq_band_info_c band_info_nr;
|
||||
band_info_nr.set_band_info_nr();
|
||||
band_info_nr.band_info_nr().band_nr = 78;
|
||||
mrdc_cap.rf_params_mrdc.applied_freq_band_list_filt.push_back(band_info_nr);
|
||||
|
||||
mrdc_cap.rf_params_mrdc.applied_freq_band_list_filt_present = true;
|
||||
|
||||
// rf_params_mrdc supported band combination list v1540
|
||||
|
||||
band_combination_list_v1540_l* band_combination_list_v1450 = new band_combination_list_v1540_l();
|
||||
band_combination_v1540_s band_combination_v1540;
|
||||
|
||||
band_params_v1540_s band_params_a;
|
||||
band_params_a.srs_tx_switch_present = true;
|
||||
band_params_a.srs_carrier_switch_present = false;
|
||||
band_params_a.srs_tx_switch.supported_srs_tx_port_switch =
|
||||
band_params_v1540_s::srs_tx_switch_s_::supported_srs_tx_port_switch_opts::not_supported;
|
||||
band_combination_v1540.band_list_v1540.push_back(band_params_a);
|
||||
|
||||
band_params_v1540_s band_params_b;
|
||||
band_params_b.srs_tx_switch_present = true;
|
||||
band_params_b.srs_tx_switch.supported_srs_tx_port_switch =
|
||||
band_params_v1540_s::srs_tx_switch_s_::supported_srs_tx_port_switch_opts::t1r2;
|
||||
band_params_b.srs_carrier_switch_present = false;
|
||||
band_combination_v1540.band_list_v1540.push_back(band_params_b);
|
||||
|
||||
// clang-format off
|
||||
band_combination_v1540.ca_params_nr_v1540_present = false;
|
||||
band_combination_v1540.ca_params_nr_v1540.simul_csi_reports_all_cc_present = true;
|
||||
band_combination_v1540.ca_params_nr_v1540.csi_rs_im_reception_for_feedback_per_band_comb.max_num_simul_nzp_csi_rs_act_bwp_all_cc_present = true;
|
||||
band_combination_v1540.ca_params_nr_v1540.csi_rs_im_reception_for_feedback_per_band_comb.max_num_simul_nzp_csi_rs_act_bwp_all_cc = 5;
|
||||
band_combination_v1540.ca_params_nr_v1540.csi_rs_im_reception_for_feedback_per_band_comb.total_num_ports_simul_nzp_csi_rs_act_bwp_all_cc_present = true;
|
||||
band_combination_v1540.ca_params_nr_v1540.csi_rs_im_reception_for_feedback_per_band_comb.total_num_ports_simul_nzp_csi_rs_act_bwp_all_cc = 32;
|
||||
// clang-format on
|
||||
band_combination_list_v1450->push_back(band_combination_v1540);
|
||||
mrdc_cap.rf_params_mrdc.supported_band_combination_list_v1540.reset(band_combination_list_v1450);
|
||||
|
||||
feature_set_combination_l feature_set_combination;
|
||||
|
||||
feature_sets_per_band_l feature_sets_per_band;
|
||||
|
||||
feature_set_c feature_set_eutra;
|
||||
feature_set_eutra.set_eutra();
|
||||
feature_set_eutra.eutra().dl_set_eutra = 1;
|
||||
feature_set_eutra.eutra().ul_set_eutra = 1;
|
||||
feature_sets_per_band.push_back(feature_set_eutra);
|
||||
|
||||
feature_set_combination.push_back(feature_sets_per_band);
|
||||
|
||||
feature_set_c feature_set_nr;
|
||||
feature_set_nr.set_nr();
|
||||
feature_set_nr.nr().dl_set_nr = 1;
|
||||
feature_set_nr.nr().ul_set_nr = 1;
|
||||
feature_sets_per_band.push_back(feature_set_nr);
|
||||
|
||||
feature_set_combination.push_back(feature_sets_per_band);
|
||||
|
||||
mrdc_cap.feature_set_combinations.push_back(feature_set_combination);
|
||||
|
||||
mrdc_cap.feature_set_combinations_present = true;
|
||||
|
||||
// Pack mrdc_cap
|
||||
uint8_t buffer[1024];
|
||||
asn1::bit_ref bref(buffer, sizeof(buffer));
|
||||
mrdc_cap.pack(bref);
|
||||
|
||||
TESTASSERT(test_pack_unpack_consistency(mrdc_cap) == SRSASN_SUCCESS);
|
||||
|
||||
srslte::logmap::get("RRC")->info_hex(
|
||||
buffer, bref.distance_bytes(), "Packed cap struct (%d bytes):\n", bref.distance_bytes());
|
||||
|
||||
return SRSLTE_SUCCESS;
|
||||
}
|
||||
|
||||
int test_ue_mrdc_capabilities()
|
||||
{
|
||||
uint8_t msg[] = {0x01, 0x1c, 0x04, 0x81, 0x60, 0x00, 0x1c, 0x4d, 0x00, 0x00, 0x00, 0x04,
|
||||
0x00, 0x40, 0x04, 0x04, 0xd0, 0x10, 0x74, 0x06, 0x14, 0xe8, 0x1b, 0x10,
|
||||
0x78, 0x00, 0x00, 0x20, 0x00, 0x10, 0x08, 0x08, 0x01, 0x00, 0x20};
|
||||
// 011c048160001c4d0000000400400404d010740614e81b107800002000100808010020
|
||||
|
||||
asn1::cbit_ref bref{msg, sizeof(msg)};
|
||||
ue_mrdc_cap_s mrdc_cap;
|
||||
|
||||
TESTASSERT(mrdc_cap.unpack(bref) == SRSASN_SUCCESS);
|
||||
|
||||
TESTASSERT(test_pack_unpack_consistency(mrdc_cap) == SRSASN_SUCCESS);
|
||||
|
||||
return SRSLTE_SUCCESS;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
srslte::logmap::set_default_log_level(srslte::LOG_LEVEL_DEBUG);
|
||||
|
||||
TESTASSERT(test_eutra_nr_capabilities() == 0);
|
||||
TESTASSERT(test_ue_mrdc_capabilities() == 0);
|
||||
|
||||
printf("Success\n");
|
||||
return 0;
|
||||
}
|
|
@ -231,8 +231,8 @@ uint32_t rrc_nr::generate_sibs()
|
|||
for (uint32_t sched_info_elem = 0; sched_info_elem < nof_messages; sched_info_elem++) {
|
||||
uint32_t msg_index = sched_info_elem + 1; // first msg is SIB1, therefore start with second
|
||||
|
||||
msg[msg_index].msg.set_c1().set_sys_info().crit_exts.set_sys_info_r15();
|
||||
auto& sib_list = msg[msg_index].msg.c1().sys_info().crit_exts.sys_info_r15().sib_type_and_info;
|
||||
msg[msg_index].msg.set_c1().set_sys_info().crit_exts.set_sys_info();
|
||||
auto& sib_list = msg[msg_index].msg.c1().sys_info().crit_exts.sys_info().sib_type_and_info;
|
||||
|
||||
for (uint32_t mapping = 0; mapping < sched_info[sched_info_elem].sib_map_info.size(); ++mapping) {
|
||||
uint32_t sibidx = sched_info[sched_info_elem].sib_map_info[mapping].type; // SIB2 == 0
|
||||
|
|
Loading…
Reference in New Issue