AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec, struct stat.st_mtimensec],
[], [], [[#include <sys/stat.h>]])
AC_CHECK_MEMBERS([struct ifreq.ifr_flagshigh], [], [], [[#include <net/if.h>]])
-AC_CHECK_TYPES([struct rtnl_link_stats64], [], [],
- [[#include <linux/if_link.h>]])
AC_CHECK_FUNCS([mlockall strnlen getloadavg statvfs getmntent_r])
AC_CHECK_HEADERS([mntent.h sys/statvfs.h linux/types.h linux/if_ether.h stdatomic.h])
AC_CHECK_HEADERS([net/if_mib.h], [], [], [[#include <sys/types.h>
uint16_t tp_vlan_tpid;
};
-/* Linux 2.6.35 introduced IFLA_STATS64 and rtnl_link_stats64. */
-#ifndef HAVE_STRUCT_RTNL_LINK_STATS64
+/* Linux 2.6.35 introduced IFLA_STATS64 and rtnl_link_stats64.
+ *
+ * Tests for rtnl_link_stats64 don't seem to consistently work, e.g. on
+ * 2.6.32-431.29.2.el6.x86_64 (see report at
+ * http://openvswitch.org/pipermail/dev/2014-October/047978.html). Maybe
+ * if_link.h is not self-contained on those kernels. It is easiest to
+ * unconditionally define a replacement. */
+#ifndef IFLA_STATS64
#define IFLA_STATS64 23
+#endif
+#define rtnl_link_stats64 rpl_rtnl_link_stats64
struct rtnl_link_stats64 {
uint64_t rx_packets;
uint64_t tx_packets;
uint64_t rx_compressed;
uint64_t tx_compressed;
};
-#endif /* !HAVE_STRUCT_RTNL_LINK_STATS64 */
enum {
VALID_IFINDEX = 1 << 0,