summaryrefslogtreecommitdiff
path: root/lib/netdev-provider.h
diff options
context:
space:
mode:
authorPravin <pshelar@nicira.com>2014-03-20 20:52:06 -0700
committerPravin B Shelar <pshelar@nicira.com>2014-03-21 11:48:28 -0700
commit55c955bd8aecc90273ffa93114c1c38f4f9b78ec (patch)
tree7850fb4be4006a7fd7e6cbc35dc30387a0fa93fd /lib/netdev-provider.h
parentf77917408a404d4660c6fb2cbe4d4c0f9f123cf2 (diff)
downloadopenvswitch-55c955bd8aecc90273ffa93114c1c38f4f9b78ec.tar.gz
netdev: Add support multiqueue recv.
new netdev type like DPDK can support multi-queue IO. Following patch Adds support for same. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Thomas Graf <tgraf@redhat.com>
Diffstat (limited to 'lib/netdev-provider.h')
-rw-r--r--lib/netdev-provider.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/netdev-provider.h b/lib/netdev-provider.h
index 943acc9d8..f233c0cb8 100644
--- a/lib/netdev-provider.h
+++ b/lib/netdev-provider.h
@@ -39,6 +39,7 @@ struct netdev {
this device. */
/* The following are protected by 'netdev_mutex' (internal to netdev.c). */
+ int n_rxq;
int ref_cnt; /* Times this devices was opened. */
struct shash_node *node; /* Pointer to element in global map. */
struct list saved_flags_list; /* Contains "struct netdev_saved_flags". */
@@ -59,6 +60,7 @@ void netdev_get_devices(const struct netdev_class *,
* None of these members change during the lifetime of a struct netdev_rxq. */
struct netdev_rxq {
struct netdev *netdev; /* Owns a reference to the netdev. */
+ int queue_id;
};
struct netdev *netdev_rxq_get_netdev(const struct netdev_rxq *);
@@ -127,6 +129,9 @@ struct netdev *netdev_rxq_get_netdev(const struct netdev_rxq *);
* implementation must not refer to base or derived state in the data
* structure, because it has already been uninitialized.
*
+ * If netdev support multi-queue IO then netdev->construct should set initialize
+ * netdev->n_rxq to number of queues.
+ *
* Each "alloc" function allocates and returns a new instance of the respective
* data structure. The "alloc" function is not given any information about the
* use of the new data structure, so it cannot perform much initialization.