Commit a458ab17 authored by gauthier's avatar gauthier

hastables

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7695 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 0a96b5a8
...@@ -194,7 +194,7 @@ int sgw_lite_cm_remove_s11_tunnel(Teid_t local_teid) ...@@ -194,7 +194,7 @@ int sgw_lite_cm_remove_s11_tunnel(Teid_t local_teid)
{ {
int temp; int temp;
temp = hashtable_remove(sgw_app.s11teid2mme_hashtable, local_teid); temp = hashtable_free(sgw_app.s11teid2mme_hashtable, local_teid);
return temp; return temp;
} }
...@@ -321,7 +321,7 @@ s_plus_p_gw_eps_bearer_context_information_t * sgw_lite_cm_create_bearer_context ...@@ -321,7 +321,7 @@ s_plus_p_gw_eps_bearer_context_information_t * sgw_lite_cm_create_bearer_context
int sgw_lite_cm_remove_bearer_context_information(Teid_t teid) int sgw_lite_cm_remove_bearer_context_information(Teid_t teid)
{ {
int temp; int temp;
temp = hashtable_remove(sgw_app.s11_bearer_context_information_hashtable, teid); temp = hashtable_free(sgw_app.s11_bearer_context_information_hashtable, teid);
return temp; return temp;
} }
...@@ -379,7 +379,7 @@ int sgw_lite_cm_remove_eps_bearer_entry(hash_table_t *eps_bearersP, ebi_t eps_be ...@@ -379,7 +379,7 @@ int sgw_lite_cm_remove_eps_bearer_entry(hash_table_t *eps_bearersP, ebi_t eps_be
return -1; return -1;
} }
temp = hashtable_remove(eps_bearersP, eps_bearer_idP); temp = hashtable_free(eps_bearersP, eps_bearer_idP);
return temp; return temp;
} }
......
...@@ -1178,7 +1178,26 @@ sgw_lite_handle_delete_session_request( ...@@ -1178,7 +1178,26 @@ sgw_lite_handle_delete_session_request(
return -1; return -1;
} }
/*
* Callback of hashtable_apply_funct_on_elements()
*/
static void sgw_lite_release_all_enb_related_information(hash_key_t keyP, void* dataP, void* parameterP)
{
sgw_eps_bearer_entry_t *eps_bearer_entry_p = (sgw_eps_bearer_entry_t*)dataP;
if (NULL != eps_bearer_entry_p) {
memset(&eps_bearer_entry_p->enb_ip_address_for_S1u,0, sizeof(eps_bearer_entry_p->enb_ip_address_for_S1u));
eps_bearer_entry_p->enb_teid_for_S1u = 0;
}
}
/* From GPP TS 23.401 version 11.11.0 Release 11, section 5.3.5 S1 release procedure:
* The S-GW releases all eNodeB related information (address and TEIDs) for the UE and responds with a Release
* Access Bearers Response message to the MME. Other elements of the UE's S-GW context are not affected. The
* S-GW retains the S1-U configuration that the S-GW allocated for the UE's bearers. The S-GW starts buffering
* downlink packets received for the UE and initiating the "Network Triggered Service Request" procedure,
* described in clause 5.3.4.3, if downlink packets arrive for the UE.
*/
int int
sgw_lite_handle_release_access_bearers_request( sgw_lite_handle_release_access_bearers_request(
const SgwReleaseAccessBearersRequest * const release_access_bearers_req_pP) const SgwReleaseAccessBearersRequest * const release_access_bearers_req_pP)
...@@ -1211,7 +1230,14 @@ sgw_lite_handle_release_access_bearers_request( ...@@ -1211,7 +1230,14 @@ sgw_lite_handle_release_access_bearers_request(
release_access_bearers_resp_p->cause = REQUEST_ACCEPTED; release_access_bearers_resp_p->cause = REQUEST_ACCEPTED;
release_access_bearers_resp_p->teid = ctx_p->sgw_eps_bearer_context_information.mme_teid_for_S11; release_access_bearers_resp_p->teid = ctx_p->sgw_eps_bearer_context_information.mme_teid_for_S11;
#warning "TODO Here the release (sgw_lite_handle_release_access_bearers_request)" #warning "TODO Here the release (sgw_lite_handle_release_access_bearers_request)"
hash_rc = hashtable_apply_funct_on_elements(ctx_p->sgw_eps_bearer_context_information.pdn_connection.sgw_eps_bearers,
sgw_lite_release_all_enb_related_information,
NULL);
// TODO The S-GW starts buffering downlink packets received for the UE
// (set target on GTPUSP to order the buffering)
MSC_LOG_TX_MESSAGE( MSC_LOG_TX_MESSAGE(
MSC_SP_GWAPP_MME, MSC_SP_GWAPP_MME,
......
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