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
18d41c6b
Commit
18d41c6b
authored
Jan 16, 2023
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update Security Mode Reject
parent
d1ff5425
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
54 additions
and
58 deletions
+54
-58
src/nas/msgs/AuthenticationResult.cpp
src/nas/msgs/AuthenticationResult.cpp
+1
-9
src/nas/msgs/SecurityModeReject.cpp
src/nas/msgs/SecurityModeReject.cpp
+43
-35
src/nas/msgs/SecurityModeReject.hpp
src/nas/msgs/SecurityModeReject.hpp
+10
-14
No files found.
src/nas/msgs/AuthenticationResult.cpp
View file @
18d41c6b
...
...
@@ -19,13 +19,6 @@
* contact@openairinterface.org
*/
/*! \file
\brief
\author Keliang DU, BUPT
\date 2020
\email: contact@openairinterface.org
*/
#include "AuthenticationResult.hpp"
#include "3gpp_24.501.hpp"
...
...
@@ -56,7 +49,7 @@ void AuthenticationResult::SetNgKsi(uint8_t tsc, uint8_t key_set_id) {
//------------------------------------------------------------------------------
void
AuthenticationResult
::
SetAbba
(
uint8_t
length
,
uint8_t
*
value
)
{
ie_abba
=
std
::
make_optional
<
ABBA
>
(
0x38
,
length
,
value
);
ie_abba
=
std
::
make_optional
<
ABBA
>
(
kIeiAbba
,
length
,
value
);
}
//------------------------------------------------------------------------------
...
...
@@ -67,7 +60,6 @@ void AuthenticationResult::SetEapMessage(bstring eap) {
//------------------------------------------------------------------------------
int
AuthenticationResult
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"Encoding AuthenticationResult message"
);
int
encoded_size
=
0
;
int
encoded_ie_size
=
0
;
...
...
src/nas/msgs/SecurityModeReject.cpp
View file @
18d41c6b
...
...
@@ -34,65 +34,73 @@
using
namespace
nas
;
//------------------------------------------------------------------------------
SecurityModeReject
::
SecurityModeReject
()
{
Logger
::
nas_mm
().
debug
(
"initiating class SecurityModeReject"
);
plain_header
=
NULL
;
ie_5gmm_cause
=
NULL
;
}
SecurityModeReject
::
SecurityModeReject
()
:
NasMmPlainHeader
(
EPD_5GS_MM_MSG
,
SECURITY_MODE_REJECT
)
{}
//------------------------------------------------------------------------------
SecurityModeReject
::~
SecurityModeReject
()
{}
//------------------------------------------------------------------------------
void
SecurityModeReject
::
SetHeader
(
uint8_t
security_header_type
)
{
plain_header
=
new
NasMmPlainHeader
();
plain_header
->
SetHeader
(
EPD_5GS_MM_MSG
,
security_header_type
,
SECURITY_MODE_REJECT
);
NasMmPlainHeader
::
SetSecurityHeaderType
(
security_header_type
);
}
//------------------------------------------------------------------------------
void
SecurityModeReject
::
Set5gmmCause
(
uint8_t
value
)
{
ie_5gmm_cause
=
new
_5gmmCause
(
0x00
,
value
);
ie_5gmm_cause
.
SetValue
(
value
);
}
//------------------------------------------------------------------------------
int
SecurityModeReject
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"encoding SecurityModeReject message"
);
int
encoded_size
=
0
;
if
(
!
plain_header
)
{
Logger
::
nas_mm
().
error
(
"Mandatory IE missing Header"
);
return
0
;
int
encoded_ie_size
=
0
;
// Header
if
((
encoded_ie_size
=
NasMmPlainHeader
::
Encode
(
buf
,
len
))
==
KEncodeDecodeError
)
{
Logger
::
nas_mm
().
error
(
"Encoding NAS Header error"
);
return
KEncodeDecodeError
;
}
if
(
!
(
plain_header
->
Encode
(
buf
,
len
)))
return
0
;
encoded_size
+=
3
;
if
(
!
ie_5gmm_cause
)
{
Logger
::
nas_mm
().
warn
(
"IE ie_5gmm_cause is not available"
);
}
else
{
if
(
int
size
=
ie_5gmm_cause
->
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
))
{
encoded_size
+=
encoded_ie_size
;
// 5GMM Cause
if
(
int
size
=
ie_5gmm_cause
.
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
))
{
encoded_size
+=
size
;
}
else
{
Logger
::
nas_mm
().
error
(
"encoding ie_5gmm_cause error"
);
}
Logger
::
nas_mm
().
error
(
"Encoding ie_5gmm_cause error"
);
}
Logger
::
nas_mm
().
debug
(
"encoded SecurityModeReject message len(%d)"
,
encoded_size
);
return
1
;
return
encoded_size
;
}
//------------------------------------------------------------------------------
int
SecurityModeReject
::
Decode
(
NasMmPlainHeader
*
header
,
uint8_t
*
buf
,
int
len
)
{
int
SecurityModeReject
::
Decode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"decoding SecurityModeReject message"
);
int
decoded_size
=
3
;
plain_header
=
header
;
ie_5gmm_cause
=
new
_5gmmCause
();
decoded_size
+=
ie_5gmm_cause
->
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
false
);
Logger
::
nas_mm
().
debug
(
"decoded_size(%d)"
,
decoded_size
);
uint8_t
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"first option iei(0x%x)"
,
octet
);
int
decoded_size
=
0
;
int
decoded_result
=
0
;
// Header
decoded_result
=
NasMmPlainHeader
::
Decode
(
buf
,
len
);
if
(
decoded_result
==
KEncodeDecodeError
)
{
Logger
::
nas_mm
().
error
(
"Decoding NAS Header error"
);
return
KEncodeDecodeError
;
}
decoded_size
+=
decoded_result
;
// 5GMM Cause
decoded_result
=
ie_5gmm_cause
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
false
);
if
(
decoded_result
!=
KEncodeDecodeError
)
{
decoded_size
+=
decoded_result
;
}
else
{
Logger
::
nas_mm
().
error
(
"Encoding ie_payload_container error"
);
return
KEncodeDecodeError
;
}
Logger
::
nas_mm
().
debug
(
"decoded SecurityModeReject message len(%d)"
,
decoded_size
);
return
1
;
return
decoded_size
;
}
src/nas/msgs/SecurityModeReject.hpp
View file @
18d41c6b
...
...
@@ -19,32 +19,28 @@
* contact@openairinterface.org
*/
/*! \file
\brief
\author Keliang DU, BUPT
\date 2020
\email: contact@openairinterface.org
*/
#ifndef _SecurityModeReject_H_
#define _SecurityModeReject_H_
#ifndef _SECURITY_MODE_REJECT_H_
#define _SECURITY_MODE_REJECT_H_
#include "NasIeHeader.hpp"
namespace
nas
{
class
SecurityModeReject
{
class
SecurityModeReject
:
public
NasMmPlainHeader
{
public:
SecurityModeReject
();
~
SecurityModeReject
();
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
NasMmPlainHeader
*
header
,
uint8_t
*
buf
,
int
len
);
void
SetHeader
(
uint8_t
security_header_type
);
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
uint8_t
*
buf
,
int
len
);
void
Set5gmmCause
(
uint8_t
value
);
// Get
public:
NasMmPlainHeader
*
plain_header
;
_5gmmCause
*
ie_5gmm_cause
;
_5gmmCause
ie_5gmm_cause
;
// Mandatory
};
}
// 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