X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Fip_punt_redirect_cmds.cpp;h=419e3f17fba33f4736251f8f20db225bdbaca711;hb=7c0eb56f4;hp=8ab6005eddbf34267ecb3c0b7b6c2b62f927eb75;hpb=e23edac38ec239115689fe252b4b41a3556f6280;p=vpp.git diff --git a/extras/vom/vom/ip_punt_redirect_cmds.cpp b/extras/vom/vom/ip_punt_redirect_cmds.cpp index 8ab6005eddb..419e3f17fba 100644 --- a/extras/vom/vom/ip_punt_redirect_cmds.cpp +++ b/extras/vom/vom/ip_punt_redirect_cmds.cpp @@ -14,13 +14,14 @@ */ #include "vom/ip_punt_redirect_cmds.hpp" +#include namespace VOM { namespace ip_punt_redirect_cmds { config_cmd::config_cmd(HW::item& item, - const handle_t& rx_itf, - const handle_t& tx_itf, + const handle_t rx_itf, + const handle_t tx_itf, const boost::asio::ip::address& addr) : rpc_cmd(item) , m_rx_itf(rx_itf) @@ -44,10 +45,9 @@ config_cmd::issue(connection& con) auto& payload = req.get_request().get_payload(); payload.is_add = 1; - payload.rx_sw_if_index = m_rx_itf.value(); - payload.tx_sw_if_index = m_tx_itf.value(); - - to_bytes(m_addr, &payload.is_ip6, payload.nh); + payload.punt.rx_sw_if_index = m_rx_itf.value(); + payload.punt.tx_sw_if_index = m_tx_itf.value(); + to_api(m_addr, payload.punt.nh); VAPI_CALL(req.execute()); @@ -58,7 +58,7 @@ std::string config_cmd::to_string() const { std::ostringstream s; - s << "IP-punt-redirect-config: " << m_hw_item.to_string() + s << "IP-punt-redirect: " << m_hw_item.to_string() << " rx-itf:" << m_rx_itf.to_string() << " tx-itf:" << m_tx_itf.to_string() << " next-hop:" << m_addr; @@ -66,8 +66,8 @@ config_cmd::to_string() const } unconfig_cmd::unconfig_cmd(HW::item& item, - const handle_t& rx_itf, - const handle_t& tx_itf, + const handle_t rx_itf, + const handle_t tx_itf, const boost::asio::ip::address& addr) : rpc_cmd(item) , m_rx_itf(rx_itf) @@ -91,10 +91,9 @@ unconfig_cmd::issue(connection& con) auto& payload = req.get_request().get_payload(); payload.is_add = 0; - payload.rx_sw_if_index = m_rx_itf.value(); - payload.tx_sw_if_index = m_tx_itf.value(); - - to_bytes(m_addr, &payload.is_ip6, payload.nh); + payload.punt.rx_sw_if_index = m_rx_itf.value(); + payload.punt.tx_sw_if_index = m_tx_itf.value(); + to_api(m_addr, payload.punt.nh); VAPI_CALL(req.execute()); @@ -115,6 +114,30 @@ unconfig_cmd::to_string() const return (s.str()); } +bool +dump_cmd::operator==(const dump_cmd& other) const +{ + return (true); +} + +rc_t +dump_cmd::issue(connection& con) +{ + m_dump.reset(new msg_t(con.ctx(), std::ref(*this))); + + VAPI_CALL(m_dump->execute()); + + wait(); + + return rc_t::OK; +} + +std::string +dump_cmd::to_string() const +{ + return ("ip-punt-redirect-dump"); +} + }; // namespace ip_punt_redirect_cmds }; // namespace VOM