ofproto-dpif: Implement patch ports in userspace.
[sliver-openvswitch.git] / lib / netdev-provider.h
index 910ff58..c7de2c2 100644 (file)
@@ -19,8 +19,6 @@
 
 /* Generic interface to network devices. */
 
-#include <assert.h>
-
 #include "netdev.h"
 #include "list.h"
 #include "shash.h"
@@ -55,7 +53,7 @@ void netdev_dev_get_devices(const struct netdev_class *,
 static inline void netdev_dev_assert_class(const struct netdev_dev *netdev_dev,
                                            const struct netdev_class *class_)
 {
-    assert(netdev_dev->netdev_class == class_);
+    ovs_assert(netdev_dev->netdev_class == class_);
 }
 
 /* A instance of an open network device.
@@ -139,6 +137,13 @@ struct netdev_class {
      * pointer. */
     int (*set_config)(struct netdev_dev *netdev_dev, const struct smap *args);
 
+    /* Returns the tunnel configuration of 'netdev_dev'.  If 'netdev_dev' is
+     * not a tunnel, returns null.
+     *
+     * If this function would always return null, it may be null instead. */
+    const struct netdev_tunnel_config *
+        (*get_tunnel_config)(const struct netdev_dev *netdev_dev);
+
     /* Attempts to open a network device.  On success, sets 'netdevp'
      * to the new network device. */
     int (*open)(struct netdev_dev *netdev_dev, struct netdev **netdevp);
@@ -596,6 +601,7 @@ const struct netdev_class *netdev_lookup_provider(const char *type);
 extern const struct netdev_class netdev_linux_class;
 extern const struct netdev_class netdev_internal_class;
 extern const struct netdev_class netdev_tap_class;
+extern const struct netdev_class netdev_patch_class;
 #ifdef __FreeBSD__
 extern const struct netdev_class netdev_bsd_class;
 #endif