datapath: Tolerate backporting of rtnl_link_stats64 (as in RHEL 6).
[sliver-openvswitch.git] / m4 / openvswitch.m4
index 077c29b..e6d03a6 100644 (file)
@@ -1,6 +1,6 @@
 # -*- autoconf -*-
 
-# Copyright (c) 2008, 2009, 2010 Nicira Networks.
+# Copyright (c) 2008, 2009, 2010, 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.
@@ -46,6 +46,25 @@ AC_DEFUN([OVS_CHECK_NDEBUG],
      [ndebug=false])
    AM_CONDITIONAL([NDEBUG], [test x$ndebug = xtrue])])
 
+dnl Checks for struct rtnl_link_stats64.
+dnl
+dnl (OVS checks for this structure in both kernel and userspace headers.  This
+dnl is not redundant, because the kernel and userspace builds have completely
+dnl different include paths.  It is possible for the kernel to have this
+dnl structure but not userspace, and vice versa.)
+AC_DEFUN([OVS_CHECK_RTNL_LINK_STATS64],
+  [AC_REQUIRE([OVS_CHECK_NETLINK])
+   if test $HAVE_NETLINK = yes; then
+     AC_CHECK_MEMBER(
+       [struct rtnl_link_stats64.tx_packets],
+       [AC_DEFINE([HAVE_RTNL_LINK_STATS64], [1],
+                  [Define to 1 if <linux/if_link.h> defines
+                   struct rtnl_link_stats64.])],
+       [], [#include <sys/socket.h>     /* Provides sa_family_t. */
+#include <linux/if_link.h>
+])
+   fi])
+
 dnl Checks for Netlink support.
 AC_DEFUN([OVS_CHECK_NETLINK],
   [AC_CHECK_HEADER([linux/netlink.h],