On Sat, Oct 28, 2017 at 8:36 PM, Roman Mashak <m...@mojatatu.com> wrote: > 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.
Hmm, I thought you use RTM_NEWQDISC+RTM_DELQDISC to determine it is replacement, no?