public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Jakub Kicinski <kuba@kernel.org>
Cc: netdev@vger.kernel.org
Subject: Re: [PATCH net v2 00/10] netem: fixes and selftests
Date: Sun, 15 Mar 2026 09:09:29 -0700	[thread overview]
Message-ID: <20260315090929.7cf2c132@phoenix.local> (raw)
In-Reply-To: <20260315081953.3ceb7a84@kernel.org>

On Sun, 15 Mar 2026 08:19:53 -0700
Jakub Kicinski <kuba@kernel.org> wrote:

> On Sat, 14 Mar 2026 17:14:04 -0700 Stephen Hemminger wrote:
> > The check_netem_in_tree() restriction added for CVE-2024-45016 rejects
> > valid configurations such as HTB or HFSC trees with netem on multiple
> > branches -- including examples from the netem documentation itself.
> > This has been an open issue for over a year (kernel.org bug #220774).
> > 
> > This series replaces it with a per-CPU recursion guard, restructures
> > dequeue to fix the HFSC eltree corruption, and addresses several
> > additional bugs found during a code audit.  
> 
> # not ok 379 7a01 - NETEM passes traffic with delay
> # Could not match regex pattern. Verify command output:
> # qdisc netem 1: root refcnt 33 limit 1000 delay 1ms seed 151499771072372938
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 380 7b02 - NETEM passes traffic with duplication
> # Could not match regex pattern. Verify command output:
> # qdisc netem 1: root refcnt 33 limit 1000 delay 1ms duplicate 50% seed 4449138859105539433
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 381 7c03 - NETEM passes traffic with loss
> # Could not match regex pattern. Verify command output:
> # qdisc netem 1: root refcnt 33 limit 1000 delay 1ms loss 30% seed 17755509090945397811
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 382 7d04 - NETEM passes traffic with corrupt
> # Could not match regex pattern. Verify command output:
> # qdisc netem 1: root refcnt 33 limit 1000 delay 1ms corrupt 10% seed 15571003730150948945
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 383 7e05 - NETEM passes traffic under HTB with two netem leaves
> # Could not match regex pattern. Verify command output:
> # qdisc htb 1: root refcnt 33 r2q 10 default 0x10 direct_packets_stat 0 direct_qlen 1000
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # qdisc netem 10: parent 1:10 limit 1000 delay 1ms duplicate 25% seed 7229481943258718053
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # qdisc netem 20: parent 1:20 limit 1000 delay 1ms duplicate 25% seed 2614650852791982394
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 384 7f06 - NETEM passes traffic under HFSC with duplication
> # Could not match regex pattern. Verify command output:
> # qdisc hfsc 1: root refcnt 33  default 0x1 
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # qdisc netem 10: parent 1:1 limit 1000 delay 1ms duplicate 25% seed 1742473429681626986
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 385 7a07 - NETEM passes traffic with nested netem
> # Could not match regex pattern. Verify command output:
> # qdisc netem 1: root refcnt 33 limit 1000 delay 1ms seed 959619114654116267
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # qdisc netem 10: parent 1:1 limit 1000 delay 1ms duplicate 10% seed 1402527459214356892
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 386 7b08 - NETEM passes traffic with TBF child
> # Could not match regex pattern. Verify command output:
> # qdisc netem 1: root refcnt 33 limit 1000 delay 1ms seed 3026058286388988065
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # qdisc tbf 10: parent 1:1 rate 1Mbit burst 10Kb lat 50ms 
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 387 7c09 - NETEM passes traffic with all impairments
> # Could not match regex pattern. Verify command output:
> # qdisc netem 1: root refcnt 33 limit 1000 delay 1ms  500us loss 5% duplicate 10% reorder 25% 50% corrupt 1% seed 4173999615992747611 gap 5
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 388 7d0a - NETEM passes traffic with reorder
> # Could not match regex pattern. Verify command output:
> # qdisc netem 1: root refcnt 33 limit 1000 delay 10ms reorder 25% 50% seed 16878270064950901169 gap 5
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 389 7e0b - NETEM passes traffic with slot pacing
> # Could not match regex pattern. Verify command output:
> # qdisc netem 1: root refcnt 33 limit 1000 delay 1ms slot 20ms 40ms packets 5 bytes 1500 seed 12148330044418512905
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 390 7f0c - NETEM passes traffic with rate limiting
> # Could not match regex pattern. Verify command output:
> # qdisc netem 1: root refcnt 33 limit 1000 delay 1ms rate 1Mbit seed 17545598048030611383
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 
> # not ok 391 7a0d - NETEM passes traffic with SFQ child
> # Could not match regex pattern. Verify command output:
> # qdisc netem 1: root refcnt 33 limit 1000 delay 1ms seed 7568266806072117190
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # qdisc sfq 10: parent 1:1 limit 127p quantum 1514b depth 127 divisor 1024 perturb 10sec 
> #  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
> #  backlog 0b 0p requeues 0
> # 


The new tests use scapy like the other qdisc tests, looks like CI is not
setting up the interfaces the same as local test. Is there something needed
elsewhere? The codel test does similar things.

      reply	other threads:[~2026-03-15 16:09 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-15  0:14 [PATCH net v2 00/10] netem: fixes and selftests Stephen Hemminger
2026-03-15  0:14 ` [PATCH net v2 01/10] Revert "net/sched: Restrict conditions for adding duplicating netems to qdisc tree" Stephen Hemminger
2026-03-15  0:14 ` [PATCH net v2 02/10] net/sched: netem: add per-CPU recursion guard for duplication Stephen Hemminger
2026-03-15  0:14 ` [PATCH net v2 03/10] selftests/tc-testing: update netem tests after check_netem_in_tree revert Stephen Hemminger
2026-03-15  0:14 ` [PATCH net v2 04/10] net/sched: netem: restructure dequeue to avoid re-entrancy with child qdisc Stephen Hemminger
2026-03-15  0:14 ` [PATCH net v2 05/10] net/sched: netem: fix probability gaps in 4-state loss model Stephen Hemminger
2026-03-15  0:14 ` [PATCH net v2 06/10] net/sched: netem: fix slot delay calculation overflow Stephen Hemminger
2026-03-15  0:14 ` [PATCH net v2 07/10] net/sched: netem: fix queue limit check to include reordered packets Stephen Hemminger
2026-03-15  0:14 ` [PATCH net v2 08/10] net/sched: netem: null-terminate tfifo linear queue tail Stephen Hemminger
2026-03-15  0:14 ` [PATCH net v2 09/10] net/sched: netem: only reseed PRNG when seed is explicitly provided Stephen Hemminger
2026-03-15  0:14 ` [PATCH net v2 10/10] selftests/tc-testing: add netem configuration and traffic tests Stephen Hemminger
2026-03-15 15:19 ` [PATCH net v2 00/10] netem: fixes and selftests Jakub Kicinski
2026-03-15 16:09   ` Stephen Hemminger [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260315090929.7cf2c132@phoenix.local \
    --to=stephen@networkplumber.org \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox