Wed, Oct 24, 2018 at 05:32:49PM CEST, dsah...@kernel.org wrote: >From: David Ahern <dsah...@gmail.com> > >Marco reported an error with hfsc: >root@Calimero:~# tc qdisc add dev eth0 root handle 1:0 hfsc default 1 >Error: Attribute failed policy validation. > >Apparently a few implementations pass TCA_OPTIONS as a binary instead >of nested attribute, so drop TCA_OPTIONS from the policy.
Yeah, this is nice example of a case, where I think it wouldn't hurt to be a bit more strict. Apparently, the userspace app is buggy. It should be fixed. Note that I'm aware of the bw compatibility. > >Fixes: 8b4c3cdd9dd8 ("net: sched: Add policy validation for tc attributes") >Reported-by: Marco Berizzi <pupi...@libero.it> >Signed-off-by: David Ahern <dsah...@gmail.com> >--- > net/sched/sch_api.c | 1 - > 1 file changed, 1 deletion(-) > >diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c >index 3dc0acf54245..be7cd140b2a3 100644 >--- a/net/sched/sch_api.c >+++ b/net/sched/sch_api.c >@@ -1309,7 +1309,6 @@ check_loop_fn(struct Qdisc *q, unsigned long cl, struct >qdisc_walker *w) > > const struct nla_policy rtm_tca_policy[TCA_MAX + 1] = { > [TCA_KIND] = { .type = NLA_STRING }, >- [TCA_OPTIONS] = { .type = NLA_NESTED }, A future developer might add this again. A comment why not would be good here. > [TCA_RATE] = { .type = NLA_BINARY, > .len = sizeof(struct tc_estimator) }, > [TCA_STAB] = { .type = NLA_NESTED }, >-- >2.11.0 >