[ovs-dev] [patch net-next RFC 03/12] net: introduce generic switch devices support

Jiri Pirko jiri at resnulli.us
Tue Aug 26 08:34:52 UTC 2014


Sun, Aug 24, 2014 at 01:46:05PM CEST, tgraf at suug.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.



More information about the dev mailing list