forked from acouzens/open5gs
update it
This commit is contained in:
parent
161a67eb20
commit
c9fc1a8769
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue