delete erab if gtpu tunnel creation failed

This commit is contained in:
Francisco 2021-05-13 16:13:47 +01:00 committed by Andre Puschmann
parent c6d543efdf
commit 7c0649bc24
3 changed files with 3 additions and 1 deletions

View File

@ -408,7 +408,7 @@ void bearer_cfg_handler::rem_gtpu_bearer(uint32_t erab_id)
{
auto it = erabs.find(erab_id);
if (it == erabs.end()) {
logger->error("Removing erab_id=%d from GTPU", erab_id);
logger->warning("Removing erab_id=%d from GTPU", erab_id);
return;
}
gtpu->rem_bearer(rnti, it->second.lcid);

View File

@ -916,6 +916,7 @@ bool rrc::ue::rrc_mobility::apply_ho_prep_cfg(const ho_prep_info_r8_ies_s&
erabs_failed_to_setup.back().erab_id = erab.erab_id;
erabs_failed_to_setup.back().cause.set_transport().value =
asn1::s1ap::cause_transport_opts::transport_res_unavailable;
rrc_ue->bearer_list.release_erab(erab.erab_id);
continue;
}
}

View File

@ -1079,6 +1079,7 @@ int rrc::ue::setup_erab(uint16_t erab_
}
if (bearer_list.add_gtpu_bearer(erab_id) != SRSRAN_SUCCESS) {
cause.set_radio_network().value = asn1::s1ap::cause_radio_network_opts::radio_res_not_available;
bearer_list.release_erab(erab_id);
return SRSRAN_ERROR;
}
return SRSRAN_SUCCESS;