140d269c0SPetr Machata#!/bin/bash 240d269c0SPetr Machata# SPDX-License-Identifier: GPL-2.0 340d269c0SPetr Machata 440d269c0SPetr Machata# Test L3 stats on IP-in-IP GRE tunnel without key. 540d269c0SPetr Machata 640d269c0SPetr Machata# This test uses flat topology for IP tunneling tests. See ipip_lib.sh for more 740d269c0SPetr Machata# details. 840d269c0SPetr Machata 940d269c0SPetr MachataALL_TESTS=" 1040d269c0SPetr Machata ping_ipv4 1140d269c0SPetr Machata test_stats_rx 1240d269c0SPetr Machata test_stats_tx 1340d269c0SPetr Machata" 1440d269c0SPetr MachataNUM_NETIFS=6 1540d269c0SPetr Machatalib_dir=$(dirname "$0") 1640d269c0SPetr Machatasource "$lib_dir"/../../../net/forwarding/lib.sh 1740d269c0SPetr Machatasource "$lib_dir"/../../../net/forwarding/ipip_lib.sh 18*bfc42940SPetr Machatasource "$lib_dir"/../../../net/forwarding/tc_common.sh 1940d269c0SPetr Machata 2040d269c0SPetr Machatasetup_prepare() 2140d269c0SPetr Machata{ 2240d269c0SPetr Machata h1=${NETIFS[p1]} 2340d269c0SPetr Machata ol1=${NETIFS[p2]} 2440d269c0SPetr Machata 2540d269c0SPetr Machata ul1=${NETIFS[p3]} 2640d269c0SPetr Machata ul2=${NETIFS[p4]} 2740d269c0SPetr Machata 2840d269c0SPetr Machata ol2=${NETIFS[p5]} 2940d269c0SPetr Machata h2=${NETIFS[p6]} 3040d269c0SPetr Machata 3140d269c0SPetr Machata ol1mac=$(mac_get $ol1) 3240d269c0SPetr Machata 3340d269c0SPetr Machata forwarding_enable 3440d269c0SPetr Machata vrf_prepare 3540d269c0SPetr Machata h1_create 3640d269c0SPetr Machata h2_create 3740d269c0SPetr Machata sw1_flat_create gre $ol1 $ul1 3840d269c0SPetr Machata sw2_flat_create gre $ol2 $ul2 3940d269c0SPetr Machata ip stats set dev g1a l3_stats on 4040d269c0SPetr Machata ip stats set dev g2a l3_stats on 4140d269c0SPetr Machata} 4240d269c0SPetr Machata 4340d269c0SPetr Machatacleanup() 4440d269c0SPetr Machata{ 4540d269c0SPetr Machata pre_cleanup 4640d269c0SPetr Machata 4740d269c0SPetr Machata ip stats set dev g1a l3_stats off 4840d269c0SPetr Machata ip stats set dev g2a l3_stats off 4940d269c0SPetr Machata 5040d269c0SPetr Machata sw2_flat_destroy $ol2 $ul2 5140d269c0SPetr Machata sw1_flat_destroy $ol1 $ul1 5240d269c0SPetr Machata h2_destroy 5340d269c0SPetr Machata h1_destroy 5440d269c0SPetr Machata 5540d269c0SPetr Machata vrf_cleanup 5640d269c0SPetr Machata forwarding_restore 5740d269c0SPetr Machata} 5840d269c0SPetr Machata 5940d269c0SPetr Machataping_ipv4() 6040d269c0SPetr Machata{ 6140d269c0SPetr Machata RET=0 6240d269c0SPetr Machata 6340d269c0SPetr Machata ping_test $h1 192.0.2.18 " gre flat" 6440d269c0SPetr Machata} 6540d269c0SPetr Machata 6640d269c0SPetr Machatasend_packets_ipv4() 6740d269c0SPetr Machata{ 6840d269c0SPetr Machata # Send 21 packets instead of 20, because the first one might trap and go 6940d269c0SPetr Machata # through the SW datapath, which might not bump the HW counter. 7040d269c0SPetr Machata $MZ $h1 -c 21 -d 20msec -p 100 \ 7140d269c0SPetr Machata -a own -b $ol1mac -A 192.0.2.1 -B 192.0.2.18 \ 7240d269c0SPetr Machata -q -t udp sp=54321,dp=12345 7340d269c0SPetr Machata} 7440d269c0SPetr Machata 7540d269c0SPetr Machatatest_stats() 7640d269c0SPetr Machata{ 7740d269c0SPetr Machata local dev=$1; shift 7840d269c0SPetr Machata local dir=$1; shift 7940d269c0SPetr Machata 8040d269c0SPetr Machata local a 8140d269c0SPetr Machata local b 8240d269c0SPetr Machata 8340d269c0SPetr Machata RET=0 8440d269c0SPetr Machata 8540d269c0SPetr Machata a=$(hw_stats_get l3_stats $dev $dir packets) 8640d269c0SPetr Machata send_packets_ipv4 8740d269c0SPetr Machata b=$(busywait "$TC_HIT_TIMEOUT" until_counter_is ">= $a + 20" \ 8840d269c0SPetr Machata hw_stats_get l3_stats $dev $dir packets) 8940d269c0SPetr Machata check_err $? "Traffic not reflected in the counter: $a -> $b" 9040d269c0SPetr Machata 9140d269c0SPetr Machata log_test "Test $dir packets: $prot" 9240d269c0SPetr Machata} 9340d269c0SPetr Machata 9440d269c0SPetr Machatatest_stats_tx() 9540d269c0SPetr Machata{ 9640d269c0SPetr Machata test_stats g1a tx 9740d269c0SPetr Machata} 9840d269c0SPetr Machata 9940d269c0SPetr Machatatest_stats_rx() 10040d269c0SPetr Machata{ 10140d269c0SPetr Machata test_stats g2a rx 10240d269c0SPetr Machata} 10340d269c0SPetr Machata 10440d269c0SPetr Machatatrap cleanup EXIT 10540d269c0SPetr Machata 10640d269c0SPetr Machatasetup_prepare 10740d269c0SPetr Machatasetup_wait 10840d269c0SPetr Machata 10940d269c0SPetr Machatatests_run 11040d269c0SPetr Machata 11140d269c0SPetr Machataexit $EXIT_STATUS 112