On Tue, 22 Aug 2023 15:29:52 +1000
David Gibson
In tap6_handler() saddr is initialized to the IPv6 source address from the incoming packet. However part way through, but before organizing the packet into a "sequence" we set it unconditionally to the guest's assigned address. We don't do anything equivalent for IPv4.
This was there from the beginning, and the reason, if I recall correctly, is that a guest, depending on how far it got in its configuration, might suddenly switch from using a link-local to a global unicast address -- and we didn't handle that in TCP routines. This should be fixed now, though, and:
This doesn't make a lot of sense: if the guest is using a different source address it makes sense to consider these different sequences of packets and we shouldn't try to combine them together.
...right, that would be the wrong place anyway. -- Stefano