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
a6c9fe45
Commit
a6c9fe45
authored
Jul 13, 2021
by
Tien-Thinh Nguyen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove global variable for Source RAN UE ID
parent
1fa602b3
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
27 deletions
+39
-27
src/amf-app/amf_n2.cpp
src/amf-app/amf_n2.cpp
+39
-27
No files found.
src/amf-app/amf_n2.cpp
View file @
a6c9fe45
...
...
@@ -69,7 +69,6 @@ extern statistics stacs;
extern
void
print_buffer
(
const
std
::
string
app
,
const
std
::
string
commit
,
uint8_t
*
buf
,
int
len
);
uint32_t
source_ran_id_global
=
0
;
sctp_assoc_id_t
downlink_sctp_assoc_id
=
0
;
sctp_assoc_id_t
source_assoc_id
=
0
;
int
ncc
=
0
;
...
...
@@ -1050,7 +1049,6 @@ void amf_n2::handle_itti_message(itti_handover_required& itti_msg) {
ncc
++
;
// TODO: to be verified
unsigned
long
amf_ue_ngap_id
=
itti_msg
.
handoverReq
->
getAmfUeNgapId
();
uint32_t
ran_ue_ngap_id
=
itti_msg
.
handoverReq
->
getRanUeNgapId
();
source_ran_id_global
=
ran_ue_ngap_id
;
source_assoc_id
=
itti_msg
.
assoc_id
;
std
::
shared_ptr
<
gnb_context
>
gc
=
{};
...
...
@@ -1305,7 +1303,7 @@ void amf_n2::handle_itti_message(itti_handover_request_Ack& itti_msg) {
std
::
make_unique
<
HandoverCommandMsg
>
();
handovercommand
->
setMessageType
();
handovercommand
->
setAmfUeNgapId
(
amf_ue_ngap_id
);
handovercommand
->
setRanUeNgapId
(
source_ran_id_global
);
handovercommand
->
setRanUeNgapId
(
unc
.
get
()
->
ran_ue_ngap_id
);
handovercommand
->
setHandoverType
(
Ngap_HandoverType_intra5gs
);
std
::
shared_ptr
<
nas_context
>
nc
=
amf_n1_inst
->
amf_ue_id_2_nas_context
(
amf_ue_ngap_id
);
...
...
@@ -1349,24 +1347,27 @@ void amf_n2::handle_itti_message(itti_handover_request_Ack& itti_msg) {
int
encoded_size
=
handovercommand
->
encode2buffer
(
buffer
,
10240
);
bstring
b
=
blk2bstr
(
buffer
,
encoded_size
);
/*
// Create/Update UE NGAP Context if necessary
// TO be verified
if
(
!
is_ran_ue_id_2_ue_ngap_context
(
source_ran_id_global
))
{
if (!is_ran_ue_id_2_ue_ngap_context(unc.get()->ran_ue_ngap_id
)) {
Logger::amf_n2().debug(
"Create a new ue ngap context with ran_ue_ngap_id(0x%x)",
source_ran_id_global
);
unc.get()->ran_ue_ngap_id
);
unc = std::shared_ptr<ue_ngap_context>(new ue_ngap_context());
set_ran_ue_ngap_id_2_ue_ngap_context
(
source_ran_id_global
,
unc
);
set_ran_ue_ngap_id_2_ue_ngap_context(unc.get()->ran_ue_ngap_id
, unc);
unc.get()->gnb_assoc_id = source_assoc_id;
} else {
unc
=
ran_ue_id_2_ue_ngap_context
(
source_ran_id_global
);
unc =
ran_ue_id_2_ue_ngap_context(unc.get()->ran_ue_ngap_id);
unc.get()->gnb_assoc_id = source_assoc_id;
}
*/
// std::shared_ptr<ue_ngap_context> ngc =
// ran_ue_id_2_ue_ngap_context(nc.get()->ran_ue_ngap_id);
// std::shared_ptr<ue_ngap_context> ngc =
// ran_ue_id_2_ue_ngap_context(
source_ran_id_global
);
// ran_ue_id_2_ue_ngap_context(
unc.get()->ran_ue_ngap_id
);
// sctp_s_38412.sctp_send_msg(ngc.get()->gnb_assoc_id, 0, &b);
sctp_s_38412
.
sctp_send_msg
(
unc
.
get
()
->
gnb_assoc_id
,
0
,
&
b
);
}
...
...
@@ -1384,6 +1385,15 @@ void amf_n2::handle_itti_message(itti_handover_notify& itti_msg) {
"gNB with assoc_id (%d) is illegal"
,
itti_msg
.
assoc_id
);
return
;
}
std
::
shared_ptr
<
ue_ngap_context
>
unc
=
{};
if
(
!
is_amf_ue_id_2_ue_ngap_context
(
amf_ue_ngap_id
))
{
Logger
::
amf_n2
().
error
(
"No UE NGAP context with amf_ue_ngap_id (0x%x)"
,
amf_ue_ngap_id
);
return
;
}
unc
=
amf_ue_id_2_ue_ngap_context
(
amf_ue_ngap_id
);
NrCgi_t
NR_CGI
=
{};
Tai_t
TAI
=
{};
if
(
!
itti_msg
.
handovernotify
->
getUserLocationInfoNR
(
NR_CGI
,
TAI
))
{
...
...
@@ -1395,7 +1405,7 @@ void amf_n2::handle_itti_message(itti_handover_notify& itti_msg) {
std
::
make_unique
<
UEContextReleaseCommandMsg
>
();
ueContextReleaseCommand
->
setMessageType
();
ueContextReleaseCommand
->
setUeNgapIdPair
(
amf_ue_ngap_id
,
source_ran_id_global
);
amf_ue_ngap_id
,
unc
.
get
()
->
ran_ue_ngap_id
);
ueContextReleaseCommand
->
setCauseRadioNetwork
(
Ngap_CauseRadioNetwork_successful_handover
);
...
...
@@ -1419,15 +1429,17 @@ void amf_n2::handle_itti_message(itti_handover_notify& itti_msg) {
std::shared_ptr<itti_nsmf_pdusession_update_sm_context>(itti_nsmf_msg);
//int ret = itti_inst->send_msg(i);*/
std
::
shared_ptr
<
ue_ngap_context
>
unc
=
{};
if
(
!
is_ran_ue_id_2_ue_ngap_context
(
ran_ue_ngap_id
))
{
Logger
::
amf_n2
().
debug
(
"Create a new ue ngap context with ran_ue_ngap_id(0x%x)"
,
ran_ue_ngap_id
);
unc
=
std
::
shared_ptr
<
ue_ngap_context
>
(
new
ue_ngap_context
());
set_ran_ue_ngap_id_2_ue_ngap_context
(
ran_ue_ngap_id
,
unc
);
unc
.
get
()
->
gnb_assoc_id
=
ngc
.
get
()
->
gnb_assoc_id
;
if
(
!
is_amf_ue_id_2_ue_ngap_context
(
amf_ue_ngap_id
))
{
Logger
::
amf_n2
().
error
(
"No UE NGAP context with amf_ue_ngap_id (0x%x)"
,
amf_ue_ngap_id
);
return
;
}
unc
=
amf_ue_id_2_ue_ngap_context
(
amf_ue_ngap_id
);
unc
.
get
()
->
ran_ue_ngap_id
=
ran_ue_ngap_id
;
// store new RAN ID
unc
.
get
()
->
ran_ue_ngap_id_temp
=
0
;
// Clear target RAN ID
unc
.
get
()
->
ng_ue_state
=
NGAP_UE_CONNECTED
;
unc
.
get
()
->
gnb_assoc_id
=
ngc
.
get
()
->
gnb_assoc_id
;
set_ran_ue_ngap_id_2_ue_ngap_context
(
ran_ue_ngap_id
,
unc
);
}
//------------------------------------------------------------------------------
...
...
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