just minor update

This commit is contained in:
Sukchan Lee 2017-11-09 14:56:03 +09:00
parent 11df912058
commit cd59df5011
8 changed files with 38 additions and 30 deletions

View File

@ -73,7 +73,7 @@ extern char *EVT_NAME_UNKNOWN;
*
* @return event queue or 0
*/
CORE_DECLARE(msgq_id) event_create(void);
CORE_DECLARE(msgq_id) event_create(int opt);
/**
* Delete event message queue

View File

@ -12,12 +12,12 @@
char *EVT_NAME_UNKNOWN = "UNKNOWN";
msgq_id event_create(void)
msgq_id event_create(int opt)
{
msgq_id queue_id = 0;
/* Start threads */
queue_id = msgq_create(EVT_Q_DEPTH, EVENT_SIZE, MSGQ_O_BLOCK);
queue_id = msgq_create(EVT_Q_DEPTH, EVENT_SIZE, opt);
d_assert(queue_id != 0, return CORE_ERROR, "Message queue creation failed");
return queue_id;

View File

@ -956,9 +956,9 @@ status_t mme_sgw_remove(mme_sgw_t *sgw)
{
d_assert(sgw, return CORE_ERROR, "Null param");
gtp_xact_delete_all(sgw);
list_remove(&self.sgw_list, sgw);
gtp_xact_delete_all(sgw);
pool_free_node(&mme_sgw_pool, sgw);
return CORE_OK;
@ -1127,12 +1127,12 @@ enb_ue_t* enb_ue_add(mme_enb_t *enb)
d_assert(enb_ue, return NULL, "Null param");
enb_ue->mme_ue_s1ap_id = NEXT_ID(self.mme_ue_s1ap_id, 1, 0xffffffff);
enb_ue->enb = enb;
hash_set(self.mme_ue_s1ap_id_hash, &enb_ue->mme_ue_s1ap_id,
sizeof(enb_ue->mme_ue_s1ap_id), enb_ue);
list_append(&enb->enb_ue_list, enb_ue);
enb_ue->enb = enb;
return enb_ue;
}
@ -1150,13 +1150,13 @@ status_t enb_ue_remove(enb_ue_t *enb_ue)
d_assert(enb_ue, return CORE_ERROR, "Null param");
d_assert(enb_ue->enb, return CORE_ERROR, "Null param");
rv = source_ue_deassociate_target_ue(enb_ue);
d_assert(rv == CORE_OK, return CORE_ERROR, "Null param");
list_remove(&enb_ue->enb->enb_ue_list, enb_ue);
hash_set(self.mme_ue_s1ap_id_hash, &enb_ue->mme_ue_s1ap_id,
sizeof(enb_ue->mme_ue_s1ap_id), NULL);
rv = source_ue_deassociate_target_ue(enb_ue);
d_assert(rv == CORE_OK, return CORE_ERROR, "Null param");
index_free(&enb_ue_pool, enb_ue);
return CORE_OK;
@ -1679,7 +1679,6 @@ mme_sess_t *mme_sess_add(mme_ue_t *mme_ue, c_uint8_t pti)
d_assert(sess, return NULL, "Null param");
list_init(&sess->bearer_list);
list_append(&mme_ue->sess_list, sess);
sess->mme_ue = mme_ue;
sess->pti = pti;
@ -1688,6 +1687,8 @@ mme_sess_t *mme_sess_add(mme_ue_t *mme_ue, c_uint8_t pti)
d_assert(bearer, mme_sess_remove(sess); return NULL,
"Can't add default bearer context");
list_append(&mme_ue->sess_list, sess);
return sess;
}
@ -1695,13 +1696,14 @@ status_t mme_sess_remove(mme_sess_t *sess)
{
d_assert(sess, return CORE_ERROR, "Null param");
d_assert(sess->mme_ue, return CORE_ERROR, "Null param");
list_remove(&sess->mme_ue->sess_list, sess);
mme_bearer_remove_all(sess);
NAS_CLEAR_DATA(&sess->ue_pco);
TLV_CLEAR_DATA(&sess->pgw_pco);
list_remove(&sess->mme_ue->sess_list, sess);
index_free(&mme_sess_pool, sess);
return CORE_OK;
@ -1799,11 +1801,11 @@ mme_bearer_t* mme_bearer_add(mme_sess_t *sess)
bearer->ebi = NEXT_ID(mme_ue->ebi, MIN_EPS_BEARER_ID, MAX_EPS_BEARER_ID);
list_append(&sess->bearer_list, bearer);
bearer->mme_ue = mme_ue;
bearer->sess = sess;
list_append(&sess->bearer_list, bearer);
event_set_param1(&e, (c_uintptr_t)bearer->index);
fsm_create(&bearer->sm, esm_state_initial, esm_state_final);
fsm_init(&bearer->sm, &e);
@ -1822,9 +1824,10 @@ status_t mme_bearer_remove(mme_bearer_t *bearer)
fsm_final(&bearer->sm, &e);
fsm_clear(&bearer->sm);
list_remove(&bearer->sess->bearer_list, bearer);
TLV_CLEAR_DATA(&bearer->tft);
list_remove(&bearer->sess->bearer_list, bearer);
index_free(&mme_bearer_pool, bearer);
return CORE_OK;

View File

@ -68,7 +68,7 @@ static void *THREAD_FUNC sm_main(thread_id id, void *data)
memset(&event, 0, sizeof(event_t));
mme_self()->queue_id = event_create();
mme_self()->queue_id = event_create(MSGQ_O_BLOCK);
d_assert(mme_self()->queue_id, return NULL,
"MME event queue creation failed");
tm_service_init(&mme_self()->tm_service);

View File

@ -407,9 +407,10 @@ status_t pgw_sgw_remove(pgw_sgw_t *sgw)
{
d_assert(sgw, return CORE_ERROR, "Null param");
list_remove(&self.sgw_list, sgw);
gtp_xact_delete_all(sgw);
list_remove(&self.sgw_list, sgw);
pool_free_node(&pgw_sgw_pool, sgw);
return CORE_OK;
@ -635,9 +636,10 @@ status_t pgw_bearer_remove(pgw_bearer_t *bearer)
d_assert(bearer, return CORE_ERROR, "Null param");
d_assert(bearer->sess, return CORE_ERROR, "Null param");
list_remove(&bearer->sess->bearer_list, bearer);
pgw_pf_remove_all(bearer);
list_remove(&bearer->sess->bearer_list, bearer);
index_free(&pgw_bearer_pool, bearer);
return CORE_OK;
@ -948,11 +950,10 @@ pgw_pf_t *pgw_pf_add(pgw_bearer_t *bearer, c_uint32_t precedence)
d_assert(pf, return NULL, "Null param");
pf->identifier = NEXT_ID(bearer->pf_identifier, 1, 15);
pf->bearer = bearer;
list_append(&bearer->pf_list, pf);
pf->bearer = bearer;
return pf;
}

View File

@ -69,7 +69,7 @@ static void *THREAD_FUNC sm_main(thread_id id, void *data)
memset(&event, 0, sizeof(event_t));
pgw_self()->queue_id = event_create();
pgw_self()->queue_id = event_create(MSGQ_O_BLOCK);
d_assert(pgw_self()->queue_id, return NULL,
"PGW event queue creation failed");
tm_service_init(&pgw_self()->tm_service);

View File

@ -252,9 +252,10 @@ status_t sgw_mme_remove(sgw_mme_t *mme)
{
d_assert(mme, return CORE_ERROR, "Null param");
list_remove(&self.mme_list, mme);
gtp_xact_delete_all(mme);
list_remove(&self.mme_list, mme);
pool_free_node(&sgw_mme_pool, mme);
return CORE_OK;
@ -324,9 +325,10 @@ status_t sgw_pgw_remove(sgw_pgw_t *pgw)
{
d_assert(pgw, return CORE_ERROR, "Null param");
list_remove(&self.pgw_list, pgw);
gtp_xact_delete_all(pgw);
list_remove(&self.pgw_list, pgw);
pool_free_node(&sgw_pgw_pool, pgw);
return CORE_OK;
@ -527,8 +529,6 @@ sgw_sess_t *sgw_sess_add(
/* Set APN */
core_cpystrn(sess->pdn.apn, apn, MAX_APN_LEN+1);
list_append(&sgw_ue->sess_list, sess);
sess->sgw_ue = sgw_ue;
list_init(&sess->bearer_list);
@ -538,6 +538,8 @@ sgw_sess_t *sgw_sess_add(
"Can't add default bearer context");
bearer->ebi = ebi;
list_append(&sgw_ue->sess_list, sess);
return sess;
}
@ -546,9 +548,10 @@ status_t sgw_sess_remove(sgw_sess_t *sess)
d_assert(sess, return CORE_ERROR, "Null param");
d_assert(sess->sgw_ue, return CORE_ERROR, "Null param");
list_remove(&sess->sgw_ue->sess_list, sess);
sgw_bearer_remove_all(sess);
list_remove(&sess->sgw_ue->sess_list, sess);
index_free(&sgw_sess_pool, sess);
return CORE_OK;
@ -632,8 +635,6 @@ sgw_bearer_t* sgw_bearer_add(sgw_sess_t *sess)
index_alloc(&sgw_bearer_pool, &bearer);
d_assert(bearer, return NULL, "Bearer context allocation failed");
list_append(&sess->bearer_list, bearer);
bearer->sgw_ue = sgw_ue;
bearer->sess = sess;
@ -645,6 +646,8 @@ sgw_bearer_t* sgw_bearer_add(sgw_sess_t *sess)
tunnel = sgw_tunnel_add(bearer, GTP_F_TEID_S5_S8_SGW_GTP_U);
d_assert(tunnel, return NULL, "Tunnel context allocation failed");
list_append(&sess->bearer_list, bearer);
return bearer;
}
@ -655,13 +658,14 @@ status_t sgw_bearer_remove(sgw_bearer_t *bearer)
d_assert(bearer, return CORE_ERROR, "Null param");
d_assert(bearer->sess, return CORE_ERROR, "Null param");
list_remove(&bearer->sess->bearer_list, bearer);
sgw_tunnel_remove_all(bearer);
/* Free the buffered packets */
for (i = 0; i < bearer->num_buffered_pkt; i++)
pkbuf_free(bearer->buffered_pkts[i]);
list_remove(&bearer->sess->bearer_list, bearer);
index_free(&sgw_bearer_pool, bearer);
return CORE_OK;

View File

@ -58,7 +58,7 @@ static void *THREAD_FUNC sm_main(thread_id id, void *data)
memset(&event, 0, sizeof(event_t));
sgw_self()->queue_id = event_create();
sgw_self()->queue_id = event_create(MSGQ_O_BLOCK);
d_assert(sgw_self()->queue_id, return NULL,
"SGW event queue creation failed");
tm_service_init(&sgw_self()->tm_service);