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
49a301cf
Commit
49a301cf
authored
Aug 26, 2022
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor NGResetAck
parent
ece642c2
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
24 additions
and
55 deletions
+24
-55
src/ngap/ngapIEs/UEAssociateLogicalNGConnectionList.cpp
src/ngap/ngapIEs/UEAssociateLogicalNGConnectionList.cpp
+5
-11
src/ngap/ngapIEs/UEAssociatedLogicalNGConnectionItem.cpp
src/ngap/ngapIEs/UEAssociatedLogicalNGConnectionItem.cpp
+0
-23
src/ngap/ngapMsgs/NGResetAck.cpp
src/ngap/ngapMsgs/NGResetAck.cpp
+15
-19
src/ngap/ngapMsgs/NGResetAck.hpp
src/ngap/ngapMsgs/NGResetAck.hpp
+4
-2
No files found.
src/ngap/ngapIEs/UEAssociateLogicalNGConnectionList.cpp
View file @
49a301cf
...
...
@@ -54,31 +54,25 @@ void UEAssociatedLogicalNGConnectionList::addItem(
//------------------------------------------------------------------------------
bool
UEAssociatedLogicalNGConnectionList
::
encode
(
Ngap_UE_associatedLogicalNG_connectionList_t
*
ue_associatedLogicalNG_connectionList
)
{
Ngap_UE_associatedLogicalNG_connectionList_t
*
list
)
{
for
(
auto
l
:
list_
)
{
Ngap_UE_associatedLogicalNG_connectionItem_t
*
item
=
(
Ngap_UE_associatedLogicalNG_connectionItem_t
*
)
calloc
(
1
,
sizeof
(
Ngap_UE_associatedLogicalNG_connectionItem_t
));
if
(
!
item
)
return
false
;
if
(
!
l
.
encode
(
*
item
))
return
false
;
// if (!ueAssociatedLogicalNGConnectionItem[i].encode(*item)) return false;
if
(
ASN_SEQUENCE_ADD
(
&
ue_associatedLogicalNG_connectionList
->
list
,
item
)
!=
0
)
return
false
;
if
(
ASN_SEQUENCE_ADD
(
&
list
->
list
,
item
)
!=
0
)
return
false
;
}
return
true
;
}
//------------------------------------------------------------------------------
bool
UEAssociatedLogicalNGConnectionList
::
decode
(
Ngap_UE_associatedLogicalNG_connectionList_t
*
ue_associatedLogicalNG_connectionList
)
{
Ngap_UE_associatedLogicalNG_connectionList_t
*
list
)
{
list_
.
clear
();
for
(
int
i
=
0
;
i
<
ue_associatedLogicalNG_connectionL
ist
->
list
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
l
ist
->
list
.
count
;
i
++
)
{
UEAssociatedLogicalNGConnectionItem
item
=
{};
if
(
!
item
.
decode
(
ue_associatedLogicalNG_connectionList
->
list
.
array
[
i
]))
return
false
;
if
(
!
item
.
decode
(
list
->
list
.
array
[
i
]))
return
false
;
list_
.
push_back
(
item
);
}
return
true
;
...
...
src/ngap/ngapIEs/UEAssociatedLogicalNGConnectionItem.cpp
View file @
49a301cf
...
...
@@ -124,30 +124,7 @@ bool UEAssociatedLogicalNGConnectionItem::encode(
ran_ue_ngap_id_
.
value
().
encode
(
*
item
->
rAN_UE_NGAP_ID
);
return
true
;
}
/*
//------------------------------------------------------------------------------
bool UEAssociatedLogicalNGConnectionItem::encode(
UEAssociatedLogicalNGConnectionItem& item) {
item.amfUeNgapId = new AMF_UE_NGAP_ID();
item.amfUeNgapId = amfUeNgapId;
item.ranUeNgapId = new RAN_UE_NGAP_ID();
item.ranUeNgapId = ranUeNgapId;
return true;
}
//------------------------------------------------------------------------------
bool UEAssociatedLogicalNGConnectionItem::decode(
UEAssociatedLogicalNGConnectionItem& item) {
if (!amf_ue_ngap_id_.has_value()){
amf_ue_ngap_id_ = std::make_optional<AMF_UE_NGAP_ID>();
}
amf_ue_ngap_id_.value().set(item.amfUeNgapId->get());
if (!ranUeNgapId) ranUeNgapId = new RAN_UE_NGAP_ID();
ran_ue_ngap_id_.value().set(item.ranUeNgapId->getRanUeNgapId());
return true;
}
*/
//------------------------------------------------------------------------------
bool
UEAssociatedLogicalNGConnectionItem
::
decode
(
Ngap_UE_associatedLogicalNG_connectionItem_t
*
item
)
{
...
...
src/ngap/ngapMsgs/NGResetAck.cpp
View file @
49a301cf
...
...
@@ -33,15 +33,13 @@ namespace ngap {
//------------------------------------------------------------------------------
NGResetAckMsg
::
NGResetAckMsg
()
{
ngResetAckIEs
=
nullptr
;
ueAssociatedLogicalNGConnectionList
=
nullptr
;
ueAssociatedLogicalNGConnectionList
=
std
::
nullopt
;
CriticalityDiagnostics
=
nullptr
;
NgapMessage
::
setMessageType
(
NgapMessageType
::
NG_RESET_ACKNOWLEDGE
);
initialize
();
}
//------------------------------------------------------------------------------
NGResetAckMsg
::~
NGResetAckMsg
()
{
if
(
ueAssociatedLogicalNGConnectionList
)
free_wrapper
((
void
**
)
&
ueAssociatedLogicalNGConnectionList
);
if
(
CriticalityDiagnostics
)
free_wrapper
((
void
**
)
&
CriticalityDiagnostics
);
}
...
...
@@ -54,20 +52,19 @@ void NGResetAckMsg::initialize() {
//------------------------------------------------------------------------------
void
NGResetAckMsg
::
setUE_associatedLogicalNG_connectionList
(
std
::
vector
<
UEAssociatedLogicalNGConnectionItem
>&
list
)
{
if
(
!
ueAssociatedLogicalNGConnectionList
)
{
ueAssociatedLogicalNGConnectionList
=
(
UEAssociatedLogicalNGConnectionList
*
)
calloc
(
1
,
sizeof
(
UEAssociatedLogicalNGConnectionList
));
}
ueAssociatedLogicalNGConnectionList
->
set
(
list
);
UEAssociatedLogicalNGConnectionList
tmp
=
{};
tmp
.
set
(
list
);
ueAssociatedLogicalNGConnectionList
=
std
::
make_optional
<
UEAssociatedLogicalNGConnectionList
>
(
tmp
);
addUE_associatedLogicalNG_connectionList
();
}
//------------------------------------------------------------------------------
void
NGResetAckMsg
::
getUE_associatedLogicalNG_connectionList
(
std
::
vector
<
UEAssociatedLogicalNGConnectionItem
>&
list
)
{
if
(
ueAssociatedLogicalNGConnectionList
)
{
ueAssociatedLogicalNGConnectionList
->
get
(
list
);
if
(
ueAssociatedLogicalNGConnectionList
.
has_value
()
)
{
ueAssociatedLogicalNGConnectionList
.
value
().
get
(
list
);
}
}
...
...
@@ -80,7 +77,7 @@ void NGResetAckMsg::addUE_associatedLogicalNG_connectionList() {
ie
->
value
.
present
=
Ngap_NGResetAcknowledgeIEs__value_PR_UE_associatedLogicalNG_connectionList
;
if
(
!
ueAssociatedLogicalNGConnectionList
->
encode
(
if
(
!
ueAssociatedLogicalNGConnectionList
.
value
().
encode
(
&
ie
->
value
.
choice
.
UE_associatedLogicalNG_connectionList
))
{
Logger
::
ngap
().
error
(
"Encode NGAP UE_associatedLogicalNG_connectionList IE error"
);
...
...
@@ -115,18 +112,17 @@ bool NGResetAckMsg::decodeFromPdu(Ngap_NGAP_PDU_t* ngapMsgPdu) {
Ngap_Criticality_ignore
&&
ngResetAckIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
present
==
Ngap_NGResetAcknowledgeIEs__value_PR_UE_associatedLogicalNG_connectionList
)
{
ueAssociatedLogicalNGConnectionList
=
new
UEAssociatedLogicalNGConnectionList
();
if
(
!
ueAssociatedLogicalNGConnectionList
->
decode
(
&
ngResetAckIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
UE_associatedLogicalNG_connectionList
))
{
UEAssociatedLogicalNGConnectionList
tmp
=
{};
if
(
!
tmp
.
decode
(
&
ngResetAckIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
UE_associatedLogicalNG_connectionList
))
{
Logger
::
ngap
().
error
(
"Decoded NGAP UE_associatedLogicalNG_connectionList IE "
"error"
);
return
false
;
}
ueAssociatedLogicalNGConnectionList
=
std
::
make_optional
<
UEAssociatedLogicalNGConnectionList
>
(
tmp
);
}
else
{
Logger
::
ngap
().
error
(
"Decoded NGAP UE_associatedLogicalNG_connectionList IE "
...
...
src/ngap/ngapMsgs/NGResetAck.hpp
View file @
49a301cf
...
...
@@ -27,6 +27,8 @@
#include "UEAssociatedLogicalNGConnectionList.hpp"
#include "NgapMessage.hpp"
#include <optional>
namespace
ngap
{
class
NGResetAckMsg
:
public
NgapMessage
{
...
...
@@ -49,9 +51,9 @@ class NGResetAckMsg : public NgapMessage {
private:
Ngap_NGResetAcknowledge_t
*
ngResetAckIEs
;
UEAssociatedLogicalNGConnectionList
*
std
::
optional
<
UEAssociatedLogicalNGConnectionList
>
ueAssociatedLogicalNGConnectionList
;
// Optional
Ngap_CriticalityDiagnostics_t
*
CriticalityDiagnostics
;
// Optional
Ngap_CriticalityDiagnostics_t
*
CriticalityDiagnostics
;
//
TODO:
Optional
};
}
// namespace ngap
...
...
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