On Wed, 13 May 2026 13:40:48 -0700 Neil Spring wrote:
> Add ecmp_rehash.sh with nine scenarios verifying that TCP rehash
> selects a different local ECMP path for IPv6:
> 
>   - SYN retransmission (forward path blocked during setup)
>   - SYN/ACK retransmission (reverse path blocked during setup)
>   - Midstream RTO (forward path blocked on established connection)
>   - Midstream ACK rehash (reverse path blocked on established connection)
>   - PLB rehash (ECN-driven congestion on established connection)
>   - Hash policy 1 negative test (rehash attempted but path unchanged)
>   - No flowlabel leak (mp_hash does not alter on-wire flowlabel)
>   - Dst rebuild consistency (route replace does not change path)
>   - Dst rebuild consistency with syncookies (same via cookie_v6_check)
> 
> The policy 1 test verifies that fib_multipath_hash_policy=1 computes
> a deterministic 5-tuple hash, so txhash re-rolls do not change the
> ECMP path while TcpTimeoutRehash still increments.
> 
> The flowlabel leak test sets auto_flowlabels=0 and installs tc
> filters that drop TCP packets with nonzero flowlabel, confirming
> that fl6->mp_hash does not leak into the on-wire IPv6 flow label.
> 
> The dst rebuild tests stream data, replace the ECMP route with
> identical nexthops (invalidating the cached dst), and verify that
> traffic stays on the same path.  This confirms that the initial
> route lookup in tcp_v6_connect() and cookie_v6_check() uses the
> same hash as subsequent rebuilds via inet6_csk_route_socket().
> Set ECMP_REBUILD_ROUNDS=N for statistical confidence.

Hi Neil!

The test appears to be too flaky:
https://netdev.bots.linux.dev/contest.html?test=ecmp-rehash-sh
-- 
pw-bot: cr

Reply via email to