On Thu, Nov 16, 2023 at 03:34:43PM -0500, Willem de Bruijn wrote: > From: Willem de Bruijn <willemb@xxxxxxxxxx> > > Commit 29f834aa326e ("net_sched: sch_fq: add 3 bands and WRR > scheduling") introduces multiple traffic bands, and per-band maximum > packet count. > > Per-band limits ensures that packets in one class cannot fill the > entire qdisc and so cause DoS to the traffic in the other classes. > > Verify this behavior: > 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 > > Packets must remain queued for a period to trigger this behavior. > Use SO_TXTIME to store packets for 100 msec. > > The test reuses existing upstream test infra. The script is a fork of > cmsg_time.sh. The scripts call cmsg_sender. > > The test extends cmsg_sender with two arguments: > > * '-P' SO_PRIORITY > There is a subtle difference between IPv4 and IPv6 stack behavior: > PF_INET/IP_TOS sets IP header bits and sk_priority > PF_INET6/IPV6_TCLASS sets IP header bits BUT NOT sk_priority > > * '-n' num pkts > Send multiple packets in quick succession. > I first attempted a for loop in the script, but this is too slow in > virtualized environments, causing flakiness as the 100ms timeout is > reached and packets are dequeued. > > Also do not wait for timestamps to be queued unless timestamps are > requested. > > Signed-off-by: Willem de Bruijn <willemb@xxxxxxxxxx> Thanks Willem, this looks nice and clean to me. Reviewed-by: Simon Horman <horms@xxxxxxxxxx>