On Wed, Jun 11, 2008 at 03:26:06PM -0700, Vince Busam wrote: > Ben Greear wrote: >> 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. > > Currently, the IPVS code specifically checks that length, so all kernels > up to now won't play well with any changes to the structs. Adding new features to IPVS that require ipvsadm to be extended has always been problematic due to the set/getsockopt interface that is used. A long time ago, before this code was merged into the kernel, the interface changed quite a lot and this was painful. There was an assumption that ipvsadm and kernel versions needed to match, and the version checking code was added basically to stop people shooting themselves in the foot. It was quite successful at that. Eventially the changes settled down, and for the past few years they have been very infrequent. But the problem that the interface isn't really extendable and that when changes are made kernel and ipvsadm versions need to be incremented together remains. For instance, the Debian package of ipvsadm actually shipps three different ipvsadm binaries, and a wrapper works out which one to use based on the kernel version. I wonder if now would be a good time to bite the bullet and design a new interface that is extendable. -- Horms -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html