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
975316a8
Commit
975316a8
authored
Jan 06, 2023
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update 5GS Tracking Area Identity
parent
869df966
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
107 additions
and
79 deletions
+107
-79
src/nas/ies/NSSAI.cpp
src/nas/ies/NSSAI.cpp
+3
-3
src/nas/ies/NSSAI.hpp
src/nas/ies/NSSAI.hpp
+3
-3
src/nas/ies/Type3NasIe.cpp
src/nas/ies/Type3NasIe.cpp
+26
-0
src/nas/ies/_5GSTrackingAreaIdentity.cpp
src/nas/ies/_5GSTrackingAreaIdentity.cpp
+38
-38
src/nas/ies/_5GSTrackingAreaIdentity.hpp
src/nas/ies/_5GSTrackingAreaIdentity.hpp
+15
-14
src/nas/msgs/RegistrationAccept.cpp
src/nas/msgs/RegistrationAccept.cpp
+8
-8
src/nas/msgs/RegistrationRequest.cpp
src/nas/msgs/RegistrationRequest.cpp
+13
-12
src/nas/msgs/RegistrationRequest.hpp
src/nas/msgs/RegistrationRequest.hpp
+1
-1
No files found.
src/nas/ies/NSSAI.cpp
View file @
975316a8
...
...
@@ -56,12 +56,12 @@ NSSAI::NSSAI() : Type4NasIe(), S_NSSAIs() {
NSSAI
::~
NSSAI
()
{}
//------------------------------------------------------------------------------
void
NSSAI
::
getValue
(
std
::
vector
<
struct
SNSSAI_s
>&
nssai
)
{
void
NSSAI
::
GetValue
(
std
::
vector
<
struct
SNSSAI_s
>&
nssai
)
const
{
nssai
.
assign
(
S_NSSAIs
.
begin
(),
S_NSSAIs
.
end
());
}
//------------------------------------------------------------------------------
int
NSSAI
::
encode2Buffer
(
uint8_t
*
buf
,
int
len
)
{
int
NSSAI
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"Encoding %s"
,
GetIeName
().
c_str
());
int
ie_len
=
GetIeLength
();
...
...
@@ -109,7 +109,7 @@ int NSSAI::encode2Buffer(uint8_t* buf, int len) {
}
//------------------------------------------------------------------------------
int
NSSAI
::
decodeFromBuffer
(
uint8_t
*
buf
,
int
len
,
bool
is_iei
)
{
int
NSSAI
::
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_iei
)
{
Logger
::
nas_mm
().
debug
(
"Decoding %s"
,
GetIeName
().
c_str
());
if
(
len
<
kNssaiMinimumLength
)
{
Logger
::
nas_mm
().
error
(
...
...
src/nas/ies/NSSAI.hpp
View file @
975316a8
...
...
@@ -40,9 +40,9 @@ class NSSAI : public Type4NasIe {
NSSAI
(
uint8_t
iei
);
NSSAI
(
uint8_t
iei
,
const
std
::
vector
<
struct
SNSSAI_s
>&
nssai
);
~
NSSAI
();
int
encode2Buffer
(
uint8_t
*
buf
,
int
len
);
int
decodeFromBuffer
(
uint8_t
*
buf
,
int
len
,
bool
is_iei
);
void
getValue
(
std
::
vector
<
struct
SNSSAI_s
>&
nssai
)
;
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_iei
);
void
GetValue
(
std
::
vector
<
struct
SNSSAI_s
>&
nssai
)
const
;
private:
std
::
vector
<
struct
SNSSAI_s
>
...
...
src/nas/ies/Type3NasIe.cpp
View file @
975316a8
...
...
@@ -54,3 +54,29 @@ bool Type3NasIe::Validate(const int& len) const {
}
return
true
;
}
//------------------------------------------------------------------------------
int
Type3NasIe
::
Encode
(
uint8_t
*
buf
,
const
int
&
len
)
{
if
(
!
Validate
(
len
))
return
KEncodeDecodeError
;
int
encoded_size
=
0
;
uint8_t
octet
=
0
;
if
(
iei_
.
has_value
())
{
ENCODE_U8
(
buf
+
encoded_size
,
iei_
.
value
(),
encoded_size
);
}
return
encoded_size
;
}
//------------------------------------------------------------------------------
int
Type3NasIe
::
Decode
(
const
uint8_t
*
const
buf
,
const
int
&
len
,
bool
is_iei
)
{
if
(
!
Validate
(
len
))
return
KEncodeDecodeError
;
int
decoded_size
=
0
;
uint8_t
octet
=
0
;
if
(
is_iei
)
{
DECODE_U8
(
buf
+
decoded_size
,
octet
,
decoded_size
);
iei_
=
std
::
optional
<
uint8_t
>
(
octet
);
}
return
decoded_size
;
}
src/nas/ies/_5GSTrackingAreaIdentity.cpp
View file @
975316a8
...
...
@@ -25,75 +25,70 @@
#include "common_defs.h"
#include "logger.hpp"
#include "NasUtils.hpp"
#include "Ie_Const.hpp"
using
namespace
nas
;
//------------------------------------------------------------------------------
_5GSTrackingAreaIdentity
::
_5GSTrackingAreaIdentity
(
uint8_t
iei
)
{
_iei
=
iei
;
_5GSTrackingAreaIdentity
::
_5GSTrackingAreaIdentity
(
)
:
Type3NasIe
(
kIei5gsTrackingAreaIdentity
)
{
mcc_
=
{};
mnc_
=
{};
tac_
=
0x0000
;
tac_
=
0
;
SetIeName
(
k5gsTrackingAreaIdentityIeName
);
}
//------------------------------------------------------------------------------
_5GSTrackingAreaIdentity
::
_5GSTrackingAreaIdentity
(
const
uint8_t
iei
,
const
std
::
string
&
mcc
,
const
std
::
string
&
mnc
,
const
uint32_t
&
tac
)
{
_iei
=
iei
;
const
std
::
string
&
mcc
,
const
std
::
string
&
mnc
,
const
uint32_t
&
tac
)
:
Type3NasIe
(
kIei5gsTrackingAreaIdentity
)
{
mcc_
=
mcc
;
mnc_
=
mnc
;
tac_
=
tac
&
0x0fff
;
}
//------------------------------------------------------------------------------
_5GSTrackingAreaIdentity
::
_5GSTrackingAreaIdentity
()
{
_iei
=
0
;
mcc_
=
{};
mnc_
=
{};
tac_
=
0
;
SetIeName
(
k5gsTrackingAreaIdentityIeName
);
}
//------------------------------------------------------------------------------
_5GSTrackingAreaIdentity
::~
_5GSTrackingAreaIdentity
()
{}
//------------------------------------------------------------------------------
void
_5GSTrackingAreaIdentity
::
setTAC
(
const
uint32_t
&
value
)
{
void
_5GSTrackingAreaIdentity
::
SetTac
(
const
uint32_t
&
value
)
{
tac_
=
value
&
0x0fff
;
}
//------------------------------------------------------------------------------
uint32_t
_5GSTrackingAreaIdentity
::
getTAC
()
const
{
uint32_t
_5GSTrackingAreaIdentity
::
GetTac
()
const
{
return
tac_
;
}
//------------------------------------------------------------------------------
void
_5GSTrackingAreaIdentity
::
getTAC
(
uint32_t
&
value
)
const
{
void
_5GSTrackingAreaIdentity
::
GetTac
(
uint32_t
&
value
)
const
{
value
=
tac_
;
}
//------------------------------------------------------------------------------
void
_5GSTrackingAreaIdentity
::
s
etMcc
(
const
std
::
string
&
mcc
)
{
void
_5GSTrackingAreaIdentity
::
S
etMcc
(
const
std
::
string
&
mcc
)
{
mcc_
=
mcc
;
}
//------------------------------------------------------------------------------
void
_5GSTrackingAreaIdentity
::
g
etMcc
(
std
::
string
&
mcc
)
const
{
void
_5GSTrackingAreaIdentity
::
G
etMcc
(
std
::
string
&
mcc
)
const
{
mcc
=
mcc_
;
}
//------------------------------------------------------------------------------
void
_5GSTrackingAreaIdentity
::
s
etMnc
(
const
std
::
string
&
mnc
)
{
void
_5GSTrackingAreaIdentity
::
S
etMnc
(
const
std
::
string
&
mnc
)
{
mnc_
=
mnc
;
}
//------------------------------------------------------------------------------
void
_5GSTrackingAreaIdentity
::
g
etMnc
(
std
::
string
&
mnc
)
const
{
void
_5GSTrackingAreaIdentity
::
G
etMnc
(
std
::
string
&
mnc
)
const
{
mnc
=
mnc_
;
}
//------------------------------------------------------------------------------
int
_5GSTrackingAreaIdentity
::
encode2Buffer
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"Encoding _5GSTrackingAreaIdentity (IEI 0x%x)"
,
_iei
);
int
_5GSTrackingAreaIdentity
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"Encoding %s"
,
GetIeName
().
c_str
());
if
(
len
<
k5gsTrackingAreaIdentityLength
)
{
Logger
::
nas_mm
().
error
(
"Buffer length is less than the minimum length of this IE (%d octet)"
,
...
...
@@ -102,30 +97,35 @@ int _5GSTrackingAreaIdentity::encode2Buffer(uint8_t* buf, int len) {
}
int
encoded_size
=
0
;
if
(
_iei
)
{
ENCODE_U8
(
buf
+
encoded_size
,
_iei
,
encoded_size
);
}
// IEI
encoded_size
+=
Type3NasIe
::
Encode
(
buf
+
encoded_size
,
len
);
// MCC, MNC
encoded_size
+=
NasUtils
::
encodeMccMnc2Buffer
(
mcc_
,
mnc_
,
buf
+
encoded_size
,
len
-
encoded_size
);
// TAC
ENCODE_U24
(
buf
+
encoded_size
,
tac_
,
encoded_size
);
Logger
::
nas_mm
().
debug
(
"Encoded
_5GSTrackingAreaIdentity len (%d)"
,
encoded_size
);
"Encoded
%s, len (%d)"
,
GetIeName
().
c_str
()
,
encoded_size
);
return
encoded_size
;
}
//------------------------------------------------------------------------------
int
_5GSTrackingAreaIdentity
::
decodeFromBuffer
(
uint8_t
*
buf
,
int
len
,
bool
is_option
)
{
Logger
::
nas_mm
().
debug
(
"Decoding _5GSTrackingAreaIdentity"
);
i
nt
decoded_size
=
0
;
if
(
is_option
)
{
DECODE_U8
(
buf
+
decoded_size
,
_iei
,
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Decoding _5GSTrackingAreaIdentity IEI (0x%x)"
,
_iei
)
;
int
_5GSTrackingAreaIdentity
::
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_iei
)
{
Logger
::
nas_mm
().
debug
(
"Decoding %s"
,
GetIeName
().
c_str
());
i
f
(
len
<
k5gsTrackingAreaIdentityLength
)
{
Logger
::
nas_mm
().
error
(
"Buffer length is less than the minimum length of this IE (%d octet)"
,
k5gsTrackingAreaIdentityLength
);
return
KEncodeDecodeError
;
}
int
decoded_size
=
0
;
// IEI and Length
decoded_size
+=
Type3NasIe
::
Decode
(
buf
+
decoded_size
,
len
,
true
);
decoded_size
+=
NasUtils
::
decodeMccMncFromBuffer
(
mcc_
,
mnc_
,
buf
+
decoded_size
,
len
-
decoded_size
);
...
...
@@ -133,6 +133,6 @@ int _5GSTrackingAreaIdentity::decodeFromBuffer(
Logger
::
nas_mm
().
debug
(
"Decoded TAC 0x%x"
,
tac_
);
Logger
::
nas_mm
().
debug
(
"Decoded
_5GSTrackingAreaIdentity len(%d)"
,
decoded_size
);
"Decoded
%s, len (%d)"
,
GetIeName
().
c_str
()
,
decoded_size
);
return
decoded_size
;
}
src/nas/ies/_5GSTrackingAreaIdentity.hpp
View file @
975316a8
...
...
@@ -22,38 +22,39 @@
#ifndef __5GS_TRACKING_AREA_IDENTITY_H_
#define __5GS_TRACKING_AREA_IDENTITY_H_
#include "Type3NasIe.hpp"
#include <stdint.h>
#include <string>
constexpr
uint8_t
k5gsTrackingAreaIdentityLength
=
7
;
constexpr
auto
k5gsTrackingAreaIdentityIeName
=
"5GS Tracking Area Identity"
;
namespace
nas
{
class
_5GSTrackingAreaIdentity
{
class
_5GSTrackingAreaIdentity
:
public
Type3NasIe
{
public:
_5GSTrackingAreaIdentity
();
_5GSTrackingAreaIdentity
(
uint8_t
iei
);
_5GSTrackingAreaIdentity
(
uint8_t
iei
)
=
delete
;
_5GSTrackingAreaIdentity
(
const
uint8_t
iei
,
const
std
::
string
&
mcc
,
const
std
::
string
&
mnc
,
const
uint32_t
&
tac
);
const
std
::
string
&
mcc
,
const
std
::
string
&
mnc
,
const
uint32_t
&
tac
);
~
_5GSTrackingAreaIdentity
();
int
encode2Buffer
(
uint8_t
*
buf
,
int
len
);
int
decodeFromBuffer
(
uint8_t
*
buf
,
int
len
,
bool
is_option
);
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_iei
=
true
);
void
setTAC
(
const
uint32_t
&
value
);
uint32_t
getTAC
()
const
;
void
getTAC
(
uint32_t
&
value
)
const
;
void
SetTac
(
const
uint32_t
&
value
);
uint32_t
GetTac
()
const
;
void
GetTac
(
uint32_t
&
value
)
const
;
void
s
etMcc
(
const
std
::
string
&
mcc
);
void
g
etMcc
(
std
::
string
&
mcc
)
const
;
void
S
etMcc
(
const
std
::
string
&
mcc
);
void
G
etMcc
(
std
::
string
&
mcc
)
const
;
void
s
etMnc
(
const
std
::
string
&
mnc
);
void
g
etMnc
(
std
::
string
&
mnc
)
const
;
void
S
etMnc
(
const
std
::
string
&
mnc
);
void
G
etMnc
(
std
::
string
&
mnc
)
const
;
private:
uint8_t
_iei
;
std
::
string
mcc_
;
std
::
string
mnc_
;
uint32_t
tac_
;
...
...
src/nas/msgs/RegistrationAccept.cpp
View file @
975316a8
...
...
@@ -341,8 +341,8 @@ int RegistrationAccept::encode2Buffer(uint8_t* buf, int len) {
if
(
!
ie_allowed_nssai
)
{
Logger
::
nas_mm
().
warn
(
"IE ie_allowed_nssai is not available"
);
}
else
{
if
(
int
size
=
ie_allowed_nssai
->
encode2Buffer
(
buf
+
encoded_size
,
len
-
encoded_size
))
{
if
(
int
size
=
ie_allowed_nssai
->
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
))
{
encoded_size
+=
size
;
}
else
{
Logger
::
nas_mm
().
error
(
"Encoding ie_allowed_nssai error"
);
...
...
@@ -362,7 +362,7 @@ int RegistrationAccept::encode2Buffer(uint8_t* buf, int len) {
if
(
!
ie_configured_nssai
)
{
Logger
::
nas_mm
().
warn
(
"IE ie_configured_nssai is not available"
);
}
else
{
if
(
int
size
=
ie_configured_nssai
->
encode2Buffer
(
if
(
int
size
=
ie_configured_nssai
->
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
))
{
encoded_size
+=
size
;
}
else
{
...
...
@@ -600,8 +600,8 @@ int RegistrationAccept::encode2Buffer(uint8_t* buf, int len) {
if
(
!
ie_pending_nssai
)
{
Logger
::
nas_mm
().
warn
(
"IE ie_pending_nssai is not available"
);
}
else
{
if
(
int
size
=
ie_pending_nssai
->
encode2Buffer
(
buf
+
encoded_size
,
len
-
encoded_size
))
{
if
(
int
size
=
ie_pending_nssai
->
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
))
{
encoded_size
+=
size
;
}
else
{
Logger
::
nas_mm
().
error
(
"Encoding ie_pending_nssai error"
);
...
...
@@ -684,7 +684,7 @@ int RegistrationAccept::decodeFromBuffer(uint8_t* buf, int len) {
case
0x15
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0x15)"
);
ie_allowed_nssai
=
new
NSSAI
();
decoded_size
+=
ie_allowed_nssai
->
decodeFromBuffer
(
decoded_size
+=
ie_allowed_nssai
->
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
);
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
...
...
@@ -700,7 +700,7 @@ int RegistrationAccept::decodeFromBuffer(uint8_t* buf, int len) {
case
0x31
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0x31)"
);
ie_configured_nssai
=
new
NSSAI
();
decoded_size
+=
ie_configured_nssai
->
decodeFromBuffer
(
decoded_size
+=
ie_configured_nssai
->
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
);
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
...
...
@@ -840,7 +840,7 @@ int RegistrationAccept::decodeFromBuffer(uint8_t* buf, int len) {
case
0x39
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0x39)"
);
ie_pending_nssai
=
new
NSSAI
();
decoded_size
+=
ie_pending_nssai
->
decodeFromBuffer
(
decoded_size
+=
ie_pending_nssai
->
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
);
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
...
...
src/nas/msgs/RegistrationRequest.cpp
View file @
975316a8
...
...
@@ -250,14 +250,14 @@ bool RegistrationRequest::getUeSecurityCapability(
//------------------------------------------------------------------------------
void
RegistrationRequest
::
setRequestedNSSAI
(
std
::
vector
<
struct
SNSSAI_s
>
nssai
)
{
ie_requested_NSSAI
=
std
::
make_optional
<
NSSAI
>
(
0x2F
,
nssai
);
ie_requested_NSSAI
=
std
::
make_optional
<
NSSAI
>
(
kIeiNSSAIRequested
,
nssai
);
}
//------------------------------------------------------------------------------
bool
RegistrationRequest
::
getRequestedNssai
(
std
::
vector
<
struct
SNSSAI_s
>&
nssai
)
{
if
(
ie_requested_NSSAI
.
has_value
())
{
ie_requested_NSSAI
.
value
().
g
etValue
(
nssai
);
ie_requested_NSSAI
.
value
().
G
etValue
(
nssai
);
}
else
{
return
false
;
}
...
...
@@ -268,7 +268,7 @@ bool RegistrationRequest::getRequestedNssai(
void
RegistrationRequest
::
setLastVisitedRegisteredTAI
(
const
std
::
string
&
mcc
,
const
std
::
string
mnc
,
const
uint32_t
&
tac
)
{
ie_last_visited_registered_TAI
=
std
::
make_optional
<
_5GSTrackingAreaIdentity
>
(
0
,
mcc
,
mnc
,
tac
);
std
::
make_optional
<
_5GSTrackingAreaIdentity
>
(
mcc
,
mnc
,
tac
);
}
//------------------------------------------------------------------------------
...
...
@@ -612,7 +612,7 @@ int RegistrationRequest::encode2Buffer(uint8_t* buf, int len) {
if
(
!
ie_requested_NSSAI
.
has_value
())
{
Logger
::
nas_mm
().
warn
(
"IE Requested NSSAI is not available"
);
}
else
{
if
((
encoded_ie_size
=
ie_requested_NSSAI
.
value
().
encode2Buffer
(
if
((
encoded_ie_size
=
ie_requested_NSSAI
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
))
==
KEncodeDecodeError
)
{
Logger
::
nas_mm
().
error
(
"Encoding Requested NSSAI error"
);
return
KEncodeDecodeError
;
...
...
@@ -625,7 +625,7 @@ int RegistrationRequest::encode2Buffer(uint8_t* buf, int len) {
if
(
!
ie_last_visited_registered_TAI
.
has_value
())
{
Logger
::
nas_mm
().
warn
(
"IE ie_Last_visited_registered_TAI is not available"
);
}
else
{
if
(
int
size
=
ie_last_visited_registered_TAI
.
value
().
encode2Buffer
(
if
(
int
size
=
ie_last_visited_registered_TAI
.
value
().
Encode
(
buf
+
encoded_size
,
len
-
encoded_size
))
{
encoded_size
+=
size
;
}
else
{
...
...
@@ -923,19 +923,20 @@ int RegistrationRequest::decodeFromBuffer(uint8_t* buf, int len) {
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI 0x%x"
,
octet
);
}
break
;
case
0x2F
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI
(0x2F)"
);
case
kIeiNSSAIRequested
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI
%d"
,
kIeiNSSAIRequested
);
NSSAI
ie_requested_NSSAI_tmp
=
{};
decoded_size
+=
ie_requested_NSSAI_tmp
.
decodeFromBuffer
(
decoded_size
+=
ie_requested_NSSAI_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
);
ie_requested_NSSAI
=
std
::
optional
<
NSSAI
>
(
ie_requested_NSSAI_tmp
);
ie_requested_NSSAI
=
std
::
make_
optional
<
NSSAI
>
(
ie_requested_NSSAI_tmp
);
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI 0x%x"
,
octet
);
}
break
;
case
0x52
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI(0x52)"
);
case
kIei5gsTrackingAreaIdentity
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI 0x%x"
,
kIei5gsTrackingAreaIdentity
);
_5GSTrackingAreaIdentity
last_visited_registered_tai_tmp
=
{};
decoded_size
+=
last_visited_registered_tai_tmp
.
decodeFromBuffer
(
decoded_size
+=
last_visited_registered_tai_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
);
ie_last_visited_registered_TAI
=
std
::
optional
<
_5GSTrackingAreaIdentity
>
(
...
...
src/nas/msgs/RegistrationRequest.hpp
View file @
975316a8
...
...
@@ -153,8 +153,8 @@ class RegistrationRequest : public NasMmPlainHeader {
std
::
optional
<
NasKeySetIdentifier
>
ie_non_current_native_nas_ksi
;
// Optional
std
::
optional
<
_5GMMCapability
>
ie_5g_mm_capability
;
// Optional
std
::
optional
<
UESecurityCapability
>
ie_ue_security_capability
;
// Optional
std
::
optional
<
NSSAI
>
ie_requested_NSSAI
;
// Optional
std
::
optional
<
NSSAI
>
ie_requested_NSSAI
;
// Optional
std
::
optional
<
_5GSTrackingAreaIdentity
>
ie_last_visited_registered_TAI
;
// Optional
std
::
optional
<
UENetworkCapability
>
ie_s1_ue_network_capability
;
// Optional
...
...
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