On Mon, Oct 30, 2017 at 2:17 PM, Roman Mashak <m...@mojatatu.com> wrote: > Cong Wang <xiyou.wangc...@gmail.com> writes: > >> On Mon, Oct 30, 2017 at 11:07 AM, Roman Mashak <m...@mojatatu.com> wrote: >>> Cong Wang <xiyou.wangc...@gmail.com> writes: >>> >>>> On Sat, Oct 28, 2017 at 8:36 PM, Roman Mashak <m...@mojatatu.com> wrote: >>>>> Cong Wang <xiyou.wangc...@gmail.com> writes: >>>> >>>> Hmm, I thought you use RTM_NEWQDISC+RTM_DELQDISC to >>>> determine it is replacement, no? >>> >>> Create is RTM_NEWQDISC and NLM_F_EXCL|NLM_F_CREATE, replacement is >>> RTM_NEWQDISC and NLM_F_REPLACE in netlink flags. >> >> Is there any reason we can't use RTM_NEWQDISC+RTM_DELQDISC >> rather than NLM_F_REPLACE to determine it is replacement? >> > > I'm not sure this would be valid semantics for replace operation, look at > the rfc3549: > > Additional flag bits for NEW requests > NLM_F_REPLACE Replace existing matching config object with > this request. >
I am not saying NLM_F_REPLACE is not correct, I am saying the RTM_NEWQDISC+RTM_DELQDISC in a same message probably exists for a reason. >> Note, RTM_NEWQDISC+RTM_DELQDISC are put in a same >> message not two. > > Hmm, could you clarify how do you expect to put two event IDs in nlmsg_type? Looking at qdisc_notify(), it is essentially two skb_put() on a same skb, right? So two nlmsghdr in one skb? Or I read it wrong?