Commit f13a6ef0 authored by gauthier's avatar gauthier

Merge branch 'pfcp_ids_session' into develop

parents 238ffe40 a0253d3c
......@@ -40,6 +40,8 @@
#define IMEISV_DIGITS_MAX (16)
#define MAX_APN_PER_UE (5)
#define PROC_ID_FMT "0x%" PRIx64
// TEIDs
typedef uint32_t teid_t;
#define TEID_FMT "0x%" PRIx32
......
This diff is collapsed.
......@@ -297,7 +297,7 @@ void sgwc_app::handle_itti_msg (itti_s11_create_session_request& csreq)
// s_plus_p_gw_eps_bearer_context_information_t *s_plus_p_gw_eps_bearer_ctxt_info_p = NULL;
// sgw_eps_bearer_ctxt_t *eps_bearer_ctxt_p = NULL;
Logger::sgwc_app().debug("Received S11 CREATE_SESSION_REQUEST sender teid " TEID_FMT " gtpc_tx_id %" PRIX64" ", csreq.teid, csreq.gtpc_tx_id);
Logger::sgwc_app().debug("Received S11 CREATE_SESSION_REQUEST sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT " ", csreq.teid, csreq.gtpc_tx_id);
/*
* Upon reception of create session request from MME,
* S-GW should create UE, eNB and MME contexts and forward message to P-GW.
......@@ -337,7 +337,7 @@ void sgwc_app::handle_itti_msg (itti_s11_create_session_request& csreq)
// imsi not authenticated
indication_t indication = {};
if ((csreq.gtp_ies.get(indication)) && (indication.uimsi)){
Logger::sgwc_app().debug("TODO S11 CREATE_SESSION_REQUEST (no AUTHENTICATED IMSI) sender teid " TEID_FMT " gtpc_tx_id %" PRIX64" ", csreq.teid, csreq.gtpc_tx_id);
Logger::sgwc_app().debug("TODO S11 CREATE_SESSION_REQUEST (no AUTHENTICATED IMSI) sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT " ", csreq.teid, csreq.gtpc_tx_id);
return;
} else {
imsi64_t imsi64 = imsi.to_imsi64();
......@@ -353,12 +353,12 @@ void sgwc_app::handle_itti_msg (itti_s11_create_session_request& csreq)
if (is_s11sgw_teid_2_sgw_eps_bearer_context(csreq.teid)) {
ebc = s11sgw_teid_2_sgw_eps_bearer_context(csreq.teid);
} else {
Logger::sgwc_app().debug("Discarding S11 CREATE_SESSION_REQUEST sender teid " TEID_FMT " gtpc_tx_id %" PRIX64", invalid teid", csreq.teid, csreq.gtpc_tx_id);
Logger::sgwc_app().debug("Discarding S11 CREATE_SESSION_REQUEST sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT ", invalid teid", csreq.teid, csreq.gtpc_tx_id);
return;
}
} else {
// TODO
Logger::sgwc_app().debug("TODO S11 CREATE_SESSION_REQUEST (no IMSI) sender teid " TEID_FMT " gtpc_tx_id %" PRIX64" ", csreq.teid, csreq.gtpc_tx_id);
Logger::sgwc_app().debug("TODO S11 CREATE_SESSION_REQUEST (no IMSI) sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT "", csreq.teid, csreq.gtpc_tx_id);
return;
}
}
......@@ -368,64 +368,64 @@ void sgwc_app::handle_itti_msg (itti_s11_create_session_request& csreq)
//------------------------------------------------------------------------------
void sgwc_app::handle_itti_msg (itti_s11_delete_session_request& m)
{
Logger::sgwc_app().debug("Received S11 DELETE_SESSION_REQUEST sender teid " TEID_FMT " gtpc_tx_id %" PRIX64" ", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Received S11 DELETE_SESSION_REQUEST sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT "", m.teid, m.gtpc_tx_id);
if (m.teid) {
if (is_s11sgw_teid_2_sgw_eps_bearer_context(m.teid)) {
shared_ptr<sgw_eps_bearer_context> ebc = s11sgw_teid_2_sgw_eps_bearer_context(m.teid);
ebc->handle_itti_msg(m);
Logger::sgwc_app().debug("sgw_eps_bearer_context: %s!", ebc->toString().c_str());
} else {
Logger::sgwc_app().debug("Discarding S11 CREATE_SESSION_REQUEST sender teid " TEID_FMT " gtpc_tx_id %" PRIX64", invalid teid", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Discarding S11 CREATE_SESSION_REQUEST sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT ", invalid teid", m.teid, m.gtpc_tx_id);
return;
}
} else {
// TODO
Logger::sgwc_app().debug("Discarding S11 DELETE_SESSION_REQUEST sender teid " TEID_FMT " gtpc_tx_id %" PRIX64" ", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Discarding S11 DELETE_SESSION_REQUEST sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT "", m.teid, m.gtpc_tx_id);
return;
}
}
//------------------------------------------------------------------------------
void sgwc_app::handle_itti_msg (itti_s11_modify_bearer_request& m)
{
Logger::sgwc_app().debug("Received S11 MODIFY_BEARER_REQUEST sender teid " TEID_FMT " gtpc_tx_id %" PRIX64" ", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Received S11 MODIFY_BEARER_REQUEST sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT "", m.teid, m.gtpc_tx_id);
if (m.teid) {
if (is_s11sgw_teid_2_sgw_eps_bearer_context(m.teid)) {
shared_ptr<sgw_eps_bearer_context> ebc = s11sgw_teid_2_sgw_eps_bearer_context(m.teid);
ebc->handle_itti_msg(m);
Logger::sgwc_app().debug("sgw_eps_bearer_context: %s!", ebc->toString().c_str());
} else {
Logger::sgwc_app().debug("Discarding S11 MODIFY_BEARER_REQUEST sender teid " TEID_FMT " gtpc_tx_id %" PRIX64", invalid teid", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Discarding S11 MODIFY_BEARER_REQUEST sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT ", invalid teid", m.teid, m.gtpc_tx_id);
return;
}
} else {
// TODO
Logger::sgwc_app().debug("Discarding S11 MODIFY_BEARER_REQUEST sender teid " TEID_FMT " gtpc_tx_id %" PRIX64", invalid teid", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Discarding S11 MODIFY_BEARER_REQUEST sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT ", invalid teid", m.teid, m.gtpc_tx_id);
return;
}
}
//------------------------------------------------------------------------------
void sgwc_app::handle_itti_msg (itti_s11_release_access_bearers_request& m)
{
Logger::sgwc_app().debug("Received S11 RELEASE_ACCESS_BEARERS_REQUEST sender teid " TEID_FMT " gtpc_tx_id %" PRIX64" ", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Received S11 RELEASE_ACCESS_BEARERS_REQUEST sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT "", m.teid, m.gtpc_tx_id);
if (m.teid) {
if (is_s11sgw_teid_2_sgw_eps_bearer_context(m.teid)) {
shared_ptr<sgw_eps_bearer_context> ebc = s11sgw_teid_2_sgw_eps_bearer_context(m.teid);
ebc->handle_itti_msg(m);
Logger::sgwc_app().debug("sgw_eps_bearer_context: %s!", ebc->toString().c_str());
} else {
Logger::sgwc_app().debug("Discarding S11 RELEASE_ACCESS_BEARERS_REQUEST sender teid " TEID_FMT " gtpc_tx_id %" PRIX64", invalid teid", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Discarding S11 RELEASE_ACCESS_BEARERS_REQUEST sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT ", invalid teid", m.teid, m.gtpc_tx_id);
return;
}
} else {
// TODO
Logger::sgwc_app().debug("Discarding S11 RELEASE_ACCESS_BEARERS_REQUEST sender teid " TEID_FMT " gtpc_tx_id %" PRIX64", invalid teid", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Discarding S11 RELEASE_ACCESS_BEARERS_REQUEST sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT ", invalid teid", m.teid, m.gtpc_tx_id);
return;
}
}
//------------------------------------------------------------------------------
void sgwc_app::handle_itti_msg (itti_s5s8_create_session_response& m)
{
Logger::sgwc_app().debug("Received S5S8 CREATE_SESSION_RESPONSE sender teid " TEID_FMT " gtpc_tx_id %" PRIX64" ", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Received S5S8 CREATE_SESSION_RESPONSE sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT " ", m.teid, m.gtpc_tx_id);
if (m.gtp_ies.s5_s8_pgw_fteid.second.interface_type != S5_S8_PGW_GTP_C) {
Logger::sgwc_app().warn("Received S5S8 CREATE_SESSION_RESPONSE with s5_s8_pgw_fteid.interface_type != S5_S8_PGW_GTP_C %d, ignore CSResp", m.gtp_ies.sender_fteid_for_cp.second.interface_type);
return;
......@@ -471,7 +471,7 @@ void sgwc_app::handle_itti_msg (itti_s5s8_delete_session_response& m)
//------------------------------------------------------------------------------
void sgwc_app::handle_itti_msg (itti_s5s8_modify_bearer_response& m)
{
Logger::sgwc_app().debug("Received S5S8 MODIFY_BEARER_RESPONSE sender teid " TEID_FMT " gtpc_tx_id %" PRIX64" ", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Received S5S8 MODIFY_BEARER_RESPONSE sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT " ", m.teid, m.gtpc_tx_id);
if (is_s5s8sgw_teid_2_sgw_contexts(m.teid)) {
std::pair<std::shared_ptr<sgw_eps_bearer_context>, std::shared_ptr<sgw_pdn_connection>> p = s5s8sgw_teid_2_sgw_contexts(m.teid);
if ((p.first.get()) && (p.second.get())) {
......@@ -487,7 +487,7 @@ void sgwc_app::handle_itti_msg (itti_s5s8_modify_bearer_response& m)
//------------------------------------------------------------------------------
void sgwc_app::handle_itti_msg (itti_s5s8_release_access_bearers_response& m)
{
Logger::sgwc_app().debug("Received S5S8 RELEASE_ACCESS_BEARERS_RESPONSE sender teid " TEID_FMT " gtpc_tx_id %" PRIX64" ", m.teid, m.gtpc_tx_id);
Logger::sgwc_app().debug("Received S5S8 RELEASE_ACCESS_BEARERS_RESPONSE sender teid " TEID_FMT " gtpc_tx_id " PROC_ID_FMT " ", m.teid, m.gtpc_tx_id);
if (is_s5s8sgw_teid_2_sgw_contexts(m.teid)) {
std::pair<std::shared_ptr<sgw_eps_bearer_context>, std::shared_ptr<sgw_pdn_connection>> p = s5s8sgw_teid_2_sgw_contexts(m.teid);
if ((p.first.get()) && (p.second.get())) {
......
......@@ -276,7 +276,7 @@ void sgw_eps_bearer_context::handle_itti_msg (itti_s11_release_access_bearers_re
{
shared_ptr<sebc_procedure> sp = find_procedure(rabreq.gtpc_tx_id);
if (sp.get()) {
Logger::sgwc_app().error("S11 RELEASE_ACCESS_BEARERS_REQUEST ignored, existing procedure found gtpc_tx_id %d!", rabreq.gtpc_tx_id);
Logger::sgwc_app().error("S11 RELEASE_ACCESS_BEARERS_REQUEST ignored, existing procedure found gtpc_tx_id " PROC_ID_FMT "", rabreq.gtpc_tx_id);
return;
} else {
create_procedure(rabreq);
......@@ -287,7 +287,7 @@ void sgw_eps_bearer_context::handle_itti_msg (itti_s11_delete_session_request& d
{
shared_ptr<sebc_procedure> sp = find_procedure(dsreq.gtpc_tx_id);
if (sp.get()) {
Logger::sgwc_app().error("S11 DELETE_SESSION_REQUEST ignored, existing procedure found gtpc_tx_id %d!", dsreq.gtpc_tx_id);
Logger::sgwc_app().error("S11 DELETE_SESSION_REQUEST ignored, existing procedure found gtpc_tx_id " PROC_ID_FMT "!", dsreq.gtpc_tx_id);
return;
} else {
indication_t indication = {};
......@@ -309,12 +309,12 @@ void sgw_eps_bearer_context::handle_itti_msg (itti_s5s8_create_session_response&
{
shared_ptr<sebc_procedure> sp = find_procedure(csresp.gtpc_tx_id);
if (sp.get()) {
sp.get()->handle_itti_msg(csresp, shared_from_this(), spc);
dynamic_pointer_cast<create_session_request_procedure>(sp)->handle_itti_msg(csresp, shared_from_this(), spc);
if (sp.get()->marked_for_removal) {
remove_procedure(sp.get());
}
} else {
Logger::sgwc_app().debug("S5S8 CREATE_SESSION_RESPONSE ignored, no procedure found gtpc_tx_id %d!", csresp.gtpc_tx_id);
Logger::sgwc_app().debug("S5S8 CREATE_SESSION_RESPONSE ignored, no procedure found gtpc_tx_id " PROC_ID_FMT "!", csresp.gtpc_tx_id);
}
}
//------------------------------------------------------------------------------
......@@ -322,12 +322,12 @@ void sgw_eps_bearer_context::handle_itti_msg (itti_s5s8_modify_bearer_response&
{
shared_ptr<sebc_procedure> sp = find_procedure(resp.gtpc_tx_id);
if (sp.get()) {
sp.get()->handle_itti_msg(resp, shared_from_this(), spc);
dynamic_pointer_cast<modify_bearer_request_procedure>(sp)->handle_itti_msg(resp, shared_from_this(), spc);
if (sp.get()->marked_for_removal) {
remove_procedure(sp.get());
}
} else {
Logger::sgwc_app().debug("S5S8 MODIFY_BEARER_RESPONSE ignored, no procedure found gtpc_tx_id %d!", resp.gtpc_tx_id);
Logger::sgwc_app().debug("S5S8 MODIFY_BEARER_RESPONSE ignored, no procedure found gtpc_tx_id " PROC_ID_FMT "!", resp.gtpc_tx_id);
}
}
//------------------------------------------------------------------------------
......@@ -335,12 +335,12 @@ void sgw_eps_bearer_context::handle_itti_msg (itti_s5s8_release_access_bearers_r
{
shared_ptr<sebc_procedure> sp = find_procedure(resp.gtpc_tx_id);
if (sp.get()) {
sp.get()->handle_itti_msg(resp, shared_from_this(), spc);
dynamic_pointer_cast<release_access_bearers_request_procedure>(sp)->handle_itti_msg(resp, shared_from_this(), spc);
if (sp.get()->marked_for_removal) {
remove_procedure(sp.get());
}
} else {
Logger::sgwc_app().debug("S5S8 RELEASE_ACCESS_BEARERS_RESPONSE ignored, no procedure found gtpc_tx_id %d!", resp.gtpc_tx_id);
Logger::sgwc_app().debug("S5S8 RELEASE_ACCESS_BEARERS_RESPONSE ignored, no procedure found gtpc_tx_id " PROC_ID_FMT "!", resp.gtpc_tx_id);
}
}
//------------------------------------------------------------------------------
......@@ -348,12 +348,13 @@ void sgw_eps_bearer_context::handle_itti_msg (itti_s5s8_delete_session_response&
{
shared_ptr<sebc_procedure> sp = find_procedure(dsresp.gtpc_tx_id);
if (sp.get()) {
sp.get()->handle_itti_msg(dsresp, shared_from_this(), spc);
Logger::sgwc_app().debug("S5S8 DELETE_SESSION_RESPONSE , procedure gtpc_tx_id %d found ", dsresp.gtpc_tx_id);
dynamic_pointer_cast<delete_session_request_procedure>(sp)->handle_itti_msg(dsresp, shared_from_this(), spc);
if (sp.get()->marked_for_removal) {
remove_procedure(sp.get());
}
} else {
Logger::sgwc_app().debug("S5S8 CREATE_SESSION_RESPONSE ignored, no procedure found gtpc_tx_id %d!", dsresp.gtpc_tx_id);
Logger::sgwc_app().debug("S5S8 DELETE_SESSION_RESPONSE ignored, no procedure found gtpc_tx_id " PROC_ID_FMT "!", dsresp.gtpc_tx_id);
}
}
//------------------------------------------------------------------------------
......
......@@ -39,6 +39,23 @@ extern itti_mw *itti_inst;
extern sgwc_app *sgwc_app_inst;
extern sgwc_config sgwc_cfg;
void sebc_procedure::handle_itti_msg (itti_s5s8_create_session_response& csresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc)
{
Logger::sgwc_app().error( "Unhandled message itti_s5s8_create_session_response");
}
void sebc_procedure::handle_itti_msg (itti_s5s8_delete_session_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc)
{
Logger::sgwc_app().error( "Unhandled message itti_s5s8_delete_session_response");
}
void sebc_procedure::handle_itti_msg (itti_s5s8_modify_bearer_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc)
{
Logger::sgwc_app().error( "Unhandled message itti_s5s8_modify_bearer_response");
}
void sebc_procedure::handle_itti_msg (itti_s5s8_release_access_bearers_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc)
{
Logger::sgwc_app().error( "Unhandled message itti_s5s8_release_access_bearers_response");
}
//------------------------------------------------------------------------------
int create_session_request_procedure::run(shared_ptr<sgw_eps_bearer_context> c)
{
......@@ -51,6 +68,7 @@ int create_session_request_procedure::run(shared_ptr<sgw_eps_bearer_context> c)
//}
std::shared_ptr<sgw_pdn_connection> pdn = {};
if (c->find_pdn_connection(msg.gtp_ies.apn.access_point_name, msg.gtp_ies.pdn_type, pdn)) {
Logger::sgwc_app().info( "PDN connection already exist for APN %s", msg.gtp_ies.apn.access_point_name.c_str());
return RETURNerror;
}
ebc = c;
......
......@@ -58,10 +58,10 @@ public:
virtual bool has_trxn_id(const uint64_t trxn_id) {return (trxn_id == gtpc_tx_id);}
virtual uint64_t get_trxn_id() {return gtpc_tx_id;}
virtual int run(std::shared_ptr<sgw_eps_bearer_context> ebc) {return RETURNerror;}
virtual void handle_itti_msg (itti_s5s8_create_session_response& csresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
virtual void handle_itti_msg (itti_s5s8_delete_session_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
virtual void handle_itti_msg (itti_s5s8_modify_bearer_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
virtual void handle_itti_msg (itti_s5s8_release_access_bearers_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
virtual void handle_itti_msg (itti_s5s8_create_session_response& resp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc);
virtual void handle_itti_msg (itti_s5s8_delete_session_response& resp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc);
virtual void handle_itti_msg (itti_s5s8_modify_bearer_response& resp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc);
virtual void handle_itti_msg (itti_s5s8_release_access_bearers_response& resp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc);
};
//------------------------------------------------------------------------------
......@@ -74,6 +74,11 @@ public:
int run(std::shared_ptr<sgw_eps_bearer_context> ebc);
void handle_itti_msg (itti_s5s8_create_session_response& csresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc);
//void handle_itti_msg (itti_s5s8_create_session_response& csresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
void handle_itti_msg (itti_s5s8_delete_session_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
void handle_itti_msg (itti_s5s8_modify_bearer_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
void handle_itti_msg (itti_s5s8_release_access_bearers_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
itti_s11_create_session_request msg;
std::shared_ptr<sgw_eps_bearer_context> ebc;
};
......@@ -100,6 +105,10 @@ public:
int run(std::shared_ptr<sgw_eps_bearer_context> ebc);
void handle_itti_msg (itti_s5s8_modify_bearer_response& s5resp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> pdn);
void handle_itti_msg (itti_s5s8_create_session_response& csresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
void handle_itti_msg (itti_s5s8_delete_session_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
//void handle_itti_msg (itti_s5s8_modify_bearer_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
void handle_itti_msg (itti_s5s8_release_access_bearers_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
itti_s11_modify_bearer_request msg;
std::vector<std::shared_ptr<pdn_bearers_to_be_xied>> pdn_bearers;
......@@ -127,6 +136,11 @@ public:
int run(std::shared_ptr<sgw_eps_bearer_context> ebc);
void handle_itti_msg (itti_s5s8_release_access_bearers_response& s5resp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> pdn);
void handle_itti_msg (itti_s5s8_create_session_response& csresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
void handle_itti_msg (itti_s5s8_delete_session_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
void handle_itti_msg (itti_s5s8_modify_bearer_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
//void handle_itti_msg (itti_s5s8_release_access_bearers_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
itti_s11_release_access_bearers_request msg;
std::vector<std::shared_ptr<bearers_to_be_released>> bearers;
std::shared_ptr<sgw_eps_bearer_context> ebc;
......@@ -139,6 +153,11 @@ public:
int run(std::shared_ptr<sgw_eps_bearer_context> ebc);
void handle_itti_msg (itti_s5s8_delete_session_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection>& spc);
void handle_itti_msg (itti_s5s8_create_session_response& csresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
//void handle_itti_msg (itti_s5s8_delete_session_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
void handle_itti_msg (itti_s5s8_modify_bearer_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
void handle_itti_msg (itti_s5s8_release_access_bearers_response& dsresp, std::shared_ptr<sgw_eps_bearer_context> ebc, std::shared_ptr<sgw_pdn_connection> spc) {}
itti_s11_delete_session_request msg;
std::shared_ptr<sgw_eps_bearer_context> ebc;
std::shared_ptr<sgw_pdn_connection> pdn_connection;
......
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