[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5470E5E0.9070005@cumulusnetworks.com>
Date: Sat, 22 Nov 2014 11:37:04 -0800
From: Roopa Prabhu <roopa@...ulusnetworks.com>
To: Thomas Graf <tgraf@...g.ch>
CC: jiri@...nulli.us, sfeldma@...il.com, jhs@...atatu.com,
bcrl@...ck.org, john.fastabend@...il.com,
stephen@...workplumber.org, linville@...driver.com,
nhorman@...driver.com, nicolas.dichtel@...nd.com,
vyasevic@...hat.com, f.fainelli@...il.com, buytenh@...tstofly.org,
aviadr@...lanox.com, netdev@...r.kernel.org, davem@...emloft.net,
Shrijeet Mukherjee <shm@...ulusnetworks.com>,
gospo@...ulusnetworks.com
Subject: Re: [RFC PATCH 1/4] rtnetlink: new flag NLM_F_HW_OFFLOAD to indicate
kernel object offload to hardware
On 11/22/14, 4:29 AM, Thomas Graf wrote:
> On 11/21/14 at 04:10pm, Roopa Prabhu wrote:
>> On 11/21/14, 3:12 PM, Thomas Graf wrote:
>>> On 11/21/14 at 02:49pm, roopa@...ulusnetworks.com wrote:
>>>> diff --git a/include/uapi/linux/netlink.h b/include/uapi/linux/netlink.h
>>>> index 1a85940..f78522d 100644
>>>> --- a/include/uapi/linux/netlink.h
>>>> +++ b/include/uapi/linux/netlink.h
>>>> @@ -54,6 +54,8 @@ struct nlmsghdr {
>>>> #define NLM_F_ACK 4 /* Reply with ack, with zero or error code */
>>>> #define NLM_F_ECHO 8 /* Echo this request */
>>>> #define NLM_F_DUMP_INTR 16 /* Dump was inconsistent due to sequence change */
>>>> ++#define NLM_F_KERNEL 32 /* This msg is only for the kernel */
>>>> +#define NLM_F_HW_OFFLOAD 64 /* offload this msg to hw */
>>>> /* Modifiers to GET request */
>>>> #define NLM_F_ROOT 0x100 /* specify tree root */
>>> The NLM_F_ flag space applies to all Netlink messages including non
>>> networking bits and is reserved for flags vital to the functioning
>>> of the Netlink protocol itself. I suggest you move this to a
>>> RTNETLINK specific flags space.
>> I did try to add it at a layer lower than the netlink header. But, nothing
>> else fits so well as this :).
>> I did not find a place where i could make it a global flag for just
>> networking objects. As I mention in my patch description,
>> If not here it will be a per subsystem flag/attribute. I can post a patch
>> showing that approach as well.
> Global variables have their appeal ;-) The issue I see with this
> besides polluting a wide namespace is that it is not extendable.
> We get a single bit and if a single bit is not enough we'll start
> adding things in lower layers anyway (as you already do).
>
> I think this should really be an IFF_ flag for net_device so its
> state is exposed to user space as well.
I did start with a IFF_HW_OFFLOAD flag. This is going exactly in the
direction i was thinking it will go. :). I had to start at the top,
hence started with the netlink header first.
Now, going one step lower, It can be a flag or a netlink attribute.
Going with the flag,
Doing a quick survey of all the rtnetlink handlers..(keeping future in
mind)....for the top objects in the current context (link, route, fdb
and neigh)
we can add it in the below flags.
struct ifinfomsg -> ifi_flags
struct ndmsg ->ndm_flags
struct rtmsg -> rtm_flags
If this is preferred .., I can repost the series with these changes.
Thanks,
Roopa
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists