On Wed, Nov 16, 2016 at 2:16 PM, Roman Mashak <m...@mojatatu.com> wrote: > Userland client should be able to read an event, and reflect it back to > the kernel, therefore it needs to extract complete set of netlink flags. > > For example, this will allow "tc monitor" to distinguish Add and Replace > operations. > > Signed-off-by: Roman Mashak <m...@mojatatu.com> > Signed-off-by: Jamal Hadi Salim <j...@mojatatu.com> > --- > net/sched/cls_api.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c > index 2b2a797..8e93d4a 100644 > --- a/net/sched/cls_api.c > +++ b/net/sched/cls_api.c > @@ -112,7 +112,7 @@ static void tfilter_notify_chain(struct net *net, struct > sk_buff *oskb, > > for (it_chain = chain; (tp = rtnl_dereference(*it_chain)) != NULL; > it_chain = &tp->next) > - tfilter_notify(net, oskb, n, tp, 0, event, false); > + tfilter_notify(net, oskb, n, tp, n->nlmsg_flags, event, > false);
I must miss something, why does it make sense to pass n->nlmsg_flags as 'fh' to tfilter_notify()?? > } > > /* Select new prio value from the range, managed by kernel. */ > @@ -430,7 +430,8 @@ static int tfilter_notify(struct net *net, struct sk_buff > *oskb, > if (!skb) > return -ENOBUFS; > > - if (tcf_fill_node(net, skb, tp, fh, portid, n->nlmsg_seq, 0, event) > <= 0) { > + if (tcf_fill_node(net, skb, tp, fh, portid, n->nlmsg_seq, > + n->nlmsg_flags, event) <= 0) { This part makes sense.