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
692c1bb0
Commit
692c1bb0
authored
Jan 15, 2023
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update Authentication Failure
parent
e8c98233
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
157 additions
and
106 deletions
+157
-106
src/nas/common/Ie_Const.hpp
src/nas/common/Ie_Const.hpp
+2
-0
src/nas/common/NasIeHeader.hpp
src/nas/common/NasIeHeader.hpp
+1
-1
src/nas/ies/Authentication_Failure_Parameter.cpp
src/nas/ies/Authentication_Failure_Parameter.cpp
+75
-56
src/nas/ies/Authentication_Failure_Parameter.hpp
src/nas/ies/Authentication_Failure_Parameter.hpp
+24
-18
src/nas/ies/Authentication_Parameter_AUTN.cpp
src/nas/ies/Authentication_Parameter_AUTN.cpp
+1
-1
src/nas/ies/_5gmmCause.cpp
src/nas/ies/_5gmmCause.cpp
+10
-10
src/nas/ies/_5gmmCause.hpp
src/nas/ies/_5gmmCause.hpp
+5
-5
src/nas/msgs/AuthenticationFailure.cpp
src/nas/msgs/AuthenticationFailure.cpp
+23
-4
src/nas/msgs/AuthenticationFailure.hpp
src/nas/msgs/AuthenticationFailure.hpp
+8
-3
src/nas/msgs/DLNASTransport.cpp
src/nas/msgs/DLNASTransport.cpp
+3
-3
src/nas/msgs/DLNASTransport.hpp
src/nas/msgs/DLNASTransport.hpp
+1
-1
src/nas/msgs/RegistrationReject.hpp
src/nas/msgs/RegistrationReject.hpp
+1
-1
src/nas/msgs/SecurityModeReject.cpp
src/nas/msgs/SecurityModeReject.cpp
+2
-2
src/nas/msgs/SecurityModeReject.hpp
src/nas/msgs/SecurityModeReject.hpp
+1
-1
No files found.
src/nas/common/Ie_Const.hpp
View file @
692c1bb0
...
...
@@ -110,6 +110,8 @@ constexpr uint8_t kIeiAuthenticationResponseParameter = 0x2D;
constexpr
uint8_t
kIeiUeSecurityCapability
=
0x2e
;
constexpr
uint8_t
kIeiUeNetworkCapability
=
0x17
;
constexpr
uint8_t
kIeiAuthenticationFailureParameter
=
0x30
;
constexpr
uint8_t
kIeiAdditional5gSecurityInformation
=
0x36
;
constexpr
uint8_t
kIeiAbba
=
0x38
;
...
...
src/nas/common/NasIeHeader.hpp
View file @
692c1bb0
...
...
@@ -70,7 +70,7 @@
#include "UESecurityCapability.hpp"
#include "UeRadioCapabilityId.hpp"
#include "UplinkDataStatus.hpp"
#include "_5
GMM_
Cause.hpp"
#include "_5
gmm
Cause.hpp"
#include "_5GSDeregistrationType.hpp"
#include "_5GSTrackingAreaIdList.hpp"
#include "_5GS_DRX_Parameters.hpp"
...
...
src/nas/ies/Authentication_Failure_Parameter.cpp
View file @
692c1bb0
...
...
@@ -19,93 +19,112 @@
* contact@openairinterface.org
*/
/*! \file
\brief
\author Keliang DU, BUPT
\date 2020
\email: contact@openairinterface.org
*/
#include "Authentication_Failure_Parameter.hpp"
#include "logger.hpp"
using
namespace
nas
;
//------------------------------------------------------------------------------
Authentication_Failure_Parameter
::
Authentication_Failure_Parameter
(
uint8_t
iei
)
{
_iei
=
iei
;
length
=
0
;
value
=
0
;
Authentication_Failure_Parameter
::
Authentication_Failure_Parameter
()
:
Type4NasIe
(
kIeiAuthenticationFailureParameter
),
value_
()
{
SetLengthIndicator
(
kAuthenticationFailureParameterContentLength
);
SetIeName
(
kAuthenticationFailureParameterIeName
);
}
//------------------------------------------------------------------------------
Authentication_Failure_Parameter
::
Authentication_Failure_Parameter
(
const
uint8_t
iei
,
bstring
auts
)
{
_iei
=
iei
;
value
=
bstrcpy
(
auts
);
length
=
blength
(
auts
)
+
2
;
const
bstring
&
value
)
{
value_
=
bstrcpy
(
value
)
;
SetLengthIndicator
(
kAuthenticationFailureParameterContentLength
);
SetIeName
(
kAuthenticationFailureParameterIeName
)
;
}
//------------------------------------------------------------------------------
Authentication_Failure_Parameter
::
Authentication_Failure_Parameter
()
:
_iei
(),
length
(),
value
()
{}
Authentication_Failure_Parameter
::~
Authentication_Failure_Parameter
()
{}
/*
//------------------------------------------------------------------------------
Authentication_Failure_Parameter
::~
Authentication_Failure_Parameter
()
{}
void Authentication_Failure_Parameter::SetValue(const uint8_t
(&value)[kAuthenticationFailureParameterContentLength]) { for (int i = 0; i <
kAuthenticationFailureParameterContentLength; i++) { this->value_[i] = value[i];
}
}
//------------------------------------------------------------------------------
void
Authentication_Failure_Parameter
::
getValue
(
bstring
&
auts
)
{
auts
=
bstrcpy
(
value
);
void Authentication_Failure_Parameter::GetValue(uint8_t
(&value)[kAuthenticationFailureParameterContentLength]) const{ for (int i = 0; i
< kAuthenticationFailureParameterContentLength; i++) { value[i] =
this->value_[i];
}
}
*/
//------------------------------------------------------------------------------
void
Authentication_Failure_Parameter
::
SetValue
(
const
bstring
&
value
)
{
value_
=
bstrcpy
(
value
);
SetLengthIndicator
(
blength
(
value
));
}
//------------------------------------------------------------------------------
void
Authentication_Failure_Parameter
::
GetValue
(
bstring
&
value
)
const
{
value
=
bstrcpy
(
value_
);
}
//------------------------------------------------------------------------------
int
Authentication_Failure_Parameter
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"encoding Authentication_Failure_Parameter iei(0x%x)"
,
_iei
);
if
(
len
<
length
)
{
Logger
::
nas_mm
().
error
(
"len is less than %x"
,
length
);
return
0
;
Logger
::
nas_mm
().
debug
(
"Encoding %s"
,
GetIeName
().
c_str
());
int
ie_len
=
GetIeLength
();
if
(
len
<
ie_len
)
{
Logger
::
nas_mm
().
error
(
"Len is less than %d"
,
ie_len
);
return
KEncodeDecodeError
;
}
int
encoded_size
=
0
;
if
(
_iei
)
{
*
(
buf
+
encoded_size
)
=
_iei
;
encoded_size
++
;
*
(
buf
+
encoded_size
)
=
length
-
2
;
encoded_size
++
;
int
size
=
encode_bstring
(
value
,
(
buf
+
encoded_size
),
len
-
encoded_size
);
encoded_size
+=
size
;
return
encoded_size
;
}
else
{
// *(buf + encoded_size) = length - 1; encoded_size++;
// *(buf + encoded_size) = _value; encoded_size++; encoded_size++;
// IEI and Length
int
encoded_header_size
=
Type4NasIe
::
Encode
(
buf
+
encoded_size
,
len
);
if
(
encoded_header_size
==
KEncodeDecodeError
)
return
KEncodeDecodeError
;
encoded_size
+=
encoded_header_size
;
// Value
/* for (int i = 0; i < kAuthenticationFailureParameterContentLength; i++) {
ENCODE_U8(buf + encoded_size, value_[i], encoded_size);
}
*/
int
size
=
encode_bstring
(
value_
,
(
buf
+
encoded_size
),
len
-
encoded_size
);
encoded_size
+=
size
;
Logger
::
nas_mm
().
debug
(
"Encoded
Authentication_Failure_Parameter len (%d)"
,
encoded_size
);
"Encoded
%s, len (%d)"
,
GetIeName
().
c_str
()
,
encoded_size
);
return
encoded_size
;
}
//------------------------------------------------------------------------------
int
Authentication_Failure_Parameter
::
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_option
)
{
Logger
::
nas_mm
().
debug
(
"Decoding Authentication_Failure_Parameter iei (0x%x)"
,
*
buf
);
int
decoded_size
=
0
;
if
(
is_option
)
{
decoded_size
++
;
}
length
=
*
(
buf
+
decoded_size
);
decoded_size
++
;
Logger
::
nas_mm
().
debug
(
"Decoded IE Authentication_Failure_Parameter length (%d)"
,
length
);
decode_bstring
(
&
value
,
length
,
(
buf
+
decoded_size
),
len
-
decoded_size
);
decoded_size
+=
length
;
for
(
int
i
=
0
;
i
<
length
;
i
++
)
{
Logger
::
nas_mm
().
debug
(
"Decoded Authentication_Failure_Parameter value (0x%x)"
,
(
uint8_t
)
value
->
data
[
i
]);
uint8_t
*
buf
,
int
len
,
bool
is_iei
)
{
uint8_t
decoded_size
=
0
;
uint8_t
octet
=
0
;
Logger
::
nas_mm
().
debug
(
"Decoding %s"
,
GetIeName
().
c_str
());
// IEI and Length
int
decoded_header_size
=
Type4NasIe
::
Decode
(
buf
+
decoded_size
,
len
,
is_iei
);
if
(
decoded_header_size
==
KEncodeDecodeError
)
return
KEncodeDecodeError
;
decoded_size
+=
decoded_header_size
;
if
(
GetLengthIndicator
()
!=
kAuthenticationFailureParameterContentLength
)
return
KEncodeDecodeError
;
// Value
uint8_t
ie_len
=
GetLengthIndicator
();
decode_bstring
(
&
value_
,
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 value 0x%x"
,
(
uint8_t
)
value_
->
data
[
i
]);
}
Logger
::
nas_mm
().
debug
(
"Decoded
Authentication_Failure_Parameter len (%d)"
,
decoded_size
);
"Decoded
%s, len (%d)"
,
GetIeName
().
c_str
()
,
decoded_size
);
return
decoded_size
;
}
src/nas/ies/Authentication_Failure_Parameter.hpp
View file @
692c1bb0
...
...
@@ -19,41 +19,47 @@
* contact@openairinterface.org
*/
/*! \file
\brief
\author Keliang DU, BUPT
\date 2020
\email: contact@openairinterface.org
*/
#ifndef _AUTHENTICATION_FAILURE_PARAMETER_H_
#define _AUTHENTICATION_FAILURE_PARAMETER_H_
#include "Type4NasIe.hpp"
#ifndef __Authentication_Failure_Parameter_H_
#define __Authentication_Failure_Parameter_H_
#include <stdint.h>
#include <iostream>
extern
"C"
{
#include "TLVDecoder.h"
#include "TLVEncoder.h"
#include "bstrlib.h"
}
constexpr
uint8_t
kAuthenticationFailureParameterLength
=
16
;
constexpr
uint8_t
kAuthenticationFailureParameterContentLength
=
kAuthenticationFailureParameterLength
-
2
;
constexpr
auto
kAuthenticationFailureParameterIeName
=
"5GMM Capability"
;
namespace
nas
{
class
Authentication_Failure_Parameter
{
class
Authentication_Failure_Parameter
:
public
Type4NasIe
{
public:
Authentication_Failure_Parameter
();
Authentication_Failure_Parameter
(
uint8_t
iei
);
Authentication_Failure_Parameter
(
const
uint8_t
iei
,
bstring
auts
);
Authentication_Failure_Parameter
(
const
uint8_t
(
&
value
)[
kAuthenticationFailureParameterContentLength
]);
Authentication_Failure_Parameter
(
const
bstring
&
value
);
~
Authentication_Failure_Parameter
();
// void setValue(uint8_t iei, uint8_t value);
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_option
);
void
getValue
(
bstring
&
auts
);
int
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_iei
);
// void SetValue(const uint8_t
// (&value)[kAuthenticationFailureParameterContentLength]); void
// GetValue(uint8_t (&value)[kAuthenticationFailureParameterContentLength])
// const;
void
SetValue
(
const
bstring
&
value
);
void
GetValue
(
bstring
&
value
)
const
;
private:
uint8_t
_iei
;
uint8_t
length
;
bstring
value
;
// uint8_t value_[kAuthenticationFailureParameterContentLength];
bstring
value_
;
};
}
// namespace nas
...
...
src/nas/ies/Authentication_Parameter_AUTN.cpp
View file @
692c1bb0
...
...
@@ -104,6 +104,6 @@ int Authentication_Parameter_AUTN::Decode(uint8_t* buf, int len, bool is_iei) {
"Decoded Authentication_Parameter_AUTN value (0x%2x)"
,
_value
[
j
]);
}
Logger
::
nas_mm
().
debug
(
"Decoded
Authentication_Parameter_AUTN len (%d)"
,
decoded_size
);
"Decoded
%s, len (%d)"
,
GetIeName
().
c_str
()
,
decoded_size
);
return
decoded_size
;
}
src/nas/ies/_5
GMM_
Cause.cpp
→
src/nas/ies/_5
gmm
Cause.cpp
View file @
692c1bb0
...
...
@@ -18,7 +18,7 @@
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#include "_5
GMM_
Cause.hpp"
#include "_5
gmm
Cause.hpp"
#include "3gpp_24.501.hpp"
#include "common_defs.h"
...
...
@@ -26,44 +26,44 @@
using
namespace
nas
;
//------------------------------------------------------------------------------
_5
GMM_Cause
::
_5GMM_
Cause
(
uint8_t
iei
)
:
Type3NasIe
(
iei
)
{
_5
gmmCause
::
_5gmm
Cause
(
uint8_t
iei
)
:
Type3NasIe
(
iei
)
{
value_
=
0
;
SetIeName
(
k5gmmCauseIeName
);
}
//------------------------------------------------------------------------------
_5
GMM_Cause
::
_5GMM_
Cause
()
:
Type3NasIe
()
{
_5
gmmCause
::
_5gmm
Cause
()
:
Type3NasIe
()
{
value_
=
0
;
SetIeName
(
k5gmmCauseIeName
);
}
//------------------------------------------------------------------------------
_5
GMM_Cause
::
_5GMM_
Cause
(
uint8_t
iei
,
uint8_t
value
)
:
Type3NasIe
(
iei
)
{
_5
gmmCause
::
_5gmm
Cause
(
uint8_t
iei
,
uint8_t
value
)
:
Type3NasIe
(
iei
)
{
value_
=
value
;
SetIeName
(
k5gmmCauseIeName
);
}
//------------------------------------------------------------------------------
_5
GMM_Cause
::~
_5GMM_
Cause
(){};
_5
gmmCause
::~
_5gmm
Cause
(){};
//------------------------------------------------------------------------------
void
_5
GMM_
Cause
::
SetValue
(
uint8_t
value
)
{
void
_5
gmm
Cause
::
SetValue
(
uint8_t
value
)
{
value_
=
value
;
}
//------------------------------------------------------------------------------
uint8_t
_5
GMM_
Cause
::
GetValue
()
const
{
uint8_t
_5
gmm
Cause
::
GetValue
()
const
{
return
value_
;
}
//------------------------------------------------------------------------------
void
_5
GMM_
Cause
::
Set
(
uint8_t
iei
,
uint8_t
value
)
{
void
_5
gmm
Cause
::
Set
(
uint8_t
iei
,
uint8_t
value
)
{
SetIei
(
iei
);
value_
=
value
;
}
//------------------------------------------------------------------------------
int
_5
GMM_
Cause
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
int
_5
gmm
Cause
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"Encoding %s"
,
GetIeName
().
c_str
());
if
(
len
<
k5gmmCauseMaximumLength
)
{
...
...
@@ -85,7 +85,7 @@ int _5GMM_Cause::Encode(uint8_t* buf, int len) {
}
//------------------------------------------------------------------------------
int
_5
GMM_
Cause
::
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_iei
)
{
int
_5
gmm
Cause
::
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_iei
)
{
Logger
::
nas_mm
().
debug
(
"Decoding %s"
,
GetIeName
().
c_str
());
if
(
len
<
k5gmmCauseMinimumLength
)
{
...
...
src/nas/ies/_5
GMM_
Cause.hpp
→
src/nas/ies/_5
gmm
Cause.hpp
View file @
692c1bb0
...
...
@@ -74,12 +74,12 @@ constexpr auto k5gmmCauseIeName = "5GMM Cause";
namespace
nas
{
class
_5
GMM_
Cause
:
public
Type3NasIe
{
class
_5
gmm
Cause
:
public
Type3NasIe
{
public:
_5
GMM_
Cause
();
_5
GMM_
Cause
(
uint8_t
iei
);
_5
GMM_
Cause
(
uint8_t
_iei
,
uint8_t
value
);
~
_5
GMM_
Cause
();
_5
gmm
Cause
();
_5
gmm
Cause
(
uint8_t
iei
);
_5
gmm
Cause
(
uint8_t
_iei
,
uint8_t
value
);
~
_5
gmm
Cause
();
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_iei
);
...
...
src/nas/msgs/AuthenticationFailure.cpp
View file @
692c1bb0
...
...
@@ -50,15 +50,34 @@ uint8_t AuthenticationFailure::get5GMmCause() {
return
ie_5gmm_cause
.
GetValue
();
}
/*
//------------------------------------------------------------------------------
void AuthenticationFailure::setAuthentication_Failure_Parameter(
const uint8_t (&value)[kAuthenticationFailureParameterContentLength]) {
ie_authentication_failure_parameter =
std::make_optional<Authentication_Failure_Parameter>(value);
}
bool AuthenticationFailure::getAutsInAuthFailPara(uint8_t
(&value)[kAuthenticationFailureParameterContentLength]) const{ if
(ie_authentication_failure_parameter.has_value()) {
ie_authentication_failure_parameter.value().GetValue(value);
return true;
} else {
return false;
}
}
*/
//------------------------------------------------------------------------------
void
AuthenticationFailure
::
setAuthentication_Failure_Parameter
(
const
bstring
&
auts
)
{
const
bstring
&
value
)
{
ie_authentication_failure_parameter
=
std
::
make_optional
<
Authentication_Failure_Parameter
>
(
0x30
,
auts
);
std
::
make_optional
<
Authentication_Failure_Parameter
>
(
value
);
}
bool
AuthenticationFailure
::
getAutsInAuthFailPara
(
bstring
&
auts
)
{
bool
AuthenticationFailure
::
getAutsInAuthFailPara
(
bstring
&
value
)
const
{
if
(
ie_authentication_failure_parameter
.
has_value
())
{
ie_authentication_failure_parameter
.
value
().
getValue
(
auts
);
ie_authentication_failure_parameter
.
value
().
GetValue
(
value
);
return
true
;
}
else
{
return
false
;
...
...
src/nas/msgs/AuthenticationFailure.hpp
View file @
692c1bb0
...
...
@@ -39,11 +39,16 @@ class AuthenticationFailure : public NasMmPlainHeader {
void
Set5gmmCause
(
uint8_t
value
);
uint8_t
get5GMmCause
();
void
setAuthentication_Failure_Parameter
(
const
bstring
&
auts
);
bool
getAutsInAuthFailPara
(
bstring
&
auts
);
// void setAuthentication_Failure_Parameter(const uint8_t
// (&value)[kAuthenticationFailureParameterContentLength]); bool
// getAutsInAuthFailPara(uint8_t
// (&value)[kAuthenticationFailureParameterContentLength]) const;
void
setAuthentication_Failure_Parameter
(
const
bstring
&
value
);
bool
getAutsInAuthFailPara
(
bstring
&
value
)
const
;
public:
_5
GMM_
Cause
ie_5gmm_cause
;
// Mandatory
_5
gmm
Cause
ie_5gmm_cause
;
// Mandatory
std
::
optional
<
Authentication_Failure_Parameter
>
ie_authentication_failure_parameter
;
// Optional
};
...
...
src/nas/msgs/DLNASTransport.cpp
View file @
692c1bb0
...
...
@@ -74,7 +74,7 @@ void DLNASTransport::SetAdditionalInformation(const bstring& value) {
//------------------------------------------------------------------------------
void
DLNASTransport
::
Set5gmmCause
(
uint8_t
value
)
{
ie_5gmm_cause
=
std
::
make_optional
<
_5
GMM_
Cause
>
(
0x58
,
value
);
ie_5gmm_cause
=
std
::
make_optional
<
_5
gmm
Cause
>
(
0x58
,
value
);
}
//------------------------------------------------------------------------------
...
...
@@ -238,13 +238,13 @@ int DLNASTransport::Decode(uint8_t* buf, int len) {
}
break
;
case
kIei5gmmCause
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0x58)"
);
_5
GMM_
Cause
ie_5gmm_cause_tmp
=
{};
_5
gmm
Cause
ie_5gmm_cause_tmp
=
{};
if
((
decoded_result
=
ie_5gmm_cause_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
KEncodeDecodeError
)
return
decoded_result
;
decoded_size
+=
decoded_result
;
ie_5gmm_cause
=
std
::
optional
<
_5
GMM_
Cause
>
(
ie_5gmm_cause_tmp
);
ie_5gmm_cause
=
std
::
optional
<
_5
gmm
Cause
>
(
ie_5gmm_cause_tmp
);
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
}
break
;
...
...
src/nas/msgs/DLNASTransport.hpp
View file @
692c1bb0
...
...
@@ -58,7 +58,7 @@ class DLNASTransport : public NasMmPlainHeader {
Payload_Container
ie_payload_container
;
// Mandatory
std
::
optional
<
PduSessionIdentity2
>
ie_pdu_session_identity_2
;
// Optional
std
::
optional
<
AdditionalInformation
>
ie_additional_information
;
// Optional
std
::
optional
<
_5
GMM_Cause
>
ie_5gmm_cause
;
// Optional
std
::
optional
<
_5
gmmCause
>
ie_5gmm_cause
;
// Optional
std
::
optional
<
GprsTimer3
>
ie_back_off_timer_value
;
// Optional
};
...
...
src/nas/msgs/RegistrationReject.hpp
View file @
692c1bb0
...
...
@@ -52,7 +52,7 @@ class RegistrationReject : public NasMmPlainHeader {
// TODO: Get
public:
_5
GMM_Cause
ie_5gmm_cause
;
// Mandatory
_5
gmmCause
ie_5gmm_cause
;
// Mandatory
std
::
optional
<
GprsTimer2
>
ie_T3346_value
;
// Optional
std
::
optional
<
GprsTimer2
>
ie_T3502_value
;
// Optional
std
::
optional
<
EapMessage
>
ie_eap_message
;
// Optional
...
...
src/nas/msgs/SecurityModeReject.cpp
View file @
692c1bb0
...
...
@@ -52,7 +52,7 @@ void SecurityModeReject::SetHeader(uint8_t security_header_type) {
//------------------------------------------------------------------------------
void
SecurityModeReject
::
Set5gmmCause
(
uint8_t
value
)
{
ie_5gmm_cause
=
new
_5
GMM_
Cause
(
0x00
,
value
);
ie_5gmm_cause
=
new
_5
gmm
Cause
(
0x00
,
value
);
}
//------------------------------------------------------------------------------
...
...
@@ -86,7 +86,7 @@ int SecurityModeReject::Decode(
Logger
::
nas_mm
().
debug
(
"decoding SecurityModeReject message"
);
int
decoded_size
=
3
;
plain_header
=
header
;
ie_5gmm_cause
=
new
_5
GMM_
Cause
();
ie_5gmm_cause
=
new
_5
gmm
Cause
();
decoded_size
+=
ie_5gmm_cause
->
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
false
);
Logger
::
nas_mm
().
debug
(
"decoded_size(%d)"
,
decoded_size
);
...
...
src/nas/msgs/SecurityModeReject.hpp
View file @
692c1bb0
...
...
@@ -44,7 +44,7 @@ class SecurityModeReject {
public:
NasMmPlainHeader
*
plain_header
;
_5
GMM_
Cause
*
ie_5gmm_cause
;
_5
gmm
Cause
*
ie_5gmm_cause
;
};
}
// namespace nas
...
...
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