You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
2.1 KiB
C++

/**
*
* \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.
*
*/
#ifndef SRSRAN_CELL_ASN1_CONFIG_H
#define SRSRAN_CELL_ASN1_CONFIG_H
#include "rrc_nr_config.h"
#include "srsran/asn1/rrc_nr.h"
#include "srsran/common/bearer_manager.h"
#include "srsran/common/common_nr.h"
namespace srsenb {
using rlc_bearer_list_t = asn1::rrc_nr::cell_group_cfg_s::rlc_bearer_to_add_mod_list_l_;
// PHY helpers
void set_search_space_from_phy_cfg(const srsran_search_space_t& ss, asn1::rrc_nr::search_space_s& out);
// NSA helpers
int fill_sp_cell_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, asn1::rrc_nr::sp_cell_cfg_s& sp_cell);
// SA helpers
int fill_master_cell_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, asn1::rrc_nr::cell_group_cfg_s& out);
int fill_mib_from_enb_cfg(const rrc_cell_cfg_nr_t& cell_cfg, asn1::rrc_nr::mib_s& mib);
int fill_sib1_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, asn1::rrc_nr::sib1_s& sib1);
/**
* Based on the previous and new radio bearer config, generate ASN1 diff
* @return if a change was detected
*/
bool compute_diff_radio_bearer_cfg(const rrc_nr_cfg_t& cfg,
const asn1::rrc_nr::radio_bearer_cfg_s& prev_bearers,
const asn1::rrc_nr::radio_bearer_cfg_s& next_bearers,
asn1::rrc_nr::radio_bearer_cfg_s& diff);
/// Apply radioBearerConfig updates to CellGroupConfig
int fill_cellgroup_with_radio_bearer_cfg(const rrc_nr_cfg_t& cfg,
uint32_t rnti,
const enb_bearer_manager& bearer_mapper,
const asn1::rrc_nr::radio_bearer_cfg_s& bearers,
asn1::rrc_nr::cell_group_cfg_s& out);
} // namespace srsenb
#endif // SRSRAN_CELL_ASN1_CONFIG_H