From ca79c05fe6ff54a62bfbbb347314a5216fbf2b94 Mon Sep 17 00:00:00 2001 From: Sukchan Lee Date: Thu, 1 Feb 2018 16:39:42 +0900 Subject: [PATCH] Update TAU Accept & Initial Context Setup Failure --- src/mme/nas_path.c | 13 +++++++++++++ src/mme/s1ap_handler.c | 4 ++++ src/pgw/pgw_context.c | 4 ++++ src/sgw/sgw_context.c | 2 ++ test/attach_test.c | 13 ------------- 5 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/mme/nas_path.c b/src/mme/nas_path.c index 309c8ded9..b061f48a5 100644 --- a/src/mme/nas_path.c +++ b/src/mme/nas_path.c @@ -370,6 +370,7 @@ status_t nas_send_deactivate_bearer_context_request(mme_bearer_t *bearer) status_t nas_send_tau_accept(mme_ue_t *mme_ue) { +#if OLD_TAU_ACCEPT status_t rv; enb_ue_t *enb_ue = NULL; pkbuf_t *s1apbuf = NULL, *emmbuf = NULL; @@ -407,6 +408,18 @@ status_t nas_send_tau_accept(mme_ue_t *mme_ue) rv = nas_send_to_enb(mme_ue, s1apbuf); d_assert(rv == CORE_OK, return CORE_ERROR, "nas send error"); } +#else /* Change new code */ + status_t rv; + pkbuf_t *emmbuf = NULL; + + d_assert(mme_ue, return CORE_ERROR, "Null param"); + + rv = emm_build_tau_accept(&emmbuf, mme_ue); + d_assert(rv == CORE_OK, return CORE_ERROR, "emm build error"); + + rv = nas_send_to_downlink_nas_transport(mme_ue, emmbuf); + d_assert(rv == CORE_OK,, "nas_send_to_downlink_nas_transport"); +#endif return CORE_OK; } diff --git a/src/mme/s1ap_handler.c b/src/mme/s1ap_handler.c index 67fd4bebb..7a1ddd903 100644 --- a/src/mme/s1ap_handler.c +++ b/src/mme/s1ap_handler.c @@ -387,6 +387,8 @@ void s1ap_handle_initial_context_setup_failure( * that no hanging resources remain at the eNB. */ +#if 0 /* NOTHING TO DO */ + #if 0 /* FIXME : Does it needed? */ rv = nas_send_service_reject(mme_ue, EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED); @@ -416,6 +418,8 @@ void s1ap_handle_initial_context_setup_failure( rv = mme_ue_deassociate(mme_ue); d_assert(rv == CORE_OK,, "mme_ue_deassociate() failed"); +#endif + #endif } else diff --git a/src/pgw/pgw_context.c b/src/pgw/pgw_context.c index 4b9d63921..0029be6ab 100644 --- a/src/pgw/pgw_context.c +++ b/src/pgw/pgw_context.c @@ -931,6 +931,8 @@ pgw_sess_t *pgw_sess_add( index_alloc(&pgw_sess_pool, &sess); d_assert(sess, return NULL, "Null param"); + sess->gnode = NULL; + sess->pgw_s5c_teid = sess->index; /* derived from an index */ /* Set IMSI */ @@ -1171,6 +1173,8 @@ pgw_bearer_t* pgw_bearer_add(pgw_sess_t *sess) bearer->pgw_s5u_teid = bearer->index; bearer->sess = sess; + bearer->gnode = NULL; + list_append(&sess->bearer_list, bearer); return bearer; diff --git a/src/sgw/sgw_context.c b/src/sgw/sgw_context.c index 07c04c785..a74e00849 100644 --- a/src/sgw/sgw_context.c +++ b/src/sgw/sgw_context.c @@ -670,6 +670,7 @@ sgw_sess_t *sgw_sess_add( core_cpystrn(sess->pdn.apn, apn, MAX_APN_LEN+1); sess->sgw_ue = sgw_ue; + sess->gnode = NULL; list_init(&sess->bearer_list); @@ -908,6 +909,7 @@ sgw_tunnel_t* sgw_tunnel_add(sgw_bearer_t *bearer, c_uint8_t interface_type) tunnel->local_teid = tunnel->index; tunnel->bearer = bearer; + tunnel->gnode = NULL; list_append(&bearer->tunnel_list, tunnel); diff --git a/test/attach_test.c b/test/attach_test.c index 6f26f9ae7..8cd947085 100644 --- a/test/attach_test.c +++ b/test/attach_test.c @@ -1085,19 +1085,6 @@ static void attach_test3(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, CORE_OK, rv); pkbuf_free(recvbuf); - /* Receive UE Context Release Command */ - recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); - rv = tests1ap_enb_read(sock, recvbuf); - ABTS_INT_EQUAL(tc, CORE_OK, rv); - pkbuf_free(recvbuf); - - /* Send UE Release Complete */ - rv = tests1ap_build_ue_context_release_complete(&sendbuf, msgindex+1); - ABTS_INT_EQUAL(tc, CORE_OK, rv); - rv = tests1ap_enb_send(sock, sendbuf); - ABTS_INT_EQUAL(tc, CORE_OK, rv); - - core_sleep(time_from_msec(300)); out: doc = BCON_NEW("imsi", BCON_UTF8("001010123456797")); ABTS_PTR_NOTNULL(tc, doc);