From: Stephen Hemminger <stephen@networkplumber.org>
To: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: Paolo Abeni <pabeni@redhat.com>,
netdev@vger.kernel.org, jiri@resnulli.us,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Dave Taht <dave.taht@gmail.com>,
open list <linux-kernel@vger.kernel.org>,
Simon Horman <horms@kernel.org>
Subject: Re: [PATCH net v8 4/6] net/sched: netem: validate slot configuration
Date: Fri, 24 Apr 2026 16:06:09 -0700 [thread overview]
Message-ID: <20260424160609.45ff9a0a@phoenix.local> (raw)
In-Reply-To: <CAM0EoM=mtYFyVJYLRiFULX1hpxvcwpUoTDGJvTyAskyCk_Oehw@mail.gmail.com>
On Fri, 24 Apr 2026 16:17:13 -0400
Jamal Hadi Salim <jhs@mojatatu.com> wrote:
> () ncalls s
>
>
> On Fri, Apr 24, 2026 at 11:07 AM Stephen Hemminger
> <stephen@networkplumber.org> wrote:
> >
> > On Thu, 23 Apr 2026 17:12:15 -0400
> > Jamal Hadi Salim <jhs@mojatatu.com> wrote:
> >
> > > > > This is intended and explicitly explained in the cover letter.
> > > > Jamal, given the uAPI implication, could you please double check that
> > > > the change is fine?
> > > >
> > >
> > > It should be fine; at least iproute2 will never allow the kernel to
> > > receive a negative number.
> > > Stephen brought up the fact that strtod() could return a -ve number
> > > (but at least iproute2 makes sure negative numbers are not carried
> > > forward to the kernel).
> > >
> > > cheers,
> > > jamal
> >
> > Iproute2 blocks negative values kind of by accident.
> > The NEXT_IS_NUMBER() macro looks for digit at start of arg.
> > To hit this you need to either use raw netlink or change NEXT_IS_NUMBER()
> > to NEXT_IS_SIGNED_NUMBER() where slot values are parsed.
>
> For this specific attribute it was intentional:
> ...
> if (get_time64(&slot.dist_jitter, *argv)) { //get_time64 calls
> strtod() which could set dist_jitter -ve
> explain1("slot jitter");
> return -1;
> }
> if (slot.dist_jitter <= 0) { // we reject -ve values
> fprintf(stderr, "Non-positive jitter\n");
> return -1;
> }
>
> cheers,
> jamal
I see no cases where negative time value is a valid input.
Doing audit of netem:
- slot times
parsing rejects -10ms for min delay and -100ms for max delay
- delay
negative value is accepted, but internally acts like 0
- jitter
negative value is rejected (i.e What is "-2s")
- slot distribution delay
same as regular delay, accepted but internally acts like 0
negative jitter is rejected "Non positive jitter"
Gate:
Codel:
- setting negative target, interval or ce_threshold gives huge value
4.29e+03s
Pi:
- setting negative target gets absolute value
Hhf:
- setting negative value gets 4.29e+03s
So I can't see any valid use for negative intervals
next prev parent reply other threads:[~2026-04-24 23:06 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-18 3:19 [PATCH v8 net 0/6] netem: bug fixes Stephen Hemminger
2026-04-18 3:19 ` [PATCH net v8 1/6] net/sched: netem: fix probability gaps in 4-state loss model Stephen Hemminger
2026-04-18 3:19 ` [PATCH net v8 2/6] net/sched: netem: fix queue limit check to include reordered packets Stephen Hemminger
2026-04-21 13:15 ` Simon Horman
2026-04-18 3:19 ` [PATCH net v8 3/6] net/sched: netem: only reseed PRNG when seed is explicitly provided Stephen Hemminger
2026-04-18 3:19 ` [PATCH net v8 4/6] net/sched: netem: validate slot configuration Stephen Hemminger
2026-04-21 13:10 ` Simon Horman
2026-04-23 7:50 ` Paolo Abeni
2026-04-23 21:12 ` Jamal Hadi Salim
2026-04-24 15:07 ` Stephen Hemminger
2026-04-24 20:17 ` Jamal Hadi Salim
2026-04-24 23:06 ` Stephen Hemminger [this message]
2026-04-18 3:19 ` [PATCH net v8 5/6] net/sched: netem: fix slot delay calculation overflow Stephen Hemminger
2026-04-18 3:19 ` [PATCH net v8 6/6] net/sched: netem: check for negative latency and jitter Stephen Hemminger
2026-04-21 13:16 ` Simon Horman
2026-04-28 0:40 ` [PATCH v8 net 0/6] netem: bug fixes patchwork-bot+netdevbpf
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=20260424160609.45ff9a0a@phoenix.local \
--to=stephen@networkplumber.org \
--cc=dave.taht@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=jhs@mojatatu.com \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.