forked from acouzens/open5gs
Switch to new enb when receive s1ap_path_switch_req
This commit is contained in:
parent
d0fd6c4a73
commit
f7a21fee06
|
@ -1079,6 +1079,24 @@ status_t enb_ue_remove_in_enb(mme_enb_t *enb)
|
|||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t enb_ue_switch_to_enb(enb_ue_t *enb_ue, mme_enb_t *new_enb)
|
||||
{
|
||||
d_assert(enb_ue, return CORE_ERROR, "Null param");
|
||||
d_assert(enb_ue->enb, return CORE_ERROR, "Null param");
|
||||
d_assert(new_enb, return CORE_ERROR, "Null param");
|
||||
|
||||
/* Remove from the old enb */
|
||||
list_remove(&enb_ue->enb->enb_ue_list, enb_ue);
|
||||
|
||||
/* Add to the new enb */
|
||||
list_append(&new_enb->enb_ue_list, enb_ue);
|
||||
|
||||
/* Switch to enb */
|
||||
enb_ue->enb = new_enb;
|
||||
|
||||
return CORE_ERROR;
|
||||
}
|
||||
|
||||
enb_ue_t* enb_ue_find(index_t index)
|
||||
{
|
||||
d_assert(index, return NULL, "Invalid Index");
|
||||
|
|
|
@ -509,6 +509,8 @@ 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);
|
||||
CORE_DECLARE(status_t) enb_ue_remove_in_enb(mme_enb_t *enb);
|
||||
CORE_DECLARE(status_t) enb_ue_switch_to_enb(enb_ue_t *enb_ue,
|
||||
mme_enb_t *new_enb);
|
||||
CORE_DECLARE(enb_ue_t*) enb_ue_find(index_t index);
|
||||
CORE_DECLARE(enb_ue_t*) enb_ue_find_by_enb_ue_s1ap_id(mme_enb_t *enb,
|
||||
c_uint32_t enb_ue_s1ap_id);
|
||||
|
|
|
@ -638,6 +638,9 @@ void s1ap_handle_path_switch_request(
|
|||
d_assert(rv == CORE_OK, return, "gtp send failed");
|
||||
}
|
||||
|
||||
/* Switch to enb */
|
||||
enb_ue_switch_to_enb(enb_ue, enb);
|
||||
|
||||
d_trace(3, "[S1AP] PathSwitchRequest : "
|
||||
"UE[eNB-UE-S1AP-ID(%d)] --> eNB[%s:%d]\n",
|
||||
enb_ue->enb_ue_s1ap_id,
|
||||
|
|
Loading…
Reference in New Issue