vhost: export number of queues
authorYuanhan Liu <yuanhan.liu@linux.intel.com>
Tue, 10 May 2016 22:23:32 +0000 (06:23 +0800)
committerYuanhan Liu <yuanhan.liu@linux.intel.com>
Wed, 22 Jun 2016 07:01:30 +0000 (09:01 +0200)
Introduce a new API rte_vhost_get_queue_num() to export the number of
queues.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Tested-by: Rich Lane <rich.lane@bigswitch.com>
Acked-by: Rich Lane <rich.lane@bigswitch.com>
drivers/net/vhost/rte_eth_vhost.c
lib/librte_vhost/rte_vhost_version.map
lib/librte_vhost/rte_virtio_net.h
lib/librte_vhost/virtio-net.c

index a00351b..bbd76b1 100644 (file)
@@ -270,7 +270,7 @@ new_device(struct virtio_net *dev)
                vq->port = eth_dev->data->port_id;
        }
 
-       for (i = 0; i < dev->virt_qp_nb * VIRTIO_QNUM; i++)
+       for (i = 0; i < rte_vhost_get_queue_num(dev->vid) * VIRTIO_QNUM; i++)
                rte_vhost_enable_guest_notification(dev, i, 0);
 
        dev->priv = eth_dev;
index a323fa0..a65bef5 100644 (file)
@@ -25,5 +25,6 @@ DPDK_16.07 {
        global:
 
        rte_vhost_get_numa_node;
+       rte_vhost_get_queue_num;
 
 } DPDK_2.1;
index b8e9b02..de56b1b 100644 (file)
@@ -256,6 +256,17 @@ int rte_vhost_driver_session_start(void);
  */
 int rte_vhost_get_numa_node(int vid);
 
+/**
+ * Get the number of queues the device supports.
+ *
+ * @param vid
+ *  virtio-net device ID
+ *
+ * @return
+ *  The number of queues, 0 on failure
+ */
+uint32_t rte_vhost_get_queue_num(int vid);
+
 /**
  * This function adds buffers to the virtio devices RX virtqueue. Buffers can
  * be received from the physical port or from another virtual device. A packet
index 25b6515..a03ff30 100644 (file)
@@ -756,6 +756,17 @@ rte_vhost_get_numa_node(int vid)
 #endif
 }
 
+uint32_t
+rte_vhost_get_queue_num(int vid)
+{
+       struct virtio_net *dev = get_device(vid);
+
+       if (dev == NULL)
+               return 0;
+
+       return dev->virt_qp_nb;
+}
+
 int rte_vhost_enable_guest_notification(struct virtio_net *dev,
        uint16_t queue_id, int enable)
 {