Commit c9770cf5 authored by Tien-Thinh Nguyen's avatar Tien-Thinh Nguyen

Add customize API for FlexCN

parent 9f8cb6b5
...@@ -30,7 +30,8 @@ typedef enum smf_event_e { ...@@ -30,7 +30,8 @@ typedef enum smf_event_e {
SMF_EVENT_PDU_SES_REL = 3, SMF_EVENT_PDU_SES_REL = 3,
SMF_EVENT_PLMN_CH = 4, SMF_EVENT_PLMN_CH = 4,
SMF_EVENT_UE_IP_CH = 5, SMF_EVENT_UE_IP_CH = 5,
SMF_EVENT_DDDS = 6 SMF_EVENT_DDDS = 6,
SMF_EVENT_FLEXCN = 99
} smf_event_t; } smf_event_t;
static const std::vector<std::string> smf_event_e2str = { static const std::vector<std::string> smf_event_e2str = {
......
This diff is collapsed.
...@@ -579,6 +579,9 @@ class smf_context : public std::enable_shared_from_this<smf_context> { ...@@ -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( event_sub.subscribe_ee_pdu_session_status_change(boost::bind(
&smf_context::handle_pdu_session_status_change, this, _1, _2, _3)); &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; smf_context(smf_context& b) = delete;
...@@ -591,7 +594,7 @@ class smf_context : public std::enable_shared_from_this<smf_context> { ...@@ -591,7 +594,7 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
if (ee_pdu_session_release_connection.connected()) if (ee_pdu_session_release_connection.connected())
ee_pdu_session_release_connection.disconnect(); ee_pdu_session_release_connection.disconnect();
if (pdu_session_status_connection.connected()) 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> { ...@@ -1038,8 +1041,11 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
void handle_pdu_session_status_change( void handle_pdu_session_status_change(
scid_t scid, const std::string& status, uint8_t http_version); 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 * Update QoS information in the Response message according to the content of
* decoded NAS msg * decoded NAS msg
...@@ -1092,6 +1098,7 @@ class smf_context : public std::enable_shared_from_this<smf_context> { ...@@ -1092,6 +1098,7 @@ class smf_context : public std::enable_shared_from_this<smf_context> {
bs2::connection sm_context_status_connection; bs2::connection sm_context_status_connection;
bs2::connection pdu_session_status_connection; bs2::connection pdu_session_status_connection;
bs2::connection ee_pdu_session_release_connection; bs2::connection ee_pdu_session_release_connection;
bs2::connection ee_flexcn;
}; };
} // namespace smf } // namespace smf
......
...@@ -42,12 +42,20 @@ bs2::connection smf_event::subscribe_sm_context_status( ...@@ -42,12 +42,20 @@ bs2::connection smf_event::subscribe_sm_context_status(
return sm_context_status.connect(sig); return sm_context_status.connect(sig);
} }
//------------------------------------------------------------------------------
bs2::connection smf_event::subscribe_ee_pdu_session_status_change( bs2::connection smf_event::subscribe_ee_pdu_session_status_change(
const ee_pdu_session_status_sig_t::slot_type& sig) { 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( bs2::connection smf_event::subscribe_ee_pdu_session_release(
const ee_pdu_session_release_sig_t::slot_type& sig) { const ee_pdu_session_release_sig_t::slot_type& sig) {
return ee_pdu_session_release.connect(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);
}
...@@ -76,6 +76,9 @@ class smf_event { ...@@ -76,6 +76,9 @@ class smf_event {
bs2::connection subscribe_ee_pdu_session_status_change( bs2::connection subscribe_ee_pdu_session_status_change(
const ee_pdu_session_status_sig_t::slot_type& sig); 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: private:
sm_context_status_sig_t sm_context_status_sig_t
sm_context_status; // Signal for SM Context status update sm_context_status; // Signal for SM Context status update
...@@ -84,6 +87,8 @@ class smf_event { ...@@ -84,6 +87,8 @@ class smf_event {
ee_pdu_session_release_sig_t ee_pdu_session_release_sig_t
ee_pdu_session_release; // Signal for SM Context status update ee_pdu_session_release; // Signal for SM Context status update
ee_flexcn_sig_t ee_flexcn; // Signal for FlexCN Event
}; };
} // namespace smf } // namespace smf
#endif /* FILE_SMF_EVENT_HPP_SEEN */ #endif /* FILE_SMF_EVENT_HPP_SEEN */
...@@ -63,7 +63,12 @@ typedef bs2::signal_type< ...@@ -63,7 +63,12 @@ typedef bs2::signal_type<
// TODO: UP Path Change // TODO: UP Path Change
// TODO: PLMN Change // TODO: PLMN Change
// TODO: Downlink data delivery status // 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 } // namespace smf
#endif /* FILE_SMF_EVENT_SIG_HPP_SEEN */ #endif /* FILE_SMF_EVENT_SIG_HPP_SEEN */
...@@ -1133,11 +1133,12 @@ void session_update_sm_context_procedure::handle_itti_msg( ...@@ -1133,11 +1133,12 @@ void session_update_sm_context_procedure::handle_itti_msg(
// Update PDU session status to ACTIVE // Update PDU session status to ACTIVE
sps->set_pdu_session_status(pdu_session_status_e::PDU_SESSION_ACTIVE); sps->set_pdu_session_status(pdu_session_status_e::PDU_SESSION_ACTIVE);
// set UpCnxState to DEACTIVATED // set UpCnxState to ACTIVATED
sps->set_upCnx_state(upCnx_state_e::UPCNX_STATE_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(); scid_t scid = sc.get()->get_scid();
sc.get()->trigger_pdu_session_status_change(scid, "ACTIVATED", 1); sc.get()->trigger_pdu_session_status_change(scid, "ACTIVATED", 1);
sc.get()->trigger_flexcn_event(scid, 1);
} break; } break;
// UE-Triggered Service Request Procedure (Step 1) // UE-Triggered Service Request Procedure (Step 1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment