Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-AMF
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG-AMF
Commits
aff1b842
Commit
aff1b842
authored
Mar 10, 2023
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Code cleanup for UE Context
parent
375bb6d9
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
37 additions
and
35 deletions
+37
-35
src/amf-app/amf_app.cpp
src/amf-app/amf_app.cpp
+3
-3
src/amf-app/amf_n1.cpp
src/amf-app/amf_n1.cpp
+2
-2
src/contexts/ue_context.cpp
src/contexts/ue_context.cpp
+22
-18
src/contexts/ue_context.hpp
src/contexts/ue_context.hpp
+10
-12
No files found.
src/amf-app/amf_app.cpp
View file @
aff1b842
...
@@ -407,9 +407,9 @@ void amf_app::handle_itti_message(
...
@@ -407,9 +407,9 @@ void amf_app::handle_itti_message(
if
(
itti_msg
.
rrc_cause
!=
-
1
)
if
(
itti_msg
.
rrc_cause
!=
-
1
)
uc
->
rrc_estb_cause
=
(
e_Ngap_RRCEstablishmentCause
)
itti_msg
.
rrc_cause
;
uc
->
rrc_estb_cause
=
(
e_Ngap_RRCEstablishmentCause
)
itti_msg
.
rrc_cause
;
if
(
itti_msg
.
ueCtxReq
==
-
1
)
if
(
itti_msg
.
ueCtxReq
==
-
1
)
uc
->
is
UeContextR
equest
=
false
;
uc
->
is
_ue_context_r
equest
=
false
;
else
else
uc
->
is
UeContextR
equest
=
true
;
uc
->
is
_ue_context_r
equest
=
true
;
uc
->
ran_ue_ngap_id
=
itti_msg
.
ran_ue_ngap_id
;
uc
->
ran_ue_ngap_id
=
itti_msg
.
ran_ue_ngap_id
;
uc
->
amf_ue_ngap_id
=
amf_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) {
...
@@ -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
;
uc
->
rrc_estb_cause
=
(
e_Ngap_RRCEstablishmentCause
)
rrc_cause
;
}
}
// ueContextRequest
// ueContextRequest
uc
->
is
UeContextR
equest
=
registration_context
.
isUeContextRequest
();
uc
->
is
_ue_context_r
equest
=
registration_context
.
isUeContextRequest
();
// Step 4. Create UE NGAP Context if necessary
// Step 4. Create UE NGAP Context if necessary
// Create/Update UE NGAP Context
// Create/Update UE NGAP Context
...
...
src/amf-app/amf_n1.cpp
View file @
aff1b842
...
@@ -297,7 +297,7 @@ void amf_n1::handle_itti_message(itti_downlink_nas_transfer& itti_msg) {
...
@@ -297,7 +297,7 @@ void amf_n1::handle_itti_message(itti_downlink_nas_transfer& itti_msg) {
return
;
return
;
}
}
if
(
uc
->
is
UeContextR
equest
)
{
if
(
uc
->
is
_ue_context_r
equest
)
{
// PDU SESSION RESOURCE SETUP_REQUEST
// PDU SESSION RESOURCE SETUP_REQUEST
std
::
shared_ptr
<
itti_pdu_session_resource_setup_request
>
psrsr
=
std
::
shared_ptr
<
itti_pdu_session_resource_setup_request
>
psrsr
=
std
::
make_shared
<
itti_pdu_session_resource_setup_request
>
(
std
::
make_shared
<
itti_pdu_session_resource_setup_request
>
(
...
@@ -2662,7 +2662,7 @@ void amf_n1::security_mode_complete_handle(
...
@@ -2662,7 +2662,7 @@ void amf_n1::security_mode_complete_handle(
secu
,
false
,
INTEGRITY_PROTECTED_AND_CIPHERED
,
NAS_MESSAGE_DOWNLINK
,
secu
,
false
,
INTEGRITY_PROTECTED_AND_CIPHERED
,
NAS_MESSAGE_DOWNLINK
,
buffer
,
encoded_size
,
protected_nas
);
buffer
,
encoded_size
,
protected_nas
);
if
(
!
uc
->
is
UeContextR
equest
)
{
if
(
!
uc
->
is
_ue_context_r
equest
)
{
Logger
::
amf_n1
().
debug
(
Logger
::
amf_n1
().
debug
(
"UE Context is not requested, UE with "
"UE Context is not requested, UE with "
"ran_ue_ngap_id "
GNB_UE_NGAP_ID_FMT
"ran_ue_ngap_id "
GNB_UE_NGAP_ID_FMT
...
...
src/contexts/ue_context.cpp
View file @
aff1b842
...
@@ -21,48 +21,52 @@
...
@@ -21,48 +21,52 @@
#include "ue_context.hpp"
#include "ue_context.hpp"
#include "amf.hpp"
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
ue_context
::
ue_context
()
{
ue_context
::
ue_context
()
{
ran_ue_ngap_id
=
0
;
ran_ue_ngap_id
=
0
;
amf_ue_ngap_id
=
-
1
;
amf_ue_ngap_id
=
INVALID_AMF_UE_NGAP_ID
;
gnb_id
=
0
;
gnb_id
=
0
;
supi
=
{};
tmsi
=
0
;
rrc_estb_cause
=
{};
rrc_estb_cause
=
{};
is
UeContextR
equest
=
false
;
is
_ue_context_r
equest
=
false
;
cgi
=
{};
cgi
=
{};
tai
=
{};
tai
=
{};
pdu_sessions
=
{};
pdu_sessions
=
{};
tmsi
=
0
;
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
bool
ue_context
::
find_pdu_session_context
(
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_ptr
<
pdu_session_context
>&
context
)
const
{
std
::
shared_lock
lock
(
m_pdu_session
);
std
::
shared_lock
lock
(
m_pdu_session
);
if
(
pdu_sessions
.
count
(
session_id
)
>
0
)
{
if
(
pdu_sessions
.
count
(
session_id
)
>
0
)
{
if
(
pdu_sessions
.
at
(
session_id
)
!=
nullptr
)
{
context
=
pdu_sessions
.
at
(
session_id
);
context
=
pdu_sessions
.
at
(
session_id
);
return
true
;
return
true
;
}
else
{
return
false
;
}
}
}
return
false
;
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void
ue_context
::
add_pdu_session_context
(
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
)
{
const
std
::
shared_ptr
<
pdu_session_context
>&
context
)
{
std
::
unique_lock
lock
(
m_pdu_session
);
std
::
unique_lock
lock
(
m_pdu_session
);
pdu_sessions
[
session_id
]
=
context
;
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
;
pdu_sessions
=
ue_ctx
->
pdu_sessions
;
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
bool
ue_context
::
get_pdu_sessions_context
(
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
);
std
::
shared_lock
lock
(
m_pdu_session
);
for
(
auto
s
:
pdu_sessions
)
{
for
(
auto
s
:
pdu_sessions
)
{
sessions_ctx
.
push_back
(
s
.
second
);
sessions_ctx
.
push_back
(
s
.
second
);
...
@@ -71,7 +75,7 @@ bool ue_context::get_pdu_sessions_context(
...
@@ -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
);
std
::
shared_lock
lock
(
m_pdu_session
);
pdu_sessions
.
erase
(
pdu_session_id
);
pdu_sessions
.
erase
(
pdu_session_id
);
return
true
;
return
true
;
...
...
src/contexts/ue_context.hpp
View file @
aff1b842
...
@@ -25,8 +25,6 @@
...
@@ -25,8 +25,6 @@
#include <stdint.h>
#include <stdint.h>
#include <map>
#include <map>
#include <memory>
#include <mutex>
#include <shared_mutex>
#include <shared_mutex>
#include "NgapIEsStruct.hpp"
#include "NgapIEsStruct.hpp"
...
@@ -43,28 +41,28 @@ class ue_context {
...
@@ -43,28 +41,28 @@ class ue_context {
ue_context
();
ue_context
();
virtual
~
ue_context
(){};
virtual
~
ue_context
(){};
bool
find_pdu_session_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
;
std
::
shared_ptr
<
pdu_session_context
>&
context
)
const
;
void
add_pdu_session_context
(
void
add_pdu_session_context
(
const
std
::
uint8_t
&
session_id
,
std
::
uint8_t
session_id
,
const
std
::
shared_ptr
<
pdu_session_context
>&
context
);
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
(
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:
public:
uint32_t
ran_ue_ngap_id
;
// 32bits
uint32_t
ran_ue_ngap_id
;
// 32bits
long
amf_ue_ngap_id
:
40
;
// 40bits
long
amf_ue_ngap_id
;
// 40bits
uint32_t
gnb_id
;
uint32_t
gnb_id
;
std
::
string
supi
;
uint32_t
tmsi
;
e_Ngap_RRCEstablishmentCause
rrc_estb_cause
;
e_Ngap_RRCEstablishmentCause
rrc_estb_cause
;
bool
is
UeContextR
equest
;
bool
is
_ue_context_r
equest
;
NrCgi_t
cgi
;
NrCgi_t
cgi
;
Tai_t
tai
;
Tai_t
tai
;
std
::
string
supi
;
uint32_t
tmsi
;
// pdu session id <-> pdu_session_contex
// pdu session id <-> pdu_session_contex
std
::
map
<
std
::
uint8_t
,
std
::
shared_ptr
<
pdu_session_context
>>
pdu_sessions
;
std
::
map
<
std
::
uint8_t
,
std
::
shared_ptr
<
pdu_session_context
>>
pdu_sessions
;
mutable
std
::
shared_mutex
m_pdu_session
;
mutable
std
::
shared_mutex
m_pdu_session
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment