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
ff3d6770
Commit
ff3d6770
authored
Sep 06, 2022
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Code refactoring for PduSessionResourceReleaseCommand
parent
fc51ad6e
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
119 additions
and
132 deletions
+119
-132
src/ngap/ngapIEs/PDUSessionResourceToReleaseItemRelCmd.cpp
src/ngap/ngapIEs/PDUSessionResourceToReleaseItemRelCmd.cpp
+24
-27
src/ngap/ngapIEs/PDUSessionResourceToReleaseItemRelCmd.hpp
src/ngap/ngapIEs/PDUSessionResourceToReleaseItemRelCmd.hpp
+13
-15
src/ngap/ngapIEs/PDUSessionResourceToReleaseListRelCmd.cpp
src/ngap/ngapIEs/PDUSessionResourceToReleaseListRelCmd.cpp
+21
-24
src/ngap/ngapIEs/PDUSessionResourceToReleaseListRelCmd.hpp
src/ngap/ngapIEs/PDUSessionResourceToReleaseListRelCmd.hpp
+8
-12
src/ngap/ngapMsgs/PduSessionResourceReleaseCommand.cpp
src/ngap/ngapMsgs/PduSessionResourceReleaseCommand.cpp
+48
-51
src/ngap/ngapMsgs/PduSessionResourceReleaseCommand.hpp
src/ngap/ngapMsgs/PduSessionResourceReleaseCommand.hpp
+5
-3
No files found.
src/ngap/ngapIEs/PDUSessionResourceToReleaseItemRelCmd.cpp
View file @
ff3d6770
...
...
@@ -32,47 +32,44 @@ PDUSessionResourceToReleaseItemRelCmd::
~
PDUSessionResourceToReleaseItemRelCmd
()
{}
//------------------------------------------------------------------------------
void
PDUSessionResourceToReleaseItemRelCmd
::
setPDUSessionResourceToReleaseItemRelCmd
(
const
PDUSessionID
&
m_pDUSessionID
,
const
OCTET_STRING_t
&
m_pDUSessionResourceReleaseCommandTransfer
)
{
pDUSessionID
=
m_pDUSessionID
;
pDUSessionResourceReleaseCommandTransfer
=
m_pDUSessionResourceReleaseCommandTransfer
;
void
PDUSessionResourceToReleaseItemRelCmd
::
set
(
const
PDUSessionID
&
pdu_session_id
,
const
OCTET_STRING_t
&
pdu_session_resource_release_command_transfer
)
{
pdu_session_id_
=
pdu_session_id
;
pdu_session_resource_release_command_transfer_
=
pdu_session_resource_release_command_transfer
;
}
//------------------------------------------------------------------------------
void
PDUSessionResourceToReleaseItemRelCmd
::
getPDUSessionResourceToReleaseItemRelCmd
(
PDUSessionID
&
m_pDUSessionID
,
OCTET_STRING_t
&
m_pDUSessionResourceReleaseCommandTransfer
)
{
m_pDUSessionID
=
pDUSessionID
;
m_pDUSessionResourceReleaseCommandTransfer
=
pDUSessionResourceReleaseCommandTransfer
;
void
PDUSessionResourceToReleaseItemRelCmd
::
get
(
PDUSessionID
&
pdu_session_id
,
OCTET_STRING_t
&
pdu_session_resource_release_command_transfer
)
{
pdu_session_id
=
pdu_session_id_
;
pdu_session_resource_release_command_transfer
=
pdu_session_resource_release_command_transfer_
;
}
//------------------------------------------------------------------------------
bool
PDUSessionResourceToReleaseItemRelCmd
::
encode2PDUSessionResourceToReleaseItemRelCmd
(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t
*
pduSessionResourceToReleaseItemRelCmd
)
{
if
(
!
pDUSessionID
.
encode
(
pduSessionResourceToReleaseItemRelC
md
->
pDUSessionID
))
bool
PDUSessionResourceToReleaseItemRelCmd
::
encode
(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t
*
pdu_session_resource_to_release_item_rel_cmd
)
{
if
(
!
pdu_session_id_
.
encode
(
pdu_session_resource_to_release_item_rel_c
md
->
pDUSessionID
))
return
false
;
pdu
SessionResourceToReleaseItemRelC
md
pdu
_session_resource_to_release_item_rel_c
md
->
pDUSessionResourceReleaseCommandTransfer
=
p
DUSessionResourceReleaseCommandTransfer
;
p
du_session_resource_release_command_transfer_
;
return
true
;
}
//------------------------------------------------------------------------------
bool
PDUSessionResourceToReleaseItemRelCmd
::
decodefromPDUSessionResourceToReleaseItemRelCmd
(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t
*
pduSessionResourceToReleaseItemRelCmd
)
{
pDUSessionResourceReleaseCommandTransfer
=
pduSessionResourceToReleaseItemRelCmd
bool
PDUSessionResourceToReleaseItemRelCmd
::
decode
(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t
*
pdu_session_resource_to_release_item_rel_cmd
)
{
pdu_session_resource_release_command_transfer_
=
pdu_session_resource_to_release_item_rel_cmd
->
pDUSessionResourceReleaseCommandTransfer
;
return
true
;
...
...
src/ngap/ngapIEs/PDUSessionResourceToReleaseItemRelCmd.hpp
View file @
ff3d6770
...
...
@@ -35,23 +35,21 @@ class PDUSessionResourceToReleaseItemRelCmd {
PDUSessionResourceToReleaseItemRelCmd
();
virtual
~
PDUSessionResourceToReleaseItemRelCmd
();
void
setPDUSessionResourceToReleaseItemRelCmd
(
const
PDUSessionID
&
m_pDUSessionID
,
const
OCTET_STRING_t
&
m_pDUSessionResourceReleaseCommandTransfer
);
void
getPDUSessionResourceToReleaseItemRelCmd
(
PDUSessionID
&
m_pDUSessionID
,
OCTET_STRING_t
&
m_pDUSessionResourceReleaseCommandTransfer
);
bool
encode2PDUSessionResourceToReleaseItemRelCmd
(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t
*
pduSessionResourceToReleaseItemRelCmd
);
bool
decodefromPDUSessionResourceToReleaseItemRelCmd
(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t
*
pduSessionResourceToReleaseItemRelCmd
);
void
set
(
const
PDUSessionID
&
pdu_session_id
,
const
OCTET_STRING_t
&
pdu_session_resource_release_command_transfer
);
void
get
(
PDUSessionID
&
pdu_session_id
,
OCTET_STRING_t
&
pdu_session_resource_release_command_transfer
);
bool
encode
(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t
*
pdu_session_resource_to_release_item_rel_cmd
);
bool
decode
(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t
*
pdu_session_resource_to_release_item_rel_cmd
);
private:
PDUSessionID
p
DUSessionID
;
// Mandatory
OCTET_STRING_t
p
DUSessionResourceReleaseCommandTransfer
;
// Mandatory
PDUSessionID
p
du_session_id_
;
// Mandatory
OCTET_STRING_t
p
du_session_resource_release_command_transfer_
;
// Mandatory
};
}
// namespace ngap
...
...
src/ngap/ngapIEs/PDUSessionResourceToReleaseListRelCmd.cpp
View file @
ff3d6770
...
...
@@ -32,48 +32,45 @@ PDUSessionResourceToReleaseListRelCmd::
~
PDUSessionResourceToReleaseListRelCmd
()
{}
//------------------------------------------------------------------------------
void
PDUSessionResourceToReleaseListRelCmd
::
setPDUSessionResourceToReleaseListRelCmd
(
const
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>&
list
)
{
itemRelCmdList
=
list
;
void
PDUSessionResourceToReleaseListRelCmd
::
set
(
const
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>&
list
)
{
item_list_
=
list
;
}
//------------------------------------------------------------------------------
void
PDUSessionResourceToReleaseListRelCmd
::
getPDUSessionResourceToReleaseListRelCmd
(
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>&
list
)
{
list
=
itemRelCmdList
;
void
PDUSessionResourceToReleaseListRelCmd
::
get
(
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>&
list
)
{
list
=
item_list_
;
}
//------------------------------------------------------------------------------
bool
PDUSessionResourceToReleaseListRelCmd
::
encode2PDUSessionResourceToReleaseListRelCmd
(
Ngap_PDUSessionResourceToReleaseListRelCmd_t
*
pduSessionResourceToReleaseListRelCmd
)
{
for
(
auto
&
item
:
itemRelCmdList
)
{
bool
PDUSessionResourceToReleaseListRelCmd
::
encode
(
Ngap_PDUSessionResourceToReleaseListRelCmd_t
*
pdu_session_resource_to_released_list_rel_cmd
)
{
for
(
auto
&
item
:
item_list_
)
{
Ngap_PDUSessionResourceToReleaseItemRelCmd_t
*
rel
=
(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t
*
)
calloc
(
1
,
sizeof
(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t
));
if
(
!
rel
)
return
false
;
if
(
!
item
.
encode
2PDUSessionResourceToReleaseItemRelCmd
(
rel
))
return
false
;
if
(
ASN_SEQUENCE_ADD
(
&
pduSessionResourceToReleaseListRelCmd
->
list
,
rel
)
!=
0
)
if
(
!
item
.
encode
(
rel
))
return
false
;
if
(
ASN_SEQUENCE_ADD
(
&
pdu_session_resource_to_released_list_rel_cmd
->
list
,
rel
)
!=
0
)
return
false
;
}
return
true
;
}
//------------------------------------------------------------------------------
bool
PDUSessionResourceToReleaseListRelCmd
::
decodefromPDUSessionResourceToReleaseListRelCmd
(
Ngap_PDUSessionResourceToReleaseListRelCmd_t
*
pduSessionResourceToReleaseListRelCmd
)
{
for
(
int
i
=
0
;
i
<
pduSessionResourceToReleaseListRelCmd
->
list
.
count
;
i
++
)
{
bool
PDUSessionResourceToReleaseListRelCmd
::
decode
(
Ngap_PDUSessionResourceToReleaseListRelCmd_t
*
pdu_session_resource_to_released_list_rel_cmd
)
{
for
(
int
i
=
0
;
i
<
pdu_session_resource_to_released_list_rel_cmd
->
list
.
count
;
i
++
)
{
PDUSessionResourceToReleaseItemRelCmd
item
=
{};
if
(
!
item
.
decode
fromPDUSessionResourceToReleaseItemRelCmd
(
pdu
SessionResourceToReleaseListRelC
md
->
list
.
array
[
i
]))
if
(
!
item
.
decode
(
pdu
_session_resource_to_released_list_rel_c
md
->
list
.
array
[
i
]))
return
false
;
item
RelCmdList
.
push_back
(
item
);
item
_list_
.
push_back
(
item
);
}
return
true
;
}
...
...
src/ngap/ngapIEs/PDUSessionResourceToReleaseListRelCmd.hpp
View file @
ff3d6770
...
...
@@ -37,20 +37,16 @@ class PDUSessionResourceToReleaseListRelCmd {
PDUSessionResourceToReleaseListRelCmd
();
virtual
~
PDUSessionResourceToReleaseListRelCmd
();
void
setPDUSessionResourceToReleaseListRelCmd
(
const
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>&
list
);
void
getPDUSessionResourceToReleaseListRelCmd
(
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>&
list
);
bool
encode2PDUSessionResourceToReleaseListRelCmd
(
Ngap_PDUSessionResourceToReleaseListRelCmd_t
*
pduSessionResourceToReleaseListRelCmd
);
bool
decodefromPDUSessionResourceToReleaseListRelCmd
(
Ngap_PDUSessionResourceToReleaseListRelCmd_t
*
pduSessionResourceToReleaseListRelCmd
);
void
set
(
const
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>&
list
);
void
get
(
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>&
list
);
bool
encode
(
Ngap_PDUSessionResourceToReleaseListRelCmd_t
*
pduSessionResourceToReleaseListRelCmd
);
bool
decode
(
Ngap_PDUSessionResourceToReleaseListRelCmd_t
*
pduSessionResourceToReleaseListRelCmd
);
private:
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>
item
RelCmdList
;
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>
item
_list_
;
};
}
// namespace ngap
...
...
src/ngap/ngapMsgs/PduSessionResourceReleaseCommand.cpp
View file @
ff3d6770
...
...
@@ -33,8 +33,8 @@ namespace ngap {
PduSessionResourceReleaseCommandMsg
::
PduSessionResourceReleaseCommandMsg
()
:
NgapUEMessage
()
{
pduSessionResourceReleaseCommandIEs
=
nullptr
;
ranPagingPriority
=
nullptr
;
nasPdu
=
nullptr
;
ranPagingPriority
=
std
::
nullopt
;
nasPdu
=
std
::
nullopt
;
setMessageType
(
NgapMessageType
::
PDU_SESSION_RESOURCE_RELEASE_COMMAND
);
initialize
();
...
...
@@ -104,9 +104,9 @@ void PduSessionResourceReleaseCommandMsg::setRanUeNgapId(
//------------------------------------------------------------------------------
void
PduSessionResourceReleaseCommandMsg
::
setRanPagingPriority
(
const
uint8_t
&
priority
)
{
if
(
!
ranPagingPriority
)
ranPagingPriority
=
new
RANPagingPriority
()
;
ranPagingPriority
->
set
(
priority
);
RANPagingPriority
tmp
=
{}
;
tmp
.
set
(
priority
);
ranPagingPriority
=
std
::
optional
<
RANPagingPriority
>
(
tmp
);
Ngap_PDUSessionResourceReleaseCommandIEs_t
*
ie
=
(
Ngap_PDUSessionResourceReleaseCommandIEs_t
*
)
calloc
(
...
...
@@ -116,7 +116,8 @@ void PduSessionResourceReleaseCommandMsg::setRanPagingPriority(
ie
->
value
.
present
=
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_RANPagingPriority
;
int
ret
=
ranPagingPriority
->
encode
(
ie
->
value
.
choice
.
RANPagingPriority
);
int
ret
=
ranPagingPriority
.
value
().
encode
(
ie
->
value
.
choice
.
RANPagingPriority
);
if
(
!
ret
)
{
Logger
::
nas_mm
().
warn
(
"Encode RANPagingPriority IE error"
);
free_wrapper
((
void
**
)
&
ie
);
...
...
@@ -129,16 +130,18 @@ void PduSessionResourceReleaseCommandMsg::setRanPagingPriority(
}
//------------------------------------------------------------------------------
int
PduSessionResourceReleaseCommandMsg
::
getRanPagingPriority
()
{
if
(
!
ranPagingPriority
)
return
-
1
;
return
ranPagingPriority
->
get
();
bool
PduSessionResourceReleaseCommandMsg
::
getRanPagingPriority
(
uint8_t
&
priority
)
{
if
(
!
ranPagingPriority
.
has_value
())
return
false
;
priority
=
ranPagingPriority
.
value
().
get
();
return
true
;
}
//------------------------------------------------------------------------------
void
PduSessionResourceReleaseCommandMsg
::
setNasPdu
(
const
bstring
&
pdu
)
{
if
(
!
nasPdu
)
nasPdu
=
new
NAS_PDU
()
;
nasPdu
->
set
(
pdu
);
NAS_PDU
tmp
=
{}
;
tmp
.
set
(
pdu
);
nasPdu
=
std
::
optional
<
NAS_PDU
>
(
tmp
);
Ngap_PDUSessionResourceReleaseCommandIEs_t
*
ie
=
(
Ngap_PDUSessionResourceReleaseCommandIEs_t
*
)
calloc
(
...
...
@@ -148,7 +151,7 @@ void PduSessionResourceReleaseCommandMsg::setNasPdu(const bstring& pdu) {
ie
->
value
.
present
=
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_NAS_PDU
;
int
ret
=
nasPdu
->
encode
(
ie
->
value
.
choice
.
NAS_PDU
);
int
ret
=
nasPdu
.
value
().
encode
(
ie
->
value
.
choice
.
NAS_PDU
);
if
(
!
ret
)
{
Logger
::
nas_mm
().
warn
(
"encode NAS_PDU IE error"
);
free_wrapper
((
void
**
)
&
ie
);
...
...
@@ -162,26 +165,25 @@ void PduSessionResourceReleaseCommandMsg::setNasPdu(const bstring& pdu) {
//------------------------------------------------------------------------------
bool
PduSessionResourceReleaseCommandMsg
::
getNasPdu
(
bstring
&
pdu
)
{
if
(
!
nasPdu
)
return
false
;
return
nasPdu
->
get
(
pdu
);
if
(
!
nasPdu
.
has_value
()
)
return
false
;
return
nasPdu
.
value
().
get
(
pdu
);
}
//------------------------------------------------------------------------------
void
PduSessionResourceReleaseCommandMsg
::
setPduSessionResourceToReleaseList
(
const
std
::
vector
<
PDUSessionResourceToReleaseItem_t
>&
list
)
{
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>
item
RelCmdL
ist
;
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>
item
_rel_cmd_l
ist
;
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++
)
{
PDUSessionResourceToReleaseItemRelCmd
item
RelC
md
=
{};
PDUSessionID
p
DUSessionID
=
{};
p
DUSessionID
.
set
(
list
[
i
].
pduSessionId
);
item
RelCmd
.
setPDUSessionResourceToReleaseItemRelCmd
(
p
DUSessionID
,
list
[
i
].
pduSessionResourceReleaseCommandTransfer
);
item
RelCmdList
.
push_back
(
itemRelC
md
);
PDUSessionResourceToReleaseItemRelCmd
item
_rel_c
md
=
{};
PDUSessionID
p
du_session_id
=
{};
p
du_session_id
.
set
(
list
[
i
].
pduSessionId
);
item
_rel_cmd
.
set
(
p
du_session_id
,
list
[
i
].
pduSessionResourceReleaseCommandTransfer
);
item
_rel_cmd_list
.
push_back
(
item_rel_c
md
);
}
pduSessionResourceToReleaseList
.
setPDUSessionResourceToReleaseListRelCmd
(
itemRelCmdList
);
pduSessionResourceToReleaseList
.
set
(
item_rel_cmd_list
);
Ngap_PDUSessionResourceReleaseCommandIEs_t
*
ie
=
(
Ngap_PDUSessionResourceReleaseCommandIEs_t
*
)
calloc
(
...
...
@@ -192,9 +194,8 @@ void PduSessionResourceReleaseCommandMsg::setPduSessionResourceToReleaseList(
ie
->
value
.
present
=
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_PDUSessionResourceToReleaseListRelCmd
;
int
ret
=
pduSessionResourceToReleaseList
.
encode2PDUSessionResourceToReleaseListRelCmd
(
&
ie
->
value
.
choice
.
PDUSessionResourceToReleaseListRelCmd
);
int
ret
=
pduSessionResourceToReleaseList
.
encode
(
&
ie
->
value
.
choice
.
PDUSessionResourceToReleaseListRelCmd
);
if
(
!
ret
)
{
Logger
::
nas_mm
().
warn
(
"Encode PDUSessionResourceToReleaseListRelCmd IE error"
);
...
...
@@ -211,17 +212,15 @@ void PduSessionResourceReleaseCommandMsg::setPduSessionResourceToReleaseList(
//------------------------------------------------------------------------------
bool
PduSessionResourceReleaseCommandMsg
::
getPduSessionResourceToReleaseList
(
std
::
vector
<
PDUSessionResourceToReleaseItem_t
>&
list
)
{
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>
itemRelCmdList
;
pduSessionResourceToReleaseList
.
getPDUSessionResourceToReleaseListRelCmd
(
itemRelCmdList
);
std
::
vector
<
PDUSessionResourceToReleaseItemRelCmd
>
item_rel_cmd_list
;
pduSessionResourceToReleaseList
.
get
(
item_rel_cmd_list
);
for
(
auto
&
item
:
item
RelCmdL
ist
)
{
for
(
auto
&
item
:
item
_rel_cmd_l
ist
)
{
PDUSessionResourceToReleaseItem_t
rel
=
{};
PDUSessionID
p
DUSessionID
=
{};
PDUSessionID
p
du_session_id
=
{};
item
.
getPDUSessionResourceToReleaseItemRelCmd
(
pDUSessionID
,
rel
.
pduSessionResourceReleaseCommandTransfer
);
pDUSessionID
.
get
(
rel
.
pduSessionId
);
item
.
get
(
pdu_session_id
,
rel
.
pduSessionResourceReleaseCommandTransfer
);
pdu_session_id
.
get
(
rel
.
pduSessionId
);
list
.
push_back
(
rel
);
}
...
...
@@ -303,14 +302,14 @@ bool PduSessionResourceReleaseCommandMsg::decodeFromPdu(
pduSessionResourceReleaseCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
present
==
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_RANPagingPriority
)
{
ranPagingPriority
=
new
RANPagingPriority
();
if
(
!
ranPagingPriority
->
decode
(
pduSessionResourceReleaseCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
RANPagingPriority
))
{
RANPagingPriority
tmp
=
{};
if
(
!
tmp
.
decode
(
pduSessionResourceReleaseCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
RANPagingPriority
))
{
Logger
::
nas_mm
().
warn
(
"Decoded NGAP RANPagingPriority IE error"
);
return
false
;
}
ranPagingPriority
=
std
::
optional
<
RANPagingPriority
>
(
tmp
);
}
else
{
Logger
::
nas_mm
().
warn
(
"Decoded NGAP RANPagingPriority IE error"
);
return
false
;
...
...
@@ -323,14 +322,14 @@ bool PduSessionResourceReleaseCommandMsg::decodeFromPdu(
pduSessionResourceReleaseCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
present
==
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_NAS_PDU
)
{
nasPdu
=
new
NAS_PDU
();
if
(
!
nasPdu
->
decode
(
pduSessionResourceReleaseCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
NAS_PDU
))
{
NAS_PDU
tmp
=
{};
if
(
!
tmp
.
decode
(
pduSessionResourceReleaseCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
NAS_PDU
))
{
Logger
::
nas_mm
().
warn
(
"Decoded NGAP NAS_PDU IE error"
);
return
false
;
}
nasPdu
=
std
::
optional
<
NAS_PDU
>
(
tmp
);
}
else
{
Logger
::
nas_mm
().
warn
(
"Decoded NGAP NAS_PDU IE error"
);
return
false
;
...
...
@@ -343,12 +342,10 @@ bool PduSessionResourceReleaseCommandMsg::decodeFromPdu(
pduSessionResourceReleaseCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
present
==
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_PDUSessionResourceToReleaseListRelCmd
)
{
if
(
!
pduSessionResourceToReleaseList
.
decodefromPDUSessionResourceToReleaseListRelCmd
(
&
pduSessionResourceReleaseCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
PDUSessionResourceToReleaseListRelCmd
))
{
if
(
!
pduSessionResourceToReleaseList
.
decode
(
&
pduSessionResourceReleaseCommandIEs
->
protocolIEs
.
list
.
array
[
i
]
->
value
.
choice
.
PDUSessionResourceToReleaseListRelCmd
))
{
Logger
::
nas_mm
().
warn
(
"Decoded NGAP PDUSessionResourceToReleaseListRelCmd IE error"
);
return
false
;
...
...
src/ngap/ngapMsgs/PduSessionResourceReleaseCommand.hpp
View file @
ff3d6770
...
...
@@ -28,6 +28,8 @@
#include "NAS-PDU.hpp"
#include "NgapUEMessage.hpp"
#include <optional>
namespace
ngap
{
class
PduSessionResourceReleaseCommandMsg
:
public
NgapUEMessage
{
...
...
@@ -42,7 +44,7 @@ class PduSessionResourceReleaseCommandMsg : public NgapUEMessage {
bool
decodeFromPdu
(
Ngap_NGAP_PDU_t
*
ngapMsgPdu
)
override
;
void
setRanPagingPriority
(
const
uint8_t
&
priority
);
int
getRanPagingPriority
(
);
bool
getRanPagingPriority
(
uint8_t
&
priority
);
void
setNasPdu
(
const
bstring
&
pdu
);
bool
getNasPdu
(
bstring
&
pdu
);
...
...
@@ -55,8 +57,8 @@ class PduSessionResourceReleaseCommandMsg : public NgapUEMessage {
private:
Ngap_PDUSessionResourceReleaseCommand_t
*
pduSessionResourceReleaseCommandIEs
;
RANPagingPriority
*
ranPagingPriority
;
// Optional
NAS_PDU
*
nasPdu
;
// Optional
std
::
optional
<
RANPagingPriority
>
ranPagingPriority
;
// Optional
std
::
optional
<
NAS_PDU
>
nasPdu
;
// Optional
PDUSessionResourceToReleaseListRelCmd
pduSessionResourceToReleaseList
;
// Mandatory
};
...
...
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