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
1987179c
Commit
1987179c
authored
Jan 15, 2023
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update Release Assistance Indication
parent
017ed78b
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
100 additions
and
55 deletions
+100
-55
src/nas/common/Ie_Const.hpp
src/nas/common/Ie_Const.hpp
+21
-20
src/nas/common/NasIeHeader.hpp
src/nas/common/NasIeHeader.hpp
+1
-1
src/nas/ies/MaPduSessionInformation.cpp
src/nas/ies/MaPduSessionInformation.cpp
+4
-4
src/nas/ies/MaPduSessionInformation.hpp
src/nas/ies/MaPduSessionInformation.hpp
+2
-2
src/nas/ies/ReleaseAssistanceIndication.cpp
src/nas/ies/ReleaseAssistanceIndication.cpp
+50
-0
src/nas/ies/ReleaseAssistanceIndication.hpp
src/nas/ies/ReleaseAssistanceIndication.hpp
+13
-20
src/nas/msgs/ULNASTransport.cpp
src/nas/msgs/ULNASTransport.cpp
+8
-7
src/nas/msgs/ULNASTransport.hpp
src/nas/msgs/ULNASTransport.hpp
+1
-1
No files found.
src/nas/common/Ie_Const.hpp
View file @
1987179c
...
...
@@ -68,32 +68,33 @@ constexpr uint8_t kIeiReAttemptIndicator = 0x1d;
constexpr
uint8_t
kIeiRejectedNssaiRa
=
0x11
;
constexpr
uint8_t
kIeiRejectedNssaiDr
=
0x6D
;
constexpr
uint8_t
kIeiRejectedNssaiCuc
=
0x11
;
constexpr
uint8_t
kIeiReleaseAssistanceIndication
=
0xf0
;
constexpr
uint8_t
kIeiRequestedQosFlowDescriptions
=
0x79
;
constexpr
uint8_t
kIeiRequestedQosRules
=
0x7a
;
constexpr
uint8_t
kIeiRqTimerValue
=
0x56
;
constexpr
uint8_t
kIeiServingPlmnRateControlPsea
=
0x18
;
constexpr
uint8_t
kIeiServingPlmnRateControlPsmc
=
0x1e
;
constexpr
uint8_t
kIeiSessionAmbr
=
0x2a
;
constexpr
uint8_t
kIeiSmPduDnRequestContainer
=
0x39
;
constexpr
uint8_t
kIeiSNssai
=
0x22
;
constexpr
uint8_t
kIeiSscMode
=
0x0a
;
constexpr
uint8_t
kIeiSuggestedInterfaceIdentifier
=
0x29
;
constexpr
uint8_t
kIeiUeDsTtResidenceTime
=
0x6f
;
constexpr
uint8_t
kIeiFullNameForNetwork
=
0x43
;
constexpr
uint8_t
kIeiShortNameForNetwork
=
0x45
;
constexpr
uint8_t
kIeiRequestedQosFlowDescriptions
=
0x79
;
constexpr
uint8_t
kIeiRequestedQosRules
=
0x7a
;
constexpr
uint8_t
kIeiRqTimerValue
=
0x56
;
constexpr
uint8_t
kIeiServingPlmnRateControlPsea
=
0x18
;
constexpr
uint8_t
kIeiServingPlmnRateControlPsmc
=
0x1e
;
constexpr
uint8_t
kIeiSessionAmbr
=
0x2a
;
constexpr
uint8_t
kIeiSmPduDnRequestContainer
=
0x39
;
constexpr
uint8_t
kIeiSNssai
=
0x22
;
constexpr
uint8_t
kIeiSscMode
=
0x0a
;
constexpr
uint8_t
kIeiSuggestedInterfaceIdentifier
=
0x29
;
constexpr
uint8_t
kIeiUeDsTtResidenceTime
=
0x6f
;
constexpr
uint8_t
kIeiFullNameForNetwork
=
0x43
;
constexpr
uint8_t
kIeiShortNameForNetwork
=
0x45
;
// OK
constexpr
uint8_t
kIeiPayloadContainerType
=
0x08
;
// Should be verified
constexpr
uint8_t
kIeiRequestType
=
0x08
;
// 8-(4 higher bits)
constexpr
uint8_t
kIeiNetworkSlicingIndication
=
0x09
;
// 9-(4 higher bits)
constexpr
uint8_t
kIeiNssaiInclusionMode
=
0x0A
;
// A-(4 higher bits)
constexpr
uint8_t
kIeiMaPduSessionInformation
=
0x0A
;
// A-(4 higher bits)
constexpr
uint8_t
kIeiMicoIndication
=
0x0B
;
// B-(4 higher bits)
constexpr
uint8_t
kIeiNasKeySetIdentifier
=
0x0C
;
// C-(4 higher bits)
constexpr
uint8_t
kIeiNon3gppNwProvidedPolicies
=
0x0D
;
// D-(4 higher bits)
constexpr
uint8_t
kIeiImeisvRequest
=
0x0E
;
// E-(4 higher bits)
constexpr
uint8_t
kIeiNssaiInclusionMode
=
0x0A
;
// A-(4 higher bits)
constexpr
uint8_t
kIeiMaPduSessionInformation
=
0x0A
;
// A-(4 higher bits)
constexpr
uint8_t
kIeiMicoIndication
=
0x0B
;
// B-(4 higher bits)
constexpr
uint8_t
kIeiNasKeySetIdentifier
=
0x0C
;
// C-(4 higher bits)
constexpr
uint8_t
kIeiNon3gppNwProvidedPolicies
=
0x0D
;
// D-(4 higher bits)
constexpr
uint8_t
kIeiImeisvRequest
=
0x0E
;
// E-(4 higher bits)
constexpr
uint8_t
kIeiReleaseAssistanceIndication
=
0x0F
;
// F-(4 higher bits)
constexpr
uint8_t
kIei5gmmCapability
=
0x10
;
constexpr
uint8_t
kIeiUeUsageSetting
=
0x18
;
...
...
src/nas/common/NasIeHeader.hpp
View file @
1987179c
...
...
@@ -59,7 +59,7 @@
#include "Payload_Container.hpp"
#include "PayloadContainerType.hpp"
#include "Rejected_NSSAI.hpp"
#include "Release
_Assistance_
Indication.hpp"
#include "Release
Assistance
Indication.hpp"
#include "RequestType.hpp"
#include "S1UeSecurityCapability.hpp"
#include "SOR_Transparent_Container.hpp"
...
...
src/nas/ies/MaPduSessionInformation.cpp
View file @
1987179c
...
...
@@ -40,11 +40,11 @@ MaPduSessionInformation::MaPduSessionInformation(uint8_t value)
MaPduSessionInformation
::~
MaPduSessionInformation
()
{}
//------------------------------------------------------------------------------
void
MaPduSessionInformation
::
Set
Value
(
uint8_t
value
)
{
SetValue
(
value
&
0x0f
);
void
MaPduSessionInformation
::
Set
(
uint8_t
value
)
{
Type1NasIeFormatTv
::
SetValue
(
value
&
0x0f
);
}
//------------------------------------------------------------------------------
uint8_t
MaPduSessionInformation
::
Get
Value
()
const
{
return
GetValue
()
&
0x0f
;
uint8_t
MaPduSessionInformation
::
Get
()
const
{
return
Type1NasIeFormatTv
::
GetValue
()
&
0x0f
;
}
src/nas/ies/MaPduSessionInformation.hpp
View file @
1987179c
...
...
@@ -34,8 +34,8 @@ class MaPduSessionInformation : public Type1NasIeFormatTv {
MaPduSessionInformation
(
uint8_t
value
);
~
MaPduSessionInformation
();
void
Set
Value
(
uint8_t
value
);
uint8_t
Get
Value
()
const
;
void
Set
(
uint8_t
value
);
uint8_t
Get
()
const
;
private:
};
...
...
src/nas/ies/Release
_Assistance_
Indication.cpp
→
src/nas/ies/Release
Assistance
Indication.cpp
View file @
1987179c
...
...
@@ -19,87 +19,32 @@
* contact@openairinterface.org
*/
/*! \file
\brief
\author Keliang DU, BUPT
\date 2020
\email: contact@openairinterface.org
*/
#include "Release_Assistance_Indication.hpp"
#include "ReleaseAssistanceIndication.hpp"
#include "logger.hpp"
using
namespace
nas
;
//------------------------------------------------------------------------------
Release_Assistance_Indication
::
Release_Assistance_Indication
(
uint8_t
iei
)
{
_iei
=
iei
;
_value
=
0
;
}
//------------------------------------------------------------------------------
Release_Assistance_Indication
::
Release_Assistance_Indication
(
const
uint8_t
iei
,
uint8_t
value
)
{
_iei
=
iei
;
_value
=
value
;
ReleaseAssistanceIndication
::
ReleaseAssistanceIndication
()
:
Type1NasIeFormatTv
(
kIeiReleaseAssistanceIndication
)
{
SetIeName
(
kReleaseAssistanceIndicationIeName
);
}
//------------------------------------------------------------------------------
Release_Assistance_Indication
::
Release_Assistance_Indication
()
{
_iei
=
0
;
_value
=
0
;
ReleaseAssistanceIndication
::
ReleaseAssistanceIndication
(
uint8_t
value
)
:
Type1NasIeFormatTv
(
kIeiReleaseAssistanceIndication
)
{
SetValue
(
value
&
0x03
);
SetIeName
(
kReleaseAssistanceIndicationIeName
);
}
//------------------------------------------------------------------------------
Release_Assistance_Indication
::~
Release_Assistance_Indication
()
{}
//------------------------------------------------------------------------------
void
Release_Assistance_Indication
::
setValue
(
uint8_t
value
)
{
_value
=
value
;
}
//------------------------------------------------------------------------------
uint8_t
Release_Assistance_Indication
::
getValue
()
{
return
_value
;
}
ReleaseAssistanceIndication
::~
ReleaseAssistanceIndication
()
{}
//------------------------------------------------------------------------------
int
Release_Assistance_Indication
::
Encode
(
uint8_t
*
buf
,
int
len
)
{
Logger
::
nas_mm
().
debug
(
"encoding Release_Assistance_Indication iei(0x%x)"
,
_iei
);
if
(
len
<
1
)
{
Logger
::
nas_mm
().
error
(
"len is less than 1"
);
return
0
;
}
int
encoded_size
=
0
;
if
(
_iei
)
{
*
(
buf
+
encoded_size
)
=
((
_iei
&
0x0f
)
<<
4
)
|
(
_value
&
0x07
);
encoded_size
++
;
}
else
{
*
(
buf
+
encoded_size
)
=
_value
&
0x07
;
encoded_size
++
;
}
Logger
::
nas_mm
().
debug
(
"encoded Release_Assistance_Indication len(%d)"
,
encoded_size
);
return
encoded_size
;
void
ReleaseAssistanceIndication
::
Set
(
uint8_t
value
)
{
Type1NasIeFormatTv
::
SetValue
(
value
&
0x03
);
}
//------------------------------------------------------------------------------
int
Release_Assistance_Indication
::
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_option
)
{
Logger
::
nas_mm
().
debug
(
"decoding Release_Assistance_Indication iei(0x%x)"
,
*
buf
);
int
decoded_size
=
0
;
uint8_t
octet
=
0
;
if
(
is_option
)
{
octet
=
*
buf
;
decoded_size
++
;
}
_value
=
0x00
;
_value
=
octet
&
0x07
;
Logger
::
nas_mm
().
debug
(
"decoded Release_Assistance_Indication _value(0x%x)"
,
_value
);
Logger
::
nas_mm
().
debug
(
"decoded Release_Assistance_Indication len(%d)"
,
decoded_size
);
return
decoded_size
;
uint8_t
ReleaseAssistanceIndication
::
Get
()
const
{
return
(
Type1NasIeFormatTv
::
GetValue
()
&
0x03
);
}
src/nas/ies/Release
_Assistance_
Indication.hpp
→
src/nas/ies/Release
Assistance
Indication.hpp
View file @
1987179c
...
...
@@ -19,34 +19,27 @@
* contact@openairinterface.org
*/
/*! \file
\brief
\author Keliang DU, BUPT
\date 2020
\email: contact@openairinterface.org
*/
#ifndef _RELEASE_ASSISTANCE_INDICATION_H_
#define _RELEASE_ASSISTANCE_INDICATION_H_
#ifndef __Release_Assistance_Indication_H_
#define __Release_Assistance_Indication_H_
#include "Type1NasIeFormatTv.hpp"
#include <stdint.h>
constexpr
auto
kReleaseAssistanceIndicationIeName
=
"Release Assistance Indication"
;
namespace
nas
{
class
Release
_Assistance_Indication
{
class
Release
AssistanceIndication
:
public
Type1NasIeFormatTv
{
public:
Release_Assistance_Indication
();
Release_Assistance_Indication
(
uint8_t
iei
);
Release_Assistance_Indication
(
const
uint8_t
iei
,
uint8_t
value
);
~
Release_Assistance_Indication
();
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_option
);
void
setValue
(
uint8_t
value
);
uint8_t
getValue
();
ReleaseAssistanceIndication
();
ReleaseAssistanceIndication
(
uint8_t
value
);
~
ReleaseAssistanceIndication
();
void
Set
(
uint8_t
value
);
uint8_t
Get
()
const
;
private:
uint8_t
_iei
;
uint8_t
_value
;
// uint8_t ddx_;
};
}
// namespace nas
...
...
src/nas/msgs/ULNASTransport.cpp
View file @
1987179c
...
...
@@ -165,7 +165,7 @@ void ULNASTransport::SetMaPduSessionInformation(uint8_t value) {
//------------------------------------------------------------------------------
void
ULNASTransport
::
SetReleaseAssistanceIndication
(
uint8_t
value
)
{
ie_release_assistance_indication
=
std
::
make_optional
<
Release
_Assistance_Indication
>
(
0x0F
,
value
);
std
::
make_optional
<
Release
AssistanceIndication
>
(
value
);
}
//------------------------------------------------------------------------------
...
...
@@ -362,7 +362,7 @@ int ULNASTransport::Decode(NasMmPlainHeader* header, uint8_t* buf, int len) {
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
}
break
;
case
0xA
:
{
case
kIeiMaPduSessionInformation
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0xA)"
);
MaPduSessionInformation
ie_ma_pdu_session_information_tmp
=
{};
if
((
decoded_result
=
ie_ma_pdu_session_information_tmp
.
Decode
(
...
...
@@ -375,16 +375,17 @@ int ULNASTransport::Decode(NasMmPlainHeader* header, uint8_t* buf, int len) {
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
}
break
;
case
0xF
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0xF)"
);
Release_Assistance_Indication
ie_release_assistance_indication_tmp
=
{};
case
kIeiReleaseAssistanceIndication
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI 0x%x"
,
kIeiReleaseAssistanceIndication
);
ReleaseAssistanceIndication
ie_release_assistance_indication_tmp
=
{};
if
((
decoded_result
=
ie_release_assistance_indication_tmp
.
Decode
(
buf
+
decoded_size
,
len
-
decoded_size
,
true
))
==
KEncodeDecodeError
)
return
decoded_result
;
decoded_size
+=
decoded_result
;
ie_release_assistance_indication
=
std
::
optional
<
Release
_Assistance_
Indication
>
(
std
::
optional
<
Release
Assistance
Indication
>
(
ie_release_assistance_indication_tmp
);
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
...
...
@@ -420,7 +421,7 @@ int ULNASTransport::Decode(NasMmPlainHeader* header, uint8_t* buf, int len) {
octet
=
*
(
buf
+
decoded_size
);
Logger
::
nas_mm
().
debug
(
"Next IEI (0x%x)"
,
octet
);
}
break
;
case
0x22
:
{
case
kIeiSNssai
:
{
Logger
::
nas_mm
().
debug
(
"Decoding IEI (0x22)"
);
auto
s_nssai_ie
=
std
::
optional
<
uint8_t
>
(
kIeiSNssai
);
S_NSSAI
ie_s_nssai_tmp
(
s_nssai_ie
);
...
...
src/nas/msgs/ULNASTransport.hpp
View file @
1987179c
...
...
@@ -76,7 +76,7 @@ class ULNASTransport : public NasMmPlainHeader {
std
::
optional
<
AdditionalInformation
>
ie_additional_information
;
// Optional
std
::
optional
<
MaPduSessionInformation
>
ie_ma_pdu_session_information
;
// Optional
std
::
optional
<
Release
_Assistance_
Indication
>
std
::
optional
<
Release
Assistance
Indication
>
ie_release_assistance_indication
;
// 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