From: Jamal Hadi Salim <jhs@mojatatu.com>
To: Daniel Borkmann <daniel@iogearbox.net>, stephen@networkplumber.org
Cc: tgraf@suug.ch, netdev@vger.kernel.org
Subject: Re: [PATCH iproute2 -next] ingress, clsact: don't add TCA_OPTIONS to nl msg
Date: Tue, 17 May 2016 07:54:30 -0400 [thread overview]
Message-ID: <573B0676.30500@mojatatu.com> (raw)
In-Reply-To: <192c686bb5e277b9552fe1e5c39b14bed520dddd.1463329895.git.daniel@iogearbox.net>
On 16-05-15 12:36 PM, Daniel Borkmann wrote:
> In ingress and clsact qdisc TCA_OPTIONS are ignored, since it's
> parameterless. In tc, we add an empty addattr_l(... TCA_OPTIONS,
> NULL, 0) to the netlink message nevertheless. This has the
> side effect that when someone tries a 'tc qdisc replace' and
> already an existing such qdisc is present, tc fails with
> EINVAL here.
>
> Reason is that in the kernel, this invokes qdisc_change() when
> such requested qdisc is already present. When TCA_OPTIONS are
> passed to modify parameters, it looks whether qdisc implements
> .change() callback, and if not present (like in both cases here)
> it returns with error. Rather than adding an empty stub to the
> kernel that ignores TCA_OPTIONS again, just don't add TCA_OPTIONS
> to the netlink message in the first place.
>
> Before:
>
> # tc qdisc replace dev foo clsact # first try
> # tc qdisc replace dev foo clsact # second one
> RTNETLINK answers: Invalid argument
>
> After:
>
> # tc qdisc replace dev foo clsact
> # tc qdisc replace dev foo clsact
> # tc qdisc replace dev foo clsact
>
> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
I see need for correctness but was curious of use case
that made you even look at this ;->
cheers,
jamal
next prev parent reply other threads:[~2016-05-17 11:54 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-15 16:36 [PATCH iproute2 -next] ingress, clsact: don't add TCA_OPTIONS to nl msg Daniel Borkmann
2016-05-16 18:22 ` Stephen Hemminger
2016-05-17 11:54 ` Jamal Hadi Salim [this message]
2016-05-17 13:10 ` Daniel Borkmann
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=573B0676.30500@mojatatu.com \
--to=jhs@mojatatu.com \
--cc=daniel@iogearbox.net \
--cc=netdev@vger.kernel.org \
--cc=stephen@networkplumber.org \
--cc=tgraf@suug.ch \
/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.