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
66bee1a7
Commit
66bee1a7
authored
Feb 08, 2023
by
Tien Thinh NGUYEN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Code cleanup for RegistrationRequest
parent
3cb14ce5
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
525 additions
and
389 deletions
+525
-389
src/amf-app/amf_n1.cpp
src/amf-app/amf_n1.cpp
+18
-18
src/nas/ies/5GSRegistrationType.hpp
src/nas/ies/5GSRegistrationType.hpp
+2
-2
src/nas/ies/LADN_Indication.cpp
src/nas/ies/LADN_Indication.cpp
+1
-1
src/nas/ies/LADN_Indication.hpp
src/nas/ies/LADN_Indication.hpp
+1
-1
src/nas/ies/_5GSDeregistrationType.cpp
src/nas/ies/_5GSDeregistrationType.cpp
+2
-2
src/nas/ies/_5GSDeregistrationType.hpp
src/nas/ies/_5GSDeregistrationType.hpp
+3
-3
src/nas/ies/_5gsUpdateType.cpp
src/nas/ies/_5gsUpdateType.cpp
+4
-4
src/nas/ies/_5gsUpdateType.hpp
src/nas/ies/_5gsUpdateType.hpp
+4
-4
src/nas/msgs/RegistrationRequest.cpp
src/nas/msgs/RegistrationRequest.cpp
+429
-293
src/nas/msgs/RegistrationRequest.hpp
src/nas/msgs/RegistrationRequest.hpp
+61
-61
No files found.
src/amf-app/amf_n1.cpp
View file @
66bee1a7
...
...
@@ -1094,11 +1094,11 @@ void amf_n1::registration_request_handle(
// Check 5gs Mobility Identity (Mandatory IE)
std
::
string
guti
=
{};
uint8_t
mobility_id_type
=
registration_request
->
g
etMobileIdentityType
();
uint8_t
mobility_id_type
=
registration_request
->
G
etMobileIdentityType
();
switch
(
mobility_id_type
)
{
case
SUCI
:
{
nas
::
SUCI_imsi_t
imsi
=
{};
if
(
!
registration_request
->
g
etSuciSupiFormatImsi
(
imsi
))
{
if
(
!
registration_request
->
G
etSuciSupiFormatImsi
(
imsi
))
{
Logger
::
amf_n1
().
warn
(
"No SUCI and IMSI for SUPI Format"
);
}
else
{
if
(
!
nc
)
{
...
...
@@ -1303,7 +1303,7 @@ void amf_n1::registration_request_handle(
// Check 5GS_Registration_type IE (Mandatory IE)
uint8_t
reg_type
=
0
;
bool
is_follow_on_req_pending
=
false
;
if
(
!
registration_request
->
g
et5gsRegistrationType
(
if
(
!
registration_request
->
G
et5gsRegistrationType
(
is_follow_on_req_pending
,
reg_type
))
{
Logger
::
amf_n1
().
error
(
"Missing Mandatory IE 5GS Registration type..."
);
send_registration_reject_msg
(
...
...
@@ -1315,7 +1315,7 @@ void amf_n1::registration_request_handle(
// Check ngKSI (Mandatory IE)
uint8_t
ngKSI
=
0
;
if
(
!
registration_request
->
getngKSI
(
ngKSI
))
{
if
(
!
registration_request
->
GetNgKsi
(
ngKSI
))
{
Logger
::
amf_n1
().
error
(
"Missing Mandatory IE ngKSI..."
);
send_registration_reject_msg
(
_5GMM_CAUSE_INVALID_MANDATORY_INFO
,
ran_ue_ngap_id
,
amf_ue_ngap_id
);
...
...
@@ -1327,7 +1327,7 @@ void amf_n1::registration_request_handle(
// inter-system change from S1 to N1 Get 5GMM Capability IE (optional), not
// included for periodic registration updating procedure
uint8_t
_5g_mm_cap
=
0
;
if
(
!
registration_request
->
get5GMM
Capability
(
_5g_mm_cap
))
{
if
(
!
registration_request
->
Get5gmm
Capability
(
_5g_mm_cap
))
{
Logger
::
amf_n1
().
warn
(
"No Optional IE 5GMMCapability available"
);
}
nc
->
mmCapability
=
_5g_mm_cap
;
...
...
@@ -1339,7 +1339,7 @@ void amf_n1::registration_request_handle(
uint8_t
security_cap_eea
=
{
0
};
uint8_t
security_cap_eia
=
{
0
};
if
(
!
registration_request
->
g
etUeSecurityCapability
(
if
(
!
registration_request
->
G
etUeSecurityCapability
(
encrypt_alg
,
integrity_alg
,
security_cap_eea
,
security_cap_eia
))
{
Logger
::
amf_n1
().
warn
(
"No Optional IE UESecurityCapability available"
);
}
else
{
...
...
@@ -1354,7 +1354,7 @@ void amf_n1::registration_request_handle(
nc
->
ueSecurityCapEIA
=
security_cap_eia
;
// Get Requested NSSAI (Optional IE), if provided
if
(
!
registration_request
->
g
etRequestedNssai
(
nc
->
requestedNssai
))
{
if
(
!
registration_request
->
G
etRequestedNssai
(
nc
->
requestedNssai
))
{
Logger
::
amf_n1
().
debug
(
"No Optional IE RequestedNssai available"
);
}
...
...
@@ -1380,7 +1380,7 @@ void amf_n1::registration_request_handle(
registration_request_msg_container
->
Decode
(
(
uint8_t
*
)
bdata
(
nas_msg
),
blength
(
nas_msg
));
if
(
!
registration_request_msg_container
->
g
etRequestedNssai
(
if
(
!
registration_request_msg_container
->
G
etRequestedNssai
(
nc
->
requestedNssai
))
{
Logger
::
amf_n1
().
debug
(
"No Optional IE RequestedNssai available in NAS Container"
);
...
...
@@ -1406,9 +1406,9 @@ void amf_n1::registration_request_handle(
case
MOBILITY_REGISTRATION_UPDATING
:
{
Logger
::
amf_n1
().
debug
(
"Handling Mobility Registration Update..."
);
uint16_t
uplink_data_status
=
0
;
registration_request
->
g
etUplinkDataStatus
(
uplink_data_status
);
registration_request
->
G
etUplinkDataStatus
(
uplink_data_status
);
run_mobility_registration_update_procedure
(
nc
,
uplink_data_status
,
registration_request
->
g
etPduSessionStatus
());
nc
,
uplink_data_status
,
registration_request
->
G
etPduSessionStatus
());
}
break
;
case
PERIODIC_REGISTRATION_UPDATING
:
{
...
...
@@ -1417,7 +1417,7 @@ void amf_n1::registration_request_handle(
run_periodic_registration_update_procedure
(
nc
,
nas_msg
);
else
run_periodic_registration_update_procedure
(
nc
,
registration_request
->
g
etPduSessionStatus
());
nc
,
registration_request
->
G
etPduSessionStatus
());
}
break
;
case
EMERGENCY_REGISTRATION
:
{
...
...
@@ -2541,7 +2541,7 @@ void amf_n1::security_mode_complete_handle(
// bdestroy_wrapper(&nas_msg_container); // free buffer
// Get Requested NSSAI (Optional IE), if provided
if
(
registration_request
->
g
etRequestedNssai
(
nc
->
requestedNssai
))
{
if
(
registration_request
->
G
etRequestedNssai
(
nc
->
requestedNssai
))
{
for
(
auto
s
:
nc
->
requestedNssai
)
{
Logger
::
amf_n1
().
debug
(
"Requested NSSAI: %s"
,
s
.
ToString
().
c_str
());
}
...
...
@@ -2802,8 +2802,8 @@ void amf_n1::registration_complete_handle(
std::make_unique<ConfigurationUpdateCommand>();
configuration_update_command->SetHeader(PLAIN_5GS_MSG);
configuration_update_command->
s
etFullNameForNetwork("Testing"); // TODO:
configuration_update_command->
s
etShortNameForNetwork("Testing"); // TODO:
configuration_update_command->
S
etFullNameForNetwork("Testing"); // TODO:
configuration_update_command->
S
etShortNameForNetwork("Testing"); // TODO:
uint8_t buffer[BUFFER_SIZE_1024] = {0};
int encoded_size =
...
...
@@ -3054,7 +3054,7 @@ void amf_n1::ue_initiate_de_registration_handle(
// TODO: validate 5G Mobile Identity
uint8_t
mobile_id_type
=
0
;
dereg_request
->
g
etMobilityIdentityType
(
mobile_id_type
);
dereg_request
->
G
etMobilityIdentityType
(
mobile_id_type
);
Logger
::
amf_n1
().
debug
(
"5G Mobile Identity %X"
,
mobile_id_type
);
switch
(
mobile_id_type
)
{
case
_5G_GUTI
:
{
...
...
@@ -3137,7 +3137,7 @@ void amf_n1::ue_initiate_de_registration_handle(
// Check Deregistration type
uint8_t
deregType
=
0
;
dereg_request
->
g
etDeregistrationType
(
deregType
);
dereg_request
->
G
etDeregistrationType
(
deregType
);
Logger
::
amf_n1
().
debug
(
"De-registration Type 0x%x"
,
deregType
);
// If UE switch-off, don't need to send Deregistration Accept
...
...
@@ -3574,7 +3574,7 @@ void amf_n1::run_periodic_registration_update_procedure(
amf_cfg
.
guami
.
AmfSetID
,
amf_cfg
.
guami
.
AmfPointer
,
uc
->
tmsi
);
uint16_t
pdu_session_status
=
0xffff
;
pdu_session_status
=
registration_request
->
g
etPduSessionStatus
();
pdu_session_status
=
registration_request
->
G
etPduSessionStatus
();
if
(
pdu_session_status
==
0x0000
)
{
reg_accept
->
SetPduSessionStatus
(
0x0000
);
}
else
{
...
...
@@ -4107,7 +4107,7 @@ void amf_n1::initialize_registration_accept(
item
.
tac_list
.
push_back
(
p
.
tac
);
tai_list
.
push_back
(
item
);
}
registration_accept
->
s
etTaiList
(
tai_list
);
registration_accept
->
S
etTaiList
(
tai_list
);
// Network Feature Support
// TODO: remove hardcoded values
...
...
src/nas/ies/5GSRegistrationType.hpp
View file @
66bee1a7
...
...
@@ -46,10 +46,10 @@ class _5GSRegistrationType : public Type1NasIeFormatTv {
void
set
(
const
bool
&
follow_on_req
,
const
uint8_t
&
type
,
const
uint8_t
&
iei
);
void
set
(
const
bool
&
follow_on_req
,
const
uint8_t
&
type
);
void
setFollowOnReq
(
const
bool
is
);
void
setFollowOnReq
(
bool
is
);
bool
isFollowOnReq
();
void
setRegType
(
const
uint8_t
type
);
void
setRegType
(
uint8_t
type
);
uint8_t
getRegType
();
private:
...
...
src/nas/ies/LADN_Indication.cpp
View file @
66bee1a7
...
...
@@ -48,7 +48,7 @@ LadnIndication::LadnIndication(const std::vector<bstring>& ladn)
LadnIndication
::~
LadnIndication
()
{}
//------------------------------------------------------------------------------
void
LadnIndication
::
GetValue
(
std
::
vector
<
bstring
>&
ladn
)
{
void
LadnIndication
::
GetValue
(
std
::
vector
<
bstring
>&
ladn
)
const
{
ladn
.
assign
(
LADN
.
begin
(),
LADN
.
end
());
}
...
...
src/nas/ies/LADN_Indication.hpp
View file @
66bee1a7
...
...
@@ -39,7 +39,7 @@ class LadnIndication : Type6NasIe {
static
std
::
string
GetIeName
()
{
return
kLadnIndicationIeName
;
}
// void SetValue(const std::vector<bstring>& ladn);
void
GetValue
(
std
::
vector
<
bstring
>&
ladn
);
void
GetValue
(
std
::
vector
<
bstring
>&
ladn
)
const
;
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_option
);
...
...
src/nas/ies/_5GSDeregistrationType.cpp
View file @
66bee1a7
...
...
@@ -85,7 +85,7 @@ void _5GSDeregistrationType::set(_5gs_deregistration_type_t type) {
}
//------------------------------------------------------------------------------
void
_5GSDeregistrationType
::
get
(
_5gs_deregistration_type_t
&
type
)
{
void
_5GSDeregistrationType
::
get
(
_5gs_deregistration_type_t
&
type
)
const
{
type
.
switch_off
=
u1
.
bf
.
switch_off
;
type
.
re_registration_required
=
u1
.
bf
.
re_registration_required
;
type
.
access_type
=
u1
.
bf
.
access_type
;
...
...
@@ -98,7 +98,7 @@ void _5GSDeregistrationType::set(uint8_t type) {
}
//------------------------------------------------------------------------------
void
_5GSDeregistrationType
::
get
(
uint8_t
&
type
)
{
void
_5GSDeregistrationType
::
get
(
uint8_t
&
type
)
const
{
type
=
u1
.
b
;
}
...
...
src/nas/ies/_5GSDeregistrationType.hpp
View file @
66bee1a7
...
...
@@ -48,13 +48,13 @@ class _5GSDeregistrationType : public Type1NasIeFormatTv {
// int Encode(uint8_t* buf, int len);
void
set
(
_5gs_deregistration_type_t
type
);
void
get
(
_5gs_deregistration_type_t
&
type
);
void
get
(
_5gs_deregistration_type_t
&
type
)
const
;
void
set
(
uint8_t
value
);
void
get
(
uint8_t
&
value
);
void
get
(
uint8_t
&
value
)
const
;
void
set
(
uint8_t
iei
,
uint8_t
value
);
void
get
(
uint8_t
&
iei
,
uint8_t
value
);
void
get
(
uint8_t
&
iei
,
uint8_t
value
)
const
;
private:
void
setValue
();
...
...
src/nas/ies/_5gsUpdateType.cpp
View file @
66bee1a7
...
...
@@ -72,22 +72,22 @@ void _5gsUpdateType::SetSms(uint8_t value) {
}
//------------------------------------------------------------------------------
uint8_t
_5gsUpdateType
::
GetEpsPnbCiot
()
{
uint8_t
_5gsUpdateType
::
GetEpsPnbCiot
()
const
{
return
eps_pnb_ciot_
;
}
//------------------------------------------------------------------------------
uint8_t
_5gsUpdateType
::
Get5gsPnbCiot
()
{
uint8_t
_5gsUpdateType
::
Get5gsPnbCiot
()
const
{
return
_5gs_pnb_ciot_
;
}
//------------------------------------------------------------------------------
bool
_5gsUpdateType
::
GetNgRan
()
{
bool
_5gsUpdateType
::
GetNgRan
()
const
{
return
ng_ran_
;
}
//------------------------------------------------------------------------------
bool
_5gsUpdateType
::
GetSms
()
{
bool
_5gsUpdateType
::
GetSms
()
const
{
return
sms_
;
}
...
...
src/nas/ies/_5gsUpdateType.hpp
View file @
66bee1a7
...
...
@@ -42,10 +42,10 @@ class _5gsUpdateType : public Type4NasIe {
void
Set5gsPnbCiot
(
uint8_t
value
);
void
SetNgRan
(
uint8_t
value
);
void
SetSms
(
uint8_t
value
);
uint8_t
GetEpsPnbCiot
();
uint8_t
Get5gsPnbCiot
();
bool
GetNgRan
();
bool
GetSms
();
uint8_t
GetEpsPnbCiot
()
const
;
uint8_t
Get5gsPnbCiot
()
const
;
bool
GetNgRan
()
const
;
bool
GetSms
()
const
;
int
Encode
(
uint8_t
*
buf
,
int
len
);
int
Decode
(
uint8_t
*
buf
,
int
len
,
bool
is_option
);
...
...
src/nas/msgs/RegistrationRequest.cpp
View file @
66bee1a7
This diff is collapsed.
Click to expand it.
src/nas/msgs/RegistrationRequest.hpp
View file @
66bee1a7
...
...
@@ -25,8 +25,6 @@
#include "NasIeHeader.hpp"
#include <bstrlib.h>
#include <stdint.h>
#include <string>
#include <vector>
using
namespace
std
;
...
...
@@ -42,108 +40,110 @@ class RegistrationRequest : public NasMmPlainHeader {
void
SetHeader
(
uint8_t
security_header_type
);
void
GetSecurityHeaderType
(
uint8_t
security_header_type
);
bool
v
erifyHeader
();
bool
V
erifyHeader
();
void
s
et5gsRegistrationType
(
bool
is_for
,
uint8_t
type
);
bool
get5gsRegistrationType
(
bool
&
is_for
,
uint8_t
&
reg_type
/*3bits*/
);
void
S
et5gsRegistrationType
(
bool
is_for
,
uint8_t
type
);
bool
Get5gsRegistrationType
(
bool
&
is_for
,
uint8_t
&
reg_type
);
void
SetNgKsi
(
uint8_t
tsc
,
uint8_t
key_set_id
);
bool
getngKSI
(
uint8_t
&
ng_ksi
)
;
bool
GetNgKsi
(
uint8_t
&
ng_ksi
)
const
;
uint8_t
getMobileIdentityType
()
;
uint8_t
GetMobileIdentityType
()
const
;
// TODO: SetMobileIdentityType(uint8_t);
void
SetSuciSupiFormatImsi
(
const
string
mcc
,
const
string
mnc
,
const
string
routingInd
,
uint8_t
protection_sch_id
,
const
string
msin
);
const
std
::
string
&
mcc
,
const
std
::
string
&
mnc
,
const
std
::
string
&
routing_ind
,
uint8_t
protection_sch_id
,
const
std
::
string
&
msin
);
void
SetSuciSupiFormatImsi
(
const
string
mcc
,
const
string
mnc
,
const
string
routingInd
,
uint8_t
protection_sch_id
,
uint8_t
hnpki
,
const
string
msin
);
bool
getSuciSupiFormatImsi
(
nas
::
SUCI_imsi_t
&
imsi
);
const
std
::
string
&
mcc
,
const
std
::
string
&
mnc
,
const
std
::
string
&
routing_ind
,
uint8_t
protection_sch_id
,
uint8_t
hnpki
,
const
std
::
string
&
msin
);
bool
GetSuciSupiFormatImsi
(
nas
::
SUCI_imsi_t
&
imsi
)
const
;
void
Set5gGuti
();
std
::
string
Get5gGuti
();
std
::
string
Get5gGuti
()
const
;
void
SetImeiImeisv
();
void
Set5gSTmsi
();
void
setAdditional_GUTI_SUCI_SUPI_format_IMSI
(
const
st
ring
mcc
,
const
string
mnc
,
uint8_t
amf_region_id
,
uint8_t
amf_set_id
,
uint8_t
amf_pointer
,
const
st
ring
_5g_tmsi
);
bool
getAdditionalGuti
(
nas
::
_5G_GUTI_t
&
guti
)
;
void
SetAdditionalGuti
(
const
st
d
::
string
&
mcc
,
const
std
::
string
&
mnc
,
uint8_t
amf_region_id
,
uint8_t
amf_set_id
,
uint8_t
amf_pointer
,
const
st
d
::
string
&
_5g_tmsi
);
bool
GetAdditionalGuti
(
nas
::
_5G_GUTI_t
&
guti
)
const
;
void
s
etNonCurrentNativeNasKSI
(
uint8_t
tsc
,
uint8_t
key_set_id
);
bool
g
etNonCurrentNativeNasKSI
(
uint8_t
&
value
)
const
;
void
S
etNonCurrentNativeNasKSI
(
uint8_t
tsc
,
uint8_t
key_set_id
);
bool
G
etNonCurrentNativeNasKSI
(
uint8_t
&
value
)
const
;
void
set5GMM
Capability
(
uint8_t
value
);
bool
get5GMMCapability
(
uint8_t
&
value
)
;
void
Set5gmm
Capability
(
uint8_t
value
);
bool
Get5gmmCapability
(
uint8_t
&
value
)
const
;
void
setUESecurityCapability
(
uint8_t
g_EASel
,
uint8_t
g_IASel
);
void
setUE
SecurityCapability
(
uint8_t
g_EASel
,
uint8_t
g_IASel
,
uint8_t
eea
,
uint8_t
eia
);
bool
getUeSecurityCapability
(
uint8_t
&
ea
,
uint8_t
&
ia
)
;
void
SetUeSecurityCapability
(
uint8_t
ea
,
uint8_t
ia
);
void
SetUe
SecurityCapability
(
uint8_t
ea
,
uint8_t
ia
,
uint8_t
eea
,
uint8_t
eia
);
bool
GetUeSecurityCapability
(
uint8_t
&
ea
,
uint8_t
&
ia
)
const
;
// TODO: use std::optional for optional fields eea,eia
bool
g
etUeSecurityCapability
(
uint8_t
&
ea
,
uint8_t
&
ia
,
uint8_t
&
eea
,
uint8_t
&
eia
);
bool
G
etUeSecurityCapability
(
uint8_t
&
ea
,
uint8_t
&
ia
,
uint8_t
&
eea
,
uint8_t
&
eia
)
const
;
void
setRequestedNSSAI
(
std
::
vector
<
struct
SNSSAI_s
>
nssai
);
bool
getRequestedNssai
(
std
::
vector
<
struct
SNSSAI_s
>&
nssai
)
;
void
SetRequestedNssai
(
const
std
::
vector
<
struct
SNSSAI_s
>&
nssai
);
bool
GetRequestedNssai
(
std
::
vector
<
struct
SNSSAI_s
>&
nssai
)
const
;
void
setUENetworkCapability
(
uint8_t
g_EEASel
,
uint8_t
g_EIASel
);
bool
getS1UeNetworkCapability
(
uint8_t
&
eea
,
uint8_t
&
eia
)
;
void
SetUeNetworkCapability
(
uint8_t
eea
,
uint8_t
eia
);
bool
GetS1UeNetworkCapability
(
uint8_t
&
eea
,
uint8_t
&
eia
)
const
;
void
setUplinkDataStatus
(
const
uint16_t
&
value
);
bool
getUplinkDataStatus
(
uint16_t
&
value
)
;
void
SetUplinkDataStatus
(
uint16_t
value
);
bool
GetUplinkDataStatus
(
uint16_t
&
value
)
const
;
void
setLastVisitedRegisteredTAI
(
const
std
::
string
&
mcc
,
const
std
::
string
mnc
,
const
uint32_t
&
tac
);
void
SetLastVisitedRegisteredTai
(
const
std
::
string
&
mcc
,
const
std
::
string
&
mnc
,
uint32_t
tac
);
// TODO: Getter
void
setPDU
SessionStatus
(
uint16_t
value
);
uint16_t
getPduSessionStatus
()
;
void
SetPdu
SessionStatus
(
uint16_t
value
);
uint16_t
GetPduSessionStatus
()
const
;
void
setMICO
Indication
(
bool
sprti
,
bool
raai
);
bool
getMicoIndication
(
uint8_t
&
sprti
,
uint8_t
&
raai
)
;
void
SetMico
Indication
(
bool
sprti
,
bool
raai
);
bool
GetMicoIndication
(
uint8_t
&
sprti
,
uint8_t
&
raai
)
const
;
void
setUE
Status
(
bool
n1
,
bool
s1
);
bool
getUeStatus
(
uint8_t
&
n1ModeReg
,
uint8_t
&
s1ModeReg
)
;
void
SetUe
Status
(
bool
n1
,
bool
s1
);
bool
GetUeStatus
(
uint8_t
&
n1_mode
,
uint8_t
&
s1_mode
)
const
;
void
setAllowedPDU
SessionStatus
(
uint16_t
value
);
uint16_t
getAllowedPduSessionStatus
()
;
void
SetAllowedPdu
SessionStatus
(
uint16_t
value
);
uint16_t
GetAllowedPduSessionStatus
()
const
;
void
setUES_Usage_
Setting
(
bool
ues_usage_setting
);
uint8_t
getUEsUsageSetting
()
;
void
SetUeUsage
Setting
(
bool
ues_usage_setting
);
uint8_t
GetUeUsageSetting
()
const
;
void
Set5gsDrxParameters
(
uint8_t
value
);
uint8_t
get5GSDrxParameters
()
;
uint8_t
Get5gsDrxParameters
()
const
;
void
setEPS_NAS_Message_Container
(
bstring
value
);
void
SetEpsNasMessageContainer
(
const
bstring
&
value
);
void
setLADN_Indication
(
std
::
vector
<
bstring
>
ladnV
alue
);
bool
getLadnIndication
(
std
::
vector
<
bstring
>&
ladnValue
)
;
void
SetLadnIndication
(
const
std
::
vector
<
bstring
>&
ladn_v
alue
);
bool
GetLadnIndication
(
std
::
vector
<
bstring
>&
ladn_value
)
const
;
void
SetPayloadContainerType
(
uint8_t
value
);
uint8_t
GetPayloadContainerType
();
uint8_t
GetPayloadContainerType
()
const
;
void
SetPayloadContainer
(
std
::
vector
<
PayloadContainerEntry
>
content
);
bool
GetPayloadContainer
(
std
::
vector
<
PayloadContainerEntry
>&
content
);
void
SetPayloadContainer
(
const
std
::
vector
<
PayloadContainerEntry
>&
content
);
bool
GetPayloadContainer
(
std
::
vector
<
PayloadContainerEntry
>&
content
)
const
;
void
SetNetworkSlicingIndication
(
bool
dcni
,
bool
nssci
);
bool
getNetworkSlicingIndication
(
uint8_t
&
dcni
,
uint8_t
&
nssci
)
;
bool
GetNetworkSlicingIndication
(
uint8_t
&
dcni
,
uint8_t
&
nssci
)
const
;
void
set_5GS_Update_
Type
(
void
Set5gsUpdate
Type
(
uint8_t
eps_pnb_ciot
,
uint8_t
_5gs_pnb_ciot
,
bool
ng_ran
,
bool
sms
);
bool
get5GS
UpdateType
(
bool
Get5gs
UpdateType
(
uint8_t
&
eps_pnb_ciot
,
uint8_t
&
_5gs_pnb_ciot
,
bool
&
ng_ran_rcu
,
bool
&
sms_requested
);
bool
&
sms_requested
)
const
;
void
SetNasMessageContainer
(
bstring
value
);
bool
GetNasMessageContainer
(
bstring
&
nas
);
void
SetNasMessageContainer
(
const
bstring
&
value
);
bool
GetNasMessageContainer
(
bstring
&
nas
)
const
;
bool
getEpsNasMessageContainer
(
bstring
&
epsNas
)
;
// bool
g
etEpsNasMessageContainer(bstring& epsNas);
bool
GetEpsNasMessageContainer
(
bstring
&
epsNas
)
const
;
// bool
G
etEpsNasMessageContainer(bstring& epsNas);
void
SetEpsBearerContextsStatus
(
uint16_t
value
);
bool
getEpsBearerContextStatus
(
uint16_t
&
value
)
;
bool
GetEpsBearerContextStatus
(
uint16_t
&
value
)
const
;
public:
_5GSRegistrationType
ie_5gs_registration_type
;
// Mandatory
...
...
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