forked from acouzens/open5gs
fix the bug for dedicated bearer activation during tracking area request
This commit is contained in:
parent
b787e31b4e
commit
71a31cf353
|
@ -79,22 +79,9 @@ void esm_handle_activate_default_bearer_accept(mme_bearer_t *bearer)
|
|||
|
||||
if (MME_HAVE_ENB_S1U_PATH(bearer))
|
||||
{
|
||||
mme_bearer_t *dedicated_bearer = NULL;
|
||||
|
||||
rv = mme_gtp_send_modify_bearer_request(bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"mme_gtp_send_modify_bearer_request failed");
|
||||
|
||||
dedicated_bearer = mme_bearer_next(bearer);
|
||||
while(dedicated_bearer)
|
||||
{
|
||||
rv = nas_send_activate_dedicated_bearer_context(
|
||||
enb_ue, dedicated_bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"nas_send_activate_dedicated_bearer_context failed");
|
||||
|
||||
dedicated_bearer = mme_bearer_next(dedicated_bearer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -185,6 +185,7 @@ void esm_state_information(fsm_t *s, event_t *e)
|
|||
|
||||
void esm_state_active(fsm_t *s, event_t *e)
|
||||
{
|
||||
status_t rv;
|
||||
mme_ue_t *mme_ue = NULL;
|
||||
mme_sess_t *sess = NULL;
|
||||
mme_bearer_t *bearer = NULL;
|
||||
|
@ -205,6 +206,30 @@ void esm_state_active(fsm_t *s, event_t *e)
|
|||
{
|
||||
case FSM_ENTRY_SIG:
|
||||
{
|
||||
enb_ue_t *enb_ue = NULL;
|
||||
mme_bearer_t *linked_bearer = mme_linked_bearer(bearer);
|
||||
|
||||
d_assert(linked_bearer, return, "Null param");
|
||||
enb_ue = mme_ue->enb_ue;
|
||||
d_assert(enb_ue, return, "Null param");
|
||||
|
||||
if (linked_bearer->ebi == bearer->ebi)
|
||||
{
|
||||
/* Check dedicated bearer */
|
||||
mme_bearer_t *dedicated_bearer = mme_bearer_next(bearer);
|
||||
while(dedicated_bearer)
|
||||
{
|
||||
if (!MME_HAVE_ENB_S1U_PATH(dedicated_bearer))
|
||||
{
|
||||
rv = nas_send_activate_dedicated_bearer_context(
|
||||
enb_ue, dedicated_bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"nas_send_activate_dedicated_bearer_context failed");
|
||||
}
|
||||
|
||||
dedicated_bearer = mme_bearer_next(dedicated_bearer);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case FSM_EXIT_SIG:
|
||||
|
|
|
@ -325,22 +325,10 @@ void s1ap_handle_initial_context_setup_response(
|
|||
if (FSM_CHECK(&bearer->sm, esm_state_active))
|
||||
{
|
||||
status_t rv;
|
||||
mme_bearer_t *dedicated_bearer = NULL;
|
||||
|
||||
rv = mme_gtp_send_modify_bearer_request(bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"mme_gtp_send_modify_bearer_request failed");
|
||||
|
||||
dedicated_bearer = mme_bearer_next(bearer);
|
||||
while(dedicated_bearer)
|
||||
{
|
||||
rv = nas_send_activate_dedicated_bearer_context(
|
||||
enb_ue, dedicated_bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"nas_send_activate_dedicated_bearer_context failed");
|
||||
|
||||
dedicated_bearer = mme_bearer_next(dedicated_bearer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -398,22 +386,9 @@ void s1ap_handle_e_rab_setup_response(
|
|||
|
||||
if (linked_bearer->ebi == bearer->ebi) /* Default Bearer */
|
||||
{
|
||||
mme_bearer_t *dedicated_bearer = NULL;
|
||||
|
||||
rv = mme_gtp_send_modify_bearer_request(bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"mme_gtp_send_modify_bearer_request failed");
|
||||
|
||||
dedicated_bearer = mme_bearer_next(bearer);
|
||||
while(dedicated_bearer)
|
||||
{
|
||||
rv = nas_send_activate_dedicated_bearer_context(
|
||||
enb_ue, dedicated_bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"nas_send_activate_dedicated_bearer_context failed");
|
||||
|
||||
dedicated_bearer = mme_bearer_next(dedicated_bearer);
|
||||
}
|
||||
}
|
||||
else /* Dedicated Bearer */
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue