X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp-api%2Fvom%2Finterface.cpp;h=e9b7a1a1f9be451c94bd689e33ff349fcd8bb1d6;hb=756cd9441752fc8f84104c9ee19099506ba89f85;hp=435002a106768feccfcccc1073d9c5bf20189047;hpb=871dc4287d8c05ff76106dba4f5f8654c24347fe;p=vpp.git diff --git a/src/vpp-api/vom/interface.cpp b/src/vpp-api/vom/interface.cpp index 435002a1067..e9b7a1a1f9b 100644 --- a/src/vpp-api/vom/interface.cpp +++ b/src/vpp-api/vom/interface.cpp @@ -22,6 +22,7 @@ #include "vom/l3_binding_cmds.hpp" #include "vom/logger.hpp" #include "vom/prefix.hpp" +#include "vom/singular_db_funcs.hpp" namespace VOM { /** @@ -148,13 +149,13 @@ interface::l2_address() const interface::const_iterator_t interface::cbegin() { - return m_db.cbegin(); + return m_db.begin(); } interface::const_iterator_t interface::cend() { - return m_db.cend(); + return m_db.end(); } void @@ -169,6 +170,10 @@ interface::sweep() } if (m_stats) { + if (stats_type_t::DETAILED == m_stats_type) { + HW::enqueue(new interface_cmds::collect_detail_stats_change_cmd( + m_stats_type, handle_i(), false)); + } HW::enqueue(new interface_cmds::stats_disable_cmd(m_hdl.data())); m_stats.reset(); } @@ -198,6 +203,18 @@ interface::replay() HW::enqueue(new interface_cmds::state_change_cmd(m_state, m_hdl)); } + if (m_stats) { + if (stats_type_t::DETAILED == m_stats_type) { + m_stats_type.set(rc_t::NOOP); + HW::enqueue(new interface_cmds::collect_detail_stats_change_cmd( + m_stats_type, handle_i(), true)); + } + stat_listener& listener = m_stats->listener(); + listener.status().set(rc_t::NOOP); + m_stats.reset(new interface_cmds::stats_enable_cmd(listener, handle_i())); + HW::enqueue(m_stats); + } + if (m_table_id && (m_table_id.data() != route::DEFAULT_TABLE)) { HW::enqueue( new interface_cmds::set_table_cmd(m_table_id, l3_proto_t::IPV4, m_hdl)); @@ -469,7 +486,7 @@ interface::remove(const HW::item& item) void interface::dump(std::ostream& os) { - m_db.dump(os); + db_dump(m_db, os); } void @@ -610,7 +627,7 @@ interface::event_handler::order() const void interface::event_handler::show(std::ostream& os) { - m_db.dump(os); + db_dump(m_db, os); } } // namespace VOM