Commit 02cb2e6b authored by Aleksei Oladko's avatar Aleksei Oladko Committed by Paolo Abeni
Browse files

selftests: forwarding: vxlan_bridge_1d: fix test failure with br_netfilter enabled



The test generates VXLAN traffic using mausezahn, where the encapsulated
inner IPv4 packet contains a zero IP header checksum. After VXLAN
decapsulation, such packets do not pass sanity checks in br_netfilter
and are dropped, which causes the test to fail.

Fix this by calculating and setting a valid IPv4 header checksum for the
encapsulated packet generated by mausezahn, so that the packet is accepted
by br_netfilter. Fixed by using the payload_template_calc_checksum() /
payload_template_expand_checksum() helpers that are only available
in v6.3 and newer kernels.

Fixes: a0b61f3d ("selftests: forwarding: vxlan_bridge_1d: Add an ECN decap test")
Signed-off-by: default avatarAleksei Oladko <aleksey.oladko@virtuozzo.com>
Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260213131907.43351-2-aleksey.oladko@virtuozzo.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 26f29b14
Loading
Loading
Loading
Loading
+16 −10
Original line number Diff line number Diff line
@@ -567,6 +567,21 @@ vxlan_encapped_ping_do()
	local inner_tos=$1; shift
	local outer_tos=$1; shift

	local ipv4hdr=$(:
		    )"45:"$(                      : IP version + IHL
		    )"$inner_tos:"$(              : IP TOS
		    )"00:54:"$(                   : IP total length
		    )"99:83:"$(                   : IP identification
		    )"40:00:"$(                   : IP flags + frag off
		    )"40:"$(                      : IP TTL
		    )"01:"$(                      : IP proto
		    )"CHECKSUM:"$(                : IP header csum
		    )"c0:00:02:03:"$(             : IP saddr: 192.0.2.3
		    )"c0:00:02:01"$(              : IP daddr: 192.0.2.1
		)
	local checksum=$(payload_template_calc_checksum "$ipv4hdr")
	ipv4hdr=$(payload_template_expand_checksum "$ipv4hdr" $checksum)

	$MZ $dev -c $count -d 100msec -q \
		-b $next_hop_mac -B $dest_ip \
		-t udp tos=$outer_tos,sp=23456,dp=$VXPORT,p=$(:
@@ -577,16 +592,7 @@ vxlan_encapped_ping_do()
		    )"$dest_mac:"$(               : ETH daddr
		    )"$(mac_get w2):"$(           : ETH saddr
		    )"08:00:"$(                   : ETH type
		    )"45:"$(                      : IP version + IHL
		    )"$inner_tos:"$(              : IP TOS
		    )"00:54:"$(                   : IP total length
		    )"99:83:"$(                   : IP identification
		    )"40:00:"$(                   : IP flags + frag off
		    )"40:"$(                      : IP TTL
		    )"01:"$(                      : IP proto
		    )"00:00:"$(                   : IP header csum
		    )"c0:00:02:03:"$(             : IP saddr: 192.0.2.3
		    )"c0:00:02:01:"$(             : IP daddr: 192.0.2.1
		    )"$ipv4hdr:"$(                : IPv4 header
		    )"08:"$(                      : ICMP type
		    )"00:"$(                      : ICMP code
		    )"8b:f2:"$(                   : ICMP csum