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
8d963e2b
Commit
8d963e2b
authored
Feb 09, 2023
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Code cleanup for Service Reject/Accept
parent
df3d7310
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
39 additions
and
41 deletions
+39
-41
src/nas/msgs/ServiceAccept.cpp
src/nas/msgs/ServiceAccept.cpp
+1
-3
src/nas/msgs/ServiceAccept.hpp
src/nas/msgs/ServiceAccept.hpp
+1
-1
src/nas/msgs/ServiceReject.cpp
src/nas/msgs/ServiceReject.cpp
+34
-32
src/nas/msgs/ServiceReject.hpp
src/nas/msgs/ServiceReject.hpp
+3
-5
No files found.
src/nas/msgs/ServiceAccept.cpp
View file @
8d963e2b
...
...
@@ -124,7 +124,6 @@ int ServiceAccept::Encode(uint8_t* buf, int len) {
encoded_ie_size
=
ie_pdu_session_reactivation_result_error_cause
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
if
(
encoded_ie_size
!=
KEncodeDecodeError
)
{
encoded_size
+=
encoded_ie_size
;
}
else
{
...
...
@@ -141,7 +140,6 @@ int ServiceAccept::Encode(uint8_t* buf, int len) {
}
else
{
encoded_ie_size
=
ie_eap_message
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
if
(
encoded_ie_size
!=
KEncodeDecodeError
)
{
encoded_size
+=
encoded_ie_size
;
}
else
{
...
...
@@ -184,7 +182,7 @@ int ServiceAccept::Decode(uint8_t* buf, int len) {
return
KEncodeDecodeError
;
}
decoded_size
+=
decoded_result
;
Logger
::
nas_mm
().
debug
(
"Decoded_size(%d)"
,
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Decoded_size
(%d)"
,
decoded_size
);
// Decode other IEs
uint8_t
octet
=
0x00
;
...
...
src/nas/msgs/ServiceAccept.hpp
View file @
8d963e2b
...
...
@@ -41,7 +41,7 @@ class ServiceAccept : public NasMmPlainHeader {
void
SetPduSessionStatus
(
uint16_t
value
);
// TODO: Get
void
SetPduSessionReactivationResult
(
uint16_t
);
void
SetPduSessionReactivationResult
(
uint16_t
value
);
// TODO: Get
void
SetPduSessionReactivationResultErrorCause
(
...
...
src/nas/msgs/ServiceReject.cpp
View file @
8d963e2b
...
...
@@ -28,10 +28,10 @@ using namespace nas;
//------------------------------------------------------------------------------
ServiceReject
::
ServiceReject
()
:
NasMmPlainHeader
(
EPD_5GS_MM_MSG
,
SERVICE_REJECT
)
{
ie_
PDU
_session_status
=
std
::
nullopt
;
ie_
T
3346_value
=
std
::
nullopt
;
ie_
pdu
_session_status
=
std
::
nullopt
;
ie_
t
3346_value
=
std
::
nullopt
;
ie_eap_message
=
std
::
nullopt
;
ie_
T
3448_value
=
std
::
nullopt
;
ie_
t
3448_value
=
std
::
nullopt
;
}
//------------------------------------------------------------------------------
...
...
@@ -54,12 +54,12 @@ uint8_t ServiceReject::Get5GMmCause() {
//------------------------------------------------------------------------------
void
ServiceReject
::
SetPduSessionStatus
(
uint16_t
value
)
{
ie_
PDU
_session_status
=
std
::
make_optional
<
PDUSessionStatus
>
(
value
);
ie_
pdu
_session_status
=
std
::
make_optional
<
PDUSessionStatus
>
(
value
);
}
//------------------------------------------------------------------------------
void
ServiceReject
::
SetT3346Value
(
uint8_t
value
)
{
ie_
T
3346_value
=
std
::
make_optional
<
GprsTimer2
>
(
kT3346Value
,
value
);
ie_
t
3346_value
=
std
::
make_optional
<
GprsTimer2
>
(
kT3346Value
,
value
);
}
//------------------------------------------------------------------------------
...
...
@@ -69,7 +69,7 @@ void ServiceReject::SetEapMessage(bstring eap) {
//------------------------------------------------------------------------------
void
ServiceReject
::
SetT3448Value
(
uint8_t
unit
,
uint8_t
value
)
{
ie_
T
3448_value
=
ie_
t
3448_value
=
std
::
make_optional
<
GprsTimer3
>
(
kIeiGprsTimer3T3448
,
unit
,
value
);
}
...
...
@@ -87,9 +87,10 @@ int ServiceReject::Encode(uint8_t* buf, int len) {
encoded_size
+=
encoded_ie_size
;
// 5GMM cause
int
size
=
ie_5gmm_cause
.
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
if
(
size
!=
KEncodeDecodeError
)
{
encoded_size
+=
size
;
encoded_ie_size
=
ie_5gmm_cause
.
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
if
(
encoded_ie_size
!=
KEncodeDecodeError
)
{
encoded_size
+=
encoded_ie_size
;
}
else
{
Logger
::
nas_mm
().
error
(
"Encoding %s error"
,
_5gmmCause
::
GetIeName
().
c_str
());
...
...
@@ -97,11 +98,11 @@ int ServiceReject::Encode(uint8_t* buf, int len) {
}
// PDU session status
if
(
!
ie_
PDU
_session_status
.
has_value
())
{
if
(
!
ie_
pdu
_session_status
.
has_value
())
{
Logger
::
nas_mm
().
debug
(
"IE %s is not available"
,
PDUSessionStatus
::
GetIeName
().
c_str
());
}
else
{
encoded_ie_size
=
ie_
PDU
_session_status
.
value
().
Encode
(
encoded_ie_size
=
ie_
pdu
_session_status
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
if
(
encoded_ie_size
!=
KEncodeDecodeError
)
{
encoded_size
+=
encoded_ie_size
;
...
...
@@ -113,13 +114,14 @@ int ServiceReject::Encode(uint8_t* buf, int len) {
}
// T3346 value
if
(
!
ie_
T
3346_value
.
has_value
())
{
if
(
!
ie_
t
3346_value
.
has_value
())
{
Logger
::
nas_mm
().
debug
(
"IE %s is not available"
,
GprsTimer2
::
GetIeName
().
c_str
());
}
else
{
if
(
int
size
=
ie_T3346_value
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
))
{
encoded_size
+=
size
;
encoded_ie_size
=
ie_t3346_value
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
if
(
encoded_ie_size
!=
KEncodeDecodeError
)
{
encoded_size
+=
encoded_ie_size
;
}
else
{
Logger
::
nas_mm
().
error
(
"Encoding %s error"
,
GprsTimer2
::
GetIeName
().
c_str
());
...
...
@@ -144,12 +146,12 @@ int ServiceReject::Encode(uint8_t* buf, int len) {
}
// T3448 value
if
(
!
ie_
T
3448_value
.
has_value
())
{
if
(
!
ie_
t
3448_value
.
has_value
())
{
Logger
::
nas_mm
().
debug
(
"IE %s is not available"
,
GprsTimer3
::
GetIeName
().
c_str
());
}
else
{
encoded_ie_size
=
ie_
T
3448_value
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
ie_
t
3448_value
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
);
if
(
encoded_ie_size
!=
KEncodeDecodeError
)
{
encoded_size
+=
encoded_ie_size
;
}
else
{
...
...
@@ -187,7 +189,7 @@ int ServiceReject::Decode(uint8_t* buf, int len) {
return
KEncodeDecodeError
;
}
decoded_size
+=
decoded_result
;
Logger
::
nas_mm
().
debug
(
"Decoded_size(%d)"
,
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Decoded_size
(%d)"
,
decoded_size
);
// Decode other IEs
uint8_t
octet
=
0x00
;
...
...
@@ -199,27 +201,27 @@ int ServiceReject::Decode(uint8_t* buf, int len) {
switch
(
octet
)
{
case
kIeiPduSessionStatus
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI 0x%x"
,
kIeiPduSessionStatus
);
PDUSessionStatus
ie_
PDU
_session_status_tmp
=
{};
if
((
decoded_result
=
ie_
PDU
_session_status_tmp
.
Decode
(
PDUSessionStatus
ie_
pdu
_session_status_tmp
=
{};
if
((
decoded_result
=
ie_
pdu
_session_status_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
KEncodeDecodeError
)
return
decoded_result
;
return
KEncodeDecodeError
;
decoded_size
+=
decoded_result
;
ie_
PDU
_session_status
=
std
::
optional
<
PDUSessionStatus
>
(
ie_
PDU
_session_status_tmp
);
ie_
pdu
_session_status
=
std
::
optional
<
PDUSessionStatus
>
(
ie_
pdu
_session_status_tmp
);
DECODE_U8_VALUE
(
buf
+
decoded_size
,
octet
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
}
break
;
case
kT3346Value
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI 0x5F: T3346 Value"
);
GprsTimer2
ie_
T
3346_value_tmp
(
kT3346Value
);
if
((
decoded_result
=
ie_
T
3346_value_tmp
.
Decode
(
GprsTimer2
ie_
t
3346_value_tmp
(
kT3346Value
);
if
((
decoded_result
=
ie_
t
3346_value_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
KEncodeDecodeError
)
return
decoded_result
;
return
KEncodeDecodeError
;
decoded_size
+=
decoded_result
;
ie_
T3346_value
=
std
::
optional
<
GprsTimer2
>
(
ie_T
3346_value_tmp
);
ie_
t3346_value
=
std
::
optional
<
GprsTimer2
>
(
ie_t
3346_value_tmp
);
DECODE_U8_VALUE
(
buf
+
decoded_size
,
octet
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
}
break
;
...
...
@@ -230,7 +232,7 @@ int ServiceReject::Decode(uint8_t* buf, int len) {
if
((
decoded_result
=
ie_eap_message_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
KEncodeDecodeError
)
return
decoded_result
;
return
KEncodeDecodeError
;
decoded_size
+=
decoded_result
;
ie_eap_message
=
std
::
optional
<
EapMessage
>
(
ie_eap_message_tmp
);
DECODE_U8_VALUE
(
buf
+
decoded_size
,
octet
);
...
...
@@ -239,13 +241,13 @@ int ServiceReject::Decode(uint8_t* buf, int len) {
case
kIeiGprsTimer3T3448
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI 0x%x"
,
kIeiGprsTimer3T3448
);
GprsTimer3
ie_
T
3448_value_tmp
(
kIeiGprsTimer3T3448
);
if
((
decoded_result
=
ie_
T
3448_value_tmp
.
Decode
(
GprsTimer3
ie_
t
3448_value_tmp
(
kIeiGprsTimer3T3448
);
if
((
decoded_result
=
ie_
t
3448_value_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
KEncodeDecodeError
)
return
decoded_result
;
return
KEncodeDecodeError
;
decoded_size
+=
decoded_result
;
ie_
T3448_value
=
std
::
optional
<
GprsTimer3
>
(
ie_T
3448_value_tmp
);
ie_
t3448_value
=
std
::
optional
<
GprsTimer3
>
(
ie_t
3448_value_tmp
);
DECODE_U8_VALUE
(
buf
+
decoded_size
,
octet
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
}
break
;
...
...
src/nas/msgs/ServiceReject.hpp
View file @
8d963e2b
...
...
@@ -20,11 +20,9 @@
*/
#ifndef _SERVICE_REJECT_H_
#define _SERVICE_REJECT_H_
#include <stdint.h>
#include <string>
#include "NasIeHeader.hpp"
...
...
@@ -58,10 +56,10 @@ class ServiceReject : public NasMmPlainHeader {
private:
_5gmmCause
ie_5gmm_cause
;
// Mandatory
std
::
optional
<
PDUSessionStatus
>
ie_
PDU
_session_status
;
// Optional
std
::
optional
<
GprsTimer2
>
ie_
T
3346_value
;
// Optional
std
::
optional
<
PDUSessionStatus
>
ie_
pdu
_session_status
;
// Optional
std
::
optional
<
GprsTimer2
>
ie_
t
3346_value
;
// Optional
std
::
optional
<
EapMessage
>
ie_eap_message
;
// Optional
std
::
optional
<
GprsTimer3
>
ie_
T
3448_value
;
// Optional
std
::
optional
<
GprsTimer3
>
ie_
t
3448_value
;
// Optional
};
}
// 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