3 #include <vom/types.hpp>
4 #include <vom/prefix.hpp>
5 #include <vom/tap_interface.hpp>
7 class listener : public VOM::interface::stat_listener
12 void handle_interface_stat(const VOM::interface& itf)
14 std::cout << itf.name() << " " << itf.get_stats();
19 * Run VPP on another terminal before running vom_stats_test
24 listener *listen = new listener();
26 VOM::HW::init(new VOM::HW::cmd_q());
29 while (VOM::HW::connect() != true)
32 VOM::tap_interface itf("tap0", VOM::interface::admin_state_t::UP, VOM::route::prefix_t::ZERO);
33 VOM::OM::write("__TAP__", itf);
35 std::shared_ptr<VOM::tap_interface> intf = itf.singular();
38 VOM::tap_interface itf1("tap1", VOM::interface::admin_state_t::UP, VOM::route::prefix_t::ZERO);
39 VOM::OM::write("__TAP__", itf1);
41 std::shared_ptr<VOM::tap_interface> intf1 = itf1.singular();
43 VOM::tap_interface itf2("tap2", VOM::interface::admin_state_t::UP, VOM::route::prefix_t::ZERO);
44 VOM::OM::write("__TAP__", itf2);
46 std::shared_ptr<VOM::tap_interface> intf2 = itf2.singular();
48 if (VOM::handle_t::INVALID == intf->handle() || VOM::handle_t::INVALID == intf1->handle()
49 || VOM::handle_t::INVALID == intf2->handle())
51 std::cout << "Interface index is INVALID" << std::endl;
52 VOM::HW::disconnect();
58 std::cout << "Interface #1 index is " << intf->handle().value() << std::endl;
59 std::cout << "Interface #2 index is " << intf1->handle().value() << std::endl;
60 std::cout << "Interface #3 index is " << intf2->handle().value() << std::endl;
63 intf->enable_stats(listen);
64 intf1->enable_stats(listen);
65 intf2->enable_stats(listen);
70 std::cout << "stats # " << std::to_string(i) << std::endl;
71 VOM::HW::read_stats();
74 intf->disable_stats();
78 intf1->disable_stats();
79 intf2->disable_stats();
85 VOM::OM::remove("__TAP__");
89 VOM::HW::disconnect();