131 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4# Test for port-default priority. Non-IP packets ingress $swp1 and are5# prioritized according to the default priority specified at the port.6# rx_octets_prio_* counters are used to verify the prioritization.7#8# +----------------------------------+9# | H1 |10# | + $h1 |11# | | 192.0.2.1/28 |12# +----|-----------------------------+13# |14# +----|-----------------------------+15# | SW | |16# | + $swp1 |17# | 192.0.2.2/28 |18# | dcb app default-prio <prio> |19# +----------------------------------+20 21ALL_TESTS="22 ping_ipv423 test_defprio24"25 26lib_dir=$(dirname $0)/../../../net/forwarding27 28NUM_NETIFS=229: ${HIT_TIMEOUT:=1000} # ms30source $lib_dir/lib.sh31 32h1_create()33{34 simple_if_init $h1 192.0.2.1/2835}36 37h1_destroy()38{39 simple_if_fini $h1 192.0.2.1/2840}41 42switch_create()43{44 ip link set dev $swp1 up45 ip addr add dev $swp1 192.0.2.2/2846}47 48switch_destroy()49{50 dcb app flush dev $swp1 default-prio51 ip addr del dev $swp1 192.0.2.2/2852 ip link set dev $swp1 down53}54 55setup_prepare()56{57 h1=${NETIFS[p1]}58 swp1=${NETIFS[p2]}59 60 vrf_prepare61 62 h1_create63 switch_create64}65 66cleanup()67{68 pre_cleanup69 70 switch_destroy71 h1_destroy72 73 vrf_cleanup74}75 76ping_ipv4()77{78 ping_test $h1 192.0.2.279}80 81__test_defprio()82{83 local prio_install=$1; shift84 local prio_observe=$1; shift85 local key86 local t187 local i88 89 RET=090 91 dcb app add dev $swp1 default-prio $prio_install92 93 local t0=$(ethtool_stats_get $swp1 rx_frames_prio_$prio_observe)94 mausezahn -q $h1 -d 100m -c 10 -t arp reply95 t1=$(busywait "$HIT_TIMEOUT" until_counter_is ">= $((t0 + 10))" \96 ethtool_stats_get $swp1 rx_frames_prio_$prio_observe)97 98 check_err $? "Default priority $prio_install/$prio_observe: Expected to capture 10 packets, got $((t1 - t0))."99 log_test "Default priority $prio_install/$prio_observe"100 101 dcb app del dev $swp1 default-prio $prio_install102}103 104test_defprio()105{106 local prio107 108 for prio in {0..7}; do109 __test_defprio $prio $prio110 done111 112 dcb app add dev $swp1 default-prio 3113 __test_defprio 0 3114 __test_defprio 1 3115 __test_defprio 2 3116 __test_defprio 4 4117 __test_defprio 5 5118 __test_defprio 6 6119 __test_defprio 7 7120 dcb app del dev $swp1 default-prio 3121}122 123trap cleanup EXIT124 125setup_prepare126setup_wait127 128tests_run129 130exit $EXIT_STATUS131