Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | #!/bin/bash # SPDX-License-Identifier: GPL-2.0 # Test for port-default priority. Non-IP packets ingress $swp1 and are # prioritized according to the default priority specified at the port. # rx_octets_prio_* counters are used to verify the prioritization. # # +----------------------------------+ # | H1 | # | + $h1 | # | | 192.0.2.1/28 | # +----|-----------------------------+ # | # +----|-----------------------------+ # | SW | | # | + $swp1 | # | 192.0.2.2/28 | # | dcb app default-prio <prio> | # +----------------------------------+ ALL_TESTS=" ping_ipv4 test_defprio " lib_dir=$(dirname $0)/../../../net/forwarding NUM_NETIFS=2 : ${HIT_TIMEOUT:=1000} # ms source $lib_dir/lib.sh h1_create() { simple_if_init $h1 192.0.2.1/28 } h1_destroy() { simple_if_fini $h1 192.0.2.1/28 } switch_create() { ip link set dev $swp1 up ip addr add dev $swp1 192.0.2.2/28 } switch_destroy() { dcb app flush dev $swp1 default-prio ip addr del dev $swp1 192.0.2.2/28 ip link set dev $swp1 down } setup_prepare() { h1=${NETIFS[p1]} swp1=${NETIFS[p2]} vrf_prepare h1_create switch_create } cleanup() { pre_cleanup switch_destroy h1_destroy vrf_cleanup } ping_ipv4() { ping_test $h1 192.0.2.2 } __test_defprio() { local prio_install=$1; shift local prio_observe=$1; shift local key local t1 local i RET=0 dcb app add dev $swp1 default-prio $prio_install local t0=$(ethtool_stats_get $swp1 rx_frames_prio_$prio_observe) mausezahn -q $h1 -d 100m -c 10 -t arp reply t1=$(busywait "$HIT_TIMEOUT" until_counter_is ">= $((t0 + 10))" \ ethtool_stats_get $swp1 rx_frames_prio_$prio_observe) check_err $? "Default priority $prio_install/$prio_observe: Expected to capture 10 packets, got $((t1 - t0))." log_test "Default priority $prio_install/$prio_observe" dcb app del dev $swp1 default-prio $prio_install } test_defprio() { local prio for prio in {0..7}; do __test_defprio $prio $prio done dcb app add dev $swp1 default-prio 3 __test_defprio 0 3 __test_defprio 1 3 __test_defprio 2 3 __test_defprio 4 4 __test_defprio 5 5 __test_defprio 6 6 __test_defprio 7 7 dcb app del dev $swp1 default-prio 3 } trap cleanup EXIT setup_prepare setup_wait tests_run exit $EXIT_STATUS |