From: Neale Ranns Date: Thu, 25 Jan 2018 15:28:19 +0000 (-0800) Subject: VOM: route-domain find() fix X-Git-Tag: v18.04-rc1~388 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F83%2F10383%2F2;p=vpp.git VOM: route-domain find() fix Change-Id: I5b7117f3568e3ba979baa15521b2cfc180abb682 Signed-off-by: Neale Ranns --- diff --git a/src/vpp-api/vom/route.cpp b/src/vpp-api/vom/route.cpp index 3b86fb28357..780881e5805 100644 --- a/src/vpp-api/vom/route.cpp +++ b/src/vpp-api/vom/route.cpp @@ -403,7 +403,7 @@ ip_route::event_handler::handle_populate(const client_db::key_t& key) * populating the route domain here */ route_domain rd_temp(payload.table_id); - std::shared_ptr rd = route_domain::find(rd_temp); + std::shared_ptr rd = route_domain::find(payload.table_id); if (!rd) { OM::commit(key, rd_temp); } @@ -450,7 +450,7 @@ ip_route::event_handler::handle_populate(const client_db::key_t& key) prefix_t pfx(1, payload.address, payload.address_length); route_domain rd_temp(payload.table_id); - std::shared_ptr rd = route_domain::find(rd_temp); + std::shared_ptr rd = route_domain::find(payload.table_id); if (!rd) { OM::commit(key, rd_temp); } diff --git a/src/vpp-api/vom/route_domain.cpp b/src/vpp-api/vom/route_domain.cpp index e8c1e598899..626a9cd29a9 100644 --- a/src/vpp-api/vom/route_domain.cpp +++ b/src/vpp-api/vom/route_domain.cpp @@ -108,28 +108,9 @@ route_domain::to_string() const } std::shared_ptr -route_domain::find(const route_domain& temp) +route_domain::find(const key_t& k) { - std::shared_ptr rd; - - auto it = m_db.cbegin(); - - while (it != m_db.cend()) { - /* - * The key in the DB is a pair of the interface's name and prefix. - * If the keys match, save the L3-config - */ - auto key = it->first; - - if (temp.table_id() == key) { - rd = it->second.lock(); - break; - } - - ++it; - } - - return (rd); + return (m_db.find(k)); } void diff --git a/src/vpp-api/vom/route_domain.hpp b/src/vpp-api/vom/route_domain.hpp index 7d83154a0f1..19a3c18dddc 100644 --- a/src/vpp-api/vom/route_domain.hpp +++ b/src/vpp-api/vom/route_domain.hpp @@ -81,7 +81,7 @@ public: /** * Find the instnace of the route domain in the OM */ - static std::shared_ptr find(const route_domain& temp); + static std::shared_ptr find(const key_t& temp); /** * Dump all route-doamin into the stream provided