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
c9770cf5
Commit
c9770cf5
authored
May 22, 2021
by
Tien-Thinh Nguyen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add customize API for FlexCN
parent
9f8cb6b5
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
277 additions
and
112 deletions
+277
-112
src/common/3gpp_29.508.h
src/common/3gpp_29.508.h
+2
-1
src/smf_app/smf_context.cpp
src/smf_app/smf_context.cpp
+243
-105
src/smf_app/smf_context.hpp
src/smf_app/smf_context.hpp
+9
-2
src/smf_app/smf_event.cpp
src/smf_app/smf_event.cpp
+9
-1
src/smf_app/smf_event.hpp
src/smf_app/smf_event.hpp
+5
-0
src/smf_app/smf_event_sig.hpp
src/smf_app/smf_event_sig.hpp
+6
-1
src/smf_app/smf_procedure.cpp
src/smf_app/smf_procedure.cpp
+3
-2
No files found.
src/common/3gpp_29.508.h
View file @
c9770cf5
...
...
@@ -30,7 +30,8 @@ typedef enum smf_event_e {
SMF_EVENT_PDU_SES_REL
=
3
,
SMF_EVENT_PLMN_CH
=
4
,
SMF_EVENT_UE_IP_CH
=
5
,
SMF_EVENT_DDDS
=
6
SMF_EVENT_DDDS
=
6
,
SMF_EVENT_FLEXCN
=
99
}
smf_event_t
;
static
const
std
::
vector
<
std
::
string
>
smf_event_e2str
=
{
...
...
src/smf_app/smf_context.cpp
View file @
c9770cf5
This diff is collapsed.
Click to expand it.
src/smf_app/smf_context.hpp
View file @
c9770cf5
...
...
@@ -579,6 +579,9 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
event_sub
.
subscribe_ee_pdu_session_status_change
(
boost
::
bind
(
&
smf_context
::
handle_pdu_session_status_change
,
this
,
_1
,
_2
,
_3
));
// Subscribe to FlexCN event
ee_flexcn
=
event_sub
.
subscribe_ee_flexcn_event
(
boost
::
bind
(
&
smf_context
::
handle_flexcn_event
,
this
,
_1
,
_2
));
}
smf_context
(
smf_context
&
b
)
=
delete
;
...
...
@@ -591,7 +594,7 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
if
(
ee_pdu_session_release_connection
.
connected
())
ee_pdu_session_release_connection
.
disconnect
();
if
(
pdu_session_status_connection
.
connected
())
pdu_session_status_connection
.
disconnect
();
pdu_session_status_connection
.
disconnect
();
}
/*
...
...
@@ -1038,8 +1041,11 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
void
handle_pdu_session_status_change
(
scid_t
scid
,
const
std
::
string
&
status
,
uint8_t
http_version
);
void
trigger_pdu_session_status_change
(
scid_t
scid
,
const
std
::
string
&
status
,
uint8_t
http_version
);
void
trigger_pdu_session_status_change
(
scid_t
scid
,
const
std
::
string
&
status
,
uint8_t
http_version
);
void
trigger_flexcn_event
(
scid_t
scid
,
uint8_t
http_version
);
void
handle_flexcn_event
(
scid_t
scid
,
uint8_t
http_version
);
/*
* Update QoS information in the Response message according to the content of
* decoded NAS msg
...
...
@@ -1092,6 +1098,7 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
bs2
::
connection
sm_context_status_connection
;
bs2
::
connection
pdu_session_status_connection
;
bs2
::
connection
ee_pdu_session_release_connection
;
bs2
::
connection
ee_flexcn
;
};
}
// namespace smf
...
...
src/smf_app/smf_event.cpp
View file @
c9770cf5
...
...
@@ -42,12 +42,20 @@ bs2::connection smf_event::subscribe_sm_context_status(
return
sm_context_status
.
connect
(
sig
);
}
//------------------------------------------------------------------------------
bs2
::
connection
smf_event
::
subscribe_ee_pdu_session_status_change
(
const
ee_pdu_session_status_sig_t
::
slot_type
&
sig
)
{
return
ee_pdu_session_status
.
connect
(
sig
);
return
ee_pdu_session_status
.
connect
(
sig
);
}
//------------------------------------------------------------------------------
bs2
::
connection
smf_event
::
subscribe_ee_pdu_session_release
(
const
ee_pdu_session_release_sig_t
::
slot_type
&
sig
)
{
return
ee_pdu_session_release
.
connect
(
sig
);
}
//------------------------------------------------------------------------------
bs2
::
connection
smf_event
::
subscribe_ee_flexcn_event
(
const
ee_flexcn_sig_t
::
slot_type
&
sig
)
{
return
ee_flexcn
.
connect
(
sig
);
}
src/smf_app/smf_event.hpp
View file @
c9770cf5
...
...
@@ -76,6 +76,9 @@ class smf_event {
bs2
::
connection
subscribe_ee_pdu_session_status_change
(
const
ee_pdu_session_status_sig_t
::
slot_type
&
sig
);
bs2
::
connection
subscribe_ee_flexcn_event
(
const
ee_flexcn_sig_t
::
slot_type
&
sig
);
private:
sm_context_status_sig_t
sm_context_status
;
// Signal for SM Context status update
...
...
@@ -84,6 +87,8 @@ class smf_event {
ee_pdu_session_release_sig_t
ee_pdu_session_release
;
// Signal for SM Context status update
ee_flexcn_sig_t
ee_flexcn
;
// Signal for FlexCN Event
};
}
// namespace smf
#endif
/* FILE_SMF_EVENT_HPP_SEEN */
src/smf_app/smf_event_sig.hpp
View file @
c9770cf5
...
...
@@ -63,7 +63,12 @@ typedef bs2::signal_type<
// TODO: UP Path Change
// TODO: PLMN Change
// TODO: Downlink data delivery status
// TODO: Customized APIs for FlexCN
// Signal for FlexCN event (for Event Exposure)
// SCID, HTTP version
typedef
bs2
::
signal_type
<
void
(
scid_t
,
uint8_t
),
bs2
::
keywords
::
mutex_type
<
bs2
::
dummy_mutex
>>::
type
ee_flexcn_sig_t
;
}
// namespace smf
#endif
/* FILE_SMF_EVENT_SIG_HPP_SEEN */
src/smf_app/smf_procedure.cpp
View file @
c9770cf5
...
...
@@ -1133,11 +1133,12 @@ void session_update_sm_context_procedure::handle_itti_msg(
// Update PDU session status to ACTIVE
sps
->
set_pdu_session_status
(
pdu_session_status_e
::
PDU_SESSION_ACTIVE
);
// set UpCnxState to
DE
ACTIVATED
// set UpCnxState to ACTIVATED
sps
->
set_upCnx_state
(
upCnx_state_e
::
UPCNX_STATE_ACTIVATED
);
//Trigger Event_exposure event
//
Trigger Event_exposure event
scid_t
scid
=
sc
.
get
()
->
get_scid
();
sc
.
get
()
->
trigger_pdu_session_status_change
(
scid
,
"ACTIVATED"
,
1
);
sc
.
get
()
->
trigger_flexcn_event
(
scid
,
1
);
}
break
;
// UE-Triggered Service Request Procedure (Step 1)
...
...
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