diff options
author | John Hurley <john.hurley@netronome.com> | 2017-01-06 17:55:11 -0800 |
---|---|---|
committer | Jarno Rajahalme <jarno@ovn.org> | 2017-01-06 17:55:11 -0800 |
commit | 3d47fa466aea5173a236f826e438b2f4ece83b84 (patch) | |
tree | c73a8932718893e29d8d5dc54c8638e8cbba9a7d /lib/ofp-util.c | |
parent | 0f6a066f638eb2ebf1b49b0e193fa1f5932edb61 (diff) | |
download | openvswitch-3d47fa466aea5173a236f826e438b2f4ece83b84.tar.gz |
datapath: Ensure correct L4 checksum with NAT helpers.
Setting the CHECKSUM_PARTIAL flag before sending to helper mods was
missing the checksum update call ('csum_*_magic()'), which caused
checksum failures with kernels <4.6. This can mean that the L4
checksum is incorrect when the packet egresses the system.
Rather than adding the missing (IP version dependent) calls, give the
packet a temp skb_dst with RTCF_LOCAL flag not set, which ensures the
skb is properly changed to CHECKSUM_PARTIAL if required and the
modified packet will get the correct checksum when fully processed.
This has tested with FTP NAT helpers on kernel version 3.13.
Signed-off-by: John Hurley <john.hurley@netronome.com>
Acked-by: Jarno Rajahalme <jarno@ovn.org>
Diffstat (limited to 'lib/ofp-util.c')
0 files changed, 0 insertions, 0 deletions