X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Finterface.cpp;h=1e27d42c7f4a16b1b966f161ed358c97a318ac21;hb=097fa66b9;hp=97f7776ebc6098d10b28824afdec7ab66ffd4559;hpb=a8ac77f4706b7e40887426c446ebded4555885e4;p=vpp.git diff --git a/extras/vom/vom/interface.cpp b/extras/vom/vom/interface.cpp index 97f7776ebc6..1e27d42c7f4 100644 --- a/extras/vom/vom/interface.cpp +++ b/extras/vom/vom/interface.cpp @@ -14,6 +14,7 @@ */ #include "vom/interface.hpp" +#include "vom/api_types.hpp" #include "vom/bond_group_binding.hpp" #include "vom/bond_group_binding_cmds.hpp" #include "vom/bond_interface_cmds.hpp" @@ -275,13 +276,17 @@ interface::key() const std::queue& interface::mk_create_cmd(std::queue& q) { - if ((type_t::LOOPBACK == m_type) || (type_t::BVI == m_type)) { + if (type_t::LOOPBACK == m_type) { q.push(new interface_cmds::loopback_create_cmd(m_hdl, m_name)); q.push(new interface_cmds::set_tag(m_hdl, m_name)); /* * set the m_tag for pretty-print */ m_tag = m_name; + } else if (type_t::BVI == m_type) { + q.push(new interface_cmds::bvi_create_cmd(m_hdl, m_name)); + q.push(new interface_cmds::set_tag(m_hdl, m_name)); + m_tag = m_name; } else if (type_t::AFPACKET == m_type) { q.push(new interface_cmds::af_packet_create_cmd(m_hdl, m_name)); if (!m_tag.empty()) @@ -301,8 +306,10 @@ interface::mk_create_cmd(std::queue& q) std::queue& interface::mk_delete_cmd(std::queue& q) { - if ((type_t::LOOPBACK == m_type) || (type_t::BVI == m_type)) { + if (type_t::LOOPBACK == m_type) { q.push(new interface_cmds::loopback_delete_cmd(m_hdl)); + } else if (type_t::BVI == m_type) { + q.push(new interface_cmds::bvi_delete_cmd(m_hdl)); } else if (type_t::AFPACKET == m_type) { q.push(new interface_cmds::af_packet_delete_cmd(m_hdl, m_name)); } else if (type_t::VHOST == m_type) { @@ -394,9 +401,7 @@ interface::set(const admin_state_t& state) void interface::set(const l2_address_t& addr) { - assert(rc_t::UNSET == m_l2_address.rc()); - m_l2_address.set(rc_t::NOOP); - m_l2_address.update(addr); + m_l2_address = { addr, rc_t::NOOP }; } void @@ -424,6 +429,8 @@ interface::set(const counter_t& count, const std::string& stat_type) m_stats.m_rx = count; else if ("tx" == stat_type) m_stats.m_tx = count; + else if ("drops" == stat_type) + m_stats.m_drop = count; else if ("rx-unicast" == stat_type) m_stats.m_rx_unicast = count; else if ("tx-unicast" == stat_type) @@ -454,22 +461,12 @@ std::ostream& operator<<(std::ostream& os, const interface::stats_t& stats) { os << "[" - << "rx [packets " << stats.m_rx.packets << ", bytes " << stats.m_rx.bytes - << "]" - << " rx-unicast [packets " << stats.m_rx_unicast.packets << ", bytes " - << stats.m_rx_unicast.bytes << "]" - << " rx-multicast [packets " << stats.m_rx_multicast.packets << ", bytes " - << stats.m_rx_multicast.bytes << "]" - << " rx-broadcast [packets " << stats.m_rx_broadcast.packets << ", bytes " - << stats.m_rx_broadcast.bytes << "]" - << " tx [packets " << stats.m_tx.packets << ", bytes " << stats.m_tx.bytes - << "]" - << " tx-unicast [packets " << stats.m_tx_unicast.packets << ", bytes " - << stats.m_tx_unicast.bytes << "]" - << " tx-multicast [packets " << stats.m_tx_multicast.packets << ", bytes " - << stats.m_tx_multicast.bytes << "]" - << " tx-broadcast [packets " << stats.m_tx_broadcast.packets << ", bytes " - << stats.m_tx_broadcast.bytes << "]]" << std::endl; + << "rx " << stats.m_rx << " rx-unicast " << stats.m_rx_unicast + << " rx-multicast " << stats.m_rx_multicast << " rx-broadcast " + << stats.m_rx_broadcast << " tx " << stats.m_tx << " tx-unicast " + << stats.m_tx_unicast << " tx-multicast " << stats.m_tx_multicast + << " tx-broadcast " << stats.m_tx_broadcast << " drops " << stats.m_drop + << "]" << std::endl; return (os); } @@ -670,8 +667,7 @@ interface::event_handler::handle_populate(const client_db::key_t& key) for (auto& l3_record : *dcmd) { auto& payload = l3_record.get_payload(); - const route::prefix_t pfx(payload.is_ipv6, payload.ip, - payload.prefix_length); + const route::prefix_t pfx = from_api(payload.prefix); VOM_LOG(log_level_t::DEBUG) << "dump: " << pfx.to_string();