aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/ABI/testing/sysfs-class-net-batman-adv14
-rw-r--r--Documentation/ABI/testing/sysfs-class-net-mesh69
-rw-r--r--Documentation/DocBook/80211.tmpl70
-rw-r--r--Documentation/networking/LICENSE.qlcnic327
-rw-r--r--Documentation/networking/batman-adv.txt240
-rw-r--r--Documentation/networking/dccp.txt20
-rw-r--r--Documentation/networking/e100.txt19
-rw-r--r--Documentation/networking/e1000.txt16
-rw-r--r--Documentation/networking/e1000e.txt52
-rw-r--r--Documentation/networking/igb.txt35
-rw-r--r--Documentation/networking/igbvf.txt6
-rw-r--r--Documentation/networking/ip-sysctl.txt28
-rw-r--r--Documentation/networking/ixgb.txt10
-rw-r--r--Documentation/networking/ixgbe.txt213
-rw-r--r--Documentation/networking/ixgbevf.txt4
-rw-r--r--Documentation/networking/stmmac.txt48
16 files changed, 992 insertions, 179 deletions
diff --git a/Documentation/ABI/testing/sysfs-class-net-batman-adv b/Documentation/ABI/testing/sysfs-class-net-batman-adv
new file mode 100644
index 000000000000..38dd762def4b
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-class-net-batman-adv
@@ -0,0 +1,14 @@
1
2What: /sys/class/net/<iface>/batman-adv/mesh_iface
3Date: May 2010
4Contact: Marek Lindner <lindner_marek@yahoo.de>
5Description:
6 The /sys/class/net/<iface>/batman-adv/mesh_iface file
7 displays the batman mesh interface this <iface>
8 currently is associated with.
9
10What: /sys/class/net/<iface>/batman-adv/iface_status
11Date: May 2010
12Contact: Marek Lindner <lindner_marek@yahoo.de>
13Description:
14 Indicates the status of <iface> as it is seen by batman.
diff --git a/Documentation/ABI/testing/sysfs-class-net-mesh b/Documentation/ABI/testing/sysfs-class-net-mesh
new file mode 100644
index 000000000000..748fe1701d25
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-class-net-mesh
@@ -0,0 +1,69 @@
1
2What: /sys/class/net/<mesh_iface>/mesh/aggregated_ogms
3Date: May 2010
4Contact: Marek Lindner <lindner_marek@yahoo.de>
5Description:
6 Indicates whether the batman protocol messages of the
7 mesh <mesh_iface> shall be aggregated or not.
8
9What: /sys/class/net/<mesh_iface>/mesh/bonding
10Date: June 2010
11Contact: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
12Description:
13 Indicates whether the data traffic going through the
14 mesh will be sent using multiple interfaces at the
15 same time (if available).
16
17What: /sys/class/net/<mesh_iface>/mesh/fragmentation
18Date: October 2010
19Contact: Andreas Langer <an.langer@gmx.de>
20Description:
21 Indicates whether the data traffic going through the
22 mesh will be fragmented or silently discarded if the
23 packet size exceeds the outgoing interface MTU.
24
25What: /sys/class/net/<mesh_iface>/mesh/gw_bandwidth
26Date: October 2010
27Contact: Marek Lindner <lindner_marek@yahoo.de>
28Description:
29 Defines the bandwidth which is propagated by this
30 node if gw_mode was set to 'server'.
31
32What: /sys/class/net/<mesh_iface>/mesh/gw_mode
33Date: October 2010
34Contact: Marek Lindner <lindner_marek@yahoo.de>
35Description:
36 Defines the state of the gateway features. Can be
37 either 'off', 'client' or 'server'.
38
39What: /sys/class/net/<mesh_iface>/mesh/gw_sel_class
40Date: October 2010
41Contact: Marek Lindner <lindner_marek@yahoo.de>
42Description:
43 Defines the selection criteria this node will use
44 to choose a gateway if gw_mode was set to 'client'.
45
46What: /sys/class/net/<mesh_iface>/mesh/orig_interval
47Date: May 2010
48Contact: Marek Lindner <lindner_marek@yahoo.de>
49Description:
50 Defines the interval in milliseconds in which batman
51 sends its protocol messages.
52
53What: /sys/class/net/<mesh_iface>/mesh/hop_penalty
54Date: Oct 2010
55Contact: Linus Lüssing <linus.luessing@web.de>
56Description:
57 Defines the penalty which will be applied to an
58 originator message's tq-field on every hop.
59
60What: /sys/class/net/<mesh_iface>/mesh/vis_mode
61Date: May 2010
62Contact: Marek Lindner <lindner_marek@yahoo.de>
63Description:
64 Each batman node only maintains information about its
65 own local neighborhood, therefore generating graphs
66 showing the topology of the entire mesh is not easily
67 feasible without having a central instance to collect
68 the local topologies from all nodes. This file allows
69 to activate the collecting (server) mode.
diff --git a/Documentation/DocBook/80211.tmpl b/Documentation/DocBook/80211.tmpl
index 19a1210c2530..03641a08e275 100644
--- a/Documentation/DocBook/80211.tmpl
+++ b/Documentation/DocBook/80211.tmpl
@@ -146,6 +146,7 @@
146!Finclude/net/cfg80211.h cfg80211_rx_mgmt 146!Finclude/net/cfg80211.h cfg80211_rx_mgmt
147!Finclude/net/cfg80211.h cfg80211_mgmt_tx_status 147!Finclude/net/cfg80211.h cfg80211_mgmt_tx_status
148!Finclude/net/cfg80211.h cfg80211_cqm_rssi_notify 148!Finclude/net/cfg80211.h cfg80211_cqm_rssi_notify
149!Finclude/net/cfg80211.h cfg80211_cqm_pktloss_notify
149!Finclude/net/cfg80211.h cfg80211_michael_mic_failure 150!Finclude/net/cfg80211.h cfg80211_michael_mic_failure
150 </chapter> 151 </chapter>
151 <chapter> 152 <chapter>
@@ -332,10 +333,16 @@
332 <title>functions/definitions</title> 333 <title>functions/definitions</title>
333!Finclude/net/mac80211.h ieee80211_rx_status 334!Finclude/net/mac80211.h ieee80211_rx_status
334!Finclude/net/mac80211.h mac80211_rx_flags 335!Finclude/net/mac80211.h mac80211_rx_flags
336!Finclude/net/mac80211.h mac80211_tx_control_flags
337!Finclude/net/mac80211.h mac80211_rate_control_flags
338!Finclude/net/mac80211.h ieee80211_tx_rate
335!Finclude/net/mac80211.h ieee80211_tx_info 339!Finclude/net/mac80211.h ieee80211_tx_info
340!Finclude/net/mac80211.h ieee80211_tx_info_clear_status
336!Finclude/net/mac80211.h ieee80211_rx 341!Finclude/net/mac80211.h ieee80211_rx
342!Finclude/net/mac80211.h ieee80211_rx_ni
337!Finclude/net/mac80211.h ieee80211_rx_irqsafe 343!Finclude/net/mac80211.h ieee80211_rx_irqsafe
338!Finclude/net/mac80211.h ieee80211_tx_status 344!Finclude/net/mac80211.h ieee80211_tx_status
345!Finclude/net/mac80211.h ieee80211_tx_status_ni
339!Finclude/net/mac80211.h ieee80211_tx_status_irqsafe 346!Finclude/net/mac80211.h ieee80211_tx_status_irqsafe
340!Finclude/net/mac80211.h ieee80211_rts_get 347!Finclude/net/mac80211.h ieee80211_rts_get
341!Finclude/net/mac80211.h ieee80211_rts_duration 348!Finclude/net/mac80211.h ieee80211_rts_duration
@@ -346,6 +353,7 @@
346!Finclude/net/mac80211.h ieee80211_stop_queue 353!Finclude/net/mac80211.h ieee80211_stop_queue
347!Finclude/net/mac80211.h ieee80211_wake_queues 354!Finclude/net/mac80211.h ieee80211_wake_queues
348!Finclude/net/mac80211.h ieee80211_stop_queues 355!Finclude/net/mac80211.h ieee80211_stop_queues
356!Finclude/net/mac80211.h ieee80211_queue_stopped
349 </sect1> 357 </sect1>
350 </chapter> 358 </chapter>
351 359
@@ -354,6 +362,13 @@
354!Pinclude/net/mac80211.h Frame filtering 362!Pinclude/net/mac80211.h Frame filtering
355!Finclude/net/mac80211.h ieee80211_filter_flags 363!Finclude/net/mac80211.h ieee80211_filter_flags
356 </chapter> 364 </chapter>
365
366 <chapter id="workqueue">
367 <title>The mac80211 workqueue</title>
368!Pinclude/net/mac80211.h mac80211 workqueue
369!Finclude/net/mac80211.h ieee80211_queue_work
370!Finclude/net/mac80211.h ieee80211_queue_delayed_work
371 </chapter>
357 </part> 372 </part>
358 373
359 <part id="advanced"> 374 <part id="advanced">
@@ -374,6 +389,9 @@
374!Finclude/net/mac80211.h set_key_cmd 389!Finclude/net/mac80211.h set_key_cmd
375!Finclude/net/mac80211.h ieee80211_key_conf 390!Finclude/net/mac80211.h ieee80211_key_conf
376!Finclude/net/mac80211.h ieee80211_key_flags 391!Finclude/net/mac80211.h ieee80211_key_flags
392!Finclude/net/mac80211.h ieee80211_tkip_key_type
393!Finclude/net/mac80211.h ieee80211_get_tkip_key
394!Finclude/net/mac80211.h ieee80211_key_removed
377 </chapter> 395 </chapter>
378 396
379 <chapter id="powersave"> 397 <chapter id="powersave">
@@ -417,6 +435,18 @@
417 supported by mac80211, add notes about supporting hw crypto 435 supported by mac80211, add notes about supporting hw crypto
418 with it. 436 with it.
419 </para> 437 </para>
438!Finclude/net/mac80211.h ieee80211_iterate_active_interfaces
439!Finclude/net/mac80211.h ieee80211_iterate_active_interfaces_atomic
440 </chapter>
441
442 <chapter id="station-handling">
443 <title>Station handling</title>
444 <para>TODO</para>
445!Finclude/net/mac80211.h ieee80211_sta
446!Finclude/net/mac80211.h sta_notify_cmd
447!Finclude/net/mac80211.h ieee80211_find_sta
448!Finclude/net/mac80211.h ieee80211_find_sta_by_ifaddr
449!Finclude/net/mac80211.h ieee80211_sta_block_awake
420 </chapter> 450 </chapter>
421 451
422 <chapter id="hardware-scan-offload"> 452 <chapter id="hardware-scan-offload">
@@ -424,6 +454,28 @@
424 <para>TBD</para> 454 <para>TBD</para>
425!Finclude/net/mac80211.h ieee80211_scan_completed 455!Finclude/net/mac80211.h ieee80211_scan_completed
426 </chapter> 456 </chapter>
457
458 <chapter id="aggregation">
459 <title>Aggregation</title>
460 <sect1>
461 <title>TX A-MPDU aggregation</title>
462!Pnet/mac80211/agg-tx.c TX A-MPDU aggregation
463!Cnet/mac80211/agg-tx.c
464 </sect1>
465 <sect1>
466 <title>RX A-MPDU aggregation</title>
467!Pnet/mac80211/agg-rx.c RX A-MPDU aggregation
468!Cnet/mac80211/agg-rx.c
469 </sect1>
470!Finclude/net/mac80211.h ieee80211_ampdu_mlme_action
471 </chapter>
472
473 <chapter id="smps">
474 <title>Spatial Multiplexing Powersave (SMPS)</title>
475!Pinclude/net/mac80211.h Spatial multiplexing power save
476!Finclude/net/mac80211.h ieee80211_request_smps
477!Finclude/net/mac80211.h ieee80211_smps_mode
478 </chapter>
427 </part> 479 </part>
428 480
429 <part id="rate-control"> 481 <part id="rate-control">
@@ -435,9 +487,16 @@
435 interface and how it relates to mac80211 and drivers. 487 interface and how it relates to mac80211 and drivers.
436 </para> 488 </para>
437 </partintro> 489 </partintro>
438 <chapter id="dummy"> 490 <chapter id="ratecontrol-api">
439 <title>dummy chapter</title> 491 <title>Rate Control API</title>
440 <para>TBD</para> 492 <para>TBD</para>
493!Finclude/net/mac80211.h ieee80211_start_tx_ba_session
494!Finclude/net/mac80211.h ieee80211_start_tx_ba_cb_irqsafe
495!Finclude/net/mac80211.h ieee80211_stop_tx_ba_session
496!Finclude/net/mac80211.h ieee80211_stop_tx_ba_cb_irqsafe
497!Finclude/net/mac80211.h rate_control_changed
498!Finclude/net/mac80211.h ieee80211_tx_rate_control
499!Finclude/net/mac80211.h rate_control_send_low
441 </chapter> 500 </chapter>
442 </part> 501 </part>
443 502
@@ -485,6 +544,13 @@
485 </sect1> 544 </sect1>
486 </chapter> 545 </chapter>
487 546
547 <chapter id="aggregation-internals">
548 <title>Aggregation</title>
549!Fnet/mac80211/sta_info.h sta_ampdu_mlme
550!Fnet/mac80211/sta_info.h tid_ampdu_tx
551!Fnet/mac80211/sta_info.h tid_ampdu_rx
552 </chapter>
553
488 <chapter id="synchronisation"> 554 <chapter id="synchronisation">
489 <title>Synchronisation</title> 555 <title>Synchronisation</title>
490 <para>TBD</para> 556 <para>TBD</para>
diff --git a/Documentation/networking/LICENSE.qlcnic b/Documentation/networking/LICENSE.qlcnic
new file mode 100644
index 000000000000..29ad4b106420
--- /dev/null
+++ b/Documentation/networking/LICENSE.qlcnic
@@ -0,0 +1,327 @@
1Copyright (c) 2009-2010 QLogic Corporation
2QLogic Linux qlcnic NIC Driver
3
4This program includes a device driver for Linux 2.6 that may be
5distributed with QLogic hardware specific firmware binary file.
6You may modify and redistribute the device driver code under the
7GNU General Public License (a copy of which is attached hereto as
8Exhibit A) published by the Free Software Foundation (version 2).
9
10You may redistribute the hardware specific firmware binary file
11under the following terms:
12
13 1. Redistribution of source code (only if applicable),
14 must retain the above copyright notice, this list of
15 conditions and the following disclaimer.
16
17 2. Redistribution in binary form must reproduce the above
18 copyright notice, this list of conditions and the
19 following disclaimer in the documentation and/or other
20 materials provided with the distribution.
21
22 3. The name of QLogic Corporation may not be used to
23 endorse or promote products derived from this software
24 without specific prior written permission
25
26REGARDLESS OF WHAT LICENSING MECHANISM IS USED OR APPLICABLE,
27THIS PROGRAM IS PROVIDED BY QLOGIC CORPORATION "AS IS'' AND ANY
28EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
30PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
31BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
32EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
33TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
35ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
36OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38POSSIBILITY OF SUCH DAMAGE.
39
40USER ACKNOWLEDGES AND AGREES THAT USE OF THIS PROGRAM WILL NOT
41CREATE OR GIVE GROUNDS FOR A LICENSE BY IMPLICATION, ESTOPPEL, OR
42OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS (PATENT, COPYRIGHT,
43TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) EMBODIED IN
44ANY OTHER QLOGIC HARDWARE OR SOFTWARE EITHER SOLELY OR IN
45COMBINATION WITH THIS PROGRAM.
46
47
48EXHIBIT A
49
50 GNU GENERAL PUBLIC LICENSE
51 Version 2, June 1991
52
53 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
54 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
55 Everyone is permitted to copy and distribute verbatim copies
56 of this license document, but changing it is not allowed.
57
58 Preamble
59
60 The licenses for most software are designed to take away your
61freedom to share and change it. By contrast, the GNU General Public
62License is intended to guarantee your freedom to share and change free
63software--to make sure the software is free for all its users. This
64General Public License applies to most of the Free Software
65Foundation's software and to any other program whose authors commit to
66using it. (Some other Free Software Foundation software is covered by
67the GNU Lesser General Public License instead.) You can apply it to
68your programs, too.
69
70 When we speak of free software, we are referring to freedom, not
71price. Our General Public Licenses are designed to make sure that you
72have the freedom to distribute copies of free software (and charge for
73this service if you wish), that you receive source code or can get it
74if you want it, that you can change the software or use pieces of it
75in new free programs; and that you know you can do these things.
76
77 To protect your rights, we need to make restrictions that forbid
78anyone to deny you these rights or to ask you to surrender the rights.
79These restrictions translate to certain responsibilities for you if you
80distribute copies of the software, or if you modify it.
81
82 For example, if you distribute copies of such a program, whether
83gratis or for a fee, you must give the recipients all the rights that
84you have. You must make sure that they, too, receive or can get the
85source code. And you must show them these terms so they know their
86rights.
87
88 We protect your rights with two steps: (1) copyright the software, and
89(2) offer you this license which gives you legal permission to copy,
90distribute and/or modify the software.
91
92 Also, for each author's protection and ours, we want to make certain
93that everyone understands that there is no warranty for this free
94software. If the software is modified by someone else and passed on, we
95want its recipients to know that what they have is not the original, so
96that any problems introduced by others will not reflect on the original
97authors' reputations.
98
99 Finally, any free program is threatened constantly by software
100patents. We wish to avoid the danger that redistributors of a free
101program will individually obtain patent licenses, in effect making the
102program proprietary. To prevent this, we have made it clear that any
103patent must be licensed for everyone's free use or not licensed at all.
104
105 The precise terms and conditions for copying, distribution and
106modification follow.
107
108 GNU GENERAL PUBLIC LICENSE
109 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
110
111 0. This License applies to any program or other work which contains
112a notice placed by the copyright holder saying it may be distributed
113under the terms of this General Public License. The "Program", below,
114refers to any such program or work, and a "work based on the Program"
115means either the Program or any derivative work under copyright law:
116that is to say, a work containing the Program or a portion of it,
117either verbatim or with modifications and/or translated into another
118language. (Hereinafter, translation is included without limitation in
119the term "modification".) Each licensee is addressed as "you".
120
121Activities other than copying, distribution and modification are not
122covered by this License; they are outside its scope. The act of
123running the Program is not restricted, and the output from the Program
124is covered only if its contents constitute a work based on the
125Program (independent of having been made by running the Program).
126Whether that is true depends on what the Program does.
127
128 1. You may copy and distribute verbatim copies of the Program's
129source code as you receive it, in any medium, provided that you
130conspicuously and appropriately publish on each copy an appropriate
131copyright notice and disclaimer of warranty; keep intact all the
132notices that refer to this License and to the absence of any warranty;
133and give any other recipients of the Program a copy of this License
134along with the Program.
135
136You may charge a fee for the physical act of transferring a copy, and
137you may at your option offer warranty protection in exchange for a fee.
138
139 2. You may modify your copy or copies of the Program or any portion
140of it, thus forming a work based on the Program, and copy and
141distribute such modifications or work under the terms of Section 1
142above, provided that you also meet all of these conditions:
143
144 a) You must cause the modified files to carry prominent notices
145 stating that you changed the files and the date of any change.
146
147 b) You must cause any work that you distribute or publish, that in
148 whole or in part contains or is derived from the Program or any
149 part thereof, to be licensed as a whole at no charge to all third
150 parties under the terms of this License.
151
152 c) If the modified program normally reads commands interactively
153 when run, you must cause it, when started running for such
154 interactive use in the most ordinary way, to print or display an
155 announcement including an appropriate copyright notice and a
156 notice that there is no warranty (or else, saying that you provide
157 a warranty) and that users may redistribute the program under
158 these conditions, and telling the user how to view a copy of this
159 License. (Exception: if the Program itself is interactive but
160 does not normally print such an announcement, your work based on
161 the Program is not required to print an announcement.)
162
163These requirements apply to the modified work as a whole. If
164identifiable sections of that work are not derived from the Program,
165and can be reasonably considered independent and separate works in
166themselves, then this License, and its terms, do not apply to those
167sections when you distribute them as separate works. But when you
168distribute the same sections as part of a whole which is a work based
169on the Program, the distribution of the whole must be on the terms of
170this License, whose permissions for other licensees extend to the
171entire whole, and thus to each and every part regardless of who wrote it.
172
173Thus, it is not the intent of this section to claim rights or contest
174your rights to work written entirely by you; rather, the intent is to
175exercise the right to control the distribution of derivative or
176collective works based on the Program.
177
178In addition, mere aggregation of another work not based on the Program
179with the Program (or with a work based on the Program) on a volume of
180a storage or distribution medium does not bring the other work under
181the scope of this License.
182
183 3. You may copy and distribute the Program (or a work based on it,
184under Section 2) in object code or executable form under the terms of
185Sections 1 and 2 above provided that you also do one of the following:
186
187 a) Accompany it with the complete corresponding machine-readable
188 source code, which must be distributed under the terms of Sections
189 1 and 2 above on a medium customarily used for software interchange; or,
190
191 b) Accompany it with a written offer, valid for at least three
192 years, to give any third party, for a charge no more than your
193 cost of physically performing source distribution, a complete
194 machine-readable copy of the corresponding source code, to be
195 distributed under the terms of Sections 1 and 2 above on a medium
196 customarily used for software interchange; or,
197
198 c) Accompany it with the information you received as to the offer
199 to distribute corresponding source code. (This alternative is
200 allowed only for noncommercial distribution and only if you
201 received the program in object code or executable form with such
202 an offer, in accord with Subsection b above.)
203
204The source code for a work means the preferred form of the work for
205making modifications to it. For an executable work, complete source
206code means all the source code for all modules it contains, plus any
207associated interface definition files, plus the scripts used to
208control compilation and installation of the executable. However, as a
209special exception, the source code distributed need not include
210anything that is normally distributed (in either source or binary
211form) with the major components (compiler, kernel, and so on) of the
212operating system on which the executable runs, unless that component
213itself accompanies the executable.
214
215If distribution of executable or object code is made by offering
216access to copy from a designated place, then offering equivalent
217access to copy the source code from the same place counts as
218distribution of the source code, even though third parties are not
219compelled to copy the source along with the object code.
220
221 4. You may not copy, modify, sublicense, or distribute the Program
222except as expressly provided under this License. Any attempt
223otherwise to copy, modify, sublicense or distribute the Program is
224void, and will automatically terminate your rights under this License.
225However, parties who have received copies, or rights, from you under
226this License will not have their licenses terminated so long as such
227parties remain in full compliance.
228
229 5. You are not required to accept this License, since you have not
230signed it. However, nothing else grants you permission to modify or
231distribute the Program or its derivative works. These actions are
232prohibited by law if you do not accept this License. Therefore, by
233modifying or distributing the Program (or any work based on the
234Program), you indicate your acceptance of this License to do so, and
235all its terms and conditions for copying, distributing or modifying
236the Program or works based on it.
237
238 6. Each time you redistribute the Program (or any work based on the
239Program), the recipient automatically receives a license from the
240original licensor to copy, distribute or modify the Program subject to
241these terms and conditions. You may not impose any further
242restrictions on the recipients' exercise of the rights granted herein.
243You are not responsible for enforcing compliance by third parties to
244this License.
245
246 7. If, as a consequence of a court judgment or allegation of patent
247infringement or for any other reason (not limited to patent issues),
248conditions are imposed on you (whether by court order, agreement or
249otherwise) that contradict the conditions of this License, they do not
250excuse you from the conditions of this License. If you cannot
251distribute so as to satisfy simultaneously your obligations under this
252License and any other pertinent obligations, then as a consequence you
253may not distribute the Program at all. For example, if a patent
254license would not permit royalty-free redistribution of the Program by
255all those who receive copies directly or indirectly through you, then
256the only way you could satisfy both it and this License would be to
257refrain entirely from distribution of the Program.
258
259If any portion of this section is held invalid or unenforceable under
260any particular circumstance, the balance of the section is intended to
261apply and the section as a whole is intended to apply in other
262circumstances.
263
264It is not the purpose of this section to induce you to infringe any
265patents or other property right claims or to contest validity of any
266such claims; this section has the sole purpose of protecting the
267integrity of the free software distribution system, which is
268implemented by public license practices. Many people have made
269generous contributions to the wide range of software distributed
270through that system in reliance on consistent application of that
271system; it is up to the author/donor to decide if he or she is willing
272to distribute software through any other system and a licensee cannot
273impose that choice.
274
275This section is intended to make thoroughly clear what is believed to
276be a consequence of the rest of this License.
277
278 8. If the distribution and/or use of the Program is restricted in
279certain countries either by patents or by copyrighted interfaces, the
280original copyright holder who places the Program under this License
281may add an explicit geographical distribution limitation excluding
282those countries, so that distribution is permitted only in or among
283countries not thus excluded. In such case, this License incorporates
284the limitation as if written in the body of this License.
285
286 9. The Free Software Foundation may publish revised and/or new versions
287of the General Public License from time to time. Such new versions will
288be similar in spirit to the present version, but may differ in detail to
289address new problems or concerns.
290
291Each version is given a distinguishing version number. If the Program
292specifies a version number of this License which applies to it and "any
293later version", you have the option of following the terms and conditions
294either of that version or of any later version published by the Free
295Software Foundation. If the Program does not specify a version number of
296this License, you may choose any version ever published by the Free Software
297Foundation.
298
299 10. If you wish to incorporate parts of the Program into other free
300programs whose distribution conditions are different, write to the author
301to ask for permission. For software which is copyrighted by the Free
302Software Foundation, write to the Free Software Foundation; we sometimes
303make exceptions for this. Our decision will be guided by the two goals
304of preserving the free status of all derivatives of our free software and
305of promoting the sharing and reuse of software generally.
306
307 NO WARRANTY
308
309 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
310FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
311OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
312PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
313OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
314MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
315TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
316PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
317REPAIR OR CORRECTION.
318
319 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
320WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
321REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
322INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
323OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
324TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
325YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
326PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
327POSSIBILITY OF SUCH DAMAGES.
diff --git a/Documentation/networking/batman-adv.txt b/Documentation/networking/batman-adv.txt
new file mode 100644
index 000000000000..77f0cdd5b0dd
--- /dev/null
+++ b/Documentation/networking/batman-adv.txt
@@ -0,0 +1,240 @@
1[state: 21-11-2010]
2
3BATMAN-ADV
4----------
5
6Batman advanced is a new approach to wireless networking which
7does no longer operate on the IP basis. Unlike the batman daemon,
8which exchanges information using UDP packets and sets routing
9tables, batman-advanced operates on ISO/OSI Layer 2 only and uses
10and routes (or better: bridges) Ethernet Frames. It emulates a
11virtual network switch of all nodes participating. Therefore all
12nodes appear to be link local, thus all higher operating proto-
13cols won't be affected by any changes within the network. You can
14run almost any protocol above batman advanced, prominent examples
15are: IPv4, IPv6, DHCP, IPX.
16
17Batman advanced was implemented as a Linux kernel driver to re-
18duce the overhead to a minimum. It does not depend on any (other)
19network driver, and can be used on wifi as well as ethernet lan,
20vpn, etc ... (anything with ethernet-style layer 2).
21
22CONFIGURATION
23-------------
24
25Load the batman-adv module into your kernel:
26
27# insmod batman-adv.ko
28
29The module is now waiting for activation. You must add some in-
30terfaces on which batman can operate. After loading the module
31batman advanced will scan your systems interfaces to search for
32compatible interfaces. Once found, it will create subfolders in
33the /sys directories of each supported interface, e.g.
34
35# ls /sys/class/net/eth0/batman_adv/
36# iface_status mesh_iface
37
38If an interface does not have the "batman_adv" subfolder it prob-
39ably is not supported. Not supported interfaces are: loopback,
40non-ethernet and batman's own interfaces.
41
42Note: After the module was loaded it will continuously watch for
43new interfaces to verify the compatibility. There is no need to
44reload the module if you plug your USB wifi adapter into your ma-
45chine after batman advanced was initially loaded.
46
47To activate a given interface simply write "bat0" into its
48"mesh_iface" file inside the batman_adv subfolder:
49
50# echo bat0 > /sys/class/net/eth0/batman_adv/mesh_iface
51
52Repeat this step for all interfaces you wish to add. Now batman
53starts using/broadcasting on this/these interface(s).
54
55By reading the "iface_status" file you can check its status:
56
57# cat /sys/class/net/eth0/batman_adv/iface_status
58# active
59
60To deactivate an interface you have to write "none" into its
61"mesh_iface" file:
62
63# echo none > /sys/class/net/eth0/batman_adv/mesh_iface
64
65
66All mesh wide settings can be found in batman's own interface
67folder:
68
69# ls /sys/class/net/bat0/mesh/
70# aggregated_ogms bonding fragmentation orig_interval
71# vis_mode
72
73
74There is a special folder for debugging informations:
75
76# ls /sys/kernel/debug/batman_adv/bat0/
77# originators socket transtable_global transtable_local
78# vis_data
79
80
81Some of the files contain all sort of status information regard-
82ing the mesh network. For example, you can view the table of
83originators (mesh participants) with:
84
85# cat /sys/kernel/debug/batman_adv/bat0/originators
86
87Other files allow to change batman's behaviour to better fit your
88requirements. For instance, you can check the current originator
89interval (value in milliseconds which determines how often batman
90sends its broadcast packets):
91
92# cat /sys/class/net/bat0/mesh/orig_interval
93# 1000
94
95and also change its value:
96
97# echo 3000 > /sys/class/net/bat0/mesh/orig_interval
98
99In very mobile scenarios, you might want to adjust the originator
100interval to a lower value. This will make the mesh more respon-
101sive to topology changes, but will also increase the overhead.
102
103
104USAGE
105-----
106
107To make use of your newly created mesh, batman advanced provides
108a new interface "bat0" which you should use from this point on.
109All interfaces added to batman advanced are not relevant any
110longer because batman handles them for you. Basically, one "hands
111over" the data by using the batman interface and batman will make
112sure it reaches its destination.
113
114The "bat0" interface can be used like any other regular inter-
115face. It needs an IP address which can be either statically con-
116figured or dynamically (by using DHCP or similar services):
117
118# NodeA: ifconfig bat0 192.168.0.1
119# NodeB: ifconfig bat0 192.168.0.2
120# NodeB: ping 192.168.0.1
121
122Note: In order to avoid problems remove all IP addresses previ-
123ously assigned to interfaces now used by batman advanced, e.g.
124
125# ifconfig eth0 0.0.0.0
126
127
128VISUALIZATION
129-------------
130
131If you want topology visualization, at least one mesh node must
132be configured as VIS-server:
133
134# echo "server" > /sys/class/net/bat0/mesh/vis_mode
135
136Each node is either configured as "server" or as "client" (de-
137fault: "client"). Clients send their topology data to the server
138next to them, and server synchronize with other servers. If there
139is no server configured (default) within the mesh, no topology
140information will be transmitted. With these "synchronizing
141servers", there can be 1 or more vis servers sharing the same (or
142at least very similar) data.
143
144When configured as server, you can get a topology snapshot of
145your mesh:
146
147# cat /sys/kernel/debug/batman_adv/bat0/vis_data
148
149This raw output is intended to be easily parsable and convertable
150with other tools. Have a look at the batctl README if you want a
151vis output in dot or json format for instance and how those out-
152puts could then be visualised in an image.
153
154The raw format consists of comma separated values per entry where
155each entry is giving information about a certain source inter-
156face. Each entry can/has to have the following values:
157-> "mac" - mac address of an originator's source interface
158 (each line begins with it)
159-> "TQ mac value" - src mac's link quality towards mac address
160 of a neighbor originator's interface which
161 is being used for routing
162-> "HNA mac" - HNA announced by source mac
163-> "PRIMARY" - this is a primary interface
164-> "SEC mac" - secondary mac address of source
165 (requires preceding PRIMARY)
166
167The TQ value has a range from 4 to 255 with 255 being the best.
168The HNA entries are showing which hosts are connected to the mesh
169via bat0 or being bridged into the mesh network. The PRIMARY/SEC
170values are only applied on primary interfaces
171
172
173LOGGING/DEBUGGING
174-----------------
175
176All error messages, warnings and information messages are sent to
177the kernel log. Depending on your operating system distribution
178this can be read in one of a number of ways. Try using the com-
179mands: dmesg, logread, or looking in the files /var/log/kern.log
180or /var/log/syslog. All batman-adv messages are prefixed with
181"batman-adv:" So to see just these messages try
182
183# dmesg | grep batman-adv
184
185When investigating problems with your mesh network it is some-
186times necessary to see more detail debug messages. This must be
187enabled when compiling the batman-adv module. When building bat-
188man-adv as part of kernel, use "make menuconfig" and enable the
189option "B.A.T.M.A.N. debugging".
190
191Those additional debug messages can be accessed using a special
192file in debugfs
193
194# cat /sys/kernel/debug/batman_adv/bat0/log
195
196The additional debug output is by default disabled. It can be en-
197abled during run time. Following log_levels are defined:
198
1990 - All debug output disabled
2001 - Enable messages related to routing / flooding / broadcasting
2012 - Enable route or hna added / changed / deleted
2023 - Enable all messages
203
204The debug output can be changed at runtime using the file
205/sys/class/net/bat0/mesh/log_level. e.g.
206
207# echo 2 > /sys/class/net/bat0/mesh/log_level
208
209will enable debug messages for when routes or HNAs change.
210
211
212BATCTL
213------
214
215As batman advanced operates on layer 2 all hosts participating in
216the virtual switch are completely transparent for all protocols
217above layer 2. Therefore the common diagnosis tools do not work
218as expected. To overcome these problems batctl was created. At
219the moment the batctl contains ping, traceroute, tcpdump and
220interfaces to the kernel module settings.
221
222For more information, please see the manpage (man batctl).
223
224batctl is available on http://www.open-mesh.org/
225
226
227CONTACT
228-------
229
230Please send us comments, experiences, questions, anything :)
231
232IRC: #batman on irc.freenode.org
233Mailing-list: b.a.t.m.a.n@b.a.t.m.a.n@lists.open-mesh.org
234 (optional subscription at
235 https://lists.open-mesh.org/mm/listinfo/b.a.t.m.a.n)
236
237You can also contact the Authors:
238
239Marek Lindner <lindner_marek@yahoo.de>
240Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
diff --git a/Documentation/networking/dccp.txt b/Documentation/networking/dccp.txt
index 271d524a4c8d..b395ca6a49f2 100644
--- a/Documentation/networking/dccp.txt
+++ b/Documentation/networking/dccp.txt
@@ -47,6 +47,26 @@ http://linux-net.osdl.org/index.php/DCCP_Testing#Experimental_DCCP_source_tree
47 47
48Socket options 48Socket options
49============== 49==============
50DCCP_SOCKOPT_QPOLICY_ID sets the dequeuing policy for outgoing packets. It takes
51a policy ID as argument and can only be set before the connection (i.e. changes
52during an established connection are not supported). Currently, two policies are
53defined: the "simple" policy (DCCPQ_POLICY_SIMPLE), which does nothing special,
54and a priority-based variant (DCCPQ_POLICY_PRIO). The latter allows to pass an
55u32 priority value as ancillary data to sendmsg(), where higher numbers indicate
56a higher packet priority (similar to SO_PRIORITY). This ancillary data needs to
57be formatted using a cmsg(3) message header filled in as follows:
58 cmsg->cmsg_level = SOL_DCCP;
59 cmsg->cmsg_type = DCCP_SCM_PRIORITY;
60 cmsg->cmsg_len = CMSG_LEN(sizeof(uint32_t)); /* or CMSG_LEN(4) */
61
62DCCP_SOCKOPT_QPOLICY_TXQLEN sets the maximum length of the output queue. A zero
63value is always interpreted as unbounded queue length. If different from zero,
64the interpretation of this parameter depends on the current dequeuing policy
65(see above): the "simple" policy will enforce a fixed queue size by returning
66EAGAIN, whereas the "prio" policy enforces a fixed queue length by dropping the
67lowest-priority packet first. The default value for this parameter is
68initialised from /proc/sys/net/dccp/default/tx_qlen.
69
50DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of 70DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of
51service codes (RFC 4340, sec. 8.1.2); if this socket option is not set, 71service codes (RFC 4340, sec. 8.1.2); if this socket option is not set,
52the socket will fall back to 0 (which means that no meaningful service code 72the socket will fall back to 0 (which means that no meaningful service code
diff --git a/Documentation/networking/e100.txt b/Documentation/networking/e100.txt
index 944aa55e79f8..162f323a7a1f 100644
--- a/Documentation/networking/e100.txt
+++ b/Documentation/networking/e100.txt
@@ -72,7 +72,7 @@ Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a data
72 ethtool -G eth? tx n, where n is the number of desired tx descriptors. 72 ethtool -G eth? tx n, where n is the number of desired tx descriptors.
73 73
74Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by 74Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by
75 default. Ethtool can be used as follows to force speed/duplex. 75 default. The ethtool utility can be used as follows to force speed/duplex.
76 76
77 ethtool -s eth? autoneg off speed {10|100} duplex {full|half} 77 ethtool -s eth? autoneg off speed {10|100} duplex {full|half}
78 78
@@ -126,30 +126,21 @@ Additional Configurations
126 ------- 126 -------
127 127
128 The driver utilizes the ethtool interface for driver configuration and 128 The driver utilizes the ethtool interface for driver configuration and
129 diagnostics, as well as displaying statistical information. Ethtool 129 diagnostics, as well as displaying statistical information. The ethtool
130 version 1.6 or later is required for this functionality. 130 version 1.6 or later is required for this functionality.
131 131
132 The latest release of ethtool can be found from 132 The latest release of ethtool can be found from
133 http://sourceforge.net/projects/gkernel. 133 http://ftp.kernel.org/pub/software/network/ethtool/
134
135 NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support
136 for a more complete ethtool feature set can be enabled by upgrading
137 ethtool to ethtool-1.8.1.
138
139 134
140 Enabling Wake on LAN* (WoL) 135 Enabling Wake on LAN* (WoL)
141 --------------------------- 136 ---------------------------
142 WoL is provided through the Ethtool* utility. Ethtool is included with Red 137 WoL is provided through the ethtool* utility. For instructions on enabling
143 Hat* 8.0. For other Linux distributions, download and install Ethtool from 138 WoL with ethtool, refer to the ethtool man page.
144 the following website: http://sourceforge.net/projects/gkernel.
145
146 For instructions on enabling WoL with Ethtool, refer to the Ethtool man page.
147 139
148 WoL will be enabled on the system during the next shut down or reboot. For 140 WoL will be enabled on the system during the next shut down or reboot. For
149 this driver version, in order to enable WoL, the e100 driver must be 141 this driver version, in order to enable WoL, the e100 driver must be
150 loaded when shutting down or rebooting the system. 142 loaded when shutting down or rebooting the system.
151 143
152
153 NAPI 144 NAPI
154 ---- 145 ----
155 146
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt
index d9271e74e488..71ca95855671 100644
--- a/Documentation/networking/e1000.txt
+++ b/Documentation/networking/e1000.txt
@@ -79,7 +79,7 @@ InterruptThrottleRate
79--------------------- 79---------------------
80(not supported on Intel(R) 82542, 82543 or 82544-based adapters) 80(not supported on Intel(R) 82542, 82543 or 82544-based adapters)
81Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative, 81Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative,
82 4=simplified balancing) 82 4=simplified balancing)
83Default Value: 3 83Default Value: 3
84 84
85The driver can limit the amount of interrupts per second that the adapter 85The driver can limit the amount of interrupts per second that the adapter
@@ -124,8 +124,8 @@ InterruptThrottleRate is set to mode 1. In this mode, which operates
124the same as mode 3, the InterruptThrottleRate will be increased stepwise to 124the same as mode 3, the InterruptThrottleRate will be increased stepwise to
12570000 for traffic in class "Lowest latency". 12570000 for traffic in class "Lowest latency".
126 126
127In simplified mode the interrupt rate is based on the ratio of Tx and 127In simplified mode the interrupt rate is based on the ratio of TX and
128Rx traffic. If the bytes per second rate is approximately equal, the 128RX traffic. If the bytes per second rate is approximately equal, the
129interrupt rate will drop as low as 2000 interrupts per second. If the 129interrupt rate will drop as low as 2000 interrupts per second. If the
130traffic is mostly transmit or mostly receive, the interrupt rate could 130traffic is mostly transmit or mostly receive, the interrupt rate could
131be as high as 8000. 131be as high as 8000.
@@ -245,7 +245,7 @@ NOTE: Depending on the available system resources, the request for a
245TxDescriptorStep 245TxDescriptorStep
246---------------- 246----------------
247Valid Range: 1 (use every Tx Descriptor) 247Valid Range: 1 (use every Tx Descriptor)
248 4 (use every 4th Tx Descriptor) 248 4 (use every 4th Tx Descriptor)
249 249
250Default Value: 1 (use every Tx Descriptor) 250Default Value: 1 (use every Tx Descriptor)
251 251
@@ -312,7 +312,7 @@ Valid Range: 0-xxxxxxx (0=off)
312Default Value: 256 312Default Value: 256
313Usage: insmod e1000.ko copybreak=128 313Usage: insmod e1000.ko copybreak=128
314 314
315Driver copies all packets below or equaling this size to a fresh Rx 315Driver copies all packets below or equaling this size to a fresh RX
316buffer before handing it up the stack. 316buffer before handing it up the stack.
317 317
318This parameter is different than other parameters, in that it is a 318This parameter is different than other parameters, in that it is a
@@ -431,15 +431,15 @@ Additional Configurations
431 Ethtool 431 Ethtool
432 ------- 432 -------
433 The driver utilizes the ethtool interface for driver configuration and 433 The driver utilizes the ethtool interface for driver configuration and
434 diagnostics, as well as displaying statistical information. Ethtool 434 diagnostics, as well as displaying statistical information. The ethtool
435 version 1.6 or later is required for this functionality. 435 version 1.6 or later is required for this functionality.
436 436
437 The latest release of ethtool can be found from 437 The latest release of ethtool can be found from
438 http://sourceforge.net/projects/gkernel. 438 http://ftp.kernel.org/pub/software/network/ethtool/
439 439
440 Enabling Wake on LAN* (WoL) 440 Enabling Wake on LAN* (WoL)
441 --------------------------- 441 ---------------------------
442 WoL is configured through the Ethtool* utility. 442 WoL is configured through the ethtool* utility.
443 443
444 WoL will be enabled on the system during the next shut down or reboot. 444 WoL will be enabled on the system during the next shut down or reboot.
445 For this driver version, in order to enable WoL, the e1000 driver must be 445 For this driver version, in order to enable WoL, the e1000 driver must be
diff --git a/Documentation/networking/e1000e.txt b/Documentation/networking/e1000e.txt
index 6aa048badf32..97b5ba942ebf 100644
--- a/Documentation/networking/e1000e.txt
+++ b/Documentation/networking/e1000e.txt
@@ -1,5 +1,5 @@
1Linux* Driver for Intel(R) Network Connection 1Linux* Driver for Intel(R) Network Connection
2=============================================================== 2=============================================
3 3
4Intel Gigabit Linux driver. 4Intel Gigabit Linux driver.
5Copyright(c) 1999 - 2010 Intel Corporation. 5Copyright(c) 1999 - 2010 Intel Corporation.
@@ -61,6 +61,12 @@ per second, even if more packets have come in. This reduces interrupt
61load on the system and can lower CPU utilization under heavy load, 61load on the system and can lower CPU utilization under heavy load,
62but will increase latency as packets are not processed as quickly. 62but will increase latency as packets are not processed as quickly.
63 63
64The default behaviour of the driver previously assumed a static
65InterruptThrottleRate value of 8000, providing a good fallback value for
66all traffic types, but lacking in small packet performance and latency.
67The hardware can handle many more small packets per second however, and
68for this reason an adaptive interrupt moderation algorithm was implemented.
69
64The driver has two adaptive modes (setting 1 or 3) in which 70The driver has two adaptive modes (setting 1 or 3) in which
65it dynamically adjusts the InterruptThrottleRate value based on the traffic 71it dynamically adjusts the InterruptThrottleRate value based on the traffic
66that it receives. After determining the type of incoming traffic in the last 72that it receives. After determining the type of incoming traffic in the last
@@ -86,8 +92,8 @@ InterruptThrottleRate is set to mode 1. In this mode, which operates
86the same as mode 3, the InterruptThrottleRate will be increased stepwise to 92the same as mode 3, the InterruptThrottleRate will be increased stepwise to
8770000 for traffic in class "Lowest latency". 9370000 for traffic in class "Lowest latency".
88 94
89In simplified mode the interrupt rate is based on the ratio of Tx and 95In simplified mode the interrupt rate is based on the ratio of TX and
90Rx traffic. If the bytes per second rate is approximately equal the 96RX traffic. If the bytes per second rate is approximately equal, the
91interrupt rate will drop as low as 2000 interrupts per second. If the 97interrupt rate will drop as low as 2000 interrupts per second. If the
92traffic is mostly transmit or mostly receive, the interrupt rate could 98traffic is mostly transmit or mostly receive, the interrupt rate could
93be as high as 8000. 99be as high as 8000.
@@ -177,7 +183,7 @@ Copybreak
177Valid Range: 0-xxxxxxx (0=off) 183Valid Range: 0-xxxxxxx (0=off)
178Default Value: 256 184Default Value: 256
179 185
180Driver copies all packets below or equaling this size to a fresh Rx 186Driver copies all packets below or equaling this size to a fresh RX
181buffer before handing it up the stack. 187buffer before handing it up the stack.
182 188
183This parameter is different than other parameters, in that it is a 189This parameter is different than other parameters, in that it is a
@@ -223,17 +229,17 @@ loading or enabling the driver, try disabling this feature.
223 229
224WriteProtectNVM 230WriteProtectNVM
225--------------- 231---------------
226Valid Range: 0-1 232Valid Range: 0,1
227Default Value: 1 (enabled) 233Default Value: 1
228 234
229Set the hardware to ignore all write/erase cycles to the GbE region in the 235If set to 1, configure the hardware to ignore all write/erase cycles to the
230ICHx NVM (non-volatile memory). This feature can be disabled by the 236GbE region in the ICHx NVM (in order to prevent accidental corruption of the
231WriteProtectNVM module parameter (enabled by default) only after a hardware 237NVM). This feature can be disabled by setting the parameter to 0 during initial
232reset, but the machine must be power cycled before trying to enable writes. 238driver load.
233 239NOTE: The machine must be power cycled (full off/on) when enabling NVM writes
234Note: the kernel boot option iomem=relaxed may need to be set if the kernel 240via setting the parameter to zero. Once the NVM has been locked (via the
235config option CONFIG_STRICT_DEVMEM=y, if the root user wants to write the 241parameter at 1 when the driver loads) it cannot be unlocked except via power
236NVM from user space via ethtool. 242cycle.
237 243
238Additional Configurations 244Additional Configurations
239========================= 245=========================
@@ -259,32 +265,30 @@ Additional Configurations
259 - Some adapters limit Jumbo Frames sized packets to a maximum of 265 - Some adapters limit Jumbo Frames sized packets to a maximum of
260 4096 bytes and some adapters do not support Jumbo Frames. 266 4096 bytes and some adapters do not support Jumbo Frames.
261 267
262
263 Ethtool 268 Ethtool
264 ------- 269 -------
265 The driver utilizes the ethtool interface for driver configuration and 270 The driver utilizes the ethtool interface for driver configuration and
266 diagnostics, as well as displaying statistical information. We 271 diagnostics, as well as displaying statistical information. We
267 strongly recommend downloading the latest version of Ethtool at: 272 strongly recommend downloading the latest version of ethtool at:
268 273
269 http://sourceforge.net/projects/gkernel. 274 http://ftp.kernel.org/pub/software/network/ethtool/
270 275
271 Speed and Duplex 276 Speed and Duplex
272 ---------------- 277 ----------------
273 Speed and Duplex are configured through the Ethtool* utility. For 278 Speed and Duplex are configured through the ethtool* utility. For
274 instructions, refer to the Ethtool man page. 279 instructions, refer to the ethtool man page.
275 280
276 Enabling Wake on LAN* (WoL) 281 Enabling Wake on LAN* (WoL)
277 --------------------------- 282 ---------------------------
278 WoL is configured through the Ethtool* utility. For instructions on 283 WoL is configured through the ethtool* utility. For instructions on
279 enabling WoL with Ethtool, refer to the Ethtool man page. 284 enabling WoL with ethtool, refer to the ethtool man page.
280 285
281 WoL will be enabled on the system during the next shut down or reboot. 286 WoL will be enabled on the system during the next shut down or reboot.
282 For this driver version, in order to enable WoL, the e1000e driver must be 287 For this driver version, in order to enable WoL, the e1000e driver must be
283 loaded when shutting down or rebooting the system. 288 loaded when shutting down or rebooting the system.
284 289
285 In most cases Wake On LAN is only supported on port A for multiple port 290 In most cases Wake On LAN is only supported on port A for multiple port
286 adapters. To verify if a port supports Wake on LAN run ethtool eth<X>. 291 adapters. To verify if a port supports Wake on Lan run ethtool eth<X>.
287
288 292
289Support 293Support
290======= 294=======
diff --git a/Documentation/networking/igb.txt b/Documentation/networking/igb.txt
index ab2d71831892..98953c0d5342 100644
--- a/Documentation/networking/igb.txt
+++ b/Documentation/networking/igb.txt
@@ -36,6 +36,7 @@ Default Value: 0
36This parameter adds support for SR-IOV. It causes the driver to spawn up to 36This parameter adds support for SR-IOV. It causes the driver to spawn up to
37max_vfs worth of virtual function. 37max_vfs worth of virtual function.
38 38
39
39Additional Configurations 40Additional Configurations
40========================= 41=========================
41 42
@@ -60,15 +61,16 @@ Additional Configurations
60 Ethtool 61 Ethtool
61 ------- 62 -------
62 The driver utilizes the ethtool interface for driver configuration and 63 The driver utilizes the ethtool interface for driver configuration and
63 diagnostics, as well as displaying statistical information. 64 diagnostics, as well as displaying statistical information. The latest
65 version of ethtool can be found at:
64 66
65 http://sourceforge.net/projects/gkernel. 67 http://ftp.kernel.org/pub/software/network/ethtool/
66 68
67 Enabling Wake on LAN* (WoL) 69 Enabling Wake on LAN* (WoL)
68 --------------------------- 70 ---------------------------
69 WoL is configured through the Ethtool* utility. 71 WoL is configured through the ethtool* utility.
70 72
71 For instructions on enabling WoL with Ethtool, refer to the Ethtool man page. 73 For instructions on enabling WoL with ethtool, refer to the ethtool man page.
72 74
73 WoL will be enabled on the system during the next shut down or reboot. 75 WoL will be enabled on the system during the next shut down or reboot.
74 For this driver version, in order to enable WoL, the igb driver must be 76 For this driver version, in order to enable WoL, the igb driver must be
@@ -91,31 +93,6 @@ Additional Configurations
91 REQUIREMENTS: MSI-X support is required for Multiqueue. If MSI-X is not 93 REQUIREMENTS: MSI-X support is required for Multiqueue. If MSI-X is not
92 found, the system will fallback to MSI or to Legacy interrupts. 94 found, the system will fallback to MSI or to Legacy interrupts.
93 95
94 LRO
95 ---
96 Large Receive Offload (LRO) is a technique for increasing inbound throughput
97 of high-bandwidth network connections by reducing CPU overhead. It works by
98 aggregating multiple incoming packets from a single stream into a larger
99 buffer before they are passed higher up the networking stack, thus reducing
100 the number of packets that have to be processed. LRO combines multiple
101 Ethernet frames into a single receive in the stack, thereby potentially
102 decreasing CPU utilization for receives.
103
104 NOTE: You need to have inet_lro enabled via either the CONFIG_INET_LRO or
105 CONFIG_INET_LRO_MODULE kernel config option. Additionally, if
106 CONFIG_INET_LRO_MODULE is used, the inet_lro module needs to be loaded
107 before the igb driver.
108
109 You can verify that the driver is using LRO by looking at these counters in
110 Ethtool:
111
112 lro_aggregated - count of total packets that were combined
113 lro_flushed - counts the number of packets flushed out of LRO
114 lro_no_desc - counts the number of times an LRO descriptor was not available
115 for the LRO packet
116
117 NOTE: IPv6 and UDP are not supported by LRO.
118
119Support 96Support
120======= 97=======
121 98
diff --git a/Documentation/networking/igbvf.txt b/Documentation/networking/igbvf.txt
index 056028138d9c..cbfe4ee65533 100644
--- a/Documentation/networking/igbvf.txt
+++ b/Documentation/networking/igbvf.txt
@@ -58,9 +58,11 @@ Additional Configurations
58 Ethtool 58 Ethtool
59 ------- 59 -------
60 The driver utilizes the ethtool interface for driver configuration and 60 The driver utilizes the ethtool interface for driver configuration and
61 diagnostics, as well as displaying statistical information. 61 diagnostics, as well as displaying statistical information. The ethtool
62 version 3.0 or later is required for this functionality, although we
63 strongly recommend downloading the latest version at:
62 64
63 http://sourceforge.net/projects/gkernel. 65 http://ftp.kernel.org/pub/software/network/ethtool/
64 66
65Support 67Support
66======= 68=======
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index 3c5e465296e1..d99940dcfc44 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -11,7 +11,9 @@ ip_forward - BOOLEAN
11 for routers) 11 for routers)
12 12
13ip_default_ttl - INTEGER 13ip_default_ttl - INTEGER
14 default 64 14 Default value of TTL field (Time To Live) for outgoing (but not
15 forwarded) IP packets. Should be between 1 and 255 inclusive.
16 Default: 64 (as recommended by RFC1700)
15 17
16ip_no_pmtu_disc - BOOLEAN 18ip_no_pmtu_disc - BOOLEAN
17 Disable Path MTU Discovery. 19 Disable Path MTU Discovery.
@@ -708,10 +710,28 @@ igmp_max_memberships - INTEGER
708 Change the maximum number of multicast groups we can subscribe to. 710 Change the maximum number of multicast groups we can subscribe to.
709 Default: 20 711 Default: 20
710 712
711conf/interface/* changes special settings per interface (where "interface" is 713 Theoretical maximum value is bounded by having to send a membership
712 the name of your network interface) 714 report in a single datagram (i.e. the report can't span multiple
713conf/all/* is special, changes the settings for all interfaces 715 datagrams, or risk confusing the switch and leaving groups you don't
716 intend to).
714 717
718 The number of supported groups 'M' is bounded by the number of group
719 report entries you can fit into a single datagram of 65535 bytes.
720
721 M = 65536-sizeof (ip header)/(sizeof(Group record))
722
723 Group records are variable length, with a minimum of 12 bytes.
724 So net.ipv4.igmp_max_memberships should not be set higher than:
725
726 (65536-24) / 12 = 5459
727
728 The value 5459 assumes no IP header options, so in practice
729 this number may be lower.
730
731 conf/interface/* changes special settings per interface (where
732 "interface" is the name of your network interface)
733
734 conf/all/* is special, changes the settings for all interfaces
715 735
716log_martians - BOOLEAN 736log_martians - BOOLEAN
717 Log packets with impossible addresses to kernel log. 737 Log packets with impossible addresses to kernel log.
diff --git a/Documentation/networking/ixgb.txt b/Documentation/networking/ixgb.txt
index a0d0ffb5e584..e196f16df313 100644
--- a/Documentation/networking/ixgb.txt
+++ b/Documentation/networking/ixgb.txt
@@ -309,15 +309,15 @@ Additional Configurations
309 Ethtool 309 Ethtool
310 ------- 310 -------
311 The driver utilizes the ethtool interface for driver configuration and 311 The driver utilizes the ethtool interface for driver configuration and
312 diagnostics, as well as displaying statistical information. Ethtool 312 diagnostics, as well as displaying statistical information. The ethtool
313 version 1.6 or later is required for this functionality. 313 version 1.6 or later is required for this functionality.
314 314
315 The latest release of ethtool can be found from 315 The latest release of ethtool can be found from
316 http://sourceforge.net/projects/gkernel 316 http://ftp.kernel.org/pub/software/network/ethtool/
317 317
318 NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support 318 NOTE: The ethtool version 1.6 only supports a limited set of ethtool options.
319 for a more complete ethtool feature set can be enabled by upgrading 319 Support for a more complete ethtool feature set can be enabled by
320 to the latest version. 320 upgrading to the latest version.
321 321
322 322
323 NAPI 323 NAPI
diff --git a/Documentation/networking/ixgbe.txt b/Documentation/networking/ixgbe.txt
index eeb68685c788..af77ed3c4172 100644
--- a/Documentation/networking/ixgbe.txt
+++ b/Documentation/networking/ixgbe.txt
@@ -1,107 +1,126 @@
1Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection 1Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection
2======================================================================== 2========================================================================
3 3
4March 10, 2009 4Intel Gigabit Linux driver.
5 5Copyright(c) 1999 - 2010 Intel Corporation.
6 6
7Contents 7Contents
8======== 8========
9 9
10- In This Release
11- Identifying Your Adapter 10- Identifying Your Adapter
12- Building and Installation
13- Additional Configurations 11- Additional Configurations
12- Performance Tuning
13- Known Issues
14- Support 14- Support
15 15
16Identifying Your Adapter
17========================
16 18
19The driver in this release is compatible with 82598 and 82599-based Intel
20Network Connections.
17 21
18In This Release 22For more information on how to identify your adapter, go to the Adapter &
19=============== 23Driver ID Guide at:
20 24
21This file describes the ixgbe Linux Base Driver for the 10 Gigabit PCI 25 http://support.intel.com/support/network/sb/CS-012904.htm
22Express Intel(R) Network Connection. This driver includes support for
23Itanium(R)2-based systems.
24 26
25For questions related to hardware requirements, refer to the documentation 27SFP+ Devices with Pluggable Optics
26supplied with your 10 Gigabit adapter. All hardware requirements listed apply 28----------------------------------
27to use with Linux.
28 29
29The following features are available in this kernel: 3082599-BASED ADAPTERS
30 - Native VLANs
31 - Channel Bonding (teaming)
32 - SNMP
33 - Generic Receive Offload
34 - Data Center Bridging
35 31
36Channel Bonding documentation can be found in the Linux kernel source: 32NOTES: If your 82599-based Intel(R) Network Adapter came with Intel optics, or
37/Documentation/networking/bonding.txt 33is an Intel(R) Ethernet Server Adapter X520-2, then it only supports Intel
34optics and/or the direct attach cables listed below.
38 35
39Ethtool, lspci, and ifconfig can be used to display device and driver 36When 82599-based SFP+ devices are connected back to back, they should be set to
40specific information. 37the same Speed setting via ethtool. Results may vary if you mix speed settings.
3882598-based adapters support all passive direct attach cables that comply
39with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach
40cables are not supported.
41 41
42Supplier Type Part Numbers
42 43
43Identifying Your Adapter 44SR Modules
44======================== 45Intel DUAL RATE 1G/10G SFP+ SR (bailed) FTLX8571D3BCV-IT
46Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDDZ-IN1
47Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDZ-IN2
48LR Modules
49Intel DUAL RATE 1G/10G SFP+ LR (bailed) FTLX1471D3BCV-IT
50Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDDZ-IN1
51Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDZ-IN2
45 52
46This driver supports devices based on the 82598 controller and the 82599 53The following is a list of 3rd party SFP+ modules and direct attach cables that
47controller. 54have received some testing. Not all modules are applicable to all devices.
48 55
49For specific information on identifying which adapter you have, please visit: 56Supplier Type Part Numbers
50 57
51 http://support.intel.com/support/network/sb/CS-008441.htm 58Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL
59Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ
60Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL
52 61
62Finisar DUAL RATE 1G/10G SFP+ SR (No Bail) FTLX8571D3QCV-IT
63Avago DUAL RATE 1G/10G SFP+ SR (No Bail) AFBR-703SDZ-IN1
64Finisar DUAL RATE 1G/10G SFP+ LR (No Bail) FTLX1471D3QCV-IT
65Avago DUAL RATE 1G/10G SFP+ LR (No Bail) AFCT-701SDZ-IN1
66Finistar 1000BASE-T SFP FCLF8522P2BTL
67Avago 1000BASE-T SFP ABCU-5710RZ
53 68
54Building and Installation 6982599-based adapters support all passive and active limiting direct attach
55========================= 70cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications.
56 71
57select m for "Intel(R) 10GbE PCI Express adapters support" located at: 72Laser turns off for SFP+ when ifconfig down
58 Location: 73-------------------------------------------
59 -> Device Drivers 74"ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters.
60 -> Network device support (NETDEVICES [=y]) 75"ifconfig up" turns on the later.
61 -> Ethernet (10000 Mbit) (NETDEV_10000 [=y])
62 76
631. make modules & make modules_install
64 77
652. Load the module: 7882598-BASED ADAPTERS
66 79
67# modprobe ixgbe 80NOTES for 82598-Based Adapters:
81- Intel(R) Network Adapters that support removable optical modules only support
82 their original module type (i.e., the Intel(R) 10 Gigabit SR Dual Port
83 Express Module only supports SR optical modules). If you plug in a different
84 type of module, the driver will not load.
85- Hot Swapping/hot plugging optical modules is not supported.
86- Only single speed, 10 gigabit modules are supported.
87- LAN on Motherboard (LOMs) may support DA, SR, or LR modules. Other module
88 types are not supported. Please see your system documentation for details.
68 89
69 The insmod command can be used if the full 90The following is a list of 3rd party SFP+ modules and direct attach cables that
70 path to the driver module is specified. For example: 91have received some testing. Not all modules are applicable to all devices.
71 92
72 insmod /lib/modules/<KERNEL VERSION>/kernel/drivers/net/ixgbe/ixgbe.ko 93Supplier Type Part Numbers
73 94
74 With 2.6 based kernels also make sure that older ixgbe drivers are 95Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL
75 removed from the kernel, before loading the new module: 96Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ
97Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL
76 98
77 rmmod ixgbe; modprobe ixgbe 9982598-based adapters support all passive direct attach cables that comply
100with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach
101cables are not supported.
78 102
793. Assign an IP address to the interface by entering the following, where
80 x is the interface number:
81 103
82 ifconfig ethx <IP_address> 104Flow Control
105------------
106Ethernet Flow Control (IEEE 802.3x) can be configured with ethtool to enable
107receiving and transmitting pause frames for ixgbe. When TX is enabled, PAUSE
108frames are generated when the receive packet buffer crosses a predefined
109threshold. When rx is enabled, the transmit unit will halt for the time delay
110specified when a PAUSE frame is received.
83 111
844. Verify that the interface works. Enter the following, where <IP_address> 112Flow Control is enabled by default. If you want to disable a flow control
85 is the IP address for another machine on the same subnet as the interface 113capable link partner, use ethtool:
86 that is being tested:
87 114
88 ping <IP_address> 115 ethtool -A eth? autoneg off RX off TX off
89 116
117NOTE: For 82598 backplane cards entering 1 gig mode, flow control default
118behavior is changed to off. Flow control in 1 gig mode on these devices can
119lead to Tx hangs.
90 120
91Additional Configurations 121Additional Configurations
92========================= 122=========================
93 123
94 Viewing Link Messages
95 ---------------------
96 Link messages will not be displayed to the console if the distribution is
97 restricting system messages. In order to see network driver link messages on
98 your console, set dmesg to eight by entering the following:
99
100 dmesg -n 8
101
102 NOTE: This setting is not saved across reboots.
103
104
105 Jumbo Frames 124 Jumbo Frames
106 ------------ 125 ------------
107 The driver supports Jumbo Frames for all adapters. Jumbo Frames support is 126 The driver supports Jumbo Frames for all adapters. Jumbo Frames support is
@@ -123,13 +142,8 @@ Additional Configurations
123 other protocols besides TCP. It's also safe to use with configurations that 142 other protocols besides TCP. It's also safe to use with configurations that
124 are problematic for LRO, namely bridging and iSCSI. 143 are problematic for LRO, namely bridging and iSCSI.
125 144
126 GRO is enabled by default in the driver. Future versions of ethtool will
127 support disabling and re-enabling GRO on the fly.
128
129
130 Data Center Bridging, aka DCB 145 Data Center Bridging, aka DCB
131 ----------------------------- 146 -----------------------------
132
133 DCB is a configuration Quality of Service implementation in hardware. 147 DCB is a configuration Quality of Service implementation in hardware.
134 It uses the VLAN priority tag (802.1p) to filter traffic. That means 148 It uses the VLAN priority tag (802.1p) to filter traffic. That means
135 that there are 8 different priorities that traffic can be filtered into. 149 that there are 8 different priorities that traffic can be filtered into.
@@ -163,24 +177,71 @@ Additional Configurations
163 177
164 http://e1000.sf.net 178 http://e1000.sf.net
165 179
166
167 Ethtool 180 Ethtool
168 ------- 181 -------
169 The driver utilizes the ethtool interface for driver configuration and 182 The driver utilizes the ethtool interface for driver configuration and
170 diagnostics, as well as displaying statistical information. Ethtool 183 diagnostics, as well as displaying statistical information. The latest
171 version 3.0 or later is required for this functionality. 184 ethtool version is required for this functionality.
172 185
173 The latest release of ethtool can be found from 186 The latest release of ethtool can be found from
174 http://sourceforge.net/projects/gkernel. 187 http://ftp.kernel.org/pub/software/network/ethtool/
175 188
176 189 FCoE
177 NAPI
178 ---- 190 ----
191 This release of the ixgbe driver contains new code to enable users to use
192 Fiber Channel over Ethernet (FCoE) and Data Center Bridging (DCB)
193 functionality that is supported by the 82598-based hardware. This code has
194 no default effect on the regular driver operation, and configuring DCB and
195 FCoE is outside the scope of this driver README. Refer to
196 http://www.open-fcoe.org/ for FCoE project information and contact
197 e1000-eedc@lists.sourceforge.net for DCB information.
198
199 MAC and VLAN anti-spoofing feature
200 ----------------------------------
201 When a malicious driver attempts to send a spoofed packet, it is dropped by
202 the hardware and not transmitted. An interrupt is sent to the PF driver
203 notifying it of the spoof attempt.
204
205 When a spoofed packet is detected the PF driver will send the following
206 message to the system log (displayed by the "dmesg" command):
207
208 Spoof event(s) detected on VF (n)
209
210 Where n=the VF that attempted to do the spoofing.
211
212
213Performance Tuning
214==================
215
216An excellent article on performance tuning can be found at:
217
218http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf
219
220
221Known Issues
222============
223
224 Enabling SR-IOV in a 32-bit Microsoft* Windows* Server 2008 Guest OS using
225 Intel (R) 82576-based GbE or Intel (R) 82599-based 10GbE controller under KVM
226 -----------------------------------------------------------------------------
227 KVM Hypervisor/VMM supports direct assignment of a PCIe device to a VM. This
228 includes traditional PCIe devices, as well as SR-IOV-capable devices using
229 Intel 82576-based and 82599-based controllers.
230
231 While direct assignment of a PCIe device or an SR-IOV Virtual Function (VF)
232 to a Linux-based VM running 2.6.32 or later kernel works fine, there is a
233 known issue with Microsoft Windows Server 2008 VM that results in a "yellow
234 bang" error. This problem is within the KVM VMM itself, not the Intel driver,
235 or the SR-IOV logic of the VMM, but rather that KVM emulates an older CPU
236 model for the guests, and this older CPU model does not support MSI-X
237 interrupts, which is a requirement for Intel SR-IOV.
179 238
180 NAPI (Rx polling mode) is supported in the ixgbe driver. NAPI is enabled 239 If you wish to use the Intel 82576 or 82599-based controllers in SR-IOV mode
181 by default in the driver. 240 with KVM and a Microsoft Windows Server 2008 guest try the following
241 workaround. The workaround is to tell KVM to emulate a different model of CPU
242 when using qemu to create the KVM guest:
182 243
183 See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. 244 "-cpu qemu64,model=13"
184 245
185 246
186Support 247Support
diff --git a/Documentation/networking/ixgbevf.txt b/Documentation/networking/ixgbevf.txt
index 21dd5d15b6b4..5a91a41fa946 100644
--- a/Documentation/networking/ixgbevf.txt
+++ b/Documentation/networking/ixgbevf.txt
@@ -35,10 +35,6 @@ Driver ID Guide at:
35Known Issues/Troubleshooting 35Known Issues/Troubleshooting
36============================ 36============================
37 37
38 Unloading Physical Function (PF) Driver Causes System Reboots When VM is
39 Running and VF is Loaded on the VM
40 ------------------------------------------------------------------------
41 Do not unload the PF driver (ixgbe) while VFs are assigned to guests.
42 38
43Support 39Support
44======= 40=======
diff --git a/Documentation/networking/stmmac.txt b/Documentation/networking/stmmac.txt
index 7ee770b5ef5f..80a7a3454902 100644
--- a/Documentation/networking/stmmac.txt
+++ b/Documentation/networking/stmmac.txt
@@ -7,7 +7,7 @@ This is the driver for the MAC 10/100/1000 on-chip Ethernet controllers
7(Synopsys IP blocks); it has been fully tested on STLinux platforms. 7(Synopsys IP blocks); it has been fully tested on STLinux platforms.
8 8
9Currently this network device driver is for all STM embedded MAC/GMAC 9Currently this network device driver is for all STM embedded MAC/GMAC
10(7xxx SoCs). 10(7xxx SoCs). Other platforms start using it i.e. ARM SPEAr.
11 11
12DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/100 12DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/100
13Universal version 4.0 have been used for developing the first code 13Universal version 4.0 have been used for developing the first code
@@ -95,9 +95,14 @@ Several information came from the platform; please refer to the
95driver's Header file in include/linux directory. 95driver's Header file in include/linux directory.
96 96
97struct plat_stmmacenet_data { 97struct plat_stmmacenet_data {
98 int bus_id; 98 int bus_id;
99 int pbl; 99 int pbl;
100 int has_gmac; 100 int clk_csr;
101 int has_gmac;
102 int enh_desc;
103 int tx_coe;
104 int bugged_jumbo;
105 int pmt;
101 void (*fix_mac_speed)(void *priv, unsigned int speed); 106 void (*fix_mac_speed)(void *priv, unsigned int speed);
102 void (*bus_setup)(unsigned long ioaddr); 107 void (*bus_setup)(unsigned long ioaddr);
103#ifdef CONFIG_STM_DRIVERS 108#ifdef CONFIG_STM_DRIVERS
@@ -114,6 +119,12 @@ Where:
114 registers (on STM platforms); 119 registers (on STM platforms);
115- has_gmac: GMAC core is on board (get it at run-time in the next step); 120- has_gmac: GMAC core is on board (get it at run-time in the next step);
116- bus_id: bus identifier. 121- bus_id: bus identifier.
122- tx_coe: core is able to perform the tx csum in HW.
123- enh_desc: if sets the MAC will use the enhanced descriptor structure.
124- clk_csr: CSR Clock range selection.
125- bugged_jumbo: some HWs are not able to perform the csum in HW for
126 over-sized frames due to limited buffer sizes. Setting this
127 flag the csum will be done in SW on JUMBO frames.
117 128
118struct plat_stmmacphy_data { 129struct plat_stmmacphy_data {
119 int bus_id; 130 int bus_id;
@@ -131,13 +142,28 @@ Where:
131- interface: physical MII interface mode; 142- interface: physical MII interface mode;
132- phy_reset: hook to reset HW function. 143- phy_reset: hook to reset HW function.
133 144
145SOURCES:
146- Kconfig
147- Makefile
148- stmmac_main.c: main network device driver;
149- stmmac_mdio.c: mdio functions;
150- stmmac_ethtool.c: ethtool support;
151- stmmac_timer.[ch]: timer code used for mitigating the driver dma interrupts
152 Only tested on ST40 platforms based.
153- stmmac.h: private driver structure;
154- common.h: common definitions and VFTs;
155- descs.h: descriptor structure definitions;
156- dwmac1000_core.c: GMAC core functions;
157- dwmac1000_dma.c: dma functions for the GMAC chip;
158- dwmac1000.h: specific header file for the GMAC;
159- dwmac100_core: MAC 100 core and dma code;
160- dwmac100_dma.c: dma funtions for the MAC chip;
161- dwmac1000.h: specific header file for the MAC;
162- dwmac_lib.c: generic DMA functions shared among chips
163- enh_desc.c: functions for handling enhanced descriptors
164- norm_desc.c: functions for handling normal descriptors
165
134TODO: 166TODO:
135- Continue to make the driver more generic and suitable for other Synopsys 167- XGMAC controller is not supported.
136 Ethernet controllers used on other architectures (i.e. ARM).
137- 10G controllers are not supported.
138- MAC uses Normal descriptors and GMAC uses enhanced ones.
139 This is a limit that should be reviewed. MAC could want to
140 use the enhanced structure.
141- Checksumming: Rx/Tx csum is done in HW in case of GMAC only.
142- Review the timer optimisation code to use an embedded device that seems to be 168- Review the timer optimisation code to use an embedded device that seems to be
143 available in new chip generations. 169 available in new chip generations.