comply with new ofpbuf interface
[sliver-openvswitch.git] / lib / netdev-provider.h
index 943acc9..8b6e9b3 100644 (file)
@@ -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.
@@ -666,6 +671,9 @@ extern const struct netdev_class netdev_tap_class;
 extern const struct netdev_class netdev_bsd_class;
 #endif
 
+extern const struct netdev_class netdev_tunnel_class;
+extern const struct netdev_class netdev_pltap_class;
+
 #ifdef  __cplusplus
 }
 #endif