X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp-api%2Fvom%2Froute.cpp;h=fa6e5d43b37d4067229a7043f9d4497903f85d69;hb=8145842bf273823192140c57fc773bb92d9db64f;hp=780881e5805bdeca44db22353e810178f467143c;hpb=eca834ed514ddb8a7b7f18dbbef2c637d7482bd3;p=vpp.git diff --git a/src/vpp-api/vom/route.cpp b/src/vpp-api/vom/route.cpp index 780881e5805..fa6e5d43b37 100644 --- a/src/vpp-api/vom/route.cpp +++ b/src/vpp-api/vom/route.cpp @@ -427,8 +427,14 @@ ip_route::event_handler::handle_populate(const client_db::key_t& key) boost::asio::ip::address address = from_bytes(0, p.next_hop); std::shared_ptr itf = interface::find(p.sw_if_index); if (itf) { - path path_v4(address, *itf, p.weight, p.preference); - ip_r.add(path_v4); + if (p.is_dvr) { + path path_v4(*itf, nh_proto_t::IPV4, route::path::flags_t::DVR, + p.weight, p.preference); + ip_r.add(path_v4); + } else { + path path_v4(address, *itf, p.weight, p.preference); + ip_r.add(path_v4); + } } else { path path_v4(rd_temp, address, p.weight, p.preference); ip_r.add(path_v4); @@ -474,8 +480,14 @@ ip_route::event_handler::handle_populate(const client_db::key_t& key) std::shared_ptr itf = interface::find(p.sw_if_index); boost::asio::ip::address address = from_bytes(1, p.next_hop); if (itf) { - path path_v6(address, *itf, p.weight, p.preference); - ip_r.add(path_v6); + if (p.is_dvr) { + path path_v6(*itf, nh_proto_t::IPV6, route::path::flags_t::DVR, + p.weight, p.preference); + ip_r.add(path_v6); + } else { + path path_v6(address, *itf, p.weight, p.preference); + ip_r.add(path_v6); + } } else { path path_v6(rd_temp, address, p.weight, p.preference); ip_r.add(path_v6);