diff options
author | Neil Mckee <neil.mckee@inmon.com> | 2013-03-27 23:02:21 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2013-04-01 13:08:31 -0700 |
commit | 8073dd318b5a08fa447392f100d62b3bf54388a7 (patch) | |
tree | bbdbc713521d34ddb6232f6c4640638da1046a3d /lib/netdev-dummy.c | |
parent | d11dbe61764619ef4c02158f8532ae0873d3b463 (diff) |
tests: Add sFlow test.
This patch adds an sFlow test to the test suite.
I have only tested this on a Fedora 17 OS.
Signed-off-by: Neil Mckee <neil.mckee@inmon.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'lib/netdev-dummy.c')
-rw-r--r-- | lib/netdev-dummy.c | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index 234d7bc5..bdb3ea12 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -51,6 +51,7 @@ struct netdev_dev_dummy { unsigned int change_seq; struct list devs; /* List of child "netdev_dummy"s. */ + int ifindex; }; struct netdev_dummy { @@ -110,6 +111,7 @@ netdev_dummy_create(const struct netdev_class *class, const char *name, netdev_dev->mtu = 1500; netdev_dev->flags = 0; netdev_dev->change_seq = 1; + netdev_dev->ifindex = -EOPNOTSUPP; list_init(&netdev_dev->devs); shash_add(&dummy_netdev_devs, name, netdev_dev); @@ -132,6 +134,27 @@ netdev_dummy_destroy(struct netdev_dev *netdev_dev_) } static int +netdev_dummy_get_config(struct netdev_dev *netdev_dev_, struct smap *args) +{ + struct netdev_dev_dummy *netdev_dev = netdev_dev_dummy_cast(netdev_dev_); + + if (netdev_dev->ifindex >= 0) { + smap_add_format(args, "ifindex", "%d", netdev_dev->ifindex); + } + return 0; +} + +static int +netdev_dummy_set_config(struct netdev_dev *netdev_dev_, + const struct smap *args) +{ + struct netdev_dev_dummy *netdev_dev = netdev_dev_dummy_cast(netdev_dev_); + + netdev_dev->ifindex = smap_get_int(args, "ifindex", -EOPNOTSUPP); + return 0; +} + +static int netdev_dummy_open(struct netdev_dev *netdev_dev_, struct netdev **netdevp) { struct netdev_dev_dummy *netdev_dev = netdev_dev_dummy_cast(netdev_dev_); @@ -284,6 +307,15 @@ netdev_dummy_set_stats(struct netdev *netdev, const struct netdev_stats *stats) } static int +netdev_dummy_get_ifindex(const struct netdev *netdev) +{ + struct netdev_dev_dummy *dev = + netdev_dev_dummy_cast(netdev_get_dev(netdev)); + + return dev->ifindex; +} + +static int netdev_dummy_update_flags(struct netdev *netdev, enum netdev_flags off, enum netdev_flags on, enum netdev_flags *old_flagsp) @@ -337,8 +369,8 @@ static const struct netdev_class dummy_class = { netdev_dummy_create, netdev_dummy_destroy, - NULL, /* get_config */ - NULL, /* set_config */ + netdev_dummy_get_config, + netdev_dummy_set_config, NULL, /* get_tunnel_config */ netdev_dummy_open, @@ -356,7 +388,7 @@ static const struct netdev_class dummy_class = { netdev_dummy_get_etheraddr, netdev_dummy_get_mtu, netdev_dummy_set_mtu, - NULL, /* get_ifindex */ + netdev_dummy_get_ifindex, NULL, /* get_carrier */ NULL, /* get_carrier_resets */ NULL, /* get_miimon */ |