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
b4aee3ca
Commit
b4aee3ca
authored
Jul 27, 2022
by
ferrerod
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add event definitions and stubs
Tested SMF build, not in CN deployment yet
parent
8e94638a
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
49 additions
and
2 deletions
+49
-2
src/api-server/model/SmfEvent.h
src/api-server/model/SmfEvent.h
+2
-2
src/common/3gpp_29.508.h
src/common/3gpp_29.508.h
+3
-0
src/common/utils/3gpp_conversions.cpp
src/common/utils/3gpp_conversions.cpp
+2
-0
src/smf_app/smf_context.cpp
src/smf_app/smf_context.cpp
+16
-0
src/smf_app/smf_context.hpp
src/smf_app/smf_context.hpp
+10
-0
src/smf_app/smf_event.cpp
src/smf_app/smf_event.cpp
+6
-0
src/smf_app/smf_event.hpp
src/smf_app/smf_event.hpp
+4
-0
src/smf_app/smf_event_sig.hpp
src/smf_app/smf_event_sig.hpp
+6
-0
No files found.
src/api-server/model/SmfEvent.h
View file @
b4aee3ca
...
...
@@ -15,7 +15,7 @@
*
* Possible values are - AC_TY_CH: Access Type Change - UP_PATH_CH: UP Path
* Change - PDU_SES_REL: PDU Session Release - PLMN_CH: PLMN Change - UE_IP_CH:
* UE IP address change - DDDS: Downlink data delivery status
* UE IP address change - DDDS: Downlink data delivery status
- QOS_MON: QoS Monitoring
*/
#ifndef SmfEvent_H_
...
...
@@ -30,7 +30,7 @@ namespace model {
/// <summary>
/// Possible values are - AC_TY_CH: Access Type Change - UP_PATH_CH: UP Path
/// Change - PDU_SES_REL: PDU Session Release - PLMN_CH: PLMN Change - UE_IP_CH:
/// UE IP address change - DDDS: Downlink data delivery status
/// UE IP address change - DDDS: Downlink data delivery status
- QOS_MON: QoS Monitoring
/// </summary>
class
SmfEvent
{
public:
...
...
src/common/3gpp_29.508.h
View file @
b4aee3ca
...
...
@@ -31,6 +31,7 @@ typedef enum smf_event_e {
SMF_EVENT_PLMN_CH
=
4
,
SMF_EVENT_UE_IP_CH
=
5
,
SMF_EVENT_DDDS
=
6
,
SMF_EVENT_QOS_MON
=
7
,
SMF_EVENT_FLEXCN
=
99
}
smf_event_t
;
...
...
@@ -40,6 +41,7 @@ static std::string smf_event_from_enum(smf_event_t e) {
if
(
e
==
smf_event_t
::
SMF_EVENT_PDU_SES_REL
)
return
"PDU_SES_REL"
;
if
(
e
==
smf_event_t
::
SMF_EVENT_PLMN_CH
)
return
"PLMN_CH"
;
if
(
e
==
smf_event_t
::
SMF_EVENT_UE_IP_CH
)
return
"UE_IP_CH"
;
if
(
e
==
smf_event_t
::
SMF_EVENT_QOS_MON
)
return
"QOS_MON"
;
if
(
e
==
smf_event_t
::
SMF_EVENT_DDDS
)
return
"DDDS"
;
if
(
e
==
smf_event_t
::
SMF_EVENT_FLEXCN
)
return
"FLEXCN"
;
return
""
;
...
...
@@ -53,6 +55,7 @@ static const std::vector<std::string> smf_event_e2str = {
"PLMN Change"
,
"UE IP address change"
,
"Downlink data delivery status"
,
"QoS Monitoring"
,
"FlexCN"
};
enum
class
notification_method_e
{
...
...
src/common/utils/3gpp_conversions.cpp
View file @
b4aee3ca
...
...
@@ -538,6 +538,8 @@ void xgpp_conv::smf_event_exposure_notification_from_openapi(
event_subscription
.
smf_event
=
smf_event_e
::
SMF_EVENT_UE_IP_CH
;
}
else
if
(
event_id
.
compare
(
"DDDS"
)
==
0
)
{
event_subscription
.
smf_event
=
smf_event_e
::
SMF_EVENT_DDDS
;
}
else
if
(
event_id
.
compare
(
"QOS_MON"
)
==
0
)
{
event_subscription
.
smf_event
=
smf_event_e
::
SMF_EVENT_QOS_MON
;
}
else
if
(
event_id
.
compare
(
"FLEXCN"
)
==
0
)
{
event_subscription
.
smf_event
=
smf_event_e
::
SMF_EVENT_FLEXCN
;
}
else
{
...
...
src/smf_app/smf_context.cpp
View file @
b4aee3ca
...
...
@@ -4049,6 +4049,22 @@ void smf_context::trigger_ue_ip_change(scid_t scid, uint8_t http_version) {
event_sub
.
ee_ue_ip_change
(
scid
,
http_version
);
}
//------------------------------------------------------------------------------
void
smf_context
::
handle_qos_monitoring
(
scid_t
scid
,
uint8_t
http_version
)
{
// TODO
Logger
::
smf_app
().
debug
(
"Send request to N11 to trigger QoS Monitoring, "
"SMF Context ID "
SCID_FMT
" "
,
scid
);
return
;
}
//------------------------------------------------------------------------------
void
smf_context
::
trigger_qos_monitoring
(
scid_t
scid
,
uint8_t
http_version
)
{
event_sub
.
ee_qos_monitoring
(
scid
,
http_version
);
}
//------------------------------------------------------------------------------
void
smf_context
::
handle_flexcn_event
(
scid_t
scid
,
uint8_t
http_version
)
{
Logger
::
smf_app
().
debug
(
...
...
src/smf_app/smf_context.hpp
View file @
b4aee3ca
...
...
@@ -689,6 +689,10 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
// Subscribe to DDDS event
ee_ddds_connection
=
event_sub
.
subscribe_ee_ddds
(
boost
::
bind
(
&
smf_context
::
handle_ddds
,
this
,
_1
,
_2
));
// Subscribe to QoS Monitoring Event
ee_qos_monitoring_connection
=
event_sub
.
subscribe_ee_qos_monitoring
(
boost
::
bind
(
&
smf_context
::
handle_qos_monitoring
,
this
,
_1
,
_2
));
// Subscribe to FlexCN event
ee_flexcn
=
event_sub
.
subscribe_ee_flexcn_event
(
...
...
@@ -708,6 +712,8 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
ee_ue_ip_change_connection
.
disconnect
();
if
(
ee_plmn_change_connection
.
connected
())
ee_plmn_change_connection
.
disconnect
();
if
(
ee_qos_monitoring_connection
.
connected
())
ee_qos_monitoring_connection
.
disconnect
();
if
(
ee_ddds_connection
.
connected
())
ee_ddds_connection
.
disconnect
();
if
(
ee_flexcn
.
connected
())
ee_flexcn
.
disconnect
();
}
...
...
@@ -1252,6 +1258,9 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
void
trigger_ddds
(
scid_t
scid
,
uint8_t
http_version
);
void
handle_ddds
(
scid_t
scid
,
uint8_t
http_version
);
void
trigger_qos_monitoring
(
scid_t
scid
,
uint8_t
http_version
);
void
handle_qos_monitoring
(
scid_t
scid
,
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
);
/*
...
...
@@ -1384,6 +1393,7 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
bs2
::
connection
ee_ue_ip_change_connection
;
bs2
::
connection
ee_plmn_change_connection
;
bs2
::
connection
ee_ddds_connection
;
bs2
::
connection
ee_qos_monitoring_connection
;
bs2
::
connection
ee_flexcn
;
};
}
// namespace smf
...
...
src/smf_app/smf_event.cpp
View file @
b4aee3ca
...
...
@@ -66,6 +66,12 @@ bs2::connection smf_event::subscribe_ee_ddds(
return
ee_ddds
.
connect
(
sig
);
}
//------------------------------------------------------------------------------
bs2
::
connection
smf_event
::
subscribe_ee_qos_monitoring
(
const
ee_qos_monitoring_sig_t
::
slot_type
&
sig
)
{
return
ee_qos_monitoring
.
connect
(
sig
);
}
//------------------------------------------------------------------------------
bs2
::
connection
smf_event
::
subscribe_ee_flexcn_event
(
const
ee_flexcn_sig_t
::
slot_type
&
sig
)
{
...
...
src/smf_app/smf_event.hpp
View file @
b4aee3ca
...
...
@@ -82,6 +82,9 @@ class smf_event {
// download link data status
bs2
::
connection
subscribe_ee_ddds
(
const
ee_ddds_sig_t
::
slot_type
&
sig
);
bs2
::
connection
subscribe_ee_qos_monitoring
(
const
ee_qos_monitoring_sig_t
::
slot_type
&
sig
);
bs2
::
connection
subscribe_ee_flexcn_event
(
const
ee_flexcn_sig_t
::
slot_type
&
sig
);
...
...
@@ -93,6 +96,7 @@ class smf_event {
ee_ue_ip_change_sig_t
ee_ue_ip_change
;
// Signal for UE IP Addr change
ee_plmn_change_sig_t
ee_plmn_change
;
// Signal for UE IP Addr change
ee_ddds_sig_t
ee_ddds
;
ee_qos_monitoring_sig_t
ee_qos_monitoring
;
// Signal for QoS Monitoring
ee_flexcn_sig_t
ee_flexcn
;
// Signal for FlexCN Event
};
}
// namespace smf
...
...
src/smf_app/smf_event_sig.hpp
View file @
b4aee3ca
...
...
@@ -70,6 +70,12 @@ typedef bs2::signal_type<
void
(
scid_t
,
uint8_t
),
bs2
::
keywords
::
mutex_type
<
bs2
::
dummy_mutex
>>::
type
ee_ddds_sig_t
;
// Signal for Event exposure
// QoS Monitoring, SUPI, PDU SessionID, HTTP version
typedef
bs2
::
signal_type
<
void
(
supi64_t
,
uint8_t
),
bs2
::
keywords
::
mutex_type
<
bs2
::
dummy_mutex
>>::
type
ee_qos_monitoring_sig_t
;
// Signal for FlexCN event (for Event Exposure)
// SCID, HTTP version
typedef
bs2
::
signal_type
<
...
...
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