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
911008f6
Commit
911008f6
authored
Jan 12, 2023
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update EAP Message
parent
b1839609
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
174 additions
and
49 deletions
+174
-49
src/nas/common/NasIeHeader.hpp
src/nas/common/NasIeHeader.hpp
+1
-1
src/nas/ies/EapMessage.cpp
src/nas/ies/EapMessage.cpp
+118
-0
src/nas/ies/EapMessage.hpp
src/nas/ies/EapMessage.hpp
+19
-15
src/nas/ies/NasMessageContainer.cpp
src/nas/ies/NasMessageContainer.cpp
+11
-8
src/nas/msgs/AuthenticationReject.cpp
src/nas/msgs/AuthenticationReject.cpp
+2
-2
src/nas/msgs/AuthenticationReject.hpp
src/nas/msgs/AuthenticationReject.hpp
+1
-1
src/nas/msgs/AuthenticationRequest.cpp
src/nas/msgs/AuthenticationRequest.cpp
+3
-3
src/nas/msgs/AuthenticationRequest.hpp
src/nas/msgs/AuthenticationRequest.hpp
+2
-2
src/nas/msgs/AuthenticationResponse.cpp
src/nas/msgs/AuthenticationResponse.cpp
+2
-2
src/nas/msgs/AuthenticationResponse.hpp
src/nas/msgs/AuthenticationResponse.hpp
+1
-1
src/nas/msgs/AuthenticationResult.cpp
src/nas/msgs/AuthenticationResult.cpp
+2
-2
src/nas/msgs/AuthenticationResult.hpp
src/nas/msgs/AuthenticationResult.hpp
+1
-1
src/nas/msgs/RegistrationAccept.cpp
src/nas/msgs/RegistrationAccept.cpp
+3
-3
src/nas/msgs/RegistrationAccept.hpp
src/nas/msgs/RegistrationAccept.hpp
+1
-1
src/nas/msgs/RegistrationReject.cpp
src/nas/msgs/RegistrationReject.cpp
+3
-3
src/nas/msgs/RegistrationReject.hpp
src/nas/msgs/RegistrationReject.hpp
+1
-1
src/nas/msgs/SecurityModeCommand.cpp
src/nas/msgs/SecurityModeCommand.cpp
+2
-2
src/nas/msgs/SecurityModeCommand.hpp
src/nas/msgs/SecurityModeCommand.hpp
+1
-1
No files found.
src/nas/common/NasIeHeader.hpp
View file @
911008f6
...
...
@@ -36,7 +36,7 @@
#include "Authentication_Parameter_RAND.hpp"
#include "Authentication_Response_Parameter.hpp"
#include "DNN.hpp"
#include "E
AP_
Message.hpp"
#include "E
ap
Message.hpp"
#include "EpsBearerContextStatus.hpp"
#include "EPS_NAS_Message_Container.hpp"
#include "EPS_NAS_Security_Algorithms.hpp"
...
...
src/nas/ies/E
AP_
Message.cpp
→
src/nas/ies/E
ap
Message.cpp
View file @
911008f6
...
...
@@ -19,7 +19,7 @@
* contact@openairinterface.org
*/
#include "E
AP_
Message.hpp"
#include "E
ap
Message.hpp"
#include "3gpp_24.501.hpp"
#include "common_defs.h"
...
...
@@ -27,71 +27,92 @@
using
namespace
nas
;
//------------------------------------------------------------------------------
E
AP_Message
::
EAP_Message
(
uint8_t
iei
)
:
EAP
()
{
_iei
=
iei
;
length
=
0
;
E
apMessage
::
EapMessage
()
:
Type6NasIe
(),
eap_
()
{
SetLengthIndicator
(
0
)
;
SetIeName
(
kEapMessageIeName
)
;
}
//------------------------------------------------------------------------------
EAP_Message
::
EAP_Message
(
const
uint8_t
iei
,
bstring
eap
)
{
_iei
=
iei
;
EAP
=
bstrcpy
(
eap
);
length
=
blength
(
eap
);
EapMessage
::
EapMessage
(
uint8_t
iei
)
:
Type6NasIe
(
iei
),
eap_
()
{
SetLengthIndicator
(
0
);
SetIeName
(
kEapMessageIeName
);
}
//------------------------------------------------------------------------------
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
);
}
//------------------------------------------------------------------------------
E
AP_Message
::~
EAP_
Message
()
{}
E
apMessage
::~
Eap
Message
()
{}
//------------------------------------------------------------------------------
void
E
AP_
Message
::
getValue
(
bstring
&
eap
)
{
eap
=
bstrcpy
(
EAP
);
void
E
ap
Message
::
getValue
(
bstring
&
eap
)
{
eap
=
bstrcpy
(
eap_
);
}
//------------------------------------------------------------------------------
int
EAP_Message
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"Encoding EAP_Message"
);
if
((
len
<
kEapMessageMinimumLength
)
or
(
len
<
length
+
3
))
{
int
EapMessage
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"Encoding %s"
,
GetIeName
().
c_str
());
int
ie_len
=
GetIeLength
();
if
(
len
<
ie_len
)
{
// Length of the content + IEI/Len
Logger
::
nas_mm
().
error
(
"
Buffer length is less than the length of this IE (%d octet
)"
,
kEapMessageMinimumLength
);
"
Size of the buffer is not enough to store this IE (IE len %d
)"
,
ie_len
);
return
KEncodeDecodeError
;
}
int
encoded_size
=
0
;
ENCODE_U8
(
buf
+
encoded_size
,
_iei
,
encoded_size
);
ENCODE_U16
(
buf
+
encoded_size
,
length
,
encoded_size
);
int
size
=
encode_bstring
(
EAP
,
(
buf
+
encoded_size
),
len
-
encoded_size
);
// IEI and Length (later)
int
len_pos
=
0
;
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
;
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
;
}
//------------------------------------------------------------------------------
int
EAP_Message
::
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_option
)
{
Logger
::
nas_mm
().
debug
(
"Decoding EAP_Message"
);
int
EapMessage
::
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_iei
)
{
Logger
::
nas_mm
().
debug
(
"Decoding %s"
,
GetIeName
().
c_str
());
int
decoded_size
=
0
;
if
(
len
<
kEapMessageMinimumLength
)
{
Logger
::
nas_mm
().
error
(
"Buffer length is less than the length of this IE (%d octet)"
,
kEapMessageMinimumLength
)
;
return
KEncodeDecodeError
;
}
// IEI and Length
uint16_t
ie_len
=
0
;
int
decoded_header_size
=
Type6NasIe
::
Decode
(
buf
+
decoded_size
,
len
,
is_iei
);
if
(
decoded_header_size
==
KEncodeDecodeError
)
return
KEncodeDecodeError
;
decoded_size
+=
decoded_header_size
;
ie_len
=
GetLengthIndicator
();
i
nt
decoded_size
=
0
;
if
(
is_option
)
{
DECODE_U8
(
buf
+
decoded_size
,
_iei
,
decoded_size
)
;
i
f
(
len
<
GetIeLength
())
{
Logger
::
nas_mm
().
error
(
"Len is less than %d"
,
ie_len
);
return
KEncodeDecodeError
;
}
DECODE_U16
(
buf
+
decoded_size
,
length
,
decoded_size
);
decode_bstring
(
&
EAP
,
length
,
(
buf
+
decoded_size
),
len
-
decoded_size
);
decoded_size
+=
length
;
for
(
int
i
=
0
;
i
<
length
;
i
++
)
{
// Value
decode_bstring
(
&
eap_
,
ie_len
,
(
buf
+
decoded_size
),
len
-
decoded_size
);
decoded_size
+=
ie_len
;
for
(
int
i
=
0
;
i
<
ie_len
;
i
++
)
{
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
;
}
src/nas/ies/E
AP_
Message.hpp
→
src/nas/ies/E
ap
Message.hpp
View file @
911008f6
...
...
@@ -19,36 +19,40 @@
* contact@openairinterface.org
*/
#ifndef _EAP_M
essage
_H_
#define _EAP_M
essage
_H_
#ifndef _EAP_M
ESSAGE
_H_
#define _EAP_M
ESSAGE
_H_
#include "Type6NasIe.hpp"
#include <stdint.h>
constexpr
uint8_t
kEapMessageMinimumLength
=
7
;
constexpr
uint16_t
kEapMessageMaximumLength
=
1503
;
extern
"C"
{
#include "TLVDecoder.h"
#include "TLVEncoder.h"
#include "bstrlib.h"
}
constexpr
uint8_t
kEapMessageMinimumLength
=
7
;
constexpr
uint16_t
kEapMessageMaximumLength
=
1503
;
constexpr
auto
kEapMessageIeName
=
"EAP Message"
;
namespace
nas
{
class
E
AP_Messag
e
{
class
E
apMessage
:
Type6NasI
e
{
public:
EAP_Message
();
EAP_Message
(
uint8_t
iei
);
EAP_Message
(
const
uint8_t
iei
,
bstring
eap
);
~
EAP_Message
();
// void setValue(uint8_t iei, uint8_t value);
EapMessage
();
EapMessage
(
uint8_t
iei
);
EapMessage
(
bstring
eap
);
EapMessage
(
uint8_t
iei
,
bstring
eap
);
~
EapMessage
();
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
);
private:
uint8_t
_iei
;
uint16_t
length
;
bstring
EAP
;
bstring
eap_
;
};
}
// namespace nas
...
...
src/nas/ies/NasMessageContainer.cpp
View file @
911008f6
...
...
@@ -54,9 +54,8 @@ void NasMessageContainer::GetValue(bstring& value) const {
//------------------------------------------------------------------------------
int
NasMessageContainer
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"Encoding %s"
,
GetIeName
().
c_str
());
int
ie_len
=
GetIeLength
();
int
encoded_size
=
0
;
int
ie_len
=
GetIeLength
();
if
(
len
<
ie_len
)
{
// Length of the content + IEI/Len
Logger
::
nas_mm
().
error
(
"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) {
return
KEncodeDecodeError
;
}
int
encoded_size
=
0
;
// IEI and Length (later)
int
len_pos
=
0
;
int
encoded_header_size
=
...
...
@@ -87,15 +85,20 @@ int NasMessageContainer::Encode(uint8_t* buf, int len) {
//------------------------------------------------------------------------------
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
;
// IEI and Length
uint16_t
ie_len
=
0
;
int
decoded_header_size
=
Type6NasIe
::
Decode
(
buf
+
decoded_size
,
len
,
is_iei
);
if
(
decoded_header_size
==
KEncodeDecodeError
)
return
KEncodeDecodeError
;
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
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) {
}
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
;
}
src/nas/msgs/AuthenticationReject.cpp
View file @
911008f6
...
...
@@ -51,7 +51,7 @@ void AuthenticationReject::setHeader(uint8_t security_header_type) {
//------------------------------------------------------------------------------
void
AuthenticationReject
::
setEAP_Message
(
bstring
eap
)
{
ie_eap_message
=
new
E
AP_
Message
(
0x78
,
eap
);
ie_eap_message
=
new
E
ap
Message
(
0x78
,
eap
);
}
//------------------------------------------------------------------------------
...
...
@@ -93,7 +93,7 @@ int AuthenticationReject::Decode(
switch
(
octet
)
{
case
0x78
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0x78)"
);
ie_eap_message
=
new
E
AP_
Message
();
ie_eap_message
=
new
E
ap
Message
();
decoded_size
+=
ie_eap_message
->
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
);
octet
=
*
(
buf
+
decoded_size
);
...
...
src/nas/msgs/AuthenticationReject.hpp
View file @
911008f6
...
...
@@ -44,7 +44,7 @@ class AuthenticationReject {
public:
NasMmPlainHeader
*
plain_header
;
E
AP_
Message
*
ie_eap_message
;
E
ap
Message
*
ie_eap_message
;
};
}
// namespace nas
...
...
src/nas/msgs/AuthenticationRequest.cpp
View file @
911008f6
...
...
@@ -72,7 +72,7 @@ void AuthenticationRequest::setAuthentication_Parameter_AUTN(
//------------------------------------------------------------------------------
void
AuthenticationRequest
::
setEAP_Message
(
bstring
eap
)
{
ie_eap_message
=
std
::
make_optional
<
E
AP_
Message
>
(
kIeiEapMessage
,
eap
);
ie_eap_message
=
std
::
make_optional
<
E
ap
Message
>
(
kIeiEapMessage
,
eap
);
}
//------------------------------------------------------------------------------
...
...
@@ -205,13 +205,13 @@ int AuthenticationRequest::Decode(uint8_t* buf, int len) {
}
break
;
case
kIeiEapMessage
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI 0x%x"
,
kIeiEapMessage
);
E
AP_
Message
ie_eap_message_tmp
=
{};
E
ap
Message
ie_eap_message_tmp
=
{};
if
((
decoded_result
=
ie_eap_message_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
KEncodeDecodeError
)
return
decoded_result
;
decoded_size
+=
decoded_result
;
ie_eap_message
=
std
::
optional
<
E
AP_
Message
>
(
ie_eap_message_tmp
);
ie_eap_message
=
std
::
optional
<
E
ap
Message
>
(
ie_eap_message_tmp
);
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI 0x%x"
,
octet
);
}
break
;
...
...
src/nas/msgs/AuthenticationRequest.hpp
View file @
911008f6
...
...
@@ -50,8 +50,8 @@ class AuthenticationRequest : public NasMmPlainHeader {
std
::
optional
<
Authentication_Parameter_RAND
>
ie_authentication_parameter_rand
;
// Optional
std
::
optional
<
Authentication_Parameter_AUTN
>
ie_authentication_parameter_autn
;
// Optional
std
::
optional
<
E
AP_
Message
>
ie_eap_message
;
// Optional
ie_authentication_parameter_autn
;
// Optional
std
::
optional
<
E
ap
Message
>
ie_eap_message
;
// Optional
};
}
// namespace nas
...
...
src/nas/msgs/AuthenticationResponse.cpp
View file @
911008f6
...
...
@@ -69,7 +69,7 @@ bool AuthenticationResponse::getAuthenticationResponseParameter(bstring& para) {
//------------------------------------------------------------------------------
void
AuthenticationResponse
::
setEAP_Message
(
bstring
eap
)
{
ie_eap_message
=
new
E
AP_
Message
(
0x78
,
eap
);
ie_eap_message
=
new
E
ap
Message
(
0x78
,
eap
);
}
//------------------------------------------------------------------------------
...
...
@@ -143,7 +143,7 @@ int AuthenticationResponse::Decode(
}
break
;
case
0x78
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0x78)"
);
ie_eap_message
=
new
E
AP_
Message
();
ie_eap_message
=
new
E
ap
Message
();
decoded_size
+=
ie_eap_message
->
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
);
octet
=
*
(
buf
+
decoded_size
);
...
...
src/nas/msgs/AuthenticationResponse.hpp
View file @
911008f6
...
...
@@ -48,7 +48,7 @@ class AuthenticationResponse {
public:
NasMmPlainHeader
*
plain_header
;
Authentication_Response_Parameter
*
ie_authentication_response_parameter
;
E
AP_
Message
*
ie_eap_message
;
E
ap
Message
*
ie_eap_message
;
};
}
// namespace nas
...
...
src/nas/msgs/AuthenticationResult.cpp
View file @
911008f6
...
...
@@ -63,7 +63,7 @@ void AuthenticationResult::setABBA(uint8_t length, uint8_t* value) {
//------------------------------------------------------------------------------
void
AuthenticationResult
::
setEAP_Message
(
bstring
eap
)
{
ie_eap_message
=
new
E
AP_
Message
(
0x00
,
eap
);
ie_eap_message
=
new
E
ap
Message
(
0x00
,
eap
);
}
//------------------------------------------------------------------------------
...
...
@@ -124,7 +124,7 @@ int AuthenticationResult::Decode(
buf
+
decoded_size
,
len
-
decoded_size
,
false
,
false
);
// length 1/2, low position
decoded_size
++
;
// 1/2 octet from ie_ngKSI, 1/2 from Spare half octet
ie_eap_message
=
new
E
AP_
Message
();
ie_eap_message
=
new
E
ap
Message
();
decoded_size
+=
ie_eap_message
->
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
false
);
Logger
::
nas_mm
().
debug
(
"Decoded_size (%d)"
,
decoded_size
);
...
...
src/nas/msgs/AuthenticationResult.hpp
View file @
911008f6
...
...
@@ -47,7 +47,7 @@ class AuthenticationResult {
public:
NasMmPlainHeader
*
plain_header
;
NasKeySetIdentifier
*
ie_ngKSI
;
E
AP_
Message
*
ie_eap_message
;
E
ap
Message
*
ie_eap_message
;
ABBA
*
ie_abba
;
};
...
...
src/nas/msgs/RegistrationAccept.cpp
View file @
911008f6
...
...
@@ -233,7 +233,7 @@ void RegistrationAccept::setSOR_Transparent_Container(
//------------------------------------------------------------------------------
void
RegistrationAccept
::
setEAP_Message
(
bstring
eap
)
{
ie_eap_message
=
std
::
make_optional
<
E
AP_
Message
>
(
0x78
,
eap
);
ie_eap_message
=
std
::
make_optional
<
E
ap
Message
>
(
0x78
,
eap
);
}
//------------------------------------------------------------------------------
...
...
@@ -832,10 +832,10 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
}
break
;
case
0x78
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0x78)"
);
E
AP_
Message
ie_eap_message_tmp
=
{};
E
ap
Message
ie_eap_message_tmp
=
{};
decoded_size
+=
ie_eap_message_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
);
ie_eap_message
=
std
::
optional
<
E
AP_
Message
>
(
ie_eap_message_tmp
);
ie_eap_message
=
std
::
optional
<
E
ap
Message
>
(
ie_eap_message_tmp
);
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
}
break
;
...
...
src/nas/msgs/RegistrationAccept.hpp
View file @
911008f6
...
...
@@ -175,7 +175,7 @@ class RegistrationAccept : public NasMmPlainHeader {
// TODO: Extended emergency number list
std
::
optional
<
SOR_Transparent_Container
>
ie_sor_transparent_container
;
// Optional
std
::
optional
<
E
AP_Message
>
ie_eap_message
;
// Optional
std
::
optional
<
E
apMessage
>
ie_eap_message
;
// Optional
std
::
optional
<
NSSAI_Inclusion_Mode
>
ie_nssai_inclusion_mode
;
// Optional
// TODO: Operator-defined access category definitions
std
::
optional
<
_5GS_DRX_Parameters
>
ie_negotiated_drx_parameters
;
// Optional
...
...
src/nas/msgs/RegistrationReject.cpp
View file @
911008f6
...
...
@@ -61,7 +61,7 @@ void RegistrationReject::setGPRS_Timer_2_3502(uint8_t value) {
//------------------------------------------------------------------------------
void
RegistrationReject
::
setEAP_Message
(
bstring
eap
)
{
ie_eap_message
=
std
::
make_optional
<
E
AP_
Message
>
(
kIeiEapMessage
,
eap
);
ie_eap_message
=
std
::
make_optional
<
E
ap
Message
>
(
kIeiEapMessage
,
eap
);
}
//------------------------------------------------------------------------------
...
...
@@ -172,10 +172,10 @@ int RegistrationReject::Decode(
}
break
;
case
kIeiEapMessage
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI 0x78: EAP Message"
);
E
AP_
Message
ie_eap_message_tmp
=
{};
E
ap
Message
ie_eap_message_tmp
=
{};
decoded_size
+=
ie_eap_message_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
);
ie_eap_message
=
std
::
optional
<
E
AP_
Message
>
(
ie_eap_message_tmp
);
ie_eap_message
=
std
::
optional
<
E
ap
Message
>
(
ie_eap_message_tmp
);
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
}
break
;
...
...
src/nas/msgs/RegistrationReject.hpp
View file @
911008f6
...
...
@@ -55,7 +55,7 @@ class RegistrationReject : public NasMmPlainHeader {
_5GMM_Cause
ie_5gmm_cause
;
// Mandatory
std
::
optional
<
GprsTimer2
>
ie_T3346_value
;
// Optional
std
::
optional
<
GprsTimer2
>
ie_T3502_value
;
// Optional
std
::
optional
<
E
AP_Message
>
ie_eap_message
;
// Optional
std
::
optional
<
E
apMessage
>
ie_eap_message
;
// Optional
std
::
optional
<
Rejected_NSSAI
>
ie_rejected_nssai
;
// Release 16.4.1
};
...
...
src/nas/msgs/SecurityModeCommand.cpp
View file @
911008f6
...
...
@@ -103,7 +103,7 @@ void SecurityModeCommand::setAdditional_5G_Security_Information(
//------------------------------------------------------------------------------
void
SecurityModeCommand
::
setEAP_Message
(
bstring
eap
)
{
ie_eap_message
=
new
E
AP_
Message
(
0x78
,
eap
);
ie_eap_message
=
new
E
ap
Message
(
0x78
,
eap
);
}
//------------------------------------------------------------------------------
...
...
@@ -284,7 +284,7 @@ int SecurityModeCommand::Decode(
}
break
;
case
0x78
:
{
Logger
::
nas_mm
().
debug
(
"decoding IEI (0x78)"
);
ie_eap_message
=
new
E
AP_
Message
();
ie_eap_message
=
new
E
ap
Message
();
decoded_size
+=
ie_eap_message
->
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
);
octet
=
*
(
buf
+
decoded_size
);
...
...
src/nas/msgs/SecurityModeCommand.hpp
View file @
911008f6
...
...
@@ -60,7 +60,7 @@ class SecurityModeCommand {
IMEISV_Request
*
ie_imeisv_request
;
EPS_NAS_Security_Algorithms
*
ie_eps_nas_security_algorithms
;
Additional_5G_Security_Information
*
ie_additional_5G_security_information
;
E
AP_
Message
*
ie_eap_message
;
E
ap
Message
*
ie_eap_message
;
ABBA
*
ie_abba
;
S1_UE_Security_Capability
*
ie_s1_ue_security_capability
;
};
...
...
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