Cong Wang <xiyou.wangc...@gmail.com> writes: > On Thu, Oct 26, 2017 at 2:40 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 >> qdisc operations. >> >> Signed-off-by: Roman Mashak <m...@mojatatu.com> >> --- >> net/sched/sch_api.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c >> index a9ac912..e3e29be 100644 >> --- a/net/sched/sch_api.c >> +++ b/net/sched/sch_api.c >> @@ -859,7 +859,7 @@ static int qdisc_notify(struct net *net, struct sk_buff >> *oskb, >> } >> if (new && !tc_qdisc_dump_ignore(new, false)) { >> if (tc_fill_qdisc(skb, new, clid, portid, n->nlmsg_seq, >> - old ? NLM_F_REPLACE : 0, RTM_NEWQDISC) < 0) >> + n->nlmsg_flags, RTM_NEWQDISC) < 0) > > > Don't you want to change the other tc_fill_qdisc() in the same function > too? ;)
The other tc_fill_qdisc generates RTM_DELQDISC event, in that case netlink flags for user don't matter.