/* Generic interface to network devices. */
-#include <assert.h>
-
#include "netdev.h"
#include "list.h"
#include "shash.h"
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.
* 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);
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