forked from acouzens/open5gs
under re-archi
This commit is contained in:
parent
1de4e8d446
commit
97f629da14
|
@ -12,8 +12,7 @@
|
|||
#include "emm_handler.h"
|
||||
#include "emm_build.h"
|
||||
#include "esm_handler.h"
|
||||
#include "mme_s11_build.h"
|
||||
#include "mme_s11_path.h"
|
||||
#include "mme_s11_handler.h"
|
||||
|
||||
void emm_state_initial(fsm_t *s, event_t *e)
|
||||
{
|
||||
|
@ -107,24 +106,13 @@ void emm_state_operational(fsm_t *s, event_t *e)
|
|||
}
|
||||
else
|
||||
{
|
||||
status_t rv;
|
||||
pkbuf_t *pkbuf = NULL;
|
||||
|
||||
rv = mme_s11_build_create_session_request(
|
||||
&pkbuf, bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"S11 build error");
|
||||
|
||||
rv = mme_s11_send_to_sgw(bearer->sgw,
|
||||
GTP_CREATE_SESSION_REQUEST_TYPE,
|
||||
0, pkbuf);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"S11 send error");
|
||||
mme_s11_handle_create_session_request(
|
||||
bearer);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
esm_handle_information_request(mme_ue);
|
||||
esm_handle_information_request(sess);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -198,20 +186,8 @@ void emm_state_operational(fsm_t *s, event_t *e)
|
|||
|
||||
if (SECURITY_CONTEXT_IS_VALID(mme_ue))
|
||||
{
|
||||
emm_handle_attach_accept(mme_ue);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (MME_SESSION_IS_CREATED(mme_ue))
|
||||
{
|
||||
emm_handle_s11_delete_session_request(mme_ue);
|
||||
}
|
||||
else
|
||||
{
|
||||
mme_s6a_send_air(mme_ue);
|
||||
}
|
||||
#if 0
|
||||
nas_message_t *message = NULL;
|
||||
|
||||
message = &mme_ue->last_esm_message;
|
||||
d_assert(message, return, "Null param");
|
||||
|
||||
|
@ -237,24 +213,13 @@ void emm_state_operational(fsm_t *s, event_t *e)
|
|||
}
|
||||
else
|
||||
{
|
||||
status_t rv;
|
||||
pkbuf_t *pkbuf = NULL;
|
||||
|
||||
rv = mme_s11_build_create_session_request(
|
||||
&pkbuf, bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"S11 build error");
|
||||
|
||||
rv = mme_s11_send_to_sgw(bearer->sgw,
|
||||
GTP_CREATE_SESSION_REQUEST_TYPE,
|
||||
0, pkbuf);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"S11 send error");
|
||||
mme_s11_handle_create_session_request(
|
||||
bearer);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
esm_handle_information_request(mme_ue);
|
||||
esm_handle_information_request(sess);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -264,8 +229,17 @@ void emm_state_operational(fsm_t *s, event_t *e)
|
|||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if (MME_SESSION_IS_CREATED(mme_ue))
|
||||
{
|
||||
emm_handle_s11_delete_session_request(mme_ue);
|
||||
}
|
||||
else
|
||||
{
|
||||
mme_s6a_send_air(mme_ue);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
@ -29,16 +29,16 @@ void esm_handle_pdn_connectivity_request(mme_bearer_t *bearer,
|
|||
}
|
||||
}
|
||||
|
||||
void esm_handle_information_request(mme_ue_t *mme_ue)
|
||||
void esm_handle_information_request(mme_sess_t *sess)
|
||||
{
|
||||
status_t rv;
|
||||
pkbuf_t *esmbuf = NULL;
|
||||
mme_sess_t *sess = NULL;
|
||||
mme_ue_t *mme_ue = NULL;
|
||||
mme_bearer_t *bearer = NULL;
|
||||
|
||||
d_assert(mme_ue, return, "Null param");
|
||||
sess = mme_sess_first(mme_ue);
|
||||
d_assert(sess, return, "Null param");
|
||||
mme_ue = sess->mme_ue;
|
||||
d_assert(mme_ue, return, "Null param");
|
||||
bearer = mme_default_bearer_in_sess(sess);
|
||||
d_assert(bearer, return, "Null param");
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ extern "C" {
|
|||
|
||||
CORE_DECLARE(void) esm_handle_pdn_connectivity_request(mme_bearer_t *bearer,
|
||||
nas_pdn_connectivity_request_t *pdn_connectivity_request);
|
||||
CORE_DECLARE(void) esm_handle_information_request(mme_ue_t *mme_ue);
|
||||
CORE_DECLARE(void) esm_handle_information_request(mme_sess_t *sess);
|
||||
CORE_DECLARE(void) esm_handle_information_response(mme_bearer_t *bearer,
|
||||
nas_esm_information_response_t *bearer_information_response);
|
||||
|
||||
|
|
|
@ -9,8 +9,7 @@
|
|||
#include "emm_handler.h"
|
||||
#include "esm_build.h"
|
||||
#include "esm_handler.h"
|
||||
#include "mme_s11_build.h"
|
||||
#include "mme_s11_path.h"
|
||||
#include "mme_s11_handler.h"
|
||||
|
||||
void esm_state_initial(fsm_t *s, event_t *e)
|
||||
{
|
||||
|
@ -73,57 +72,44 @@ void esm_state_operational(fsm_t *s, event_t *e)
|
|||
"UE[%s] --> ESM[%d]\n",
|
||||
mme_ue->imsi_bcd, bearer->pti);
|
||||
|
||||
if (MME_UE_HAVE_IMSI(mme_ue))
|
||||
if (!MME_UE_HAVE_IMSI(mme_ue))
|
||||
{
|
||||
/* Known GUTI */
|
||||
if (SECURITY_CONTEXT_IS_VALID(mme_ue))
|
||||
/* Continue with Identity Response */
|
||||
break;
|
||||
}
|
||||
|
||||
/* Known GUTI */
|
||||
if (SECURITY_CONTEXT_IS_VALID(mme_ue))
|
||||
{
|
||||
mme_sess_t *sess = bearer->sess;
|
||||
d_assert(sess, return, "Null param");
|
||||
|
||||
if (MME_SESSION_HAVE_APN(sess))
|
||||
{
|
||||
mme_sess_t *sess = bearer->sess;
|
||||
d_assert(sess, return, "Null param");
|
||||
|
||||
if (MME_SESSION_HAVE_APN(sess))
|
||||
if (MME_SESSION_IS_CREATED(mme_ue))
|
||||
{
|
||||
status_t rv;
|
||||
pkbuf_t *pkbuf = NULL;
|
||||
|
||||
if (MME_SESSION_IS_CREATED(mme_ue))
|
||||
{
|
||||
emm_handle_attach_accept(mme_ue);
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = mme_s11_build_create_session_request(
|
||||
&pkbuf, bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"S11 build error");
|
||||
|
||||
rv = mme_s11_send_to_sgw(bearer->sgw,
|
||||
GTP_CREATE_SESSION_REQUEST_TYPE,
|
||||
0, pkbuf);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"S11 send error");
|
||||
}
|
||||
emm_handle_attach_accept(mme_ue);
|
||||
}
|
||||
else
|
||||
{
|
||||
esm_handle_information_request(mme_ue);
|
||||
mme_s11_handle_create_session_request(bearer);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (MME_SESSION_IS_CREATED(mme_ue))
|
||||
{
|
||||
emm_handle_s11_delete_session_request(mme_ue);
|
||||
}
|
||||
else
|
||||
{
|
||||
mme_s6a_send_air(mme_ue);
|
||||
}
|
||||
esm_handle_information_request(sess);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Continue with Identity Response */
|
||||
if (MME_SESSION_IS_CREATED(mme_ue))
|
||||
{
|
||||
emm_handle_s11_delete_session_request(mme_ue);
|
||||
}
|
||||
else
|
||||
{
|
||||
mme_s6a_send_air(mme_ue);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -11,6 +11,21 @@
|
|||
#include "s1ap_path.h"
|
||||
#include "mme_s11_build.h"
|
||||
#include "mme_s11_handler.h"
|
||||
#include "mme_s11_path.h"
|
||||
|
||||
void mme_s11_handle_create_session_request(mme_bearer_t *bearer)
|
||||
{
|
||||
status_t rv;
|
||||
pkbuf_t *pkbuf = NULL;
|
||||
|
||||
rv = mme_s11_build_create_session_request(&pkbuf, bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"S11 build error");
|
||||
|
||||
rv = mme_s11_send_to_sgw(bearer->sgw,
|
||||
GTP_CREATE_SESSION_REQUEST_TYPE, 0, pkbuf);
|
||||
d_assert(rv == CORE_OK, return, "S11 send error");
|
||||
}
|
||||
|
||||
void mme_s11_handle_create_session_response(
|
||||
mme_sess_t *sess, gtp_create_session_response_t *rsp)
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
CORE_DECLARE(void) mme_s11_handle_create_session_request(mme_bearer_t *bearer);
|
||||
CORE_DECLARE(void) mme_s11_handle_create_session_response(
|
||||
mme_sess_t *sess, gtp_create_session_response_t *rsp);
|
||||
CORE_DECLARE(void) mme_s11_handle_modify_bearer_response(
|
||||
|
|
Loading…
Reference in New Issue