[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <85h8ucgv1b.fsf@mojatatu.com>
Date: Thu, 02 Nov 2017 18:44:48 -0400
From: Roman Mashak <mrv@...atatu.com>
To: Cong Wang <xiyou.wangcong@...il.com>
Cc: David Miller <davem@...emloft.net>,
Linux Kernel Network Developers <netdev@...r.kernel.org>,
Jamal Hadi Salim <jhs@...atatu.com>,
Jiri Pirko <jiri@...nulli.us>
Subject: Re: [PATCH net-next 1/1] net sched qdisc: pass netlink message flags in event notification
Cong Wang <xiyou.wangcong@...il.com> writes:
> On Mon, Oct 30, 2017 at 2:17 PM, Roman Mashak <mrv@...atatu.com> wrote:
>> Cong Wang <xiyou.wangcong@...il.com> writes:
>>
>>> On Mon, Oct 30, 2017 at 11:07 AM, Roman Mashak <mrv@...atatu.com> wrote:
>>>> Cong Wang <xiyou.wangcong@...il.com> writes:
>>>>
>>>>> On Sat, Oct 28, 2017 at 8:36 PM, Roman Mashak <mrv@...atatu.com> wrote:
>>>>>> Cong Wang <xiyou.wangcong@...il.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?
So there will be two netlink messages in a single skb, and the user
receives two events. But apparently this only happens when a new
_egress_ qdisc is being added and the default egress qdisc is deleted.
Powered by blists - more mailing lists