Merge 'master' into 'next'.
[sliver-openvswitch.git] / lib / netdev-linux.h
index 93ddfcb..7a11204 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Nicira Networks.
+ * Copyright (c) 2011 Nicira Networks.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 #ifndef NETDEV_LINUX_H
 #define NETDEV_LINUX_H 1
 
-/* These functions are specific to the Linux implementation of dpif and netdev.
- * They should only be used directly by Linux-specific code. */
+/* These functions are Linux specific, so they should be used directly only by
+ * Linux-specific code. */
 
-#include "list.h"
+struct netdev_stats;
+struct rtnl_link_stats;
+struct rtnl_link_stats64;
 
-struct linux_netdev_change {
-    /* Copied from struct nlmsghdr. */
-    int nlmsg_type;             /* e.g. RTM_NEWLINK, RTM_DELLINK. */
-
-    /* Copied from struct ifinfomsg. */
-    int ifi_index;              /* Index of network device. */
-
-    /* Extracted from Netlink attributes. */
-    const char *ifname;         /* Name of network device. */
-    int master_ifindex;         /* Ifindex of datapath master (0 if none). */
-};
-
-typedef void linux_netdev_notify_func(const struct linux_netdev_change *,
-                                      void *aux);
-
-struct linux_netdev_notifier {
-    struct list node;
-    int error;
-    linux_netdev_notify_func *cb;
-    void *aux;
-};
-
-int linux_netdev_notifier_register(struct linux_netdev_notifier *,
-                                   linux_netdev_notify_func *, void *aux);
-void linux_netdev_notifier_unregister(struct linux_netdev_notifier *);
-int linux_netdev_notifier_get_error(struct linux_netdev_notifier *);
-int linux_netdev_notifier_peek_error(const struct linux_netdev_notifier *);
-void linux_netdev_notifier_run(void);
-void linux_netdev_notifier_wait(void);
+void netdev_stats_from_rtnl_link_stats(struct netdev_stats *dst,
+                                       const struct rtnl_link_stats *src);
+void netdev_stats_from_rtnl_link_stats64(struct netdev_stats *dst,
+                                         const struct rtnl_link_stats64 *src);
+void netdev_stats_to_rtnl_link_stats64(struct rtnl_link_stats64 *dst,
+                                       const struct netdev_stats *src);
 
 #endif /* netdev-linux.h */