Skip to content

Commit 157e804

Browse files
FabianEckermannFabian Eckermann
authored andcommitted
cu_cp,rrc: make setup ue id a variant
1 parent 5006fda commit 157e804

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

lib/rrc/ue/procedures/rrc_setup_procedure.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "rrc_setup_procedure.h"
1212
#include "../rrc_asn1_helpers.h"
1313
#include "srsran/asn1/rrc_nr/dl_ccch_msg.h"
14+
#include <variant>
1415

1516
using namespace srsran;
1617
using namespace srsran::srs_cu_cp;
@@ -110,10 +111,10 @@ void rrc_setup_procedure::send_initial_ue_msg(const asn1::rrc_nr::rrc_setup_comp
110111
asn1::rrc_nr::rrc_setup_complete_ies_s::ng_5_g_s_tmsi_value_c_::types_opts::options::ng_5_g_s_tmsi) {
111112
context.five_g_s_tmsi = asn1_to_five_g_s_tmsi(rrc_setup_complete.ng_5_g_s_tmsi_value.ng_5_g_s_tmsi());
112113
} else {
113-
if (!context.five_g_s_tmsi_part1.has_value()) {
114+
if (!std::holds_alternative<asn1::fixed_bitstring<39>>(context.setup_ue_id)) {
114115
logger.log_warning("5G-S-TMSI part 1 is missing");
115116
} else {
116-
context.five_g_s_tmsi = asn1_to_five_g_s_tmsi(context.five_g_s_tmsi_part1.value(),
117+
context.five_g_s_tmsi = asn1_to_five_g_s_tmsi(std::get<asn1::fixed_bitstring<39>>(context.setup_ue_id),
117118
rrc_setup_complete.ng_5_g_s_tmsi_value.ng_5_g_s_tmsi_part2());
118119
}
119120
}

lib/rrc/ue/rrc_ue_context.h

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,18 @@ class rrc_ue_context_t
3333
const rrc_ue_cfg_t& cfg_,
3434
std::optional<rrc_ue_transfer_context> rrc_context_);
3535

36-
const ue_index_t ue_index; // UE index assigned by the DU processor
37-
const rnti_t c_rnti; // current C-RNTI
38-
const rrc_cell_context cell; // current cell
39-
const rrc_ue_cfg_t cfg;
40-
rrc_state state = rrc_state::idle;
41-
std::optional<rrc_meas_cfg> meas_cfg;
42-
std::optional<asn1::fixed_bitstring<39>> five_g_s_tmsi_part1;
43-
std::optional<cu_cp_five_g_s_tmsi> five_g_s_tmsi;
44-
uint64_t setup_ue_id;
45-
asn1::rrc_nr::establishment_cause_opts connection_cause;
46-
std::map<srb_id_t, ue_srb_context> srbs;
47-
std::optional<asn1::rrc_nr::ue_nr_cap_s> capabilities;
36+
const ue_index_t ue_index; // UE index assigned by the DU processor
37+
const rnti_t c_rnti; // current C-RNTI
38+
const rrc_cell_context cell; // current cell
39+
const rrc_ue_cfg_t cfg;
40+
rrc_state state = rrc_state::idle;
41+
std::optional<rrc_meas_cfg> meas_cfg;
42+
std::optional<cu_cp_five_g_s_tmsi> five_g_s_tmsi;
43+
std::variant<uint64_t, asn1::fixed_bitstring<39>>
44+
setup_ue_id; ///< this is either a random value or the 5G-S-TMSI-PART1
45+
asn1::rrc_nr::establishment_cause_opts connection_cause;
46+
std::map<srb_id_t, ue_srb_context> srbs;
47+
std::optional<asn1::rrc_nr::ue_nr_cap_s> capabilities;
4848
std::optional<asn1::rrc_nr::ue_cap_rat_container_list_l> capabilities_list;
4949
std::optional<rrc_ue_transfer_context> transfer_context; // Context of old UE when created through mobility.
5050
bool reestablishment_ongoing = false;

lib/rrc/ue/rrc_ue_message_handlers.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,7 @@ void rrc_ue_impl::handle_rrc_setup_request(const asn1::rrc_nr::rrc_setup_request
7676
const rrc_setup_request_ies_s& request_ies = request_msg.rrc_setup_request;
7777
switch (request_ies.ue_id.type().value) {
7878
case init_ue_id_c::types_opts::ng_5_g_s_tmsi_part1: {
79-
context.five_g_s_tmsi_part1 = request_ies.ue_id.ng_5_g_s_tmsi_part1();
80-
context.setup_ue_id = request_ies.ue_id.ng_5_g_s_tmsi_part1().to_number();
79+
context.setup_ue_id = request_ies.ue_id.ng_5_g_s_tmsi_part1();
8180
break;
8281
}
8382
case asn1::rrc_nr::init_ue_id_c::types_opts::random_value:

0 commit comments

Comments
 (0)