+u8 *
+format_vnet_hw_interface_rx_mode (u8 * s, va_list * args)
+{
+ vnet_hw_interface_rx_mode mode = va_arg (*args, vnet_hw_interface_rx_mode);
+
+ if (mode == VNET_HW_INTERFACE_RX_MODE_POLLING)
+ return format (s, "polling");
+
+ if (mode == VNET_HW_INTERFACE_RX_MODE_INTERRUPT)
+ return format (s, "interrupt");
+
+ if (mode == VNET_HW_INTERFACE_RX_MODE_ADAPTIVE)
+ return format (s, "adaptive");
+
+ return format (s, "unknown");
+}
+
+u8 *
+format_vnet_hw_interface_link_speed (u8 * s, va_list * args)
+{
+ u32 link_speed = va_arg (*args, u32);
+
+ if (link_speed == 0)
+ return format (s, "unknown");
+
+ if (link_speed >= 1000000)
+ return format (s, "%f Gbps", (f64) link_speed / 1000000);
+
+ if (link_speed >= 1000)
+ return format (s, "%f Mbps", (f64) link_speed / 1000);
+
+ return format (s, "%u Kbps", link_speed);
+}
+
+