mirror of https://github.com/PentHertz/srsLTE.git
move ue rrc interfaces to separate interfaces header file
This commit is contained in:
parent
b1706b9197
commit
13d805ef56
|
@ -40,4 +40,31 @@ inline bool operator!=(const srslte_prach_cfg_t& a, const srslte_prach_cfg_t& b)
|
|||
return !(a == b);
|
||||
}
|
||||
|
||||
namespace srsue {
|
||||
|
||||
struct phy_meas_nr_t {
|
||||
float rsrp;
|
||||
float rsrq;
|
||||
float sinr;
|
||||
float cfo_hz;
|
||||
uint32_t arfcn_nr;
|
||||
uint32_t pci_nr;
|
||||
};
|
||||
|
||||
struct phy_meas_t {
|
||||
float rsrp;
|
||||
float rsrq;
|
||||
float cfo_hz;
|
||||
uint32_t earfcn;
|
||||
uint32_t pci;
|
||||
};
|
||||
|
||||
struct phy_cell_t {
|
||||
uint32_t pci;
|
||||
uint32_t earfcn;
|
||||
float cfo_hz;
|
||||
};
|
||||
|
||||
} // namespace srsue
|
||||
|
||||
#endif // SRSLTE_PHY_INTERFACE_TYPES_H
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
#ifndef SRSLTE_RRC_INTERFACE_TYPES_H
|
||||
#define SRSLTE_RRC_INTERFACE_TYPES_H
|
||||
|
||||
#include "srslte/common/common.h"
|
||||
#include "srslte/common/bcd_helpers.h"
|
||||
#include "srslte/common/common.h"
|
||||
#include "srslte/config.h"
|
||||
#include "srslte/srslte.h"
|
||||
#include <string>
|
||||
|
|
|
@ -37,138 +37,10 @@
|
|||
#include "srslte/phy/rf/rf.h"
|
||||
#include "srslte/upper/pdcp_entity_base.h"
|
||||
#include "ue_mac_interfaces.h"
|
||||
#include "ue_rrc_interfaces.h"
|
||||
|
||||
namespace srsue {
|
||||
|
||||
// RRC interface for MAC
|
||||
class rrc_interface_mac_common
|
||||
{
|
||||
public:
|
||||
virtual void ra_problem() = 0;
|
||||
};
|
||||
|
||||
class rrc_interface_mac : public rrc_interface_mac_common
|
||||
{
|
||||
public:
|
||||
virtual void ra_completed() = 0;
|
||||
virtual void release_pucch_srs() = 0;
|
||||
};
|
||||
|
||||
struct phy_cell_t {
|
||||
uint32_t pci;
|
||||
uint32_t earfcn;
|
||||
float cfo_hz;
|
||||
};
|
||||
|
||||
// Measurement object from phy
|
||||
typedef struct {
|
||||
float rsrp;
|
||||
float rsrq;
|
||||
float cfo_hz;
|
||||
uint32_t earfcn;
|
||||
uint32_t pci;
|
||||
} phy_meas_t;
|
||||
|
||||
typedef struct {
|
||||
float rsrp;
|
||||
float rsrq;
|
||||
float sinr;
|
||||
float cfo_hz;
|
||||
uint32_t arfcn_nr;
|
||||
uint32_t pci_nr;
|
||||
} phy_meas_nr_t;
|
||||
|
||||
// RRC interface for RRC NR
|
||||
class rrc_eutra_interface_rrc_nr
|
||||
{
|
||||
public:
|
||||
virtual void new_cell_meas_nr(const std::vector<phy_meas_nr_t>& meas) = 0;
|
||||
virtual void nr_rrc_con_reconfig_complete(bool status) = 0;
|
||||
};
|
||||
|
||||
// RRC interface for PHY
|
||||
class rrc_interface_phy_lte
|
||||
{
|
||||
public:
|
||||
virtual void in_sync() = 0;
|
||||
virtual void out_of_sync() = 0;
|
||||
virtual void new_cell_meas(const std::vector<phy_meas_t>& meas) = 0;
|
||||
|
||||
typedef struct {
|
||||
enum { CELL_FOUND = 0, CELL_NOT_FOUND, ERROR } found;
|
||||
enum { MORE_FREQS = 0, NO_MORE_FREQS } last_freq;
|
||||
} cell_search_ret_t;
|
||||
|
||||
virtual void cell_search_complete(cell_search_ret_t ret, phy_cell_t found_cell) = 0;
|
||||
virtual void cell_select_complete(bool status) = 0;
|
||||
virtual void set_config_complete(bool status) = 0;
|
||||
virtual void set_scell_complete(bool status) = 0;
|
||||
};
|
||||
|
||||
// RRC interface for NAS
|
||||
class rrc_interface_nas
|
||||
{
|
||||
public:
|
||||
virtual ~rrc_interface_nas() = default;
|
||||
virtual void write_sdu(srslte::unique_byte_buffer_t sdu) = 0;
|
||||
virtual uint16_t get_mcc() = 0;
|
||||
virtual uint16_t get_mnc() = 0;
|
||||
virtual void enable_capabilities() = 0;
|
||||
virtual bool plmn_search() = 0;
|
||||
virtual void plmn_select(srslte::plmn_id_t plmn_id) = 0;
|
||||
virtual bool connection_request(srslte::establishment_cause_t cause,
|
||||
srslte::unique_byte_buffer_t dedicatedInfoNAS) = 0;
|
||||
virtual void set_ue_identity(srslte::s_tmsi_t s_tmsi) = 0;
|
||||
virtual bool is_connected() = 0;
|
||||
virtual void paging_completed(bool outcome) = 0;
|
||||
virtual std::string get_rb_name(uint32_t lcid) = 0;
|
||||
virtual uint32_t get_lcid_for_eps_bearer(const uint32_t& eps_bearer_id) = 0;
|
||||
virtual bool has_nr_dc() = 0;
|
||||
};
|
||||
|
||||
// RRC interface for PDCP
|
||||
class rrc_interface_pdcp
|
||||
{
|
||||
public:
|
||||
virtual void write_pdu(uint32_t lcid, srslte::unique_byte_buffer_t pdu) = 0;
|
||||
virtual void write_pdu_bcch_bch(srslte::unique_byte_buffer_t pdu) = 0;
|
||||
virtual void write_pdu_bcch_dlsch(srslte::unique_byte_buffer_t pdu) = 0;
|
||||
virtual void write_pdu_pcch(srslte::unique_byte_buffer_t pdu) = 0;
|
||||
virtual void write_pdu_mch(uint32_t lcid, srslte::unique_byte_buffer_t pdu) = 0;
|
||||
virtual std::string get_rb_name(uint32_t lcid) = 0;
|
||||
};
|
||||
|
||||
// RRC interface for RLC
|
||||
class rrc_interface_rlc
|
||||
{
|
||||
public:
|
||||
virtual void max_retx_attempted() = 0;
|
||||
virtual std::string get_rb_name(uint32_t lcid) = 0;
|
||||
virtual void write_pdu(uint32_t lcid, srslte::unique_byte_buffer_t pdu) = 0;
|
||||
};
|
||||
|
||||
// RRC NR interface for RRC (LTE)
|
||||
class rrc_nr_interface_rrc
|
||||
{
|
||||
public:
|
||||
virtual void get_eutra_nr_capabilities(srslte::byte_buffer_t* eutra_nr_caps) = 0;
|
||||
virtual void get_nr_capabilities(srslte::byte_buffer_t* nr_cap) = 0;
|
||||
virtual void phy_set_cells_to_meas(uint32_t carrier_freq_r15) = 0;
|
||||
virtual void phy_meas_stop() = 0;
|
||||
virtual bool rrc_reconfiguration(bool endc_release_and_add_r15,
|
||||
bool nr_secondary_cell_group_cfg_r15_present,
|
||||
asn1::dyn_octstring nr_secondary_cell_group_cfg_r15,
|
||||
bool sk_counter_r15_present,
|
||||
uint32_t sk_counter_r15,
|
||||
bool nr_radio_bearer_cfg1_r15_present,
|
||||
asn1::dyn_octstring nr_radio_bearer_cfg1_r15) = 0;
|
||||
virtual bool is_config_pending() = 0;
|
||||
};
|
||||
|
||||
/** PHY interface
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
std::string type = "lte";
|
||||
srslte::phy_log_args_t log;
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
/**
|
||||
*
|
||||
* \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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef SRSLTE_UE_RRC_INTERFACES_H
|
||||
#define SRSLTE_UE_RRC_INTERFACES_H
|
||||
|
||||
#include "phy_interface_types.h"
|
||||
#include "srslte/common/byte_buffer.h"
|
||||
|
||||
namespace srsue {
|
||||
|
||||
class rrc_interface_mac_common
|
||||
{
|
||||
public:
|
||||
virtual void ra_problem() = 0;
|
||||
};
|
||||
|
||||
class rrc_interface_mac : public rrc_interface_mac_common
|
||||
{
|
||||
public:
|
||||
virtual void ra_completed() = 0;
|
||||
virtual void release_pucch_srs() = 0;
|
||||
};
|
||||
|
||||
class rrc_eutra_interface_rrc_nr
|
||||
{
|
||||
public:
|
||||
virtual void new_cell_meas_nr(const std::vector<phy_meas_nr_t>& meas) = 0;
|
||||
virtual void nr_rrc_con_reconfig_complete(bool status) = 0;
|
||||
};
|
||||
|
||||
class rrc_interface_phy_lte
|
||||
{
|
||||
public:
|
||||
virtual void in_sync() = 0;
|
||||
virtual void out_of_sync() = 0;
|
||||
virtual void new_cell_meas(const std::vector<phy_meas_t>& meas) = 0;
|
||||
|
||||
typedef struct {
|
||||
enum { CELL_FOUND = 0, CELL_NOT_FOUND, ERROR } found;
|
||||
enum { MORE_FREQS = 0, NO_MORE_FREQS } last_freq;
|
||||
} cell_search_ret_t;
|
||||
|
||||
virtual void cell_search_complete(cell_search_ret_t ret, phy_cell_t found_cell) = 0;
|
||||
virtual void cell_select_complete(bool status) = 0;
|
||||
virtual void set_config_complete(bool status) = 0;
|
||||
virtual void set_scell_complete(bool status) = 0;
|
||||
};
|
||||
|
||||
class rrc_interface_nas
|
||||
{
|
||||
public:
|
||||
virtual ~rrc_interface_nas() = default;
|
||||
virtual void write_sdu(srslte::unique_byte_buffer_t sdu) = 0;
|
||||
virtual uint16_t get_mcc() = 0;
|
||||
virtual uint16_t get_mnc() = 0;
|
||||
virtual void enable_capabilities() = 0;
|
||||
virtual bool plmn_search() = 0;
|
||||
virtual void plmn_select(srslte::plmn_id_t plmn_id) = 0;
|
||||
virtual bool connection_request(srslte::establishment_cause_t cause,
|
||||
srslte::unique_byte_buffer_t dedicatedInfoNAS) = 0;
|
||||
virtual void set_ue_identity(srslte::s_tmsi_t s_tmsi) = 0;
|
||||
virtual bool is_connected() = 0;
|
||||
virtual void paging_completed(bool outcome) = 0;
|
||||
virtual std::string get_rb_name(uint32_t lcid) = 0;
|
||||
virtual uint32_t get_lcid_for_eps_bearer(const uint32_t& eps_bearer_id) = 0;
|
||||
virtual bool has_nr_dc() = 0;
|
||||
};
|
||||
|
||||
class rrc_interface_pdcp
|
||||
{
|
||||
public:
|
||||
virtual void write_pdu(uint32_t lcid, srslte::unique_byte_buffer_t pdu) = 0;
|
||||
virtual void write_pdu_bcch_bch(srslte::unique_byte_buffer_t pdu) = 0;
|
||||
virtual void write_pdu_bcch_dlsch(srslte::unique_byte_buffer_t pdu) = 0;
|
||||
virtual void write_pdu_pcch(srslte::unique_byte_buffer_t pdu) = 0;
|
||||
virtual void write_pdu_mch(uint32_t lcid, srslte::unique_byte_buffer_t pdu) = 0;
|
||||
virtual std::string get_rb_name(uint32_t lcid) = 0;
|
||||
};
|
||||
|
||||
class rrc_interface_rlc
|
||||
{
|
||||
public:
|
||||
virtual void max_retx_attempted() = 0;
|
||||
virtual std::string get_rb_name(uint32_t lcid) = 0;
|
||||
virtual void write_pdu(uint32_t lcid, srslte::unique_byte_buffer_t pdu) = 0;
|
||||
};
|
||||
|
||||
class rrc_nr_interface_rrc
|
||||
{
|
||||
public:
|
||||
virtual void get_eutra_nr_capabilities(srslte::byte_buffer_t* eutra_nr_caps) = 0;
|
||||
virtual void get_nr_capabilities(srslte::byte_buffer_t* nr_cap) = 0;
|
||||
virtual void phy_set_cells_to_meas(uint32_t carrier_freq_r15) = 0;
|
||||
virtual void phy_meas_stop() = 0;
|
||||
virtual bool rrc_reconfiguration(bool endc_release_and_add_r15,
|
||||
bool nr_secondary_cell_group_cfg_r15_present,
|
||||
asn1::dyn_octstring nr_secondary_cell_group_cfg_r15,
|
||||
bool sk_counter_r15_present,
|
||||
uint32_t sk_counter_r15,
|
||||
bool nr_radio_bearer_cfg1_r15_present,
|
||||
asn1::dyn_octstring nr_radio_bearer_cfg1_r15) = 0;
|
||||
virtual bool is_config_pending() = 0;
|
||||
};
|
||||
|
||||
} // namespace srsue
|
||||
|
||||
#endif // SRSLTE_UE_RRC_INTERFACES_H
|
|
@ -24,4 +24,4 @@ add_library(srsgnb_phy STATIC vnf_phy_nr.cc)
|
|||
|
||||
if(ENABLE_GUI AND SRSGUI_FOUND)
|
||||
target_link_libraries(srsenb_phy ${SRSGUI_LIBRARIES})
|
||||
endif(ENABLE_GUI AND SRSGUI_FOUND)
|
||||
endif()
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
*/
|
||||
|
||||
#include "sched_common_test_suite.h"
|
||||
#include "lib/include/srslte/phy/phch/prach.h"
|
||||
#include "srslte/common/test_common.h"
|
||||
#include <set>
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
|
||||
#include "phy_common.h"
|
||||
#include "phy_metrics.h"
|
||||
#include "prach.h"
|
||||
#include "srslte/common/log_filter.h"
|
||||
#include "srslte/common/threads.h"
|
||||
#include "srslte/common/trace.h"
|
||||
|
|
|
@ -14,15 +14,17 @@
|
|||
#define SRSLTE_RRC_CELL_H
|
||||
|
||||
#include "srslte/asn1/rrc.h"
|
||||
#include "srslte/asn1/rrc_utils.h"
|
||||
#include "srslte/asn1/rrc_nr.h"
|
||||
#include "srslte/asn1/rrc_nr_utils.h"
|
||||
#include "srslte/interfaces/ue_interfaces.h"
|
||||
#include "srslte/asn1/rrc_utils.h"
|
||||
#include "srslte/common/task_scheduler.h"
|
||||
#include "srslte/interfaces/ue_rrc_interfaces.h"
|
||||
#include "srslte/srslog/srslog.h"
|
||||
#include <set>
|
||||
|
||||
namespace srsue {
|
||||
|
||||
inline std::string to_string(const srsue::phy_cell_t& c)
|
||||
inline std::string to_string(const phy_cell_t& c)
|
||||
{
|
||||
char buffer[64];
|
||||
snprintf(buffer, 64, "{earfcn=%d, pci=%d}\n", c.earfcn, c.pci);
|
||||
|
@ -217,7 +219,6 @@ bool is_same_cell(const T& lhs, const U& rhs)
|
|||
template <class T>
|
||||
class meas_cell_list
|
||||
{
|
||||
|
||||
public:
|
||||
const static int NEIGHBOUR_TIMEOUT = 5;
|
||||
const static int MAX_NEIGHBOUR_CELLS = 8;
|
||||
|
|
|
@ -11,7 +11,7 @@ add_library(srsue_phy STATIC ${SOURCES})
|
|||
|
||||
if(ENABLE_GUI AND SRSGUI_FOUND)
|
||||
target_link_libraries(srsue_phy ${SRSGUI_LIBRARIES})
|
||||
endif(ENABLE_GUI AND SRSGUI_FOUND)
|
||||
endif()
|
||||
|
||||
set(SOURCES_NR "../phy/vnf_phy_nr.cc")
|
||||
add_library(srsue_phy_nr STATIC ${SOURCES_NR})
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include "srslte/interfaces/phy_interface_types.h"
|
||||
#include "srslte/srslog/srslog.h"
|
||||
#include <boost/program_options.hpp>
|
||||
#include <boost/program_options/parsers.hpp>
|
||||
|
|
Loading…
Reference in New Issue