diff options
author | Neale Ranns <neale.ranns@cisco.com> | 2018-01-25 07:28:19 -0800 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2018-02-02 16:08:01 +0000 |
commit | 7016b000d7b3e20130dae9c78ac67185258391a6 (patch) | |
tree | 93196432833c2ccfe1d910eb74a53e8b18dd0622 | |
parent | d6c30d9cae3ec8946c75d9ed87d40c053e2c083a (diff) |
VOM: route-domain find() fix
Change-Id: I5b7117f3568e3ba979baa15521b2cfc180abb682
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
-rw-r--r-- | src/vpp-api/vom/route.cpp | 4 | ||||
-rw-r--r-- | src/vpp-api/vom/route_domain.cpp | 23 | ||||
-rw-r--r-- | src/vpp-api/vom/route_domain.hpp | 2 |
3 files changed, 5 insertions, 24 deletions
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<route_domain> rd = route_domain::find(rd_temp); + std::shared_ptr<route_domain> 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<route_domain> rd = route_domain::find(rd_temp); + std::shared_ptr<route_domain> 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> -route_domain::find(const route_domain& temp) +route_domain::find(const key_t& k) { - std::shared_ptr<route_domain> 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<route_domain> find(const route_domain& temp); + static std::shared_ptr<route_domain> find(const key_t& temp); /** * Dump all route-doamin into the stream provided |