[ovs-dev] [PATCH] datapath: Tolerate backporting of rtnl_link_stats64 (as done on RHEL 6).

Jesse Gross jesse at nicira.com
Fri Feb 4 19:47:55 UTC 2011


On Fri, Feb 4, 2011 at 9:45 AM, Ben Pfaff <blp at nicira.com> wrote:
> On Thu, Feb 03, 2011 at 05:42:59PM -0800, Jesse Gross wrote:
>> On Thu, Feb 3, 2011 at 4:04 PM, Ben Pfaff <blp at nicira.com> wrote:
>> > Red Hat Enterprise Linux 6 has a 2.6.32 kernel but it backports the
>> > rtnl_link_stats64 structure that was introduced in 2.6.35, so we need to
>> > check whether it was defined instead of just guessing based on the kernel
>> > version number.
>> >
>> > Build-tested only, on 2.6.32-71.14.1.el6 (RHEL 6),
>> > linux-2.6.18-128.1.6.el5.xs5.5.0.496.101 (XenServer 5.5.0),
>> > 2.6.18-128.1.6.el5.xs5.5.0.505.1024xen (XenServer 5.5.0 update 1),
>> > and upstream 2.6.18, 2.6.26, 2.6.29, 2.6.33, 2.6.34, 2.6.36, all for i386,
>> > plus 2.6.36 for x86-64.
>> >
>> > My machine's userspace headers have <linux/if_link.h> but not
>> > rtnl_link_stats64. ?I didn't test with other userspace headers.
>>
>> The problem that I ran into (and with this as well) is that the
>> userspace header check never finds rtnl_link_stats64 even if it
>> exists.  So on my machine, which has 2.6.35 userspace and kernel, I
>> get:
>
> When I edited my /usr/include/linux/if_link.h by hand to include
> rtnl_link_stats64, everything built fine.  So something else must be in
> play here.  What's in config.log regarding rtnl_link_stats64?
>
> What distro is on your machine?

It's Ubuntu 10.10 but I found the problem:  if_link.h includes
netlink.h which uses sa_family_t which is defined in linux/socket.h
but only in the kernel.  If I add sys/socket.h to the include list in
the macro everything works fine.




More information about the dev mailing list