Commit ff3d6770 authored by Tien Thinh NGUYEN's avatar Tien Thinh NGUYEN

Code refactoring for PduSessionResourceReleaseCommand

parent fc51ad6e
...@@ -32,47 +32,44 @@ PDUSessionResourceToReleaseItemRelCmd:: ...@@ -32,47 +32,44 @@ PDUSessionResourceToReleaseItemRelCmd::
~PDUSessionResourceToReleaseItemRelCmd() {} ~PDUSessionResourceToReleaseItemRelCmd() {}
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void PDUSessionResourceToReleaseItemRelCmd:: void PDUSessionResourceToReleaseItemRelCmd::set(
setPDUSessionResourceToReleaseItemRelCmd( const PDUSessionID& pdu_session_id,
const PDUSessionID& m_pDUSessionID, const OCTET_STRING_t& pdu_session_resource_release_command_transfer) {
const OCTET_STRING_t& m_pDUSessionResourceReleaseCommandTransfer) { pdu_session_id_ = pdu_session_id;
pDUSessionID = m_pDUSessionID; pdu_session_resource_release_command_transfer_ =
pDUSessionResourceReleaseCommandTransfer = pdu_session_resource_release_command_transfer;
m_pDUSessionResourceReleaseCommandTransfer;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void PDUSessionResourceToReleaseItemRelCmd:: void PDUSessionResourceToReleaseItemRelCmd::get(
getPDUSessionResourceToReleaseItemRelCmd( PDUSessionID& pdu_session_id,
PDUSessionID& m_pDUSessionID, OCTET_STRING_t& pdu_session_resource_release_command_transfer) {
OCTET_STRING_t& m_pDUSessionResourceReleaseCommandTransfer) { pdu_session_id = pdu_session_id_;
m_pDUSessionID = pDUSessionID; pdu_session_resource_release_command_transfer =
m_pDUSessionResourceReleaseCommandTransfer = pdu_session_resource_release_command_transfer_;
pDUSessionResourceReleaseCommandTransfer;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool PDUSessionResourceToReleaseItemRelCmd:: bool PDUSessionResourceToReleaseItemRelCmd::encode(
encode2PDUSessionResourceToReleaseItemRelCmd(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t* Ngap_PDUSessionResourceToReleaseItemRelCmd_t*
pduSessionResourceToReleaseItemRelCmd) { pdu_session_resource_to_release_item_rel_cmd) {
if (!pDUSessionID.encode(pduSessionResourceToReleaseItemRelCmd->pDUSessionID)) if (!pdu_session_id_.encode(
pdu_session_resource_to_release_item_rel_cmd->pDUSessionID))
return false; return false;
pduSessionResourceToReleaseItemRelCmd pdu_session_resource_to_release_item_rel_cmd
->pDUSessionResourceReleaseCommandTransfer = ->pDUSessionResourceReleaseCommandTransfer =
pDUSessionResourceReleaseCommandTransfer; pdu_session_resource_release_command_transfer_;
return true; return true;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool PDUSessionResourceToReleaseItemRelCmd:: bool PDUSessionResourceToReleaseItemRelCmd::decode(
decodefromPDUSessionResourceToReleaseItemRelCmd(
Ngap_PDUSessionResourceToReleaseItemRelCmd_t* Ngap_PDUSessionResourceToReleaseItemRelCmd_t*
pduSessionResourceToReleaseItemRelCmd) { pdu_session_resource_to_release_item_rel_cmd) {
pDUSessionResourceReleaseCommandTransfer = pdu_session_resource_release_command_transfer_ =
pduSessionResourceToReleaseItemRelCmd pdu_session_resource_to_release_item_rel_cmd
->pDUSessionResourceReleaseCommandTransfer; ->pDUSessionResourceReleaseCommandTransfer;
return true; return true;
......
...@@ -35,23 +35,21 @@ class PDUSessionResourceToReleaseItemRelCmd { ...@@ -35,23 +35,21 @@ class PDUSessionResourceToReleaseItemRelCmd {
PDUSessionResourceToReleaseItemRelCmd(); PDUSessionResourceToReleaseItemRelCmd();
virtual ~PDUSessionResourceToReleaseItemRelCmd(); virtual ~PDUSessionResourceToReleaseItemRelCmd();
void setPDUSessionResourceToReleaseItemRelCmd( void set(
const PDUSessionID& m_pDUSessionID, const PDUSessionID& pdu_session_id,
const OCTET_STRING_t& m_pDUSessionResourceReleaseCommandTransfer); const OCTET_STRING_t& pdu_session_resource_release_command_transfer);
void getPDUSessionResourceToReleaseItemRelCmd( void get(
PDUSessionID& m_pDUSessionID, PDUSessionID& pdu_session_id,
OCTET_STRING_t& m_pDUSessionResourceReleaseCommandTransfer); OCTET_STRING_t& pdu_session_resource_release_command_transfer);
bool encode2PDUSessionResourceToReleaseItemRelCmd( bool encode(Ngap_PDUSessionResourceToReleaseItemRelCmd_t*
Ngap_PDUSessionResourceToReleaseItemRelCmd_t* pdu_session_resource_to_release_item_rel_cmd);
pduSessionResourceToReleaseItemRelCmd); bool decode(Ngap_PDUSessionResourceToReleaseItemRelCmd_t*
bool decodefromPDUSessionResourceToReleaseItemRelCmd( pdu_session_resource_to_release_item_rel_cmd);
Ngap_PDUSessionResourceToReleaseItemRelCmd_t*
pduSessionResourceToReleaseItemRelCmd);
private: private:
PDUSessionID pDUSessionID; // Mandatory PDUSessionID pdu_session_id_; // Mandatory
OCTET_STRING_t pDUSessionResourceReleaseCommandTransfer; // Mandatory OCTET_STRING_t pdu_session_resource_release_command_transfer_; // Mandatory
}; };
} // namespace ngap } // namespace ngap
......
...@@ -32,48 +32,45 @@ PDUSessionResourceToReleaseListRelCmd:: ...@@ -32,48 +32,45 @@ PDUSessionResourceToReleaseListRelCmd::
~PDUSessionResourceToReleaseListRelCmd() {} ~PDUSessionResourceToReleaseListRelCmd() {}
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void PDUSessionResourceToReleaseListRelCmd:: void PDUSessionResourceToReleaseListRelCmd::set(
setPDUSessionResourceToReleaseListRelCmd(
const std::vector<PDUSessionResourceToReleaseItemRelCmd>& list) { const std::vector<PDUSessionResourceToReleaseItemRelCmd>& list) {
itemRelCmdList = list; item_list_ = list;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void PDUSessionResourceToReleaseListRelCmd:: void PDUSessionResourceToReleaseListRelCmd::get(
getPDUSessionResourceToReleaseListRelCmd(
std::vector<PDUSessionResourceToReleaseItemRelCmd>& list) { std::vector<PDUSessionResourceToReleaseItemRelCmd>& list) {
list = itemRelCmdList; list = item_list_;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool PDUSessionResourceToReleaseListRelCmd:: bool PDUSessionResourceToReleaseListRelCmd::encode(
encode2PDUSessionResourceToReleaseListRelCmd(
Ngap_PDUSessionResourceToReleaseListRelCmd_t* Ngap_PDUSessionResourceToReleaseListRelCmd_t*
pduSessionResourceToReleaseListRelCmd) { pdu_session_resource_to_released_list_rel_cmd) {
for (auto& item : itemRelCmdList) { for (auto& item : item_list_) {
Ngap_PDUSessionResourceToReleaseItemRelCmd_t* rel = Ngap_PDUSessionResourceToReleaseItemRelCmd_t* rel =
(Ngap_PDUSessionResourceToReleaseItemRelCmd_t*) calloc( (Ngap_PDUSessionResourceToReleaseItemRelCmd_t*) calloc(
1, sizeof(Ngap_PDUSessionResourceToReleaseItemRelCmd_t)); 1, sizeof(Ngap_PDUSessionResourceToReleaseItemRelCmd_t));
if (!rel) return false; if (!rel) return false;
if (!item.encode2PDUSessionResourceToReleaseItemRelCmd(rel)) return false; if (!item.encode(rel)) return false;
if (ASN_SEQUENCE_ADD(&pduSessionResourceToReleaseListRelCmd->list, rel) != if (ASN_SEQUENCE_ADD(
0) &pdu_session_resource_to_released_list_rel_cmd->list, rel) != 0)
return false; return false;
} }
return true; return true;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool PDUSessionResourceToReleaseListRelCmd:: bool PDUSessionResourceToReleaseListRelCmd::decode(
decodefromPDUSessionResourceToReleaseListRelCmd(
Ngap_PDUSessionResourceToReleaseListRelCmd_t* Ngap_PDUSessionResourceToReleaseListRelCmd_t*
pduSessionResourceToReleaseListRelCmd) { pdu_session_resource_to_released_list_rel_cmd) {
for (int i = 0; i < pduSessionResourceToReleaseListRelCmd->list.count; i++) { for (int i = 0; i < pdu_session_resource_to_released_list_rel_cmd->list.count;
i++) {
PDUSessionResourceToReleaseItemRelCmd item = {}; PDUSessionResourceToReleaseItemRelCmd item = {};
if (!item.decodefromPDUSessionResourceToReleaseItemRelCmd( if (!item.decode(
pduSessionResourceToReleaseListRelCmd->list.array[i])) pdu_session_resource_to_released_list_rel_cmd->list.array[i]))
return false; return false;
itemRelCmdList.push_back(item); item_list_.push_back(item);
} }
return true; return true;
} }
......
...@@ -37,20 +37,16 @@ class PDUSessionResourceToReleaseListRelCmd { ...@@ -37,20 +37,16 @@ class PDUSessionResourceToReleaseListRelCmd {
PDUSessionResourceToReleaseListRelCmd(); PDUSessionResourceToReleaseListRelCmd();
virtual ~PDUSessionResourceToReleaseListRelCmd(); virtual ~PDUSessionResourceToReleaseListRelCmd();
void setPDUSessionResourceToReleaseListRelCmd( void set(const std::vector<PDUSessionResourceToReleaseItemRelCmd>& list);
const std::vector<PDUSessionResourceToReleaseItemRelCmd>& list); void get(std::vector<PDUSessionResourceToReleaseItemRelCmd>& list);
void getPDUSessionResourceToReleaseListRelCmd(
std::vector<PDUSessionResourceToReleaseItemRelCmd>& list);
bool encode2PDUSessionResourceToReleaseListRelCmd( bool encode(Ngap_PDUSessionResourceToReleaseListRelCmd_t*
Ngap_PDUSessionResourceToReleaseListRelCmd_t*
pduSessionResourceToReleaseListRelCmd); pduSessionResourceToReleaseListRelCmd);
bool decodefromPDUSessionResourceToReleaseListRelCmd( bool decode(Ngap_PDUSessionResourceToReleaseListRelCmd_t*
Ngap_PDUSessionResourceToReleaseListRelCmd_t*
pduSessionResourceToReleaseListRelCmd); pduSessionResourceToReleaseListRelCmd);
private: private:
std::vector<PDUSessionResourceToReleaseItemRelCmd> itemRelCmdList; std::vector<PDUSessionResourceToReleaseItemRelCmd> item_list_;
}; };
} // namespace ngap } // namespace ngap
......
...@@ -33,8 +33,8 @@ namespace ngap { ...@@ -33,8 +33,8 @@ namespace ngap {
PduSessionResourceReleaseCommandMsg::PduSessionResourceReleaseCommandMsg() PduSessionResourceReleaseCommandMsg::PduSessionResourceReleaseCommandMsg()
: NgapUEMessage() { : NgapUEMessage() {
pduSessionResourceReleaseCommandIEs = nullptr; pduSessionResourceReleaseCommandIEs = nullptr;
ranPagingPriority = nullptr; ranPagingPriority = std::nullopt;
nasPdu = nullptr; nasPdu = std::nullopt;
setMessageType(NgapMessageType::PDU_SESSION_RESOURCE_RELEASE_COMMAND); setMessageType(NgapMessageType::PDU_SESSION_RESOURCE_RELEASE_COMMAND);
initialize(); initialize();
...@@ -104,9 +104,9 @@ void PduSessionResourceReleaseCommandMsg::setRanUeNgapId( ...@@ -104,9 +104,9 @@ void PduSessionResourceReleaseCommandMsg::setRanUeNgapId(
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void PduSessionResourceReleaseCommandMsg::setRanPagingPriority( void PduSessionResourceReleaseCommandMsg::setRanPagingPriority(
const uint8_t& priority) { const uint8_t& priority) {
if (!ranPagingPriority) ranPagingPriority = new RANPagingPriority(); RANPagingPriority tmp = {};
tmp.set(priority);
ranPagingPriority->set(priority); ranPagingPriority = std::optional<RANPagingPriority>(tmp);
Ngap_PDUSessionResourceReleaseCommandIEs_t* ie = Ngap_PDUSessionResourceReleaseCommandIEs_t* ie =
(Ngap_PDUSessionResourceReleaseCommandIEs_t*) calloc( (Ngap_PDUSessionResourceReleaseCommandIEs_t*) calloc(
...@@ -116,7 +116,8 @@ void PduSessionResourceReleaseCommandMsg::setRanPagingPriority( ...@@ -116,7 +116,8 @@ void PduSessionResourceReleaseCommandMsg::setRanPagingPriority(
ie->value.present = ie->value.present =
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_RANPagingPriority; Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_RANPagingPriority;
int ret = ranPagingPriority->encode(ie->value.choice.RANPagingPriority); int ret =
ranPagingPriority.value().encode(ie->value.choice.RANPagingPriority);
if (!ret) { if (!ret) {
Logger::nas_mm().warn("Encode RANPagingPriority IE error"); Logger::nas_mm().warn("Encode RANPagingPriority IE error");
free_wrapper((void**) &ie); free_wrapper((void**) &ie);
...@@ -129,16 +130,18 @@ void PduSessionResourceReleaseCommandMsg::setRanPagingPriority( ...@@ -129,16 +130,18 @@ void PduSessionResourceReleaseCommandMsg::setRanPagingPriority(
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
int PduSessionResourceReleaseCommandMsg::getRanPagingPriority() { bool PduSessionResourceReleaseCommandMsg::getRanPagingPriority(
if (!ranPagingPriority) return -1; uint8_t& priority) {
return ranPagingPriority->get(); if (!ranPagingPriority.has_value()) return false;
priority = ranPagingPriority.value().get();
return true;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void PduSessionResourceReleaseCommandMsg::setNasPdu(const bstring& pdu) { void PduSessionResourceReleaseCommandMsg::setNasPdu(const bstring& pdu) {
if (!nasPdu) nasPdu = new NAS_PDU(); NAS_PDU tmp = {};
tmp.set(pdu);
nasPdu->set(pdu); nasPdu = std::optional<NAS_PDU>(tmp);
Ngap_PDUSessionResourceReleaseCommandIEs_t* ie = Ngap_PDUSessionResourceReleaseCommandIEs_t* ie =
(Ngap_PDUSessionResourceReleaseCommandIEs_t*) calloc( (Ngap_PDUSessionResourceReleaseCommandIEs_t*) calloc(
...@@ -148,7 +151,7 @@ void PduSessionResourceReleaseCommandMsg::setNasPdu(const bstring& pdu) { ...@@ -148,7 +151,7 @@ void PduSessionResourceReleaseCommandMsg::setNasPdu(const bstring& pdu) {
ie->value.present = ie->value.present =
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_NAS_PDU; 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) { if (!ret) {
Logger::nas_mm().warn("encode NAS_PDU IE error"); Logger::nas_mm().warn("encode NAS_PDU IE error");
free_wrapper((void**) &ie); free_wrapper((void**) &ie);
...@@ -162,26 +165,25 @@ void PduSessionResourceReleaseCommandMsg::setNasPdu(const bstring& pdu) { ...@@ -162,26 +165,25 @@ void PduSessionResourceReleaseCommandMsg::setNasPdu(const bstring& pdu) {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool PduSessionResourceReleaseCommandMsg::getNasPdu(bstring& pdu) { bool PduSessionResourceReleaseCommandMsg::getNasPdu(bstring& pdu) {
if (!nasPdu) return false; if (!nasPdu.has_value()) return false;
return nasPdu->get(pdu); return nasPdu.value().get(pdu);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void PduSessionResourceReleaseCommandMsg::setPduSessionResourceToReleaseList( void PduSessionResourceReleaseCommandMsg::setPduSessionResourceToReleaseList(
const std::vector<PDUSessionResourceToReleaseItem_t>& list) { const std::vector<PDUSessionResourceToReleaseItem_t>& list) {
std::vector<PDUSessionResourceToReleaseItemRelCmd> itemRelCmdList; std::vector<PDUSessionResourceToReleaseItemRelCmd> item_rel_cmd_list;
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
PDUSessionResourceToReleaseItemRelCmd itemRelCmd = {}; PDUSessionResourceToReleaseItemRelCmd item_rel_cmd = {};
PDUSessionID pDUSessionID = {}; PDUSessionID pdu_session_id = {};
pDUSessionID.set(list[i].pduSessionId); pdu_session_id.set(list[i].pduSessionId);
itemRelCmd.setPDUSessionResourceToReleaseItemRelCmd( item_rel_cmd.set(
pDUSessionID, list[i].pduSessionResourceReleaseCommandTransfer); pdu_session_id, list[i].pduSessionResourceReleaseCommandTransfer);
itemRelCmdList.push_back(itemRelCmd); item_rel_cmd_list.push_back(item_rel_cmd);
} }
pduSessionResourceToReleaseList.setPDUSessionResourceToReleaseListRelCmd( pduSessionResourceToReleaseList.set(item_rel_cmd_list);
itemRelCmdList);
Ngap_PDUSessionResourceReleaseCommandIEs_t* ie = Ngap_PDUSessionResourceReleaseCommandIEs_t* ie =
(Ngap_PDUSessionResourceReleaseCommandIEs_t*) calloc( (Ngap_PDUSessionResourceReleaseCommandIEs_t*) calloc(
...@@ -192,8 +194,7 @@ void PduSessionResourceReleaseCommandMsg::setPduSessionResourceToReleaseList( ...@@ -192,8 +194,7 @@ void PduSessionResourceReleaseCommandMsg::setPduSessionResourceToReleaseList(
ie->value.present = ie->value.present =
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_PDUSessionResourceToReleaseListRelCmd; Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_PDUSessionResourceToReleaseListRelCmd;
int ret = pduSessionResourceToReleaseList int ret = pduSessionResourceToReleaseList.encode(
.encode2PDUSessionResourceToReleaseListRelCmd(
&ie->value.choice.PDUSessionResourceToReleaseListRelCmd); &ie->value.choice.PDUSessionResourceToReleaseListRelCmd);
if (!ret) { if (!ret) {
Logger::nas_mm().warn( Logger::nas_mm().warn(
...@@ -211,17 +212,15 @@ void PduSessionResourceReleaseCommandMsg::setPduSessionResourceToReleaseList( ...@@ -211,17 +212,15 @@ void PduSessionResourceReleaseCommandMsg::setPduSessionResourceToReleaseList(
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool PduSessionResourceReleaseCommandMsg::getPduSessionResourceToReleaseList( bool PduSessionResourceReleaseCommandMsg::getPduSessionResourceToReleaseList(
std::vector<PDUSessionResourceToReleaseItem_t>& list) { std::vector<PDUSessionResourceToReleaseItem_t>& list) {
std::vector<PDUSessionResourceToReleaseItemRelCmd> itemRelCmdList; std::vector<PDUSessionResourceToReleaseItemRelCmd> item_rel_cmd_list;
pduSessionResourceToReleaseList.getPDUSessionResourceToReleaseListRelCmd( pduSessionResourceToReleaseList.get(item_rel_cmd_list);
itemRelCmdList);
for (auto& item : itemRelCmdList) { for (auto& item : item_rel_cmd_list) {
PDUSessionResourceToReleaseItem_t rel = {}; PDUSessionResourceToReleaseItem_t rel = {};
PDUSessionID pDUSessionID = {}; PDUSessionID pdu_session_id = {};
item.getPDUSessionResourceToReleaseItemRelCmd( item.get(pdu_session_id, rel.pduSessionResourceReleaseCommandTransfer);
pDUSessionID, rel.pduSessionResourceReleaseCommandTransfer); pdu_session_id.get(rel.pduSessionId);
pDUSessionID.get(rel.pduSessionId);
list.push_back(rel); list.push_back(rel);
} }
...@@ -303,14 +302,14 @@ bool PduSessionResourceReleaseCommandMsg::decodeFromPdu( ...@@ -303,14 +302,14 @@ bool PduSessionResourceReleaseCommandMsg::decodeFromPdu(
pduSessionResourceReleaseCommandIEs->protocolIEs.list.array[i] pduSessionResourceReleaseCommandIEs->protocolIEs.list.array[i]
->value.present == ->value.present ==
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_RANPagingPriority) { Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_RANPagingPriority) {
ranPagingPriority = new RANPagingPriority(); RANPagingPriority tmp = {};
if (!ranPagingPriority->decode( if (!tmp.decode(pduSessionResourceReleaseCommandIEs->protocolIEs.list
pduSessionResourceReleaseCommandIEs->protocolIEs.list
.array[i] .array[i]
->value.choice.RANPagingPriority)) { ->value.choice.RANPagingPriority)) {
Logger::nas_mm().warn("Decoded NGAP RANPagingPriority IE error"); Logger::nas_mm().warn("Decoded NGAP RANPagingPriority IE error");
return false; return false;
} }
ranPagingPriority = std::optional<RANPagingPriority>(tmp);
} else { } else {
Logger::nas_mm().warn("Decoded NGAP RANPagingPriority IE error"); Logger::nas_mm().warn("Decoded NGAP RANPagingPriority IE error");
return false; return false;
...@@ -323,14 +322,14 @@ bool PduSessionResourceReleaseCommandMsg::decodeFromPdu( ...@@ -323,14 +322,14 @@ bool PduSessionResourceReleaseCommandMsg::decodeFromPdu(
pduSessionResourceReleaseCommandIEs->protocolIEs.list.array[i] pduSessionResourceReleaseCommandIEs->protocolIEs.list.array[i]
->value.present == ->value.present ==
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_NAS_PDU) { Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_NAS_PDU) {
nasPdu = new NAS_PDU(); NAS_PDU tmp = {};
if (!nasPdu->decode( if (!tmp.decode(pduSessionResourceReleaseCommandIEs->protocolIEs.list
pduSessionResourceReleaseCommandIEs->protocolIEs.list
.array[i] .array[i]
->value.choice.NAS_PDU)) { ->value.choice.NAS_PDU)) {
Logger::nas_mm().warn("Decoded NGAP NAS_PDU IE error"); Logger::nas_mm().warn("Decoded NGAP NAS_PDU IE error");
return false; return false;
} }
nasPdu = std::optional<NAS_PDU>(tmp);
} else { } else {
Logger::nas_mm().warn("Decoded NGAP NAS_PDU IE error"); Logger::nas_mm().warn("Decoded NGAP NAS_PDU IE error");
return false; return false;
...@@ -343,12 +342,10 @@ bool PduSessionResourceReleaseCommandMsg::decodeFromPdu( ...@@ -343,12 +342,10 @@ bool PduSessionResourceReleaseCommandMsg::decodeFromPdu(
pduSessionResourceReleaseCommandIEs->protocolIEs.list.array[i] pduSessionResourceReleaseCommandIEs->protocolIEs.list.array[i]
->value.present == ->value.present ==
Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_PDUSessionResourceToReleaseListRelCmd) { Ngap_PDUSessionResourceReleaseCommandIEs__value_PR_PDUSessionResourceToReleaseListRelCmd) {
if (!pduSessionResourceToReleaseList if (!pduSessionResourceToReleaseList.decode(
.decodefromPDUSessionResourceToReleaseListRelCmd(
&pduSessionResourceReleaseCommandIEs->protocolIEs.list &pduSessionResourceReleaseCommandIEs->protocolIEs.list
.array[i] .array[i]
->value.choice ->value.choice.PDUSessionResourceToReleaseListRelCmd)) {
.PDUSessionResourceToReleaseListRelCmd)) {
Logger::nas_mm().warn( Logger::nas_mm().warn(
"Decoded NGAP PDUSessionResourceToReleaseListRelCmd IE error"); "Decoded NGAP PDUSessionResourceToReleaseListRelCmd IE error");
return false; return false;
......
...@@ -28,6 +28,8 @@ ...@@ -28,6 +28,8 @@
#include "NAS-PDU.hpp" #include "NAS-PDU.hpp"
#include "NgapUEMessage.hpp" #include "NgapUEMessage.hpp"
#include <optional>
namespace ngap { namespace ngap {
class PduSessionResourceReleaseCommandMsg : public NgapUEMessage { class PduSessionResourceReleaseCommandMsg : public NgapUEMessage {
...@@ -42,7 +44,7 @@ class PduSessionResourceReleaseCommandMsg : public NgapUEMessage { ...@@ -42,7 +44,7 @@ class PduSessionResourceReleaseCommandMsg : public NgapUEMessage {
bool decodeFromPdu(Ngap_NGAP_PDU_t* ngapMsgPdu) override; bool decodeFromPdu(Ngap_NGAP_PDU_t* ngapMsgPdu) override;
void setRanPagingPriority(const uint8_t& priority); void setRanPagingPriority(const uint8_t& priority);
int getRanPagingPriority(); bool getRanPagingPriority(uint8_t& priority);
void setNasPdu(const bstring& pdu); void setNasPdu(const bstring& pdu);
bool getNasPdu(bstring& pdu); bool getNasPdu(bstring& pdu);
...@@ -55,8 +57,8 @@ class PduSessionResourceReleaseCommandMsg : public NgapUEMessage { ...@@ -55,8 +57,8 @@ class PduSessionResourceReleaseCommandMsg : public NgapUEMessage {
private: private:
Ngap_PDUSessionResourceReleaseCommand_t* pduSessionResourceReleaseCommandIEs; Ngap_PDUSessionResourceReleaseCommand_t* pduSessionResourceReleaseCommandIEs;
RANPagingPriority* ranPagingPriority; // Optional std::optional<RANPagingPriority> ranPagingPriority; // Optional
NAS_PDU* nasPdu; // Optional std::optional<NAS_PDU> nasPdu; // Optional
PDUSessionResourceToReleaseListRelCmd PDUSessionResourceToReleaseListRelCmd
pduSessionResourceToReleaseList; // Mandatory pduSessionResourceToReleaseList; // Mandatory
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment