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
a2081e43
Commit
a2081e43
authored
Apr 11, 2023
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix Service Request when UE in CM-CONNECTED mode
parent
cb751761
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
162 additions
and
314 deletions
+162
-314
src/amf-app/amf_n1.cpp
src/amf-app/amf_n1.cpp
+129
-298
src/amf-app/amf_n1.hpp
src/amf-app/amf_n1.hpp
+3
-0
src/amf-app/amf_n2.cpp
src/amf-app/amf_n2.cpp
+5
-0
src/contexts/nas_context.cpp
src/contexts/nas_context.cpp
+21
-16
src/contexts/nas_context.hpp
src/contexts/nas_context.hpp
+4
-0
No files found.
src/amf-app/amf_n1.cpp
View file @
a2081e43
This diff is collapsed.
Click to expand it.
src/amf-app/amf_n1.hpp
View file @
a2081e43
...
@@ -926,6 +926,9 @@ class amf_n1 {
...
@@ -926,6 +926,9 @@ class amf_n1 {
void
service_request_handle
(
void
service_request_handle
(
std
::
shared_ptr
<
nas_context
>
nc
,
const
uint32_t
ran_ue_ngap_id
,
std
::
shared_ptr
<
nas_context
>
nc
,
const
uint32_t
ran_ue_ngap_id
,
const
long
amf_ue_ngap_id
,
bstring
nas
,
uint8_t
ulCount
);
const
long
amf_ue_ngap_id
,
bstring
nas
,
uint8_t
ulCount
);
void
send_service_reject
(
std
::
shared_ptr
<
nas_context
>&
nc
,
uint8_t
cause
);
/*
/*
* Handle Identity Response message
* Handle Identity Response message
* @param [const uint32_t] ran_ue_ngap_id: RAN UE NGAP ID
* @param [const uint32_t] ran_ue_ngap_id: RAN UE NGAP ID
...
...
src/amf-app/amf_n2.cpp
View file @
a2081e43
...
@@ -1365,6 +1365,11 @@ void amf_n2::handle_itti_message(itti_ue_context_release_complete& itti_msg) {
...
@@ -1365,6 +1365,11 @@ void amf_n2::handle_itti_message(itti_ue_context_release_complete& itti_msg) {
}
}
if
(
nc
!=
nullptr
)
{
if
(
nc
!=
nullptr
)
{
// Do nothing in case of old NAS Context (Service Request handling)
if
(
nc
->
old_amf_ue_ngap_id
==
INVALID_AMF_UE_NGAP_ID
)
{
Logger
::
amf_n2
().
debug
(
"UE Context Release Complete for the old context"
);
return
;
}
amf_n1_inst
->
set_5gcm_state
(
nc
,
CM_IDLE
);
amf_n1_inst
->
set_5gcm_state
(
nc
,
CM_IDLE
);
// Start/reset the Mobile Reachable Timer
// Start/reset the Mobile Reachable Timer
...
...
src/contexts/nas_context.cpp
View file @
a2081e43
...
@@ -21,24 +21,28 @@
...
@@ -21,24 +21,28 @@
#include "nas_context.hpp"
#include "nas_context.hpp"
#include "amf.hpp"
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
nas_context
::
nas_context
()
:
_5g_he_av
(),
_5g_av
(),
kamf
(),
_5gmm_capability
()
{
nas_context
::
nas_context
()
:
_5g_he_av
(),
_5g_av
(),
kamf
(),
_5gmm_capability
()
{
is_imsi_present
=
false
;
is_imsi_present
=
false
;
is_auth_vectors_present
=
false
;
is_auth_vectors_present
=
false
;
auts
=
nullptr
;
auts
=
nullptr
;
ctx_avaliability_ind
=
false
;
ctx_avaliability_ind
=
false
;
amf_ue_ngap_id
=
0
;
amf_ue_ngap_id
=
0
;
ran_ue_ngap_id
=
0
;
ran_ue_ngap_id
=
0
;
_5gmm_state
=
{};
old_amf_ue_ngap_id
=
INVALID_AMF_UE_NGAP_ID
;
registration_type
=
0
;
old_ran_ue_ngap_id
=
0
;
follow_on_req_pending_ind
=
false
;
_5gmm_state
=
{};
ngksi
=
0
;
registration_type
=
0
;
ue_security_capability
=
{};
follow_on_req_pending_ind
=
false
;
is_specific_procedure_for_registration_running
=
false
;
ngksi
=
0
;
is_specific_procedure_for_deregistration_running
=
false
;
ue_security_capability
=
{};
is_specific_procedure_for_eCell_inactivity_running
=
false
;
is_specific_procedure_for_registration_running
=
false
;
is_common_procedure_for_authentication_running
=
false
;
is_specific_procedure_for_deregistration_running
=
false
;
is_common_procedure_for_identification_running
=
false
;
is_specific_procedure_for_eCell_inactivity_running
=
false
;
is_common_procedure_for_authentication_running
=
false
;
is_common_procedure_for_identification_running
=
false
;
is_common_procedure_for_security_mode_control_running
=
false
;
is_common_procedure_for_security_mode_control_running
=
false
;
is_common_procedure_for_nas_transport_running
=
false
;
is_common_procedure_for_nas_transport_running
=
false
;
security_ctx
=
std
::
nullopt
;
security_ctx
=
std
::
nullopt
;
...
@@ -56,6 +60,7 @@ nas_context::nas_context() : _5g_he_av(), _5g_av(), kamf(), _5gmm_capability() {
...
@@ -56,6 +60,7 @@ nas_context::nas_context() : _5g_he_av(), _5g_av(), kamf(), _5gmm_capability() {
implicit_deregistration_timer
=
ITTI_INVALID_TIMER_ID
;
implicit_deregistration_timer
=
ITTI_INVALID_TIMER_ID
;
href
=
{};
href
=
{};
imeisv
=
std
::
nullopt
;
imeisv
=
std
::
nullopt
;
guti
=
std
::
nullopt
;
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
...
...
src/contexts/nas_context.hpp
View file @
a2081e43
...
@@ -68,6 +68,9 @@ class nas_context {
...
@@ -68,6 +68,9 @@ class nas_context {
bool
ctx_avaliability_ind
;
bool
ctx_avaliability_ind
;
long
amf_ue_ngap_id
;
long
amf_ue_ngap_id
;
uint32_t
ran_ue_ngap_id
;
uint32_t
ran_ue_ngap_id
;
long
old_amf_ue_ngap_id
;
uint32_t
old_ran_ue_ngap_id
;
cm_state_t
nas_status
;
cm_state_t
nas_status
;
_5gmm_state_t
_5gmm_state
;
_5gmm_state_t
_5gmm_state
;
bool
is_mobile_reachable_timer_timeout
;
bool
is_mobile_reachable_timer_timeout
;
...
@@ -81,6 +84,7 @@ class nas_context {
...
@@ -81,6 +84,7 @@ class nas_context {
std
::
string
imsi
;
// TODO: use SUPI instead
std
::
string
imsi
;
// TODO: use SUPI instead
std
::
optional
<
nas
::
IMEI_IMEISV_t
>
imeisv
;
std
::
optional
<
nas
::
IMEI_IMEISV_t
>
imeisv
;
std
::
optional
<
std
::
string
>
guti
;
std
::
uint8_t
_5gmm_capability
[
13
];
std
::
uint8_t
_5gmm_capability
[
13
];
nas
::
UESecurityCapability
ue_security_capability
;
nas
::
UESecurityCapability
ue_security_capability
;
...
...
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