X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Fneighbour_cmds.cpp;h=758147c49c5550fc69a255a50e87e79061063afb;hb=097fa66b986f06281f603767d321ab13ab6c88c3;hp=2f3c200d5fb43aeb3fbd0d096c28f8650c67591c;hpb=164e5f8c63652028ecb9c3570e1ea8618b163071;p=vpp.git diff --git a/extras/vom/vom/neighbour_cmds.cpp b/extras/vom/vom/neighbour_cmds.cpp index 2f3c200d5fb..758147c49c5 100644 --- a/extras/vom/vom/neighbour_cmds.cpp +++ b/extras/vom/vom/neighbour_cmds.cpp @@ -14,17 +14,20 @@ */ #include "vom/neighbour_cmds.hpp" +#include "vom/api_types.hpp" namespace VOM { namespace neighbour_cmds { -create_cmd::create_cmd(HW::item& item, +create_cmd::create_cmd(HW::item& item, handle_t itf, const mac_address_t& mac, - const boost::asio::ip::address& ip_addr) - : rpc_cmd(item) + const boost::asio::ip::address& ip_addr, + const neighbour::flags_t& flags) + : srpc_cmd(item) , m_itf(itf) , m_mac(mac) , m_ip_addr(ip_addr) + , m_flags(flags) { } @@ -32,7 +35,7 @@ bool create_cmd::operator==(const create_cmd& other) const { return ((m_mac == other.m_mac) && (m_ip_addr == other.m_ip_addr) && - (m_itf == other.m_itf)); + (m_itf == other.m_itf) && (m_flags == other.m_flags)); } rc_t @@ -41,17 +44,16 @@ create_cmd::issue(connection& con) msg_t req(con.ctx(), std::ref(*this)); auto& payload = req.get_request().get_payload(); - payload.sw_if_index = m_itf.value(); payload.is_add = 1; - payload.is_static = 1; - m_mac.to_bytes(payload.mac_address, 6); - to_bytes(m_ip_addr, &payload.is_ipv6, payload.dst_address); + payload.neighbor.sw_if_index = m_itf.value(); - VAPI_CALL(req.execute()); + to_api(m_mac, payload.neighbor.mac_address); + to_api(m_ip_addr, payload.neighbor.ip_address); + payload.neighbor.flags = to_api(m_flags); - m_hw_item.set(wait()); + VAPI_CALL(req.execute()); - return rc_t::OK; + return (wait()); } std::string @@ -65,14 +67,16 @@ create_cmd::to_string() const return (s.str()); } -delete_cmd::delete_cmd(HW::item& item, +delete_cmd::delete_cmd(HW::item& item, handle_t itf, const mac_address_t& mac, - const boost::asio::ip::address& ip_addr) - : rpc_cmd(item) + const boost::asio::ip::address& ip_addr, + const neighbour::flags_t& flags) + : srpc_cmd(item) , m_itf(itf) , m_mac(mac) , m_ip_addr(ip_addr) + , m_flags(flags) { } @@ -89,11 +93,12 @@ delete_cmd::issue(connection& con) msg_t req(con.ctx(), std::ref(*this)); auto& payload = req.get_request().get_payload(); - payload.sw_if_index = m_itf.value(); payload.is_add = 0; - payload.is_static = 1; - m_mac.to_bytes(payload.mac_address, 6); - to_bytes(m_ip_addr, &payload.is_ipv6, payload.dst_address); + payload.neighbor.sw_if_index = m_itf.value(); + + to_api(m_mac, payload.neighbor.mac_address); + to_api(m_ip_addr, payload.neighbor.ip_address); + payload.neighbor.flags = to_api(m_flags); VAPI_CALL(req.execute()); @@ -151,7 +156,11 @@ dump_cmd::issue(connection& con) std::string dump_cmd::to_string() const { - return ("neighbour-dump"); + std::ostringstream s; + + s << "neighbour-dump: " << m_itf.to_string() << " " << m_proto.to_string(); + + return (s.str()); } } // namespace neighbour_cmds } // namespace vom