update it

This commit is contained in:
Sukchan Lee 2017-08-11 20:39:52 +09:00
parent 161a67eb20
commit c9fc1a8769
8 changed files with 22 additions and 28 deletions

View File

@ -622,9 +622,7 @@ void emm_handle_s11_delete_session_request(mme_ue_t *mme_ue)
rv = mme_s11_build_delete_session_request(&s11buf, sess);
d_assert(rv == CORE_OK, return, "S11 build error");
rv = mme_s11_send_to_sgw(sess->sgw,
GTP_DELETE_SESSION_REQUEST_TYPE, sess->sgw_s11_teid,
s11buf);
rv = mme_s11_send_to_sgw(sess, GTP_DELETE_SESSION_REQUEST_TYPE, s11buf);
d_assert(rv == CORE_OK, return, "S11 send error");
sess = mme_sess_next(sess);

View File

@ -10,8 +10,6 @@
#include "s1ap_build.h"
#include "s1ap_path.h"
#include "nas_path.h"
#include "mme_s11_build.h"
#include "mme_s11_path.h"
void esm_handle_pdn_connectivity_request(mme_bearer_t *bearer,
nas_pdn_connectivity_request_t *pdn_connectivity_request)
@ -53,8 +51,6 @@ void esm_handle_information_response(mme_bearer_t *bearer,
{
mme_ue_t *mme_ue = NULL;
mme_sess_t *sess = NULL;
pkbuf_t *pkbuf = NULL;
status_t rv;
d_assert(bearer, return, "Null param");
mme_ue = bearer->mme_ue;
@ -82,11 +78,4 @@ void esm_handle_information_response(mme_bearer_t *bearer,
memcpy(bearer->ue_pco, protocol_configuration_options->buffer,
bearer->ue_pco_len);
}
rv = mme_s11_build_create_session_request(&pkbuf, sess);
d_assert(rv == CORE_OK, return, "S11 build error");
rv = mme_s11_send_to_sgw(sess->sgw,
GTP_CREATE_SESSION_REQUEST_TYPE, 0, pkbuf);
d_assert(rv == CORE_OK, return, "S11 send error");
}

View File

@ -115,14 +115,13 @@ void esm_state_operational(fsm_t *s, event_t *e)
}
case NAS_ESM_INFORMATION_RESPONSE:
{
/* FIXME : SGW Selection */
sess->sgw = mme_sgw_first();
d_trace(3, "[NAS] ESM information response : "
"UE[%s] --> ESM[%d]\n",
mme_ue->imsi_bcd, bearer->pti);
esm_handle_information_response(
bearer, &message->esm.esm_information_response);
mme_s11_handle_create_session_request(sess);
break;
}
case NAS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT:

View File

@ -266,6 +266,9 @@ typedef struct _mme_sess_t {
list_t bearer_list;
/* Related Context */
#define MME_SESSION_SELECT_SGW(sess) \
((sess) && ((sess)->sgw = mme_sgw_first()))
mme_sgw_t *sgw;
mme_ue_t *mme_ue;

View File

@ -18,12 +18,14 @@ void mme_s11_handle_create_session_request(mme_sess_t *sess)
status_t rv;
pkbuf_t *pkbuf = NULL;
/* FIXME : SGW Selection */
MME_SESSION_SELECT_SGW(sess);
rv = mme_s11_build_create_session_request(&pkbuf, sess);
d_assert(rv == CORE_OK, return,
"S11 build error");
rv = mme_s11_send_to_sgw(sess->sgw,
GTP_CREATE_SESSION_REQUEST_TYPE, 0, pkbuf);
rv = mme_s11_send_to_sgw(sess, GTP_CREATE_SESSION_REQUEST_TYPE, pkbuf);
d_assert(rv == CORE_OK, return, "S11 send error");
}

View File

@ -81,13 +81,18 @@ status_t mme_s11_close()
return CORE_OK;
}
status_t mme_s11_send_to_sgw(void *sgw,
c_uint8_t type, c_uint32_t teid, pkbuf_t *pkbuf)
status_t mme_s11_send_to_sgw(mme_sess_t *sess, c_uint8_t type, pkbuf_t *pkbuf)
{
gtp_xact_t *xact = NULL;
d_assert(sgw, return CORE_ERROR, "Null param");
void *sgw = NULL;
c_uint32_t teid;
d_assert(sess, return CORE_ERROR, "Null param");
d_assert(pkbuf, return CORE_ERROR, "Null param");
sgw = sess->sgw;
d_assert(sgw, return CORE_ERROR, "Null param");
teid = sess->sgw_s11_teid;
xact = gtp_xact_local_create(&mme_self()->gtp_xact_ctx,
mme_self()->s11_sock, sgw);
d_assert(xact, return CORE_ERROR, "Null param");

View File

@ -11,7 +11,7 @@ CORE_DECLARE(status_t) mme_s11_listen();
CORE_DECLARE(status_t) mme_s11_close();
CORE_DECLARE(status_t) mme_s11_send_to_sgw(
void *sgw, c_uint8_t type, c_uint32_t teid, pkbuf_t *pkbuf);
mme_sess_t *sess, c_uint8_t type, pkbuf_t *pkbuf);
#ifdef __cplusplus
}

View File

@ -420,8 +420,7 @@ void s1ap_handle_initial_context_setup_response(
rv = mme_s11_build_modify_bearer_request(&pkbuf, bearer);
d_assert(rv == CORE_OK, return, "S11 build error");
rv = mme_s11_send_to_sgw(sess->sgw,
GTP_MODIFY_BEARER_REQUEST_TYPE, sess->sgw_s11_teid, pkbuf);
rv = mme_s11_send_to_sgw(sess, GTP_MODIFY_BEARER_REQUEST_TYPE, pkbuf);
d_assert(rv == CORE_OK, return, "S11 send error");
}
}
@ -466,9 +465,8 @@ void s1ap_handle_ue_context_release_request(
&pkbuf);
d_assert(rv == CORE_OK, return, "S11 build error");
rv = mme_s11_send_to_sgw(sess->sgw,
GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE,
sess->sgw_s11_teid, pkbuf);
rv = mme_s11_send_to_sgw(sess,
GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE, pkbuf);
d_assert(rv == CORE_OK, return, "S11 send error");
sess = mme_sess_next(sess);