* Samuel Thibault (samuel.thiba...@gnu.org) wrote: > Dr. David Alan Gilbert, on mar. 28 févr. 2017 17:00:17 +0000, wrote: > > * Samuel Thibault (samuel.thiba...@gnu.org) wrote: > > > Dr. David Alan Gilbert, on mar. 28 févr. 2017 16:54:46 +0000, wrote: > > > > I'm thinking one way to do it without changing the version would > > > > be to use the existing value for IPv4, and on reading allow any other > > > > value for IPv6 (or just the ones we know about); that would make > > > > it inwards migration compatible. > > > > > > Right. I don't know if that's enough for QEMU requirements. > > > > If you change the version number you break backwards migration anyway; > > but doing what I suggested would keep backwards working in most cases. > > Sure, but in some cases we're breaking upward compatibility *silently*.
No, we don't need to break upwards compatibility; if I understand correctly the only values that can be in that field at the moment are: AF_INET - IPv4 which is 2 on everything we've seen AF_INET6 - whose value is different on different implementations. If we accept an incoming value of '2' to mean AF_INET then all existing IPv4 connections work. If we accept any other incoming value as AF_INET6 all existing IPv6 connections work. - so that's foward compatibility OK. If we generate '2' as the outgoing value for AF_INET then migration to all exiting code works for IPv4; so backwards works for IPv4. If we generate Linux's AF_INET6 number then IPv6 also works backwards but only for Linux. Dave > Samuel -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK