Re: git: e4ea162509e4 - main - epair: add support for checksum offloading

From: Kristof Provost <kp_at_FreeBSD.org>
Date: Tue, 02 Sep 2025 20:10:20 UTC
On 2 Sep 2025, at 0:17, Michael Tuexen wrote:
> The branch main has been updated by tuexen:
>
> URL: 
> https://cgit.FreeBSD.org/src/commit/?id=e4ea162509e400340a2bc3e755071a92f3465e2d
>
> commit e4ea162509e400340a2bc3e755071a92f3465e2d
> Author:     Timo Völker <timo.voelker@fh-muenster.de>
> AuthorDate: 2025-09-01 22:03:47 +0000
> Commit:     Michael Tuexen <tuexen@FreeBSD.org>
> CommitDate: 2025-09-01 22:15:51 +0000
>
>     epair: add support for checksum offloading
>
>     Add capabilities RXCSUM and RXCSUM6 as well as TXCSUM and TXCSUM6 
> for
>     for receive and transmit checksum offloading for TCP and UDP to 
> the
>     epair interface and enable them by default.
>     RXCSUM and RXCSUM6 are enabled because an epair interface may 
> receive
>     a packet with the csum_flag CSUM_DATA_VALID set, which is expected
>     only if these capabilities are enabled. Since it seems not helpful 
> to
>     remove this flag, it is not possible to disable these 
> capabilities.
>     TXCSUM and TXCSUM6 are synchronized between the two epair 
> interface
>     ends. If enabled/disabled on one end, it will be enabled/disabled 
> on
>     the other end. If the sending epair interface end has TXCSUM or 
> TXCSUM6
>     enabled and the receiving end is in a bridge, it is assumed that 
> all
>     interfaces in the bridge have that capability enabled. Otherwise 
> the
>     bridge would have disabled that capability on the receiving epair
>     interface end in the bridge which would have disabled that 
> capability
>     on the sending epair interface end as well due to the 
> synchronization.
>
>     Reviewed by:            bcr, Seyed Pouria Mousavizadeh Tehrani
>     MFC after:              4 weeks
>     Differential Revision:  https://reviews.freebsd.org/D51639

This seems to be causing a lot of pf test failures, especially in the 
route_to tests.

All of these now fail, unless this commit is reverted:

	nat:binat_compat  ->  failed: atf-check failed; see the output of the 
test for details  [4.423s]
	nat:binat_match  ->  failed: atf-check failed; see the output of the 
test for details  [7.535s]
	nat:nat_match  ->  failed: atf-check failed; see the output of the test 
for details  [4.511s]
	nat:nat_pass  ->  failed: atf-check failed; see the output of the test 
for details  [7.337s]
	nat64:tcp_in_floating  ->  failed: Failed to connect to TCP server  
[6.142s]
	nat64:tcp_in_if_bound  ->  failed: Failed to connect to TCP server  
[6.048s]
	nat64:tcp_out_floating  ->  failed: Failed to connect to TCP server  
[6.268s]
	nat64:tcp_out_if_bound  ->  failed: Failed to connect to TCP server  
[6.253s]
	nat64:udp_in  ->  failed: Failed to connect to UDP server  [6.097s]
	nat64:udp_out  ->  failed: Failed to connect to UDP server  [6.071s]
	rdr:tcp_v6_compat  ->  failed:        0 !=       22 ( 0 !=  22)  
[2.736s]
	rdr:tcp_v6_pass  ->  failed:        0 !=       23 ( 0 !=  23)  [1.978s]
	route_to:prefer_ipv6_nexthop_ipv4_random_prefix_ipv4  ->  failed: 
atf-check failed; see the output of the test for details  [5.693s]
	route_to:prefer_ipv6_nexthop_ipv4_random_table_ipv4  ->  failed: 
atf-check failed; see the output of the test for details  [12.511s]
	route_to:prefer_ipv6_nexthop_ipv6_random_prefix_ipv4  ->  failed: 
atf-check failed; see the output of the test for details  [14.865s]
	route_to:prefer_ipv6_nexthop_ipv6_random_prefix_ipv6  ->  failed: 
atf-check failed; see the output of the test for details  [7.849s]
	route_to:prefer_ipv6_nexthop_mixed_af_random_table_ipv4  ->  failed: 
atf-check failed; see the output of the test for details  [11.843s]
	route_to:prefer_ipv6_nexthop_mixed_af_roundrobin_ipv4  ->  failed: 
atf-check failed; see the output of the test for details  [5.566s]
	route_to:prefer_ipv6_nexthop_mixed_af_roundrobin_ipv6  ->  failed: 
atf-check failed; see the output of the test for details  [11.089s]
	route_to:prefer_ipv6_nexthop_single_ipv4  ->  failed: atf-check failed; 
see the output of the test for details  [6.615s]
	route_to:prefer_ipv6_nexthop_single_ipv6  ->  failed: atf-check failed; 
see the output of the test for details  [7.210s]
	route_to:random_prefix  ->  failed: atf-check failed; see the output of 
the test for details  [6.608s]
	route_to:random_table  ->  failed: atf-check failed; see the output of 
the test for details  [6.513s]
	route_to:roundrobin  ->  failed: atf-check failed; see the output of 
the test for details  [6.248s]
	route_to:table_loop  ->  failed: atf-check failed; see the output of 
the test for details  [6.606s]
	src_track:max_src_conn_rule  ->  failed: atf-check failed; see the 
output of the test for details  [4.743s]
	src_track:max_src_states_global  ->  failed: atf-check failed; see the 
output of the test for details  [5.010s]
	src_track:max_src_states_rule  ->  failed: atf-check failed; see the 
output of the test for details  [5.026s]
	src_track:mixed_af  ->  failed: atf-check failed; see the output of the 
test for details  [5.532s]

Best regards,
Kristof