Subject: Re: [PATCH net-next 1/2] rtnetlink: add new RTM_GETSTATS message to dump link stats

From: roopa <[email-masked]>
Date: Tue, 15 Mar 2016 23:44:39 -0700

On 3/15/16, 1:20 AM, Nicolas Dichtel wrote:
> Le 15/03/2016 07:30, roopa a écrit :
>> On 3/14/16, 8:00 AM, Nicolas Dichtel wrote:
>>> Le 13/03/2016 02:56, Roopa Prabhu a écrit :
> [snip]
>>>> diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h
>>>> index ca764b5..2bbb300 100644
>>>> --- a/include/uapi/linux/rtnetlink.h
>>>> +++ b/include/uapi/linux/rtnetlink.h
>>>> @@ -139,6 +139,13 @@ enum {
>>>>        RTM_GETNSID = 90,
>>>>    #define RTM_GETNSID RTM_GETNSID
>>>>
>>>> +    RTM_NEWSTATS = 92,
>>>> +#define RTM_NEWSTATS RTM_NEWSTATS
>>>> +    RTM_DELSTATS = 93,
>>>> +#define RTM_DELSTATS RTM_DELSTATS
>>> RTM_DELSTATS is never used.
>>
>> yeah, i had to define it just because rtnetlink_rcv_msg seems to expect all three to be
>> there when it tries to check if it is a get msg. But, i could sure not declare this
>> but make rtnetlink_rcv_msg happy by keeping the GET msg at the right offset.
> Not sure to understand what is the problem.
> Look at RTM_NEWNETCONF/RTM_GETNETCONF, there is no DEL command.

yep, same thing as RTM_NEWNETCONF, there is no DEL but GET becomes +2.
I was trying to say that I can do the same also. will drop DEL and make GET
RTM_NEWSTATS + 2.  will take care of it in v2. thanks.

>
>>>
>>>> +    RTM_GETSTATS = 94,
>>>> +#define RTM_GETSTATS RTM_GETSTATS
>>>> +
>>>>        __RTM_MAX,
>>>>    #define RTM_MAX        (((__RTM_MAX + 3) & ~3) - 1)
>>>>    };
>>>> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
>>>> index d2d9e5e..d1e3d17 100644
>>>> --- a/net/core/rtnetlink.c
>>>> +++ b/net/core/rtnetlink.c
>>> [snip]
>>>> +static noinline size_t if_nlmsg_stats_size(const struct net_device *dev,
>>>> +                       u32 filter_mask)
>>> Why are you using the 'noinline' attribute?
>>
>> I actually picked it up from if_nlmsg_size ...
> If there is no better reason, I suggest to remove it ;-)
> It was introduced by Eric (commit 9e34a5b51684 ("net/core: EXPORT_SYMBOL
> cleanups").
> Eric, do you remember why you add this 'noinline' attribute?
>