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
c57dd5b5
Commit
c57dd5b5
authored
Jan 12, 2023
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update Nssai Inclusion Mode
parent
911008f6
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
82 additions
and
27 deletions
+82
-27
src/nas/common/Ie_Const.hpp
src/nas/common/Ie_Const.hpp
+1
-0
src/nas/common/NasIeHeader.hpp
src/nas/common/NasIeHeader.hpp
+1
-1
src/nas/ies/NssaiInclusionMode.cpp
src/nas/ies/NssaiInclusionMode.cpp
+58
-0
src/nas/ies/NssaiInclusionMode.hpp
src/nas/ies/NssaiInclusionMode.hpp
+16
-19
src/nas/msgs/RegistrationAccept.cpp
src/nas/msgs/RegistrationAccept.cpp
+3
-4
src/nas/msgs/RegistrationAccept.hpp
src/nas/msgs/RegistrationAccept.hpp
+3
-3
No files found.
src/nas/common/Ie_Const.hpp
View file @
c57dd5b5
...
...
@@ -89,6 +89,7 @@ constexpr uint8_t kIeiShortNameForNetwork = 0x45;
constexpr
uint8_t
kIeiPayloadContainerType
=
0x08
;
// Should be verified
constexpr
uint8_t
kIeiNetworkSlicingIndication
=
0x09
;
// 9-(4 higher bits)
constexpr
uint8_t
kIeiNssaiInclusionMode
=
0x0A
;
// B-(4 higher bits)
constexpr
uint8_t
kIeiMicoIndication
=
0x0B
;
// B-(4 higher bits)
constexpr
uint8_t
kIeiNasKeySetIdentifier
=
0x0C
;
// C-(4 higher bits)
...
...
src/nas/common/NasIeHeader.hpp
View file @
c57dd5b5
...
...
@@ -49,7 +49,7 @@
#include "NasMessageContainer.hpp"
#include "NAS_Security_Algorithms.hpp"
#include "NSSAI.hpp"
#include "N
SSAI_Inclusion_
Mode.hpp"
#include "N
ssaiInclusion
Mode.hpp"
#include "NasKeySetIdentifier.hpp"
#include "Non_3GPP_NW_Provided_Policies.hpp"
#include "PDU_Session_Identity_2.hpp"
...
...
src/nas/ies/N
SSAI_Inclusion_
Mode.cpp
→
src/nas/ies/N
ssaiInclusion
Mode.cpp
View file @
c57dd5b5
...
...
@@ -26,72 +26,33 @@
\email: contact@openairinterface.org
*/
#include "N
SSAI_Inclusion_
Mode.hpp"
#include "N
ssaiInclusion
Mode.hpp"
#include "logger.hpp"
using
namespace
nas
;
//------------------------------------------------------------------------------
N
SSAI_Inclusion_Mode
::
NSSAI_Inclusion_Mode
(
const
uint8_t
iei
,
uint8_t
value
)
{
_iei
=
iei
;
_value
=
value
;
N
ssaiInclusionMode
::
NssaiInclusionMode
()
:
Type1NasIeFormatTv
(
kIeiNssaiInclusionMode
)
{
SetIeName
(
kNssaiInclusionModeIeName
)
;
}
//------------------------------------------------------------------------------
NSSAI_Inclusion_Mode
::
NSSAI_Inclusion_Mode
()
{}
//------------------------------------------------------------------------------
NSSAI_Inclusion_Mode
::~
NSSAI_Inclusion_Mode
(){};
//------------------------------------------------------------------------------
void
NSSAI_Inclusion_Mode
::
setValue
(
const
uint8_t
value
)
{
_value
=
value
;
NssaiInclusionMode
::
NssaiInclusionMode
(
uint8_t
value
)
:
Type1NasIeFormatTv
(
kIeiNssaiInclusionMode
)
{
SetValue
(
value
);
SetIeName
(
kNssaiInclusionModeIeName
);
}
//------------------------------------------------------------------------------
uint8_t
NSSAI_Inclusion_Mode
::
getValue
()
{
return
_value
;
}
NssaiInclusionMode
::~
NssaiInclusionMode
(){};
//------------------------------------------------------------------------------
int
NSSAI_Inclusion_Mode
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"Encoding NSSAI_Inclusion_Mode IE iei (0x%x)"
,
_iei
);
if
(
len
<
1
)
{
Logger
::
nas_mm
().
error
(
"Len is less than one"
);
return
-
1
;
}
else
{
uint8_t
octet
=
0
;
if
(
!
(
_iei
&
0x0f
))
{
// octet = (0x0f) & ((tsc << 3) | key_id);
//*buf = octet;
// Logger::nas_mm().debug("encoded Payload_Container_Type IE(len(1/2
// octet))"); return 0;
}
else
{
octet
=
(
_iei
<<
4
)
|
(
_value
&
0x0f
);
*
buf
=
octet
;
Logger
::
nas_mm
().
debug
(
"Encoded NSSAI_Inclusion_Mode IE(len, 1 octet)"
);
return
1
;
}
}
return
1
;
void
NssaiInclusionMode
::
setValue
(
const
uint8_t
value
)
{
SetValue
(
value
);
}
//------------------------------------------------------------------------------
int
NSSAI_Inclusion_Mode
::
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_option
)
{
Logger
::
nas_mm
().
debug
(
"Decoding NSSAI_Inclusion_Mode IE"
);
if
(
len
<
1
)
{
Logger
::
nas_mm
().
error
(
"Len is less than one"
);
return
0
;
}
else
{
uint8_t
octet
=
(
*
buf
);
if
(
is_option
)
{
_iei
=
(
octet
&
0xf0
)
>>
4
;
}
else
{
_iei
=
0
;
}
_value
=
octet
&
0x0f
;
Logger
::
nas_mm
().
debug
(
"Decoded NSSAI_Inclusion_Mode iei (0x%x) value (0x%x)"
,
_iei
,
_value
);
return
1
;
}
uint8_t
NssaiInclusionMode
::
getValue
()
const
{
return
GetValue
();
}
src/nas/ies/N
SSAI_Inclusion_
Mode.hpp
→
src/nas/ies/N
ssaiInclusion
Mode.hpp
View file @
c57dd5b5
...
...
@@ -19,33 +19,30 @@
* contact@openairinterface.org
*/
/*! \file
\brief
\author Keliang DU, BUPT
\date 2020
\email: contact@openairinterface.org
*/
#ifndef _NSSAI_Inclusion_Mode_H
#define _NSSAI_Inclusion_Mode_H
#ifndef _NSSAI_INCLUSION_MODE_H
#define _NSSAI_INCLUSION_MODE_H
#include "Type1NasIeFormatTv.hpp"
#include <stdint.h>
constexpr
uint8_t
kNssaiInclusionModeLength
=
1
;
constexpr
auto
kNssaiInclusionModeIeName
=
"NSSAI Inclusion Mode"
;
namespace
nas
{
class
N
SSAI_Inclusion_Mode
{
class
N
ssaiInclusionMode
:
public
Type1NasIeFormatTv
{
public:
NSSAI_Inclusion_Mode
();
NSSAI_Inclusion_Mode
(
const
uint8_t
iei
,
uint8_t
value
);
~
NSSAI_Inclusion_Mode
();
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_option
);
void
setValue
(
const
uint8_t
value
);
uint8_t
getValue
();
NssaiInclusionMode
();
NssaiInclusionMode
(
uint8_t
value
);
~
NssaiInclusionMode
();
// int Encode(uint8_t* buf, int len);
// int Decode(uint8_t* buf, int len, bool is_iei);
void
setValue
(
uint8_t
value
);
uint8_t
getValue
()
const
;
private:
uint8_t
_iei
;
uint8_t
_value
;
};
}
// namespace nas
...
...
src/nas/msgs/RegistrationAccept.cpp
View file @
c57dd5b5
...
...
@@ -238,8 +238,7 @@ void RegistrationAccept::setEAP_Message(bstring eap) {
//------------------------------------------------------------------------------
void
RegistrationAccept
::
setNSSAI_Inclusion_Mode
(
uint8_t
value
)
{
ie_nssai_inclusion_mode
=
std
::
make_optional
<
NSSAI_Inclusion_Mode
>
(
0x0A
,
value
);
ie_nssai_inclusion_mode
=
std
::
make_optional
<
NssaiInclusionMode
>
(
value
);
}
//------------------------------------------------------------------------------
...
...
@@ -675,11 +674,11 @@ int RegistrationAccept::Decode(uint8_t* buf, int len) {
}
break
;
case
0xA
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0xA)"
);
N
SSAI_Inclusion_
Mode
ie_nssai_inclusion_mode_tmp
=
{};
N
ssaiInclusion
Mode
ie_nssai_inclusion_mode_tmp
=
{};
decoded_size
+=
ie_nssai_inclusion_mode_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
);
ie_nssai_inclusion_mode
=
std
::
optional
<
N
SSAI_Inclusion_
Mode
>
(
ie_nssai_inclusion_mode_tmp
);
std
::
optional
<
N
ssaiInclusion
Mode
>
(
ie_nssai_inclusion_mode_tmp
);
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
}
break
;
...
...
src/nas/msgs/RegistrationAccept.hpp
View file @
c57dd5b5
...
...
@@ -176,7 +176,7 @@ class RegistrationAccept : public NasMmPlainHeader {
std
::
optional
<
SOR_Transparent_Container
>
ie_sor_transparent_container
;
// Optional
std
::
optional
<
EapMessage
>
ie_eap_message
;
// Optional
std
::
optional
<
N
SSAI_Inclusion_
Mode
>
ie_nssai_inclusion_mode
;
// Optional
std
::
optional
<
N
ssaiInclusion
Mode
>
ie_nssai_inclusion_mode
;
// Optional
// TODO: Operator-defined access category definitions
std
::
optional
<
_5GS_DRX_Parameters
>
ie_negotiated_drx_parameters
;
// Optional
std
::
optional
<
Non_3GPP_NW_Provided_Policies
>
...
...
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