<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in ecmp_rehash.sh</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>ae57a55332436ca58d1824d3375478afd51dca6a - selftests: net: add local ECMP rehash test</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/testing/selftests/net/ecmp_rehash.sh#ae57a55332436ca58d1824d3375478afd51dca6a</link>
        <description>selftests: net: add local ECMP rehash testAdd ecmp_rehash.sh with nine scenarios verifying that TCP rehashselects 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 (client mp_hash does not alter on-wire flowlabel)  - Dst rebuild consistency (dst invalidation does not change path)  - Syncookie server path consistency (SYN-ACK and post-cookie ACKs    use the same ECMP path)The policy 1 test verifies that fib_multipath_hash_policy=1 computesa deterministic 5-tuple hash, so txhash re-rolls do not change theECMP path while TcpTimeoutRehash still increments.The flowlabel leak test sets auto_flowlabels=0 on the client andinstalls tc filters on client egress that drop TCP packets withnonzero flowlabel, confirming that the client&apos;s fl6-&gt;mp_hash doesnot leak into the on-wire IPv6 flow label.The PLB test needs DCTCP, a restricted congestion control.  Ratherthan relax the host-global tcp_allowed_congestion_control (noper-netns equivalent), it pins dctcp on the test routes via thecongctl route attribute, confined to the test namespaces.The dst rebuild test streams data, invalidates the cached dst byadding and removing a dummy route (bumping the fib6_node sernum),and verifies that traffic stays on the same path.  The sernum changecauses ip6_dst_check() to fail on the next transmit, triggering afresh route lookup via inet6_csk_route_socket().ECMP_REBUILD_ROUNDS=10 repeats the check to reduce the probabilityof a buggy kernel passing by chance with 2-way ECMP.The syncookie server path consistency test verifies that theserver&apos;s SYN-ACK and subsequent ACKs use the same ECMP path.With syncookies, the request socket is freed after the SYN-ACK,so cookie_tcp_reqsk_init() must derive the same txhash (from thecookie) that was used for the SYN-ACK&apos;s route lookup.The syncookie test forces tcp_syncookies=2; it skips whenCONFIG_SYN_COOKIES is not available.  selftests/net/config selectsit (and CONFIG_TCP_CONG_DCTCP for the PLB test).Signed-off-by: Neil Spring &lt;ntspring@meta.com&gt;Link: https://patch.msgid.link/20260615042158.1600746-3-ntspring@meta.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux/tools/testing/selftests/net/ecmp_rehash.sh</description>
        <pubDate>Mon, 15 Jun 2026 06:21:58 +0200</pubDate>
        <dc:creator>Neil Spring &lt;ntspring@meta.com&gt;</dc:creator>
    </item>
</channel>
</rss>
