#include "list.h"
#include "shash.h"
+struct arg {
+ char *key;
+ char *value;
+};
+
/* A network device (e.g. an Ethernet device).
*
* This structure should be treated as opaque by network device
const struct netdev_class *class; /* Functions to control this device. */
int ref_cnt; /* Times this devices was opened. */
struct shash_node *node; /* Pointer to element in global map. */
- uint32_t args_hash; /* Hash of arguments for the device. */
+ struct arg *args; /* Argument list from last config. */
+ int n_args; /* Number of arguments in 'args'. */
};
void netdev_dev_init(struct netdev_dev *, const char *name,
void netdev_dev_uninit(struct netdev_dev *, bool destroy);
const char *netdev_dev_get_type(const struct netdev_dev *);
const char *netdev_dev_get_name(const struct netdev_dev *);
+struct netdev_dev *netdev_dev_from_name(const char *name);
+void netdev_dev_get_devices(const struct netdev_class *,
+ struct shash *device_list);
static inline void netdev_dev_assert_class(const struct netdev_dev *netdev_dev,
const struct netdev_class *class)