udp: fix inner packet checksum calculation in udp-encap 37/35737/27
authorMauro Sardara <msardara@cisco.com>
Tue, 22 Mar 2022 17:53:46 +0000 (17:53 +0000)
committerNeale Ranns <neale@graphiant.com>
Wed, 30 Mar 2022 17:51:33 +0000 (17:51 +0000)
commit9539647b895c456ca53892a9259e3127c6b92d35
treef4c0a345a2dc27eb5aff092e3b6cdc1be2d66dfe
parent591efc2f573baed38d79a0b9937ca4ff50732c1b
udp: fix inner packet checksum calculation in udp-encap

When computing the inner packet checksum, the code wrongly
assumes that the IP version of the inner packet is the
same of the outer one. On the contrary, it is perfectly
possible to encapsulate v6 packets into v4 and viceversa,
so we need to check the IP format of the inner header before
calling vnet_calc_checksums_inline.

Ticket: VPP-2020
Type: fix

Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: Ia4515563c164f6dd5096832c831a48cb0a29b3ad
Signed-off-by: Mauro Sardara <msardara@cisco.com>
src/vnet/ip/lookup.c
src/vnet/udp/udp_encap.c
src/vnet/udp/udp_encap.h
src/vnet/udp/udp_encap_node.c
src/vnet/udp/udp_inlines.h
src/vnet/vxlan-gpe/encap.c
test/test_udp.py