* Re: [PATCH net-next] bnx2x: dont use netdev_alloc_skb()
From: David Miller @ 2010-10-14 17:39 UTC (permalink / raw)
To: vladz; +Cc: eric.dumazet, therbert, netdev, mchan, eilong
In-Reply-To: <8628FE4E7912BF47A96AE7DD7BAC0AADDDEE4282DD@SJEXCHCCR02.corp.ad.broadcom.com>
From: "Vladislav Zolotarov" <vladz@broadcom.com>
Date: Tue, 12 Oct 2010 02:12:41 -0700
> Dave, if it can wait till tomorrow, I'd like to ask u to wait for Eilon's
> final ACK.
Ok, but it is two days later now :-)
^ permalink raw reply
* [GIT] Networking
From: David Miller @ 2010-10-14 17:14 UTC (permalink / raw)
To: torvalds; +Cc: akpm, netdev, linux-kernel
One last push before heading off to Spain for the netfilter workshop:
1) r8169 does 16K allocations using GFP_ATOMIC during resume,
which makes resume fail frequently. Use dma_*() interfaces
and GFP_KERNEL where possible.
From Stanislaw Gruszka.
2) b44 and fec driver mis-manage initial carrier state, breaking NFS
root mounts and similar, from Paul Fertser and Oskar Schirmer.
3) Kernel heap leak to userspace in privileged ethtool ops, fix from
Kees Cook.
4) Several use-after free fixes in ATM and wimax from Jiri Slaby.
5) Fixed PHY support regressed upon conversion to phylib in FEC
driver, fix from Greg Ungerer.
6) ehea sets CHECKSUM_UNNECESSARY erroneously on non-TCP/UDP packets,
fix from Breno Leitao.
7) TG3 rx_dropped accounting regressed unintentionally, fix from Eric
Dumazet.
Please pull, thanks a lot!
The following changes since commit 53eeb64e808971207350386121f4bab12fa2f45f:
Linus Torvalds (1):
Merge branch 'fixes' of git://git.kernel.org/.../djbw/async_tx
are available in the git repository at:
master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6.git master
Breno Leitao (1):
ehea: Fix a checksum issue on the receive path
Eric Dumazet (1):
tg3: restore rx_dropped accounting
Greg Ungerer (1):
net: allow FEC driver to use fixed PHY support
Jiri Slaby (4):
ATM: solos-pci, remove use after free
ATM: mpc, fix use after free
ATM: iphase, remove sleep-inside-atomic
NET: wimax, fix use after free
Kees Cook (1):
net: clear heap allocations for privileged ethtool actions
Oskar Schirmer (1):
net/fec: carrier off initially to avoid root mount failure
Paul Fertser (1):
b44: fix carrier detection on bind
Stanislaw Gruszka (2):
r8169: allocate with GFP_KERNEL flag when able to sleep
r8169: use device model DMA API
drivers/atm/iphase.c | 6 ----
drivers/atm/iphase.h | 2 +-
drivers/atm/solos-pci.c | 8 +++--
drivers/net/b44.c | 4 +-
drivers/net/ehea/ehea_main.c | 9 +++++-
drivers/net/ehea/ehea_qmr.h | 1 +
drivers/net/fec.c | 44 +++++++++++++++++++---------
drivers/net/r8169.c | 65 ++++++++++++++++++++++-------------------
drivers/net/tg3.c | 6 ++-
drivers/net/tg3.h | 2 +-
drivers/net/wimax/i2400m/rx.c | 26 ++++++++--------
net/atm/mpc.c | 2 +-
net/core/ethtool.c | 6 ++--
13 files changed, 104 insertions(+), 77 deletions(-)
^ permalink raw reply
* Re: [PATCH 2.6.35-rc6] net-next: Add multiqueue support to vmxnet3 driver
From: Ben Hutchings @ 2010-10-14 16:31 UTC (permalink / raw)
To: Stephen Hemminger, Shreyas Bhatewara; +Cc: netdev, pv-drivers, linux-kernel
In-Reply-To: <20101013145732.7d69d0f3@nehalam>
On Wed, 2010-10-13 at 14:57 -0700, Stephen Hemminger wrote:
> On Wed, 13 Oct 2010 14:47:05 -0700 (PDT)
> Shreyas Bhatewara <sbhatewara@vmware.com> wrote:
>
> > #ifdef VMXNET3_RSS
> > +static unsigned int num_rss_entries;
> > +#define VMXNET3_MAX_DEVICES 10
> > +
> > +static int rss_ind_table[VMXNET3_MAX_DEVICES *
> > + VMXNET3_RSS_IND_TABLE_SIZE + 1] = {
> > + [0 ... VMXNET3_MAX_DEVICES * VMXNET3_RSS_IND_TABLE_SIZE] = -1 };
> > +#endif
> > +static int num_tqs[VMXNET3_MAX_DEVICES + 1] = {
> > + [0 ... VMXNET3_MAX_DEVICES] = 1 };
> > +static int num_rqs[VMXNET3_MAX_DEVICES + 1] = {
> > + [0 ... VMXNET3_MAX_DEVICES] = 1 };
> > +static int share_tx_intr[VMXNET3_MAX_DEVICES + 1] = {
> > + [0 ... VMXNET3_MAX_DEVICES] = 0 };
> > +static int buddy_intr[VMXNET3_MAX_DEVICES + 1] = {
> > + [0 ... VMXNET3_MAX_DEVICES] = 1 };
> > +
> > +static unsigned int num_adapters;
> > +module_param_array(share_tx_intr, int, &num_adapters, 0400);
> > +MODULE_PARM_DESC(share_tx_intr, "Share one IRQ among all tx queue completions. "
> > + "Comma separated list of 1s and 0s - one for each NIC. "
> > + "1 to share, 0 to not, default is 0");
> > +module_param_array(buddy_intr, int, &num_adapters, 0400);
> > +MODULE_PARM_DESC(buddy_intr, "Share one IRQ among corresponding tx and rx "
> > + "queues. Comma separated list of 1s and 0s - one for each "
> > + "NIC. 1 to share, 0 to not, default is 1");
> > +module_param_array(num_tqs, int, &num_adapters, 0400);
> > +MODULE_PARM_DESC(num_tqs, "Number of transmit queues in each adapter. Comma "
> > + "separated list of integers. Setting this to 0 makes number"
> > + " of queues same as number of CPUs. Default is 1.");
> > +
> > +#ifdef VMXNET3_RSS
> > +module_param_array(rss_ind_table, int, &num_rss_entries, 0400);
> > +MODULE_PARM_DESC(rss_ind_table, "RSS Indirection table. Number of entries "
> > + "per NIC should be 32. Each integer in a comma separated list"
> > + " is an rx queue number starting with 0. Repeat the same for"
> > + " all NICs.");
> > +module_param_array(num_rqs, int, &num_adapters, 0400);
> > +MODULE_PARM_DESC(num_rqs, "Number of receive queues in each adapter. Comma "
> > + " separated list of integers. Setting this to 0 makes number"
> > + " of queues same as number of CPUs. Default is 1.");
>
> Module parameters are not right for this. They lead to different API
> for interacting with each driver vendor. Is there a another better API?
> Does it have to be this tweakable in a production environment.
The ethtool commands ETHTOOL_{G,S}RXFHINDIR cover the RSS indirection
table. These are new in 2.6.36 but already supported in the ethtool
utility.
As for numbers of queues and association of their completions with
interrupts, we currently have nothing except ETHTOOL_GRXRINGS to get the
number of RX queues. I did post a tentative definition of an ethtool
interface for this in
<http://article.gmane.org/gmane.linux.network/172386> though it wouldn't
provide quite as much control as these module parameters. It is also
significantly more difficult to support changing numbers of queues after
an interface has been created, and I have not yet attempted to implement
the 'set' command myself.
Ben.
--
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply
* [PATCH net-next] fib_hash: embed initial hash table in fn_zone
From: Eric Dumazet @ 2010-10-14 16:24 UTC (permalink / raw)
To: David Miller; +Cc: netdev
While looking for false sharing problems, I noticed
sizeof(struct fn_zone) was small (28 bytes) and possibly sharing a cache
line with an often written kernel structure.
Most of the time, fn_zone uses its initial hash table of 16 slots.
We can avoid the false sharing problem by embedding this initial hash
table in fn_zone itself, so that sizeof(fn_zone) > L1_CACHE_BYTES
We did a similar optimization in commit a6501e080c (Reduce memory needs
and speedup lookups)
Add a fz_revorder field to speedup fn_hash() a bit.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
---
net/ipv4/fib_hash.c | 50 ++++++++++++++++++------------------------
1 files changed, 22 insertions(+), 28 deletions(-)
diff --git a/net/ipv4/fib_hash.c b/net/ipv4/fib_hash.c
index 83cca68..0e14dbd 100644
--- a/net/ipv4/fib_hash.c
+++ b/net/ipv4/fib_hash.c
@@ -54,23 +54,23 @@ struct fib_node {
struct fib_alias fn_embedded_alias;
};
+#define EMBEDDED_HASH_SIZE (L1_CACHE_BYTES / sizeof(struct hlist_head))
+
struct fn_zone {
struct fn_zone *fz_next; /* Next not empty zone */
struct hlist_head *fz_hash; /* Hash table pointer */
- int fz_nent; /* Number of entries */
-
- int fz_divisor; /* Hash divisor */
u32 fz_hashmask; /* (fz_divisor - 1) */
-#define FZ_HASHMASK(fz) ((fz)->fz_hashmask)
- int fz_order; /* Zone order */
- __be32 fz_mask;
+ u8 fz_order; /* Zone order (0..32) */
+ u8 fz_revorder; /* 32 - fz_order */
+ __be32 fz_mask; /* inet_make_mask(order) */
#define FZ_MASK(fz) ((fz)->fz_mask)
-};
-/* NOTE. On fast computers evaluation of fz_hashmask and fz_mask
- * can be cheaper than memory lookup, so that FZ_* macros are used.
- */
+ struct hlist_head fz_embedded_hash[EMBEDDED_HASH_SIZE];
+
+ int fz_nent; /* Number of entries */
+ int fz_divisor; /* Hash size (mask+1) */
+};
struct fn_hash {
struct fn_zone *fn_zones[33];
@@ -79,11 +79,11 @@ struct fn_hash {
static inline u32 fn_hash(__be32 key, struct fn_zone *fz)
{
- u32 h = ntohl(key)>>(32 - fz->fz_order);
+ u32 h = ntohl(key) >> fz->fz_revorder;
h ^= (h>>20);
h ^= (h>>10);
h ^= (h>>5);
- h &= FZ_HASHMASK(fz);
+ h &= fz->fz_hashmask;
return h;
}
@@ -150,11 +150,11 @@ static void fn_rehash_zone(struct fn_zone *fz)
old_divisor = fz->fz_divisor;
switch (old_divisor) {
- case 16:
- new_divisor = 256;
+ case EMBEDDED_HASH_SIZE:
+ new_divisor *= EMBEDDED_HASH_SIZE;
break;
- case 256:
- new_divisor = 1024;
+ case EMBEDDED_HASH_SIZE*EMBEDDED_HASH_SIZE:
+ new_divisor *= (EMBEDDED_HASH_SIZE/2);
break;
default:
if ((old_divisor << 1) > FZ_MAX_DIVISOR) {
@@ -184,7 +184,8 @@ static void fn_rehash_zone(struct fn_zone *fz)
fib_hash_genid++;
write_unlock_bh(&fib_hash_lock);
- fz_hash_free(old_ht, old_divisor);
+ if (old_ht != fz->fz_embedded_hash)
+ fz_hash_free(old_ht, old_divisor);
}
}
@@ -210,18 +211,11 @@ fn_new_zone(struct fn_hash *table, int z)
if (!fz)
return NULL;
- if (z) {
- fz->fz_divisor = 16;
- } else {
- fz->fz_divisor = 1;
- }
- fz->fz_hashmask = (fz->fz_divisor - 1);
- fz->fz_hash = fz_hash_alloc(fz->fz_divisor);
- if (!fz->fz_hash) {
- kfree(fz);
- return NULL;
- }
+ fz->fz_divisor = z ? EMBEDDED_HASH_SIZE : 1;
+ fz->fz_hashmask = fz->fz_divisor - 1;
+ fz->fz_hash = fz->fz_embedded_hash;
fz->fz_order = z;
+ fz->fz_revorder = 32 - z;
fz->fz_mask = inet_make_mask(z);
/* Find the first not empty zone with more specific mask */
^ permalink raw reply related
* Re: [PATCH net-next] net: allocate skbs on local node
From: Eric Dumazet @ 2010-10-14 16:05 UTC (permalink / raw)
To: Tom Herbert
Cc: Andrew Morton, David Miller, netdev, Michael Chan,
Eilon Greenstein, Christoph Hellwig, Christoph Lameter
In-Reply-To: <AANLkTin8FczYpPvi79w7iuKOZz3uZtYFfTPitAgQFxzD@mail.gmail.com>
Le jeudi 14 octobre 2010 à 08:31 -0700, Tom Herbert a écrit :
> > This is all conspicuously hand-wavy and unquantified. (IOW: prove it!)
> >
> > The mooted effects should be tested for on both slab and slub, I
> > suggest. They're pretty different beasts.
> > --
>
> Some results running netper TCP_RR test with 200 instances, 1 byte
> request and response on 16 core AMD using bnx2x with one 16 queues,
> one for each CPU.
>
> SLAB
>
> Without patch 553570 tps at 86% CPU
> With patch 791883 tps at 93% CPU
>
> SLUB
>
> Without patch 704879 tps at 95% CPU
> With patch 775278 tps at 92% CPU
>
> I believe both show good benfits with patch, and it actually looks
> like the impact is more pronounced for SLAB. I would also note, that
> we have actually already internally patched __netdev_alloc_skb to do
> local node allocation which we have been running in production for
> quite some time.
Excellent ! I was not sure I could do this before NFWS...
Thanks Tom !
Small note : last user of 'allocate skb on a given node, not local one'
is pktgen.
[PATCH net-next] net: allocate skbs on local node
commit b30973f877 (node-aware skb allocation) spread a wrong habit of
allocating net drivers skbs on a given memory node : The one closest to
the NIC hardware. This is wrong because as soon as we try to scale
network stack, we need to use many cpus to handle traffic and hit
slub/slab management on cross-node allocations/frees when these cpus
have to alloc/free skbs bound to a central node.
skb allocated in RX path are ephemeral, they have a very short
lifetime : Extra cost to maintain NUMA affinity is too expensive. What
appeared as a nice idea four years ago is in fact a bad one.
In 2010, NIC hardwares are multiqueue, or we use RPS to spread the load,
and two 10Gb NIC might deliver more than 28 million packets per second,
needing all the available cpus.
Cost of cross-node handling in network and vm stacks outperforms the
small benefit hardware had when doing its DMA transfert in its 'local'
memory node at RX time. Even trying to differentiate the two allocations
done for one skb (the sk_buff on local node, the data part on NIC
hardware node) is not enough to bring good performance.
Some numbers, courtesy from Tom Herbert :
Some results running netper TCP_RR test with 200 instances, 1 byte
request and response on 16 core AMD using bnx2x with one 16 queues,
one for each CPU.
SLAB
Without patch 553570 tps at 86% CPU
With patch 791883 tps at 93% CPU
SLUB
Without patch 704879 tps at 95% CPU
With patch 775278 tps at 92% CPU
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Tom Herbert <therbert@google.com>
---
include/linux/skbuff.h | 20 ++++++++++++++++----
net/core/skbuff.c | 13 +------------
2 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 0b53c43..05a358f 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -496,13 +496,13 @@ extern struct sk_buff *__alloc_skb(unsigned int size,
static inline struct sk_buff *alloc_skb(unsigned int size,
gfp_t priority)
{
- return __alloc_skb(size, priority, 0, -1);
+ return __alloc_skb(size, priority, 0, NUMA_NO_NODE);
}
static inline struct sk_buff *alloc_skb_fclone(unsigned int size,
gfp_t priority)
{
- return __alloc_skb(size, priority, 1, -1);
+ return __alloc_skb(size, priority, 1, NUMA_NO_NODE);
}
extern bool skb_recycle_check(struct sk_buff *skb, int skb_size);
@@ -1563,13 +1563,25 @@ static inline struct sk_buff *netdev_alloc_skb_ip_align(struct net_device *dev,
return skb;
}
-extern struct page *__netdev_alloc_page(struct net_device *dev, gfp_t gfp_mask);
+/**
+ * __netdev_alloc_page - allocate a page for ps-rx on a specific device
+ * @dev: network device to receive on
+ * @gfp_mask: alloc_pages_node mask
+ *
+ * Allocate a new page. dev currently unused.
+ *
+ * %NULL is returned if there is no free memory.
+ */
+static inline struct page *__netdev_alloc_page(struct net_device *dev, gfp_t gfp_mask)
+{
+ return alloc_pages_node(NUMA_NO_NODE, gfp_mask, 0);
+}
/**
* netdev_alloc_page - allocate a page for ps-rx on a specific device
* @dev: network device to receive on
*
- * Allocate a new page node local to the specified device.
+ * Allocate a new page. dev currently unused.
*
* %NULL is returned if there is no free memory.
*/
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 752c197..4e8b82e 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -247,10 +247,9 @@ EXPORT_SYMBOL(__alloc_skb);
struct sk_buff *__netdev_alloc_skb(struct net_device *dev,
unsigned int length, gfp_t gfp_mask)
{
- int node = dev->dev.parent ? dev_to_node(dev->dev.parent) : -1;
struct sk_buff *skb;
- skb = __alloc_skb(length + NET_SKB_PAD, gfp_mask, 0, node);
+ skb = __alloc_skb(length + NET_SKB_PAD, gfp_mask, 0, NUMA_NO_NODE);
if (likely(skb)) {
skb_reserve(skb, NET_SKB_PAD);
skb->dev = dev;
@@ -259,16 +258,6 @@ struct sk_buff *__netdev_alloc_skb(struct net_device *dev,
}
EXPORT_SYMBOL(__netdev_alloc_skb);
-struct page *__netdev_alloc_page(struct net_device *dev, gfp_t gfp_mask)
-{
- int node = dev->dev.parent ? dev_to_node(dev->dev.parent) : -1;
- struct page *page;
-
- page = alloc_pages_node(node, gfp_mask, 0);
- return page;
-}
-EXPORT_SYMBOL(__netdev_alloc_page);
-
void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page, int off,
int size)
{
^ permalink raw reply related
* [PATCH net-next] netns: reorder fields in struct net
From: Eric Dumazet @ 2010-10-14 15:56 UTC (permalink / raw)
To: David Miller; +Cc: netdev
In a network bench, I noticed an unfortunate false sharing between
'loopback_dev' and 'count' fields in "struct net".
'count' is written each time a socket is created or destroyed, while
loopback_dev might be often read in routing code.
Move loopback_dev in a read mostly section of "struct net"
Note: struct netns_xfrm is cache line aligned on SMP.
(It contains a "struct dst_ops")
Move it at the end to avoid holes, and reduce sizeof(struct net) by 128
bytes on ia32.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
---
include/net/net_namespace.h | 17 ++++++++++-------
include/net/netns/xfrm.h | 9 +++++----
2 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
index bd10a79..65af9a0 100644
--- a/include/net/net_namespace.h
+++ b/include/net/net_namespace.h
@@ -41,6 +41,8 @@ struct net {
* destroy on demand
*/
#endif
+ spinlock_t rules_mod_lock;
+
struct list_head list; /* list of network namespaces */
struct list_head cleanup_list; /* namespaces on death row */
struct list_head exit_list; /* Use only net_mutex */
@@ -52,7 +54,8 @@ struct net {
struct ctl_table_set sysctls;
#endif
- struct net_device *loopback_dev; /* The loopback */
+ struct sock *rtnl; /* rtnetlink socket */
+ struct sock *genl_sock;
struct list_head dev_base_head;
struct hlist_head *dev_name_head;
@@ -60,11 +63,9 @@ struct net {
/* core fib_rules */
struct list_head rules_ops;
- spinlock_t rules_mod_lock;
- struct sock *rtnl; /* rtnetlink socket */
- struct sock *genl_sock;
+ struct net_device *loopback_dev; /* The loopback */
struct netns_core core;
struct netns_mib mib;
struct netns_packet packet;
@@ -84,13 +85,15 @@ struct net {
struct sock *nfnl;
struct sock *nfnl_stash;
#endif
-#ifdef CONFIG_XFRM
- struct netns_xfrm xfrm;
-#endif
#ifdef CONFIG_WEXT_CORE
struct sk_buff_head wext_nlevents;
#endif
struct net_generic *gen;
+
+ /* Note : following structs are cache line aligned */
+#ifdef CONFIG_XFRM
+ struct netns_xfrm xfrm;
+#endif
};
diff --git a/include/net/netns/xfrm.h b/include/net/netns/xfrm.h
index 74f119a..748f91f 100644
--- a/include/net/netns/xfrm.h
+++ b/include/net/netns/xfrm.h
@@ -43,10 +43,6 @@ struct netns_xfrm {
unsigned int policy_count[XFRM_POLICY_MAX * 2];
struct work_struct policy_hash_work;
- struct dst_ops xfrm4_dst_ops;
-#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
- struct dst_ops xfrm6_dst_ops;
-#endif
struct sock *nlsk;
struct sock *nlsk_stash;
@@ -58,6 +54,11 @@ struct netns_xfrm {
#ifdef CONFIG_SYSCTL
struct ctl_table_header *sysctl_hdr;
#endif
+
+ struct dst_ops xfrm4_dst_ops;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+ struct dst_ops xfrm6_dst_ops;
+#endif
};
#endif
^ permalink raw reply related
* Re: [PATCH net-next] net: allocate skbs on local node
From: Tom Herbert @ 2010-10-14 15:31 UTC (permalink / raw)
To: Andrew Morton
Cc: Eric Dumazet, David Miller, netdev, Michael Chan,
Eilon Greenstein, Christoph Hellwig, Christoph Lameter
In-Reply-To: <20101011230322.f0f6dd47.akpm@linux-foundation.org>
> This is all conspicuously hand-wavy and unquantified. (IOW: prove it!)
>
> The mooted effects should be tested for on both slab and slub, I
> suggest. They're pretty different beasts.
> --
Some results running netper TCP_RR test with 200 instances, 1 byte
request and response on 16 core AMD using bnx2x with one 16 queues,
one for each CPU.
SLAB
Without patch 553570 tps at 86% CPU
With patch 791883 tps at 93% CPU
SLUB
Without patch 704879 tps at 95% CPU
With patch 775278 tps at 92% CPU
I believe both show good benfits with patch, and it actually looks
like the impact is more pronounced for SLAB. I would also note, that
we have actually already internally patched __netdev_alloc_skb to do
local node allocation which we have been running in production for
quite some time.
Tom
^ permalink raw reply
* Re: BUG ? ipip unregister_netdevice_many()
From: David Miller @ 2010-10-14 15:09 UTC (permalink / raw)
To: ebiederm; +Cc: hans.schillstrom, daniel.lezcano, netdev
In-Reply-To: <m162x5492h.fsf@fess.ebiederm.org>
From: ebiederm@xmission.com (Eric W. Biederman)
Date: Wed, 13 Oct 2010 22:20:28 -0700
> With the network namespace support we limit the scope of the test of
> the invalidate to just a single network namespace, and as such
> rt_is_expired stops being true for every cache entry. So we cannot
> unconditionally throw away entire chains.
>
> All of which can be either done by network namespace equality or by
> rt_is_expired(). Although Denis picked rt_is_expired() when he made
> his change.
Right, and I choose to use namespace equality which will completely
compile into no code at all when namespace support is not in the
kernel.
Therefore, making the non-namespace case equivalent and as efficient
as it always was.
> The only place it makes a noticable difference in practice is what
> happens when we do batched deleletes of lots of network devices in
> different network namespaces.
>
> During batched network device deletes in fib_netdev_event we do
> rt_cache_flush(dev_net(dev), -1) for each network device. and then a
> final rt_cache_flush_batch() to remove the invalidated entries. These
> devices can be from multiple network namespaces, so I suspect that is
> a savings worth having.
How can it make a real difference even in this case? We'll obliterate
all the entries, and then on subsequent passes we'll find nothing
matching that namespace any more.
Show me performance tests that show it makes any difference, please.
> So if we are going to change the tests we need to do something with
> rt_cache_flush_batch(). Further I do not see what is confusing about
> a test that asks if the routing cache entry is unusable. Is
> rt_cache_expired() a bad name?
It's not a bad name, it's just an unnecessary test that we don't need
to even make in this specific place.
Redundancy tends to accumulate.
^ permalink raw reply
* -j MARK in raw vs. mangle (was Re: xfrm by MARK: tcp problems when mark for in and out differ)
From: Gerd v. Egidy @ 2010-10-14 14:16 UTC (permalink / raw)
To: hadi, netfilter-devel; +Cc: netdev
Hi Jamal,
thanks for your help.
> > So it seems like the fl->mark is never initialized with the packet mark
> > in the first place. What would be the correct stage in the kernel
> > network stack to do that?
>
> Can you try a simple setup without xfrm/ipsec and see if this reverse
> path works? Was there a kernel where it worked?
I just tried opening a simple tcp connection without any xfrm or other weird
stuff. I just had one iptables rule in place:
-t raw -A OUTPUT -d 192.168.5.200 -j MARK --set-mark 99
192.168.5.200 is the other system I open the tcp connection from. So this
should mark all response packets to the client.
But the moment __xfrm_lookup is called (this is where my debug printk sits),
fl->mark is always 0.
By chance I changed the rule over to the mangle table:
-t mangle -A OUTPUT -d 192.168.5.200 -j MARK --set-mark 99
Now it works, the mark in the flow is 99!
So it seems this has nothing to do with xfrm, but that the MARK target has
different effects when used in raw than in mangle. I was using raw because I
had to set conntrack zones too and it was more conveniant to do both in one
place.
Can one of the netfilter guys comment on this? Is using MARK in raw not fully
supported or has known deficiencies?
Kind regards,
Gerd
PS: sorry for the double post, had an old netfilter-devel address in my
mailer.
--
Address (better: trap) for people I really don't want to get mail from:
jonas@cactusamerica.com
^ permalink raw reply
* -j MARK in raw vs. mangle (was Re: xfrm by MARK: tcp problems when mark for in and out differ)
From: Gerd v. Egidy @ 2010-10-14 14:14 UTC (permalink / raw)
To: hadi; +Cc: netdev, Netfilter Development Mailinglist
In-Reply-To: <1287062098.3756.9.camel@bigi>
Hi Jamal,
thanks for your help.
> > So it seems like the fl->mark is never initialized with the packet mark
> > in the first place. What would be the correct stage in the kernel
> > network stack to do that?
>
> Can you try a simple setup without xfrm/ipsec and see if this reverse
> path works? Was there a kernel where it worked?
I just tried opening a simple tcp connection without any xfrm or other weird
stuff. I just had one iptables rule in place:
-t raw -A OUTPUT -d 192.168.5.200 -j MARK --set-mark 99
192.168.5.200 is the other system I open the tcp connection from. So this
should mark all response packets to the client.
But the moment __xfrm_lookup is called (this is where my debug printk sits),
fl->mark is always 0.
By chance I changed the rule over to the mangle table:
-t mangle -A OUTPUT -d 192.168.5.200 -j MARK --set-mark 99
Now it works, the mark in the flow is 99!
So it seems this has nothing to do with xfrm, but that the MARK target has
different effects when used in raw than in mangle. I was using raw because I
had to set conntrack zones too and it was more conveniant to do both in one
place.
Can one of the netfilter guys comment on this? Is using MARK in raw not fully
supported or has known deficiencies?
Kind regards,
Gerd
--
Address (better: trap) for people I really don't want to get mail from:
jonas@cactusamerica.com
^ permalink raw reply
* Re: [PATCH] tcp: sack lost marking fixes
From: Lennart Schulte @ 2010-10-14 14:02 UTC (permalink / raw)
To: Ilpo Järvinen; +Cc: Netdev, David Miller, Yuchung Cheng
In-Reply-To: <4CB7077B.2080007@nets.rwth-aachen.de>
I forgot to mention that I will of course have a look at it as soon as I
finished the thesis :)
On 14.10.2010 15:36, Lennart Schulte wrote:
> At the moment I don't have any time to spare to look into this since my
> master thesis has to be ready in about 2 weeks. Sorry for that!
>
> On 14.10.2010 13:42, Ilpo Järvinen wrote:
>> When only fast rexmit should be done, tcp_mark_head_lost marks
>> L too far. Also, sacked_upto below 1 is perfectly valid number,
>> the packets == 0 then needs to be trapped elsewhere.
>>
>> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
>> ---
>> I think 6830c25b7d08fbbd922959425193791bc42079f2 that added the
>> packets == 0 check is mostly wrong but I cc'ed Lennart if he has some
>> particular case I'm missing that wouldn't work after this patch.
>>
>> Dave, no particular "bad regression" fixed here, so no absolute need to
>> have this in net-2.6 but I leave it up to you whether there or net-next.
>>
>> ...
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply
* Re: [PATCH] tcp: sack lost marking fixes
From: Lennart Schulte @ 2010-10-14 13:36 UTC (permalink / raw)
To: Ilpo Järvinen; +Cc: Netdev, David Miller, Yuchung Cheng
In-Reply-To: <alpine.DEB.2.00.1010141429150.26447@wel-95.cs.helsinki.fi>
At the moment I don't have any time to spare to look into this since my
master thesis has to be ready in about 2 weeks. Sorry for that!
On 14.10.2010 13:42, Ilpo Järvinen wrote:
> When only fast rexmit should be done, tcp_mark_head_lost marks
> L too far. Also, sacked_upto below 1 is perfectly valid number,
> the packets == 0 then needs to be trapped elsewhere.
>
> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
> ---
> I think 6830c25b7d08fbbd922959425193791bc42079f2 that added the
> packets == 0 check is mostly wrong but I cc'ed Lennart if he has some
> particular case I'm missing that wouldn't work after this patch.
>
> Dave, no particular "bad regression" fixed here, so no absolute need to
> have this in net-2.6 but I leave it up to you whether there or net-next.
>
> ...
^ permalink raw reply
* RE: [PATCH net-next] tipc: cleanup function namespace
From: Jon Maloy @ 2010-10-14 13:31 UTC (permalink / raw)
To: Stephen Hemminger, David Miller, paul.gortmaker@windriver.com
Cc: nhorman@tuxdriver.com, netdev@vger.kernel.org,
allan.stephens@windriver.com
In-Reply-To: <20101013162035.0c2e8123@nehalam>
> Do some cleanups of TIPC based on make namespacecheck
> 1. Don't export unused symbols
> 2. Eliminate dead code
> 3. Make functions and variables local
> 4. Rename buf_acquire to tipc_buf_acquire since it is used
> in several files
>
> Compile tested only.
> This make break out of tree kernel modules that depend on
> TIPC routines.
>
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: Jon Maloy <jon.maloy@ericsson.com>
^ permalink raw reply
* xfrm by MARK: expected behavior of masking
From: Gerd v. Egidy @ 2010-10-14 13:15 UTC (permalink / raw)
To: jamal; +Cc: netdev
Hi,
while looking at the xfrm by MARK code I found a case where the masking of
marks does not work as I would it expect to work.
Take for example a mark value of 5 and a mask of 0xfffffffe
->
src 192.168.5.0/24 dst 192.168.1.0/24
dir out priority 1760 ptype main
mark 5/0xfffffffe
tmpl src 172.16.1.131 dst 172.16.1.130
proto esp reqid 16384 mode tunnel
The code to check the marks always (e.g. in xfrm_policy.c, but several other
places too) looks like this:
(fl->mark & pol->mark.m) != pol->mark.v
This means that a flow marked with 5 will actually never match. You have to
use the first number in the mask (4 in this case) to make the policy work.
Is this expected behavior?
I'd expect that the kernel would either
a) still match those packets
or
b) refuse to configure such a policy
Kind regards,
Gerd
--
Address (better: trap) for people I really don't want to get mail from:
jonas@cactusamerica.com
^ permalink raw reply
* Re: xfrm by MARK: tcp problems when mark for in and out differ
From: jamal @ 2010-10-14 13:14 UTC (permalink / raw)
To: Gerd v. Egidy; +Cc: netdev
In-Reply-To: <201010141501.59145.lists@egidy.de>
Gerd,
On Thu, 2010-10-14 at 15:01 +0200, Gerd v. Egidy wrote:
> this is wrong, the value in fl->mark is always 0. I must have confused some
> data in my debug printks.
>
> So it seems like the fl->mark is never initialized with the packet mark in the
> first place. What would be the correct stage in the kernel network stack to do
> that?
Can you try a simple setup without xfrm/ipsec and see if this reverse
path works? Was there a kernel where it worked?
cheers,
jamal
^ permalink raw reply
* Re: xfrm by MARK: tcp problems when mark for in and out differ
From: Gerd v. Egidy @ 2010-10-14 13:01 UTC (permalink / raw)
To: hadi; +Cc: netdev
In-Reply-To: <1287057741.3756.6.camel@bigi>
Hi Jamal,
> > -> incoming packets are without mark, outgoing packets are marked with 5
>
> You could use tc ingress path to mark incoming packets. Example:
In my full setup I do exactly that. What I posted was a minimized setup to
just show the problem.
I have a complex set of netfilter rules and routing tables to allow several
ways of doing NAT on ipsec. The rules need different marks on packets coming
from / going to the vpn to correctly distinguish packets in the forwarding
case.
I did further testing, 2.6.36-rc7 has the problem too.
> When the SYN-ACK hits __xfrm_lookup, the value in fl->mark is 0
> (more precisely: the mark value used in the incoming packet).
this is wrong, the value in fl->mark is always 0. I must have confused some
data in my debug printks.
So it seems like the fl->mark is never initialized with the packet mark in the
first place. What would be the correct stage in the kernel network stack to do
that?
Kind regards,
Gerd
--
Address (better: trap) for people I really don't want to get mail from:
jonas@cactusamerica.com
^ permalink raw reply
* Re: [v2 RFC PATCH 0/4] Implement multiqueue virtio-net
From: Krishna Kumar2 @ 2010-10-14 12:47 UTC (permalink / raw)
To: Krishna Kumar2
Cc: anthony, arnd, avi, davem, kvm, Michael S. Tsirkin, netdev, rusty
In-Reply-To: <OF0BDA6B3A.F673A449-ON652577BC.00422911-652577BC.0043474B@LocalDomain>
Krishna Kumar2/India/IBM wrote on 10/14/2010 05:47:54 PM:
Sorry, it should read "txq=8" below.
- KK
> There's a significant reduction in CPU/SD utilization with your
> patch. Following is the performance of ORG vs MQ+mm patch:
>
> _________________________________________________
> Org vs MQ+mm patch txq=2
> # BW% CPU/RCPU% SD/RSD%
> _________________________________________________
> 1 2.26 -1.16 .27 -20.00 0
> 2 35.07 29.90 21.81 0 -11.11
> 4 55.03 84.57 37.66 26.92 -4.62
> 8 73.16 118.69 49.21 45.63 -.46
> 16 77.43 98.81 47.89 24.07 -7.80
> 24 71.59 105.18 48.44 62.84 18.18
> 32 70.91 102.38 47.15 49.22 8.54
> 40 63.26 90.58 41.00 85.27 37.33
> 48 45.25 45.99 11.23 14.31 -12.91
> 64 42.78 41.82 5.50 .43 -25.12
> 80 31.40 7.31 -18.69 15.78 -11.93
> 96 27.60 7.79 -18.54 17.39 -10.98
> 128 23.46 -11.89 -34.41 -.41 -25.53
> _________________________________________________
> BW: 40.2 CPU/RCPU: 29.9,-2.2 SD/RSD: 12.0,-15.6
>
> Following is the performance of MQ vs MQ+mm patch:
> _____________________________________________________
> MQ vs MQ+mm patch
> # BW% CPU% RCPU% SD% RSD%
> _____________________________________________________
> 1 4.98 -.58 .84 -20.00 0
> 2 5.17 2.96 2.29 0 -4.00
> 4 -.18 .25 -.16 3.12 .98
> 8 -5.47 -1.36 -1.98 17.18 16.57
> 16 -1.90 -6.64 -3.54 -14.83 -12.12
> 24 -.01 23.63 14.65 57.61 46.64
> 32 .27 -3.19 -3.11 -22.98 -22.91
> 40 -1.06 -2.96 -2.96 -4.18 -4.10
> 48 -.28 -2.34 -3.71 -2.41 -3.81
> 64 9.71 33.77 30.65 81.44 77.09
> 80 -10.69 -31.07 -31.70 -29.22 -29.88
> 96 -1.14 5.98 .56 -11.57 -16.14
> 128 -.93 -15.60 -18.31 -19.89 -22.65
> _____________________________________________________
> BW: 0 CPU/RCPU: -4.2,-6.1 SD/RSD: -13.1,-15.6
> _____________________________________________________
>
> Each test case is for 60 secs, sum over two runs (except
> when number of netperf sessions is 1, which has 7 runs
> of 10 secs each), numcpus=4, numtxqs=8, etc. No tuning
> other than taskset each vhost to cpus 0-3.
>
> Thanks,
>
> - KK
^ permalink raw reply
* Re: [v2 RFC PATCH 0/4] Implement multiqueue virtio-net
From: Krishna Kumar2 @ 2010-10-14 12:17 UTC (permalink / raw)
To: Krishna Kumar2
Cc: anthony, arnd, avi, davem, kvm, Michael S. Tsirkin, netdev, rusty
In-Reply-To: <OFEC86A094.39835EBF-ON652577BC.002F9AAF-652577BC.003186B5@LocalDomain>
Krishna Kumar2/India/IBM wrote on 10/14/2010 02:34:01 PM:
> void vhost_poll_queue(struct vhost_poll *poll)
> {
> struct vhost_virtqueue *vq = vhost_find_vq(poll);
>
> vhost_work_queue(vq, &poll->work);
> }
>
> Since poll batches packets, find_vq does not seem to add much
> to the CPU utilization (or BW). I am sure that code can be
> optimized much better.
>
> The results I sent in my last mail were without your use_mm
> patch, and the only tuning was to make vhost threads run on
> only cpus 0-3 (though the performance is good even without
> that). I will test it later today with the use_mm patch too.
There's a significant reduction in CPU/SD utilization with your
patch. Following is the performance of ORG vs MQ+mm patch:
_________________________________________________
Org vs MQ+mm patch txq=2
# BW% CPU/RCPU% SD/RSD%
_________________________________________________
1 2.26 -1.16 .27 -20.00 0
2 35.07 29.90 21.81 0 -11.11
4 55.03 84.57 37.66 26.92 -4.62
8 73.16 118.69 49.21 45.63 -.46
16 77.43 98.81 47.89 24.07 -7.80
24 71.59 105.18 48.44 62.84 18.18
32 70.91 102.38 47.15 49.22 8.54
40 63.26 90.58 41.00 85.27 37.33
48 45.25 45.99 11.23 14.31 -12.91
64 42.78 41.82 5.50 .43 -25.12
80 31.40 7.31 -18.69 15.78 -11.93
96 27.60 7.79 -18.54 17.39 -10.98
128 23.46 -11.89 -34.41 -.41 -25.53
_________________________________________________
BW: 40.2 CPU/RCPU: 29.9,-2.2 SD/RSD: 12.0,-15.6
Following is the performance of MQ vs MQ+mm patch:
_____________________________________________________
MQ vs MQ+mm patch
# BW% CPU% RCPU% SD% RSD%
_____________________________________________________
1 4.98 -.58 .84 -20.00 0
2 5.17 2.96 2.29 0 -4.00
4 -.18 .25 -.16 3.12 .98
8 -5.47 -1.36 -1.98 17.18 16.57
16 -1.90 -6.64 -3.54 -14.83 -12.12
24 -.01 23.63 14.65 57.61 46.64
32 .27 -3.19 -3.11 -22.98 -22.91
40 -1.06 -2.96 -2.96 -4.18 -4.10
48 -.28 -2.34 -3.71 -2.41 -3.81
64 9.71 33.77 30.65 81.44 77.09
80 -10.69 -31.07 -31.70 -29.22 -29.88
96 -1.14 5.98 .56 -11.57 -16.14
128 -.93 -15.60 -18.31 -19.89 -22.65
_____________________________________________________
BW: 0 CPU/RCPU: -4.2,-6.1 SD/RSD: -13.1,-15.6
_____________________________________________________
Each test case is for 60 secs, sum over two runs (except
when number of netperf sessions is 1, which has 7 runs
of 10 secs each), numcpus=4, numtxqs=8, etc. No tuning
other than taskset each vhost to cpus 0-3.
Thanks,
- KK
^ permalink raw reply
* Re: xfrm by MARK: tcp problems when mark for in and out differ
From: jamal @ 2010-10-14 12:05 UTC (permalink / raw)
To: Gerd v. Egidy; +Cc: netdev
In-Reply-To: <201010131557.06588.lists@egidy.de>
Please dont cc subscriber-only mailing lists like
dev@lists.strongswan.org in the future.
cheers,
jamal
^ permalink raw reply
* Re: xfrm by MARK: tcp problems when mark for in and out differ
From: jamal @ 2010-10-14 12:02 UTC (permalink / raw)
To: Gerd v. Egidy; +Cc: netdev, dev
In-Reply-To: <201010131557.06588.lists@egidy.de>
On Wed, 2010-10-13 at 15:57 +0200, Gerd v. Egidy wrote:
> Hi,
>
> -> incoming packets are without mark, outgoing packets are marked with 5
>
You could use tc ingress path to mark incoming packets. Example:
----
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip pref 9 u32 \
match ip src 192.168.1.0/32 flowid 1:5 action skbedit mark 5
---
just remember that src on outgoing is dst on incoming..
cheers,
jamal
^ permalink raw reply
* [PATCH] tcp: use correct counters in CA_CWR state too
From: Ilpo Järvinen @ 2010-10-14 11:52 UTC (permalink / raw)
To: David Miller, Netdev
[-- Attachment #1: Type: TEXT/PLAIN, Size: 1536 bytes --]
As CWR is stronger than CA_Disorder state, we can miscount
SACK/Reno failure into other timeouts. Not a bad problem as
it can happen only due to ECN, FRTO detecting spurious RTO
or xmit error which are the only callers of tcp_enter_cwr.
And even then losses and RTO must still follow thereafter
to actually end up into the relevant code paths.
Compile tested.
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
---
net/ipv4/tcp_timer.c | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
index 74c54b3..16e591e 100644
--- a/net/ipv4/tcp_timer.c
+++ b/net/ipv4/tcp_timer.c
@@ -365,18 +365,19 @@ void tcp_retransmit_timer(struct sock *sk)
if (icsk->icsk_retransmits == 0) {
int mib_idx;
- if (icsk->icsk_ca_state == TCP_CA_Disorder) {
- if (tcp_is_sack(tp))
- mib_idx = LINUX_MIB_TCPSACKFAILURES;
- else
- mib_idx = LINUX_MIB_TCPRENOFAILURES;
- } else if (icsk->icsk_ca_state == TCP_CA_Recovery) {
+ if (icsk->icsk_ca_state == TCP_CA_Recovery) {
if (tcp_is_sack(tp))
mib_idx = LINUX_MIB_TCPSACKRECOVERYFAIL;
else
mib_idx = LINUX_MIB_TCPRENORECOVERYFAIL;
} else if (icsk->icsk_ca_state == TCP_CA_Loss) {
mib_idx = LINUX_MIB_TCPLOSSFAILURES;
+ } else if ((icsk->icsk_ca_state == TCP_CA_Disorder) ||
+ tp->sacked_out) {
+ if (tcp_is_sack(tp))
+ mib_idx = LINUX_MIB_TCPSACKFAILURES;
+ else
+ mib_idx = LINUX_MIB_TCPRENOFAILURES;
} else {
mib_idx = LINUX_MIB_TCPTIMEOUTS;
}
--
1.5.6.3
^ permalink raw reply related
* [PATCH] tcp: sack lost marking fixes
From: Ilpo Järvinen @ 2010-10-14 11:42 UTC (permalink / raw)
To: Netdev, David Miller; +Cc: Yuchung Cheng, Lennart Schulte
[-- Attachment #1: Type: TEXT/PLAIN, Size: 3010 bytes --]
When only fast rexmit should be done, tcp_mark_head_lost marks
L too far. Also, sacked_upto below 1 is perfectly valid number,
the packets == 0 then needs to be trapped elsewhere.
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
---
I think 6830c25b7d08fbbd922959425193791bc42079f2 that added the
packets == 0 check is mostly wrong but I cc'ed Lennart if he has some
particular case I'm missing that wouldn't work after this patch.
Dave, no particular "bad regression" fixed here, so no absolute need to
have this in net-2.6 but I leave it up to you whether there or net-next.
net/ipv4/tcp_input.c | 24 ++++++++++++++----------
1 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 548d575..9924cd1 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -2504,7 +2504,7 @@ static void tcp_timeout_skbs(struct sock *sk)
/* Mark head of queue up as lost. With RFC3517 SACK, the packets is
* is against sacked "cnt", otherwise it's against facked "cnt"
*/
-static void tcp_mark_head_lost(struct sock *sk, int packets)
+static void tcp_mark_head_lost(struct sock *sk, int packets, int mark_head)
{
struct tcp_sock *tp = tcp_sk(sk);
struct sk_buff *skb;
@@ -2512,13 +2512,13 @@ static void tcp_mark_head_lost(struct sock *sk, int packets)
int err;
unsigned int mss;
- if (packets == 0)
- return;
-
WARN_ON(packets > tp->packets_out);
if (tp->lost_skb_hint) {
skb = tp->lost_skb_hint;
cnt = tp->lost_cnt_hint;
+ /* Head already handled? */
+ if (mark_head && skb != tcp_write_queue_head(sk))
+ return;
} else {
skb = tcp_write_queue_head(sk);
cnt = 0;
@@ -2552,6 +2552,9 @@ static void tcp_mark_head_lost(struct sock *sk, int packets)
}
tcp_skb_mark_lost(tp, skb);
+
+ if (mark_head)
+ break;
}
tcp_verify_left_out(tp);
}
@@ -2563,17 +2566,18 @@ static void tcp_update_scoreboard(struct sock *sk, int fast_rexmit)
struct tcp_sock *tp = tcp_sk(sk);
if (tcp_is_reno(tp)) {
- tcp_mark_head_lost(sk, 1);
+ tcp_mark_head_lost(sk, 1, 1);
} else if (tcp_is_fack(tp)) {
int lost = tp->fackets_out - tp->reordering;
if (lost <= 0)
lost = 1;
- tcp_mark_head_lost(sk, lost);
+ tcp_mark_head_lost(sk, lost, 0);
} else {
int sacked_upto = tp->sacked_out - tp->reordering;
- if (sacked_upto < fast_rexmit)
- sacked_upto = fast_rexmit;
- tcp_mark_head_lost(sk, sacked_upto);
+ if (sacked_upto >= 0)
+ tcp_mark_head_lost(sk, sacked_upto, 0);
+ else if (fast_rexmit)
+ tcp_mark_head_lost(sk, 1, 1);
}
tcp_timeout_skbs(sk);
@@ -2978,7 +2982,7 @@ static void tcp_fastretrans_alert(struct sock *sk, int pkts_acked, int flag)
before(tp->snd_una, tp->high_seq) &&
icsk->icsk_ca_state != TCP_CA_Open &&
tp->fackets_out > tp->reordering) {
- tcp_mark_head_lost(sk, tp->fackets_out - tp->reordering);
+ tcp_mark_head_lost(sk, tp->fackets_out - tp->reordering, 0);
NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPLOSS);
}
--
1.5.6.5
^ permalink raw reply related
* Re: tbf/htb qdisc limitations
From: Jarek Poplawski @ 2010-10-14 8:50 UTC (permalink / raw)
To: Bill Fink; +Cc: Rick Jones, Steven Brudenell, netdev
In-Reply-To: <20101014080939.GA7710@ff.dom.local>
On Thu, Oct 14, 2010 at 08:09:39AM +0000, Jarek Poplawski wrote:
> On Thu, Oct 14, 2010 at 03:13:54AM -0400, Bill Fink wrote:
> > TSO/GSO was disabled and was using 9000-byte jumbo frames
> > (and specified mtu 9000 to tc command).
> >
> > Here was one attempt I made using tbf:
> >
> > tc qdisc add dev eth2 root handle 1: prio
> > tc qdisc add dev eth2 parent 1:1 handle 10: tbf rate 8900mbit buffer 1112500 limit 10000 mtu 9000
> > tc filter add dev eth2 protocol ip parent 1: prio 1 u32 match ip dst 192.168.1.23 flowid 10:1
> >
> > I tried many variations of the above, all without success.
>
> The main problem are smaller packets. If you had (almost) only 9000b
> frames this probably could work. [...]
On the other hand, e.g. the limit above seems too low wrt mtu & rate.
Jarek P.
^ permalink raw reply
* Re: tbf/htb qdisc limitations
From: Jarek Poplawski @ 2010-10-14 8:09 UTC (permalink / raw)
To: Bill Fink; +Cc: Rick Jones, Steven Brudenell, netdev
In-Reply-To: <20101014031354.e172d737.billfink@mindspring.com>
On Thu, Oct 14, 2010 at 03:13:54AM -0400, Bill Fink wrote:
> On Thu, 14 Oct, Jarek Poplawski wrote:
>
> > On Wed, Oct 13, 2010 at 11:36:53PM -0400, Bill Fink wrote:
> > > On Wed, 13 Oct 2010, Jarek Poplawski wrote:
> > >
> > > > On Tue, Oct 12, 2010 at 03:17:18PM -0700, Rick Jones wrote:
> > > > >>> my burst problem is the only semi-legitimate motivation i can think
> > > > >>> of. the only other possible motivations i can imagine are setting
> > > > >>> "limit" to buffer more than 4GB of packets and setting "rate" to
> > > > >>> something more than 32 gigabit; both of these seem kind of dubious. is
> > > > >>> there something else you had in mind?
> > > > >>
> > > > >>
> > > > >> No, mainly 10 gigabit rates and additionally 64-bit stats.
> > > > >
> > > > > Any issue for bonded 10 GbE interfaces? Now that the IEEE have ratified
> > > > > (June) how far out are 40 GbE interfaces? Or 100 GbE for that matter.
> > > >
> > > > Alas packet schedulers using rate tables are still around 1G. Above 2G
> > > > they get less and less accurate, so hfsc is recommended.
> > >
> > > I was just trying to do an 8 Gbps rate limit on a 10-GigE path,
> > > and couldn't get it to work with either htb or tbf. Are you
> > > saying this currently isn't possible?
> >
> > Let's start from reminding that no precise packet scheduling should be
> > expected with gso/tso etc. turned on. I don't know current hardware
> > limits for such a non-gso traffic, but for 8 Gbit rate htb or tbf
> > would definitely have wrong rate tables (overflowed values) for packet
> > sizes below 1500 bytes.
>
> TSO/GSO was disabled and was using 9000-byte jumbo frames
> (and specified mtu 9000 to tc command).
>
> Here was one attempt I made using tbf:
>
> tc qdisc add dev eth2 root handle 1: prio
> tc qdisc add dev eth2 parent 1:1 handle 10: tbf rate 8900mbit buffer 1112500 limit 10000 mtu 9000
> tc filter add dev eth2 protocol ip parent 1: prio 1 u32 match ip dst 192.168.1.23 flowid 10:1
>
> I tried many variations of the above, all without success.
The main problem are smaller packets. If you had (almost) only 9000b
frames this probably could work. But smaller packets (I don't remember
exact limits) with wrong rate table values might go almost unaccounted.
> > > Or are you saying to use
> > > this hfsc mechanism, which there doesn't seem to be a man page
> > > for?
> >
> > There was a try:
> > http://lists.openwall.net/netdev/2009/02/26/138
>
> Thanks for the pointer. I will check it out later in detail,
> but I'm already having difficulty with deciding if I have the
> tc commands right for tbf and htb, and hfsc looks even more
> involved.
I don't know much about hfsc either, but it seems, with simplest
configs (second slope only) it shouldn't be much different from htb
or tbf.
Jarek P.
^ permalink raw reply
* Re: [RFC PATCH net-next] drivers/net Documentation/networking: Create directory intel_wired_lan
From: Jeff Kirsher @ 2010-10-14 9:34 UTC (permalink / raw)
To: Joe Perches
Cc: Brandeburg, Jesse, Allan, Bruce W, Wyborny, Carolyn,
Skidmore, Donald C, Rose, Gregory V, Waskiewicz Jr, Peter P,
Duyck, Alexander H, Ronciak, John, linux-kernel@vger.kernel.org,
netdev@vger.kernel.org, e1000-devel
In-Reply-To: <1287035857.1117.528.camel@Joe-Laptop>
[-- Attachment #1.1: Type: text/plain, Size: 49368 bytes --]
On Wed, 2010-10-13 at 22:57 -0700, Joe Perches wrote:
> On Wed, 2010-10-13 at 21:57 -0700, Jeff Kirsher wrote:
> > On Wed, 2010-10-13 at 15:28 -0700, Joe Perches wrote:
> > Sorry I am not ignoring you, I was taking a closer look at your patch.
> > > What regression testing would actually be done?
> > The Makefile and Kconfig needs more work. I applied your patch and none
> > of the Intel Wired drivers build.
>
> Care to describe the Makefile/Kconfig issues you have seen?
>
> I built it allyesconfig, defconfig, allmodconfig and allnoconfig.
Yeah, I found all of those built without errors, but if you build the
Intel Wired LAN drivers as modules, you will not find the *.ko files
after the build. The Kconfig files look fine, the problem was with the
Makefiles. Instead of creating a drivers/net/intel_wired_lan/Makefile,
I simply changed the path in drivers/net/Makefile to the updated path
and that resolved the issue.
Also I found that you missed moving e1000e.txt.
As far as the sub-directory name "intel_wired_lan", what about "intel"
or "intel_wired"? Just a thought...
>
> Perhaps you need to use "git am foo" in a test branch instead
> of "patch -p1 < foo" ?
I used "git am foo"...
>
> > I am working on providing an updated RFC patch to resolve the
> > Makefile/Kconfig issues I found and few other minor issues I have
> > found.
>
> Oh good.
>
> cheers, Joe
>
Here is the updated patch (also attached)...
Documentation/networking drivers/net: Create directory intel_wired_lan
Based on original patch from Joe Perches <joe@perches.com>
Move intel drivers and Documentation to separate directories
Create drivers/net/intel_wired_lan/Kconfig.<speed> and Makefile
Modify drivers/net/Kconfig and Makefile
Update MAINTAINERS
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
.../networking/{ => intel_wired_lan}/e100.txt | 0
.../networking/{ => intel_wired_lan}/e1000.txt | 0
.../networking/{ => intel_wired_lan}/e1000e.txt | 0
.../networking/{ => intel_wired_lan}/igb.txt | 0
.../networking/{ => intel_wired_lan}/igbvf.txt | 0
.../networking/{ => intel_wired_lan}/ixgb.txt | 0
.../networking/{ => intel_wired_lan}/ixgbe.txt | 0
.../networking/{ => intel_wired_lan}/ixgbevf.txt | 0
MAINTAINERS | 18 +--
drivers/net/Kconfig | 214
+-------------------
drivers/net/Makefile | 16 +-
drivers/net/intel_wired_lan/Kconfig.100 | 25 +++
drivers/net/intel_wired_lan/Kconfig.1000 | 102 ++++++++++
drivers/net/intel_wired_lan/Kconfig.10000 | 81 ++++++++
drivers/net/{ => intel_wired_lan}/e100.c | 0
drivers/net/{ => intel_wired_lan}/e1000/Makefile | 0
drivers/net/{ => intel_wired_lan}/e1000/e1000.h | 0
.../{ => intel_wired_lan}/e1000/e1000_ethtool.c | 0
drivers/net/{ => intel_wired_lan}/e1000/e1000_hw.c | 0
drivers/net/{ => intel_wired_lan}/e1000/e1000_hw.h | 0
.../net/{ => intel_wired_lan}/e1000/e1000_main.c | 0
.../net/{ => intel_wired_lan}/e1000/e1000_osdep.h | 0
.../net/{ => intel_wired_lan}/e1000/e1000_param.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/82571.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/Makefile | 0
drivers/net/{ => intel_wired_lan}/e1000e/defines.h | 0
drivers/net/{ => intel_wired_lan}/e1000e/e1000.h | 0
drivers/net/{ => intel_wired_lan}/e1000e/es2lan.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/ethtool.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/hw.h | 0
drivers/net/{ => intel_wired_lan}/e1000e/ich8lan.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/lib.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/netdev.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/param.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/phy.c | 0
drivers/net/{ => intel_wired_lan}/igb/Makefile | 0
.../net/{ => intel_wired_lan}/igb/e1000_82575.c | 0
.../net/{ => intel_wired_lan}/igb/e1000_82575.h | 0
.../net/{ => intel_wired_lan}/igb/e1000_defines.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_hw.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_mac.c | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_mac.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_mbx.c | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_mbx.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_nvm.c | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_nvm.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_phy.c | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_phy.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_regs.h | 0
drivers/net/{ => intel_wired_lan}/igb/igb.h | 0
.../net/{ => intel_wired_lan}/igb/igb_ethtool.c | 0
drivers/net/{ => intel_wired_lan}/igb/igb_main.c | 0
drivers/net/{ => intel_wired_lan}/igbvf/Makefile | 0
drivers/net/{ => intel_wired_lan}/igbvf/defines.h | 0
drivers/net/{ => intel_wired_lan}/igbvf/ethtool.c | 0
drivers/net/{ => intel_wired_lan}/igbvf/igbvf.h | 0
drivers/net/{ => intel_wired_lan}/igbvf/mbx.c | 0
drivers/net/{ => intel_wired_lan}/igbvf/mbx.h | 0
drivers/net/{ => intel_wired_lan}/igbvf/netdev.c | 0
drivers/net/{ => intel_wired_lan}/igbvf/regs.h | 0
drivers/net/{ => intel_wired_lan}/igbvf/vf.c | 0
drivers/net/{ => intel_wired_lan}/igbvf/vf.h | 0
drivers/net/{ => intel_wired_lan}/ixgb/Makefile | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb.h | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_ee.c | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_ee.h | 0
.../net/{ => intel_wired_lan}/ixgb/ixgb_ethtool.c | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_hw.c | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_hw.h | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_ids.h | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_main.c | 0
.../net/{ => intel_wired_lan}/ixgb/ixgb_osdep.h | 0
.../net/{ => intel_wired_lan}/ixgb/ixgb_param.c | 0
drivers/net/{ => intel_wired_lan}/ixgbe/Makefile | 0
drivers/net/{ => intel_wired_lan}/ixgbe/ixgbe.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_82598.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_82599.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_common.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_common.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_dcb.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_dcb.h | 0
.../{ => intel_wired_lan}/ixgbe/ixgbe_dcb_82598.c | 0
.../{ => intel_wired_lan}/ixgbe/ixgbe_dcb_82598.h | 0
.../{ => intel_wired_lan}/ixgbe/ixgbe_dcb_82599.c | 0
.../{ => intel_wired_lan}/ixgbe/ixgbe_dcb_82599.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_dcb_nl.c | 0
.../{ => intel_wired_lan}/ixgbe/ixgbe_ethtool.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_fcoe.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_fcoe.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_main.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_mbx.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_mbx.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_phy.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_phy.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_sriov.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_sriov.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_type.h | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/Makefile | 0
.../net/{ => intel_wired_lan}/ixgbevf/defines.h | 0
.../net/{ => intel_wired_lan}/ixgbevf/ethtool.c | 0
.../net/{ => intel_wired_lan}/ixgbevf/ixgbevf.h | 0
.../{ => intel_wired_lan}/ixgbevf/ixgbevf_main.c | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/mbx.c | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/mbx.h | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/regs.h | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/vf.c | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/vf.h | 0
107 files changed, 224 insertions(+), 233 deletions(-)
diff --git a/drivers/net/e100.c b/drivers/net/intel_wired_lan/e100.c
similarity index 100%
rename from drivers/net/e100.c
rename to drivers/net/intel_wired_lan/e100.c
diff --git a/drivers/net/e1000/Makefile
b/drivers/net/intel_wired_lan/e1000/Makefile
similarity index 100%
rename from drivers/net/e1000/Makefile
rename to drivers/net/intel_wired_lan/e1000/Makefile
diff --git a/drivers/net/e1000/e1000.h
b/drivers/net/intel_wired_lan/e1000/e1000.h
similarity index 100%
rename from drivers/net/e1000/e1000.h
rename to drivers/net/intel_wired_lan/e1000/e1000.h
diff --git a/drivers/net/e1000/e1000_ethtool.c
b/drivers/net/intel_wired_lan/e1000/e1000_ethtool.c
similarity index 100%
rename from drivers/net/e1000/e1000_ethtool.c
rename to drivers/net/intel_wired_lan/e1000/e1000_ethtool.c
diff --git a/drivers/net/e1000/e1000_hw.c
b/drivers/net/intel_wired_lan/e1000/e1000_hw.c
similarity index 100%
rename from drivers/net/e1000/e1000_hw.c
rename to drivers/net/intel_wired_lan/e1000/e1000_hw.c
diff --git a/drivers/net/e1000/e1000_hw.h
b/drivers/net/intel_wired_lan/e1000/e1000_hw.h
similarity index 100%
rename from drivers/net/e1000/e1000_hw.h
rename to drivers/net/intel_wired_lan/e1000/e1000_hw.h
diff --git a/drivers/net/e1000/e1000_main.c
b/drivers/net/intel_wired_lan/e1000/e1000_main.c
similarity index 100%
rename from drivers/net/e1000/e1000_main.c
rename to drivers/net/intel_wired_lan/e1000/e1000_main.c
diff --git a/drivers/net/e1000/e1000_osdep.h
b/drivers/net/intel_wired_lan/e1000/e1000_osdep.h
similarity index 100%
rename from drivers/net/e1000/e1000_osdep.h
rename to drivers/net/intel_wired_lan/e1000/e1000_osdep.h
diff --git a/drivers/net/e1000/e1000_param.c
b/drivers/net/intel_wired_lan/e1000/e1000_param.c
similarity index 100%
rename from drivers/net/e1000/e1000_param.c
rename to drivers/net/intel_wired_lan/e1000/e1000_param.c
diff --git a/drivers/net/e1000e/82571.c
b/drivers/net/intel_wired_lan/e1000e/82571.c
similarity index 100%
rename from drivers/net/e1000e/82571.c
rename to drivers/net/intel_wired_lan/e1000e/82571.c
diff --git a/drivers/net/e1000e/Makefile
b/drivers/net/intel_wired_lan/e1000e/Makefile
similarity index 100%
rename from drivers/net/e1000e/Makefile
rename to drivers/net/intel_wired_lan/e1000e/Makefile
diff --git a/drivers/net/e1000e/defines.h
b/drivers/net/intel_wired_lan/e1000e/defines.h
similarity index 100%
rename from drivers/net/e1000e/defines.h
rename to drivers/net/intel_wired_lan/e1000e/defines.h
diff --git a/drivers/net/e1000e/e1000.h
b/drivers/net/intel_wired_lan/e1000e/e1000.h
similarity index 100%
rename from drivers/net/e1000e/e1000.h
rename to drivers/net/intel_wired_lan/e1000e/e1000.h
diff --git a/drivers/net/e1000e/es2lan.c
b/drivers/net/intel_wired_lan/e1000e/es2lan.c
similarity index 100%
rename from drivers/net/e1000e/es2lan.c
rename to drivers/net/intel_wired_lan/e1000e/es2lan.c
diff --git a/drivers/net/e1000e/ethtool.c
b/drivers/net/intel_wired_lan/e1000e/ethtool.c
similarity index 100%
rename from drivers/net/e1000e/ethtool.c
rename to drivers/net/intel_wired_lan/e1000e/ethtool.c
diff --git a/drivers/net/e1000e/hw.h
b/drivers/net/intel_wired_lan/e1000e/hw.h
similarity index 100%
rename from drivers/net/e1000e/hw.h
rename to drivers/net/intel_wired_lan/e1000e/hw.h
diff --git a/drivers/net/e1000e/ich8lan.c
b/drivers/net/intel_wired_lan/e1000e/ich8lan.c
similarity index 100%
rename from drivers/net/e1000e/ich8lan.c
rename to drivers/net/intel_wired_lan/e1000e/ich8lan.c
diff --git a/drivers/net/e1000e/lib.c
b/drivers/net/intel_wired_lan/e1000e/lib.c
similarity index 100%
rename from drivers/net/e1000e/lib.c
rename to drivers/net/intel_wired_lan/e1000e/lib.c
diff --git a/drivers/net/e1000e/netdev.c
b/drivers/net/intel_wired_lan/e1000e/netdev.c
similarity index 100%
rename from drivers/net/e1000e/netdev.c
rename to drivers/net/intel_wired_lan/e1000e/netdev.c
diff --git a/drivers/net/e1000e/param.c
b/drivers/net/intel_wired_lan/e1000e/param.c
similarity index 100%
rename from drivers/net/e1000e/param.c
rename to drivers/net/intel_wired_lan/e1000e/param.c
diff --git a/drivers/net/e1000e/phy.c
b/drivers/net/intel_wired_lan/e1000e/phy.c
similarity index 100%
rename from drivers/net/e1000e/phy.c
rename to drivers/net/intel_wired_lan/e1000e/phy.c
diff --git a/drivers/net/igb/Makefile
b/drivers/net/intel_wired_lan/igb/Makefile
similarity index 100%
rename from drivers/net/igb/Makefile
rename to drivers/net/intel_wired_lan/igb/Makefile
diff --git a/drivers/net/igb/e1000_82575.c
b/drivers/net/intel_wired_lan/igb/e1000_82575.c
similarity index 100%
rename from drivers/net/igb/e1000_82575.c
rename to drivers/net/intel_wired_lan/igb/e1000_82575.c
diff --git a/drivers/net/igb/e1000_82575.h
b/drivers/net/intel_wired_lan/igb/e1000_82575.h
similarity index 100%
rename from drivers/net/igb/e1000_82575.h
rename to drivers/net/intel_wired_lan/igb/e1000_82575.h
diff --git a/drivers/net/igb/e1000_defines.h
b/drivers/net/intel_wired_lan/igb/e1000_defines.h
similarity index 100%
rename from drivers/net/igb/e1000_defines.h
rename to drivers/net/intel_wired_lan/igb/e1000_defines.h
diff --git a/drivers/net/igb/e1000_hw.h
b/drivers/net/intel_wired_lan/igb/e1000_hw.h
similarity index 100%
rename from drivers/net/igb/e1000_hw.h
rename to drivers/net/intel_wired_lan/igb/e1000_hw.h
diff --git a/drivers/net/igb/e1000_mac.c
b/drivers/net/intel_wired_lan/igb/e1000_mac.c
similarity index 100%
rename from drivers/net/igb/e1000_mac.c
rename to drivers/net/intel_wired_lan/igb/e1000_mac.c
diff --git a/drivers/net/igb/e1000_mac.h
b/drivers/net/intel_wired_lan/igb/e1000_mac.h
similarity index 100%
rename from drivers/net/igb/e1000_mac.h
rename to drivers/net/intel_wired_lan/igb/e1000_mac.h
diff --git a/drivers/net/igb/e1000_mbx.c
b/drivers/net/intel_wired_lan/igb/e1000_mbx.c
similarity index 100%
rename from drivers/net/igb/e1000_mbx.c
rename to drivers/net/intel_wired_lan/igb/e1000_mbx.c
diff --git a/drivers/net/igb/e1000_mbx.h
b/drivers/net/intel_wired_lan/igb/e1000_mbx.h
similarity index 100%
rename from drivers/net/igb/e1000_mbx.h
rename to drivers/net/intel_wired_lan/igb/e1000_mbx.h
diff --git a/drivers/net/igb/e1000_nvm.c
b/drivers/net/intel_wired_lan/igb/e1000_nvm.c
similarity index 100%
rename from drivers/net/igb/e1000_nvm.c
rename to drivers/net/intel_wired_lan/igb/e1000_nvm.c
diff --git a/drivers/net/igb/e1000_nvm.h
b/drivers/net/intel_wired_lan/igb/e1000_nvm.h
similarity index 100%
rename from drivers/net/igb/e1000_nvm.h
rename to drivers/net/intel_wired_lan/igb/e1000_nvm.h
diff --git a/drivers/net/igb/e1000_phy.c
b/drivers/net/intel_wired_lan/igb/e1000_phy.c
similarity index 100%
rename from drivers/net/igb/e1000_phy.c
rename to drivers/net/intel_wired_lan/igb/e1000_phy.c
diff --git a/drivers/net/igb/e1000_phy.h
b/drivers/net/intel_wired_lan/igb/e1000_phy.h
similarity index 100%
rename from drivers/net/igb/e1000_phy.h
rename to drivers/net/intel_wired_lan/igb/e1000_phy.h
diff --git a/drivers/net/igb/e1000_regs.h
b/drivers/net/intel_wired_lan/igb/e1000_regs.h
similarity index 100%
rename from drivers/net/igb/e1000_regs.h
rename to drivers/net/intel_wired_lan/igb/e1000_regs.h
diff --git a/drivers/net/igb/igb.h
b/drivers/net/intel_wired_lan/igb/igb.h
similarity index 100%
rename from drivers/net/igb/igb.h
rename to drivers/net/intel_wired_lan/igb/igb.h
diff --git a/drivers/net/igb/igb_ethtool.c
b/drivers/net/intel_wired_lan/igb/igb_ethtool.c
similarity index 100%
rename from drivers/net/igb/igb_ethtool.c
rename to drivers/net/intel_wired_lan/igb/igb_ethtool.c
diff --git a/drivers/net/igb/igb_main.c
b/drivers/net/intel_wired_lan/igb/igb_main.c
similarity index 100%
rename from drivers/net/igb/igb_main.c
rename to drivers/net/intel_wired_lan/igb/igb_main.c
diff --git a/drivers/net/igbvf/Makefile
b/drivers/net/intel_wired_lan/igbvf/Makefile
similarity index 100%
rename from drivers/net/igbvf/Makefile
rename to drivers/net/intel_wired_lan/igbvf/Makefile
diff --git a/drivers/net/igbvf/defines.h
b/drivers/net/intel_wired_lan/igbvf/defines.h
similarity index 100%
rename from drivers/net/igbvf/defines.h
rename to drivers/net/intel_wired_lan/igbvf/defines.h
diff --git a/drivers/net/igbvf/ethtool.c
b/drivers/net/intel_wired_lan/igbvf/ethtool.c
similarity index 100%
rename from drivers/net/igbvf/ethtool.c
rename to drivers/net/intel_wired_lan/igbvf/ethtool.c
diff --git a/drivers/net/igbvf/igbvf.h
b/drivers/net/intel_wired_lan/igbvf/igbvf.h
similarity index 100%
rename from drivers/net/igbvf/igbvf.h
rename to drivers/net/intel_wired_lan/igbvf/igbvf.h
diff --git a/drivers/net/igbvf/mbx.c
b/drivers/net/intel_wired_lan/igbvf/mbx.c
similarity index 100%
rename from drivers/net/igbvf/mbx.c
rename to drivers/net/intel_wired_lan/igbvf/mbx.c
diff --git a/drivers/net/igbvf/mbx.h
b/drivers/net/intel_wired_lan/igbvf/mbx.h
similarity index 100%
rename from drivers/net/igbvf/mbx.h
rename to drivers/net/intel_wired_lan/igbvf/mbx.h
diff --git a/drivers/net/igbvf/netdev.c
b/drivers/net/intel_wired_lan/igbvf/netdev.c
similarity index 100%
rename from drivers/net/igbvf/netdev.c
rename to drivers/net/intel_wired_lan/igbvf/netdev.c
diff --git a/drivers/net/igbvf/regs.h
b/drivers/net/intel_wired_lan/igbvf/regs.h
similarity index 100%
rename from drivers/net/igbvf/regs.h
rename to drivers/net/intel_wired_lan/igbvf/regs.h
diff --git a/drivers/net/igbvf/vf.c
b/drivers/net/intel_wired_lan/igbvf/vf.c
similarity index 100%
rename from drivers/net/igbvf/vf.c
rename to drivers/net/intel_wired_lan/igbvf/vf.c
diff --git a/drivers/net/igbvf/vf.h
b/drivers/net/intel_wired_lan/igbvf/vf.h
similarity index 100%
rename from drivers/net/igbvf/vf.h
rename to drivers/net/intel_wired_lan/igbvf/vf.h
diff --git a/drivers/net/ixgb/Makefile
b/drivers/net/intel_wired_lan/ixgb/Makefile
similarity index 100%
rename from drivers/net/ixgb/Makefile
rename to drivers/net/intel_wired_lan/ixgb/Makefile
diff --git a/drivers/net/ixgb/ixgb.h
b/drivers/net/intel_wired_lan/ixgb/ixgb.h
similarity index 100%
rename from drivers/net/ixgb/ixgb.h
rename to drivers/net/intel_wired_lan/ixgb/ixgb.h
diff --git a/drivers/net/ixgb/ixgb_ee.c
b/drivers/net/intel_wired_lan/ixgb/ixgb_ee.c
similarity index 100%
rename from drivers/net/ixgb/ixgb_ee.c
rename to drivers/net/intel_wired_lan/ixgb/ixgb_ee.c
diff --git a/drivers/net/ixgb/ixgb_ee.h
b/drivers/net/intel_wired_lan/ixgb/ixgb_ee.h
similarity index 100%
rename from drivers/net/ixgb/ixgb_ee.h
rename to drivers/net/intel_wired_lan/ixgb/ixgb_ee.h
diff --git a/drivers/net/ixgb/ixgb_ethtool.c
b/drivers/net/intel_wired_lan/ixgb/ixgb_ethtool.c
similarity index 100%
rename from drivers/net/ixgb/ixgb_ethtool.c
rename to drivers/net/intel_wired_lan/ixgb/ixgb_ethtool.c
diff --git a/drivers/net/ixgb/ixgb_hw.c
b/drivers/net/intel_wired_lan/ixgb/ixgb_hw.c
similarity index 100%
rename from drivers/net/ixgb/ixgb_hw.c
rename to drivers/net/intel_wired_lan/ixgb/ixgb_hw.c
diff --git a/drivers/net/ixgb/ixgb_hw.h
b/drivers/net/intel_wired_lan/ixgb/ixgb_hw.h
similarity index 100%
rename from drivers/net/ixgb/ixgb_hw.h
rename to drivers/net/intel_wired_lan/ixgb/ixgb_hw.h
diff --git a/drivers/net/ixgb/ixgb_ids.h
b/drivers/net/intel_wired_lan/ixgb/ixgb_ids.h
similarity index 100%
rename from drivers/net/ixgb/ixgb_ids.h
rename to drivers/net/intel_wired_lan/ixgb/ixgb_ids.h
diff --git a/drivers/net/ixgb/ixgb_main.c
b/drivers/net/intel_wired_lan/ixgb/ixgb_main.c
similarity index 100%
rename from drivers/net/ixgb/ixgb_main.c
rename to drivers/net/intel_wired_lan/ixgb/ixgb_main.c
diff --git a/drivers/net/ixgb/ixgb_osdep.h
b/drivers/net/intel_wired_lan/ixgb/ixgb_osdep.h
similarity index 100%
rename from drivers/net/ixgb/ixgb_osdep.h
rename to drivers/net/intel_wired_lan/ixgb/ixgb_osdep.h
diff --git a/drivers/net/ixgb/ixgb_param.c
b/drivers/net/intel_wired_lan/ixgb/ixgb_param.c
similarity index 100%
rename from drivers/net/ixgb/ixgb_param.c
rename to drivers/net/intel_wired_lan/ixgb/ixgb_param.c
diff --git a/drivers/net/ixgbe/Makefile
b/drivers/net/intel_wired_lan/ixgbe/Makefile
similarity index 100%
rename from drivers/net/ixgbe/Makefile
rename to drivers/net/intel_wired_lan/ixgbe/Makefile
diff --git a/drivers/net/ixgbe/ixgbe.h
b/drivers/net/intel_wired_lan/ixgbe/ixgbe.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe.h
diff --git a/drivers/net/ixgbe/ixgbe_82598.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_82598.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_82598.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_82598.c
diff --git a/drivers/net/ixgbe/ixgbe_82599.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_82599.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_82599.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_82599.c
diff --git a/drivers/net/ixgbe/ixgbe_common.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_common.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_common.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_common.c
diff --git a/drivers/net/ixgbe/ixgbe_common.h
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_common.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_common.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_common.h
diff --git a/drivers/net/ixgbe/ixgbe_dcb.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb.c
diff --git a/drivers/net/ixgbe/ixgbe_dcb.h
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb.h
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82598.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82598.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb_82598.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82598.c
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82598.h
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82598.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb_82598.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82598.h
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82599.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82599.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb_82599.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82599.c
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82599.h
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82599.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb_82599.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82599.h
diff --git a/drivers/net/ixgbe/ixgbe_dcb_nl.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_nl.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb_nl.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_nl.c
diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_ethtool.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_ethtool.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_ethtool.c
diff --git a/drivers/net/ixgbe/ixgbe_fcoe.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_fcoe.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_fcoe.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_fcoe.c
diff --git a/drivers/net/ixgbe/ixgbe_fcoe.h
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_fcoe.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_fcoe.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_fcoe.h
diff --git a/drivers/net/ixgbe/ixgbe_main.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_main.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_main.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_main.c
diff --git a/drivers/net/ixgbe/ixgbe_mbx.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_mbx.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_mbx.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_mbx.c
diff --git a/drivers/net/ixgbe/ixgbe_mbx.h
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_mbx.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_mbx.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_mbx.h
diff --git a/drivers/net/ixgbe/ixgbe_phy.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_phy.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_phy.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_phy.c
diff --git a/drivers/net/ixgbe/ixgbe_phy.h
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_phy.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_phy.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_phy.h
diff --git a/drivers/net/ixgbe/ixgbe_sriov.c
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_sriov.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_sriov.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_sriov.c
diff --git a/drivers/net/ixgbe/ixgbe_sriov.h
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_sriov.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_sriov.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_sriov.h
diff --git a/drivers/net/ixgbe/ixgbe_type.h
b/drivers/net/intel_wired_lan/ixgbe/ixgbe_type.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_type.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_type.h
diff --git a/drivers/net/ixgbevf/Makefile
b/drivers/net/intel_wired_lan/ixgbevf/Makefile
similarity index 100%
rename from drivers/net/ixgbevf/Makefile
rename to drivers/net/intel_wired_lan/ixgbevf/Makefile
diff --git a/drivers/net/ixgbevf/defines.h
b/drivers/net/intel_wired_lan/ixgbevf/defines.h
similarity index 100%
rename from drivers/net/ixgbevf/defines.h
rename to drivers/net/intel_wired_lan/ixgbevf/defines.h
diff --git a/drivers/net/ixgbevf/ethtool.c
b/drivers/net/intel_wired_lan/ixgbevf/ethtool.c
similarity index 100%
rename from drivers/net/ixgbevf/ethtool.c
rename to drivers/net/intel_wired_lan/ixgbevf/ethtool.c
diff --git a/drivers/net/ixgbevf/ixgbevf.h
b/drivers/net/intel_wired_lan/ixgbevf/ixgbevf.h
similarity index 100%
rename from drivers/net/ixgbevf/ixgbevf.h
rename to drivers/net/intel_wired_lan/ixgbevf/ixgbevf.h
diff --git a/drivers/net/ixgbevf/ixgbevf_main.c
b/drivers/net/intel_wired_lan/ixgbevf/ixgbevf_main.c
similarity index 100%
rename from drivers/net/ixgbevf/ixgbevf_main.c
rename to drivers/net/intel_wired_lan/ixgbevf/ixgbevf_main.c
diff --git a/drivers/net/ixgbevf/mbx.c
b/drivers/net/intel_wired_lan/ixgbevf/mbx.c
similarity index 100%
rename from drivers/net/ixgbevf/mbx.c
rename to drivers/net/intel_wired_lan/ixgbevf/mbx.c
diff --git a/drivers/net/ixgbevf/mbx.h
b/drivers/net/intel_wired_lan/ixgbevf/mbx.h
similarity index 100%
rename from drivers/net/ixgbevf/mbx.h
rename to drivers/net/intel_wired_lan/ixgbevf/mbx.h
diff --git a/drivers/net/ixgbevf/regs.h
b/drivers/net/intel_wired_lan/ixgbevf/regs.h
similarity index 100%
rename from drivers/net/ixgbevf/regs.h
rename to drivers/net/intel_wired_lan/ixgbevf/regs.h
diff --git a/drivers/net/ixgbevf/vf.c
b/drivers/net/intel_wired_lan/ixgbevf/vf.c
similarity index 100%
rename from drivers/net/ixgbevf/vf.c
rename to drivers/net/intel_wired_lan/ixgbevf/vf.c
diff --git a/drivers/net/ixgbevf/vf.h
b/drivers/net/intel_wired_lan/ixgbevf/vf.h
similarity index 100%
rename from drivers/net/ixgbevf/vf.h
rename to drivers/net/intel_wired_lan/ixgbevf/vf.h
diff --git a/Documentation/networking/e100.txt
b/Documentation/networking/intel_wired_lan/e100.txt
similarity index 100%
rename from Documentation/networking/e100.txt
rename to Documentation/networking/intel_wired_lan/e100.txt
diff --git a/Documentation/networking/e1000.txt
b/Documentation/networking/intel_wired_lan/e1000.txt
similarity index 100%
rename from Documentation/networking/e1000.txt
rename to Documentation/networking/intel_wired_lan/e1000.txt
diff --git a/Documentation/networking/e1000e.txt
b/Documentation/networking/intel_wired_lan/e1000e.txt
similarity index 100%
rename from Documentation/networking/e1000e.txt
rename to Documentation/networking/intel_wired_lan/e1000e.txt
diff --git a/Documentation/networking/igb.txt
b/Documentation/networking/intel_wired_lan/igb.txt
similarity index 100%
rename from Documentation/networking/igb.txt
rename to Documentation/networking/intel_wired_lan/igb.txt
diff --git a/Documentation/networking/igbvf.txt
b/Documentation/networking/intel_wired_lan/igbvf.txt
similarity index 100%
rename from Documentation/networking/igbvf.txt
rename to Documentation/networking/intel_wired_lan/igbvf.txt
diff --git a/Documentation/networking/ixgb.txt
b/Documentation/networking/intel_wired_lan/ixgb.txt
similarity index 100%
rename from Documentation/networking/ixgb.txt
rename to Documentation/networking/intel_wired_lan/ixgb.txt
diff --git a/Documentation/networking/ixgbe.txt
b/Documentation/networking/intel_wired_lan/ixgbe.txt
similarity index 100%
rename from Documentation/networking/ixgbe.txt
rename to Documentation/networking/intel_wired_lan/ixgbe.txt
diff --git a/Documentation/networking/ixgbevf.txt
b/Documentation/networking/intel_wired_lan/ixgbevf.txt
similarity index 100%
rename from Documentation/networking/ixgbevf.txt
rename to Documentation/networking/intel_wired_lan/ixgbevf.txt
diff --git a/MAINTAINERS b/MAINTAINERS
index ba8603c..b086404 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3096,22 +3096,8 @@ M: John Ronciak <john.ronciak@intel.com>
L: e1000-devel@lists.sourceforge.net
W: http://e1000.sourceforge.net/
S: Supported
-F: Documentation/networking/e100.txt
-F: Documentation/networking/e1000.txt
-F: Documentation/networking/e1000e.txt
-F: Documentation/networking/igb.txt
-F: Documentation/networking/igbvf.txt
-F: Documentation/networking/ixgb.txt
-F: Documentation/networking/ixgbe.txt
-F: Documentation/networking/ixgbevf.txt
-F: drivers/net/e100.c
-F: drivers/net/e1000/
-F: drivers/net/e1000e/
-F: drivers/net/igb/
-F: drivers/net/igbvf/
-F: drivers/net/ixgb/
-F: drivers/net/ixgbe/
-F: drivers/net/ixgbevf/
+F: Documentation/networking/intel_wired_lan/
+F: drivers/net/intel_wired_lan/
INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
L: linux-wireless@vger.kernel.org
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 13d01f3..4d6448d 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -1495,32 +1495,6 @@ config TC35815
depends on NET_PCI && PCI && MIPS
select PHYLIB
-config E100
- tristate "Intel(R) PRO/100+ support"
- depends on NET_PCI && PCI
- select MII
- ---help---
- This driver supports Intel(R) PRO/100 family of adapters.
- To verify that your adapter is supported, find the board ID number
- on the adapter. Look for a label that has a barcode and a number
- in the format 123456-001 (six digits hyphen three digits).
-
- Use the above information and the Adapter & Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- to identify the adapter.
-
- For the latest Intel PRO/100 network driver for Linux, see:
-
- <http://appsr.intel.com/scripts-df/support_intel.asp>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/e100.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called e100.
-
config LNE390
tristate "Mylex EISA LNE390A/B support (EXPERIMENTAL)"
depends on NET_PCI && EISA && EXPERIMENTAL
@@ -1995,6 +1969,8 @@ source "drivers/net/fs_enet/Kconfig"
source "drivers/net/octeon/Kconfig"
+source "drivers/net/intel_wired_lan/Kconfig.100"
+
endif # NET_ETHERNET
#
@@ -2059,45 +2035,7 @@ config DL2K
To compile this driver as a module, choose M here: the
module will be called dl2k.
-config E1000
- tristate "Intel(R) PRO/1000 Gigabit Ethernet support"
- depends on PCI
- ---help---
- This driver supports Intel(R) PRO/1000 gigabit ethernet family of
- adapters. For more information on how to identify your adapter, go
- to the Adapter & Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/e1000.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called e1000.
-
-config E1000E
- tristate "Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support"
- depends on PCI && (!SPARC32 || BROKEN)
- ---help---
- This driver supports the PCI-Express Intel(R) PRO/1000 gigabit
- ethernet family of adapters. For PCI or PCI-X e1000 adapters,
- use the regular e1000 driver For more information on how to
- identify your adapter, go to the Adapter & Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- To compile this driver as a module, choose M here. The module
- will be called e1000e.
+source "drivers/net/intel_wired_lan/Kconfig.1000"
config IP1000
tristate "IP1000 Gigabit Ethernet support"
@@ -2109,57 +2047,6 @@ config IP1000
To compile this driver as a module, choose M here: the module
will be called ipg. This is recommended.
-config IGB
- tristate "Intel(R) 82575/82576 PCI-Express Gigabit Ethernet
support"
- depends on PCI
- ---help---
- This driver supports Intel(R) 82575/82576 gigabit ethernet
family of
- adapters. For more information on how to identify your
adapter, go
- to the Adapter & Driver ID Guide at:
-
-
<http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/e1000.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called igb.
-
-config IGB_DCA
- bool "Direct Cache Access (DCA) Support"
- default y
- depends on IGB && DCA && !(IGB=y && DCA=m)
- ---help---
- Say Y here if you want to use Direct Cache Access (DCA) in the
- driver. DCA is a method for warming the CPU cache before data
- is used, with the intent of lessening the impact of cache misses.
-
-config IGBVF
- tristate "Intel(R) 82576 Virtual Function Ethernet support"
- depends on PCI
- ---help---
- This driver supports Intel(R) 82576 virtual functions. For
more
- information on how to identify your adapter, go to the Adapter
&
- Driver ID Guide at:
-
-
<http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/e1000.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called igbvf.
-
source "drivers/net/ixp2000/Kconfig"
config MYRI_SBUS
@@ -2515,17 +2402,6 @@ config S6GMAC
source "drivers/net/stmmac/Kconfig"
-config PCH_GBE
- tristate "PCH Gigabit Ethernet"
- depends on PCI
- ---help---
- This is a gigabit ethernet driver for Topcliff PCH.
- Topcliff PCH is the platform controller hub that is used in Intel's
- general embedded platform.
- Topcliff PCH has Gigabit Ethernet interface.
- Using this interface, it is able to access system devices connected
- to Gigabit Ethernet.
- This driver enables Gigabit Ethernet function.
endif # NETDEV_1000
@@ -2659,94 +2535,14 @@ config EHEA
To compile the driver as a module, choose M here. The module
will be called ehea.
+source "drivers/net/intel_wired_lan/Kconfig.10000"
+
config ENIC
tristate "Cisco VIC Ethernet NIC Support"
depends on PCI && INET
help
This enables the support for the Cisco VIC Ethernet card.
-config IXGBE
- tristate "Intel(R) 10GbE PCI Express adapters support"
- depends on PCI && INET
- select MDIO
- ---help---
- This driver supports Intel(R) 10GbE PCI Express family of
- adapters. For more information on how to identify your adapter, go
- to the Adapter & Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- To compile this driver as a module, choose M here. The module
- will be called ixgbe.
-
-config IXGBE_DCA
- bool "Direct Cache Access (DCA) Support"
- default y
- depends on IXGBE && DCA && !(IXGBE=y && DCA=m)
- ---help---
- Say Y here if you want to use Direct Cache Access (DCA) in the
- driver. DCA is a method for warming the CPU cache before data
- is used, with the intent of lessening the impact of cache misses.
-
-config IXGBE_DCB
- bool "Data Center Bridging (DCB) Support"
- default n
- depends on IXGBE && DCB
- ---help---
- Say Y here if you want to use Data Center Bridging (DCB) in the
- driver.
-
- If unsure, say N.
-
-config IXGBEVF
- tristate "Intel(R) 82599 Virtual Function Ethernet support"
- depends on PCI_MSI
- ---help---
- This driver supports Intel(R) 82599 virtual functions. For
more
- information on how to identify your adapter, go to the Adapter
&
- Driver ID Guide at:
-
- <http://support.intel.com/support/network/sb/CS-008441.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/ixgbevf.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called ixgbevf. MSI-X interrupt support is required
- for this driver to work correctly.
-
-config IXGB
- tristate "Intel(R) PRO/10GbE support"
- depends on PCI
- ---help---
- This driver supports Intel(R) PRO/10GbE family of adapters for
- PCI-X type cards. For PCI-E type cards, use the "ixgbe" driver
- instead. For more information on how to identify your adapter, go
- to the Adapter & Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/ixgb.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called ixgb.
-
config S2IO
tristate "S2IO 10Gbe XFrame NIC"
depends on PCI
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index b8bf93d..e457b3c 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -8,14 +8,14 @@ obj-$(CONFIG_PHYLIB) += phy/
obj-$(CONFIG_TI_DAVINCI_EMAC) += davinci_emac.o
-obj-$(CONFIG_E1000) += e1000/
-obj-$(CONFIG_E1000E) += e1000e/
+obj-$(CONFIG_E1000) += intel_wired_lan/e1000/
+obj-$(CONFIG_E1000E) += intel_wired_lan/e1000e/
obj-$(CONFIG_IBM_NEW_EMAC) += ibm_newemac/
-obj-$(CONFIG_IGB) += igb/
-obj-$(CONFIG_IGBVF) += igbvf/
-obj-$(CONFIG_IXGBE) += ixgbe/
-obj-$(CONFIG_IXGBEVF) += ixgbevf/
-obj-$(CONFIG_IXGB) += ixgb/
+obj-$(CONFIG_IGB) += intel_wired_lan/igb/
+obj-$(CONFIG_IGBVF) += intel_wired_lan/igbvf/
+obj-$(CONFIG_IXGBE) += intel_wired_lan/ixgbe/
+obj-$(CONFIG_IXGBEVF) += intel_wired_lan/ixgbevf/
+obj-$(CONFIG_IXGB) += intel_wired_lan/ixgb/
obj-$(CONFIG_IP1000) += ipg.o
obj-$(CONFIG_CHELSIO_T1) += chelsio/
obj-$(CONFIG_CHELSIO_T3) += cxgb3/
@@ -68,7 +68,7 @@ obj-$(CONFIG_VORTEX) += 3c59x.o
obj-$(CONFIG_TYPHOON) += typhoon.o
obj-$(CONFIG_NE2K_PCI) += ne2k-pci.o 8390.o
obj-$(CONFIG_PCNET32) += pcnet32.o
-obj-$(CONFIG_E100) += e100.o
+obj-$(CONFIG_E100) += intel_wired_lan/e100.o
obj-$(CONFIG_TLAN) += tlan.o
obj-$(CONFIG_EPIC100) += epic100.o
obj-$(CONFIG_SMSC9420) += smsc9420.o
diff --git a/drivers/net/intel_wired_lan/Kconfig.100
b/drivers/net/intel_wired_lan/Kconfig.100
new file mode 100644
index 0000000..6651ae9
--- /dev/null
+++ b/drivers/net/intel_wired_lan/Kconfig.100
@@ -0,0 +1,25 @@
+config E100
+ tristate "Intel(R) PRO/100+ support"
+ depends on NET_PCI && PCI
+ select MII
+ ---help---
+ This driver supports Intel(R) PRO/100 family of adapters.
+ To verify that your adapter is supported, find the board ID number
+ on the adapter. Look for a label that has a barcode and a number
+ in the format 123456-001 (six digits hyphen three digits).
+
+ Use the above information and the Adapter & Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ to identify the adapter.
+
+ For the latest Intel PRO/100 network driver for Linux, see:
+
+ <http://appsr.intel.com/scripts-df/support_intel.asp>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/e100.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called e100.
diff --git a/drivers/net/intel_wired_lan/Kconfig.1000
b/drivers/net/intel_wired_lan/Kconfig.1000
new file mode 100644
index 0000000..4a7e13a
--- /dev/null
+++ b/drivers/net/intel_wired_lan/Kconfig.1000
@@ -0,0 +1,102 @@
+config E1000
+ tristate "Intel(R) PRO/1000 Gigabit Ethernet support"
+ depends on PCI
+ ---help---
+ This driver supports Intel(R) PRO/1000 gigabit ethernet family of
+ adapters. For more information on how to identify your adapter, go
+ to the Adapter & Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/e1000.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called e1000.
+
+config E1000E
+ tristate "Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support"
+ depends on PCI && (!SPARC32 || BROKEN)
+ ---help---
+ This driver supports the PCI-Express Intel(R) PRO/1000 gigabit
+ ethernet family of adapters. For PCI or PCI-X e1000 adapters,
+ use the regular e1000 driver For more information on how to
+ identify your adapter, go to the Adapter & Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ To compile this driver as a module, choose M here. The module
+ will be called e1000e.
+
+config IGB
+ tristate "Intel(R) 82575/82576 PCI-Express Gigabit Ethernet
support"
+ depends on PCI
+ ---help---
+ This driver supports Intel(R) 82575/82576 gigabit ethernet
family of
+ adapters. For more information on how to identify your
adapter, go
+ to the Adapter & Driver ID Guide at:
+
+
<http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/e1000.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called igb.
+
+config IGB_DCA
+ bool "Direct Cache Access (DCA) Support"
+ default y
+ depends on IGB && DCA && !(IGB=y && DCA=m)
+ ---help---
+ Say Y here if you want to use Direct Cache Access (DCA) in the
+ driver. DCA is a method for warming the CPU cache before data
+ is used, with the intent of lessening the impact of cache misses.
+
+config IGBVF
+ tristate "Intel(R) 82576 Virtual Function Ethernet support"
+ depends on PCI
+ ---help---
+ This driver supports Intel(R) 82576 virtual functions. For
more
+ information on how to identify your adapter, go to the Adapter
&
+ Driver ID Guide at:
+
+
<http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/e1000.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called igbvf.
+
+config PCH_GBE
+ tristate "PCH Gigabit Ethernet"
+ depends on PCI
+ ---help---
+ This is a gigabit ethernet driver for Topcliff PCH.
+ Topcliff PCH is the platform controller hub that is used in Intel's
+ general embedded platform.
+ Topcliff PCH has Gigabit Ethernet interface.
+ Using this interface, it is able to access system devices connected
+ to Gigabit Ethernet.
+ This driver enables Gigabit Ethernet function.
diff --git a/drivers/net/intel_wired_lan/Kconfig.10000
b/drivers/net/intel_wired_lan/Kconfig.10000
new file mode 100644
index 0000000..ef35ebd
--- /dev/null
+++ b/drivers/net/intel_wired_lan/Kconfig.10000
@@ -0,0 +1,81 @@
+config IXGBE
+ tristate "Intel(R) 10GbE PCI Express adapters support"
+ depends on PCI && INET
+ select MDIO
+ ---help---
+ This driver supports Intel(R) 10GbE PCI Express family of
+ adapters. For more information on how to identify your adapter, go
+ to the Adapter & Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ To compile this driver as a module, choose M here. The module
+ will be called ixgbe.
+
+config IXGBE_DCA
+ bool "Direct Cache Access (DCA) Support"
+ default y
+ depends on IXGBE && DCA && !(IXGBE=y && DCA=m)
+ ---help---
+ Say Y here if you want to use Direct Cache Access (DCA) in the
+ driver. DCA is a method for warming the CPU cache before data
+ is used, with the intent of lessening the impact of cache misses.
+
+config IXGBE_DCB
+ bool "Data Center Bridging (DCB) Support"
+ default n
+ depends on IXGBE && DCB
+ ---help---
+ Say Y here if you want to use Data Center Bridging (DCB) in the
+ driver.
+
+ If unsure, say N.
+
+config IXGBEVF
+ tristate "Intel(R) 82599 Virtual Function Ethernet support"
+ depends on PCI_MSI
+ ---help---
+ This driver supports Intel(R) 82599 virtual functions. For
more
+ information on how to identify your adapter, go to the Adapter
&
+ Driver ID Guide at:
+
+ <http://support.intel.com/support/network/sb/CS-008441.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/ixgbevf.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called ixgbevf. MSI-X interrupt support is required
+ for this driver to work correctly.
+
+config IXGB
+ tristate "Intel(R) PRO/10GbE support"
+ depends on PCI
+ ---help---
+ This driver supports Intel(R) PRO/10GbE family of adapters for
+ PCI-X type cards. For PCI-E type cards, use the "ixgbe" driver
+ instead. For more information on how to identify your adapter, go
+ to the Adapter & Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/ixgb.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called ixgb.
[-- Attachment #1.2: RFC-intel_wired_lan.patch --]
[-- Type: text/x-patch, Size: 48114 bytes --]
From: Joe Perches <joe@perches.com>
intel: Create directory intel_wired_lan
Perhaps it's better to move drivers from the very populated
drivers/net directory into vendor specific directories similar
to the Atheros approach used for drivers/net/wireless/ath/
Move intel drivers and Documentation to separate directories
Create drivers/net/intel_wired_lan/Kconfig.<speed> and Makefile
Modify drivers/net/Kconfig and Makefile
Update MAINTAINERS
Signed-off-by: Joe Perches <joe@perches.com>
---
.../networking/{ => intel_wired_lan}/e100.txt | 0
.../networking/{ => intel_wired_lan}/e1000.txt | 0
.../networking/{ => intel_wired_lan}/e1000e.txt | 0
.../networking/{ => intel_wired_lan}/igb.txt | 0
.../networking/{ => intel_wired_lan}/igbvf.txt | 0
.../networking/{ => intel_wired_lan}/ixgb.txt | 0
.../networking/{ => intel_wired_lan}/ixgbe.txt | 0
.../networking/{ => intel_wired_lan}/ixgbevf.txt | 0
MAINTAINERS | 18 +--
drivers/net/Kconfig | 214 +-------------------
drivers/net/Makefile | 16 +-
drivers/net/intel_wired_lan/Kconfig.100 | 25 +++
drivers/net/intel_wired_lan/Kconfig.1000 | 102 ++++++++++
drivers/net/intel_wired_lan/Kconfig.10000 | 81 ++++++++
drivers/net/{ => intel_wired_lan}/e100.c | 0
drivers/net/{ => intel_wired_lan}/e1000/Makefile | 0
drivers/net/{ => intel_wired_lan}/e1000/e1000.h | 0
.../{ => intel_wired_lan}/e1000/e1000_ethtool.c | 0
drivers/net/{ => intel_wired_lan}/e1000/e1000_hw.c | 0
drivers/net/{ => intel_wired_lan}/e1000/e1000_hw.h | 0
.../net/{ => intel_wired_lan}/e1000/e1000_main.c | 0
.../net/{ => intel_wired_lan}/e1000/e1000_osdep.h | 0
.../net/{ => intel_wired_lan}/e1000/e1000_param.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/82571.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/Makefile | 0
drivers/net/{ => intel_wired_lan}/e1000e/defines.h | 0
drivers/net/{ => intel_wired_lan}/e1000e/e1000.h | 0
drivers/net/{ => intel_wired_lan}/e1000e/es2lan.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/ethtool.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/hw.h | 0
drivers/net/{ => intel_wired_lan}/e1000e/ich8lan.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/lib.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/netdev.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/param.c | 0
drivers/net/{ => intel_wired_lan}/e1000e/phy.c | 0
drivers/net/{ => intel_wired_lan}/igb/Makefile | 0
.../net/{ => intel_wired_lan}/igb/e1000_82575.c | 0
.../net/{ => intel_wired_lan}/igb/e1000_82575.h | 0
.../net/{ => intel_wired_lan}/igb/e1000_defines.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_hw.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_mac.c | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_mac.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_mbx.c | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_mbx.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_nvm.c | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_nvm.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_phy.c | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_phy.h | 0
drivers/net/{ => intel_wired_lan}/igb/e1000_regs.h | 0
drivers/net/{ => intel_wired_lan}/igb/igb.h | 0
.../net/{ => intel_wired_lan}/igb/igb_ethtool.c | 0
drivers/net/{ => intel_wired_lan}/igb/igb_main.c | 0
drivers/net/{ => intel_wired_lan}/igbvf/Makefile | 0
drivers/net/{ => intel_wired_lan}/igbvf/defines.h | 0
drivers/net/{ => intel_wired_lan}/igbvf/ethtool.c | 0
drivers/net/{ => intel_wired_lan}/igbvf/igbvf.h | 0
drivers/net/{ => intel_wired_lan}/igbvf/mbx.c | 0
drivers/net/{ => intel_wired_lan}/igbvf/mbx.h | 0
drivers/net/{ => intel_wired_lan}/igbvf/netdev.c | 0
drivers/net/{ => intel_wired_lan}/igbvf/regs.h | 0
drivers/net/{ => intel_wired_lan}/igbvf/vf.c | 0
drivers/net/{ => intel_wired_lan}/igbvf/vf.h | 0
drivers/net/{ => intel_wired_lan}/ixgb/Makefile | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb.h | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_ee.c | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_ee.h | 0
.../net/{ => intel_wired_lan}/ixgb/ixgb_ethtool.c | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_hw.c | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_hw.h | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_ids.h | 0
drivers/net/{ => intel_wired_lan}/ixgb/ixgb_main.c | 0
.../net/{ => intel_wired_lan}/ixgb/ixgb_osdep.h | 0
.../net/{ => intel_wired_lan}/ixgb/ixgb_param.c | 0
drivers/net/{ => intel_wired_lan}/ixgbe/Makefile | 0
drivers/net/{ => intel_wired_lan}/ixgbe/ixgbe.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_82598.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_82599.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_common.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_common.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_dcb.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_dcb.h | 0
.../{ => intel_wired_lan}/ixgbe/ixgbe_dcb_82598.c | 0
.../{ => intel_wired_lan}/ixgbe/ixgbe_dcb_82598.h | 0
.../{ => intel_wired_lan}/ixgbe/ixgbe_dcb_82599.c | 0
.../{ => intel_wired_lan}/ixgbe/ixgbe_dcb_82599.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_dcb_nl.c | 0
.../{ => intel_wired_lan}/ixgbe/ixgbe_ethtool.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_fcoe.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_fcoe.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_main.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_mbx.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_mbx.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_phy.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_phy.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_sriov.c | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_sriov.h | 0
.../net/{ => intel_wired_lan}/ixgbe/ixgbe_type.h | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/Makefile | 0
.../net/{ => intel_wired_lan}/ixgbevf/defines.h | 0
.../net/{ => intel_wired_lan}/ixgbevf/ethtool.c | 0
.../net/{ => intel_wired_lan}/ixgbevf/ixgbevf.h | 0
.../{ => intel_wired_lan}/ixgbevf/ixgbevf_main.c | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/mbx.c | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/mbx.h | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/regs.h | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/vf.c | 0
drivers/net/{ => intel_wired_lan}/ixgbevf/vf.h | 0
107 files changed, 224 insertions(+), 233 deletions(-)
diff --git a/drivers/net/e100.c b/drivers/net/intel_wired_lan/e100.c
similarity index 100%
rename from drivers/net/e100.c
rename to drivers/net/intel_wired_lan/e100.c
diff --git a/drivers/net/e1000/Makefile b/drivers/net/intel_wired_lan/e1000/Makefile
similarity index 100%
rename from drivers/net/e1000/Makefile
rename to drivers/net/intel_wired_lan/e1000/Makefile
diff --git a/drivers/net/e1000/e1000.h b/drivers/net/intel_wired_lan/e1000/e1000.h
similarity index 100%
rename from drivers/net/e1000/e1000.h
rename to drivers/net/intel_wired_lan/e1000/e1000.h
diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/intel_wired_lan/e1000/e1000_ethtool.c
similarity index 100%
rename from drivers/net/e1000/e1000_ethtool.c
rename to drivers/net/intel_wired_lan/e1000/e1000_ethtool.c
diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/intel_wired_lan/e1000/e1000_hw.c
similarity index 100%
rename from drivers/net/e1000/e1000_hw.c
rename to drivers/net/intel_wired_lan/e1000/e1000_hw.c
diff --git a/drivers/net/e1000/e1000_hw.h b/drivers/net/intel_wired_lan/e1000/e1000_hw.h
similarity index 100%
rename from drivers/net/e1000/e1000_hw.h
rename to drivers/net/intel_wired_lan/e1000/e1000_hw.h
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/intel_wired_lan/e1000/e1000_main.c
similarity index 100%
rename from drivers/net/e1000/e1000_main.c
rename to drivers/net/intel_wired_lan/e1000/e1000_main.c
diff --git a/drivers/net/e1000/e1000_osdep.h b/drivers/net/intel_wired_lan/e1000/e1000_osdep.h
similarity index 100%
rename from drivers/net/e1000/e1000_osdep.h
rename to drivers/net/intel_wired_lan/e1000/e1000_osdep.h
diff --git a/drivers/net/e1000/e1000_param.c b/drivers/net/intel_wired_lan/e1000/e1000_param.c
similarity index 100%
rename from drivers/net/e1000/e1000_param.c
rename to drivers/net/intel_wired_lan/e1000/e1000_param.c
diff --git a/drivers/net/e1000e/82571.c b/drivers/net/intel_wired_lan/e1000e/82571.c
similarity index 100%
rename from drivers/net/e1000e/82571.c
rename to drivers/net/intel_wired_lan/e1000e/82571.c
diff --git a/drivers/net/e1000e/Makefile b/drivers/net/intel_wired_lan/e1000e/Makefile
similarity index 100%
rename from drivers/net/e1000e/Makefile
rename to drivers/net/intel_wired_lan/e1000e/Makefile
diff --git a/drivers/net/e1000e/defines.h b/drivers/net/intel_wired_lan/e1000e/defines.h
similarity index 100%
rename from drivers/net/e1000e/defines.h
rename to drivers/net/intel_wired_lan/e1000e/defines.h
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/intel_wired_lan/e1000e/e1000.h
similarity index 100%
rename from drivers/net/e1000e/e1000.h
rename to drivers/net/intel_wired_lan/e1000e/e1000.h
diff --git a/drivers/net/e1000e/es2lan.c b/drivers/net/intel_wired_lan/e1000e/es2lan.c
similarity index 100%
rename from drivers/net/e1000e/es2lan.c
rename to drivers/net/intel_wired_lan/e1000e/es2lan.c
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/intel_wired_lan/e1000e/ethtool.c
similarity index 100%
rename from drivers/net/e1000e/ethtool.c
rename to drivers/net/intel_wired_lan/e1000e/ethtool.c
diff --git a/drivers/net/e1000e/hw.h b/drivers/net/intel_wired_lan/e1000e/hw.h
similarity index 100%
rename from drivers/net/e1000e/hw.h
rename to drivers/net/intel_wired_lan/e1000e/hw.h
diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/intel_wired_lan/e1000e/ich8lan.c
similarity index 100%
rename from drivers/net/e1000e/ich8lan.c
rename to drivers/net/intel_wired_lan/e1000e/ich8lan.c
diff --git a/drivers/net/e1000e/lib.c b/drivers/net/intel_wired_lan/e1000e/lib.c
similarity index 100%
rename from drivers/net/e1000e/lib.c
rename to drivers/net/intel_wired_lan/e1000e/lib.c
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/intel_wired_lan/e1000e/netdev.c
similarity index 100%
rename from drivers/net/e1000e/netdev.c
rename to drivers/net/intel_wired_lan/e1000e/netdev.c
diff --git a/drivers/net/e1000e/param.c b/drivers/net/intel_wired_lan/e1000e/param.c
similarity index 100%
rename from drivers/net/e1000e/param.c
rename to drivers/net/intel_wired_lan/e1000e/param.c
diff --git a/drivers/net/e1000e/phy.c b/drivers/net/intel_wired_lan/e1000e/phy.c
similarity index 100%
rename from drivers/net/e1000e/phy.c
rename to drivers/net/intel_wired_lan/e1000e/phy.c
diff --git a/drivers/net/igb/Makefile b/drivers/net/intel_wired_lan/igb/Makefile
similarity index 100%
rename from drivers/net/igb/Makefile
rename to drivers/net/intel_wired_lan/igb/Makefile
diff --git a/drivers/net/igb/e1000_82575.c b/drivers/net/intel_wired_lan/igb/e1000_82575.c
similarity index 100%
rename from drivers/net/igb/e1000_82575.c
rename to drivers/net/intel_wired_lan/igb/e1000_82575.c
diff --git a/drivers/net/igb/e1000_82575.h b/drivers/net/intel_wired_lan/igb/e1000_82575.h
similarity index 100%
rename from drivers/net/igb/e1000_82575.h
rename to drivers/net/intel_wired_lan/igb/e1000_82575.h
diff --git a/drivers/net/igb/e1000_defines.h b/drivers/net/intel_wired_lan/igb/e1000_defines.h
similarity index 100%
rename from drivers/net/igb/e1000_defines.h
rename to drivers/net/intel_wired_lan/igb/e1000_defines.h
diff --git a/drivers/net/igb/e1000_hw.h b/drivers/net/intel_wired_lan/igb/e1000_hw.h
similarity index 100%
rename from drivers/net/igb/e1000_hw.h
rename to drivers/net/intel_wired_lan/igb/e1000_hw.h
diff --git a/drivers/net/igb/e1000_mac.c b/drivers/net/intel_wired_lan/igb/e1000_mac.c
similarity index 100%
rename from drivers/net/igb/e1000_mac.c
rename to drivers/net/intel_wired_lan/igb/e1000_mac.c
diff --git a/drivers/net/igb/e1000_mac.h b/drivers/net/intel_wired_lan/igb/e1000_mac.h
similarity index 100%
rename from drivers/net/igb/e1000_mac.h
rename to drivers/net/intel_wired_lan/igb/e1000_mac.h
diff --git a/drivers/net/igb/e1000_mbx.c b/drivers/net/intel_wired_lan/igb/e1000_mbx.c
similarity index 100%
rename from drivers/net/igb/e1000_mbx.c
rename to drivers/net/intel_wired_lan/igb/e1000_mbx.c
diff --git a/drivers/net/igb/e1000_mbx.h b/drivers/net/intel_wired_lan/igb/e1000_mbx.h
similarity index 100%
rename from drivers/net/igb/e1000_mbx.h
rename to drivers/net/intel_wired_lan/igb/e1000_mbx.h
diff --git a/drivers/net/igb/e1000_nvm.c b/drivers/net/intel_wired_lan/igb/e1000_nvm.c
similarity index 100%
rename from drivers/net/igb/e1000_nvm.c
rename to drivers/net/intel_wired_lan/igb/e1000_nvm.c
diff --git a/drivers/net/igb/e1000_nvm.h b/drivers/net/intel_wired_lan/igb/e1000_nvm.h
similarity index 100%
rename from drivers/net/igb/e1000_nvm.h
rename to drivers/net/intel_wired_lan/igb/e1000_nvm.h
diff --git a/drivers/net/igb/e1000_phy.c b/drivers/net/intel_wired_lan/igb/e1000_phy.c
similarity index 100%
rename from drivers/net/igb/e1000_phy.c
rename to drivers/net/intel_wired_lan/igb/e1000_phy.c
diff --git a/drivers/net/igb/e1000_phy.h b/drivers/net/intel_wired_lan/igb/e1000_phy.h
similarity index 100%
rename from drivers/net/igb/e1000_phy.h
rename to drivers/net/intel_wired_lan/igb/e1000_phy.h
diff --git a/drivers/net/igb/e1000_regs.h b/drivers/net/intel_wired_lan/igb/e1000_regs.h
similarity index 100%
rename from drivers/net/igb/e1000_regs.h
rename to drivers/net/intel_wired_lan/igb/e1000_regs.h
diff --git a/drivers/net/igb/igb.h b/drivers/net/intel_wired_lan/igb/igb.h
similarity index 100%
rename from drivers/net/igb/igb.h
rename to drivers/net/intel_wired_lan/igb/igb.h
diff --git a/drivers/net/igb/igb_ethtool.c b/drivers/net/intel_wired_lan/igb/igb_ethtool.c
similarity index 100%
rename from drivers/net/igb/igb_ethtool.c
rename to drivers/net/intel_wired_lan/igb/igb_ethtool.c
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/intel_wired_lan/igb/igb_main.c
similarity index 100%
rename from drivers/net/igb/igb_main.c
rename to drivers/net/intel_wired_lan/igb/igb_main.c
diff --git a/drivers/net/igbvf/Makefile b/drivers/net/intel_wired_lan/igbvf/Makefile
similarity index 100%
rename from drivers/net/igbvf/Makefile
rename to drivers/net/intel_wired_lan/igbvf/Makefile
diff --git a/drivers/net/igbvf/defines.h b/drivers/net/intel_wired_lan/igbvf/defines.h
similarity index 100%
rename from drivers/net/igbvf/defines.h
rename to drivers/net/intel_wired_lan/igbvf/defines.h
diff --git a/drivers/net/igbvf/ethtool.c b/drivers/net/intel_wired_lan/igbvf/ethtool.c
similarity index 100%
rename from drivers/net/igbvf/ethtool.c
rename to drivers/net/intel_wired_lan/igbvf/ethtool.c
diff --git a/drivers/net/igbvf/igbvf.h b/drivers/net/intel_wired_lan/igbvf/igbvf.h
similarity index 100%
rename from drivers/net/igbvf/igbvf.h
rename to drivers/net/intel_wired_lan/igbvf/igbvf.h
diff --git a/drivers/net/igbvf/mbx.c b/drivers/net/intel_wired_lan/igbvf/mbx.c
similarity index 100%
rename from drivers/net/igbvf/mbx.c
rename to drivers/net/intel_wired_lan/igbvf/mbx.c
diff --git a/drivers/net/igbvf/mbx.h b/drivers/net/intel_wired_lan/igbvf/mbx.h
similarity index 100%
rename from drivers/net/igbvf/mbx.h
rename to drivers/net/intel_wired_lan/igbvf/mbx.h
diff --git a/drivers/net/igbvf/netdev.c b/drivers/net/intel_wired_lan/igbvf/netdev.c
similarity index 100%
rename from drivers/net/igbvf/netdev.c
rename to drivers/net/intel_wired_lan/igbvf/netdev.c
diff --git a/drivers/net/igbvf/regs.h b/drivers/net/intel_wired_lan/igbvf/regs.h
similarity index 100%
rename from drivers/net/igbvf/regs.h
rename to drivers/net/intel_wired_lan/igbvf/regs.h
diff --git a/drivers/net/igbvf/vf.c b/drivers/net/intel_wired_lan/igbvf/vf.c
similarity index 100%
rename from drivers/net/igbvf/vf.c
rename to drivers/net/intel_wired_lan/igbvf/vf.c
diff --git a/drivers/net/igbvf/vf.h b/drivers/net/intel_wired_lan/igbvf/vf.h
similarity index 100%
rename from drivers/net/igbvf/vf.h
rename to drivers/net/intel_wired_lan/igbvf/vf.h
diff --git a/drivers/net/ixgb/Makefile b/drivers/net/intel_wired_lan/ixgb/Makefile
similarity index 100%
rename from drivers/net/ixgb/Makefile
rename to drivers/net/intel_wired_lan/ixgb/Makefile
diff --git a/drivers/net/ixgb/ixgb.h b/drivers/net/intel_wired_lan/ixgb/ixgb.h
similarity index 100%
rename from drivers/net/ixgb/ixgb.h
rename to drivers/net/intel_wired_lan/ixgb/ixgb.h
diff --git a/drivers/net/ixgb/ixgb_ee.c b/drivers/net/intel_wired_lan/ixgb/ixgb_ee.c
similarity index 100%
rename from drivers/net/ixgb/ixgb_ee.c
rename to drivers/net/intel_wired_lan/ixgb/ixgb_ee.c
diff --git a/drivers/net/ixgb/ixgb_ee.h b/drivers/net/intel_wired_lan/ixgb/ixgb_ee.h
similarity index 100%
rename from drivers/net/ixgb/ixgb_ee.h
rename to drivers/net/intel_wired_lan/ixgb/ixgb_ee.h
diff --git a/drivers/net/ixgb/ixgb_ethtool.c b/drivers/net/intel_wired_lan/ixgb/ixgb_ethtool.c
similarity index 100%
rename from drivers/net/ixgb/ixgb_ethtool.c
rename to drivers/net/intel_wired_lan/ixgb/ixgb_ethtool.c
diff --git a/drivers/net/ixgb/ixgb_hw.c b/drivers/net/intel_wired_lan/ixgb/ixgb_hw.c
similarity index 100%
rename from drivers/net/ixgb/ixgb_hw.c
rename to drivers/net/intel_wired_lan/ixgb/ixgb_hw.c
diff --git a/drivers/net/ixgb/ixgb_hw.h b/drivers/net/intel_wired_lan/ixgb/ixgb_hw.h
similarity index 100%
rename from drivers/net/ixgb/ixgb_hw.h
rename to drivers/net/intel_wired_lan/ixgb/ixgb_hw.h
diff --git a/drivers/net/ixgb/ixgb_ids.h b/drivers/net/intel_wired_lan/ixgb/ixgb_ids.h
similarity index 100%
rename from drivers/net/ixgb/ixgb_ids.h
rename to drivers/net/intel_wired_lan/ixgb/ixgb_ids.h
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/intel_wired_lan/ixgb/ixgb_main.c
similarity index 100%
rename from drivers/net/ixgb/ixgb_main.c
rename to drivers/net/intel_wired_lan/ixgb/ixgb_main.c
diff --git a/drivers/net/ixgb/ixgb_osdep.h b/drivers/net/intel_wired_lan/ixgb/ixgb_osdep.h
similarity index 100%
rename from drivers/net/ixgb/ixgb_osdep.h
rename to drivers/net/intel_wired_lan/ixgb/ixgb_osdep.h
diff --git a/drivers/net/ixgb/ixgb_param.c b/drivers/net/intel_wired_lan/ixgb/ixgb_param.c
similarity index 100%
rename from drivers/net/ixgb/ixgb_param.c
rename to drivers/net/intel_wired_lan/ixgb/ixgb_param.c
diff --git a/drivers/net/ixgbe/Makefile b/drivers/net/intel_wired_lan/ixgbe/Makefile
similarity index 100%
rename from drivers/net/ixgbe/Makefile
rename to drivers/net/intel_wired_lan/ixgbe/Makefile
diff --git a/drivers/net/ixgbe/ixgbe.h b/drivers/net/intel_wired_lan/ixgbe/ixgbe.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe.h
diff --git a/drivers/net/ixgbe/ixgbe_82598.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_82598.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_82598.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_82598.c
diff --git a/drivers/net/ixgbe/ixgbe_82599.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_82599.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_82599.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_82599.c
diff --git a/drivers/net/ixgbe/ixgbe_common.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_common.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_common.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_common.c
diff --git a/drivers/net/ixgbe/ixgbe_common.h b/drivers/net/intel_wired_lan/ixgbe/ixgbe_common.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_common.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_common.h
diff --git a/drivers/net/ixgbe/ixgbe_dcb.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb.c
diff --git a/drivers/net/ixgbe/ixgbe_dcb.h b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb.h
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82598.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82598.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb_82598.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82598.c
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82598.h b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82598.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb_82598.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82598.h
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82599.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82599.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb_82599.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82599.c
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82599.h b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82599.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb_82599.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_82599.h
diff --git a/drivers/net/ixgbe/ixgbe_dcb_nl.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_nl.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_dcb_nl.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_dcb_nl.c
diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_ethtool.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_ethtool.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_ethtool.c
diff --git a/drivers/net/ixgbe/ixgbe_fcoe.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_fcoe.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_fcoe.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_fcoe.c
diff --git a/drivers/net/ixgbe/ixgbe_fcoe.h b/drivers/net/intel_wired_lan/ixgbe/ixgbe_fcoe.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_fcoe.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_fcoe.h
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_main.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_main.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_main.c
diff --git a/drivers/net/ixgbe/ixgbe_mbx.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_mbx.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_mbx.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_mbx.c
diff --git a/drivers/net/ixgbe/ixgbe_mbx.h b/drivers/net/intel_wired_lan/ixgbe/ixgbe_mbx.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_mbx.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_mbx.h
diff --git a/drivers/net/ixgbe/ixgbe_phy.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_phy.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_phy.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_phy.c
diff --git a/drivers/net/ixgbe/ixgbe_phy.h b/drivers/net/intel_wired_lan/ixgbe/ixgbe_phy.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_phy.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_phy.h
diff --git a/drivers/net/ixgbe/ixgbe_sriov.c b/drivers/net/intel_wired_lan/ixgbe/ixgbe_sriov.c
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_sriov.c
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_sriov.c
diff --git a/drivers/net/ixgbe/ixgbe_sriov.h b/drivers/net/intel_wired_lan/ixgbe/ixgbe_sriov.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_sriov.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_sriov.h
diff --git a/drivers/net/ixgbe/ixgbe_type.h b/drivers/net/intel_wired_lan/ixgbe/ixgbe_type.h
similarity index 100%
rename from drivers/net/ixgbe/ixgbe_type.h
rename to drivers/net/intel_wired_lan/ixgbe/ixgbe_type.h
diff --git a/drivers/net/ixgbevf/Makefile b/drivers/net/intel_wired_lan/ixgbevf/Makefile
similarity index 100%
rename from drivers/net/ixgbevf/Makefile
rename to drivers/net/intel_wired_lan/ixgbevf/Makefile
diff --git a/drivers/net/ixgbevf/defines.h b/drivers/net/intel_wired_lan/ixgbevf/defines.h
similarity index 100%
rename from drivers/net/ixgbevf/defines.h
rename to drivers/net/intel_wired_lan/ixgbevf/defines.h
diff --git a/drivers/net/ixgbevf/ethtool.c b/drivers/net/intel_wired_lan/ixgbevf/ethtool.c
similarity index 100%
rename from drivers/net/ixgbevf/ethtool.c
rename to drivers/net/intel_wired_lan/ixgbevf/ethtool.c
diff --git a/drivers/net/ixgbevf/ixgbevf.h b/drivers/net/intel_wired_lan/ixgbevf/ixgbevf.h
similarity index 100%
rename from drivers/net/ixgbevf/ixgbevf.h
rename to drivers/net/intel_wired_lan/ixgbevf/ixgbevf.h
diff --git a/drivers/net/ixgbevf/ixgbevf_main.c b/drivers/net/intel_wired_lan/ixgbevf/ixgbevf_main.c
similarity index 100%
rename from drivers/net/ixgbevf/ixgbevf_main.c
rename to drivers/net/intel_wired_lan/ixgbevf/ixgbevf_main.c
diff --git a/drivers/net/ixgbevf/mbx.c b/drivers/net/intel_wired_lan/ixgbevf/mbx.c
similarity index 100%
rename from drivers/net/ixgbevf/mbx.c
rename to drivers/net/intel_wired_lan/ixgbevf/mbx.c
diff --git a/drivers/net/ixgbevf/mbx.h b/drivers/net/intel_wired_lan/ixgbevf/mbx.h
similarity index 100%
rename from drivers/net/ixgbevf/mbx.h
rename to drivers/net/intel_wired_lan/ixgbevf/mbx.h
diff --git a/drivers/net/ixgbevf/regs.h b/drivers/net/intel_wired_lan/ixgbevf/regs.h
similarity index 100%
rename from drivers/net/ixgbevf/regs.h
rename to drivers/net/intel_wired_lan/ixgbevf/regs.h
diff --git a/drivers/net/ixgbevf/vf.c b/drivers/net/intel_wired_lan/ixgbevf/vf.c
similarity index 100%
rename from drivers/net/ixgbevf/vf.c
rename to drivers/net/intel_wired_lan/ixgbevf/vf.c
diff --git a/drivers/net/ixgbevf/vf.h b/drivers/net/intel_wired_lan/ixgbevf/vf.h
similarity index 100%
rename from drivers/net/ixgbevf/vf.h
rename to drivers/net/intel_wired_lan/ixgbevf/vf.h
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Documentation/networking/e100.txt b/Documentation/networking/intel_wired_lan/e100.txt
similarity index 100%
rename from Documentation/networking/e100.txt
rename to Documentation/networking/intel_wired_lan/e100.txt
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/intel_wired_lan/e1000.txt
similarity index 100%
rename from Documentation/networking/e1000.txt
rename to Documentation/networking/intel_wired_lan/e1000.txt
diff --git a/Documentation/networking/e1000e.txt b/Documentation/networking/intel_wired_lan/e1000e.txt
similarity index 100%
rename from Documentation/networking/e1000e.txt
rename to Documentation/networking/intel_wired_lan/e1000e.txt
diff --git a/Documentation/networking/igb.txt b/Documentation/networking/intel_wired_lan/igb.txt
similarity index 100%
rename from Documentation/networking/igb.txt
rename to Documentation/networking/intel_wired_lan/igb.txt
diff --git a/Documentation/networking/igbvf.txt b/Documentation/networking/intel_wired_lan/igbvf.txt
similarity index 100%
rename from Documentation/networking/igbvf.txt
rename to Documentation/networking/intel_wired_lan/igbvf.txt
diff --git a/Documentation/networking/ixgb.txt b/Documentation/networking/intel_wired_lan/ixgb.txt
similarity index 100%
rename from Documentation/networking/ixgb.txt
rename to Documentation/networking/intel_wired_lan/ixgb.txt
diff --git a/Documentation/networking/ixgbe.txt b/Documentation/networking/intel_wired_lan/ixgbe.txt
similarity index 100%
rename from Documentation/networking/ixgbe.txt
rename to Documentation/networking/intel_wired_lan/ixgbe.txt
diff --git a/Documentation/networking/ixgbevf.txt b/Documentation/networking/intel_wired_lan/ixgbevf.txt
similarity index 100%
rename from Documentation/networking/ixgbevf.txt
rename to Documentation/networking/intel_wired_lan/ixgbevf.txt
diff --git a/MAINTAINERS b/MAINTAINERS
index ba8603c..b086404 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3096,22 +3096,8 @@ M: John Ronciak <john.ronciak@intel.com>
L: e1000-devel@lists.sourceforge.net
W: http://e1000.sourceforge.net/
S: Supported
-F: Documentation/networking/e100.txt
-F: Documentation/networking/e1000.txt
-F: Documentation/networking/e1000e.txt
-F: Documentation/networking/igb.txt
-F: Documentation/networking/igbvf.txt
-F: Documentation/networking/ixgb.txt
-F: Documentation/networking/ixgbe.txt
-F: Documentation/networking/ixgbevf.txt
-F: drivers/net/e100.c
-F: drivers/net/e1000/
-F: drivers/net/e1000e/
-F: drivers/net/igb/
-F: drivers/net/igbvf/
-F: drivers/net/ixgb/
-F: drivers/net/ixgbe/
-F: drivers/net/ixgbevf/
+F: Documentation/networking/intel_wired_lan/
+F: drivers/net/intel_wired_lan/
INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
L: linux-wireless@vger.kernel.org
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 13d01f3..4d6448d 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -1495,32 +1495,6 @@ config TC35815
depends on NET_PCI && PCI && MIPS
select PHYLIB
-config E100
- tristate "Intel(R) PRO/100+ support"
- depends on NET_PCI && PCI
- select MII
- ---help---
- This driver supports Intel(R) PRO/100 family of adapters.
- To verify that your adapter is supported, find the board ID number
- on the adapter. Look for a label that has a barcode and a number
- in the format 123456-001 (six digits hyphen three digits).
-
- Use the above information and the Adapter & Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- to identify the adapter.
-
- For the latest Intel PRO/100 network driver for Linux, see:
-
- <http://appsr.intel.com/scripts-df/support_intel.asp>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/e100.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called e100.
-
config LNE390
tristate "Mylex EISA LNE390A/B support (EXPERIMENTAL)"
depends on NET_PCI && EISA && EXPERIMENTAL
@@ -1995,6 +1969,8 @@ source "drivers/net/fs_enet/Kconfig"
source "drivers/net/octeon/Kconfig"
+source "drivers/net/intel_wired_lan/Kconfig.100"
+
endif # NET_ETHERNET
#
@@ -2059,45 +2035,7 @@ config DL2K
To compile this driver as a module, choose M here: the
module will be called dl2k.
-config E1000
- tristate "Intel(R) PRO/1000 Gigabit Ethernet support"
- depends on PCI
- ---help---
- This driver supports Intel(R) PRO/1000 gigabit ethernet family of
- adapters. For more information on how to identify your adapter, go
- to the Adapter & Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/e1000.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called e1000.
-
-config E1000E
- tristate "Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support"
- depends on PCI && (!SPARC32 || BROKEN)
- ---help---
- This driver supports the PCI-Express Intel(R) PRO/1000 gigabit
- ethernet family of adapters. For PCI or PCI-X e1000 adapters,
- use the regular e1000 driver For more information on how to
- identify your adapter, go to the Adapter & Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- To compile this driver as a module, choose M here. The module
- will be called e1000e.
+source "drivers/net/intel_wired_lan/Kconfig.1000"
config IP1000
tristate "IP1000 Gigabit Ethernet support"
@@ -2109,57 +2047,6 @@ config IP1000
To compile this driver as a module, choose M here: the module
will be called ipg. This is recommended.
-config IGB
- tristate "Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support"
- depends on PCI
- ---help---
- This driver supports Intel(R) 82575/82576 gigabit ethernet family of
- adapters. For more information on how to identify your adapter, go
- to the Adapter & Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/e1000.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called igb.
-
-config IGB_DCA
- bool "Direct Cache Access (DCA) Support"
- default y
- depends on IGB && DCA && !(IGB=y && DCA=m)
- ---help---
- Say Y here if you want to use Direct Cache Access (DCA) in the
- driver. DCA is a method for warming the CPU cache before data
- is used, with the intent of lessening the impact of cache misses.
-
-config IGBVF
- tristate "Intel(R) 82576 Virtual Function Ethernet support"
- depends on PCI
- ---help---
- This driver supports Intel(R) 82576 virtual functions. For more
- information on how to identify your adapter, go to the Adapter &
- Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/e1000.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called igbvf.
-
source "drivers/net/ixp2000/Kconfig"
config MYRI_SBUS
@@ -2515,17 +2402,6 @@ config S6GMAC
source "drivers/net/stmmac/Kconfig"
-config PCH_GBE
- tristate "PCH Gigabit Ethernet"
- depends on PCI
- ---help---
- This is a gigabit ethernet driver for Topcliff PCH.
- Topcliff PCH is the platform controller hub that is used in Intel's
- general embedded platform.
- Topcliff PCH has Gigabit Ethernet interface.
- Using this interface, it is able to access system devices connected
- to Gigabit Ethernet.
- This driver enables Gigabit Ethernet function.
endif # NETDEV_1000
@@ -2659,94 +2535,14 @@ config EHEA
To compile the driver as a module, choose M here. The module
will be called ehea.
+source "drivers/net/intel_wired_lan/Kconfig.10000"
+
config ENIC
tristate "Cisco VIC Ethernet NIC Support"
depends on PCI && INET
help
This enables the support for the Cisco VIC Ethernet card.
-config IXGBE
- tristate "Intel(R) 10GbE PCI Express adapters support"
- depends on PCI && INET
- select MDIO
- ---help---
- This driver supports Intel(R) 10GbE PCI Express family of
- adapters. For more information on how to identify your adapter, go
- to the Adapter & Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- To compile this driver as a module, choose M here. The module
- will be called ixgbe.
-
-config IXGBE_DCA
- bool "Direct Cache Access (DCA) Support"
- default y
- depends on IXGBE && DCA && !(IXGBE=y && DCA=m)
- ---help---
- Say Y here if you want to use Direct Cache Access (DCA) in the
- driver. DCA is a method for warming the CPU cache before data
- is used, with the intent of lessening the impact of cache misses.
-
-config IXGBE_DCB
- bool "Data Center Bridging (DCB) Support"
- default n
- depends on IXGBE && DCB
- ---help---
- Say Y here if you want to use Data Center Bridging (DCB) in the
- driver.
-
- If unsure, say N.
-
-config IXGBEVF
- tristate "Intel(R) 82599 Virtual Function Ethernet support"
- depends on PCI_MSI
- ---help---
- This driver supports Intel(R) 82599 virtual functions. For more
- information on how to identify your adapter, go to the Adapter &
- Driver ID Guide at:
-
- <http://support.intel.com/support/network/sb/CS-008441.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/ixgbevf.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called ixgbevf. MSI-X interrupt support is required
- for this driver to work correctly.
-
-config IXGB
- tristate "Intel(R) PRO/10GbE support"
- depends on PCI
- ---help---
- This driver supports Intel(R) PRO/10GbE family of adapters for
- PCI-X type cards. For PCI-E type cards, use the "ixgbe" driver
- instead. For more information on how to identify your adapter, go
- to the Adapter & Driver ID Guide at:
-
- <http://support.intel.com/support/network/adapter/pro100/21397.htm>
-
- For general information and support, go to the Intel support
- website at:
-
- <http://support.intel.com>
-
- More specific information on configuring the driver is in
- <file:Documentation/networking/ixgb.txt>.
-
- To compile this driver as a module, choose M here. The module
- will be called ixgb.
-
config S2IO
tristate "S2IO 10Gbe XFrame NIC"
depends on PCI
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index b8bf93d..e457b3c 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -8,14 +8,14 @@ obj-$(CONFIG_PHYLIB) += phy/
obj-$(CONFIG_TI_DAVINCI_EMAC) += davinci_emac.o
-obj-$(CONFIG_E1000) += e1000/
-obj-$(CONFIG_E1000E) += e1000e/
+obj-$(CONFIG_E1000) += intel_wired_lan/e1000/
+obj-$(CONFIG_E1000E) += intel_wired_lan/e1000e/
obj-$(CONFIG_IBM_NEW_EMAC) += ibm_newemac/
-obj-$(CONFIG_IGB) += igb/
-obj-$(CONFIG_IGBVF) += igbvf/
-obj-$(CONFIG_IXGBE) += ixgbe/
-obj-$(CONFIG_IXGBEVF) += ixgbevf/
-obj-$(CONFIG_IXGB) += ixgb/
+obj-$(CONFIG_IGB) += intel_wired_lan/igb/
+obj-$(CONFIG_IGBVF) += intel_wired_lan/igbvf/
+obj-$(CONFIG_IXGBE) += intel_wired_lan/ixgbe/
+obj-$(CONFIG_IXGBEVF) += intel_wired_lan/ixgbevf/
+obj-$(CONFIG_IXGB) += intel_wired_lan/ixgb/
obj-$(CONFIG_IP1000) += ipg.o
obj-$(CONFIG_CHELSIO_T1) += chelsio/
obj-$(CONFIG_CHELSIO_T3) += cxgb3/
@@ -68,7 +68,7 @@ obj-$(CONFIG_VORTEX) += 3c59x.o
obj-$(CONFIG_TYPHOON) += typhoon.o
obj-$(CONFIG_NE2K_PCI) += ne2k-pci.o 8390.o
obj-$(CONFIG_PCNET32) += pcnet32.o
-obj-$(CONFIG_E100) += e100.o
+obj-$(CONFIG_E100) += intel_wired_lan/e100.o
obj-$(CONFIG_TLAN) += tlan.o
obj-$(CONFIG_EPIC100) += epic100.o
obj-$(CONFIG_SMSC9420) += smsc9420.o
diff --git a/drivers/net/intel_wired_lan/Kconfig.100 b/drivers/net/intel_wired_lan/Kconfig.100
new file mode 100644
index 0000000..6651ae9
--- /dev/null
+++ b/drivers/net/intel_wired_lan/Kconfig.100
@@ -0,0 +1,25 @@
+config E100
+ tristate "Intel(R) PRO/100+ support"
+ depends on NET_PCI && PCI
+ select MII
+ ---help---
+ This driver supports Intel(R) PRO/100 family of adapters.
+ To verify that your adapter is supported, find the board ID number
+ on the adapter. Look for a label that has a barcode and a number
+ in the format 123456-001 (six digits hyphen three digits).
+
+ Use the above information and the Adapter & Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ to identify the adapter.
+
+ For the latest Intel PRO/100 network driver for Linux, see:
+
+ <http://appsr.intel.com/scripts-df/support_intel.asp>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/e100.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called e100.
diff --git a/drivers/net/intel_wired_lan/Kconfig.1000 b/drivers/net/intel_wired_lan/Kconfig.1000
new file mode 100644
index 0000000..4a7e13a
--- /dev/null
+++ b/drivers/net/intel_wired_lan/Kconfig.1000
@@ -0,0 +1,102 @@
+config E1000
+ tristate "Intel(R) PRO/1000 Gigabit Ethernet support"
+ depends on PCI
+ ---help---
+ This driver supports Intel(R) PRO/1000 gigabit ethernet family of
+ adapters. For more information on how to identify your adapter, go
+ to the Adapter & Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/e1000.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called e1000.
+
+config E1000E
+ tristate "Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support"
+ depends on PCI && (!SPARC32 || BROKEN)
+ ---help---
+ This driver supports the PCI-Express Intel(R) PRO/1000 gigabit
+ ethernet family of adapters. For PCI or PCI-X e1000 adapters,
+ use the regular e1000 driver For more information on how to
+ identify your adapter, go to the Adapter & Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ To compile this driver as a module, choose M here. The module
+ will be called e1000e.
+
+config IGB
+ tristate "Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support"
+ depends on PCI
+ ---help---
+ This driver supports Intel(R) 82575/82576 gigabit ethernet family of
+ adapters. For more information on how to identify your adapter, go
+ to the Adapter & Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/e1000.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called igb.
+
+config IGB_DCA
+ bool "Direct Cache Access (DCA) Support"
+ default y
+ depends on IGB && DCA && !(IGB=y && DCA=m)
+ ---help---
+ Say Y here if you want to use Direct Cache Access (DCA) in the
+ driver. DCA is a method for warming the CPU cache before data
+ is used, with the intent of lessening the impact of cache misses.
+
+config IGBVF
+ tristate "Intel(R) 82576 Virtual Function Ethernet support"
+ depends on PCI
+ ---help---
+ This driver supports Intel(R) 82576 virtual functions. For more
+ information on how to identify your adapter, go to the Adapter &
+ Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/e1000.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called igbvf.
+
+config PCH_GBE
+ tristate "PCH Gigabit Ethernet"
+ depends on PCI
+ ---help---
+ This is a gigabit ethernet driver for Topcliff PCH.
+ Topcliff PCH is the platform controller hub that is used in Intel's
+ general embedded platform.
+ Topcliff PCH has Gigabit Ethernet interface.
+ Using this interface, it is able to access system devices connected
+ to Gigabit Ethernet.
+ This driver enables Gigabit Ethernet function.
diff --git a/drivers/net/intel_wired_lan/Kconfig.10000 b/drivers/net/intel_wired_lan/Kconfig.10000
new file mode 100644
index 0000000..ef35ebd
--- /dev/null
+++ b/drivers/net/intel_wired_lan/Kconfig.10000
@@ -0,0 +1,81 @@
+config IXGBE
+ tristate "Intel(R) 10GbE PCI Express adapters support"
+ depends on PCI && INET
+ select MDIO
+ ---help---
+ This driver supports Intel(R) 10GbE PCI Express family of
+ adapters. For more information on how to identify your adapter, go
+ to the Adapter & Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ To compile this driver as a module, choose M here. The module
+ will be called ixgbe.
+
+config IXGBE_DCA
+ bool "Direct Cache Access (DCA) Support"
+ default y
+ depends on IXGBE && DCA && !(IXGBE=y && DCA=m)
+ ---help---
+ Say Y here if you want to use Direct Cache Access (DCA) in the
+ driver. DCA is a method for warming the CPU cache before data
+ is used, with the intent of lessening the impact of cache misses.
+
+config IXGBE_DCB
+ bool "Data Center Bridging (DCB) Support"
+ default n
+ depends on IXGBE && DCB
+ ---help---
+ Say Y here if you want to use Data Center Bridging (DCB) in the
+ driver.
+
+ If unsure, say N.
+
+config IXGBEVF
+ tristate "Intel(R) 82599 Virtual Function Ethernet support"
+ depends on PCI_MSI
+ ---help---
+ This driver supports Intel(R) 82599 virtual functions. For more
+ information on how to identify your adapter, go to the Adapter &
+ Driver ID Guide at:
+
+ <http://support.intel.com/support/network/sb/CS-008441.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/ixgbevf.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called ixgbevf. MSI-X interrupt support is required
+ for this driver to work correctly.
+
+config IXGB
+ tristate "Intel(R) PRO/10GbE support"
+ depends on PCI
+ ---help---
+ This driver supports Intel(R) PRO/10GbE family of adapters for
+ PCI-X type cards. For PCI-E type cards, use the "ixgbe" driver
+ instead. For more information on how to identify your adapter, go
+ to the Adapter & Driver ID Guide at:
+
+ <http://support.intel.com/support/network/adapter/pro100/21397.htm>
+
+ For general information and support, go to the Intel support
+ website at:
+
+ <http://support.intel.com>
+
+ More specific information on configuring the driver is in
+ <file:Documentation/networking/intel_wired_lan/ixgb.txt>.
+
+ To compile this driver as a module, choose M here. The module
+ will be called ixgb.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox