On 8/5/22 20:13, Aaron Conole wrote:
> Ilya Maximets <[email protected]> writes:
> 
>> OVS kernel module is incorrectly updating checksums while changing
>> IPv6 fields of later fragments that doesn't really have L4 headers.
>>
>> This makes the 'ping6 between two ports with header modify' test
>> fail on most of the distribution kernels.
>>
>> The issue got indirectly fixed in latest 5.19 with commit:
>>
>>   12378a5a75e3 ("net: openvswitch: fix parsing of nw_proto for IPv6 
>> fragments")
>>
>> The reason is that set_ipv6() function in net/openvswitch/actions.c
>> is using the protocol number from the parsed flow key and not from
>> the packet itself, and nw_proto=44 is not a protocol where we can
>> update the checksum.
>>
>> It was backported to all supported upstream stable trees, but didn't
>> find its way to most of the distributions yet.
>>
>> Restricting the test to 5.19+ kernels to avoid failures on distro
>> kernels.  Additionally allowing the previous test for later fragments
>> to be executed in userspace testsuite.
>>
>> Fixes: 2ff43c78c685 ("packets: Re-calculate IPv6 checksum only for first 
>> frag upon modify.")
>> Signed-off-by: Ilya Maximets <[email protected]>
>> ---
> 
> Acked-by: Aaron Conole <[email protected]>
> 
> I guess we could try and test against the kernel to see if it
> has the revert applied instead of just disabling, but not sure how
> simple such a test would be.
> 

Yeah, I'm not really sure how to do that in a good way,  For now, the
current change seems good enough.

Applied and backported down to 2.13.  Thanks!

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to