fix the bug EBI generator

This commit is contained in:
Sukchan Lee 2017-08-23 14:25:43 +09:00
parent 5106e195cb
commit f1a32b1245
3 changed files with 7 additions and 53 deletions

View File

@ -87,6 +87,7 @@ void emm_state_operational(fsm_t *s, event_t *e)
mme_kdf_enb(mme_ue->kasme, mme_ue->ul_count.i32,
mme_ue->kenb);
mme_ue_reset_ebi(mme_ue);
mme_ue_paged(mme_ue);
emm_handle_attach_request(
mme_ue, &message->emm.attach_request);

View File

@ -1355,59 +1355,14 @@ status_t mme_associate_ue_context(mme_ue_t *mme_ue, enb_ue_t *enb_ue)
return CORE_OK;
}
#if 0
unsigned int mme_ue_count()
status_t mme_ue_reset_ebi(mme_ue_t *mme_ue)
{
d_assert(self.mme_ue_s1ap_id_hash, return 0, "Null param");
return hash_count(self.mme_ue_s1ap_id_hash);
}
status_t mme_ue_remove_in_enb(mme_enb_t *enb)
{
mme_ue_t *mme_ue = NULL, *next_mme_ue = NULL;
mme_ue = mme_ue_first_in_enb(enb);
while (mme_ue)
{
next_mme_ue = mme_ue_next_in_enb(mme_ue);
mme_ue_remove(mme_ue);
mme_ue = next_mme_ue;
}
/* Setup EBI Generator */
mme_ue->ebi = MIN_EPS_BEARER_ID - 1;
return CORE_OK;
}
mme_ue_t* mme_ue_find_by_enb_ue_s1ap_id(
mme_enb_t *enb, c_uint32_t enb_ue_s1ap_id)
{
mme_ue_t *mme_ue = NULL;
mme_ue = mme_ue_first_in_enb(enb);
while (mme_ue)
{
if (enb_ue_s1ap_id == mme_ue->enb_ue_s1ap_id)
break;
mme_ue = mme_ue_next_in_enb(mme_ue);
}
return mme_ue;
}
mme_ue_t* mme_ue_first_in_enb(mme_enb_t *enb)
{
return list_first(&enb->enb_ue_list);
}
mme_ue_t* mme_ue_next_in_enb(mme_ue_t *mme_ue)
{
return list_next(mme_ue);
}
#endif
mme_bearer_t *mme_sess_add(mme_ue_t *mme_ue, c_uint8_t pti)
{
mme_sess_t *sess = NULL;
@ -1419,8 +1374,6 @@ mme_bearer_t *mme_sess_add(mme_ue_t *mme_ue, c_uint8_t pti)
sess->mme_s11_teid = sess->index;
sess->mme_s11_addr = mme_self()->s11_addr;
sess->ebi = MIN_EPS_BEARER_ID - 1; /* Setup EBI Generator */
list_init(&sess->bearer_list);
list_append(&mme_ue->sess_list, sess);
@ -1551,7 +1504,7 @@ mme_bearer_t* mme_bearer_add(mme_sess_t *sess, c_uint8_t pti)
d_assert(bearer, return NULL, "Null param");
bearer->pti = pti;
bearer->ebi = NEXT_ID(sess->ebi, MIN_EPS_BEARER_ID, MAX_EPS_BEARER_ID);
bearer->ebi = NEXT_ID(mme_ue->ebi, MIN_EPS_BEARER_ID, MAX_EPS_BEARER_ID);
list_append(&sess->bearer_list, bearer);

View File

@ -211,6 +211,7 @@ struct _mme_ue_t {
int num_of_pdn;
/* ESM Info */
c_uint8_t ebi; /* EPS Bearer ID generator */
list_t sess_list;
/* eNB UE context */
@ -250,8 +251,6 @@ typedef struct _mme_sess_t {
c_uint32_t sgw_s11_teid;
c_uint32_t sgw_s11_addr;
/* EPS Bearer ID generator */
c_uint8_t ebi;
/* mme_bearer_first(sess) : Default Bearer Context */
list_t bearer_list;
@ -325,6 +324,7 @@ CORE_DECLARE(status_t) mme_ue_set_imsi(
mme_ue_t *mme_ue, c_int8_t *imsi_bcd);
CORE_DECLARE(status_t) mme_associate_ue_context(
mme_ue_t *mme_ue, enb_ue_t *enb_ue);
CORE_DECLARE(status_t) mme_ue_reset_ebi(mme_ue_t *mme_ue);
CORE_DECLARE(hash_index_t *) mme_ue_first();
CORE_DECLARE(hash_index_t *) mme_ue_next(hash_index_t *hi);