Commit b9acf4a8 authored by Robert Schmidt's avatar Robert Schmidt

Refactor E1 UE removal in separate function

Refactor into remove_ue_e1(), to be used in the next commit, independent
of e1_bearer_release_cmd().
parent 32310cce
......@@ -300,24 +300,28 @@ void e1_bearer_context_modif(const e1ap_bearer_mod_req_t *req)
get_e1_if()->bearer_modif_response(&modif);
}
void e1_bearer_release_cmd(const e1ap_bearer_release_cmd_t *cmd)
static void remove_ue_e1(const uint32_t ue_id)
{
bool need_ue_id_mgmt = e1_used();
instance_t n3inst = get_n3_gtp_instance();
instance_t f1inst = get_f1_gtp_instance();
LOG_I(E1AP, "releasing UE %d\n", cmd->gNB_cu_up_ue_id);
newGtpuDeleteAllTunnels(n3inst, cmd->gNB_cu_up_ue_id);
newGtpuDeleteAllTunnels(n3inst, ue_id);
if (f1inst >= 0) // is there F1-U?
newGtpuDeleteAllTunnels(f1inst, cmd->gNB_cu_up_ue_id);
newGtpuDeleteAllTunnels(f1inst, ue_id);
if (need_ue_id_mgmt) {
// see issue #706: in monolithic, gNB will free PDCP of UE
nr_pdcp_remove_UE(cmd->gNB_cu_up_ue_id);
cu_remove_f1_ue_data(cmd->gNB_cu_up_ue_id);
nr_pdcp_remove_UE(ue_id);
cu_remove_f1_ue_data(ue_id);
}
nr_sdap_delete_ue_entities(cmd->gNB_cu_up_ue_id);
nr_sdap_delete_ue_entities(ue_id);
}
void e1_bearer_release_cmd(const e1ap_bearer_release_cmd_t *cmd)
{
LOG_I(E1AP, "releasing UE %d\n", cmd->gNB_cu_up_ue_id);
remove_ue_e1(cmd->gNB_cu_up_ue_id);
e1ap_bearer_release_cplt_t cplt = {
.gNB_cu_cp_ue_id = cmd->gNB_cu_cp_ue_id,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment