net/virtio: add in-order feature bit definition
authorMarvin Liu <yong.liu@intel.com>
Mon, 2 Jul 2018 13:56:35 +0000 (21:56 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 2 Jul 2018 23:35:58 +0000 (01:35 +0200)
If VIRTIO_F_IN_ORDER has been negotiated, driver will use descriptors in
ring order: starting from offset 0 in the table, and wrapping around at
the end of the table. Also introduce use_inorder_[rt]x flag for
selection of IN_ORDER [RT]x handlers.

Signed-off-by: Marvin Liu <yong.liu@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
drivers/net/virtio/virtio_pci.h
drivers/net/virtio/virtio_user_ethdev.c

index a28ba83..77f805d 100644 (file)
@@ -121,6 +121,12 @@ struct virtnet_ctl;
 #define VIRTIO_TRANSPORT_F_START 28
 #define VIRTIO_TRANSPORT_F_END   34
 
+/*
+ * Inorder feature indicates that all buffers are used by the device
+ * in the same order in which they have been made available.
+ */
+#define VIRTIO_F_IN_ORDER 35
+
 /* The Guest publishes the used index for which it expects an interrupt
  * at the end of the avail ring. Host should ignore the avail->flags field. */
 /* The Host publishes the avail index for which it expects a kick
@@ -233,6 +239,8 @@ struct virtio_hw {
        uint8_t     modern;
        uint8_t     use_simple_rx;
        uint8_t     use_simple_tx;
+       uint8_t     use_inorder_rx;
+       uint8_t     use_inorder_tx;
        uint16_t    port_id;
        uint8_t     mac_addr[ETHER_ADDR_LEN];
        uint32_t    notify_off_multiplier;
index 1c102ca..8747cbf 100644 (file)
@@ -441,6 +441,8 @@ virtio_user_eth_dev_alloc(struct rte_vdev_device *vdev)
        hw->modern   = 0;
        hw->use_simple_rx = 0;
        hw->use_simple_tx = 0;
+       hw->use_inorder_rx = 0;
+       hw->use_inorder_tx = 0;
        hw->virtio_user_dev = dev;
        return eth_dev;
 }