#!/bin/bash # SPDX-License-Identifier: GPL-2.0 # # Verify that FQ has a packet limit per band: # # 1. set the limit to 10 per band # 2. send 20 pkts on band A: verify that 10 are queued, 10 dropped # 3. send 20 pkts on band A: verify that 0 are queued, 20 dropped # 4. send 20 pkts on band B: verify that 10 are queued, 10 dropped # # Send packets with a delay to ensure that previously sent # packets are still queued when later ones are sent. # Use SO_TXTIME for this.
die() { echo"$1"
exit 1
}
# run inside private netns if [[ $# -eq 0 ]]; then
./in_netns.sh "$0" __subprocess
exit fi
ip link add type dummy
ip link set dev dummy0 up
ip -6 addr add fdaa::1/128 dev dummy0
ip -6 route add fdaa::/64 dev dummy0
tc qdisc replace dev dummy0 root handle 1: fq quantum 1514 initial_quantum 1514 limit 10
DELAY=400000
./cmsg_sender -6 -p u -d "${DELAY}" -n 20 fdaa::2 8000
OUT1="$(tc -s qdisc show dev dummy0 | grep '^\ Sent')"
./cmsg_sender -6 -p u -d "${DELAY}" -n 20 fdaa::2 8000
OUT2="$(tc -s qdisc show dev dummy0 | grep '^\ Sent')"
./cmsg_sender -6 -p u -d "${DELAY}" -n 20 -P 7 fdaa::2 8000
OUT3="$(tc -s qdisc show dev dummy0 | grep '^\ Sent')"
# Initial stats will report zero sent, as all packets are still # queued in FQ. Sleep for at least the delay period and see that # twenty are now sent.
sleep 0.6
OUT4="$(tc -s qdisc show dev dummy0 | grep '^\ Sent')"
# Log the output after the test echo"${OUT1}" echo"${OUT2}" echo"${OUT3}" echo"${OUT4}"
# Test the output for expected values echo"${OUT1}" | grep -q '0\ pkt\ (dropped\ 10' || die "unexpected drop count at 1" echo"${OUT2}" | grep -q '0\ pkt\ (dropped\ 30' || die "unexpected drop count at 2" echo"${OUT3}" | grep -q '0\ pkt\ (dropped\ 40' || die "unexpected drop count at 3" echo"${OUT4}" | grep -q '20\ pkt\ (dropped\ 40' || die "unexpected accept count at 4"
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.