2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 14:25:26 +00:00

lib: New data structure - smap.

A smap is a string to string hash map.  It has a cleaner interface
than shash's which were traditionally used for the same purpose.
This patch implements the data structure, and changes netdev and
its providers to use it.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
This commit is contained in:
Ethan Jackson
2012-05-22 03:47:36 -07:00
parent 37344ffa58
commit 79f1cbe9f8
13 changed files with 558 additions and 287 deletions

View File

@@ -35,7 +35,7 @@ extern "C" {
struct ofpbuf;
struct in_addr;
struct in6_addr;
struct shash;
struct smap;
struct sset;
enum netdev_flags {
@@ -93,8 +93,8 @@ bool netdev_is_open(const char *name);
void netdev_parse_name(const char *netdev_name, char **name, char **type);
/* Options. */
int netdev_set_config(struct netdev *, const struct shash *args);
int netdev_get_config(const struct netdev *, struct shash *);
int netdev_set_config(struct netdev *, const struct smap *args);
int netdev_get_config(const struct netdev *, struct smap *);
/* Basic properties. */
const char *netdev_get_name(const struct netdev *);
@@ -159,7 +159,7 @@ int netdev_get_in6(const struct netdev *, struct in6_addr *);
int netdev_add_router(struct netdev *, struct in_addr router);
int netdev_get_next_hop(const struct netdev *, const struct in_addr *host,
struct in_addr *next_hop, char **);
int netdev_get_drv_info(const struct netdev *, struct shash *sh);
int netdev_get_drv_info(const struct netdev *, struct smap *);
int netdev_arp_lookup(const struct netdev *, ovs_be32 ip, uint8_t mac[6]);
int netdev_get_flags(const struct netdev *, enum netdev_flags *);
@@ -195,20 +195,20 @@ int netdev_get_n_queues(const struct netdev *,
const char *type, unsigned int *n_queuesp);
int netdev_get_qos(const struct netdev *,
const char **typep, struct shash *details);
const char **typep, struct smap *details);
int netdev_set_qos(struct netdev *,
const char *type, const struct shash *details);
const char *type, const struct smap *details);
int netdev_get_queue(const struct netdev *,
unsigned int queue_id, struct shash *details);
unsigned int queue_id, struct smap *details);
int netdev_set_queue(struct netdev *,
unsigned int queue_id, const struct shash *details);
unsigned int queue_id, const struct smap *details);
int netdev_delete_queue(struct netdev *, unsigned int queue_id);
int netdev_get_queue_stats(const struct netdev *, unsigned int queue_id,
struct netdev_queue_stats *);
typedef void netdev_dump_queues_cb(unsigned int queue_id,
const struct shash *details, void *aux);
const struct smap *details, void *aux);
int netdev_dump_queues(const struct netdev *,
netdev_dump_queues_cb *, void *aux);