mirror of https://github.com/pvnis/srsRAN_4G.git
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.
65 lines
2.6 KiB
C++
65 lines
2.6 KiB
C++
/**
|
|
* Copyright 2013-2023 Software Radio Systems Limited
|
|
*
|
|
* This file is part of srsRAN.
|
|
*
|
|
* srsRAN is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, either version 3 of
|
|
* the License, or (at your option) any later version.
|
|
*
|
|
* srsRAN is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* A copy of the GNU Affero General Public License can be found in
|
|
* the LICENSE file in the top-level directory of this distribution
|
|
* and at http://www.gnu.org/licenses/.
|
|
*
|
|
*/
|
|
|
|
#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
|