+ /*
+ * dump VPP tap interfaces
+ */
+ std::shared_ptr<tap_interface_cmds::tap_dump_cmd> tapcmd =
+ std::make_shared<tap_interface_cmds::tap_dump_cmd>();
+
+ HW::enqueue(tapcmd);
+ HW::write();
+
+ for (auto& tap_record : *tapcmd) {
+ std::shared_ptr<tap_interface> tapitf =
+ interface_factory::new_tap_interface(tap_record.get_payload());
+ VOM_LOG(log_level_t::DEBUG) << "tap-dump: " << tapitf->to_string();
+
+ /*
+ * Write each of the discovered interfaces into the OM,
+ * but disable the HW Command q whilst we do, so that no
+ * commands are sent to VPP
+ */
+ OM::commit(key, *tapitf);
+ }
+
+ /*
+ * dump VPP tapv2 interfaces
+ */
+ std::shared_ptr<tap_interface_cmds::tapv2_dump_cmd> tapv2cmd =
+ std::make_shared<tap_interface_cmds::tapv2_dump_cmd>();
+
+ HW::enqueue(tapv2cmd);
+ HW::write();
+
+ for (auto& tapv2_record : *tapv2cmd) {
+ std::shared_ptr<tap_interface> tapv2itf =
+ interface_factory::new_tap_v2_interface(tapv2_record.get_payload());
+ VOM_LOG(log_level_t::DEBUG) << "tapv2-dump: " << tapv2itf->to_string();
+
+ /*
+ * Write each of the discovered interfaces into the OM,
+ * but disable the HW Command q whilst we do, so that no
+ * commands are sent to VPP
+ */
+ OM::commit(key, *tapv2itf);
+ }
+
+ /*
+ * dump VPP interfaces
+ */