The GRO self-test, gro.c, currently constructs IPv6 packets containing a
Hop-by-Hop Options header (IPPROTO_HOPOPTS) to ensure the GRO path
correctly handles IPv6 extension headers.

However, network elements may be configured to drop packets with the
Hop-by-Hop Options header (HBH). This causes the self-test to fail
in environments where such network elements are present.

To improve the robustness and reliability of this test in diverse
network environments, switch from using IPPROTO_HOPOPTS to
IPPROTO_DSTOPTS (Destination Options).

The Destination Options header is less likely to be dropped by
intermediate routers and still serves the core purpose of the test:
validating GRO's handling of an IPv6 extension header. This change
ensures the test can execute successfully without being incorrectly
failed by network policies outside the kernel's control.

Fixes: 7d1575014a63 ("selftests/net: GRO coalesce test")
Reviewed-by: Willem de Bruijn <[email protected]>
Signed-off-by: Anubhav Singh <[email protected]>
---
 tools/testing/selftests/net/gro.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/net/gro.c 
b/tools/testing/selftests/net/gro.c
index 2b1d9f2b3e9e..d8c29fe39c1d 100644
--- a/tools/testing/selftests/net/gro.c
+++ b/tools/testing/selftests/net/gro.c
@@ -754,11 +754,11 @@ static void send_ipv6_exthdr(int fd, struct sockaddr_ll 
*daddr, char *ext_data1,
        static char exthdr_pck[sizeof(buf) + MIN_EXTHDR_SIZE];
 
        create_packet(buf, 0, 0, PAYLOAD_LEN, 0);
-       add_ipv6_exthdr(buf, exthdr_pck, IPPROTO_HOPOPTS, ext_data1);
+       add_ipv6_exthdr(buf, exthdr_pck, IPPROTO_DSTOPTS, ext_data1);
        write_packet(fd, exthdr_pck, total_hdr_len + PAYLOAD_LEN + 
MIN_EXTHDR_SIZE, daddr);
 
        create_packet(buf, PAYLOAD_LEN * 1, 0, PAYLOAD_LEN, 0);
-       add_ipv6_exthdr(buf, exthdr_pck, IPPROTO_HOPOPTS, ext_data2);
+       add_ipv6_exthdr(buf, exthdr_pck, IPPROTO_DSTOPTS, ext_data2);
        write_packet(fd, exthdr_pck, total_hdr_len + PAYLOAD_LEN + 
MIN_EXTHDR_SIZE, daddr);
 }
 
-- 
2.51.1.851.g4ebd6896fd-goog


Reply via email to