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
8b65e80f
Commit
8b65e80f
authored
Nov 07, 2021
by
Tien-Thinh Nguyen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove Mobile Reachable Timer when NAS signalling is established
parent
6cc84963
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
21 additions
and
0 deletions
+21
-0
src/amf-app/amf_n1.cpp
src/amf-app/amf_n1.cpp
+15
-0
src/amf-app/amf_n1.hpp
src/amf-app/amf_n1.hpp
+2
-0
src/amf-app/amf_n2.cpp
src/amf-app/amf_n2.cpp
+1
-0
src/contexts/nas_context.cpp
src/contexts/nas_context.cpp
+1
-0
src/contexts/nas_context.hpp
src/contexts/nas_context.hpp
+2
-0
No files found.
src/amf-app/amf_n1.cpp
View file @
8b65e80f
...
@@ -489,6 +489,8 @@ void amf_n1::nas_signalling_establishment_request_handle(
...
@@ -489,6 +489,8 @@ void amf_n1::nas_signalling_establishment_request_handle(
nc
.
get
()
->
amf_ue_ngap_id
=
amf_ue_ngap_id
;
nc
.
get
()
->
amf_ue_ngap_id
=
amf_ue_ngap_id
;
nc
.
get
()
->
ran_ue_ngap_id
=
ran_ue_ngap_id
;
nc
.
get
()
->
ran_ue_ngap_id
=
ran_ue_ngap_id
;
nc
.
get
()
->
serving_network
=
snn
;
nc
.
get
()
->
serving_network
=
snn
;
// stop Mobile Reachable Timer
itti_inst
->
timer_remove
(
nc
.
get
()
->
mobile_reachable_timer
);
// stacs.UE_connected += 1;
// stacs.UE_connected += 1;
// Trigger UE Reachability Status Notify
// Trigger UE Reachability Status Notify
...
@@ -675,6 +677,8 @@ void amf_n1::identity_response_handle(
...
@@ -675,6 +677,8 @@ void amf_n1::identity_response_handle(
nc
.
get
()
->
imsi
=
supi
;
nc
.
get
()
->
imsi
=
supi
;
supi2amfId
[(
"imsi-"
+
nc
.
get
()
->
imsi
)]
=
amf_ue_ngap_id
;
supi2amfId
[(
"imsi-"
+
nc
.
get
()
->
imsi
)]
=
amf_ue_ngap_id
;
supi2ranId
[(
"imsi-"
+
nc
.
get
()
->
imsi
)]
=
ran_ue_ngap_id
;
supi2ranId
[(
"imsi-"
+
nc
.
get
()
->
imsi
)]
=
ran_ue_ngap_id
;
// stop Mobile Reachable Timer
itti_inst
->
timer_remove
(
nc
.
get
()
->
mobile_reachable_timer
);
if
(
nc
.
get
()
->
to_be_register_by_new_suci
)
{
if
(
nc
.
get
()
->
to_be_register_by_new_suci
)
{
run_registration_procedure
(
nc
);
run_registration_procedure
(
nc
);
}
}
...
@@ -928,6 +932,8 @@ void amf_n1::registration_request_handle(
...
@@ -928,6 +932,8 @@ void amf_n1::registration_request_handle(
nc
.
get
()
->
amf_ue_ngap_id
=
amf_ue_ngap_id
;
nc
.
get
()
->
amf_ue_ngap_id
=
amf_ue_ngap_id
;
nc
.
get
()
->
ran_ue_ngap_id
=
ran_ue_ngap_id
;
nc
.
get
()
->
ran_ue_ngap_id
=
ran_ue_ngap_id
;
nc
.
get
()
->
serving_network
=
snn
;
nc
.
get
()
->
serving_network
=
snn
;
// stop Mobile Reachable Timer
itti_inst
->
timer_remove
(
nc
.
get
()
->
mobile_reachable_timer
);
}
}
nc
.
get
()
->
is_imsi_present
=
true
;
nc
.
get
()
->
is_imsi_present
=
true
;
nc
.
get
()
->
imsi
=
imsi
.
mcc
+
imsi
.
mnc
+
imsi
.
msin
;
nc
.
get
()
->
imsi
=
imsi
.
mcc
+
imsi
.
mnc
+
imsi
.
msin
;
...
@@ -1013,6 +1019,8 @@ void amf_n1::registration_request_handle(
...
@@ -1013,6 +1019,8 @@ void amf_n1::registration_request_handle(
// nc.get()->imsi =
// nc.get()->imsi =
// supi2amfId[("imsi-"+nc.get()->imsi)] = amf_ue_ngap_id;
// supi2amfId[("imsi-"+nc.get()->imsi)] = amf_ue_ngap_id;
// supi2ranId[("imsi-"+nc.get()->imsi)] = ran_ue_ngap_id;
// supi2ranId[("imsi-"+nc.get()->imsi)] = ran_ue_ngap_id;
// stop Mobile Reachable Timer
itti_inst
->
timer_remove
(
nc
.
get
()
->
mobile_reachable_timer
);
}
}
}
break
;
}
break
;
...
@@ -3198,6 +3206,13 @@ void amf_n1::mobile_reachable_timer_timeout(
...
@@ -3198,6 +3206,13 @@ void amf_n1::mobile_reachable_timer_timeout(
// TODO: Start the implicit de-registration timer
// TODO: Start the implicit de-registration timer
}
}
//------------------------------------------------------------------------------
void
amf_n1
::
set_mobile_reachable_timer
(
std
::
shared_ptr
<
nas_context
>&
nc
,
const
timer_id_t
&
t
)
{
std
::
unique_lock
lock
(
m_nas_context
);
nc
.
get
()
->
mobile_reachable_timer
=
t
;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void
amf_n1
::
set_mobile_reachable_timer_timeout
(
void
amf_n1
::
set_mobile_reachable_timer_timeout
(
std
::
shared_ptr
<
nas_context
>&
nc
,
const
bool
&
b
)
{
std
::
shared_ptr
<
nas_context
>&
nc
,
const
bool
&
b
)
{
...
...
src/amf-app/amf_n1.hpp
View file @
8b65e80f
...
@@ -192,6 +192,8 @@ class amf_n1 {
...
@@ -192,6 +192,8 @@ class amf_n1 {
const
std
::
shared_ptr
<
nas_context
>&
nc
,
bool
&
b
)
const
;
const
std
::
shared_ptr
<
nas_context
>&
nc
,
bool
&
b
)
const
;
bool
get_mobile_reachable_timer_timeout
(
bool
get_mobile_reachable_timer_timeout
(
const
std
::
shared_ptr
<
nas_context
>&
nc
)
const
;
const
std
::
shared_ptr
<
nas_context
>&
nc
)
const
;
void
set_mobile_reachable_timer
(
std
::
shared_ptr
<
nas_context
>&
nc
,
const
timer_id_t
&
t
);
private:
private:
void
ue_initiate_de_registration_handle
(
void
ue_initiate_de_registration_handle
(
...
...
src/amf-app/amf_n2.cpp
View file @
8b65e80f
...
@@ -1296,6 +1296,7 @@ void amf_n2::handle_itti_message(itti_ue_context_release_complete& itti_msg) {
...
@@ -1296,6 +1296,7 @@ void amf_n2::handle_itti_message(itti_ue_context_release_complete& itti_msg) {
MOBILE_REACHABLE_TIMER_NO_EMERGENCY_SERVICES_MIN
*
60
,
0
,
TASK_AMF_N1
,
MOBILE_REACHABLE_TIMER_NO_EMERGENCY_SERVICES_MIN
*
60
,
0
,
TASK_AMF_N1
,
TASK_AMF_MOBILE_REACHABLE_TIMER_EXPIRE
,
amf_ue_ngap_id
);
TASK_AMF_MOBILE_REACHABLE_TIMER_EXPIRE
,
amf_ue_ngap_id
);
Logger
::
amf_app
().
startup
(
"Started mobile reachable timer ( tid %d)"
,
tid
);
Logger
::
amf_app
().
startup
(
"Started mobile reachable timer ( tid %d)"
,
tid
);
amf_n1_inst
->
set_mobile_reachable_timer
(
nc
,
tid
);
amf_n1_inst
->
set_mobile_reachable_timer_timeout
(
nc
,
false
);
amf_n1_inst
->
set_mobile_reachable_timer_timeout
(
nc
,
false
);
// TODO: User Location Information IE
// TODO: User Location Information IE
...
...
src/contexts/nas_context.cpp
View file @
8b65e80f
...
@@ -66,6 +66,7 @@ nas_context::nas_context() : _vector(), _5g_he_av(), _5g_av(), kamf() {
...
@@ -66,6 +66,7 @@ nas_context::nas_context() : _vector(), _5g_he_av(), _5g_av(), kamf() {
ueSecurityCaplen
=
0
;
ueSecurityCaplen
=
0
;
nas_status
=
CM_IDLE
;
nas_status
=
CM_IDLE
;
is_mobile_reachable_timer_timeout
=
false
;
is_mobile_reachable_timer_timeout
=
false
;
mobile_reachable_timer
=
ITTI_INVALID_TIMER_ID
;
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
...
...
src/contexts/nas_context.hpp
View file @
8b65e80f
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
#include "nas_security_context.hpp"
#include "nas_security_context.hpp"
#include "security_def.hpp"
#include "security_def.hpp"
#include "struct.hpp"
#include "struct.hpp"
#include "itti.hpp"
typedef
enum
{
typedef
enum
{
_5GMM_STATE_MIN
=
0
,
_5GMM_STATE_MIN
=
0
,
...
@@ -72,6 +73,7 @@ class nas_context {
...
@@ -72,6 +73,7 @@ class nas_context {
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
;
timer_id_t
mobile_reachable_timer
;
// parameters from Registration request
// parameters from Registration request
uint8_t
registration_type
:
3
;
uint8_t
registration_type
:
3
;
...
...
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