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
fc51ad6e
Commit
fc51ad6e
authored
Sep 06, 2022
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Code refactor for PduSessionResourceModifyResponseMsg
parent
40767947
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
56 additions
and
72 deletions
+56
-72
src/amf-app/amf_n2.cpp
src/amf-app/amf_n2.cpp
+1
-0
src/ngap/ngapIEs/PDUSessionResourceModifyItemModRes.hpp
src/ngap/ngapIEs/PDUSessionResourceModifyItemModRes.hpp
+0
-2
src/ngap/ngapIEs/PDUSessionResourceModifyListModRes.cpp
src/ngap/ngapIEs/PDUSessionResourceModifyListModRes.cpp
+22
-33
src/ngap/ngapIEs/PDUSessionResourceModifyListModRes.hpp
src/ngap/ngapIEs/PDUSessionResourceModifyListModRes.hpp
+9
-14
src/ngap/ngapMsgs/PduSessionResourceModifyResponse.cpp
src/ngap/ngapMsgs/PduSessionResourceModifyResponse.cpp
+22
-21
src/ngap/ngapMsgs/PduSessionResourceModifyResponse.hpp
src/ngap/ngapMsgs/PduSessionResourceModifyResponse.hpp
+2
-2
No files found.
src/amf-app/amf_n2.cpp
View file @
fc51ad6e
...
...
@@ -1137,6 +1137,7 @@ void amf_n2::handle_itti_message(
release_cmd_msg
->
setAmfUeNgapId
(
itti_msg
.
amf_ue_ngap_id
);
release_cmd_msg
->
setRanUeNgapId
(
itti_msg
.
ran_ue_ngap_id
);
// TODO: Should be removed
// uint8_t* nas_pdu = (uint8_t*) calloc(1, blength(itti_msg.nas) + 1);
// uint8_t* buf_tmp = (uint8_t*) bdata(itti_msg.nas);
// if (buf_tmp != nullptr) memcpy(nas_pdu, buf_tmp, blength(itti_msg.nas));
...
...
src/ngap/ngapIEs/PDUSessionResourceModifyItemModRes.hpp
View file @
fc51ad6e
...
...
@@ -22,9 +22,7 @@
#ifndef _PDU_SESSION_RESOURCE_MODIFY_ITEM_MOD_RES_H_
#define _PDU_SESSION_RESOURCE_MODIFY_ITEM_MOD_RES_H_
#include "NAS-PDU.hpp"
#include "PDUSessionID.hpp"
#include "S-NSSAI.hpp"
extern
"C"
{
#include "Ngap_PDUSessionResourceModifyItemModRes.h"
...
...
src/ngap/ngapIEs/PDUSessionResourceModifyListModRes.cpp
View file @
fc51ad6e
...
...
@@ -21,9 +21,6 @@
#include "PDUSessionResourceModifyListModRes.hpp"
#include <iostream>
using
namespace
std
;
namespace
ngap
{
//------------------------------------------------------------------------------
...
...
@@ -33,57 +30,49 @@ PDUSessionResourceModifyListModRes::PDUSessionResourceModifyListModRes() {}
PDUSessionResourceModifyListModRes
::~
PDUSessionResourceModifyListModRes
()
{}
//------------------------------------------------------------------------------
void
PDUSessionResourceModifyListModRes
::
setPDUSessionResourceModifyListModRes
(
const
std
::
vector
<
PDUSessionResourceModifyItemModRes
>&
m_pduSessionResourceModifyListModRes
)
{
pduSessionResourceModifyListModRes
=
m_pduSessionResourceModifyListModRes
;
void
PDUSessionResourceModifyListModRes
::
set
(
const
std
::
vector
<
PDUSessionResourceModifyItemModRes
>&
list
)
{
item_list_
=
list
;
}
//------------------------------------------------------------------------------
bool
PDUSessionResourceModifyListModRes
::
encode2PDUSessionResourceModifyListModRes
(
Ngap_PDUSessionResourceModifyListModRes_t
&
m_pduSessionResourceModifyListModRes
)
{
for
(
auto
pdu
:
pduSessionResourceModifyListModRes
)
{
Ngap_PDUSessionResourceModifyItemModRes_t
*
request
=
bool
PDUSessionResourceModifyListModRes
::
encode
(
Ngap_PDUSessionResourceModifyListModRes_t
&
list
)
const
{
for
(
auto
pdu
:
item_list_
)
{
Ngap_PDUSessionResourceModifyItemModRes_t
*
item
=
(
Ngap_PDUSessionResourceModifyItemModRes_t
*
)
calloc
(
1
,
sizeof
(
Ngap_PDUSessionResourceModifyItemModRes_t
));
if
(
!
request
)
return
false
;
if
(
!
pdu
.
encode
(
*
request
))
return
false
;
if
(
ASN_SEQUENCE_ADD
(
&
m_pduSessionResourceModifyListModRes
.
list
,
request
)
!=
0
)
return
false
;
if
(
!
item
)
return
false
;
if
(
!
pdu
.
encode
(
*
item
))
return
false
;
if
(
ASN_SEQUENCE_ADD
(
&
list
.
list
,
item
)
!=
0
)
return
false
;
}
return
true
;
}
//------------------------------------------------------------------------------
bool
PDUSessionResourceModifyListModRes
::
decodefromPDUSessionResourceModifyListModRes
(
Ngap_PDUSessionResourceModifyListModRes_t
&
pduSessionResourceSetupListSURes
)
{
uint32_t
numberofPDUSessions
=
pduSessionResourceSetupListSUR
es
.
list
.
count
;
bool
PDUSessionResourceModifyListModRes
::
decode
(
const
Ngap_PDUSessionResourceModifyListModRes_t
&
pdu_session_resource_modify_list_mod_res
)
{
uint32_t
num_pdu_sessions
=
pdu_session_resource_modify_list_mod_r
es
.
list
.
count
;
for
(
int
i
=
0
;
i
<
num
berofPDUS
essions
;
i
++
)
{
PDUSessionResourceModifyItemModRes
pduSessionResourceModifyItemModRes
=
{};
for
(
int
i
=
0
;
i
<
num
_pdu_s
essions
;
i
++
)
{
PDUSessionResourceModifyItemModRes
item
=
{};
if
(
!
pduSessionResourceModifyItemModRes
.
decode
(
*
pduSessionResourceSetupListSURes
.
list
.
array
[
i
]))
if
(
!
item
.
decode
(
*
pdu_session_resource_modify_list_mod_res
.
list
.
array
[
i
]))
return
false
;
pduSessionResourceModifyListModRes
.
push_back
(
pduSessionResourceModifyItemModRes
);
item_list_
.
push_back
(
item
);
}
return
true
;
}
//------------------------------------------------------------------------------
void
PDUSessionResourceModifyListModRes
::
getPDUSessionResourceModifyListModRes
(
std
::
vector
<
PDUSessionResourceModifyItemModRes
>&
m_pduSessionResourceModifyListModRes
)
{
m_pduSessionResourceModifyListModRes
=
pduSessionResourceModifyListModRes
;
void
PDUSessionResourceModifyListModRes
::
get
(
std
::
vector
<
PDUSessionResourceModifyItemModRes
>&
list
)
const
{
list
=
item_list_
;
}
}
// namespace ngap
src/ngap/ngapIEs/PDUSessionResourceModifyListModRes.hpp
View file @
fc51ad6e
...
...
@@ -36,22 +36,17 @@ class PDUSessionResourceModifyListModRes {
PDUSessionResourceModifyListModRes
();
virtual
~
PDUSessionResourceModifyListModRes
();
void
setPDUSessionResourceModifyListModRes
(
const
std
::
vector
<
PDUSessionResourceModifyItemModRes
>&
m_pduSessionResourceModifyListModRes
);
void
getPDUSessionResourceModifyListModRes
(
std
::
vector
<
PDUSessionResourceModifyItemModRes
>&
m_pduSessionResourceModifyListModRes
);
bool
encode2PDUSessionResourceModifyListModRes
(
Ngap_PDUSessionResourceModifyListModRes_t
&
m_pduSessionResourceModifyListModRes
);
bool
decodefromPDUSessionResourceModifyListModRes
(
Ngap_PDUSessionResourceModifyListModRes_t
&
m_pduSessionResourceModifyListModRes
);
void
set
(
const
std
::
vector
<
PDUSessionResourceModifyItemModRes
>&
m_pduSessionResourceModifyListModRes
);
void
get
(
std
::
vector
<
PDUSessionResourceModifyItemModRes
>&
m_pduSessionResourceModifyListModRes
)
const
;
bool
encode
(
Ngap_PDUSessionResourceModifyListModRes_t
&
m_pduSessionResourceModifyListModRes
)
const
;
bool
decode
(
const
Ngap_PDUSessionResourceModifyListModRes_t
&
m_pduSessionResourceModifyListModRes
);
private:
std
::
vector
<
PDUSessionResourceModifyItemModRes
>
pduSessionResourceModifyListModRes
;
std
::
vector
<
PDUSessionResourceModifyItemModRes
>
item_list_
;
};
}
// namespace ngap
...
...
src/ngap/ngapMsgs/PduSessionResourceModifyResponse.cpp
View file @
fc51ad6e
...
...
@@ -32,7 +32,7 @@ namespace ngap {
//------------------------------------------------------------------------------
PduSessionResourceModifyResponseMsg
::
PduSessionResourceModifyResponseMsg
()
:
NgapUEMessage
()
{
pduSessionResourceModifyList
ModResIsSet
=
false
;
pduSessionResourceModifyList
=
std
::
nullopt
;
setMessageType
(
NgapMessageType
::
PDU_SESSION_RESOURCE_MODIFY_RESPONSE
);
initialize
();
}
...
...
@@ -103,9 +103,8 @@ void PduSessionResourceModifyResponseMsg::setRanUeNgapId(
void
PduSessionResourceModifyResponseMsg
::
setPduSessionResourceModifyResponseList
(
const
std
::
vector
<
PDUSessionResourceModifyResponseItem_t
>&
list
)
{
std
::
vector
<
PDUSessionResourceModifyItemModRes
>
itemModResList
;
// itemModResList.reserve(list.size());
pduSessionResourceModifyListModResIsSet
=
true
;
std
::
vector
<
PDUSessionResourceModifyItemModRes
>
item_mod_res_list
;
// item_mod_res_list.reserve(list.size());
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++
)
{
PDUSessionID
pDUSessionID
=
{};
...
...
@@ -113,11 +112,13 @@ void PduSessionResourceModifyResponseMsg::
pDUSessionID
.
set
(
list
[
i
].
pduSessionId
);
item
.
set
(
pDUSessionID
,
list
[
i
].
pduSessionResourceModifyResponseTransfer
);
item
ModResL
ist
.
push_back
(
item
);
item
_mod_res_l
ist
.
push_back
(
item
);
}
pduSessionResourceModifyList
.
setPDUSessionResourceModifyListModRes
(
itemModResList
);
PDUSessionResourceModifyListModRes
item_list
=
{};
item_list
.
set
(
item_mod_res_list
);
pduSessionResourceModifyList
=
std
::
optional
<
PDUSessionResourceModifyListModRes
>
(
item_list
);
Ngap_PDUSessionResourceModifyResponseIEs_t
*
ie
=
(
Ngap_PDUSessionResourceModifyResponseIEs_t
*
)
calloc
(
...
...
@@ -127,9 +128,8 @@ void PduSessionResourceModifyResponseMsg::
ie
->
value
.
present
=
Ngap_PDUSessionResourceModifyResponseIEs__value_PR_PDUSessionResourceModifyListModRes
;
int
ret
=
pduSessionResourceModifyList
.
encode2PDUSessionResourceModifyListModRes
(
ie
->
value
.
choice
.
PDUSessionResourceModifyListModRes
);
int
ret
=
pduSessionResourceModifyList
.
value
().
encode
(
ie
->
value
.
choice
.
PDUSessionResourceModifyListModRes
);
if
(
!
ret
)
{
Logger
::
ngap
().
error
(
"Encode NGAP PDUSessionResourceModifyListModRes IE error"
);
...
...
@@ -148,18 +148,16 @@ void PduSessionResourceModifyResponseMsg::
bool
PduSessionResourceModifyResponseMsg
::
getPduSessionResourceModifyResponseList
(
std
::
vector
<
PDUSessionResourceModifyResponseItem_t
>&
list
)
{
if
(
!
pduSessionResourceModifyList
ModResIsSet
)
return
false
;
if
(
!
pduSessionResourceModifyList
.
has_value
()
)
return
false
;
std
::
vector
<
PDUSessionResourceModifyItemModRes
>
itemModResList
;
pduSessionResourceModifyList
.
getPDUSessionResourceModifyListModRes
(
itemModResList
);
std
::
vector
<
PDUSessionResourceModifyItemModRes
>
item_mod_res_list
;
pduSessionResourceModifyList
.
value
().
get
(
item_mod_res_list
);
for
(
auto
&
it
:
item
ModResL
ist
)
{
for
(
auto
&
it
:
item
_mod_res_l
ist
)
{
PDUSessionResourceModifyResponseItem_t
response
=
{};
PDUSessionID
pDUSessionID
=
{};
it
.
get
(
pDUSessionID
,
response
.
pduSessionResourceModifyResponseTransfer
);
pDUSessionID
.
get
(
response
.
pduSessionId
);
list
.
push_back
(
response
);
}
...
...
@@ -239,15 +237,18 @@ bool PduSessionResourceModifyResponseMsg::decodeFromPdu(
pduSessionResourceModifyResponseIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
present
==
Ngap_PDUSessionResourceModifyResponseIEs__value_PR_PDUSessionResourceModifyListModRes
)
{
if
(
!
pduSessionResourceModifyList
.
decodefromPDUSessionResourceModifyListModRes
(
pduSessionResourceModifyResponseIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
PDUSessionResourceModifyListModRes
))
{
PDUSessionResourceModifyListModRes
item_list
=
{};
if
(
!
item_list
.
decode
(
pduSessionResourceModifyResponseIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
PDUSessionResourceModifyListModRes
))
{
Logger
::
ngap
().
error
(
"Decoded NGAP PDUSessionResourceModifyListModRes IE error"
);
return
false
;
}
pduSessionResourceModifyList
=
std
::
optional
<
PDUSessionResourceModifyListModRes
>
(
item_list
);
}
else
{
Logger
::
ngap
().
error
(
"Decoded NGAP PDUSessionResourceModifyListModRes IE error"
);
...
...
src/ngap/ngapMsgs/PduSessionResourceModifyResponse.hpp
View file @
fc51ad6e
...
...
@@ -50,8 +50,8 @@ class PduSessionResourceModifyResponseMsg : public NgapUEMessage {
private:
Ngap_PDUSessionResourceModifyResponse_t
*
pduSessionResourceModifyResponseIEs
;
PDUSessionResourceModifyListModRes
pduSessionResourceModifyList
;
// Optional
bool
pduSessionResourceModifyListModResIsSet
;
std
::
optional
<
PDUSessionResourceModifyListModRes
>
pduSessionResourceModifyList
;
// Optional
// TODO: PDUSessionResourceFailedToModifyListModRes (Optional)
// TODO: User Location Information (Optional)
// TODO: Criticality Diagnostics (Optional)
...
...
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