Commit 911008f6 authored by Tien Thinh NGUYEN's avatar Tien Thinh NGUYEN

Update EAP Message

parent b1839609
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
#include "Authentication_Parameter_RAND.hpp" #include "Authentication_Parameter_RAND.hpp"
#include "Authentication_Response_Parameter.hpp" #include "Authentication_Response_Parameter.hpp"
#include "DNN.hpp" #include "DNN.hpp"
#include "EAP_Message.hpp" #include "EapMessage.hpp"
#include "EpsBearerContextStatus.hpp" #include "EpsBearerContextStatus.hpp"
#include "EPS_NAS_Message_Container.hpp" #include "EPS_NAS_Message_Container.hpp"
#include "EPS_NAS_Security_Algorithms.hpp" #include "EPS_NAS_Security_Algorithms.hpp"
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
* contact@openairinterface.org * contact@openairinterface.org
*/ */
#include "EAP_Message.hpp" #include "EapMessage.hpp"
#include "3gpp_24.501.hpp" #include "3gpp_24.501.hpp"
#include "common_defs.h" #include "common_defs.h"
...@@ -27,71 +27,92 @@ ...@@ -27,71 +27,92 @@
using namespace nas; using namespace nas;
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
EAP_Message::EAP_Message(uint8_t iei) : EAP() { EapMessage::EapMessage() : Type6NasIe(), eap_() {
_iei = iei; SetLengthIndicator(0);
length = 0; SetIeName(kEapMessageIeName);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
EAP_Message::EAP_Message(const uint8_t iei, bstring eap) { EapMessage::EapMessage(uint8_t iei) : Type6NasIe(iei), eap_() {
_iei = iei; SetLengthIndicator(0);
EAP = bstrcpy(eap); SetIeName(kEapMessageIeName);
length = blength(eap);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
EAP_Message::EAP_Message() : _iei(), EAP(), length() {} EapMessage::EapMessage(const uint8_t iei, bstring eap) : Type6NasIe(iei) {
eap_ = bstrcpy(eap);
SetLengthIndicator(blength(eap));
SetIeName(kEapMessageIeName);
}
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
EAP_Message::~EAP_Message() {} EapMessage::~EapMessage() {}
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void EAP_Message::getValue(bstring& eap) { void EapMessage::getValue(bstring& eap) {
eap = bstrcpy(EAP); eap = bstrcpy(eap_);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
int EAP_Message::Encode(uint8_t* buf, int len) { int EapMessage::Encode(uint8_t* buf, int len) {
Logger::nas_mm().debug("Encoding EAP_Message"); Logger::nas_mm().debug("Encoding %s", GetIeName().c_str());
if ((len < kEapMessageMinimumLength) or (len < length + 3)) {
int ie_len = GetIeLength();
if (len < ie_len) { // Length of the content + IEI/Len
Logger::nas_mm().error( Logger::nas_mm().error(
"Buffer length is less than the length of this IE (%d octet)", "Size of the buffer is not enough to store this IE (IE len %d)",
kEapMessageMinimumLength); ie_len);
return KEncodeDecodeError; return KEncodeDecodeError;
} }
int encoded_size = 0; int encoded_size = 0;
ENCODE_U8(buf + encoded_size, _iei, encoded_size); // IEI and Length (later)
ENCODE_U16(buf + encoded_size, length, encoded_size); int len_pos = 0;
int size = encode_bstring(EAP, (buf + encoded_size), len - encoded_size); int encoded_header_size =
Type6NasIe::Encode(buf + encoded_size, len, len_pos);
if (encoded_header_size == KEncodeDecodeError) return KEncodeDecodeError;
encoded_size += encoded_header_size;
// Value
int size = encode_bstring(eap_, (buf + encoded_size), len - encoded_size);
encoded_size += size; encoded_size += size;
Logger::nas_mm().debug("encoded EAP_Message (len %d)", encoded_size); // Encode length
int encoded_len_ie = 0;
ENCODE_U16(buf + len_pos, encoded_size - GetHeaderLength(), encoded_len_ie);
Logger::nas_mm().debug(
"Encoded %s, len (%d)", GetIeName().c_str(), encoded_size);
return encoded_size; return encoded_size;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
int EAP_Message::Decode(uint8_t* buf, int len, bool is_option) { int EapMessage::Decode(uint8_t* buf, int len, bool is_iei) {
Logger::nas_mm().debug("Decoding EAP_Message"); Logger::nas_mm().debug("Decoding %s", GetIeName().c_str());
int decoded_size = 0;
if (len < kEapMessageMinimumLength) { // IEI and Length
Logger::nas_mm().error( uint16_t ie_len = 0;
"Buffer length is less than the length of this IE (%d octet)", int decoded_header_size = Type6NasIe::Decode(buf + decoded_size, len, is_iei);
kEapMessageMinimumLength); if (decoded_header_size == KEncodeDecodeError) return KEncodeDecodeError;
return KEncodeDecodeError; decoded_size += decoded_header_size;
} ie_len = GetLengthIndicator();
int decoded_size = 0; if (len < GetIeLength()) {
if (is_option) { Logger::nas_mm().error("Len is less than %d", ie_len);
DECODE_U8(buf + decoded_size, _iei, decoded_size); return KEncodeDecodeError;
} }
DECODE_U16(buf + decoded_size, length, decoded_size); // Value
decode_bstring(&EAP, length, (buf + decoded_size), len - decoded_size); decode_bstring(&eap_, ie_len, (buf + decoded_size), len - decoded_size);
decoded_size += length; decoded_size += ie_len;
for (int i = 0; i < length; i++) { for (int i = 0; i < ie_len; i++) {
Logger::nas_mm().debug( Logger::nas_mm().debug(
"Decoded EAP_Message value (0x%x)", (uint8_t) EAP->data[i]); "Decoded NasMessageContainer value 0x%x", (uint8_t) eap_->data[i]);
} }
Logger::nas_mm().debug("Decoded EAP_Message (len %d)", decoded_size);
Logger::nas_mm().debug(
"Decoded EPS_NAS_Message_Container (len %d)", decoded_size);
return decoded_size; return decoded_size;
} }
...@@ -19,36 +19,40 @@ ...@@ -19,36 +19,40 @@
* contact@openairinterface.org * contact@openairinterface.org
*/ */
#ifndef _EAP_Message_H_ #ifndef _EAP_MESSAGE_H_
#define _EAP_Message_H_ #define _EAP_MESSAGE_H_
#include "Type6NasIe.hpp"
#include <stdint.h> #include <stdint.h>
constexpr uint8_t kEapMessageMinimumLength = 7;
constexpr uint16_t kEapMessageMaximumLength = 1503;
extern "C" { extern "C" {
#include "TLVDecoder.h" #include "TLVDecoder.h"
#include "TLVEncoder.h" #include "TLVEncoder.h"
#include "bstrlib.h" #include "bstrlib.h"
} }
constexpr uint8_t kEapMessageMinimumLength = 7;
constexpr uint16_t kEapMessageMaximumLength = 1503;
constexpr auto kEapMessageIeName = "EAP Message";
namespace nas { namespace nas {
class EAP_Message { class EapMessage : Type6NasIe {
public: public:
EAP_Message(); EapMessage();
EAP_Message(uint8_t iei); EapMessage(uint8_t iei);
EAP_Message(const uint8_t iei, bstring eap); EapMessage(bstring eap);
~EAP_Message(); EapMessage(uint8_t iei, bstring eap);
// void setValue(uint8_t iei, uint8_t value); ~EapMessage();
int Encode(uint8_t* buf, int len); int Encode(uint8_t* buf, int len);
int Decode(uint8_t* buf, int len, bool is_option); int Decode(uint8_t* buf, int len, bool is_iei);
// void setValue(uint8_t iei, uint8_t value);
void getValue(bstring& eap); void getValue(bstring& eap);
private: private:
uint8_t _iei; bstring eap_;
uint16_t length;
bstring EAP;
}; };
} // namespace nas } // namespace nas
......
...@@ -54,9 +54,8 @@ void NasMessageContainer::GetValue(bstring& value) const { ...@@ -54,9 +54,8 @@ void NasMessageContainer::GetValue(bstring& value) const {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
int NasMessageContainer::Encode(uint8_t* buf, int len) { int NasMessageContainer::Encode(uint8_t* buf, int len) {
Logger::nas_mm().debug("Encoding %s", GetIeName().c_str()); Logger::nas_mm().debug("Encoding %s", GetIeName().c_str());
int encoded_size = 0;
int ie_len = GetIeLength(); int ie_len = GetIeLength();
if (len < ie_len) { // Length of the content + IEI/Len if (len < ie_len) { // Length of the content + IEI/Len
Logger::nas_mm().error( Logger::nas_mm().error(
"Size of the buffer is not enough to store this IE (IE len %d)", "Size of the buffer is not enough to store this IE (IE len %d)",
...@@ -64,7 +63,6 @@ int NasMessageContainer::Encode(uint8_t* buf, int len) { ...@@ -64,7 +63,6 @@ int NasMessageContainer::Encode(uint8_t* buf, int len) {
return KEncodeDecodeError; return KEncodeDecodeError;
} }
int encoded_size = 0;
// IEI and Length (later) // IEI and Length (later)
int len_pos = 0; int len_pos = 0;
int encoded_header_size = int encoded_header_size =
...@@ -87,15 +85,20 @@ int NasMessageContainer::Encode(uint8_t* buf, int len) { ...@@ -87,15 +85,20 @@ int NasMessageContainer::Encode(uint8_t* buf, int len) {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
int NasMessageContainer::Decode(uint8_t* buf, int len, bool is_iei) { int NasMessageContainer::Decode(uint8_t* buf, int len, bool is_iei) {
Logger::nas_mm().debug("Decoding EPS_NAS_Message_Container"); Logger::nas_mm().debug("Decoding %s", GetIeName().c_str());
int decoded_size = 0; int decoded_size = 0;
// IEI and Length // IEI and Length
uint16_t ie_len = 0;
int decoded_header_size = Type6NasIe::Decode(buf + decoded_size, len, is_iei); int decoded_header_size = Type6NasIe::Decode(buf + decoded_size, len, is_iei);
if (decoded_header_size == KEncodeDecodeError) return KEncodeDecodeError; if (decoded_header_size == KEncodeDecodeError) return KEncodeDecodeError;
decoded_size += decoded_header_size; decoded_size += decoded_header_size;
ie_len = GetLengthIndicator(); uint16_t ie_len = 0;
ie_len = GetLengthIndicator();
if (len < GetIeLength()) {
Logger::nas_mm().error("Len is less than %d", GetIeLength());
return KEncodeDecodeError;
}
// Value // Value
decode_bstring(&value_, ie_len, (buf + decoded_size), len - decoded_size); decode_bstring(&value_, ie_len, (buf + decoded_size), len - decoded_size);
...@@ -106,6 +109,6 @@ int NasMessageContainer::Decode(uint8_t* buf, int len, bool is_iei) { ...@@ -106,6 +109,6 @@ int NasMessageContainer::Decode(uint8_t* buf, int len, bool is_iei) {
} }
Logger::nas_mm().debug( Logger::nas_mm().debug(
"Decoded EPS_NAS_Message_Container (len %d)", decoded_size); "Decoded %s, len (%d)", GetIeName().c_str(), decoded_size);
return decoded_size; return decoded_size;
} }
...@@ -51,7 +51,7 @@ void AuthenticationReject::setHeader(uint8_t security_header_type) { ...@@ -51,7 +51,7 @@ void AuthenticationReject::setHeader(uint8_t security_header_type) {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void AuthenticationReject::setEAP_Message(bstring eap) { void AuthenticationReject::setEAP_Message(bstring eap) {
ie_eap_message = new EAP_Message(0x78, eap); ie_eap_message = new EapMessage(0x78, eap);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
...@@ -93,7 +93,7 @@ int AuthenticationReject::Decode( ...@@ -93,7 +93,7 @@ int AuthenticationReject::Decode(
switch (octet) { switch (octet) {
case 0x78: { case 0x78: {
Logger::nas_mm().debug("Decoding IEI (0x78)"); Logger::nas_mm().debug("Decoding IEI (0x78)");
ie_eap_message = new EAP_Message(); ie_eap_message = new EapMessage();
decoded_size += ie_eap_message->Decode( decoded_size += ie_eap_message->Decode(
buf + decoded_size, len - decoded_size, true); buf + decoded_size, len - decoded_size, true);
octet = *(buf + decoded_size); octet = *(buf + decoded_size);
......
...@@ -44,7 +44,7 @@ class AuthenticationReject { ...@@ -44,7 +44,7 @@ class AuthenticationReject {
public: public:
NasMmPlainHeader* plain_header; NasMmPlainHeader* plain_header;
EAP_Message* ie_eap_message; EapMessage* ie_eap_message;
}; };
} // namespace nas } // namespace nas
......
...@@ -72,7 +72,7 @@ void AuthenticationRequest::setAuthentication_Parameter_AUTN( ...@@ -72,7 +72,7 @@ void AuthenticationRequest::setAuthentication_Parameter_AUTN(
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void AuthenticationRequest::setEAP_Message(bstring eap) { void AuthenticationRequest::setEAP_Message(bstring eap) {
ie_eap_message = std::make_optional<EAP_Message>(kIeiEapMessage, eap); ie_eap_message = std::make_optional<EapMessage>(kIeiEapMessage, eap);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
...@@ -205,13 +205,13 @@ int AuthenticationRequest::Decode(uint8_t* buf, int len) { ...@@ -205,13 +205,13 @@ int AuthenticationRequest::Decode(uint8_t* buf, int len) {
} break; } break;
case kIeiEapMessage: { case kIeiEapMessage: {
Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiEapMessage); Logger::nas_mm().debug("Decoding IEI 0x%x", kIeiEapMessage);
EAP_Message ie_eap_message_tmp = {}; EapMessage ie_eap_message_tmp = {};
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 decoded_result;
decoded_size += decoded_result; decoded_size += decoded_result;
ie_eap_message = std::optional<EAP_Message>(ie_eap_message_tmp); ie_eap_message = std::optional<EapMessage>(ie_eap_message_tmp);
octet = *(buf + decoded_size); octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI 0x%x", octet); Logger::nas_mm().debug("Next IEI 0x%x", octet);
} break; } break;
......
...@@ -50,8 +50,8 @@ class AuthenticationRequest : public NasMmPlainHeader { ...@@ -50,8 +50,8 @@ class AuthenticationRequest : public NasMmPlainHeader {
std::optional<Authentication_Parameter_RAND> std::optional<Authentication_Parameter_RAND>
ie_authentication_parameter_rand; // Optional ie_authentication_parameter_rand; // Optional
std::optional<Authentication_Parameter_AUTN> std::optional<Authentication_Parameter_AUTN>
ie_authentication_parameter_autn; // Optional ie_authentication_parameter_autn; // Optional
std::optional<EAP_Message> ie_eap_message; // Optional std::optional<EapMessage> ie_eap_message; // Optional
}; };
} // namespace nas } // namespace nas
......
...@@ -69,7 +69,7 @@ bool AuthenticationResponse::getAuthenticationResponseParameter(bstring& para) { ...@@ -69,7 +69,7 @@ bool AuthenticationResponse::getAuthenticationResponseParameter(bstring& para) {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void AuthenticationResponse::setEAP_Message(bstring eap) { void AuthenticationResponse::setEAP_Message(bstring eap) {
ie_eap_message = new EAP_Message(0x78, eap); ie_eap_message = new EapMessage(0x78, eap);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
...@@ -143,7 +143,7 @@ int AuthenticationResponse::Decode( ...@@ -143,7 +143,7 @@ int AuthenticationResponse::Decode(
} break; } break;
case 0x78: { case 0x78: {
Logger::nas_mm().debug("Decoding IEI (0x78)"); Logger::nas_mm().debug("Decoding IEI (0x78)");
ie_eap_message = new EAP_Message(); ie_eap_message = new EapMessage();
decoded_size += ie_eap_message->Decode( decoded_size += ie_eap_message->Decode(
buf + decoded_size, len - decoded_size, true); buf + decoded_size, len - decoded_size, true);
octet = *(buf + decoded_size); octet = *(buf + decoded_size);
......
...@@ -48,7 +48,7 @@ class AuthenticationResponse { ...@@ -48,7 +48,7 @@ class AuthenticationResponse {
public: public:
NasMmPlainHeader* plain_header; NasMmPlainHeader* plain_header;
Authentication_Response_Parameter* ie_authentication_response_parameter; Authentication_Response_Parameter* ie_authentication_response_parameter;
EAP_Message* ie_eap_message; EapMessage* ie_eap_message;
}; };
} // namespace nas } // namespace nas
......
...@@ -63,7 +63,7 @@ void AuthenticationResult::setABBA(uint8_t length, uint8_t* value) { ...@@ -63,7 +63,7 @@ void AuthenticationResult::setABBA(uint8_t length, uint8_t* value) {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void AuthenticationResult::setEAP_Message(bstring eap) { void AuthenticationResult::setEAP_Message(bstring eap) {
ie_eap_message = new EAP_Message(0x00, eap); ie_eap_message = new EapMessage(0x00, eap);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
...@@ -124,7 +124,7 @@ int AuthenticationResult::Decode( ...@@ -124,7 +124,7 @@ int AuthenticationResult::Decode(
buf + decoded_size, len - decoded_size, false, buf + decoded_size, len - decoded_size, false,
false); // length 1/2, low position false); // length 1/2, low position
decoded_size++; // 1/2 octet from ie_ngKSI, 1/2 from Spare half octet decoded_size++; // 1/2 octet from ie_ngKSI, 1/2 from Spare half octet
ie_eap_message = new EAP_Message(); ie_eap_message = new EapMessage();
decoded_size += decoded_size +=
ie_eap_message->Decode(buf + decoded_size, len - decoded_size, false); ie_eap_message->Decode(buf + decoded_size, len - decoded_size, false);
Logger::nas_mm().debug("Decoded_size (%d)", decoded_size); Logger::nas_mm().debug("Decoded_size (%d)", decoded_size);
......
...@@ -47,7 +47,7 @@ class AuthenticationResult { ...@@ -47,7 +47,7 @@ class AuthenticationResult {
public: public:
NasMmPlainHeader* plain_header; NasMmPlainHeader* plain_header;
NasKeySetIdentifier* ie_ngKSI; NasKeySetIdentifier* ie_ngKSI;
EAP_Message* ie_eap_message; EapMessage* ie_eap_message;
ABBA* ie_abba; ABBA* ie_abba;
}; };
......
...@@ -233,7 +233,7 @@ void RegistrationAccept::setSOR_Transparent_Container( ...@@ -233,7 +233,7 @@ void RegistrationAccept::setSOR_Transparent_Container(
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void RegistrationAccept::setEAP_Message(bstring eap) { void RegistrationAccept::setEAP_Message(bstring eap) {
ie_eap_message = std::make_optional<EAP_Message>(0x78, eap); ie_eap_message = std::make_optional<EapMessage>(0x78, eap);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
...@@ -832,10 +832,10 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) { ...@@ -832,10 +832,10 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
} break; } break;
case 0x78: { case 0x78: {
Logger::nas_mm().debug("Decoding IEI (0x78)"); Logger::nas_mm().debug("Decoding IEI (0x78)");
EAP_Message ie_eap_message_tmp = {}; EapMessage ie_eap_message_tmp = {};
decoded_size += ie_eap_message_tmp.Decode( decoded_size += ie_eap_message_tmp.Decode(
buf + decoded_size, len - decoded_size, true); buf + decoded_size, len - decoded_size, true);
ie_eap_message = std::optional<EAP_Message>(ie_eap_message_tmp); ie_eap_message = std::optional<EapMessage>(ie_eap_message_tmp);
octet = *(buf + decoded_size); octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet); Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break; } break;
......
...@@ -175,7 +175,7 @@ class RegistrationAccept : public NasMmPlainHeader { ...@@ -175,7 +175,7 @@ class RegistrationAccept : public NasMmPlainHeader {
// TODO: Extended emergency number list // TODO: Extended emergency number list
std::optional<SOR_Transparent_Container> std::optional<SOR_Transparent_Container>
ie_sor_transparent_container; // Optional ie_sor_transparent_container; // Optional
std::optional<EAP_Message> ie_eap_message; // Optional std::optional<EapMessage> ie_eap_message; // Optional
std::optional<NSSAI_Inclusion_Mode> ie_nssai_inclusion_mode; // Optional std::optional<NSSAI_Inclusion_Mode> ie_nssai_inclusion_mode; // Optional
// TODO: Operator-defined access category definitions // TODO: Operator-defined access category definitions
std::optional<_5GS_DRX_Parameters> ie_negotiated_drx_parameters; // Optional std::optional<_5GS_DRX_Parameters> ie_negotiated_drx_parameters; // Optional
......
...@@ -61,7 +61,7 @@ void RegistrationReject::setGPRS_Timer_2_3502(uint8_t value) { ...@@ -61,7 +61,7 @@ void RegistrationReject::setGPRS_Timer_2_3502(uint8_t value) {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void RegistrationReject::setEAP_Message(bstring eap) { void RegistrationReject::setEAP_Message(bstring eap) {
ie_eap_message = std::make_optional<EAP_Message>(kIeiEapMessage, eap); ie_eap_message = std::make_optional<EapMessage>(kIeiEapMessage, eap);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
...@@ -172,10 +172,10 @@ int RegistrationReject::Decode( ...@@ -172,10 +172,10 @@ int RegistrationReject::Decode(
} break; } break;
case kIeiEapMessage: { case kIeiEapMessage: {
Logger::nas_mm().debug("Decoding IEI 0x78: EAP Message"); Logger::nas_mm().debug("Decoding IEI 0x78: EAP Message");
EAP_Message ie_eap_message_tmp = {}; EapMessage ie_eap_message_tmp = {};
decoded_size += ie_eap_message_tmp.Decode( decoded_size += ie_eap_message_tmp.Decode(
buf + decoded_size, len - decoded_size, true); buf + decoded_size, len - decoded_size, true);
ie_eap_message = std::optional<EAP_Message>(ie_eap_message_tmp); ie_eap_message = std::optional<EapMessage>(ie_eap_message_tmp);
octet = *(buf + decoded_size); octet = *(buf + decoded_size);
Logger::nas_mm().debug("Next IEI (0x%x)", octet); Logger::nas_mm().debug("Next IEI (0x%x)", octet);
} break; } break;
......
...@@ -55,7 +55,7 @@ class RegistrationReject : public NasMmPlainHeader { ...@@ -55,7 +55,7 @@ class RegistrationReject : public NasMmPlainHeader {
_5GMM_Cause ie_5gmm_cause; // Mandatory _5GMM_Cause ie_5gmm_cause; // Mandatory
std::optional<GprsTimer2> ie_T3346_value; // Optional std::optional<GprsTimer2> ie_T3346_value; // Optional
std::optional<GprsTimer2> ie_T3502_value; // Optional std::optional<GprsTimer2> ie_T3502_value; // Optional
std::optional<EAP_Message> ie_eap_message; // Optional std::optional<EapMessage> ie_eap_message; // Optional
std::optional<Rejected_NSSAI> ie_rejected_nssai; // Release 16.4.1 std::optional<Rejected_NSSAI> ie_rejected_nssai; // Release 16.4.1
}; };
......
...@@ -103,7 +103,7 @@ void SecurityModeCommand::setAdditional_5G_Security_Information( ...@@ -103,7 +103,7 @@ void SecurityModeCommand::setAdditional_5G_Security_Information(
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void SecurityModeCommand::setEAP_Message(bstring eap) { void SecurityModeCommand::setEAP_Message(bstring eap) {
ie_eap_message = new EAP_Message(0x78, eap); ie_eap_message = new EapMessage(0x78, eap);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
...@@ -284,7 +284,7 @@ int SecurityModeCommand::Decode( ...@@ -284,7 +284,7 @@ int SecurityModeCommand::Decode(
} break; } break;
case 0x78: { case 0x78: {
Logger::nas_mm().debug("decoding IEI (0x78)"); Logger::nas_mm().debug("decoding IEI (0x78)");
ie_eap_message = new EAP_Message(); ie_eap_message = new EapMessage();
decoded_size += ie_eap_message->Decode( decoded_size += ie_eap_message->Decode(
buf + decoded_size, len - decoded_size, true); buf + decoded_size, len - decoded_size, true);
octet = *(buf + decoded_size); octet = *(buf + decoded_size);
......
...@@ -60,7 +60,7 @@ class SecurityModeCommand { ...@@ -60,7 +60,7 @@ class SecurityModeCommand {
IMEISV_Request* ie_imeisv_request; IMEISV_Request* ie_imeisv_request;
EPS_NAS_Security_Algorithms* ie_eps_nas_security_algorithms; EPS_NAS_Security_Algorithms* ie_eps_nas_security_algorithms;
Additional_5G_Security_Information* ie_additional_5G_security_information; Additional_5G_Security_Information* ie_additional_5G_security_information;
EAP_Message* ie_eap_message; EapMessage* ie_eap_message;
ABBA* ie_abba; ABBA* ie_abba;
S1_UE_Security_Capability* ie_s1_ue_security_capability; S1_UE_Security_Capability* ie_s1_ue_security_capability;
}; };
......
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