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
df3d7310
Commit
df3d7310
authored
Feb 09, 2023
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Code cleanup for Security Mode Complete/Reject
parent
b57dc98d
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
25 deletions
+39
-25
src/nas/msgs/SecurityModeComplete.cpp
src/nas/msgs/SecurityModeComplete.cpp
+23
-14
src/nas/msgs/SecurityModeComplete.hpp
src/nas/msgs/SecurityModeComplete.hpp
+3
-3
src/nas/msgs/SecurityModeReject.cpp
src/nas/msgs/SecurityModeReject.cpp
+13
-8
No files found.
src/nas/msgs/SecurityModeComplete.cpp
View file @
df3d7310
...
@@ -44,7 +44,7 @@ void SecurityModeComplete::SetHeader(uint8_t security_header_type) {
...
@@ -44,7 +44,7 @@ void SecurityModeComplete::SetHeader(uint8_t security_header_type) {
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void
SecurityModeComplete
::
SetImeisv
(
IMEISV_t
imeisv
)
{
void
SecurityModeComplete
::
SetImeisv
(
const
IMEISV_t
&
imeisv
)
{
ie_imeisv
=
ie_imeisv
=
std
::
make_optional
<
_5GSMobileIdentity
>
(
kIei5gsMobileIdentityImeiSv
);
std
::
make_optional
<
_5GSMobileIdentity
>
(
kIei5gsMobileIdentityImeiSv
);
// ie_imeisv->SetIei(kIei5gsMobileIdentityImeiSv);
// ie_imeisv->SetIei(kIei5gsMobileIdentityImeiSv);
...
@@ -52,12 +52,12 @@ void SecurityModeComplete::SetImeisv(IMEISV_t imeisv) {
...
@@ -52,12 +52,12 @@ void SecurityModeComplete::SetImeisv(IMEISV_t imeisv) {
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void
SecurityModeComplete
::
SetNasMessageContainer
(
bstring
value
)
{
void
SecurityModeComplete
::
SetNasMessageContainer
(
const
bstring
&
value
)
{
ie_nas_message_container
=
std
::
make_optional
<
NasMessageContainer
>
(
value
);
ie_nas_message_container
=
std
::
make_optional
<
NasMessageContainer
>
(
value
);
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void
SecurityModeComplete
::
SetNonImeisv
(
IMEISV_t
imeisv
)
{
void
SecurityModeComplete
::
SetNonImeisv
(
const
IMEISV_t
&
imeisv
)
{
ie_non_imeisvpei
=
ie_non_imeisvpei
=
std
::
make_optional
<
_5GSMobileIdentity
>
(
kIei5gsMobileIdentityNonImeiSvPei
);
std
::
make_optional
<
_5GSMobileIdentity
>
(
kIei5gsMobileIdentityNonImeiSvPei
);
// ie_non_imeisvpei->SetIei(kIei5gsMobileIdentityNonImeiSvPei);
// ie_non_imeisvpei->SetIei(kIei5gsMobileIdentityNonImeiSvPei);
...
@@ -109,46 +109,52 @@ int SecurityModeComplete::Encode(uint8_t* buf, int len) {
...
@@ -109,46 +109,52 @@ int SecurityModeComplete::Encode(uint8_t* buf, int len) {
encoded_size
+=
encoded_ie_size
;
encoded_size
+=
encoded_ie_size
;
if
(
!
ie_imeisv
.
has_value
())
{
if
(
!
ie_imeisv
.
has_value
())
{
Logger
::
nas_mm
().
warn
(
"IE ie_imeisv is not available"
);
Logger
::
nas_mm
().
debug
(
"IE %s is not available"
,
_5GSMobileIdentity
::
GetIeName
().
c_str
());
}
else
{
}
else
{
int
size
=
ie_imeisv
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
int
size
=
ie_imeisv
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
if
(
size
!=
KEncodeDecodeError
)
{
if
(
size
!=
KEncodeDecodeError
)
{
encoded_size
+=
size
;
encoded_size
+=
size
;
}
else
{
}
else
{
Logger
::
nas_mm
().
error
(
"Encoding ie_imeisv error"
);
Logger
::
nas_mm
().
error
(
"Encoding %s error"
,
_5GSMobileIdentity
::
GetIeName
().
c_str
());
return
KEncodeDecodeError
;
return
KEncodeDecodeError
;
}
}
}
}
if
(
!
ie_nas_message_container
.
has_value
())
{
if
(
!
ie_nas_message_container
.
has_value
())
{
Logger
::
nas_mm
().
warn
(
"IE ie_nas_message_container is not available"
);
Logger
::
nas_mm
().
debug
(
"IE %s is not available"
,
NasMessageContainer
::
GetIeName
().
c_str
());
}
else
{
}
else
{
int
size
=
ie_nas_message_container
.
value
().
Encode
(
int
size
=
ie_nas_message_container
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
buf
+
encoded_size
,
len
-
encoded_size
);
if
(
size
!=
KEncodeDecodeError
)
{
if
(
size
!=
KEncodeDecodeError
)
{
encoded_size
+=
size
;
encoded_size
+=
size
;
}
else
{
}
else
{
Logger
::
nas_mm
().
error
(
"Encoding ie_nas_message_container error"
);
Logger
::
nas_mm
().
error
(
"Encoding %s error"
,
NasMessageContainer
::
GetIeName
().
c_str
());
return
KEncodeDecodeError
;
return
KEncodeDecodeError
;
}
}
}
}
if
(
!
ie_non_imeisvpei
.
has_value
())
{
if
(
!
ie_non_imeisvpei
.
has_value
())
{
Logger
::
nas_mm
().
warn
(
"IE ie_non_imeisvpei is not available"
);
Logger
::
nas_mm
().
debug
(
"IE %s is not available"
,
_5GSMobileIdentity
::
GetIeName
().
c_str
());
}
else
{
}
else
{
int
size
=
int
size
=
ie_non_imeisvpei
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
ie_non_imeisvpei
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
if
(
size
!=
KEncodeDecodeError
)
{
if
(
size
!=
KEncodeDecodeError
)
{
encoded_size
+=
size
;
encoded_size
+=
size
;
}
else
{
}
else
{
Logger
::
nas_mm
().
error
(
"Encoding ie_non_imeisvpei error"
);
Logger
::
nas_mm
().
error
(
"Encoding %s error"
,
_5GSMobileIdentity
::
GetIeName
().
c_str
());
return
KEncodeDecodeError
;
return
KEncodeDecodeError
;
}
}
}
}
Logger
::
nas_mm
().
debug
(
Logger
::
nas_mm
().
debug
(
"Encoded SecurityModeComplete message len (%d)"
,
encoded_size
);
"Encoded SecurityModeComplete message len (%d)"
,
encoded_size
);
return
1
;
return
encoded_size
;
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
...
@@ -169,11 +175,13 @@ int SecurityModeComplete::Decode(uint8_t* buf, int len) {
...
@@ -169,11 +175,13 @@ int SecurityModeComplete::Decode(uint8_t* buf, int len) {
// while ((octet != 0x0)) {
// while ((octet != 0x0)) {
while
(
len
-
decoded_size
>
0
)
{
while
(
len
-
decoded_size
>
0
)
{
uint8_t
octet
=
*
(
buf
+
decoded_size
);
uint8_t
octet
=
0x00
;
DECODE_U8_VALUE
(
buf
+
decoded_size
,
octet
);
Logger
::
nas_mm
().
debug
(
"Optional IEI (0x%x)"
,
octet
);
Logger
::
nas_mm
().
debug
(
"Optional IEI (0x%x)"
,
octet
);
switch
(
octet
)
{
switch
(
octet
)
{
case
kIei5gsMobileIdentityImeiSv
:
{
case
kIei5gsMobileIdentityImeiSv
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0x77)"
);
Logger
::
nas_mm
().
debug
(
"Decoding IEI 0x%x"
,
kIei5gsMobileIdentityImeiSv
);
_5GSMobileIdentity
ie_imeisv_tmp
=
{};
_5GSMobileIdentity
ie_imeisv_tmp
=
{};
if
((
decoded_result
=
ie_imeisv_tmp
.
Decode
(
if
((
decoded_result
=
ie_imeisv_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
...
@@ -184,7 +192,7 @@ int SecurityModeComplete::Decode(uint8_t* buf, int len) {
...
@@ -184,7 +192,7 @@ int SecurityModeComplete::Decode(uint8_t* buf, int len) {
}
break
;
}
break
;
case
kIeiNasMessageContainer
:
{
case
kIeiNasMessageContainer
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI
(0x71)"
);
Logger
::
nas_mm
().
debug
(
"Decoding IEI
0x%x"
,
kIeiNasMessageContainer
);
NasMessageContainer
ie_nas_message_container_tmp
=
{};
NasMessageContainer
ie_nas_message_container_tmp
=
{};
if
((
decoded_result
=
ie_nas_message_container_tmp
.
Decode
(
if
((
decoded_result
=
ie_nas_message_container_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
...
@@ -196,7 +204,8 @@ int SecurityModeComplete::Decode(uint8_t* buf, int len) {
...
@@ -196,7 +204,8 @@ int SecurityModeComplete::Decode(uint8_t* buf, int len) {
}
break
;
}
break
;
case
kIei5gsMobileIdentityNonImeiSvPei
:
{
case
kIei5gsMobileIdentityNonImeiSvPei
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0x78)"
);
Logger
::
nas_mm
().
debug
(
"Decoding IEI 0x%x"
,
kIei5gsMobileIdentityNonImeiSvPei
);
_5GSMobileIdentity
ie_non_imeisvpei_tmp
=
{};
_5GSMobileIdentity
ie_non_imeisvpei_tmp
=
{};
if
((
decoded_result
=
ie_non_imeisvpei_tmp
.
Decode
(
if
((
decoded_result
=
ie_non_imeisvpei_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
...
...
src/nas/msgs/SecurityModeComplete.hpp
View file @
df3d7310
...
@@ -36,13 +36,13 @@ class SecurityModeComplete : public NasMmPlainHeader {
...
@@ -36,13 +36,13 @@ class SecurityModeComplete : public NasMmPlainHeader {
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
uint8_t
*
buf
,
int
len
);
void
SetImeisv
(
IMEISV_t
imeisv
);
void
SetImeisv
(
const
IMEISV_t
&
imeisv
);
bool
GetImeisv
(
IMEISV_t
&
imeisv
)
const
;
bool
GetImeisv
(
IMEISV_t
&
imeisv
)
const
;
void
SetNasMessageContainer
(
bstring
value
);
void
SetNasMessageContainer
(
const
bstring
&
value
);
bool
GetNasMessageContainer
(
bstring
&
nas
)
const
;
bool
GetNasMessageContainer
(
bstring
&
nas
)
const
;
void
SetNonImeisv
(
IMEISV_t
imeisv
);
void
SetNonImeisv
(
const
IMEISV_t
&
imeisv
);
bool
GetNonImeisv
(
IMEISV_t
&
imeisv
)
const
;
bool
GetNonImeisv
(
IMEISV_t
&
imeisv
)
const
;
public:
public:
...
...
src/nas/msgs/SecurityModeReject.cpp
View file @
df3d7310
...
@@ -45,7 +45,7 @@ void SecurityModeReject::Set5gmmCause(uint8_t value) {
...
@@ -45,7 +45,7 @@ void SecurityModeReject::Set5gmmCause(uint8_t value) {
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
int
SecurityModeReject
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
int
SecurityModeReject
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"
e
ncoding SecurityModeReject message"
);
Logger
::
nas_mm
().
debug
(
"
E
ncoding SecurityModeReject message"
);
int
encoded_size
=
0
;
int
encoded_size
=
0
;
int
encoded_ie_size
=
0
;
int
encoded_ie_size
=
0
;
...
@@ -58,20 +58,24 @@ int SecurityModeReject::Encode(uint8_t* buf, int len) {
...
@@ -58,20 +58,24 @@ int SecurityModeReject::Encode(uint8_t* buf, int len) {
encoded_size
+=
encoded_ie_size
;
encoded_size
+=
encoded_ie_size
;
// 5GMM Cause
// 5GMM Cause
if
(
int
size
=
ie_5gmm_cause
.
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
))
{
encoded_ie_size
=
encoded_size
+=
size
;
ie_5gmm_cause
.
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
if
(
encoded_ie_size
!=
KEncodeDecodeError
)
{
encoded_size
+=
encoded_ie_size
;
}
else
{
}
else
{
Logger
::
nas_mm
().
error
(
"Encoding ie_5gmm_cause error"
);
Logger
::
nas_mm
().
error
(
"Encoding %s error"
,
_5gmmCause
::
GetIeName
().
c_str
());
return
KEncodeDecodeError
;
}
}
Logger
::
nas_mm
().
debug
(
Logger
::
nas_mm
().
debug
(
"
e
ncoded SecurityModeReject message len(%d)"
,
encoded_size
);
"
E
ncoded SecurityModeReject message len(%d)"
,
encoded_size
);
return
encoded_size
;
return
encoded_size
;
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
int
SecurityModeReject
::
Decode
(
uint8_t
*
buf
,
int
len
)
{
int
SecurityModeReject
::
Decode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"
d
ecoding SecurityModeReject message"
);
Logger
::
nas_mm
().
debug
(
"
D
ecoding SecurityModeReject message"
);
int
decoded_size
=
0
;
int
decoded_size
=
0
;
int
decoded_result
=
0
;
int
decoded_result
=
0
;
...
@@ -89,11 +93,12 @@ int SecurityModeReject::Decode(uint8_t* buf, int len) {
...
@@ -89,11 +93,12 @@ int SecurityModeReject::Decode(uint8_t* buf, int len) {
if
(
decoded_result
!=
KEncodeDecodeError
)
{
if
(
decoded_result
!=
KEncodeDecodeError
)
{
decoded_size
+=
decoded_result
;
decoded_size
+=
decoded_result
;
}
else
{
}
else
{
Logger
::
nas_mm
().
error
(
"Encoding ie_payload_container error"
);
Logger
::
nas_mm
().
error
(
"Decoding %s error"
,
_5gmmCause
::
GetIeName
().
c_str
());
return
KEncodeDecodeError
;
return
KEncodeDecodeError
;
}
}
Logger
::
nas_mm
().
debug
(
Logger
::
nas_mm
().
debug
(
"
d
ecoded SecurityModeReject message len(%d)"
,
decoded_size
);
"
D
ecoded SecurityModeReject message len(%d)"
,
decoded_size
);
return
decoded_size
;
return
decoded_size
;
}
}
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