X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fnetdev.c;h=0b0463b9070d2fb83e403faa7d00f52c8f998065;hb=c178dfe0b0422a04df9dab93d9563474acecef32;hp=4741e24b3aff78b03b5a0e5a91f15cfde5cb3743;hpb=6f643e4946016399f0b217c2226284e3892b6267;p=openvswitch diff --git a/lib/netdev.c b/lib/netdev.c index 4741e24b..0b0463b9 100644 --- a/lib/netdev.c +++ b/lib/netdev.c @@ -42,10 +42,12 @@ #include "vlog.h" static const struct netdev_class *base_netdev_classes[] = { +#ifdef HAVE_NETLINK &netdev_linux_class, &netdev_tap_class, - &netdev_gre_class, &netdev_patch_class, + &netdev_gre_class, +#endif }; static struct shash netdev_classes = SHASH_INITIALIZER(&netdev_classes); @@ -958,6 +960,19 @@ netdev_get_stats(const struct netdev *netdev, struct netdev_stats *stats) return error; } +/* Attempts to change the stats for 'netdev' to those provided in 'stats'. + * Returns 0 if successful, otherwise a positive errno value. + * + * This will probably fail for most network devices. Some devices might only + * allow setting their stats to 0. */ +int +netdev_set_stats(struct netdev *netdev, const struct netdev_stats *stats) +{ + return (netdev_get_dev(netdev)->netdev_class->set_stats + ? netdev_get_dev(netdev)->netdev_class->set_stats(netdev, stats) + : EOPNOTSUPP); +} + /* Attempts to set input rate limiting (policing) policy, such that up to * 'kbits_rate' kbps of traffic is accepted, with a maximum accumulative burst * size of 'kbits' kb. */