Commit 07bc266d authored by Tien-Thinh Nguyen's avatar Tien-Thinh Nguyen

Merge branch 'tentative_fix_static_ip_dl' into 'develop'

Dirty fix for UE DL traffic for UE IP static when restarting gNB/UE

See merge request oai/cn5g/oai-cn5g-upf!53
parents 1a778eb8 be4ebbcc
......@@ -603,6 +603,7 @@ void pfcp_switch::add_pfcp_dl_pdr_by_ue_ip(
folly::AtomicHashMap<
uint32_t, std::shared_ptr<std::vector<std::shared_ptr<pfcp::pfcp_pdr>>>>::
const_iterator pit = ue_ipv4_hbo2pfcp_pdr.find(ue_ip);
if (pit == ue_ipv4_hbo2pfcp_pdr.end()) {
std::shared_ptr<std::vector<std::shared_ptr<pfcp::pfcp_pdr>>> pdrs =
std::shared_ptr<std::vector<std::shared_ptr<pfcp::pfcp_pdr>>>(
......@@ -614,18 +615,32 @@ void pfcp_switch::add_pfcp_dl_pdr_by_ue_ip(
ue_ipv4_hbo2pfcp_pdr.insert(entry);
// Logger::pfcp_switch().info( "add_pfcp_dl_pdr_by_ue_ip UE IP %8x", ue_ip);
} else {
// sort by precedence
// const std::shared_ptr<std::vector<std::shared_ptr<pfcp::pfcp_pdr>>>&
// spdrs = pit->second;
std::vector<std::shared_ptr<pfcp::pfcp_pdr>>* pdrs = pit->second.get();
for (std::vector<std::shared_ptr<pfcp::pfcp_pdr>>::iterator it =
pdrs->begin();
it < pdrs->end(); ++it) {
if (*(it->get()) < *(pdr.get())) {
pit->second->insert(it, pdr);
return;
}
}
// TODO: Dirty fix
ue_ipv4_hbo2pfcp_pdr.erase(ue_ip);
std::shared_ptr<std::vector<std::shared_ptr<pfcp::pfcp_pdr>>> pdrs =
std::shared_ptr<std::vector<std::shared_ptr<pfcp::pfcp_pdr>>>(
new std::vector<std::shared_ptr<pfcp::pfcp_pdr>>());
pdrs->push_back(pdr);
std::pair<
uint32_t, std::shared_ptr<std::vector<std::shared_ptr<pfcp::pfcp_pdr>>>>
entry(ue_ip, pdrs);
ue_ipv4_hbo2pfcp_pdr.insert(entry);
/*
// sort by precedence
// const std::shared_ptr<std::vector<std::shared_ptr<pfcp::pfcp_pdr>>>&
// spdrs = pit->second;
std::vector<std::shared_ptr<pfcp::pfcp_pdr>>* pdrs = pit->second.get();
for (std::vector<std::shared_ptr<pfcp::pfcp_pdr>>::iterator it =
pdrs->begin();
it < pdrs->end(); ++it) {
if (*(it->get()) < *(pdr.get())) {
pit->second->insert(it, pdr);
return;
}
}
*/
}
}
//------------------------------------------------------------------------------
......
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