+static_always_inline uword
+virtio_interface_tx_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
+ vlib_frame_t * frame, virtio_if_t * vif,
+ virtio_if_type_t type)
+{
+ vnet_main_t *vnm = vnet_get_main ();
+ vnet_hw_interface_t *hw = vnet_get_hw_interface (vnm, vif->hw_if_index);
+
+ if (hw->flags & VNET_HW_INTERFACE_FLAG_SUPPORTS_GSO)
+ return virtio_interface_tx_gso_inline (vm, node, frame, vif, type,
+ 1 /* do_gso */ ,
+ 1 /* checksum offload */ );
+ else if (hw->flags & VNET_HW_INTERFACE_FLAG_SUPPORTS_TX_L4_CKSUM_OFFLOAD)
+ return virtio_interface_tx_gso_inline (vm, node, frame, vif, type,
+ 0 /* no do_gso */ ,
+ 1 /* checksum offload */ );
+ else
+ return virtio_interface_tx_gso_inline (vm, node, frame, vif, type,
+ 0 /* no do_gso */ ,
+ 0 /* no checksum offload */ );
+}
+