rename it
This commit is contained in:
parent
831b3e8985
commit
bb4339de2a
|
@ -368,10 +368,10 @@ status_t emm_handle_tau_request(
|
|||
sizeof(nas_eps_update_type_t));
|
||||
mme_ue->nas_eps.type = MME_EPS_TYPE_TAU_REQUEST;
|
||||
|
||||
if (ECM_CONNECTED(mme_ue))
|
||||
d_trace(5, " ECM-Connected\n");
|
||||
if (MME_BEARER_ACTIVE(mme_ue))
|
||||
d_trace(5, " Bearer-Active\n");
|
||||
else
|
||||
d_trace(5, " ECM-Idle\n");
|
||||
d_trace(5, " Bearer-Inactive\n");
|
||||
|
||||
if (mme_ue->nas_eps.update.active_flag)
|
||||
d_trace(5, " Active flag[UPD:0x%x]\n",
|
||||
|
|
|
@ -1703,53 +1703,6 @@ int mme_enb_sock_type(sock_id sock)
|
|||
return SOCK_STREAM;
|
||||
}
|
||||
|
||||
int ecm_state_is_idle(mme_ue_t *mme_ue)
|
||||
{
|
||||
mme_sess_t *sess = NULL;
|
||||
d_assert(mme_ue, return CORE_ERROR,);
|
||||
|
||||
if (mme_ue->enb_ue == NULL) return 1;
|
||||
|
||||
sess = mme_sess_first(mme_ue);
|
||||
while(sess)
|
||||
{
|
||||
mme_bearer_t *bearer = mme_bearer_first(sess);
|
||||
while(bearer)
|
||||
{
|
||||
if (MME_HAVE_ENB_S1U_PATH(bearer))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
bearer = mme_bearer_next(bearer);
|
||||
}
|
||||
sess = mme_sess_next(sess);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
status_t ecm_state_set_idle(mme_ue_t *mme_ue)
|
||||
{
|
||||
mme_sess_t *sess = NULL;
|
||||
d_assert(mme_ue, return CORE_ERROR,);
|
||||
|
||||
sess = mme_sess_first(mme_ue);
|
||||
while(sess)
|
||||
{
|
||||
mme_bearer_t *bearer = mme_bearer_first(sess);
|
||||
while(bearer)
|
||||
{
|
||||
CLEAR_ENB_S1U_PATH(bearer);
|
||||
|
||||
bearer = mme_bearer_next(bearer);
|
||||
}
|
||||
sess = mme_sess_next(sess);
|
||||
}
|
||||
|
||||
return CORE_OK;
|
||||
}
|
||||
|
||||
/** enb_ue_context handling function */
|
||||
enb_ue_t* enb_ue_add(mme_enb_t *enb)
|
||||
{
|
||||
|
@ -2652,6 +2605,53 @@ mme_bearer_t* mme_bearer_next(mme_bearer_t *bearer)
|
|||
return list_next(bearer);
|
||||
}
|
||||
|
||||
int mme_bearer_is_inactive(mme_ue_t *mme_ue)
|
||||
{
|
||||
mme_sess_t *sess = NULL;
|
||||
d_assert(mme_ue, return CORE_ERROR,);
|
||||
|
||||
if (mme_ue->enb_ue == NULL) return 1;
|
||||
|
||||
sess = mme_sess_first(mme_ue);
|
||||
while(sess)
|
||||
{
|
||||
mme_bearer_t *bearer = mme_bearer_first(sess);
|
||||
while(bearer)
|
||||
{
|
||||
if (MME_HAVE_ENB_S1U_PATH(bearer))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
bearer = mme_bearer_next(bearer);
|
||||
}
|
||||
sess = mme_sess_next(sess);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
status_t mme_bearer_set_inactive(mme_ue_t *mme_ue)
|
||||
{
|
||||
mme_sess_t *sess = NULL;
|
||||
d_assert(mme_ue, return CORE_ERROR,);
|
||||
|
||||
sess = mme_sess_first(mme_ue);
|
||||
while(sess)
|
||||
{
|
||||
mme_bearer_t *bearer = mme_bearer_first(sess);
|
||||
while(bearer)
|
||||
{
|
||||
CLEAR_ENB_S1U_PATH(bearer);
|
||||
|
||||
bearer = mme_bearer_next(bearer);
|
||||
}
|
||||
sess = mme_sess_next(sess);
|
||||
}
|
||||
|
||||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t mme_pdn_remove_all(mme_ue_t *mme_ue)
|
||||
{
|
||||
s6a_subscription_data_t *subscription_data = NULL;
|
||||
|
|
|
@ -419,6 +419,13 @@ typedef struct _mme_sess_t {
|
|||
tlv_octet_t pgw_pco;
|
||||
} mme_sess_t;
|
||||
|
||||
#define MME_BEARER_INACTIVE(__mME) \
|
||||
(mme_bearer_is_inactive(__mME) == 1)
|
||||
#define MME_BEARER_ACTIVE(__mME) \
|
||||
(mme_bearer_is_inactive(__mME) == 0)
|
||||
#define MME_BEARER_SET_INACTIVE(__mME) \
|
||||
mme_bearer_set_inactive(__mME)
|
||||
|
||||
#define MME_HAVE_ENB_S1U_PATH(__bEARER) \
|
||||
((__bEARER) && ((__bEARER)->enb_s1u_teid))
|
||||
#define CLEAR_ENB_S1U_PATH(__bEARER) \
|
||||
|
@ -498,15 +505,6 @@ CORE_DECLARE(hash_index_t *) mme_enb_next(hash_index_t *hi);
|
|||
CORE_DECLARE(mme_enb_t *) mme_enb_this(hash_index_t *hi);
|
||||
CORE_DECLARE(int) mme_enb_sock_type(sock_id sock);
|
||||
|
||||
#define ECM_IDLE(__mME) \
|
||||
(ecm_state_is_idle(__mME) == 1)
|
||||
#define ECM_CONNECTED(__mME) \
|
||||
(ecm_state_is_idle(__mME) == 0)
|
||||
#define ECM_STATE_TO_IDLE(__mME) \
|
||||
ecm_state_set_idle(__mME)
|
||||
CORE_DECLARE(int) ecm_state_is_idle(mme_ue_t *mme_ue);
|
||||
CORE_DECLARE(status_t) ecm_state_set_idle(mme_ue_t *mme_ue);
|
||||
|
||||
CORE_DECLARE(enb_ue_t*) enb_ue_add(mme_enb_t *enb);
|
||||
CORE_DECLARE(unsigned int) enb_ue_count();
|
||||
CORE_DECLARE(status_t) enb_ue_remove(enb_ue_t *enb_ue);
|
||||
|
@ -624,6 +622,9 @@ CORE_DECLARE(mme_bearer_t*) mme_linked_bearer(mme_bearer_t *bearer);
|
|||
CORE_DECLARE(mme_bearer_t*) mme_bearer_first(mme_sess_t *sess);
|
||||
CORE_DECLARE(mme_bearer_t*) mme_bearer_next(mme_bearer_t *bearer);
|
||||
|
||||
CORE_DECLARE(int) mme_bearer_is_inactive(mme_ue_t *mme_ue);
|
||||
CORE_DECLARE(status_t) mme_bearer_set_inactive(mme_ue_t *mme_ue);
|
||||
|
||||
CORE_DECLARE(pdn_t*) mme_pdn_add(mme_ue_t *mme_ue, c_int8_t *apn);
|
||||
CORE_DECLARE(status_t) mme_pdn_remove_all(mme_ue_t *mme_ue);
|
||||
CORE_DECLARE(pdn_t*) mme_pdn_find_by_apn(
|
||||
|
|
|
@ -527,8 +527,8 @@ void mme_s11_handle_release_access_bearers_response(
|
|||
return;
|
||||
}
|
||||
|
||||
rv = ECM_STATE_TO_IDLE(mme_ue);
|
||||
d_assert(rv == CORE_OK,, "ECM_STATE_TO_IDLE failed");
|
||||
rv = MME_BEARER_SET_INACTIVE(mme_ue);
|
||||
d_assert(rv == CORE_OK,, "MME_BEARER_SET_INACTIVE failed");
|
||||
|
||||
rv = s1ap_send_ue_context_release_command(enb_ue,
|
||||
S1ap_Cause_PR_nas, S1ap_CauseNas_normal_release,
|
||||
|
|
|
@ -566,7 +566,7 @@ void mme_state_operational(fsm_t *s, event_t *e)
|
|||
* If the MME receives a Downlink Data Notification after step 2 and
|
||||
* before step 9, the MME shall not send S1 interface paging messages
|
||||
*/
|
||||
if (ECM_IDLE(mme_ue))
|
||||
if (MME_BEARER_INACTIVE(mme_ue))
|
||||
{
|
||||
s1ap_handle_paging(mme_ue);
|
||||
/* Start T3413 */
|
||||
|
|
|
@ -399,7 +399,7 @@ status_t nas_send_tau_accept(mme_ue_t *mme_ue)
|
|||
d_trace(3, "[EMM] Tracking area update accept\n");
|
||||
d_trace(5, " IMSI[%s]\n", mme_ue->imsi_bcd);
|
||||
|
||||
if (ECM_CONNECTED(mme_ue))
|
||||
if (MME_BEARER_ACTIVE(mme_ue))
|
||||
bearer_establishment_requested = 1;
|
||||
|
||||
if (mme_ue->nas_eps.update.active_flag)
|
||||
|
|
|
@ -600,15 +600,15 @@ void s1ap_handle_ue_context_release_request(
|
|||
if (FSM_CHECK(&mme_ue->sm, emm_state_registered))
|
||||
{
|
||||
d_trace(5, " EMM-Registered\n");
|
||||
if (ECM_CONNECTED(mme_ue))
|
||||
if (MME_BEARER_ACTIVE(mme_ue))
|
||||
{
|
||||
d_trace(5, " ECM-Connected\n");
|
||||
d_trace(5, " Bearer-Active\n");
|
||||
rv = mme_gtp_send_release_access_bearers_request(mme_ue);
|
||||
d_assert(rv == CORE_OK, return, "gtp send failed");
|
||||
}
|
||||
else
|
||||
{
|
||||
d_trace(5, " ECM-Idle\n");
|
||||
d_trace(5, " Bearer-Inactive\n");
|
||||
rv = s1ap_send_ue_context_release_command(enb_ue,
|
||||
S1ap_Cause_PR_nas, S1ap_CauseNas_normal_release,
|
||||
S1AP_UE_CTX_REL_UNLINK_MME_UE_CONTEXT, 0);
|
||||
|
|
Loading…
Reference in New Issue