[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140826083452.GR1878@nanopsycho.lan>
Date: Tue, 26 Aug 2014 10:34:52 +0200
From: Jiri Pirko <jiri@...nulli.us>
To: Thomas Graf <tgraf@...g.ch>
Cc: netdev@...r.kernel.org, davem@...emloft.net, nhorman@...driver.com,
andy@...yhouse.net, dborkman@...hat.com, ogerlitz@...lanox.com,
jesse@...ira.com, pshelar@...ira.com, azhou@...ira.com,
ben@...adent.org.uk, stephen@...workplumber.org,
jeffrey.t.kirsher@...el.com, vyasevic@...hat.com,
xiyou.wangcong@...il.com, john.r.fastabend@...el.com,
edumazet@...gle.com, jhs@...atatu.com, sfeldma@...ulusnetworks.com,
f.fainelli@...il.com, roopa@...ulusnetworks.com,
linville@...driver.com, dev@...nvswitch.org, jasowang@...hat.com,
ebiederm@...ssion.com, nicolas.dichtel@...nd.com,
ryazanov.s.a@...il.com, buytenh@...tstofly.org,
aviadr@...lanox.com, nbd@...nwrt.org, alexei.starovoitov@...il.com,
Neil.Jerram@...aswitch.com, ronye@...lanox.com
Subject: Re: [patch net-next RFC 03/12] net: introduce generic switch devices
support
Sun, Aug 24, 2014 at 01:46:05PM CEST, tgraf@...g.ch wrote:
>On 08/21/14 at 06:18pm, Jiri Pirko wrote:
>> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
>> index 39294b9..8b5d14c 100644
>> --- a/include/linux/netdevice.h
>> +++ b/include/linux/netdevice.h
>> @@ -49,6 +49,8 @@
>>
>> #include <linux/netdev_features.h>
>> #include <linux/neighbour.h>
>> +#include <linux/sw_flow.h>
>> +
>> #include <uapi/linux/netdevice.h>
>>
>> struct netpoll_info;
>> @@ -997,6 +999,24 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev,
>> + * int (*ndo_swdev_flow_insert)(struct net_device *dev,
>> + * const struct sw_flow *flow);
>> + * Called to insert a flow into switch device. If driver does
>> + * not implement this, it is assumed that the hw does not have
>> + * a capability to work with flows.
>
>I asume you are planning to add an additional expandable struct
>paramter to handle insertion parameters when the first is introduced
>to avoid requiring to touch every driver every time.
Sure. That is the way to go.
>
>> +/**
>> + * swdev_flow_insert - Insert a flow into switch
>> + * @dev: port device
>> + * @flow: flow descriptor
>> + *
>> + * Insert a flow into switch this port is part of.
>> + */
>> +int swdev_flow_insert(struct net_device *dev, const struct sw_flow *flow)
>> +{
>> + const struct net_device_ops *ops = dev->netdev_ops;
>> +
>> + print_flow(flow, dev, "insert");
>> + if (!ops->ndo_swdev_flow_insert)
>> + return -EOPNOTSUPP;
>> + WARN_ON(!ops->ndo_swdev_get_id);
>> + BUG_ON(!flow->actions);
>> + return ops->ndo_swdev_flow_insert(dev, flow);
>> +}
>> +EXPORT_SYMBOL(swdev_flow_insert);
>
>Splitting the flow specific API into a separate file (maybe
>swdev_flow.c?) might help resolve some of the concerns around the
>focus on flows. It would make it clear that it's one of multiple
>models to be supported.
I understand your point. But the file is tiny as it is. I would keep all
in one file for now.
--
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