Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-SMF
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
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-SMF
Commits
edc4ab04
Commit
edc4ab04
authored
Dec 16, 2019
by
Tien-Thinh Nguyen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add api root for header (location)
parent
1c4a02b0
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
178 additions
and
112 deletions
+178
-112
3gpp-specs/TS29571_CommonData.yaml
3gpp-specs/TS29571_CommonData.yaml
+1
-1
src/api-server/impl/IndividualPDUSessionHSMFApiImpl.cpp
src/api-server/impl/IndividualPDUSessionHSMFApiImpl.cpp
+2
-2
src/api-server/impl/IndividualPDUSessionHSMFApiImpl.h
src/api-server/impl/IndividualPDUSessionHSMFApiImpl.h
+2
-1
src/api-server/impl/IndividualSMContextApiImpl.cpp
src/api-server/impl/IndividualSMContextApiImpl.cpp
+15
-9
src/api-server/impl/IndividualSMContextApiImpl.h
src/api-server/impl/IndividualSMContextApiImpl.h
+2
-1
src/api-server/impl/PDUSessionsCollectionApiImpl.cpp
src/api-server/impl/PDUSessionsCollectionApiImpl.cpp
+2
-2
src/api-server/impl/PDUSessionsCollectionApiImpl.h
src/api-server/impl/PDUSessionsCollectionApiImpl.h
+2
-1
src/api-server/impl/SMContextsCollectionApiImpl.cpp
src/api-server/impl/SMContextsCollectionApiImpl.cpp
+6
-2
src/api-server/impl/SMContextsCollectionApiImpl.h
src/api-server/impl/SMContextsCollectionApiImpl.h
+2
-1
src/api-server/smf-api-server.h
src/api-server/smf-api-server.h
+2
-0
src/smf_app/smf_app.cpp
src/smf_app/smf_app.cpp
+1
-1
src/smf_app/smf_context.cpp
src/smf_app/smf_context.cpp
+7
-0
src/smf_app/smf_msg.cpp
src/smf_app/smf_msg.cpp
+21
-0
src/smf_app/smf_msg.hpp
src/smf_app/smf_msg.hpp
+113
-91
No files found.
3gpp-specs/TS29571_CommonData.yaml
View file @
edc4ab04
...
...
@@ -695,7 +695,7 @@ components:
anyOf
:
-
type
:
string
enum
:
-
o
IPV4
-
IPV4
-
IPV6
-
IPV4V6
-
UNSTRUCTURED
...
...
src/api-server/impl/IndividualPDUSessionHSMFApiImpl.cpp
View file @
edc4ab04
...
...
@@ -18,8 +18,8 @@ namespace api {
using
namespace
oai
::
smf_server
::
model
;
IndividualPDUSessionHSMFApiImpl
::
IndividualPDUSessionHSMFApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
rtr
,
smf
::
smf_app
*
smf_app_inst
)
:
IndividualPDUSessionHSMFApi
(
rtr
),
m_smf_app
(
smf_app_inst
)
IndividualPDUSessionHSMFApiImpl
::
IndividualPDUSessionHSMFApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
rtr
,
smf
::
smf_app
*
smf_app_inst
,
std
::
string
address
)
:
IndividualPDUSessionHSMFApi
(
rtr
),
m_smf_app
(
smf_app_inst
)
,
m_address
(
address
)
{
}
void
IndividualPDUSessionHSMFApiImpl
::
release_pdu_session
(
const
std
::
string
&
pduSessionRef
,
const
ReleaseData
&
releaseData
,
Pistache
::
Http
::
ResponseWriter
&
response
)
{
...
...
src/api-server/impl/IndividualPDUSessionHSMFApiImpl.h
View file @
edc4ab04
...
...
@@ -45,13 +45,14 @@ using namespace oai::smf_server::model;
class
IndividualPDUSessionHSMFApiImpl
:
public
oai
::
smf_server
::
api
::
IndividualPDUSessionHSMFApi
{
public:
IndividualPDUSessionHSMFApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
,
smf
::
smf_app
*
smf_app_inst
);
IndividualPDUSessionHSMFApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
,
smf
::
smf_app
*
smf_app_inst
,
std
::
string
address
);
~
IndividualPDUSessionHSMFApiImpl
()
{}
void
release_pdu_session
(
const
std
::
string
&
pduSessionRef
,
const
ReleaseData
&
releaseData
,
Pistache
::
Http
::
ResponseWriter
&
response
);
void
update_pdu_session
(
const
std
::
string
&
pduSessionRef
,
const
HsmfUpdateData
&
hsmfUpdateData
,
Pistache
::
Http
::
ResponseWriter
&
response
);
private:
smf
::
smf_app
*
m_smf_app
;
std
::
string
m_address
;
};
}
...
...
src/api-server/impl/IndividualSMContextApiImpl.cpp
View file @
edc4ab04
...
...
@@ -18,26 +18,32 @@ namespace api {
using
namespace
oai
::
smf_server
::
model
;
IndividualSMContextApiImpl
::
IndividualSMContextApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
rtr
,
smf
::
smf_app
*
smf_app_inst
)
:
IndividualSMContextApi
(
rtr
),
m_smf_app
(
smf_app_inst
)
IndividualSMContextApiImpl
::
IndividualSMContextApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
rtr
,
smf
::
smf_app
*
smf_app_inst
,
std
::
string
address
)
:
IndividualSMContextApi
(
rtr
),
m_smf_app
(
smf_app_inst
)
,
m_address
(
address
)
{
}
void
IndividualSMContextApiImpl
::
release_sm_context
(
const
std
::
string
&
smContextRef
,
const
SmContextReleaseData
&
smContextReleaseData
,
Pistache
::
Http
::
ResponseWriter
&
response
)
{
response
.
send
(
Pistache
::
Http
::
Code
::
Ok
,
"Do some magic
\n
"
);
Logger
::
smf_api_server
().
info
(
"release_sm_context..."
);
response
.
send
(
Pistache
::
Http
::
Code
::
Ok
,
"This API has not been implemented yet!
\n
"
);
}
void
IndividualSMContextApiImpl
::
retrieve_sm_context
(
const
std
::
string
&
smContextRef
,
const
SmContextRetrieveData
&
smContextRetrieveData
,
Pistache
::
Http
::
ResponseWriter
&
response
)
{
response
.
send
(
Pistache
::
Http
::
Code
::
Ok
,
"Do some magic
\n
"
);
Logger
::
smf_api_server
().
info
(
"retrieve_sm_context..."
);
response
.
send
(
Pistache
::
Http
::
Code
::
Ok
,
"This API has not been implemented yet!
\n
"
);
}
void
IndividualSMContextApiImpl
::
update_sm_context
(
const
std
::
string
&
smContextRef
,
const
SmContextUpdateData
&
smContextUpdateData
,
Pistache
::
Http
::
ResponseWriter
&
response
)
{
//handle Nsmf_PDUSession_UpdateSMContext Request
Logger
::
smf_api_server
().
info
(
"update_sm_contexts..."
);
//Get the SmContextUpdateData from this message and process in smf_app
//Get the SmContextUpdateData from this message and process in smf_app
smf
::
pdu_session_update_sm_context_request
sm_context_req_msg
=
{};
//TODO: initialize necessary values for sm context req from smContextUpdateData
//set smContextRef
sm_context_req_msg
.
set_sm_context_ref
(
smContextRef
);
//TODO: initialize necessary values for sm context req from smContextUpdateData and smContextRef
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>
itti_msg
=
std
::
make_shared
<
itti_n11_update_sm_context_request
>
(
TASK_SMF_N11
,
TASK_SMF_APP
,
response
);
itti_msg
->
req
=
sm_context_req_msg
;
m_smf_app
->
handle_amf_msg
(
itti_msg
);
std
::
shared_ptr
<
itti_n11_update_sm_context_request
>
itti_msg
=
std
::
make_shared
<
itti_n11_update_sm_context_request
>
(
TASK_SMF_N11
,
TASK_SMF_APP
,
response
);
itti_msg
->
req
=
sm_context_req_msg
;
m_smf_app
->
handle_amf_msg
(
itti_msg
);
}
...
...
src/api-server/impl/IndividualSMContextApiImpl.h
View file @
edc4ab04
...
...
@@ -47,7 +47,7 @@ using namespace oai::smf_server::model;
class
IndividualSMContextApiImpl
:
public
oai
::
smf_server
::
api
::
IndividualSMContextApi
{
public:
IndividualSMContextApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
,
smf
::
smf_app
*
smf_app_inst
);
IndividualSMContextApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
,
smf
::
smf_app
*
smf_app_inst
,
std
::
string
address
);
~
IndividualSMContextApiImpl
()
{}
void
release_sm_context
(
const
std
::
string
&
smContextRef
,
const
SmContextReleaseData
&
smContextReleaseData
,
Pistache
::
Http
::
ResponseWriter
&
response
);
...
...
@@ -55,6 +55,7 @@ public:
void
update_sm_context
(
const
std
::
string
&
smContextRef
,
const
SmContextUpdateData
&
smContextUpdateData
,
Pistache
::
Http
::
ResponseWriter
&
response
);
private:
smf
::
smf_app
*
m_smf_app
;
std
::
string
m_address
;
};
}
...
...
src/api-server/impl/PDUSessionsCollectionApiImpl.cpp
View file @
edc4ab04
...
...
@@ -18,8 +18,8 @@ namespace api {
using
namespace
oai
::
smf_server
::
model
;
PDUSessionsCollectionApiImpl
::
PDUSessionsCollectionApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
rtr
,
smf
::
smf_app
*
smf_app_inst
)
:
PDUSessionsCollectionApi
(
rtr
),
m_smf_app
(
smf_app_inst
)
PDUSessionsCollectionApiImpl
::
PDUSessionsCollectionApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
rtr
,
smf
::
smf_app
*
smf_app_inst
,
std
::
string
address
)
:
PDUSessionsCollectionApi
(
rtr
),
m_smf_app
(
smf_app_inst
)
,
m_address
(
address
)
{
}
void
PDUSessionsCollectionApiImpl
::
post_pdu_sessions
(
const
PduSessionCreateData
&
pduSessionCreateData
,
Pistache
::
Http
::
ResponseWriter
&
response
)
{
...
...
src/api-server/impl/PDUSessionsCollectionApiImpl.h
View file @
edc4ab04
...
...
@@ -43,12 +43,13 @@ using namespace oai::smf_server::model;
class
PDUSessionsCollectionApiImpl
:
public
oai
::
smf_server
::
api
::
PDUSessionsCollectionApi
{
public:
PDUSessionsCollectionApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
,
smf
::
smf_app
*
smf_app_inst
);
PDUSessionsCollectionApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
,
smf
::
smf_app
*
smf_app_inst
,
std
::
string
address
);
~
PDUSessionsCollectionApiImpl
()
{}
void
post_pdu_sessions
(
const
PduSessionCreateData
&
pduSessionCreateData
,
Pistache
::
Http
::
ResponseWriter
&
response
);
private:
smf
::
smf_app
*
m_smf_app
;
std
::
string
m_address
;
};
}
...
...
src/api-server/impl/SMContextsCollectionApiImpl.cpp
View file @
edc4ab04
...
...
@@ -28,8 +28,8 @@ namespace api {
using
namespace
oai
::
smf_server
::
model
;
SMContextsCollectionApiImpl
::
SMContextsCollectionApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
rtr
,
smf
::
smf_app
*
smf_app_inst
)
:
SMContextsCollectionApi
(
rtr
),
m_smf_app
(
smf_app_inst
)
SMContextsCollectionApiImpl
::
SMContextsCollectionApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
rtr
,
smf
::
smf_app
*
smf_app_inst
,
std
::
string
address
)
:
SMContextsCollectionApi
(
rtr
),
m_smf_app
(
smf_app_inst
)
,
m_address
(
address
)
{
}
...
...
@@ -90,6 +90,10 @@ void SMContextsCollectionApiImpl::post_sm_contexts(const SmContextMessage &smCon
//Step 2. Create a pdu_session_create_sm_context_request message and store the necessary information
smf
::
pdu_session_create_sm_context_request
sm_context_req_msg
=
{};
//"/nsmf-pdusession/v1";
sm_context_req_msg
.
set_api_root
(
m_address
+
base
+
"/sm-contexts"
);
//supi
supi_t
supi
=
{.
length
=
0
};
smf_string_to_supi
(
&
supi
,
smContextCreateData
.
getSupi
().
c_str
());
...
...
src/api-server/impl/SMContextsCollectionApiImpl.h
View file @
edc4ab04
...
...
@@ -43,12 +43,13 @@ using namespace oai::smf_server::model;
class
SMContextsCollectionApiImpl
:
public
oai
::
smf_server
::
api
::
SMContextsCollectionApi
{
public:
SMContextsCollectionApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
,
smf
::
smf_app
*
smf_app_inst
);
SMContextsCollectionApiImpl
(
std
::
shared_ptr
<
Pistache
::
Rest
::
Router
>
,
smf
::
smf_app
*
smf_app_inst
,
std
::
string
address
);
~
SMContextsCollectionApiImpl
()
{}
void
post_sm_contexts
(
const
SmContextMessage
&
smContextMessage
,
Pistache
::
Http
::
ResponseWriter
&
response
);
private:
smf
::
smf_app
*
m_smf_app
;
std
::
string
m_address
;
};
}
...
...
src/api-server/smf-api-server.h
View file @
edc4ab04
...
...
@@ -35,6 +35,7 @@ public:
m_individualSMContextApiImpl
=
std
::
make_shared
<
IndividualSMContextApiImpl
>
(
m_router
,
smf_app_inst
);
m_pduSessionsCollectionApiImpl
=
std
::
make_shared
<
PDUSessionsCollectionApiImpl
>
(
m_router
,
smf_app_inst
);
m_smContextsCollectionApiImpl
=
std
::
make_shared
<
SMContextsCollectionApiImpl
>
(
m_router
,
smf_app_inst
);
m_address
=
address
.
host
()
+
":"
+
(
address
.
port
()).
toString
();
}
void
init
(
size_t
thr
=
1
);
...
...
@@ -48,6 +49,7 @@ private:
std
::
shared_ptr
<
IndividualSMContextApiImpl
>
m_individualSMContextApiImpl
;
std
::
shared_ptr
<
PDUSessionsCollectionApiImpl
>
m_pduSessionsCollectionApiImpl
;
std
::
shared_ptr
<
SMContextsCollectionApiImpl
>
m_smContextsCollectionApiImpl
;
std
::
string
m_address
;
};
...
...
src/smf_app/smf_app.cpp
View file @
edc4ab04
...
...
@@ -412,7 +412,7 @@ void smf_app::handle_amf_msg (std::shared_ptr<itti_n11_create_sm_context_request
send_create_session_response
(
smreq
->
http_response
,
smContextCreateError
,
Pistache
::
Http
::
Code
::
Forbidden
);
return
;
}
}
container
with
a
PDU
Session
Establishment
Reject
message
(
see
clause
8.3.3
of
TS
24.501
[
25
])
in
the
}
//Step 5. let the context handle the message
//in this step, SMF will send N4 Session Establishment/Modification to UPF (step 10a, section 4.3.2 3GPP 23.502)
...
...
src/smf_app/smf_context.cpp
View file @
edc4ab04
...
...
@@ -541,6 +541,12 @@ void smf_context::handle_amf_msg (std::shared_ptr<itti_n11_create_sm_context_req
to_json
(
jsonData
,
smContextCreatedData
);
std
::
string
resBody
=
jsonData
.
dump
();
//headers: Location:
//Contains the URI of the newly created resource, according to the structure: {apiRoot}/nsmf-pdusession/{apiVersion}/sm-contexts/{smContextRef}
std
::
string
uri
=
sm_context_req_msg
.
get_api_root
()
+
std
::
to_string
(
supi64
);
//smContextRef
sm_context_resp
->
http_response
.
headers
().
add
<
Pistache
::
Http
::
Header
::
Location
>
(
uri
);
sm_context_resp
->
http_response
.
send
(
Pistache
::
Http
::
Code
::
Created
,
resBody
);
session_create_sm_context_procedure
*
proc
=
new
session_create_sm_context_procedure
(
sp
);
...
...
@@ -625,6 +631,7 @@ void smf_context::handle_amf_msg (std::shared_ptr<itti_n11_update_sm_context_req
// if these contexts existed > create a procedure for update sm context and let the procedure handle the request
//else
//TODO:
session_update_sm_context_procedure
*
proc
=
new
session_update_sm_context_procedure
(
sp
);
std
::
shared_ptr
<
smf_procedure
>
sproc
=
std
::
shared_ptr
<
smf_procedure
>
(
proc
);
...
...
src/smf_app/smf_msg.cpp
View file @
edc4ab04
...
...
@@ -91,6 +91,17 @@ void pdu_session_msg::set_snssai(snssai_t const& snssai)
m_snssai
=
snssai
;
}
//-----------------------------------------------------------------------------
void
pdu_session_msg
::
set_api_root
(
std
::
string
const
&
value
)
{
m_api_root
=
value
;
}
std
::
string
pdu_session_msg
::
get_api_root
()
const
{
return
m_api_root
;
}
//-----------------------------------------------------------------------------
std
::
string
pdu_session_create_sm_context_request
::
get_serving_nf_id
()
const
{
...
...
@@ -226,3 +237,13 @@ void pdu_session_create_sm_context_response::set_qos_flow_context(const qos_flow
qos_flow_context
=
qos_flow
;
}
void
pdu_session_update_sm_context_request
::
set_sm_context_ref
(
std
::
string
const
&
value
)
{
m_smContextRef
=
value
;
}
std
::
string
pdu_session_update_sm_context_request
::
get_sm_context_ref
()
const
{
return
m_smContextRef
;
}
src/smf_app/smf_msg.hpp
View file @
edc4ab04
...
...
@@ -66,7 +66,11 @@ public:
snssai_t
get_snssai
()
const
;
void
set_snssai
(
snssai_t
const
&
value
);
void
set_api_root
(
std
::
string
const
&
value
);
std
::
string
get_api_root
()
const
;
private:
std
::
string
m_api_root
;
supi_t
m_supi
;
pdu_session_id_t
m_pdu_session_id
;
std
::
string
m_dnn
;
...
...
@@ -76,99 +80,117 @@ private:
//for PDU session update
class
pdu_session_update_sm_context_request
:
public
pdu_session_msg
{
public:
pdu_session_update_sm_context_request
()
:
pdu_session_msg
(){
}
pdu_session_update_sm_context_request
()
:
pdu_session_msg
(){
};
void
set_sm_context_ref
(
std
::
string
const
&
value
);
std
::
string
get_sm_context_ref
()
const
;
private:
//std::string m_Ppei;
std
::
string
m_NfInstanceId
;
Guami
m_Guami
;
PlmnId
servingNetwork
;
//BackupAmfInfo
AcessType
anType
;
/* SmContextUpdateData:
servingNetwork:
$ref: '../TS29571_CommonData.yaml#/components/schemas/PlmnId'
backupAmfInfo:
type: array
items:
$ref: '../TS29571_CommonData.yaml#/components/schemas/BackupAmfInfo'
minItems: 1
nullable: true
anType:
$ref: '../TS29571_CommonData.yaml#/components/schemas/AccessType'
secondAnType:
$ref: '../TS29571_CommonData.yaml#/components/schemas/AccessType'
ratType:
$ref: '../TS29571_CommonData.yaml#/components/schemas/RatType'
presenceInLadn:
$ref: '../TS29571_CommonData.yaml#/components/schemas/PresenceState'
ueLocation:
$ref: '../TS29571_CommonData.yaml#/components/schemas/UserLocation'
ueTimeZone:
$ref: '../TS29571_CommonData.yaml#/components/schemas/TimeZone'
addUeLocation:
$ref: '../TS29571_CommonData.yaml#/components/schemas/UserLocation'
upCnxState:
$ref: '#/components/schemas/UpCnxState'
hoState:
$ref: '#/components/schemas/HoState'
toBeSwitched:
type: boolean
default: false
failedToBeSwitched:
type: boolean
n1SmMsg:
$ref: '../TS29571_CommonData.yaml#/components/schemas/RefToBinaryData'
n2SmInfo:
$ref: '../TS29571_CommonData.yaml#/components/schemas/RefToBinaryData'
n2SmInfoType:
$ref: '#/components/schemas/N2SmInfoType'
targetId:
$ref: '../amf/TS29518_Namf_Communication.yaml#/components/schemas/NgRanTargetId'
targetServingNfId:
$ref: '../TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
smContextStatusUri:
$ref: '../TS29571_CommonData.yaml#/components/schemas/Uri'
dataForwarding:
type: boolean
default: false
epsBearerSetup:
type: array
items:
$ref: '#/components/schemas/EpsBearerContainer'
minItems: 0
revokeEbiList:
type: array
items:
$ref: '#/components/schemas/EpsBearerId'
minItems: 1
release:
type: boolean
default: false
cause:
$ref: '#/components/schemas/Cause'
ngApCause:
$ref: '../TS29571_CommonData.yaml#/components/schemas/NgApCause'
5gMmCauseValue:
$ref: '../TS29571_CommonData.yaml#/components/schemas/5GMmCause'
sNssai:
$ref: '../TS29571_CommonData.yaml#/components/schemas/Snssai'
traceData:
$ref: '../TS29571_CommonData.yaml#/components/schemas/TraceData'
epsInterworkingInd:
$ref: '#/components/schemas/EpsInterworkingIndication'
anTypeCanBeChanged:
type: boolean
default: false
n2SmInfoExt1:
$ref: '../TS29571_CommonData.yaml#/components/schemas/RefToBinaryData'
n2SmInfoTypeExt1:
$ref: '#/components/schemas/N2SmInfoType'
maReleaseInd:
$ref: '#/components/schemas/MaReleaseIndication'
exemptionInd:
$ref: '#/components/schemas/ExemptionInd'
std
::
string
m_sm_context_ref
;
//std::string m_Ppei;
std
::
string
m_nf_instanceId
;
Guami
m_guami
;
PlmnId
m_serving_network
;
//BackupAmfInfo
/*
backupAmfInfo:
type: array
items:
$ref: '../TS29571_CommonData.yaml#/components/schemas/BackupAmfInfo'
minItems: 1
nullable: true
*/
AcessType
m_an_type
;
/*
*
secondAnType:
$ref: '../TS29571_CommonData.yaml#/components/schemas/AccessType'
*/
std
::
string
m_rat_type
;
//ratType: $ref: '../TS29571_CommonData.yaml#/components/schemas/RatType
/* SmContextUpdateData:
presenceInLadn:
$ref: '../TS29571_CommonData.yaml#/components/schemas/PresenceState'
ueLocation:
$ref: '../TS29571_CommonData.yaml#/components/schemas/UserLocation'
ueTimeZone:
$ref: '../TS29571_CommonData.yaml#/components/schemas/TimeZone'
addUeLocation:
$ref: '../TS29571_CommonData.yaml#/components/schemas/UserLocation'
upCnxState:
$ref: '#/components/schemas/UpCnxState'
hoState:
$ref: '#/components/schemas/HoState'
toBeSwitched:
type: boolean
default: false
failedToBeSwitched:
type: boolean
*/
RefToBinaryData
m_n1_sm_msg
;
//n1SmMsg
RefToBinaryData
m_n2_sm_info
;
//n2SmInfo
std
::
string
m_n2_sm_info_type
;
//$ref: '#/components/schemas/N2SmInfoType'
NgRanTargetId
m_target_id
;
//$ref: '../amf/TS29518_Namf_Communication.yaml#/components/schemas/NgRanTargetId'
std
::
string
m_target_serving_nfId
// $ref: '../TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
std
::
string
m_sm_context_status_uri
;
//smContextStatusUri $ref: '../TS29571_CommonData.yaml#/components/schemas/Uri'
/*
dataForwarding:
type: boolean
default: false
*/
bool
m_data_forwarding
;
/*
epsBearerSetup:
type: array
items:
$ref: '#/components/schemas/EpsBearerContainer'
minItems: 0
*/
std
::
vector
<
std
::
string
>
m_eps_bearer_setup
;
/*
revokeEbiList:
type: array
items:
$ref: '#/components/schemas/EpsBearerId'
minItems: 1
EpsBearerId:
type: integer
minimum: 0
maximum: 15
*/
std
::
vector
<
int
>
m_revoke_ebi_list
;
/*
release:
type: boolean
default: false
cause:
$ref: '#/components/schemas/Cause'
*/
NgApCause
m_ngAp_cause
;
// $ref: '../TS29571_CommonData.yaml#/components/schemas/NgApCause
unsigned
int
m_5gMm_cause_value
;
// 5GMmCause, $ref: '../TS29571_CommonData.yaml#/components/schemas/5GMmCause'
/*
sNssai:
$ref: '../TS29571_CommonData.yaml#/components/schemas/Snssai'
traceData:
$ref: '../TS29571_CommonData.yaml#/components/schemas/TraceData'
epsInterworkingInd:
$ref: '#/components/schemas/EpsInterworkingIndication'
anTypeCanBeChanged:
type: boolean
default: false
n2SmInfoExt1:
$ref: '../TS29571_CommonData.yaml#/components/schemas/RefToBinaryData'
n2SmInfoTypeExt1:
$ref: '#/components/schemas/N2SmInfoType'
maReleaseInd:
$ref: '#/components/schemas/MaReleaseIndication'
exemptionInd:
$ref: '#/components/schemas/ExemptionInd'
*/
};
...
...
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