Subject: Re: [RFC, VLAN]: Propagate selected feature bits to VLAN devices

From: Patrick McHardy <[email-masked]>
Date: Wed, 21 May 2008 18:28:26 +0200

Herbert Xu wrote:
> Patrick McHardy <[email-masked]> wrote:
>> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
>> index b11e6e1..3be4559 100644
>> --- a/include/linux/netdevice.h
>> +++ b/include/linux/netdevice.h
>> @@ -514,10 +514,11 @@ struct net_device
>> #define NETIF_F_NETNS_LOCAL    8192    /* Does not change network namespaces */
>> #define NETIF_F_MULTI_QUEUE    16384   /* Has multiple TX/RX queues */
>> #define NETIF_F_LRO            32768   /* large receive offload */
>> +#define NETIF_F_VLAN_TSO       65536   /* Supports TSO for VLANs */
> 
> This has the potential to get pretty messy.  How about making a
> driver call back that the VLAN layer can invoke to get the supported
> feature bits for the VLAN device?
> 
> You have to modify the driver to set the bit anyway so could as well
> add a function instead of a bit.

I thought about this myself, my second idea was to add a
mask for feature bits to be propagated. Unless there is a
need for the driver to determine them at runtime, thats
slightly simpler. The driver would do:

dev->vlan_features = NETIF_F_CSUM_ALL | ...

What do you think about this?