[Devel] [PATCH 1/3] selftests: forwarding: vxlan_bridge_1d: fix test failure with br_netfilter enabled

Konstantin Khorenko khorenko at virtuozzo.com
Wed Feb 4 18:06:39 MSK 2026


On 2/1/26 00:19, Aleksei Oladko wrote:
> 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.
> 
> https://virtuozzo.atlassian.net/browse/VSTOR-123249
> 
> Signed-off-by: Aleksei Oladko <aleksey.oladko at virtuozzo.com>
> ---
>   .../net/forwarding/vxlan_bridge_1d.sh         | 26 ++++++++++++-------
>   1 file changed, 16 insertions(+), 10 deletions(-)
> 
> diff --git a/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh b/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh
> index 3f9d50f1ef9e..fe42ef78711f 100755
> --- a/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh
> +++ b/tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh
> @@ -559,6 +559,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
				^^^
Redundant ":" here.

> +		)
> +	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=$(:
> @@ -569,16 +584,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

Here should be 2 tabs + spaces like in all other lines nearby.

>   		    )"08:"$(                      : ICMP type
>   		    )"00:"$(                      : ICMP code
>   		    )"8b:f2:"$(                   : ICMP csum



More information about the Devel mailing list