* [VLAN]: Use bitmask of feature flags instead of seperate feature bits
@ 2008-05-23 7:02 Patrick McHardy
2008-05-23 7:09 ` Herbert Xu
0 siblings, 1 reply; 6+ messages in thread
From: Patrick McHardy @ 2008-05-23 7:02 UTC (permalink / raw)
To: David S. Miller; +Cc: Linux Netdev List, Peter P Waskiewicz Jr, Herbert Xu
[-- Attachment #1: Type: text/plain, Size: 254 bytes --]
Change the NETIF_F_VLAN flags to a bitmask of supported features,
as discussed with Herbert.
Tested by adding
+ netdev->vlan_features |= NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_SG | \
+ NETIF_F_ALL_CSUM;
+
to e1000.
[-- Attachment #2: x --]
[-- Type: text/plain, Size: 3639 bytes --]
commit db2b989176f0e89f669ad8df34b2793ebbf0ab58
Author: Patrick McHardy <kaber@trash.net>
Date: Fri May 23 08:33:37 2008 +0200
[VLAN]: Use bitmask of feature flags instead of seperate feature bits
Herbert Xu points out that the use of seperate feature bits for features
to be propagated to VLAN devices is going to get messy real soon.
Replace the VLAN feature bits by a bitmask of feature flags to be
propagated and restore the old GSO_SHIFT/MASK values.
Signed-off-by: Patrick McHardy <kaber@trash.net>
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 2b02664..f27fd20 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -514,12 +514,10 @@ 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 */
-#define NETIF_F_VLAN_CSUM 131072 /* Supports TX checksumming for VLANs */
/* Segmentation offload features */
-#define NETIF_F_GSO_SHIFT 20
-#define NETIF_F_GSO_MASK 0xfff00000
+#define NETIF_F_GSO_SHIFT 16
+#define NETIF_F_GSO_MASK 0xffff0000
#define NETIF_F_TSO (SKB_GSO_TCPV4 << NETIF_F_GSO_SHIFT)
#define NETIF_F_UFO (SKB_GSO_UDP << NETIF_F_GSO_SHIFT)
#define NETIF_F_GSO_ROBUST (SKB_GSO_DODGY << NETIF_F_GSO_SHIFT)
@@ -747,6 +745,9 @@ struct net_device
/* rtnetlink link ops */
const struct rtnl_link_ops *rtnl_link_ops;
+ /* VLAN feature mask */
+ unsigned long vlan_features;
+
/* for setting kernel sock attribute on TCP connection setup */
#define GSO_MAX_SIZE 65536
unsigned int gso_max_size;
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index 5196130..ab2225d 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -387,14 +387,8 @@ static void vlan_transfer_features(struct net_device *dev,
{
unsigned long old_features = vlandev->features;
- if (dev->features & NETIF_F_VLAN_TSO) {
- vlandev->features &= ~VLAN_TSO_FEATURES;
- vlandev->features |= dev->features & VLAN_TSO_FEATURES;
- }
- if (dev->features & NETIF_F_VLAN_CSUM) {
- vlandev->features &= ~NETIF_F_ALL_CSUM;
- vlandev->features |= dev->features & NETIF_F_ALL_CSUM;
- }
+ vlandev->features &= ~dev->vlan_features;
+ vlandev->features |= dev->features & dev->vlan_features;
if (old_features != vlandev->features)
netdev_features_change(vlandev);
diff --git a/net/8021q/vlan.h b/net/8021q/vlan.h
index 7962569..5229a72 100644
--- a/net/8021q/vlan.h
+++ b/net/8021q/vlan.h
@@ -7,8 +7,6 @@
#define VLAN_GRP_HASH_SIZE (1 << VLAN_GRP_HASH_SHIFT)
#define VLAN_GRP_HASH_MASK (VLAN_GRP_HASH_SIZE - 1)
-#define VLAN_TSO_FEATURES (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_SG)
-
/* Find a VLAN device by the MAC address of its Ethernet device, and
* it's VLAN ID. The default configuration is to have VLAN's scope
* to be box-wide, so the MAC will be ignored. The mac will only be
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index b1cfbaa..5d055c2 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -663,10 +663,7 @@ static int vlan_dev_init(struct net_device *dev)
(1<<__LINK_STATE_DORMANT))) |
(1<<__LINK_STATE_PRESENT);
- if (real_dev->features & NETIF_F_VLAN_TSO)
- dev->features |= real_dev->features & VLAN_TSO_FEATURES;
- if (real_dev->features & NETIF_F_VLAN_CSUM)
- dev->features |= real_dev->features & NETIF_F_ALL_CSUM;
+ dev->features |= real_dev->features & real_dev->vlan_features;
/* ipv6 shared card related stuff */
dev->dev_id = real_dev->dev_id;
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [VLAN]: Use bitmask of feature flags instead of seperate feature bits
2008-05-23 7:02 [VLAN]: Use bitmask of feature flags instead of seperate feature bits Patrick McHardy
@ 2008-05-23 7:09 ` Herbert Xu
2008-05-23 7:17 ` Waskiewicz Jr, Peter P
2008-05-23 7:30 ` David Miller
0 siblings, 2 replies; 6+ messages in thread
From: Herbert Xu @ 2008-05-23 7:09 UTC (permalink / raw)
To: Patrick McHardy; +Cc: David S. Miller, Linux Netdev List, Peter P Waskiewicz Jr
On Fri, May 23, 2008 at 09:02:39AM +0200, Patrick McHardy wrote:
>
> [VLAN]: Use bitmask of feature flags instead of seperate feature bits
>
> Herbert Xu points out that the use of seperate feature bits for features
> to be propagated to VLAN devices is going to get messy real soon.
> Replace the VLAN feature bits by a bitmask of feature flags to be
> propagated and restore the old GSO_SHIFT/MASK values.
>
> Signed-off-by: Patrick McHardy <kaber@trash.net>
Looks great Patrick, thanks!
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 6+ messages in thread* RE: [VLAN]: Use bitmask of feature flags instead of seperate feature bits
2008-05-23 7:09 ` Herbert Xu
@ 2008-05-23 7:17 ` Waskiewicz Jr, Peter P
2008-05-23 7:21 ` David Miller
2008-05-23 7:30 ` David Miller
1 sibling, 1 reply; 6+ messages in thread
From: Waskiewicz Jr, Peter P @ 2008-05-23 7:17 UTC (permalink / raw)
To: Herbert Xu, Patrick McHardy; +Cc: David S. Miller, Linux Netdev List
> On Fri, May 23, 2008 at 09:02:39AM +0200, Patrick McHardy wrote:
> >
> > [VLAN]: Use bitmask of feature flags instead of
> seperate feature
> > bits
> >
> > Herbert Xu points out that the use of seperate feature
> bits for features
> > to be propagated to VLAN devices is going to get messy
> real soon.
> > Replace the VLAN feature bits by a bitmask of feature
> flags to be
> > propagated and restore the old GSO_SHIFT/MASK values.
> >
> > Signed-off-by: Patrick McHardy <kaber@trash.net>
>
> Looks great Patrick, thanks!
>
> Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
>
> Cheers,
> --
> Visit Openswan at http://www.openswan.org/
> Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
> Home Page: http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Agreed. It looks great, and I'll also test it on ixgbe tomorrow
morning.
Cheers,
-PJ Waskiewicz
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [VLAN]: Use bitmask of feature flags instead of seperate feature bits
2008-05-23 7:09 ` Herbert Xu
2008-05-23 7:17 ` Waskiewicz Jr, Peter P
@ 2008-05-23 7:30 ` David Miller
2008-05-23 17:38 ` Waskiewicz Jr, Peter P
1 sibling, 1 reply; 6+ messages in thread
From: David Miller @ 2008-05-23 7:30 UTC (permalink / raw)
To: herbert; +Cc: kaber, netdev, peter.p.waskiewicz.jr
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: Fri, 23 May 2008 17:09:45 +1000
> On Fri, May 23, 2008 at 09:02:39AM +0200, Patrick McHardy wrote:
> >
> > [VLAN]: Use bitmask of feature flags instead of seperate feature bits
> >
> > Herbert Xu points out that the use of seperate feature bits for features
> > to be propagated to VLAN devices is going to get messy real soon.
> > Replace the VLAN feature bits by a bitmask of feature flags to be
> > propagated and restore the old GSO_SHIFT/MASK values.
> >
> > Signed-off-by: Patrick McHardy <kaber@trash.net>
>
> Looks great Patrick, thanks!
>
> Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Applied and pushed out to net-2.6, thanks everyone!
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [VLAN]: Use bitmask of feature flags instead of seperate feature bits
2008-05-23 7:30 ` David Miller
@ 2008-05-23 17:38 ` Waskiewicz Jr, Peter P
0 siblings, 0 replies; 6+ messages in thread
From: Waskiewicz Jr, Peter P @ 2008-05-23 17:38 UTC (permalink / raw)
To: David Miller, herbert; +Cc: kaber, netdev
> > On Fri, May 23, 2008 at 09:02:39AM +0200, Patrick McHardy wrote:
> > >
> > > [VLAN]: Use bitmask of feature flags instead of
> seperate feature
> > > bits
> > >
> > > Herbert Xu points out that the use of seperate
> feature bits for features
> > > to be propagated to VLAN devices is going to get
> messy real soon.
> > > Replace the VLAN feature bits by a bitmask of feature
> flags to be
> > > propagated and restore the old GSO_SHIFT/MASK values.
> > >
> > > Signed-off-by: Patrick McHardy <kaber@trash.net>
> >
> > Looks great Patrick, thanks!
> >
> > Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
>
> Applied and pushed out to net-2.6, thanks everyone!
Just to close the loop, also tested on ixgbe without issue.
Cheers,
-PJ Waskiewicz
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-05-23 17:38 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-23 7:02 [VLAN]: Use bitmask of feature flags instead of seperate feature bits Patrick McHardy
2008-05-23 7:09 ` Herbert Xu
2008-05-23 7:17 ` Waskiewicz Jr, Peter P
2008-05-23 7:21 ` David Miller
2008-05-23 7:30 ` David Miller
2008-05-23 17:38 ` Waskiewicz Jr, Peter P
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).