Subject: Re: [PATCH 00/26] IPVS: Add first IPv6 support to IPVS.

From: Ben Greear <[email-masked]>
Date: Wed, 11 Jun 2008 14:30:14 -0700

Vince Busam wrote:
> Julius Volz wrote:
>> Ah, but the set/get-sockopt calls also pass a size argument, which is
>> the size of the passed structs. If the kernel and userspace struct
>> sizes don't match, it is treated as an error. Is this in case
>> different compilers pad the structs differently, even if the IPVS
>> version stays the same?
> 
> So we could disable the size checks of the passed structs, or key on it 
> to determine if the older ABI was used, keeping a list of the structs 
> that had different sizes around, but that sounds like a gross hack which 
> would get worse if any other fields are added.  It would also mean new 
> userspace binaries with the new fields wouldn't work with older kernels, 
> is that a problem?  Is this better than the alternatives of breaking the 
> ABI, or duplicating code into a separate ABI?

You can have the kernel ignore any data it doesn't understand (ie, if struct is 24 bytes,
but the kernel expects 20 bytes, just ignore the last 4).  This way it should
work with newer binaries.

Thanks,
Ben

> 
> Vince
> -- 
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [email-masked]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Ben Greear <[email-masked]>
Candela Technologies Inc  http://www.candelatech.com