]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests/net: prepare cmsg_ipv6.sh for ipv4
authorWillem de Bruijn <willemb@google.com>
Tue, 25 Feb 2025 02:23:58 +0000 (21:23 -0500)
committerJakub Kicinski <kuba@kernel.org>
Thu, 27 Feb 2025 02:59:00 +0000 (18:59 -0800)
Move IPV6_TCLASS and IPV6_HOPLIMIT into loops, to be able to use them
for IP_TOS and IP_TTL in a follow-on patch.

Indentation in this file is a mix of four spaces and tabs for double
indents. To minimize code churn, maintain that pattern.

Very small diff if viewing with -w.

Signed-off-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20250225022431.2083926-2-willemdebruijn.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/cmsg_ipv6.sh

index 8bc23fb4c82b71c88c6a0f292e8735b831a5d03f..51132c26e9b55fe0c4fb0e37424817636645934e 100755 (executable)
@@ -64,76 +64,85 @@ for ovr in setsock cmsg both diff; do
 done
 
 # IPV6_TCLASS
-TOS=0x10
-TOS2=0x20
 
-ip -6 -netns $NS rule add tos $TOS lookup 300
-ip -6 -netns $NS route add table 300 prohibit any
+test_dscp() {
+    local -r TOS=0x10
+    local -r TOS2=0x20
 
-for ovr in setsock cmsg both diff; do
-    for p in u i r; do
-       [ $p == "u" ] && prot=UDP
-       [ $p == "i" ] && prot=ICMP
-       [ $p == "r" ] && prot=RAW
+    ip -6 -netns $NS rule add tos $TOS lookup 300
+    ip -6 -netns $NS route add table 300 prohibit any
 
-       [ $ovr == "setsock" ] && m="-C"
-       [ $ovr == "cmsg" ]    && m="-c"
-       [ $ovr == "both" ]    && m="-C $((TOS2)) -c"
-       [ $ovr == "diff" ]    && m="-C $((TOS )) -c"
+    for ovr in setsock cmsg both diff; do
+       for p in u i r; do
+           [ $p == "u" ] && prot=UDP
+           [ $p == "i" ] && prot=ICMP
+           [ $p == "r" ] && prot=RAW
 
-       $NSEXE nohup tcpdump --immediate-mode -p -ni dummy0 -w $TMPF -c 4 2> /dev/null &
-       BG=$!
-       sleep 0.05
+           [ $ovr == "setsock" ] && m="-C"
+           [ $ovr == "cmsg" ]    && m="-c"
+           [ $ovr == "both" ]    && m="-C $((TOS2)) -c"
+           [ $ovr == "diff" ]    && m="-C $((TOS )) -c"
 
-       $NSEXE ./cmsg_sender -6 -p $p $m $((TOS2)) $TGT6 1234
-       check_result $? 0 "TCLASS $prot $ovr - pass"
+           $NSEXE nohup tcpdump --immediate-mode -p -ni dummy0 -w $TMPF -c 4 2> /dev/null &
+           BG=$!
+           sleep 0.05
 
-       while [ -d /proc/$BG ]; do
            $NSEXE ./cmsg_sender -6 -p $p $m $((TOS2)) $TGT6 1234
-       done
+           check_result $? 0 "TCLASS $prot $ovr - pass"
 
-       tcpdump -r $TMPF -v 2>&1 | grep "class $TOS2" >> /dev/null
-       check_result $? 0 "TCLASS $prot $ovr - packet data"
-       rm $TMPF
+           while [ -d /proc/$BG ]; do
+               $NSEXE ./cmsg_sender -6 -p $p $m $((TOS2)) $TGT6 1234
+           done
 
-       [ $ovr == "both" ]    && m="-C $((TOS )) -c"
-       [ $ovr == "diff" ]    && m="-C $((TOS2)) -c"
+           tcpdump -r $TMPF -v 2>&1 | grep "class $TOS2" >> /dev/null
+           check_result $? 0 "TCLASS $prot $ovr - packet data"
+           rm $TMPF
 
-       $NSEXE ./cmsg_sender -6 -p $p $m $((TOS)) -s $TGT6 1234
-       check_result $? 1 "TCLASS $prot $ovr - rejection"
+           [ $ovr == "both" ]    && m="-C $((TOS )) -c"
+           [ $ovr == "diff" ]    && m="-C $((TOS2)) -c"
+
+           $NSEXE ./cmsg_sender -6 -p $p $m $((TOS)) -s $TGT6 1234
+           check_result $? 1 "TCLASS $prot $ovr - rejection"
+       done
     done
-done
+}
 
-# IPV6_HOPLIMIT
-LIM=4
+test_dscp
 
-for ovr in setsock cmsg both diff; do
-    for p in u i r; do
-       [ $p == "u" ] && prot=UDP
-       [ $p == "i" ] && prot=ICMP
-       [ $p == "r" ] && prot=RAW
+# IPV6_HOPLIMIT
+test_hoplimit() {
+    local -r LIM=4
 
-       [ $ovr == "setsock" ] && m="-L"
-       [ $ovr == "cmsg" ]    && m="-l"
-       [ $ovr == "both" ]    && m="-L $LIM -l"
-       [ $ovr == "diff" ]    && m="-L $((LIM + 1)) -l"
+    for ovr in setsock cmsg both diff; do
+       for p in u i r; do
+           [ $p == "u" ] && prot=UDP
+           [ $p == "i" ] && prot=ICMP
+           [ $p == "r" ] && prot=RAW
 
-       $NSEXE nohup tcpdump --immediate-mode -p -ni dummy0 -w $TMPF -c 4 2> /dev/null &
-       BG=$!
-       sleep 0.05
+           [ $ovr == "setsock" ] && m="-L"
+           [ $ovr == "cmsg" ]    && m="-l"
+           [ $ovr == "both" ]    && m="-L $LIM -l"
+           [ $ovr == "diff" ]    && m="-L $((LIM + 1)) -l"
 
-       $NSEXE ./cmsg_sender -6 -p $p $m $LIM $TGT6 1234
-       check_result $? 0 "HOPLIMIT $prot $ovr - pass"
+           $NSEXE nohup tcpdump --immediate-mode -p -ni dummy0 -w $TMPF -c 4 2> /dev/null &
+           BG=$!
+           sleep 0.05
 
-       while [ -d /proc/$BG ]; do
            $NSEXE ./cmsg_sender -6 -p $p $m $LIM $TGT6 1234
-       done
+           check_result $? 0 "HOPLIMIT $prot $ovr - pass"
 
-       tcpdump -r $TMPF -v 2>&1 | grep "hlim $LIM[^0-9]" >> /dev/null
-       check_result $? 0 "HOPLIMIT $prot $ovr - packet data"
-       rm $TMPF
+           while [ -d /proc/$BG ]; do
+               $NSEXE ./cmsg_sender -6 -p $p $m $LIM $TGT6 1234
+           done
+
+           tcpdump -r $TMPF -v 2>&1 | grep "hlim $LIM[^0-9]" >> /dev/null
+           check_result $? 0 "HOPLIMIT $prot $ovr - packet data"
+           rm $TMPF
+       done
     done
-done
+}
+
+test_hoplimit
 
 # IPV6 exthdr
 for p in u i r; do