mirror of https://github.com/PentHertz/srsLTE.git
refactor: isolate rrc interfaces for pdcp, rlc and s1ap into separate files. This will avoid importing lte asn1 symbols to srsgnb code
This commit is contained in:
parent
486dd9099c
commit
e8f6c723b6
|
@ -14,8 +14,6 @@
|
|||
#include "srsran/common/interfaces_common.h"
|
||||
#include "srsran/srsran.h"
|
||||
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
|
||||
#ifndef SRSRAN_ENB_INTERFACES_H
|
||||
#define SRSRAN_ENB_INTERFACES_H
|
||||
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
/**
|
||||
*
|
||||
* \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_ENB_RRC_INTERFACE_MAC_H
|
||||
#define SRSRAN_ENB_RRC_INTERFACE_MAC_H
|
||||
|
||||
#include "srsenb/hdr/stack/mac/sched_interface.h"
|
||||
|
||||
namespace srsenb {
|
||||
|
||||
/// RRC interface for MAC
|
||||
class rrc_interface_mac
|
||||
{
|
||||
public:
|
||||
/* Radio Link failure */
|
||||
virtual int add_user(uint16_t rnti, const sched_interface::ue_cfg_t& init_ue_cfg) = 0;
|
||||
virtual void upd_user(uint16_t new_rnti, uint16_t old_rnti) = 0;
|
||||
virtual void set_activity_user(uint16_t rnti) = 0;
|
||||
virtual void set_radiolink_dl_state(uint16_t rnti, bool crc_res) = 0;
|
||||
virtual void set_radiolink_ul_state(uint16_t rnti, bool crc_res) = 0;
|
||||
virtual bool is_paging_opportunity(uint32_t tti_tx_dl, uint32_t* payload_len) = 0;
|
||||
virtual void read_pdu_pcch(uint32_t tti_tx_dl, uint8_t* payload, uint32_t payload_size) = 0;
|
||||
|
||||
///< Provide packed SIB to MAC (buffer is managed by RRC)
|
||||
virtual uint8_t* read_pdu_bcch_dlsch(const uint8_t enb_cc_idx, const uint32_t sib_index) = 0;
|
||||
};
|
||||
|
||||
} // namespace srsenb
|
||||
|
||||
#endif // SRSRAN_ENB_RRC_INTERFACE_MAC_H
|
|
@ -0,0 +1,30 @@
|
|||
/**
|
||||
*
|
||||
* \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_ENB_RRC_INTERFACE_PDCP_H
|
||||
#define SRSRAN_ENB_RRC_INTERFACE_PDCP_H
|
||||
|
||||
#include "srsran/common/byte_buffer.h"
|
||||
|
||||
namespace srsenb {
|
||||
|
||||
/// RRC interface for PDCP
|
||||
class rrc_interface_pdcp
|
||||
{
|
||||
public:
|
||||
virtual void write_pdu(uint16_t rnti, uint32_t lcid, srsran::unique_byte_buffer_t pdu) = 0;
|
||||
virtual void notify_pdcp_integrity_error(uint16_t rnti, uint32_t lcid) = 0;
|
||||
};
|
||||
|
||||
} // namespace srsenb
|
||||
|
||||
#endif // SRSRAN_ENB_RRC_INTERFACE_PDCP_H
|
|
@ -0,0 +1,31 @@
|
|||
/**
|
||||
*
|
||||
* \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_ENB_RRC_INTERFACE_RLC_H
|
||||
#define SRSRAN_ENB_RRC_INTERFACE_RLC_H
|
||||
|
||||
#include "srsran/common/byte_buffer.h"
|
||||
|
||||
namespace srsenb {
|
||||
|
||||
/// RRC interface for RLC
|
||||
class rrc_interface_rlc
|
||||
{
|
||||
public:
|
||||
virtual void max_retx_attempted(uint16_t rnti) = 0;
|
||||
virtual void protocol_failure(uint16_t rnti) = 0;
|
||||
virtual void write_pdu(uint16_t rnti, uint32_t lcid, srsran::unique_byte_buffer_t sdu) = 0;
|
||||
};
|
||||
|
||||
} // namespace srsenb
|
||||
|
||||
#endif // SRSRAN_ENB_RRC_INTERFACE_RLC_H
|
|
@ -10,7 +10,6 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include "srsenb/hdr/stack/mac/sched_interface.h"
|
||||
#include "srsran/asn1/s1ap_utils.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_types.h"
|
||||
|
||||
|
@ -86,40 +85,6 @@ public:
|
|||
virtual void set_erab_status(uint16_t rnti, const asn1::s1ap::bearers_subject_to_status_transfer_list_l& erabs) = 0;
|
||||
};
|
||||
|
||||
/// RRC interface for RLC
|
||||
class rrc_interface_rlc
|
||||
{
|
||||
public:
|
||||
virtual void max_retx_attempted(uint16_t rnti) = 0;
|
||||
virtual void protocol_failure(uint16_t rnti) = 0;
|
||||
virtual void write_pdu(uint16_t rnti, uint32_t lcid, srsran::unique_byte_buffer_t sdu) = 0;
|
||||
};
|
||||
|
||||
/// RRC interface for MAC
|
||||
class rrc_interface_mac
|
||||
{
|
||||
public:
|
||||
/* Radio Link failure */
|
||||
virtual int add_user(uint16_t rnti, const sched_interface::ue_cfg_t& init_ue_cfg) = 0;
|
||||
virtual void upd_user(uint16_t new_rnti, uint16_t old_rnti) = 0;
|
||||
virtual void set_activity_user(uint16_t rnti) = 0;
|
||||
virtual void set_radiolink_dl_state(uint16_t rnti, bool crc_res) = 0;
|
||||
virtual void set_radiolink_ul_state(uint16_t rnti, bool crc_res) = 0;
|
||||
virtual bool is_paging_opportunity(uint32_t tti_tx_dl, uint32_t* payload_len) = 0;
|
||||
virtual void read_pdu_pcch(uint32_t tti_tx_dl, uint8_t* payload, uint32_t payload_size) = 0;
|
||||
|
||||
///< Provide packed SIB to MAC (buffer is managed by RRC)
|
||||
virtual uint8_t* read_pdu_bcch_dlsch(const uint8_t enb_cc_idx, const uint32_t sib_index) = 0;
|
||||
};
|
||||
|
||||
/// RRC interface for PDCP
|
||||
class rrc_interface_pdcp
|
||||
{
|
||||
public:
|
||||
virtual void write_pdu(uint16_t rnti, uint32_t lcid, srsran::unique_byte_buffer_t pdu) = 0;
|
||||
virtual void notify_pdcp_integrity_error(uint16_t rnti, uint32_t lcid) = 0;
|
||||
};
|
||||
|
||||
} // namespace srsenb
|
||||
|
||||
#endif // SRSRAN_ENB_RRC_INTERFACES_H
|
|
@ -19,9 +19,9 @@
|
|||
#include "srsran/common/security.h"
|
||||
#include "srsran/interfaces/pdcp_interface_types.h"
|
||||
#include "srsran/interfaces/rlc_interface_types.h"
|
||||
#include "srsran/interfaces/rrc_interface_types.h"
|
||||
// EUTRA interfaces that are used unmodified
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_pdcp.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_rlc.h"
|
||||
|
||||
namespace srsenb {
|
||||
|
||||
|
|
|
@ -25,7 +25,10 @@
|
|||
#include "srsran/common/stack_procedure.h"
|
||||
#include "srsran/common/task_scheduler.h"
|
||||
#include "srsran/common/timeout.h"
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_mac.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_pdcp.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_rlc.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_s1ap.h"
|
||||
#include "srsran/interfaces/enb_x2_interfaces.h"
|
||||
#include "srsran/srslog/srslog.h"
|
||||
#include <map>
|
||||
|
@ -40,14 +43,6 @@ class phy_interface_rrc_lte;
|
|||
|
||||
class paging_manager;
|
||||
|
||||
static const char rrc_state_text[RRC_STATE_N_ITEMS][100] = {"IDLE",
|
||||
"WAIT FOR CON SETUP COMPLETE",
|
||||
"WAIT FOR SECURITY MODE COMPLETE",
|
||||
"WAIT FOR UE CAPABILITIY INFORMATION",
|
||||
"WAIT FOR CON RECONF COMPLETE",
|
||||
"RRC CONNECTED",
|
||||
"RELEASE REQUEST"};
|
||||
|
||||
class rrc final : public rrc_interface_pdcp,
|
||||
public rrc_interface_mac,
|
||||
public rrc_interface_rlc,
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#include "srsran/common/time_prof.h"
|
||||
#include "srsran/interfaces/enb_phy_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rlc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_mac.h"
|
||||
#include "srsran/srslog/event_trace.h"
|
||||
|
||||
// #define WRITE_SIB_PCAP
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include "srsenb/hdr/stack/mac/schedulers/sched_time_rr.h"
|
||||
#include "srsran/common/standard_streams.h"
|
||||
#include "srsran/common/string_helpers.h"
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_mac.h"
|
||||
|
||||
namespace srsenb {
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "srsran/common/string_helpers.h"
|
||||
#include "srsran/interfaces/enb_phy_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rlc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_mac.h"
|
||||
|
||||
namespace srsenb {
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include "srsran/common/enb_events.h"
|
||||
#include "srsran/common/int_helpers.h"
|
||||
#include "srsran/common/standard_streams.h"
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_s1ap.h"
|
||||
|
||||
#include <arpa/inet.h> //for inet_ntop()
|
||||
#include <inttypes.h>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include "srsenb/hdr/common/common_enb.h"
|
||||
#include "srsran/interfaces/enb_gtpu_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rlc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_pdcp.h"
|
||||
|
||||
namespace srsenb {
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include "srsenb/hdr/common/common_enb.h"
|
||||
#include "srsran/interfaces/enb_mac_interfaces.h"
|
||||
#include "srsran/interfaces/enb_pdcp_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_rlc.h"
|
||||
|
||||
namespace srsenb {
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include "srsran/interfaces/enb_mac_interfaces.h"
|
||||
#include "srsran/interfaces/enb_phy_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rlc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_s1ap.h"
|
||||
#include "srsran/interfaces/enb_s1ap_interfaces.h"
|
||||
|
||||
namespace srsenb {
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include "sched_sim_ue.h"
|
||||
#include "sched_test_utils.h"
|
||||
#include "srsenb/hdr/stack/mac/sched.h"
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interface_mac.h"
|
||||
#include "srsran/srslog/srslog.h"
|
||||
#include <random>
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ private:
|
|||
uint16_t ra_rnti = 0;
|
||||
slot_point prach_slot;
|
||||
slot_interval rar_win;
|
||||
srsran::bounded_vector<dl_sched_rar_info_t, sched_interface::MAX_RAR_LIST> msg3_grant;
|
||||
srsran::bounded_vector<dl_sched_rar_info_t, MAX_GRANTS> msg3_grant;
|
||||
};
|
||||
|
||||
alloc_result
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#ifndef SRSRAN_SCHED_NR_INTERFACE_H
|
||||
#define SRSRAN_SCHED_NR_INTERFACE_H
|
||||
|
||||
#include "srsenb/hdr/stack/mac/common/sched_config.h"
|
||||
#include "srsran/adt/bounded_bitset.h"
|
||||
#include "srsran/adt/bounded_vector.h"
|
||||
#include "srsran/adt/optional.h"
|
||||
|
|
|
@ -42,7 +42,7 @@ public:
|
|||
|
||||
virtual ~ue_nr();
|
||||
void reset();
|
||||
void ue_cfg(const sched_interface::ue_cfg_t& ue_cfg);
|
||||
void ue_cfg(const sched_nr_interface::ue_cfg_t& ue_cfg);
|
||||
|
||||
void set_tti(uint32_t tti);
|
||||
uint16_t get_rnti() const { return rnti; }
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include "srsran/common/timeout.h"
|
||||
#include "srsran/interfaces/enb_pdcp_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rlc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_rrc_interfaces.h"
|
||||
#include "srsran/interfaces/enb_x2_interfaces.h"
|
||||
#include "srsran/interfaces/gnb_interfaces.h"
|
||||
#include "srsran/interfaces/gnb_mac_interfaces.h"
|
||||
|
|
|
@ -49,7 +49,7 @@ void ue_nr::reset()
|
|||
nof_failures = 0;
|
||||
}
|
||||
|
||||
void ue_nr::ue_cfg(const sched_interface::ue_cfg_t& ue_cfg)
|
||||
void ue_nr::ue_cfg(const sched_nr_interface::ue_cfg_t& ue_cfg)
|
||||
{
|
||||
// nop
|
||||
}
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
add_library(rrc_nr_test_helpers rrc_nr_test_helpers.cc)
|
||||
|
||||
add_executable(rrc_nr_test rrc_nr_test.cc)
|
||||
target_link_libraries(rrc_nr_test srsgnb_rrc srsgnb_rrc_config_utils srsran_common rrc_nr_asn1 rrc_asn1 rrc_nr_test_helpers ${ATOMIC_LIBS})
|
||||
target_link_libraries(rrc_nr_test srsgnb_rrc srsgnb_rrc_config_utils srsran_common rrc_nr_asn1 rrc_nr_test_helpers ${ATOMIC_LIBS})
|
||||
add_test(rrc_nr_test rrc_nr_test)
|
||||
|
||||
add_executable(rrc_nr_core_test rrc_nr_core_test.cc)
|
||||
target_link_libraries(rrc_nr_core_test srsgnb_rrc srsgnb_rrc_config_utils srsran_common rrc_nr_asn1 rrc_asn1 test_helpers rrc_nr_test_helpers srsgnb_ngap ngap_nr_asn1 srsran_gtpu srsenb_upper ${SCTP_LIBRARIES} ${ATOMIC_LIBS} ${Boost_LIBRARIES})
|
||||
target_link_libraries(rrc_nr_core_test srsgnb_rrc srsgnb_rrc_config_utils srsran_common rrc_nr_asn1 test_helpers rrc_nr_test_helpers srsgnb_ngap ngap_nr_asn1 srsran_gtpu srsenb_upper ${SCTP_LIBRARIES} ${ATOMIC_LIBS} ${Boost_LIBRARIES})
|
||||
|
||||
|
|
Loading…
Reference in New Issue