|
|
|
@ -13,6 +13,7 @@
|
|
|
|
|
#ifndef SRSUE_RRC_NR_H
|
|
|
|
|
#define SRSUE_RRC_NR_H
|
|
|
|
|
|
|
|
|
|
#include "../rrc/rrc_cell.h"
|
|
|
|
|
#include "rrc_nr_config.h"
|
|
|
|
|
#include "srsran/adt/circular_map.h"
|
|
|
|
|
#include "srsran/asn1/rrc_nr.h"
|
|
|
|
@ -40,6 +41,7 @@ class rrc_nr final : public rrc_interface_phy_nr,
|
|
|
|
|
public rrc_interface_rlc,
|
|
|
|
|
public rrc_interface_mac,
|
|
|
|
|
public rrc_nr_interface_rrc,
|
|
|
|
|
public rrc_nr_interface_nas_5g,
|
|
|
|
|
public srsran::timer_callback
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
@ -101,6 +103,13 @@ public:
|
|
|
|
|
void write_pdu_mch(uint32_t lcid, srsran::unique_byte_buffer_t pdu) final;
|
|
|
|
|
void notify_pdcp_integrity_error(uint32_t lcid) final;
|
|
|
|
|
|
|
|
|
|
// NAS interface
|
|
|
|
|
int write_sdu(srsran::unique_byte_buffer_t sdu);
|
|
|
|
|
bool is_connected();
|
|
|
|
|
int connection_request(srsran::nr_establishment_cause_t cause, srsran::unique_byte_buffer_t sdu);
|
|
|
|
|
uint16_t get_mcc();
|
|
|
|
|
uint16_t get_mnc();
|
|
|
|
|
|
|
|
|
|
// RRC (LTE) interface
|
|
|
|
|
int get_eutra_nr_capabilities(srsran::byte_buffer_t* eutra_nr_caps);
|
|
|
|
|
int get_nr_capabilities(srsran::byte_buffer_t* eutra_nr_caps);
|
|
|
|
@ -122,6 +131,9 @@ public:
|
|
|
|
|
void set_phy_config_complete(bool status) final;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
// senders
|
|
|
|
|
void send_ul_info_transfer(srsran::unique_byte_buffer_t nas_msg);
|
|
|
|
|
|
|
|
|
|
srsran::task_sched_handle task_sched;
|
|
|
|
|
struct cmd_msg_t {
|
|
|
|
|
enum { PDU, PCCH, PDU_MCH, RLF, PDU_BCCH_DLSCH, STOP } command;
|
|
|
|
@ -145,6 +157,8 @@ private:
|
|
|
|
|
usim_interface_rrc_nr* usim = nullptr;
|
|
|
|
|
stack_interface_rrc* stack = nullptr;
|
|
|
|
|
|
|
|
|
|
meas_cell_list<meas_cell_nr> meas_cells;
|
|
|
|
|
|
|
|
|
|
const uint32_t sim_measurement_timer_duration_ms = 250;
|
|
|
|
|
uint32_t sim_measurement_carrier_freq_r15;
|
|
|
|
|
srsran::timer_handler::unique_timer sim_measurement_timer;
|
|
|
|
@ -157,8 +171,7 @@ private:
|
|
|
|
|
RRC_NR_STATE_N_ITEMS,
|
|
|
|
|
};
|
|
|
|
|
const static char* rrc_nr_state_text[RRC_NR_STATE_N_ITEMS];
|
|
|
|
|
|
|
|
|
|
// rrc_nr_state_t state = RRC_NR_STATE_IDLE;
|
|
|
|
|
rrc_nr_state_t state = RRC_NR_STATE_IDLE;
|
|
|
|
|
|
|
|
|
|
// Stores the state of the PHy configuration setting
|
|
|
|
|
enum {
|
|
|
|
|