Commit aff1b842 authored by Tien Thinh NGUYEN's avatar Tien Thinh NGUYEN

Code cleanup for UE Context

parent 375bb6d9
......@@ -407,9 +407,9 @@ void amf_app::handle_itti_message(
if (itti_msg.rrc_cause != -1)
uc->rrc_estb_cause = (e_Ngap_RRCEstablishmentCause) itti_msg.rrc_cause;
if (itti_msg.ueCtxReq == -1)
uc->isUeContextRequest = false;
uc->is_ue_context_request = false;
else
uc->isUeContextRequest = true;
uc->is_ue_context_request = true;
uc->ran_ue_ngap_id = itti_msg.ran_ue_ngap_id;
uc->amf_ue_ngap_id = amf_ue_ngap_id;
......@@ -584,7 +584,7 @@ void amf_app::handle_itti_message(itti_sbi_n1_message_notification& itti_msg) {
uc->rrc_estb_cause = (e_Ngap_RRCEstablishmentCause) rrc_cause;
}
// ueContextRequest
uc->isUeContextRequest = registration_context.isUeContextRequest();
uc->is_ue_context_request = registration_context.isUeContextRequest();
// Step 4. Create UE NGAP Context if necessary
// Create/Update UE NGAP Context
......
......@@ -297,7 +297,7 @@ void amf_n1::handle_itti_message(itti_downlink_nas_transfer& itti_msg) {
return;
}
if (uc->isUeContextRequest) {
if (uc->is_ue_context_request) {
// PDU SESSION RESOURCE SETUP_REQUEST
std::shared_ptr<itti_pdu_session_resource_setup_request> psrsr =
std::make_shared<itti_pdu_session_resource_setup_request>(
......@@ -2662,7 +2662,7 @@ void amf_n1::security_mode_complete_handle(
secu, false, INTEGRITY_PROTECTED_AND_CIPHERED, NAS_MESSAGE_DOWNLINK,
buffer, encoded_size, protected_nas);
if (!uc->isUeContextRequest) {
if (!uc->is_ue_context_request) {
Logger::amf_n1().debug(
"UE Context is not requested, UE with "
"ran_ue_ngap_id " GNB_UE_NGAP_ID_FMT
......
......@@ -21,48 +21,52 @@
#include "ue_context.hpp"
#include "amf.hpp"
//------------------------------------------------------------------------------
ue_context::ue_context() {
ran_ue_ngap_id = 0;
amf_ue_ngap_id = -1;
amf_ue_ngap_id = INVALID_AMF_UE_NGAP_ID;
gnb_id = 0;
supi = {};
tmsi = 0;
rrc_estb_cause = {};
isUeContextRequest = false;
is_ue_context_request = false;
cgi = {};
tai = {};
pdu_sessions = {};
tmsi = 0;
}
//------------------------------------------------------------------------------
bool ue_context::find_pdu_session_context(
const std::uint8_t& session_id,
std::uint8_t session_id,
std::shared_ptr<pdu_session_context>& context) const {
std::shared_lock lock(m_pdu_session);
if (pdu_sessions.count(session_id) > 0) {
if (pdu_sessions.at(session_id) != nullptr) {
context = pdu_sessions.at(session_id);
return true;
} else {
return false;
}
}
return false;
}
//------------------------------------------------------------------------------
void ue_context::add_pdu_session_context(
const std::uint8_t& session_id,
std::uint8_t session_id,
const std::shared_ptr<pdu_session_context>& context) {
std::unique_lock lock(m_pdu_session);
pdu_sessions[session_id] = context;
}
//------------------------------------------------------------------------------
void ue_context::copy_pdu_sessions(std::shared_ptr<ue_context>& ue_ctx) {
void ue_context::copy_pdu_sessions(const std::shared_ptr<ue_context>& ue_ctx) {
pdu_sessions = ue_ctx->pdu_sessions;
}
//------------------------------------------------------------------------------
bool ue_context::get_pdu_sessions_context(
std::vector<std::shared_ptr<pdu_session_context>>& sessions_ctx) {
std::vector<std::shared_ptr<pdu_session_context>>& sessions_ctx) const {
std::shared_lock lock(m_pdu_session);
for (auto s : pdu_sessions) {
sessions_ctx.push_back(s.second);
......@@ -71,7 +75,7 @@ bool ue_context::get_pdu_sessions_context(
}
//------------------------------------------------------------------------------
bool ue_context::remove_pdu_sessions_context(const uint8_t& pdu_session_id) {
bool ue_context::remove_pdu_sessions_context(uint8_t pdu_session_id) {
std::shared_lock lock(m_pdu_session);
pdu_sessions.erase(pdu_session_id);
return true;
......
......@@ -25,8 +25,6 @@
#include <stdint.h>
#include <map>
#include <memory>
#include <mutex>
#include <shared_mutex>
#include "NgapIEsStruct.hpp"
......@@ -43,28 +41,28 @@ class ue_context {
ue_context();
virtual ~ue_context(){};
bool find_pdu_session_context(
const std::uint8_t& session_id,
std::uint8_t session_id,
std::shared_ptr<pdu_session_context>& context) const;
void add_pdu_session_context(
const std::uint8_t& session_id,
std::uint8_t session_id,
const std::shared_ptr<pdu_session_context>& context);
void copy_pdu_sessions(std::shared_ptr<ue_context>& ue_ctx);
void copy_pdu_sessions(const std::shared_ptr<ue_context>& ue_ctx);
bool get_pdu_sessions_context(
std::vector<std::shared_ptr<pdu_session_context>>& sessions_ctx);
std::vector<std::shared_ptr<pdu_session_context>>& sessions_ctx) const;
bool remove_pdu_sessions_context(const uint8_t& pdu_session_id);
bool remove_pdu_sessions_context(uint8_t pdu_session_id);
public:
uint32_t ran_ue_ngap_id; // 32bits
long amf_ue_ngap_id : 40; // 40bits
long amf_ue_ngap_id; // 40bits
uint32_t gnb_id;
std::string supi;
uint32_t tmsi;
e_Ngap_RRCEstablishmentCause rrc_estb_cause;
bool isUeContextRequest;
bool is_ue_context_request;
NrCgi_t cgi;
Tai_t tai;
std::string supi;
uint32_t tmsi;
// pdu session id <-> pdu_session_contex
std::map<std::uint8_t, std::shared_ptr<pdu_session_context>> pdu_sessions;
mutable std::shared_mutex m_pdu_session;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment