/** * * \section COPYRIGHT * * Copyright 2013-2021 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 #include #include "srslte/asn1/rrc_nr.h" #include "srslte/asn1/rrc_nr_utils.h" #include "srslte/common/common.h" #include "srslte/common/log.h" #include "srslte/common/logmap.h" #include "srslte/common/test_common.h" using namespace srslte; int test_rlc_config() { asn1::rrc_nr::rlc_cfg_c rlc_cfg_asn1; rlc_cfg_asn1.set_um_bi_dir(); rlc_cfg_asn1.um_bi_dir().dl_um_rlc.sn_field_len_present = true; rlc_cfg_asn1.um_bi_dir().dl_um_rlc.sn_field_len = asn1::rrc_nr::sn_field_len_um_e::size12; rlc_cfg_asn1.um_bi_dir().dl_um_rlc.t_reassembly = asn1::rrc_nr::t_reassembly_e::ms50; rlc_cfg_asn1.um_bi_dir().ul_um_rlc.sn_field_len_present = true; rlc_cfg_asn1.um_bi_dir().ul_um_rlc.sn_field_len = asn1::rrc_nr::sn_field_len_um_e::size12; asn1::json_writer jw; rlc_cfg_asn1.to_json(jw); srslog::fetch_basic_logger("RRC").info("RLC NR Config: \n %s", jw.to_string().c_str()); rlc_config_t rlc_cfg = make_rlc_config_t(rlc_cfg_asn1); TESTASSERT(rlc_cfg.rat == srslte_rat_t::nr); TESTASSERT(rlc_cfg.um_nr.sn_field_length == rlc_um_nr_sn_size_t::size12bits); TESTASSERT(rlc_cfg.um_nr.UM_Window_Size == 2048); return SRSLTE_SUCCESS; } int main() { srslte::logmap::set_default_log_level(srslte::LOG_LEVEL_DEBUG); auto& asn1_logger = srslog::fetch_basic_logger("ASN1", false); asn1_logger.set_level(srslog::basic_levels::debug); asn1_logger.set_hex_dump_max_size(-1); auto& rrc_logger = srslog::fetch_basic_logger("RRC", false); rrc_logger.set_level(srslog::basic_levels::debug); rrc_logger.set_hex_dump_max_size(-1); // Start the log backend. srslog::init(); TESTASSERT(test_rlc_config() == 0); srslog::flush(); printf("Success\n"); return 0; }