Commit 8d963e2b authored by Tien Thinh NGUYEN's avatar Tien Thinh NGUYEN

Code cleanup for Service Reject/Accept

parent df3d7310
...@@ -124,7 +124,6 @@ int ServiceAccept::Encode(uint8_t* buf, int len) { ...@@ -124,7 +124,6 @@ int ServiceAccept::Encode(uint8_t* buf, int len) {
encoded_ie_size = encoded_ie_size =
ie_pdu_session_reactivation_result_error_cause.value().Encode( ie_pdu_session_reactivation_result_error_cause.value().Encode(
buf + encoded_size, len - encoded_size); buf + encoded_size, len - encoded_size);
if (encoded_ie_size != KEncodeDecodeError) { if (encoded_ie_size != KEncodeDecodeError) {
encoded_size += encoded_ie_size; encoded_size += encoded_ie_size;
} else { } else {
...@@ -141,7 +140,6 @@ int ServiceAccept::Encode(uint8_t* buf, int len) { ...@@ -141,7 +140,6 @@ int ServiceAccept::Encode(uint8_t* buf, int len) {
} else { } else {
encoded_ie_size = encoded_ie_size =
ie_eap_message.value().Encode(buf + encoded_size, len - encoded_size); ie_eap_message.value().Encode(buf + encoded_size, len - encoded_size);
if (encoded_ie_size != KEncodeDecodeError) { if (encoded_ie_size != KEncodeDecodeError) {
encoded_size += encoded_ie_size; encoded_size += encoded_ie_size;
} else { } else {
...@@ -184,7 +182,7 @@ int ServiceAccept::Decode(uint8_t* buf, int len) { ...@@ -184,7 +182,7 @@ int ServiceAccept::Decode(uint8_t* buf, int len) {
return KEncodeDecodeError; return KEncodeDecodeError;
} }
decoded_size += decoded_result; decoded_size += decoded_result;
Logger::nas_mm().debug("Decoded_size(%d)", decoded_size); Logger::nas_mm().debug("Decoded_size (%d)", decoded_size);
// Decode other IEs // Decode other IEs
uint8_t octet = 0x00; uint8_t octet = 0x00;
......
...@@ -41,7 +41,7 @@ class ServiceAccept : public NasMmPlainHeader { ...@@ -41,7 +41,7 @@ class ServiceAccept : public NasMmPlainHeader {
void SetPduSessionStatus(uint16_t value); void SetPduSessionStatus(uint16_t value);
// TODO: Get // TODO: Get
void SetPduSessionReactivationResult(uint16_t); void SetPduSessionReactivationResult(uint16_t value);
// TODO: Get // TODO: Get
void SetPduSessionReactivationResultErrorCause( void SetPduSessionReactivationResultErrorCause(
......
...@@ -28,10 +28,10 @@ using namespace nas; ...@@ -28,10 +28,10 @@ using namespace nas;
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
ServiceReject::ServiceReject() ServiceReject::ServiceReject()
: NasMmPlainHeader(EPD_5GS_MM_MSG, SERVICE_REJECT) { : NasMmPlainHeader(EPD_5GS_MM_MSG, SERVICE_REJECT) {
ie_PDU_session_status = std::nullopt; ie_pdu_session_status = std::nullopt;
ie_T3346_value = std::nullopt; ie_t3346_value = std::nullopt;
ie_eap_message = std::nullopt; ie_eap_message = std::nullopt;
ie_T3448_value = std::nullopt; ie_t3448_value = std::nullopt;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
...@@ -54,12 +54,12 @@ uint8_t ServiceReject::Get5GMmCause() { ...@@ -54,12 +54,12 @@ uint8_t ServiceReject::Get5GMmCause() {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void ServiceReject::SetPduSessionStatus(uint16_t value) { void ServiceReject::SetPduSessionStatus(uint16_t value) {
ie_PDU_session_status = std::make_optional<PDUSessionStatus>(value); ie_pdu_session_status = std::make_optional<PDUSessionStatus>(value);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void ServiceReject::SetT3346Value(uint8_t value) { void ServiceReject::SetT3346Value(uint8_t value) {
ie_T3346_value = std::make_optional<GprsTimer2>(kT3346Value, value); ie_t3346_value = std::make_optional<GprsTimer2>(kT3346Value, value);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
...@@ -69,7 +69,7 @@ void ServiceReject::SetEapMessage(bstring eap) { ...@@ -69,7 +69,7 @@ void ServiceReject::SetEapMessage(bstring eap) {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void ServiceReject::SetT3448Value(uint8_t unit, uint8_t value) { void ServiceReject::SetT3448Value(uint8_t unit, uint8_t value) {
ie_T3448_value = ie_t3448_value =
std::make_optional<GprsTimer3>(kIeiGprsTimer3T3448, unit, value); std::make_optional<GprsTimer3>(kIeiGprsTimer3T3448, unit, value);
} }
...@@ -87,9 +87,10 @@ int ServiceReject::Encode(uint8_t* buf, int len) { ...@@ -87,9 +87,10 @@ int ServiceReject::Encode(uint8_t* buf, int len) {
encoded_size += encoded_ie_size; encoded_size += encoded_ie_size;
// 5GMM cause // 5GMM cause
int size = ie_5gmm_cause.Encode(buf + encoded_size, len - encoded_size); encoded_ie_size =
if (size != KEncodeDecodeError) { ie_5gmm_cause.Encode(buf + encoded_size, len - encoded_size);
encoded_size += size; if (encoded_ie_size != KEncodeDecodeError) {
encoded_size += encoded_ie_size;
} else { } else {
Logger::nas_mm().error( Logger::nas_mm().error(
"Encoding %s error", _5gmmCause::GetIeName().c_str()); "Encoding %s error", _5gmmCause::GetIeName().c_str());
...@@ -97,11 +98,11 @@ int ServiceReject::Encode(uint8_t* buf, int len) { ...@@ -97,11 +98,11 @@ int ServiceReject::Encode(uint8_t* buf, int len) {
} }
// PDU session status // PDU session status
if (!ie_PDU_session_status.has_value()) { if (!ie_pdu_session_status.has_value()) {
Logger::nas_mm().debug( Logger::nas_mm().debug(
"IE %s is not available", PDUSessionStatus::GetIeName().c_str()); "IE %s is not available", PDUSessionStatus::GetIeName().c_str());
} else { } else {
encoded_ie_size = ie_PDU_session_status.value().Encode( encoded_ie_size = ie_pdu_session_status.value().Encode(
buf + encoded_size, len - encoded_size); buf + encoded_size, len - encoded_size);
if (encoded_ie_size != KEncodeDecodeError) { if (encoded_ie_size != KEncodeDecodeError) {
encoded_size += encoded_ie_size; encoded_size += encoded_ie_size;
...@@ -113,13 +114,14 @@ int ServiceReject::Encode(uint8_t* buf, int len) { ...@@ -113,13 +114,14 @@ int ServiceReject::Encode(uint8_t* buf, int len) {
} }
// T3346 value // T3346 value
if (!ie_T3346_value.has_value()) { if (!ie_t3346_value.has_value()) {
Logger::nas_mm().debug( Logger::nas_mm().debug(
"IE %s is not available", GprsTimer2::GetIeName().c_str()); "IE %s is not available", GprsTimer2::GetIeName().c_str());
} else { } else {
if (int size = ie_T3346_value.value().Encode( encoded_ie_size =
buf + encoded_size, len - encoded_size)) { ie_t3346_value.value().Encode(buf + encoded_size, len - encoded_size);
encoded_size += size; if (encoded_ie_size != KEncodeDecodeError) {
encoded_size += encoded_ie_size;
} else { } else {
Logger::nas_mm().error( Logger::nas_mm().error(
"Encoding %s error", GprsTimer2::GetIeName().c_str()); "Encoding %s error", GprsTimer2::GetIeName().c_str());
...@@ -144,12 +146,12 @@ int ServiceReject::Encode(uint8_t* buf, int len) { ...@@ -144,12 +146,12 @@ int ServiceReject::Encode(uint8_t* buf, int len) {
} }
// T3448 value // T3448 value
if (!ie_T3448_value.has_value()) { if (!ie_t3448_value.has_value()) {
Logger::nas_mm().debug( Logger::nas_mm().debug(
"IE %s is not available", GprsTimer3::GetIeName().c_str()); "IE %s is not available", GprsTimer3::GetIeName().c_str());
} else { } else {
encoded_ie_size = encoded_ie_size =
ie_T3448_value.value().Encode(buf + encoded_size, len - encoded_size); ie_t3448_value.value().Encode(buf + encoded_size, len - encoded_size);
if (encoded_ie_size != KEncodeDecodeError) { if (encoded_ie_size != KEncodeDecodeError) {
encoded_size += encoded_ie_size; encoded_size += encoded_ie_size;
} else { } else {
...@@ -187,7 +189,7 @@ int ServiceReject::Decode(uint8_t* buf, int len) { ...@@ -187,7 +189,7 @@ int ServiceReject::Decode(uint8_t* buf, int len) {
return KEncodeDecodeError; return KEncodeDecodeError;
} }
decoded_size += decoded_result; decoded_size += decoded_result;
Logger::nas_mm().debug("Decoded_size(%d)", decoded_size); Logger::nas_mm().debug("Decoded_size (%d)", decoded_size);
// Decode other IEs // Decode other IEs
uint8_t octet = 0x00; uint8_t octet = 0x00;
...@@ -199,27 +201,27 @@ int ServiceReject::Decode(uint8_t* buf, int len) { ...@@ -199,27 +201,27 @@ int ServiceReject::Decode(uint8_t* buf, int len) {
switch (octet) { switch (octet) {
case kIeiPduSessionStatus: { case kIeiPduSessionStatus: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiPduSessionStatus); Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiPduSessionStatus);
PDUSessionStatus ie_PDU_session_status_tmp = {}; PDUSessionStatus ie_pdu_session_status_tmp = {};
if ((decoded_result = ie_PDU_session_status_tmp.Decode( if ((decoded_result = ie_pdu_session_status_tmp.Decode(
buf + decoded_size, len - decoded_size, true)) == buf + decoded_size, len - decoded_size, true)) ==
KEncodeDecodeError) KEncodeDecodeError)
return decoded_result; return KEncodeDecodeError;
decoded_size += decoded_result; decoded_size += decoded_result;
ie_PDU_session_status = ie_pdu_session_status =
std::optional<PDUSessionStatus>(ie_PDU_session_status_tmp); std::optional<PDUSessionStatus>(ie_pdu_session_status_tmp);
DECODE_U8_VALUE(buf + decoded_size, octet); DECODE_U8_VALUE(buf + decoded_size, octet);
Logger::nas_mm().debug("Next IEI (0x%x)", octet); Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break; } break;
case kT3346Value: { case kT3346Value: {
Logger::nas_mm().debug("Decoding IEI 0x5F: T3346 Value"); Logger::nas_mm().debug("Decoding IEI 0x5F: T3346 Value");
GprsTimer2 ie_T3346_value_tmp(kT3346Value); GprsTimer2 ie_t3346_value_tmp(kT3346Value);
if ((decoded_result = ie_T3346_value_tmp.Decode( if ((decoded_result = ie_t3346_value_tmp.Decode(
buf + decoded_size, len - decoded_size, true)) == buf + decoded_size, len - decoded_size, true)) ==
KEncodeDecodeError) KEncodeDecodeError)
return decoded_result; return KEncodeDecodeError;
decoded_size += decoded_result; decoded_size += decoded_result;
ie_T3346_value = std::optional<GprsTimer2>(ie_T3346_value_tmp); ie_t3346_value = std::optional<GprsTimer2>(ie_t3346_value_tmp);
DECODE_U8_VALUE(buf + decoded_size, octet); DECODE_U8_VALUE(buf + decoded_size, octet);
Logger::nas_mm().debug("Next IEI (0x%x)", octet); Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break; } break;
...@@ -230,7 +232,7 @@ int ServiceReject::Decode(uint8_t* buf, int len) { ...@@ -230,7 +232,7 @@ int ServiceReject::Decode(uint8_t* buf, int len) {
if ((decoded_result = ie_eap_message_tmp.Decode( if ((decoded_result = ie_eap_message_tmp.Decode(
buf + decoded_size, len - decoded_size, true)) == buf + decoded_size, len - decoded_size, true)) ==
KEncodeDecodeError) KEncodeDecodeError)
return decoded_result; return KEncodeDecodeError;
decoded_size += decoded_result; decoded_size += decoded_result;
ie_eap_message = std::optional<EapMessage>(ie_eap_message_tmp); ie_eap_message = std::optional<EapMessage>(ie_eap_message_tmp);
DECODE_U8_VALUE(buf + decoded_size, octet); DECODE_U8_VALUE(buf + decoded_size, octet);
...@@ -239,13 +241,13 @@ int ServiceReject::Decode(uint8_t* buf, int len) { ...@@ -239,13 +241,13 @@ int ServiceReject::Decode(uint8_t* buf, int len) {
case kIeiGprsTimer3T3448: { case kIeiGprsTimer3T3448: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiGprsTimer3T3448); Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiGprsTimer3T3448);
GprsTimer3 ie_T3448_value_tmp(kIeiGprsTimer3T3448); GprsTimer3 ie_t3448_value_tmp(kIeiGprsTimer3T3448);
if ((decoded_result = ie_T3448_value_tmp.Decode( if ((decoded_result = ie_t3448_value_tmp.Decode(
buf + decoded_size, len - decoded_size, true)) == buf + decoded_size, len - decoded_size, true)) ==
KEncodeDecodeError) KEncodeDecodeError)
return decoded_result; return KEncodeDecodeError;
decoded_size += decoded_result; decoded_size += decoded_result;
ie_T3448_value = std::optional<GprsTimer3>(ie_T3448_value_tmp); ie_t3448_value = std::optional<GprsTimer3>(ie_t3448_value_tmp);
DECODE_U8_VALUE(buf + decoded_size, octet); DECODE_U8_VALUE(buf + decoded_size, octet);
Logger::nas_mm().debug("Next IEI (0x%x)", octet); Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break; } break;
......
...@@ -20,11 +20,9 @@ ...@@ -20,11 +20,9 @@
*/ */
#ifndef _SERVICE_REJECT_H_ #ifndef _SERVICE_REJECT_H_
#define _SERVICE_REJECT_H_ #define _SERVICE_REJECT_H_
#include <stdint.h> #include <stdint.h>
#include <string>
#include "NasIeHeader.hpp" #include "NasIeHeader.hpp"
...@@ -58,10 +56,10 @@ class ServiceReject : public NasMmPlainHeader { ...@@ -58,10 +56,10 @@ class ServiceReject : public NasMmPlainHeader {
private: private:
_5gmmCause ie_5gmm_cause; // Mandatory _5gmmCause ie_5gmm_cause; // Mandatory
std::optional<PDUSessionStatus> ie_PDU_session_status; // Optional std::optional<PDUSessionStatus> ie_pdu_session_status; // Optional
std::optional<GprsTimer2> ie_T3346_value; // Optional std::optional<GprsTimer2> ie_t3346_value; // Optional
std::optional<EapMessage> ie_eap_message; // Optional std::optional<EapMessage> ie_eap_message; // Optional
std::optional<GprsTimer3> ie_T3448_value; // Optional std::optional<GprsTimer3> ie_t3448_value; // Optional
}; };
} // namespace nas } // namespace nas
......
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