X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Finterface.cpp;h=70035648d06d46c7ca50ac05329b6621d3d26556;hb=908965db7;hp=f2f32b43a88dcb6e6a32ccd87904610636acdb36;hpb=d8cf40b8bb5e00eb8b668f7d762e8eb5267a228a;p=vpp.git diff --git a/extras/vom/vom/interface.cpp b/extras/vom/vom/interface.cpp index f2f32b43a88..70035648d06 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" @@ -159,6 +160,12 @@ interface::l2_address() const return (m_l2_address.data()); } +const interface::admin_state_t& +interface::admin_state() const +{ + return (m_state.data()); +} + interface::const_iterator_t interface::cbegin() { @@ -275,13 +282,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 +312,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 +407,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 @@ -662,8 +673,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();