diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /Documentation/networking | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'Documentation/networking')
32 files changed, 1140 insertions, 284 deletions
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX index fe5c099b8fc8..4edd78dfb362 100644 --- a/Documentation/networking/00-INDEX +++ b/Documentation/networking/00-INDEX | |||
@@ -40,8 +40,6 @@ decnet.txt | |||
40 | - info on using the DECnet networking layer in Linux. | 40 | - info on using the DECnet networking layer in Linux. |
41 | depca.txt | 41 | depca.txt |
42 | - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver | 42 | - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver |
43 | dgrs.txt | ||
44 | - the Digi International RightSwitch SE-X Ethernet driver | ||
45 | dmfe.txt | 43 | dmfe.txt |
46 | - info on the Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver. | 44 | - info on the Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver. |
47 | e100.txt | 45 | e100.txt |
@@ -50,8 +48,6 @@ e1000.txt | |||
50 | - info on Intel's E1000 line of gigabit ethernet boards | 48 | - info on Intel's E1000 line of gigabit ethernet boards |
51 | eql.txt | 49 | eql.txt |
52 | - serial IP load balancing | 50 | - serial IP load balancing |
53 | ethertap.txt | ||
54 | - the Ethertap user space packet reception and transmission driver | ||
55 | ewrk3.txt | 51 | ewrk3.txt |
56 | - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver | 52 | - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver |
57 | filter.txt | 53 | filter.txt |
@@ -104,8 +100,6 @@ tuntap.txt | |||
104 | - TUN/TAP device driver, allowing user space Rx/Tx of packets. | 100 | - TUN/TAP device driver, allowing user space Rx/Tx of packets. |
105 | vortex.txt | 101 | vortex.txt |
106 | - info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards. | 102 | - info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards. |
107 | wavelan.txt | ||
108 | - AT&T GIS (nee NCR) WaveLAN card: An Ethernet-like radio transceiver | ||
109 | x25.txt | 103 | x25.txt |
110 | - general info on X.25 development. | 104 | - general info on X.25 development. |
111 | x25-iface.txt | 105 | x25-iface.txt |
diff --git a/Documentation/networking/3c359.txt b/Documentation/networking/3c359.txt index 4af8071a6d18..dadfe8147ab8 100644 --- a/Documentation/networking/3c359.txt +++ b/Documentation/networking/3c359.txt | |||
@@ -45,7 +45,7 @@ debugging messages on, that must be done by modified the source code. | |||
45 | 45 | ||
46 | Variable MTU size: | 46 | Variable MTU size: |
47 | 47 | ||
48 | The driver can handle a MTU size upto either 4500 or 18000 depending upon | 48 | The driver can handle a MTU size up to either 4500 or 18000 depending upon |
49 | ring speed. The driver also changes the size of the receive buffers as part | 49 | ring speed. The driver also changes the size of the receive buffers as part |
50 | of the mtu re-sizing, so if you set mtu = 18000, you will need to be able | 50 | of the mtu re-sizing, so if you set mtu = 18000, you will need to be able |
51 | to allocate 16 * (sk_buff with 18000 buffer size) call it 18500 bytes per ring | 51 | to allocate 16 * (sk_buff with 18000 buffer size) call it 18500 bytes per ring |
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 @@ | |||
1 | Copyright (c) 2009-2010 QLogic Corporation | ||
2 | QLogic Linux qlcnic NIC Driver | ||
3 | |||
4 | This program includes a device driver for Linux 2.6 that may be | ||
5 | distributed with QLogic hardware specific firmware binary file. | ||
6 | You may modify and redistribute the device driver code under the | ||
7 | GNU General Public License (a copy of which is attached hereto as | ||
8 | Exhibit A) published by the Free Software Foundation (version 2). | ||
9 | |||
10 | You may redistribute the hardware specific firmware binary file | ||
11 | under 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 | |||
26 | REGARDLESS OF WHAT LICENSING MECHANISM IS USED OR APPLICABLE, | ||
27 | THIS PROGRAM IS PROVIDED BY QLOGIC CORPORATION "AS IS'' AND ANY | ||
28 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
29 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A | ||
30 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR | ||
31 | BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||
32 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED | ||
33 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
35 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||
36 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
37 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
38 | POSSIBILITY OF SUCH DAMAGE. | ||
39 | |||
40 | USER ACKNOWLEDGES AND AGREES THAT USE OF THIS PROGRAM WILL NOT | ||
41 | CREATE OR GIVE GROUNDS FOR A LICENSE BY IMPLICATION, ESTOPPEL, OR | ||
42 | OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS (PATENT, COPYRIGHT, | ||
43 | TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) EMBODIED IN | ||
44 | ANY OTHER QLOGIC HARDWARE OR SOFTWARE EITHER SOLELY OR IN | ||
45 | COMBINATION WITH THIS PROGRAM. | ||
46 | |||
47 | |||
48 | EXHIBIT 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 | ||
61 | freedom to share and change it. By contrast, the GNU General Public | ||
62 | License is intended to guarantee your freedom to share and change free | ||
63 | software--to make sure the software is free for all its users. This | ||
64 | General Public License applies to most of the Free Software | ||
65 | Foundation's software and to any other program whose authors commit to | ||
66 | using it. (Some other Free Software Foundation software is covered by | ||
67 | the GNU Lesser General Public License instead.) You can apply it to | ||
68 | your programs, too. | ||
69 | |||
70 | When we speak of free software, we are referring to freedom, not | ||
71 | price. Our General Public Licenses are designed to make sure that you | ||
72 | have the freedom to distribute copies of free software (and charge for | ||
73 | this service if you wish), that you receive source code or can get it | ||
74 | if you want it, that you can change the software or use pieces of it | ||
75 | in 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 | ||
78 | anyone to deny you these rights or to ask you to surrender the rights. | ||
79 | These restrictions translate to certain responsibilities for you if you | ||
80 | distribute copies of the software, or if you modify it. | ||
81 | |||
82 | For example, if you distribute copies of such a program, whether | ||
83 | gratis or for a fee, you must give the recipients all the rights that | ||
84 | you have. You must make sure that they, too, receive or can get the | ||
85 | source code. And you must show them these terms so they know their | ||
86 | rights. | ||
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, | ||
90 | distribute and/or modify the software. | ||
91 | |||
92 | Also, for each author's protection and ours, we want to make certain | ||
93 | that everyone understands that there is no warranty for this free | ||
94 | software. If the software is modified by someone else and passed on, we | ||
95 | want its recipients to know that what they have is not the original, so | ||
96 | that any problems introduced by others will not reflect on the original | ||
97 | authors' reputations. | ||
98 | |||
99 | Finally, any free program is threatened constantly by software | ||
100 | patents. We wish to avoid the danger that redistributors of a free | ||
101 | program will individually obtain patent licenses, in effect making the | ||
102 | program proprietary. To prevent this, we have made it clear that any | ||
103 | patent must be licensed for everyone's free use or not licensed at all. | ||
104 | |||
105 | The precise terms and conditions for copying, distribution and | ||
106 | modification 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 | ||
112 | a notice placed by the copyright holder saying it may be distributed | ||
113 | under the terms of this General Public License. The "Program", below, | ||
114 | refers to any such program or work, and a "work based on the Program" | ||
115 | means either the Program or any derivative work under copyright law: | ||
116 | that is to say, a work containing the Program or a portion of it, | ||
117 | either verbatim or with modifications and/or translated into another | ||
118 | language. (Hereinafter, translation is included without limitation in | ||
119 | the term "modification".) Each licensee is addressed as "you". | ||
120 | |||
121 | Activities other than copying, distribution and modification are not | ||
122 | covered by this License; they are outside its scope. The act of | ||
123 | running the Program is not restricted, and the output from the Program | ||
124 | is covered only if its contents constitute a work based on the | ||
125 | Program (independent of having been made by running the Program). | ||
126 | Whether that is true depends on what the Program does. | ||
127 | |||
128 | 1. You may copy and distribute verbatim copies of the Program's | ||
129 | source code as you receive it, in any medium, provided that you | ||
130 | conspicuously and appropriately publish on each copy an appropriate | ||
131 | copyright notice and disclaimer of warranty; keep intact all the | ||
132 | notices that refer to this License and to the absence of any warranty; | ||
133 | and give any other recipients of the Program a copy of this License | ||
134 | along with the Program. | ||
135 | |||
136 | You may charge a fee for the physical act of transferring a copy, and | ||
137 | you 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 | ||
140 | of it, thus forming a work based on the Program, and copy and | ||
141 | distribute such modifications or work under the terms of Section 1 | ||
142 | above, 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 | |||
163 | These requirements apply to the modified work as a whole. If | ||
164 | identifiable sections of that work are not derived from the Program, | ||
165 | and can be reasonably considered independent and separate works in | ||
166 | themselves, then this License, and its terms, do not apply to those | ||
167 | sections when you distribute them as separate works. But when you | ||
168 | distribute the same sections as part of a whole which is a work based | ||
169 | on the Program, the distribution of the whole must be on the terms of | ||
170 | this License, whose permissions for other licensees extend to the | ||
171 | entire whole, and thus to each and every part regardless of who wrote it. | ||
172 | |||
173 | Thus, it is not the intent of this section to claim rights or contest | ||
174 | your rights to work written entirely by you; rather, the intent is to | ||
175 | exercise the right to control the distribution of derivative or | ||
176 | collective works based on the Program. | ||
177 | |||
178 | In addition, mere aggregation of another work not based on the Program | ||
179 | with the Program (or with a work based on the Program) on a volume of | ||
180 | a storage or distribution medium does not bring the other work under | ||
181 | the scope of this License. | ||
182 | |||
183 | 3. You may copy and distribute the Program (or a work based on it, | ||
184 | under Section 2) in object code or executable form under the terms of | ||
185 | Sections 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 | |||
204 | The source code for a work means the preferred form of the work for | ||
205 | making modifications to it. For an executable work, complete source | ||
206 | code means all the source code for all modules it contains, plus any | ||
207 | associated interface definition files, plus the scripts used to | ||
208 | control compilation and installation of the executable. However, as a | ||
209 | special exception, the source code distributed need not include | ||
210 | anything that is normally distributed (in either source or binary | ||
211 | form) with the major components (compiler, kernel, and so on) of the | ||
212 | operating system on which the executable runs, unless that component | ||
213 | itself accompanies the executable. | ||
214 | |||
215 | If distribution of executable or object code is made by offering | ||
216 | access to copy from a designated place, then offering equivalent | ||
217 | access to copy the source code from the same place counts as | ||
218 | distribution of the source code, even though third parties are not | ||
219 | compelled to copy the source along with the object code. | ||
220 | |||
221 | 4. You may not copy, modify, sublicense, or distribute the Program | ||
222 | except as expressly provided under this License. Any attempt | ||
223 | otherwise to copy, modify, sublicense or distribute the Program is | ||
224 | void, and will automatically terminate your rights under this License. | ||
225 | However, parties who have received copies, or rights, from you under | ||
226 | this License will not have their licenses terminated so long as such | ||
227 | parties remain in full compliance. | ||
228 | |||
229 | 5. You are not required to accept this License, since you have not | ||
230 | signed it. However, nothing else grants you permission to modify or | ||
231 | distribute the Program or its derivative works. These actions are | ||
232 | prohibited by law if you do not accept this License. Therefore, by | ||
233 | modifying or distributing the Program (or any work based on the | ||
234 | Program), you indicate your acceptance of this License to do so, and | ||
235 | all its terms and conditions for copying, distributing or modifying | ||
236 | the Program or works based on it. | ||
237 | |||
238 | 6. Each time you redistribute the Program (or any work based on the | ||
239 | Program), the recipient automatically receives a license from the | ||
240 | original licensor to copy, distribute or modify the Program subject to | ||
241 | these terms and conditions. You may not impose any further | ||
242 | restrictions on the recipients' exercise of the rights granted herein. | ||
243 | You are not responsible for enforcing compliance by third parties to | ||
244 | this License. | ||
245 | |||
246 | 7. If, as a consequence of a court judgment or allegation of patent | ||
247 | infringement or for any other reason (not limited to patent issues), | ||
248 | conditions are imposed on you (whether by court order, agreement or | ||
249 | otherwise) that contradict the conditions of this License, they do not | ||
250 | excuse you from the conditions of this License. If you cannot | ||
251 | distribute so as to satisfy simultaneously your obligations under this | ||
252 | License and any other pertinent obligations, then as a consequence you | ||
253 | may not distribute the Program at all. For example, if a patent | ||
254 | license would not permit royalty-free redistribution of the Program by | ||
255 | all those who receive copies directly or indirectly through you, then | ||
256 | the only way you could satisfy both it and this License would be to | ||
257 | refrain entirely from distribution of the Program. | ||
258 | |||
259 | If any portion of this section is held invalid or unenforceable under | ||
260 | any particular circumstance, the balance of the section is intended to | ||
261 | apply and the section as a whole is intended to apply in other | ||
262 | circumstances. | ||
263 | |||
264 | It is not the purpose of this section to induce you to infringe any | ||
265 | patents or other property right claims or to contest validity of any | ||
266 | such claims; this section has the sole purpose of protecting the | ||
267 | integrity of the free software distribution system, which is | ||
268 | implemented by public license practices. Many people have made | ||
269 | generous contributions to the wide range of software distributed | ||
270 | through that system in reliance on consistent application of that | ||
271 | system; it is up to the author/donor to decide if he or she is willing | ||
272 | to distribute software through any other system and a licensee cannot | ||
273 | impose that choice. | ||
274 | |||
275 | This section is intended to make thoroughly clear what is believed to | ||
276 | be a consequence of the rest of this License. | ||
277 | |||
278 | 8. If the distribution and/or use of the Program is restricted in | ||
279 | certain countries either by patents or by copyrighted interfaces, the | ||
280 | original copyright holder who places the Program under this License | ||
281 | may add an explicit geographical distribution limitation excluding | ||
282 | those countries, so that distribution is permitted only in or among | ||
283 | countries not thus excluded. In such case, this License incorporates | ||
284 | the limitation as if written in the body of this License. | ||
285 | |||
286 | 9. The Free Software Foundation may publish revised and/or new versions | ||
287 | of the General Public License from time to time. Such new versions will | ||
288 | be similar in spirit to the present version, but may differ in detail to | ||
289 | address new problems or concerns. | ||
290 | |||
291 | Each version is given a distinguishing version number. If the Program | ||
292 | specifies a version number of this License which applies to it and "any | ||
293 | later version", you have the option of following the terms and conditions | ||
294 | either of that version or of any later version published by the Free | ||
295 | Software Foundation. If the Program does not specify a version number of | ||
296 | this License, you may choose any version ever published by the Free Software | ||
297 | Foundation. | ||
298 | |||
299 | 10. If you wish to incorporate parts of the Program into other free | ||
300 | programs whose distribution conditions are different, write to the author | ||
301 | to ask for permission. For software which is copyrighted by the Free | ||
302 | Software Foundation, write to the Free Software Foundation; we sometimes | ||
303 | make exceptions for this. Our decision will be guided by the two goals | ||
304 | of preserving the free status of all derivatives of our free software and | ||
305 | of 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 | ||
310 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN | ||
311 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||
312 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||
313 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
314 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS | ||
315 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE | ||
316 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||
317 | REPAIR OR CORRECTION. | ||
318 | |||
319 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||
320 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||
321 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||
322 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||
323 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||
324 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||
325 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||
326 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||
327 | POSSIBILITY OF SUCH DAMAGES. | ||
diff --git a/Documentation/networking/Makefile b/Documentation/networking/Makefile index 5aba7a33aeeb..24c308dd3fd1 100644 --- a/Documentation/networking/Makefile +++ b/Documentation/networking/Makefile | |||
@@ -4,6 +4,8 @@ obj- := dummy.o | |||
4 | # List of programs to build | 4 | # List of programs to build |
5 | hostprogs-y := ifenslave | 5 | hostprogs-y := ifenslave |
6 | 6 | ||
7 | HOSTCFLAGS_ifenslave.o += -I$(objtree)/usr/include | ||
8 | |||
7 | # Tell kbuild to always build the programs | 9 | # Tell kbuild to always build the programs |
8 | always := $(hostprogs-y) | 10 | always := $(hostprogs-y) |
9 | 11 | ||
diff --git a/Documentation/networking/README.ipw2200 b/Documentation/networking/README.ipw2200 index 616a8e540b0b..b7658bed4906 100644 --- a/Documentation/networking/README.ipw2200 +++ b/Documentation/networking/README.ipw2200 | |||
@@ -256,7 +256,7 @@ You can set the debug level via: | |||
256 | 256 | ||
257 | Where $VALUE would be a number in the case of this sysfs entry. The | 257 | Where $VALUE would be a number in the case of this sysfs entry. The |
258 | input to sysfs files does not have to be a number. For example, the | 258 | input to sysfs files does not have to be a number. For example, the |
259 | firmware loader used by hotplug utilizes sysfs entries for transfering | 259 | firmware loader used by hotplug utilizes sysfs entries for transferring |
260 | the firmware image from user space into the driver. | 260 | the firmware image from user space into the driver. |
261 | 261 | ||
262 | The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries | 262 | The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries |
diff --git a/Documentation/networking/batman-adv.txt b/Documentation/networking/batman-adv.txt new file mode 100644 index 000000000000..88d4afbdef98 --- /dev/null +++ b/Documentation/networking/batman-adv.txt | |||
@@ -0,0 +1,241 @@ | |||
1 | [state: 17-04-2011] | ||
2 | |||
3 | BATMAN-ADV | ||
4 | ---------- | ||
5 | |||
6 | Batman advanced is a new approach to wireless networking which | ||
7 | does no longer operate on the IP basis. Unlike the batman daemon, | ||
8 | which exchanges information using UDP packets and sets routing | ||
9 | tables, batman-advanced operates on ISO/OSI Layer 2 only and uses | ||
10 | and routes (or better: bridges) Ethernet Frames. It emulates a | ||
11 | virtual network switch of all nodes participating. Therefore all | ||
12 | nodes appear to be link local, thus all higher operating proto- | ||
13 | cols won't be affected by any changes within the network. You can | ||
14 | run almost any protocol above batman advanced, prominent examples | ||
15 | are: IPv4, IPv6, DHCP, IPX. | ||
16 | |||
17 | Batman advanced was implemented as a Linux kernel driver to re- | ||
18 | duce the overhead to a minimum. It does not depend on any (other) | ||
19 | network driver, and can be used on wifi as well as ethernet lan, | ||
20 | vpn, etc ... (anything with ethernet-style layer 2). | ||
21 | |||
22 | |||
23 | CONFIGURATION | ||
24 | ------------- | ||
25 | |||
26 | Load the batman-adv module into your kernel: | ||
27 | |||
28 | # insmod batman-adv.ko | ||
29 | |||
30 | The module is now waiting for activation. You must add some in- | ||
31 | terfaces on which batman can operate. After loading the module | ||
32 | batman advanced will scan your systems interfaces to search for | ||
33 | compatible interfaces. Once found, it will create subfolders in | ||
34 | the /sys directories of each supported interface, e.g. | ||
35 | |||
36 | # ls /sys/class/net/eth0/batman_adv/ | ||
37 | # iface_status mesh_iface | ||
38 | |||
39 | If an interface does not have the "batman_adv" subfolder it prob- | ||
40 | ably is not supported. Not supported interfaces are: loopback, | ||
41 | non-ethernet and batman's own interfaces. | ||
42 | |||
43 | Note: After the module was loaded it will continuously watch for | ||
44 | new interfaces to verify the compatibility. There is no need to | ||
45 | reload the module if you plug your USB wifi adapter into your ma- | ||
46 | chine after batman advanced was initially loaded. | ||
47 | |||
48 | To activate a given interface simply write "bat0" into its | ||
49 | "mesh_iface" file inside the batman_adv subfolder: | ||
50 | |||
51 | # echo bat0 > /sys/class/net/eth0/batman_adv/mesh_iface | ||
52 | |||
53 | Repeat this step for all interfaces you wish to add. Now batman | ||
54 | starts using/broadcasting on this/these interface(s). | ||
55 | |||
56 | By reading the "iface_status" file you can check its status: | ||
57 | |||
58 | # cat /sys/class/net/eth0/batman_adv/iface_status | ||
59 | # active | ||
60 | |||
61 | To deactivate an interface you have to write "none" into its | ||
62 | "mesh_iface" file: | ||
63 | |||
64 | # echo none > /sys/class/net/eth0/batman_adv/mesh_iface | ||
65 | |||
66 | |||
67 | All mesh wide settings can be found in batman's own interface | ||
68 | folder: | ||
69 | |||
70 | # ls /sys/class/net/bat0/mesh/ | ||
71 | # aggregated_ogms gw_bandwidth hop_penalty | ||
72 | # bonding gw_mode orig_interval | ||
73 | # fragmentation gw_sel_class vis_mode | ||
74 | |||
75 | |||
76 | There is a special folder for debugging information: | ||
77 | |||
78 | # ls /sys/kernel/debug/batman_adv/bat0/ | ||
79 | # gateways socket transtable_global vis_data | ||
80 | # originators softif_neigh transtable_local | ||
81 | |||
82 | |||
83 | Some of the files contain all sort of status information regard- | ||
84 | ing the mesh network. For example, you can view the table of | ||
85 | originators (mesh participants) with: | ||
86 | |||
87 | # cat /sys/kernel/debug/batman_adv/bat0/originators | ||
88 | |||
89 | Other files allow to change batman's behaviour to better fit your | ||
90 | requirements. For instance, you can check the current originator | ||
91 | interval (value in milliseconds which determines how often batman | ||
92 | sends its broadcast packets): | ||
93 | |||
94 | # cat /sys/class/net/bat0/mesh/orig_interval | ||
95 | # 1000 | ||
96 | |||
97 | and also change its value: | ||
98 | |||
99 | # echo 3000 > /sys/class/net/bat0/mesh/orig_interval | ||
100 | |||
101 | In very mobile scenarios, you might want to adjust the originator | ||
102 | interval to a lower value. This will make the mesh more respon- | ||
103 | sive to topology changes, but will also increase the overhead. | ||
104 | |||
105 | |||
106 | USAGE | ||
107 | ----- | ||
108 | |||
109 | To make use of your newly created mesh, batman advanced provides | ||
110 | a new interface "bat0" which you should use from this point on. | ||
111 | All interfaces added to batman advanced are not relevant any | ||
112 | longer because batman handles them for you. Basically, one "hands | ||
113 | over" the data by using the batman interface and batman will make | ||
114 | sure it reaches its destination. | ||
115 | |||
116 | The "bat0" interface can be used like any other regular inter- | ||
117 | face. It needs an IP address which can be either statically con- | ||
118 | figured or dynamically (by using DHCP or similar services): | ||
119 | |||
120 | # NodeA: ifconfig bat0 192.168.0.1 | ||
121 | # NodeB: ifconfig bat0 192.168.0.2 | ||
122 | # NodeB: ping 192.168.0.1 | ||
123 | |||
124 | Note: In order to avoid problems remove all IP addresses previ- | ||
125 | ously assigned to interfaces now used by batman advanced, e.g. | ||
126 | |||
127 | # ifconfig eth0 0.0.0.0 | ||
128 | |||
129 | |||
130 | VISUALIZATION | ||
131 | ------------- | ||
132 | |||
133 | If you want topology visualization, at least one mesh node must | ||
134 | be configured as VIS-server: | ||
135 | |||
136 | # echo "server" > /sys/class/net/bat0/mesh/vis_mode | ||
137 | |||
138 | Each node is either configured as "server" or as "client" (de- | ||
139 | fault: "client"). Clients send their topology data to the server | ||
140 | next to them, and server synchronize with other servers. If there | ||
141 | is no server configured (default) within the mesh, no topology | ||
142 | information will be transmitted. With these "synchronizing | ||
143 | servers", there can be 1 or more vis servers sharing the same (or | ||
144 | at least very similar) data. | ||
145 | |||
146 | When configured as server, you can get a topology snapshot of | ||
147 | your mesh: | ||
148 | |||
149 | # cat /sys/kernel/debug/batman_adv/bat0/vis_data | ||
150 | |||
151 | This raw output is intended to be easily parsable and convertable | ||
152 | with other tools. Have a look at the batctl README if you want a | ||
153 | vis output in dot or json format for instance and how those out- | ||
154 | puts could then be visualised in an image. | ||
155 | |||
156 | The raw format consists of comma separated values per entry where | ||
157 | each entry is giving information about a certain source inter- | ||
158 | face. Each entry can/has to have the following values: | ||
159 | -> "mac" - mac address of an originator's source interface | ||
160 | (each line begins with it) | ||
161 | -> "TQ mac value" - src mac's link quality towards mac address | ||
162 | of a neighbor originator's interface which | ||
163 | is being used for routing | ||
164 | -> "TT mac" - TT announced by source mac | ||
165 | -> "PRIMARY" - this is a primary interface | ||
166 | -> "SEC mac" - secondary mac address of source | ||
167 | (requires preceding PRIMARY) | ||
168 | |||
169 | The TQ value has a range from 4 to 255 with 255 being the best. | ||
170 | The TT entries are showing which hosts are connected to the mesh | ||
171 | via bat0 or being bridged into the mesh network. The PRIMARY/SEC | ||
172 | values are only applied on primary interfaces | ||
173 | |||
174 | |||
175 | LOGGING/DEBUGGING | ||
176 | ----------------- | ||
177 | |||
178 | All error messages, warnings and information messages are sent to | ||
179 | the kernel log. Depending on your operating system distribution | ||
180 | this can be read in one of a number of ways. Try using the com- | ||
181 | mands: dmesg, logread, or looking in the files /var/log/kern.log | ||
182 | or /var/log/syslog. All batman-adv messages are prefixed with | ||
183 | "batman-adv:" So to see just these messages try | ||
184 | |||
185 | # dmesg | grep batman-adv | ||
186 | |||
187 | When investigating problems with your mesh network it is some- | ||
188 | times necessary to see more detail debug messages. This must be | ||
189 | enabled when compiling the batman-adv module. When building bat- | ||
190 | man-adv as part of kernel, use "make menuconfig" and enable the | ||
191 | option "B.A.T.M.A.N. debugging". | ||
192 | |||
193 | Those additional debug messages can be accessed using a special | ||
194 | file in debugfs | ||
195 | |||
196 | # cat /sys/kernel/debug/batman_adv/bat0/log | ||
197 | |||
198 | The additional debug output is by default disabled. It can be en- | ||
199 | abled during run time. Following log_levels are defined: | ||
200 | |||
201 | 0 - All debug output disabled | ||
202 | 1 - Enable messages related to routing / flooding / broadcasting | ||
203 | 2 - Enable route or tt entry added / changed / deleted | ||
204 | 3 - Enable all messages | ||
205 | |||
206 | The debug output can be changed at runtime using the file | ||
207 | /sys/class/net/bat0/mesh/log_level. e.g. | ||
208 | |||
209 | # echo 2 > /sys/class/net/bat0/mesh/log_level | ||
210 | |||
211 | will enable debug messages for when routes or TTs change. | ||
212 | |||
213 | |||
214 | BATCTL | ||
215 | ------ | ||
216 | |||
217 | As batman advanced operates on layer 2 all hosts participating in | ||
218 | the virtual switch are completely transparent for all protocols | ||
219 | above layer 2. Therefore the common diagnosis tools do not work | ||
220 | as expected. To overcome these problems batctl was created. At | ||
221 | the moment the batctl contains ping, traceroute, tcpdump and | ||
222 | interfaces to the kernel module settings. | ||
223 | |||
224 | For more information, please see the manpage (man batctl). | ||
225 | |||
226 | batctl is available on http://www.open-mesh.org/ | ||
227 | |||
228 | |||
229 | CONTACT | ||
230 | ------- | ||
231 | |||
232 | Please send us comments, experiences, questions, anything :) | ||
233 | |||
234 | IRC: #batman on irc.freenode.org | ||
235 | Mailing-list: b.a.t.m.a.n@open-mesh.org (optional subscription | ||
236 | at https://lists.open-mesh.org/mm/listinfo/b.a.t.m.a.n) | ||
237 | |||
238 | You can also contact the Authors: | ||
239 | |||
240 | Marek Lindner <lindner_marek@yahoo.de> | ||
241 | Simon Wunderlich <siwu@hrz.tu-chemnitz.de> | ||
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index d2b62b71b617..675612ff41ae 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | 1 | ||
2 | Linux Ethernet Bonding Driver HOWTO | 2 | Linux Ethernet Bonding Driver HOWTO |
3 | 3 | ||
4 | Latest update: 23 September 2009 | 4 | Latest update: 27 April 2011 |
5 | 5 | ||
6 | Initial release : Thomas Davis <tadavis at lbl.gov> | 6 | Initial release : Thomas Davis <tadavis at lbl.gov> |
7 | Corrections, HA extensions : 2000/10/03-15 : | 7 | Corrections, HA extensions : 2000/10/03-15 : |
@@ -49,7 +49,8 @@ Table of Contents | |||
49 | 3.3 Configuring Bonding Manually with Ifenslave | 49 | 3.3 Configuring Bonding Manually with Ifenslave |
50 | 3.3.1 Configuring Multiple Bonds Manually | 50 | 3.3.1 Configuring Multiple Bonds Manually |
51 | 3.4 Configuring Bonding Manually via Sysfs | 51 | 3.4 Configuring Bonding Manually via Sysfs |
52 | 3.5 Overriding Configuration for Special Cases | 52 | 3.5 Configuration with Interfaces Support |
53 | 3.6 Overriding Configuration for Special Cases | ||
53 | 54 | ||
54 | 4. Querying Bonding Configuration | 55 | 4. Querying Bonding Configuration |
55 | 4.1 Bonding Configuration | 56 | 4.1 Bonding Configuration |
@@ -161,8 +162,8 @@ onwards) do not have /usr/include/linux symbolically linked to the | |||
161 | default kernel source include directory. | 162 | default kernel source include directory. |
162 | 163 | ||
163 | SECOND IMPORTANT NOTE: | 164 | SECOND IMPORTANT NOTE: |
164 | If you plan to configure bonding using sysfs, you do not need | 165 | If you plan to configure bonding using sysfs or using the |
165 | to use ifenslave. | 166 | /etc/network/interfaces file, you do not need to use ifenslave. |
166 | 167 | ||
167 | 2. Bonding Driver Options | 168 | 2. Bonding Driver Options |
168 | ========================= | 169 | ========================= |
@@ -367,7 +368,7 @@ fail_over_mac | |||
367 | gratuitous ARP is lost, communication may be | 368 | gratuitous ARP is lost, communication may be |
368 | disrupted. | 369 | disrupted. |
369 | 370 | ||
370 | When this policy is used in conjuction with the mii | 371 | When this policy is used in conjunction with the mii |
371 | monitor, devices which assert link up prior to being | 372 | monitor, devices which assert link up prior to being |
372 | able to actually transmit and receive are particularly | 373 | able to actually transmit and receive are particularly |
373 | susceptible to loss of the gratuitous ARP, and an | 374 | susceptible to loss of the gratuitous ARP, and an |
@@ -584,25 +585,23 @@ mode | |||
584 | chosen. | 585 | chosen. |
585 | 586 | ||
586 | num_grat_arp | 587 | num_grat_arp |
587 | |||
588 | Specifies the number of gratuitous ARPs to be issued after a | ||
589 | failover event. One gratuitous ARP is issued immediately after | ||
590 | the failover, subsequent ARPs are sent at a rate of one per link | ||
591 | monitor interval (arp_interval or miimon, whichever is active). | ||
592 | |||
593 | The valid range is 0 - 255; the default value is 1. This option | ||
594 | affects only the active-backup mode. This option was added for | ||
595 | bonding version 3.3.0. | ||
596 | |||
597 | num_unsol_na | 588 | num_unsol_na |
598 | 589 | ||
599 | Specifies the number of unsolicited IPv6 Neighbor Advertisements | 590 | Specify the number of peer notifications (gratuitous ARPs and |
600 | to be issued after a failover event. One unsolicited NA is issued | 591 | unsolicited IPv6 Neighbor Advertisements) to be issued after a |
601 | immediately after the failover. | 592 | failover event. As soon as the link is up on the new slave |
593 | (possibly immediately) a peer notification is sent on the | ||
594 | bonding device and each VLAN sub-device. This is repeated at | ||
595 | each link monitor interval (arp_interval or miimon, whichever | ||
596 | is active) if the number is greater than 1. | ||
602 | 597 | ||
603 | The valid range is 0 - 255; the default value is 1. This option | 598 | The valid range is 0 - 255; the default value is 1. These options |
604 | affects only the active-backup mode. This option was added for | 599 | affect only the active-backup mode. These options were added for |
605 | bonding version 3.4.0. | 600 | bonding versions 3.3.0 and 3.4.0 respectively. |
601 | |||
602 | From Linux 2.6.40 and bonding version 3.7.1, these notifications | ||
603 | are generated by the ipv4 and ipv6 code and the numbers of | ||
604 | repetitions cannot be set independently. | ||
606 | 605 | ||
607 | primary | 606 | primary |
608 | 607 | ||
@@ -765,28 +764,49 @@ xmit_hash_policy | |||
765 | does not exist, and the layer2 policy is the only policy. The | 764 | does not exist, and the layer2 policy is the only policy. The |
766 | layer2+3 value was added for bonding version 3.2.2. | 765 | layer2+3 value was added for bonding version 3.2.2. |
767 | 766 | ||
767 | resend_igmp | ||
768 | |||
769 | Specifies the number of IGMP membership reports to be issued after | ||
770 | a failover event. One membership report is issued immediately after | ||
771 | the failover, subsequent packets are sent in each 200ms interval. | ||
772 | |||
773 | The valid range is 0 - 255; the default value is 1. A value of 0 | ||
774 | prevents the IGMP membership report from being issued in response | ||
775 | to the failover event. | ||
776 | |||
777 | This option is useful for bonding modes balance-rr (0), active-backup | ||
778 | (1), balance-tlb (5) and balance-alb (6), in which a failover can | ||
779 | switch the IGMP traffic from one slave to another. Therefore a fresh | ||
780 | IGMP report must be issued to cause the switch to forward the incoming | ||
781 | IGMP traffic over the newly selected slave. | ||
782 | |||
783 | This option was added for bonding version 3.7.0. | ||
768 | 784 | ||
769 | 3. Configuring Bonding Devices | 785 | 3. Configuring Bonding Devices |
770 | ============================== | 786 | ============================== |
771 | 787 | ||
772 | You can configure bonding using either your distro's network | 788 | You can configure bonding using either your distro's network |
773 | initialization scripts, or manually using either ifenslave or the | 789 | initialization scripts, or manually using either ifenslave or the |
774 | sysfs interface. Distros generally use one of two packages for the | 790 | sysfs interface. Distros generally use one of three packages for the |
775 | network initialization scripts: initscripts or sysconfig. Recent | 791 | network initialization scripts: initscripts, sysconfig or interfaces. |
776 | versions of these packages have support for bonding, while older | 792 | Recent versions of these packages have support for bonding, while older |
777 | versions do not. | 793 | versions do not. |
778 | 794 | ||
779 | We will first describe the options for configuring bonding for | 795 | We will first describe the options for configuring bonding for |
780 | distros using versions of initscripts and sysconfig with full or | 796 | distros using versions of initscripts, sysconfig and interfaces with full |
781 | partial support for bonding, then provide information on enabling | 797 | or partial support for bonding, then provide information on enabling |
782 | bonding without support from the network initialization scripts (i.e., | 798 | bonding without support from the network initialization scripts (i.e., |
783 | older versions of initscripts or sysconfig). | 799 | older versions of initscripts or sysconfig). |
784 | 800 | ||
785 | If you're unsure whether your distro uses sysconfig or | 801 | If you're unsure whether your distro uses sysconfig, |
786 | initscripts, or don't know if it's new enough, have no fear. | 802 | initscripts or interfaces, or don't know if it's new enough, have no fear. |
787 | Determining this is fairly straightforward. | 803 | Determining this is fairly straightforward. |
788 | 804 | ||
789 | First, issue the command: | 805 | First, look for a file called interfaces in /etc/network directory. |
806 | If this file is present in your system, then your system use interfaces. See | ||
807 | Configuration with Interfaces Support. | ||
808 | |||
809 | Else, issue the command: | ||
790 | 810 | ||
791 | $ rpm -qf /sbin/ifup | 811 | $ rpm -qf /sbin/ifup |
792 | 812 | ||
@@ -1319,8 +1339,62 @@ echo 2000 > /sys/class/net/bond1/bonding/arp_interval | |||
1319 | echo +eth2 > /sys/class/net/bond1/bonding/slaves | 1339 | echo +eth2 > /sys/class/net/bond1/bonding/slaves |
1320 | echo +eth3 > /sys/class/net/bond1/bonding/slaves | 1340 | echo +eth3 > /sys/class/net/bond1/bonding/slaves |
1321 | 1341 | ||
1322 | 3.5 Overriding Configuration for Special Cases | 1342 | 3.5 Configuration with Interfaces Support |
1343 | ----------------------------------------- | ||
1344 | |||
1345 | This section applies to distros which use /etc/network/interfaces file | ||
1346 | to describe network interface configuration, most notably Debian and it's | ||
1347 | derivatives. | ||
1348 | |||
1349 | The ifup and ifdown commands on Debian don't support bonding out of | ||
1350 | the box. The ifenslave-2.6 package should be installed to provide bonding | ||
1351 | support. Once installed, this package will provide bond-* options to be used | ||
1352 | into /etc/network/interfaces. | ||
1353 | |||
1354 | Note that ifenslave-2.6 package will load the bonding module and use | ||
1355 | the ifenslave command when appropriate. | ||
1356 | |||
1357 | Example Configurations | ||
1358 | ---------------------- | ||
1359 | |||
1360 | In /etc/network/interfaces, the following stanza will configure bond0, in | ||
1361 | active-backup mode, with eth0 and eth1 as slaves. | ||
1362 | |||
1363 | auto bond0 | ||
1364 | iface bond0 inet dhcp | ||
1365 | bond-slaves eth0 eth1 | ||
1366 | bond-mode active-backup | ||
1367 | bond-miimon 100 | ||
1368 | bond-primary eth0 eth1 | ||
1369 | |||
1370 | If the above configuration doesn't work, you might have a system using | ||
1371 | upstart for system startup. This is most notably true for recent | ||
1372 | Ubuntu versions. The following stanza in /etc/network/interfaces will | ||
1373 | produce the same result on those systems. | ||
1374 | |||
1375 | auto bond0 | ||
1376 | iface bond0 inet dhcp | ||
1377 | bond-slaves none | ||
1378 | bond-mode active-backup | ||
1379 | bond-miimon 100 | ||
1380 | |||
1381 | auto eth0 | ||
1382 | iface eth0 inet manual | ||
1383 | bond-master bond0 | ||
1384 | bond-primary eth0 eth1 | ||
1385 | |||
1386 | auto eth1 | ||
1387 | iface eth1 inet manual | ||
1388 | bond-master bond0 | ||
1389 | bond-primary eth0 eth1 | ||
1390 | |||
1391 | For a full list of bond-* supported options in /etc/network/interfaces and some | ||
1392 | more advanced examples tailored to you particular distros, see the files in | ||
1393 | /usr/share/doc/ifenslave-2.6. | ||
1394 | |||
1395 | 3.6 Overriding Configuration for Special Cases | ||
1323 | ---------------------------------------------- | 1396 | ---------------------------------------------- |
1397 | |||
1324 | When using the bonding driver, the physical port which transmits a frame is | 1398 | When using the bonding driver, the physical port which transmits a frame is |
1325 | typically selected by the bonding driver, and is not relevant to the user or | 1399 | typically selected by the bonding driver, and is not relevant to the user or |
1326 | system administrator. The output port is simply selected using the policies of | 1400 | system administrator. The output port is simply selected using the policies of |
@@ -2491,18 +2565,15 @@ enslaved. | |||
2491 | 16. Resources and Links | 2565 | 16. Resources and Links |
2492 | ======================= | 2566 | ======================= |
2493 | 2567 | ||
2494 | The latest version of the bonding driver can be found in the latest | 2568 | The latest version of the bonding driver can be found in the latest |
2495 | version of the linux kernel, found on http://kernel.org | 2569 | version of the linux kernel, found on http://kernel.org |
2496 | 2570 | ||
2497 | The latest version of this document can be found in either the latest | 2571 | The latest version of this document can be found in the latest kernel |
2498 | kernel source (named Documentation/networking/bonding.txt), or on the | 2572 | source (named Documentation/networking/bonding.txt). |
2499 | bonding sourceforge site: | ||
2500 | |||
2501 | http://www.sourceforge.net/projects/bonding | ||
2502 | 2573 | ||
2503 | Discussions regarding the bonding driver take place primarily on the | 2574 | Discussions regarding the usage of the bonding driver take place on the |
2504 | bonding-devel mailing list, hosted at sourceforge.net. If you have | 2575 | bonding-devel mailing list, hosted at sourceforge.net. If you have questions or |
2505 | questions or problems, post them to the list. The list address is: | 2576 | problems, post them to the list. The list address is: |
2506 | 2577 | ||
2507 | bonding-devel@lists.sourceforge.net | 2578 | bonding-devel@lists.sourceforge.net |
2508 | 2579 | ||
@@ -2511,6 +2582,17 @@ be found at: | |||
2511 | 2582 | ||
2512 | https://lists.sourceforge.net/lists/listinfo/bonding-devel | 2583 | https://lists.sourceforge.net/lists/listinfo/bonding-devel |
2513 | 2584 | ||
2585 | Discussions regarding the developpement of the bonding driver take place | ||
2586 | on the main Linux network mailing list, hosted at vger.kernel.org. The list | ||
2587 | address is: | ||
2588 | |||
2589 | netdev@vger.kernel.org | ||
2590 | |||
2591 | The administrative interface (to subscribe or unsubscribe) can | ||
2592 | be found at: | ||
2593 | |||
2594 | http://vger.kernel.org/vger-lists.html#netdev | ||
2595 | |||
2514 | Donald Becker's Ethernet Drivers and diag programs may be found at : | 2596 | Donald Becker's Ethernet Drivers and diag programs may be found at : |
2515 | - http://web.archive.org/web/*/http://www.scyld.com/network/ | 2597 | - http://web.archive.org/web/*/http://www.scyld.com/network/ |
2516 | 2598 | ||
diff --git a/Documentation/networking/bridge.txt b/Documentation/networking/bridge.txt index bec69a8a1697..a7ba5e4e2c91 100644 --- a/Documentation/networking/bridge.txt +++ b/Documentation/networking/bridge.txt | |||
@@ -1,8 +1,8 @@ | |||
1 | In order to use the Ethernet bridging functionality, you'll need the | 1 | In order to use the Ethernet bridging functionality, you'll need the |
2 | userspace tools. These programs and documentation are available | 2 | userspace tools. These programs and documentation are available |
3 | at http://www.linux-foundation.org/en/Net:Bridge. The download page is | 3 | at http://www.linuxfoundation.org/en/Net:Bridge. The download page is |
4 | http://prdownloads.sourceforge.net/bridge. | 4 | http://prdownloads.sourceforge.net/bridge. |
5 | 5 | ||
6 | If you still have questions, don't hesitate to post to the mailing list | 6 | If you still have questions, don't hesitate to post to the mailing list |
7 | (more info http://lists.osdl.org/mailman/listinfo/bridge). | 7 | (more info https://lists.linux-foundation.org/mailman/listinfo/bridge). |
8 | 8 | ||
diff --git a/Documentation/networking/caif/Linux-CAIF.txt b/Documentation/networking/caif/Linux-CAIF.txt index 7fe7a9a33a4f..e52fd62bef3a 100644 --- a/Documentation/networking/caif/Linux-CAIF.txt +++ b/Documentation/networking/caif/Linux-CAIF.txt | |||
@@ -136,7 +136,7 @@ The CAIF Protocol implementation contains: | |||
136 | - CFMUX CAIF Mux layer. Handles multiplexing between multiple | 136 | - CFMUX CAIF Mux layer. Handles multiplexing between multiple |
137 | physical bearers and multiple channels such as VEI, Datagram, etc. | 137 | physical bearers and multiple channels such as VEI, Datagram, etc. |
138 | The MUX keeps track of the existing CAIF Channels and | 138 | The MUX keeps track of the existing CAIF Channels and |
139 | Physical Instances and selects the apropriate instance based | 139 | Physical Instances and selects the appropriate instance based |
140 | on Channel-Id and Physical-ID. | 140 | on Channel-Id and Physical-ID. |
141 | 141 | ||
142 | - CFFRML CAIF Framing layer. Handles Framing i.e. Frame length | 142 | - CFFRML CAIF Framing layer. Handles Framing i.e. Frame length |
diff --git a/Documentation/networking/caif/spi_porting.txt b/Documentation/networking/caif/spi_porting.txt index 61d7c9247453..9efd0687dc4c 100644 --- a/Documentation/networking/caif/spi_porting.txt +++ b/Documentation/networking/caif/spi_porting.txt | |||
@@ -32,7 +32,7 @@ the physical hardware, both with regard to SPI and to GPIOs. | |||
32 | This function is called by the CAIF SPI interface to give | 32 | This function is called by the CAIF SPI interface to give |
33 | you a chance to set up your hardware to be ready to receive | 33 | you a chance to set up your hardware to be ready to receive |
34 | a stream of data from the master. The xfer structure contains | 34 | a stream of data from the master. The xfer structure contains |
35 | both physical and logical adresses, as well as the total length | 35 | both physical and logical addresses, as well as the total length |
36 | of the transfer in both directions.The dev parameter can be used | 36 | of the transfer in both directions.The dev parameter can be used |
37 | to map to different CAIF SPI slave devices. | 37 | to map to different CAIF SPI slave devices. |
38 | 38 | ||
@@ -150,7 +150,7 @@ static int sspi_init_xfer(struct cfspi_xfer *xfer, struct cfspi_dev *dev) | |||
150 | void sspi_sig_xfer(bool xfer, struct cfspi_dev *dev) | 150 | void sspi_sig_xfer(bool xfer, struct cfspi_dev *dev) |
151 | { | 151 | { |
152 | /* If xfer is true then you should assert the SPI_INT to indicate to | 152 | /* If xfer is true then you should assert the SPI_INT to indicate to |
153 | * the master that you are ready to recieve the data from the master | 153 | * the master that you are ready to receive the data from the master |
154 | * SPI. If xfer is false then you should de-assert SPI_INT to indicate | 154 | * SPI. If xfer is false then you should de-assert SPI_INT to indicate |
155 | * that the transfer is done. | 155 | * that the transfer is done. |
156 | */ | 156 | */ |
diff --git a/Documentation/networking/can.txt b/Documentation/networking/can.txt index cd79735013f9..56ca3b75376e 100644 --- a/Documentation/networking/can.txt +++ b/Documentation/networking/can.txt | |||
@@ -22,6 +22,7 @@ This file contains | |||
22 | 4.1.2 RAW socket option CAN_RAW_ERR_FILTER | 22 | 4.1.2 RAW socket option CAN_RAW_ERR_FILTER |
23 | 4.1.3 RAW socket option CAN_RAW_LOOPBACK | 23 | 4.1.3 RAW socket option CAN_RAW_LOOPBACK |
24 | 4.1.4 RAW socket option CAN_RAW_RECV_OWN_MSGS | 24 | 4.1.4 RAW socket option CAN_RAW_RECV_OWN_MSGS |
25 | 4.1.5 RAW socket returned message flags | ||
25 | 4.2 Broadcast Manager protocol sockets (SOCK_DGRAM) | 26 | 4.2 Broadcast Manager protocol sockets (SOCK_DGRAM) |
26 | 4.3 connected transport protocols (SOCK_SEQPACKET) | 27 | 4.3 connected transport protocols (SOCK_SEQPACKET) |
27 | 4.4 unconnected transport protocols (SOCK_DGRAM) | 28 | 4.4 unconnected transport protocols (SOCK_DGRAM) |
@@ -239,7 +240,7 @@ solution for a couple of reasons: | |||
239 | the user application using the common CAN filter mechanisms. Inside | 240 | the user application using the common CAN filter mechanisms. Inside |
240 | this filter definition the (interested) type of errors may be | 241 | this filter definition the (interested) type of errors may be |
241 | selected. The reception of error frames is disabled by default. | 242 | selected. The reception of error frames is disabled by default. |
242 | The format of the CAN error frame is briefly decribed in the Linux | 243 | The format of the CAN error frame is briefly described in the Linux |
243 | header file "include/linux/can/error.h". | 244 | header file "include/linux/can/error.h". |
244 | 245 | ||
245 | 4. How to use Socket CAN | 246 | 4. How to use Socket CAN |
@@ -471,6 +472,17 @@ solution for a couple of reasons: | |||
471 | setsockopt(s, SOL_CAN_RAW, CAN_RAW_RECV_OWN_MSGS, | 472 | setsockopt(s, SOL_CAN_RAW, CAN_RAW_RECV_OWN_MSGS, |
472 | &recv_own_msgs, sizeof(recv_own_msgs)); | 473 | &recv_own_msgs, sizeof(recv_own_msgs)); |
473 | 474 | ||
475 | 4.1.5 RAW socket returned message flags | ||
476 | |||
477 | When using recvmsg() call, the msg->msg_flags may contain following flags: | ||
478 | |||
479 | MSG_DONTROUTE: set when the received frame was created on the local host. | ||
480 | |||
481 | MSG_CONFIRM: set when the frame was sent via the socket it is received on. | ||
482 | This flag can be interpreted as a 'transmission confirmation' when the | ||
483 | CAN driver supports the echo of frames on driver level, see 3.2 and 6.2. | ||
484 | In order to receive such messages, CAN_RAW_RECV_OWN_MSGS must be set. | ||
485 | |||
474 | 4.2 Broadcast Manager protocol sockets (SOCK_DGRAM) | 486 | 4.2 Broadcast Manager protocol sockets (SOCK_DGRAM) |
475 | 4.3 connected transport protocols (SOCK_SEQPACKET) | 487 | 4.3 connected transport protocols (SOCK_SEQPACKET) |
476 | 4.4 unconnected transport protocols (SOCK_DGRAM) | 488 | 4.4 unconnected transport protocols (SOCK_DGRAM) |
diff --git a/Documentation/networking/dccp.txt b/Documentation/networking/dccp.txt index a62fdf7a6bff..d718bc2ff1cf 100644 --- a/Documentation/networking/dccp.txt +++ b/Documentation/networking/dccp.txt | |||
@@ -1,18 +1,20 @@ | |||
1 | DCCP protocol | 1 | DCCP protocol |
2 | ============ | 2 | ============= |
3 | 3 | ||
4 | 4 | ||
5 | Contents | 5 | Contents |
6 | ======== | 6 | ======== |
7 | |||
8 | - Introduction | 7 | - Introduction |
9 | - Missing features | 8 | - Missing features |
10 | - Socket options | 9 | - Socket options |
10 | - Sysctl variables | ||
11 | - IOCTLs | ||
12 | - Other tunables | ||
11 | - Notes | 13 | - Notes |
12 | 14 | ||
15 | |||
13 | Introduction | 16 | Introduction |
14 | ============ | 17 | ============ |
15 | |||
16 | Datagram Congestion Control Protocol (DCCP) is an unreliable, connection | 18 | Datagram Congestion Control Protocol (DCCP) is an unreliable, connection |
17 | oriented protocol designed to solve issues present in UDP and TCP, particularly | 19 | oriented protocol designed to solve issues present in UDP and TCP, particularly |
18 | for real-time and multimedia (streaming) traffic. | 20 | for real-time and multimedia (streaming) traffic. |
@@ -29,22 +31,41 @@ It has a base protocol and pluggable congestion control IDs (CCIDs). | |||
29 | DCCP is a Proposed Standard (RFC 2026), and the homepage for DCCP as a protocol | 31 | DCCP is a Proposed Standard (RFC 2026), and the homepage for DCCP as a protocol |
30 | is at http://www.ietf.org/html.charters/dccp-charter.html | 32 | is at http://www.ietf.org/html.charters/dccp-charter.html |
31 | 33 | ||
34 | |||
32 | Missing features | 35 | Missing features |
33 | ================ | 36 | ================ |
34 | |||
35 | The Linux DCCP implementation does not currently support all the features that are | 37 | The Linux DCCP implementation does not currently support all the features that are |
36 | specified in RFCs 4340...42. | 38 | specified in RFCs 4340...42. |
37 | 39 | ||
38 | The known bugs are at: | 40 | The known bugs are at: |
39 | http://linux-net.osdl.org/index.php/TODO#DCCP | 41 | http://www.linuxfoundation.org/collaborate/workgroups/networking/todo#DCCP |
40 | 42 | ||
41 | For more up-to-date versions of the DCCP implementation, please consider using | 43 | For more up-to-date versions of the DCCP implementation, please consider using |
42 | the experimental DCCP test tree; instructions for checking this out are on: | 44 | the experimental DCCP test tree; instructions for checking this out are on: |
43 | http://linux-net.osdl.org/index.php/DCCP_Testing#Experimental_DCCP_source_tree | 45 | http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp_testing#Experimental_DCCP_source_tree |
44 | 46 | ||
45 | 47 | ||
46 | Socket options | 48 | Socket options |
47 | ============== | 49 | ============== |
50 | DCCP_SOCKOPT_QPOLICY_ID sets the dequeuing policy for outgoing packets. It takes | ||
51 | a policy ID as argument and can only be set before the connection (i.e. changes | ||
52 | during an established connection are not supported). Currently, two policies are | ||
53 | defined: the "simple" policy (DCCPQ_POLICY_SIMPLE), which does nothing special, | ||
54 | and a priority-based variant (DCCPQ_POLICY_PRIO). The latter allows to pass an | ||
55 | u32 priority value as ancillary data to sendmsg(), where higher numbers indicate | ||
56 | a higher packet priority (similar to SO_PRIORITY). This ancillary data needs to | ||
57 | be 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 | |||
62 | DCCP_SOCKOPT_QPOLICY_TXQLEN sets the maximum length of the output queue. A zero | ||
63 | value is always interpreted as unbounded queue length. If different from zero, | ||
64 | the interpretation of this parameter depends on the current dequeuing policy | ||
65 | (see above): the "simple" policy will enforce a fixed queue size by returning | ||
66 | EAGAIN, whereas the "prio" policy enforces a fixed queue length by dropping the | ||
67 | lowest-priority packet first. The default value for this parameter is | ||
68 | initialised from /proc/sys/net/dccp/default/tx_qlen. | ||
48 | 69 | ||
49 | DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of | 70 | DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of |
50 | service codes (RFC 4340, sec. 8.1.2); if this socket option is not set, | 71 | service codes (RFC 4340, sec. 8.1.2); if this socket option is not set, |
@@ -112,6 +133,7 @@ DCCP_SOCKOPT_CCID_TX_INFO | |||
112 | On unidirectional connections it is useful to close the unused half-connection | 133 | On unidirectional connections it is useful to close the unused half-connection |
113 | via shutdown (SHUT_WR or SHUT_RD): this will reduce per-packet processing costs. | 134 | via shutdown (SHUT_WR or SHUT_RD): this will reduce per-packet processing costs. |
114 | 135 | ||
136 | |||
115 | Sysctl variables | 137 | Sysctl variables |
116 | ================ | 138 | ================ |
117 | Several DCCP default parameters can be managed by the following sysctls | 139 | Several DCCP default parameters can be managed by the following sysctls |
@@ -145,6 +167,7 @@ rx_ccid = 2 | |||
145 | seq_window = 100 | 167 | seq_window = 100 |
146 | The initial sequence window (sec. 7.5.2) of the sender. This influences | 168 | The initial sequence window (sec. 7.5.2) of the sender. This influences |
147 | the local ackno validity and the remote seqno validity windows (7.5.1). | 169 | the local ackno validity and the remote seqno validity windows (7.5.1). |
170 | Values in the range Wmin = 32 (RFC 4340, 7.5.2) up to 2^32-1 can be set. | ||
148 | 171 | ||
149 | tx_qlen = 5 | 172 | tx_qlen = 5 |
150 | The size of the transmit buffer in packets. A value of 0 corresponds | 173 | The size of the transmit buffer in packets. A value of 0 corresponds |
@@ -155,15 +178,30 @@ sync_ratelimit = 125 ms | |||
155 | sequence-invalid packets on the same socket (RFC 4340, 7.5.4). The unit | 178 | sequence-invalid packets on the same socket (RFC 4340, 7.5.4). The unit |
156 | of this parameter is milliseconds; a value of 0 disables rate-limiting. | 179 | of this parameter is milliseconds; a value of 0 disables rate-limiting. |
157 | 180 | ||
181 | |||
158 | IOCTLS | 182 | IOCTLS |
159 | ====== | 183 | ====== |
160 | FIONREAD | 184 | FIONREAD |
161 | Works as in udp(7): returns in the `int' argument pointer the size of | 185 | Works as in udp(7): returns in the `int' argument pointer the size of |
162 | the next pending datagram in bytes, or 0 when no datagram is pending. | 186 | the next pending datagram in bytes, or 0 when no datagram is pending. |
163 | 187 | ||
188 | |||
189 | Other tunables | ||
190 | ============== | ||
191 | Per-route rto_min support | ||
192 | CCID-2 supports the RTAX_RTO_MIN per-route setting for the minimum value | ||
193 | of the RTO timer. This setting can be modified via the 'rto_min' option | ||
194 | of iproute2; for example: | ||
195 | > ip route change 10.0.0.0/24 rto_min 250j dev wlan0 | ||
196 | > ip route add 10.0.0.254/32 rto_min 800j dev wlan0 | ||
197 | > ip route show dev wlan0 | ||
198 | CCID-3 also supports the rto_min setting: it is used to define the lower | ||
199 | bound for the expiry of the nofeedback timer. This can be useful on LANs | ||
200 | with very low RTTs (e.g., loopback, Gbit ethernet). | ||
201 | |||
202 | |||
164 | Notes | 203 | Notes |
165 | ===== | 204 | ===== |
166 | |||
167 | DCCP does not travel through NAT successfully at present on many boxes. This is | 205 | DCCP does not travel through NAT successfully at present on many boxes. This is |
168 | because the checksum covers the pseudo-header as per TCP and UDP. Linux NAT | 206 | because the checksum covers the pseudo-header as per TCP and UDP. Linux NAT |
169 | support for DCCP has been added. | 207 | support for DCCP has been added. |
diff --git a/Documentation/networking/dns_resolver.txt b/Documentation/networking/dns_resolver.txt index aefd1e681804..7f531ad83285 100644 --- a/Documentation/networking/dns_resolver.txt +++ b/Documentation/networking/dns_resolver.txt | |||
@@ -61,7 +61,6 @@ before the more general line given above as the first match is the one taken. | |||
61 | create dns_resolver foo:* * /usr/sbin/dns.foo %k | 61 | create dns_resolver foo:* * /usr/sbin/dns.foo %k |
62 | 62 | ||
63 | 63 | ||
64 | |||
65 | ===== | 64 | ===== |
66 | USAGE | 65 | USAGE |
67 | ===== | 66 | ===== |
@@ -104,6 +103,14 @@ implemented in the module can be called after doing: | |||
104 | returned also. | 103 | returned also. |
105 | 104 | ||
106 | 105 | ||
106 | =============================== | ||
107 | READING DNS KEYS FROM USERSPACE | ||
108 | =============================== | ||
109 | |||
110 | Keys of dns_resolver type can be read from userspace using keyctl_read() or | ||
111 | "keyctl read/print/pipe". | ||
112 | |||
113 | |||
107 | ========= | 114 | ========= |
108 | MECHANISM | 115 | MECHANISM |
109 | ========= | 116 | ========= |
@@ -132,8 +139,8 @@ the key will be discarded and recreated when the data it holds has expired. | |||
132 | dns_query() returns a copy of the value attached to the key, or an error if | 139 | dns_query() returns a copy of the value attached to the key, or an error if |
133 | that is indicated instead. | 140 | that is indicated instead. |
134 | 141 | ||
135 | See <file:Documentation/keys-request-key.txt> for further information about | 142 | See <file:Documentation/security/keys-request-key.txt> for further |
136 | request-key function. | 143 | information about request-key function. |
137 | 144 | ||
138 | 145 | ||
139 | ========= | 146 | ========= |
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 | ||
74 | Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by | 74 | Speed/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) |
81 | Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative, | 81 | Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative, |
82 | 4=simplified balancing) | 82 | 4=simplified balancing) |
83 | Default Value: 3 | 83 | Default Value: 3 |
84 | 84 | ||
85 | The driver can limit the amount of interrupts per second that the adapter | 85 | The 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 | |||
124 | the same as mode 3, the InterruptThrottleRate will be increased stepwise to | 124 | the same as mode 3, the InterruptThrottleRate will be increased stepwise to |
125 | 70000 for traffic in class "Lowest latency". | 125 | 70000 for traffic in class "Lowest latency". |
126 | 126 | ||
127 | In simplified mode the interrupt rate is based on the ratio of Tx and | 127 | In simplified mode the interrupt rate is based on the ratio of TX and |
128 | Rx traffic. If the bytes per second rate is approximately equal, the | 128 | RX traffic. If the bytes per second rate is approximately equal, the |
129 | interrupt rate will drop as low as 2000 interrupts per second. If the | 129 | interrupt rate will drop as low as 2000 interrupts per second. If the |
130 | traffic is mostly transmit or mostly receive, the interrupt rate could | 130 | traffic is mostly transmit or mostly receive, the interrupt rate could |
131 | be as high as 8000. | 131 | be as high as 8000. |
@@ -245,7 +245,7 @@ NOTE: Depending on the available system resources, the request for a | |||
245 | TxDescriptorStep | 245 | TxDescriptorStep |
246 | ---------------- | 246 | ---------------- |
247 | Valid Range: 1 (use every Tx Descriptor) | 247 | Valid Range: 1 (use every Tx Descriptor) |
248 | 4 (use every 4th Tx Descriptor) | 248 | 4 (use every 4th Tx Descriptor) |
249 | 249 | ||
250 | Default Value: 1 (use every Tx Descriptor) | 250 | Default Value: 1 (use every Tx Descriptor) |
251 | 251 | ||
@@ -312,7 +312,7 @@ Valid Range: 0-xxxxxxx (0=off) | |||
312 | Default Value: 256 | 312 | Default Value: 256 |
313 | Usage: insmod e1000.ko copybreak=128 | 313 | Usage: insmod e1000.ko copybreak=128 |
314 | 314 | ||
315 | Driver copies all packets below or equaling this size to a fresh Rx | 315 | Driver copies all packets below or equaling this size to a fresh RX |
316 | buffer before handing it up the stack. | 316 | buffer before handing it up the stack. |
317 | 317 | ||
318 | This parameter is different than other parameters, in that it is a | 318 | This 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 @@ | |||
1 | Linux* Driver for Intel(R) Network Connection | 1 | Linux* Driver for Intel(R) Network Connection |
2 | =============================================================== | 2 | ============================================= |
3 | 3 | ||
4 | Intel Gigabit Linux driver. | 4 | Intel Gigabit Linux driver. |
5 | Copyright(c) 1999 - 2010 Intel Corporation. | 5 | Copyright(c) 1999 - 2010 Intel Corporation. |
@@ -61,6 +61,12 @@ per second, even if more packets have come in. This reduces interrupt | |||
61 | load on the system and can lower CPU utilization under heavy load, | 61 | load on the system and can lower CPU utilization under heavy load, |
62 | but will increase latency as packets are not processed as quickly. | 62 | but will increase latency as packets are not processed as quickly. |
63 | 63 | ||
64 | The default behaviour of the driver previously assumed a static | ||
65 | InterruptThrottleRate value of 8000, providing a good fallback value for | ||
66 | all traffic types, but lacking in small packet performance and latency. | ||
67 | The hardware can handle many more small packets per second however, and | ||
68 | for this reason an adaptive interrupt moderation algorithm was implemented. | ||
69 | |||
64 | The driver has two adaptive modes (setting 1 or 3) in which | 70 | The driver has two adaptive modes (setting 1 or 3) in which |
65 | it dynamically adjusts the InterruptThrottleRate value based on the traffic | 71 | it dynamically adjusts the InterruptThrottleRate value based on the traffic |
66 | that it receives. After determining the type of incoming traffic in the last | 72 | that 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 | |||
86 | the same as mode 3, the InterruptThrottleRate will be increased stepwise to | 92 | the same as mode 3, the InterruptThrottleRate will be increased stepwise to |
87 | 70000 for traffic in class "Lowest latency". | 93 | 70000 for traffic in class "Lowest latency". |
88 | 94 | ||
89 | In simplified mode the interrupt rate is based on the ratio of Tx and | 95 | In simplified mode the interrupt rate is based on the ratio of TX and |
90 | Rx traffic. If the bytes per second rate is approximately equal the | 96 | RX traffic. If the bytes per second rate is approximately equal, the |
91 | interrupt rate will drop as low as 2000 interrupts per second. If the | 97 | interrupt rate will drop as low as 2000 interrupts per second. If the |
92 | traffic is mostly transmit or mostly receive, the interrupt rate could | 98 | traffic is mostly transmit or mostly receive, the interrupt rate could |
93 | be as high as 8000. | 99 | be as high as 8000. |
@@ -177,7 +183,7 @@ Copybreak | |||
177 | Valid Range: 0-xxxxxxx (0=off) | 183 | Valid Range: 0-xxxxxxx (0=off) |
178 | Default Value: 256 | 184 | Default Value: 256 |
179 | 185 | ||
180 | Driver copies all packets below or equaling this size to a fresh Rx | 186 | Driver copies all packets below or equaling this size to a fresh RX |
181 | buffer before handing it up the stack. | 187 | buffer before handing it up the stack. |
182 | 188 | ||
183 | This parameter is different than other parameters, in that it is a | 189 | This 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 | ||
224 | WriteProtectNVM | 230 | WriteProtectNVM |
225 | --------------- | 231 | --------------- |
226 | Valid Range: 0-1 | 232 | Valid Range: 0,1 |
227 | Default Value: 1 (enabled) | 233 | Default Value: 1 |
228 | 234 | ||
229 | Set the hardware to ignore all write/erase cycles to the GbE region in the | 235 | If set to 1, configure the hardware to ignore all write/erase cycles to the |
230 | ICHx NVM (non-volatile memory). This feature can be disabled by the | 236 | GbE region in the ICHx NVM (in order to prevent accidental corruption of the |
231 | WriteProtectNVM module parameter (enabled by default) only after a hardware | 237 | NVM). This feature can be disabled by setting the parameter to 0 during initial |
232 | reset, but the machine must be power cycled before trying to enable writes. | 238 | driver load. |
233 | 239 | NOTE: The machine must be power cycled (full off/on) when enabling NVM writes | |
234 | Note: the kernel boot option iomem=relaxed may need to be set if the kernel | 240 | via setting the parameter to zero. Once the NVM has been locked (via the |
235 | config option CONFIG_STRICT_DEVMEM=y, if the root user wants to write the | 241 | parameter at 1 when the driver loads) it cannot be unlocked except via power |
236 | NVM from user space via ethtool. | 242 | cycle. |
237 | 243 | ||
238 | Additional Configurations | 244 | Additional 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 | ||
289 | Support | 293 | Support |
290 | ======= | 294 | ======= |
diff --git a/Documentation/networking/generic_netlink.txt b/Documentation/networking/generic_netlink.txt index d4f8b8b9b53c..3e071115ca90 100644 --- a/Documentation/networking/generic_netlink.txt +++ b/Documentation/networking/generic_netlink.txt | |||
@@ -1,3 +1,3 @@ | |||
1 | A wiki document on how to use Generic Netlink can be found here: | 1 | A wiki document on how to use Generic Netlink can be found here: |
2 | 2 | ||
3 | * http://linux-net.osdl.org/index.php/Generic_Netlink_HOWTO | 3 | * http://www.linuxfoundation.org/collaborate/workgroups/networking/generic_netlink_howto |
diff --git a/Documentation/networking/ieee802154.txt b/Documentation/networking/ieee802154.txt index 23c995e64032..f41ea2405220 100644 --- a/Documentation/networking/ieee802154.txt +++ b/Documentation/networking/ieee802154.txt | |||
@@ -9,7 +9,7 @@ The Linux-ZigBee project goal is to provide complete implementation | |||
9 | of IEEE 802.15.4 / ZigBee / 6LoWPAN protocols. IEEE 802.15.4 is a stack | 9 | of IEEE 802.15.4 / ZigBee / 6LoWPAN protocols. IEEE 802.15.4 is a stack |
10 | of protocols for organizing Low-Rate Wireless Personal Area Networks. | 10 | of protocols for organizing Low-Rate Wireless Personal Area Networks. |
11 | 11 | ||
12 | Currently only IEEE 802.15.4 layer is implemented. We have choosen | 12 | Currently only IEEE 802.15.4 layer is implemented. We have chosen |
13 | to use plain Berkeley socket API, the generic Linux networking stack | 13 | to use plain Berkeley socket API, the generic Linux networking stack |
14 | to transfer IEEE 802.15.4 messages and a special protocol over genetlink | 14 | to transfer IEEE 802.15.4 messages and a special protocol over genetlink |
15 | for configuration/management | 15 | for configuration/management |
diff --git a/Documentation/networking/igb.txt b/Documentation/networking/igb.txt index ab2d71831892..9a2a037194a5 100644 --- a/Documentation/networking/igb.txt +++ b/Documentation/networking/igb.txt | |||
@@ -36,6 +36,7 @@ Default Value: 0 | |||
36 | This parameter adds support for SR-IOV. It causes the driver to spawn up to | 36 | This parameter adds support for SR-IOV. It causes the driver to spawn up to |
37 | max_vfs worth of virtual function. | 37 | max_vfs worth of virtual function. |
38 | 38 | ||
39 | |||
39 | Additional Configurations | 40 | Additional 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,30 +93,18 @@ 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 | 96 | MAC and VLAN anti-spoofing feature |
95 | --- | 97 | ---------------------------------- |
96 | Large Receive Offload (LRO) is a technique for increasing inbound throughput | 98 | When a malicious driver attempts to send a spoofed packet, it is dropped by |
97 | of high-bandwidth network connections by reducing CPU overhead. It works by | 99 | the hardware and not transmitted. An interrupt is sent to the PF driver |
98 | aggregating multiple incoming packets from a single stream into a larger | 100 | notifying it of the spoof attempt. |
99 | buffer before they are passed higher up the networking stack, thus reducing | 101 | |
100 | the number of packets that have to be processed. LRO combines multiple | 102 | When a spoofed packet is detected the PF driver will send the following |
101 | Ethernet frames into a single receive in the stack, thereby potentially | 103 | message to the system log (displayed by the "dmesg" command): |
102 | decreasing CPU utilization for receives. | 104 | |
103 | 105 | Spoof event(s) detected on VF(n) | |
104 | NOTE: You need to have inet_lro enabled via either the CONFIG_INET_LRO or | 106 | |
105 | CONFIG_INET_LRO_MODULE kernel config option. Additionally, if | 107 | Where n=the VF that attempted to do the spoofing. |
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 | 108 | ||
119 | Support | 109 | Support |
120 | ======= | 110 | ======= |
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 | ||
65 | Support | 67 | Support |
66 | ======= | 68 | ======= |
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index f350c69b2bb4..bfe924217f24 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 | ||
13 | ip_default_ttl - INTEGER | 13 | ip_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 | ||
16 | ip_no_pmtu_disc - BOOLEAN | 18 | ip_no_pmtu_disc - BOOLEAN |
17 | Disable Path MTU Discovery. | 19 | Disable Path MTU Discovery. |
@@ -20,6 +22,15 @@ ip_no_pmtu_disc - BOOLEAN | |||
20 | min_pmtu - INTEGER | 22 | min_pmtu - INTEGER |
21 | default 562 - minimum discovered Path MTU | 23 | default 562 - minimum discovered Path MTU |
22 | 24 | ||
25 | route/max_size - INTEGER | ||
26 | Maximum number of routes allowed in the kernel. Increase | ||
27 | this when using large numbers of interfaces and/or routes. | ||
28 | |||
29 | neigh/default/gc_thresh3 - INTEGER | ||
30 | Maximum number of neighbor entries allowed. Increase this | ||
31 | when using large numbers of interfaces and when communicating | ||
32 | with large numbers of directly-connected peers. | ||
33 | |||
23 | mtu_expires - INTEGER | 34 | mtu_expires - INTEGER |
24 | Time, in seconds, that cached PMTU information is kept. | 35 | Time, in seconds, that cached PMTU information is kept. |
25 | 36 | ||
@@ -135,6 +146,7 @@ tcp_adv_win_scale - INTEGER | |||
135 | Count buffering overhead as bytes/2^tcp_adv_win_scale | 146 | Count buffering overhead as bytes/2^tcp_adv_win_scale |
136 | (if tcp_adv_win_scale > 0) or bytes-bytes/2^(-tcp_adv_win_scale), | 147 | (if tcp_adv_win_scale > 0) or bytes-bytes/2^(-tcp_adv_win_scale), |
137 | if it is <= 0. | 148 | if it is <= 0. |
149 | Possible values are [-31, 31], inclusive. | ||
138 | Default: 2 | 150 | Default: 2 |
139 | 151 | ||
140 | tcp_allowed_congestion_control - STRING | 152 | tcp_allowed_congestion_control - STRING |
@@ -175,7 +187,7 @@ tcp_cookie_size - INTEGER | |||
175 | tcp_dsack - BOOLEAN | 187 | tcp_dsack - BOOLEAN |
176 | Allows TCP to send "duplicate" SACKs. | 188 | Allows TCP to send "duplicate" SACKs. |
177 | 189 | ||
178 | tcp_ecn - BOOLEAN | 190 | tcp_ecn - INTEGER |
179 | Enable Explicit Congestion Notification (ECN) in TCP. ECN is only | 191 | Enable Explicit Congestion Notification (ECN) in TCP. ECN is only |
180 | used when both ends of the TCP flow support it. It is useful to | 192 | used when both ends of the TCP flow support it. It is useful to |
181 | avoid losses due to congestion (when the bottleneck router supports | 193 | avoid losses due to congestion (when the bottleneck router supports |
@@ -268,6 +280,17 @@ tcp_max_orphans - INTEGER | |||
268 | more aggressively. Let me to remind again: each orphan eats | 280 | more aggressively. Let me to remind again: each orphan eats |
269 | up to ~64K of unswappable memory. | 281 | up to ~64K of unswappable memory. |
270 | 282 | ||
283 | tcp_max_ssthresh - INTEGER | ||
284 | Limited Slow-Start for TCP with large congestion windows (cwnd) defined in | ||
285 | RFC3742. Limited slow-start is a mechanism to limit growth of the cwnd | ||
286 | on the region where cwnd is larger than tcp_max_ssthresh. TCP increases cwnd | ||
287 | by at most tcp_max_ssthresh segments, and by at least tcp_max_ssthresh/2 | ||
288 | segments per RTT when the cwnd is above tcp_max_ssthresh. | ||
289 | If TCP connection increased cwnd to thousands (or tens of thousands) segments, | ||
290 | and thousands of packets were being dropped during slow-start, you can set | ||
291 | tcp_max_ssthresh to improve performance for new TCP connection. | ||
292 | Default: 0 (off) | ||
293 | |||
271 | tcp_max_syn_backlog - INTEGER | 294 | tcp_max_syn_backlog - INTEGER |
272 | Maximal number of remembered connection requests, which are | 295 | Maximal number of remembered connection requests, which are |
273 | still did not receive an acknowledgment from connecting client. | 296 | still did not receive an acknowledgment from connecting client. |
@@ -323,7 +346,7 @@ tcp_orphan_retries - INTEGER | |||
323 | when RTO retransmissions remain unacknowledged. | 346 | when RTO retransmissions remain unacknowledged. |
324 | See tcp_retries2 for more details. | 347 | See tcp_retries2 for more details. |
325 | 348 | ||
326 | The default value is 7. | 349 | The default value is 8. |
327 | If your machine is a loaded WEB server, | 350 | If your machine is a loaded WEB server, |
328 | you should think about lowering this value, such sockets | 351 | you should think about lowering this value, such sockets |
329 | may consume significant resources. Cf. tcp_max_orphans. | 352 | may consume significant resources. Cf. tcp_max_orphans. |
@@ -698,10 +721,28 @@ igmp_max_memberships - INTEGER | |||
698 | Change the maximum number of multicast groups we can subscribe to. | 721 | Change the maximum number of multicast groups we can subscribe to. |
699 | Default: 20 | 722 | Default: 20 |
700 | 723 | ||
701 | conf/interface/* changes special settings per interface (where "interface" is | 724 | Theoretical maximum value is bounded by having to send a membership |
702 | the name of your network interface) | 725 | report in a single datagram (i.e. the report can't span multiple |
703 | conf/all/* is special, changes the settings for all interfaces | 726 | datagrams, or risk confusing the switch and leaving groups you don't |
727 | intend to). | ||
728 | |||
729 | The number of supported groups 'M' is bounded by the number of group | ||
730 | report entries you can fit into a single datagram of 65535 bytes. | ||
731 | |||
732 | M = 65536-sizeof (ip header)/(sizeof(Group record)) | ||
733 | |||
734 | Group records are variable length, with a minimum of 12 bytes. | ||
735 | So net.ipv4.igmp_max_memberships should not be set higher than: | ||
736 | |||
737 | (65536-24) / 12 = 5459 | ||
738 | |||
739 | The value 5459 assumes no IP header options, so in practice | ||
740 | this number may be lower. | ||
704 | 741 | ||
742 | conf/interface/* changes special settings per interface (where | ||
743 | "interface" is the name of your network interface) | ||
744 | |||
745 | conf/all/* is special, changes the settings for all interfaces | ||
705 | 746 | ||
706 | log_martians - BOOLEAN | 747 | log_martians - BOOLEAN |
707 | Log packets with impossible addresses to kernel log. | 748 | Log packets with impossible addresses to kernel log. |
@@ -1014,6 +1055,12 @@ conf/interface/*: | |||
1014 | accept_ra - BOOLEAN | 1055 | accept_ra - BOOLEAN |
1015 | Accept Router Advertisements; autoconfigure using them. | 1056 | Accept Router Advertisements; autoconfigure using them. |
1016 | 1057 | ||
1058 | Possible values are: | ||
1059 | 0 Do not accept Router Advertisements. | ||
1060 | 1 Accept Router Advertisements if forwarding is disabled. | ||
1061 | 2 Overrule forwarding behaviour. Accept Router Advertisements | ||
1062 | even if forwarding is enabled. | ||
1063 | |||
1017 | Functional default: enabled if local forwarding is disabled. | 1064 | Functional default: enabled if local forwarding is disabled. |
1018 | disabled if local forwarding is enabled. | 1065 | disabled if local forwarding is enabled. |
1019 | 1066 | ||
@@ -1075,7 +1122,12 @@ forwarding - BOOLEAN | |||
1075 | Note: It is recommended to have the same setting on all | 1122 | Note: It is recommended to have the same setting on all |
1076 | interfaces; mixed router/host scenarios are rather uncommon. | 1123 | interfaces; mixed router/host scenarios are rather uncommon. |
1077 | 1124 | ||
1078 | FALSE: | 1125 | Possible values are: |
1126 | 0 Forwarding disabled | ||
1127 | 1 Forwarding enabled | ||
1128 | 2 Forwarding enabled (Hybrid Mode) | ||
1129 | |||
1130 | FALSE (0): | ||
1079 | 1131 | ||
1080 | By default, Host behaviour is assumed. This means: | 1132 | By default, Host behaviour is assumed. This means: |
1081 | 1133 | ||
@@ -1085,18 +1137,24 @@ forwarding - BOOLEAN | |||
1085 | Advertisements (and do autoconfiguration). | 1137 | Advertisements (and do autoconfiguration). |
1086 | 4. If accept_redirects is TRUE (default), accept Redirects. | 1138 | 4. If accept_redirects is TRUE (default), accept Redirects. |
1087 | 1139 | ||
1088 | TRUE: | 1140 | TRUE (1): |
1089 | 1141 | ||
1090 | If local forwarding is enabled, Router behaviour is assumed. | 1142 | If local forwarding is enabled, Router behaviour is assumed. |
1091 | This means exactly the reverse from the above: | 1143 | This means exactly the reverse from the above: |
1092 | 1144 | ||
1093 | 1. IsRouter flag is set in Neighbour Advertisements. | 1145 | 1. IsRouter flag is set in Neighbour Advertisements. |
1094 | 2. Router Solicitations are not sent. | 1146 | 2. Router Solicitations are not sent. |
1095 | 3. Router Advertisements are ignored. | 1147 | 3. Router Advertisements are ignored unless accept_ra is 2. |
1096 | 4. Redirects are ignored. | 1148 | 4. Redirects are ignored. |
1097 | 1149 | ||
1098 | Default: FALSE if global forwarding is disabled (default), | 1150 | TRUE (2): |
1099 | otherwise TRUE. | 1151 | |
1152 | Hybrid mode. Same behaviour as TRUE, except for: | ||
1153 | |||
1154 | 2. Router Solicitations are being sent when necessary. | ||
1155 | |||
1156 | Default: 0 (disabled) if global forwarding is disabled (default), | ||
1157 | otherwise 1 (enabled). | ||
1100 | 1158 | ||
1101 | hop_limit - INTEGER | 1159 | hop_limit - INTEGER |
1102 | Default Hop Limit to set. | 1160 | Default Hop Limit to set. |
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 @@ | |||
1 | Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection | 1 | Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection |
2 | ======================================================================== | 2 | ======================================================================== |
3 | 3 | ||
4 | March 10, 2009 | 4 | Intel Gigabit Linux driver. |
5 | 5 | Copyright(c) 1999 - 2010 Intel Corporation. | |
6 | 6 | ||
7 | Contents | 7 | Contents |
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 | ||
16 | Identifying Your Adapter | ||
17 | ======================== | ||
16 | 18 | ||
19 | The driver in this release is compatible with 82598 and 82599-based Intel | ||
20 | Network Connections. | ||
17 | 21 | ||
18 | In This Release | 22 | For more information on how to identify your adapter, go to the Adapter & |
19 | =============== | 23 | Driver ID Guide at: |
20 | 24 | ||
21 | This file describes the ixgbe Linux Base Driver for the 10 Gigabit PCI | 25 | http://support.intel.com/support/network/sb/CS-012904.htm |
22 | Express Intel(R) Network Connection. This driver includes support for | ||
23 | Itanium(R)2-based systems. | ||
24 | 26 | ||
25 | For questions related to hardware requirements, refer to the documentation | 27 | SFP+ Devices with Pluggable Optics |
26 | supplied with your 10 Gigabit adapter. All hardware requirements listed apply | 28 | ---------------------------------- |
27 | to use with Linux. | ||
28 | 29 | ||
29 | The following features are available in this kernel: | 30 | 82599-BASED ADAPTERS |
30 | - Native VLANs | ||
31 | - Channel Bonding (teaming) | ||
32 | - SNMP | ||
33 | - Generic Receive Offload | ||
34 | - Data Center Bridging | ||
35 | 31 | ||
36 | Channel Bonding documentation can be found in the Linux kernel source: | 32 | NOTES: If your 82599-based Intel(R) Network Adapter came with Intel optics, or |
37 | /Documentation/networking/bonding.txt | 33 | is an Intel(R) Ethernet Server Adapter X520-2, then it only supports Intel |
34 | optics and/or the direct attach cables listed below. | ||
38 | 35 | ||
39 | Ethtool, lspci, and ifconfig can be used to display device and driver | 36 | When 82599-based SFP+ devices are connected back to back, they should be set to |
40 | specific information. | 37 | the same Speed setting via ethtool. Results may vary if you mix speed settings. |
38 | 82598-based adapters support all passive direct attach cables that comply | ||
39 | with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach | ||
40 | cables are not supported. | ||
41 | 41 | ||
42 | Supplier Type Part Numbers | ||
42 | 43 | ||
43 | Identifying Your Adapter | 44 | SR Modules |
44 | ======================== | 45 | Intel DUAL RATE 1G/10G SFP+ SR (bailed) FTLX8571D3BCV-IT |
46 | Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDDZ-IN1 | ||
47 | Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDZ-IN2 | ||
48 | LR Modules | ||
49 | Intel DUAL RATE 1G/10G SFP+ LR (bailed) FTLX1471D3BCV-IT | ||
50 | Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDDZ-IN1 | ||
51 | Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDZ-IN2 | ||
45 | 52 | ||
46 | This driver supports devices based on the 82598 controller and the 82599 | 53 | The following is a list of 3rd party SFP+ modules and direct attach cables that |
47 | controller. | 54 | have received some testing. Not all modules are applicable to all devices. |
48 | 55 | ||
49 | For specific information on identifying which adapter you have, please visit: | 56 | Supplier Type Part Numbers |
50 | 57 | ||
51 | http://support.intel.com/support/network/sb/CS-008441.htm | 58 | Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL |
59 | Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ | ||
60 | Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL | ||
52 | 61 | ||
62 | Finisar DUAL RATE 1G/10G SFP+ SR (No Bail) FTLX8571D3QCV-IT | ||
63 | Avago DUAL RATE 1G/10G SFP+ SR (No Bail) AFBR-703SDZ-IN1 | ||
64 | Finisar DUAL RATE 1G/10G SFP+ LR (No Bail) FTLX1471D3QCV-IT | ||
65 | Avago DUAL RATE 1G/10G SFP+ LR (No Bail) AFCT-701SDZ-IN1 | ||
66 | Finistar 1000BASE-T SFP FCLF8522P2BTL | ||
67 | Avago 1000BASE-T SFP ABCU-5710RZ | ||
53 | 68 | ||
54 | Building and Installation | 69 | 82599-based adapters support all passive and active limiting direct attach |
55 | ========================= | 70 | cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. |
56 | 71 | ||
57 | select m for "Intel(R) 10GbE PCI Express adapters support" located at: | 72 | Laser 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 | ||
63 | 1. make modules & make modules_install | ||
64 | 77 | ||
65 | 2. Load the module: | 78 | 82598-BASED ADAPTERS |
66 | 79 | ||
67 | # modprobe ixgbe | 80 | NOTES 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 | 90 | The following is a list of 3rd party SFP+ modules and direct attach cables that |
70 | path to the driver module is specified. For example: | 91 | have 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 | 93 | Supplier Type Part Numbers |
73 | 94 | ||
74 | With 2.6 based kernels also make sure that older ixgbe drivers are | 95 | Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL |
75 | removed from the kernel, before loading the new module: | 96 | Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ |
97 | Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL | ||
76 | 98 | ||
77 | rmmod ixgbe; modprobe ixgbe | 99 | 82598-based adapters support all passive direct attach cables that comply |
100 | with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach | ||
101 | cables are not supported. | ||
78 | 102 | ||
79 | 3. 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> | 104 | Flow Control |
105 | ------------ | ||
106 | Ethernet Flow Control (IEEE 802.3x) can be configured with ethtool to enable | ||
107 | receiving and transmitting pause frames for ixgbe. When TX is enabled, PAUSE | ||
108 | frames are generated when the receive packet buffer crosses a predefined | ||
109 | threshold. When rx is enabled, the transmit unit will halt for the time delay | ||
110 | specified when a PAUSE frame is received. | ||
83 | 111 | ||
84 | 4. Verify that the interface works. Enter the following, where <IP_address> | 112 | Flow 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 | 113 | capable 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 | ||
117 | NOTE: For 82598 backplane cards entering 1 gig mode, flow control default | ||
118 | behavior is changed to off. Flow control in 1 gig mode on these devices can | ||
119 | lead to Tx hangs. | ||
90 | 120 | ||
91 | Additional Configurations | 121 | Additional 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 | |||
213 | Performance Tuning | ||
214 | ================== | ||
215 | |||
216 | An excellent article on performance tuning can be found at: | ||
217 | |||
218 | http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf | ||
219 | |||
220 | |||
221 | Known 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 | ||
186 | Support | 247 | Support |
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: | |||
35 | Known Issues/Troubleshooting | 35 | Known 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 | ||
43 | Support | 39 | Support |
44 | ======= | 40 | ======= |
diff --git a/Documentation/networking/olympic.txt b/Documentation/networking/olympic.txt index c65a94010ea8..b95b5bf96751 100644 --- a/Documentation/networking/olympic.txt +++ b/Documentation/networking/olympic.txt | |||
@@ -65,7 +65,7 @@ together. | |||
65 | 65 | ||
66 | Variable MTU size: | 66 | Variable MTU size: |
67 | 67 | ||
68 | The driver can handle a MTU size upto either 4500 or 18000 depending upon | 68 | The driver can handle a MTU size up to either 4500 or 18000 depending upon |
69 | ring speed. The driver also changes the size of the receive buffers as part | 69 | ring speed. The driver also changes the size of the receive buffers as part |
70 | of the mtu re-sizing, so if you set mtu = 18000, you will need to be able | 70 | of the mtu re-sizing, so if you set mtu = 18000, you will need to be able |
71 | to allocate 16 * (sk_buff with 18000 buffer size) call it 18500 bytes per ring | 71 | to allocate 16 * (sk_buff with 18000 buffer size) call it 18500 bytes per ring |
diff --git a/Documentation/networking/packet_mmap.txt b/Documentation/networking/packet_mmap.txt index 073894d1c093..4acea6603720 100644 --- a/Documentation/networking/packet_mmap.txt +++ b/Documentation/networking/packet_mmap.txt | |||
@@ -223,7 +223,7 @@ we will get the following buffer structure: | |||
223 | 223 | ||
224 | A frame can be of any size with the only condition it can fit in a block. A block | 224 | A frame can be of any size with the only condition it can fit in a block. A block |
225 | can only hold an integer number of frames, or in other words, a frame cannot | 225 | can only hold an integer number of frames, or in other words, a frame cannot |
226 | be spawned accross two blocks, so there are some details you have to take into | 226 | be spawned across two blocks, so there are some details you have to take into |
227 | account when choosing the frame_size. See "Mapping and use of the circular | 227 | account when choosing the frame_size. See "Mapping and use of the circular |
228 | buffer (ring)". | 228 | buffer (ring)". |
229 | 229 | ||
diff --git a/Documentation/networking/phonet.txt b/Documentation/networking/phonet.txt index 6e8ce09f9c73..81003581f47a 100644 --- a/Documentation/networking/phonet.txt +++ b/Documentation/networking/phonet.txt | |||
@@ -112,6 +112,22 @@ However, connect() and getpeername() are not supported, as they did | |||
112 | not seem useful with Phonet usages (could be added easily). | 112 | not seem useful with Phonet usages (could be added easily). |
113 | 113 | ||
114 | 114 | ||
115 | Resource subscription | ||
116 | --------------------- | ||
117 | |||
118 | A Phonet datagram socket can be subscribed to any number of 8-bits | ||
119 | Phonet resources, as follow: | ||
120 | |||
121 | uint32_t res = 0xXX; | ||
122 | ioctl(fd, SIOCPNADDRESOURCE, &res); | ||
123 | |||
124 | Subscription is similarly cancelled using the SIOCPNDELRESOURCE I/O | ||
125 | control request, or when the socket is closed. | ||
126 | |||
127 | Note that no more than one socket can be subcribed to any given | ||
128 | resource at a time. If not, ioctl() will return EBUSY. | ||
129 | |||
130 | |||
115 | Phonet Pipe protocol | 131 | Phonet Pipe protocol |
116 | -------------------- | 132 | -------------------- |
117 | 133 | ||
@@ -138,9 +154,28 @@ connections, one per accept()'d socket. | |||
138 | write(cfd, msg, msglen); | 154 | write(cfd, msg, msglen); |
139 | } | 155 | } |
140 | 156 | ||
141 | Connections are established between two endpoints by a "third party" | 157 | Connections are traditionally established between two endpoints by a |
142 | application. This means that both endpoints are passive; so connect() | 158 | "third party" application. This means that both endpoints are passive. |
143 | is not possible. | 159 | |
160 | |||
161 | As of Linux kernel version 2.6.39, it is also possible to connect | ||
162 | two endpoints directly, using connect() on the active side. This is | ||
163 | intended to support the newer Nokia Wireless Modem API, as found in | ||
164 | e.g. the Nokia Slim Modem in the ST-Ericsson U8500 platform: | ||
165 | |||
166 | struct sockaddr_spn spn; | ||
167 | int fd; | ||
168 | |||
169 | fd = socket(PF_PHONET, SOCK_SEQPACKET, PN_PROTO_PIPE); | ||
170 | memset(&spn, 0, sizeof(spn)); | ||
171 | spn.spn_family = AF_PHONET; | ||
172 | spn.spn_obj = ...; | ||
173 | spn.spn_dev = ...; | ||
174 | spn.spn_resource = 0xD9; | ||
175 | connect(fd, (struct sockaddr *)&spn, sizeof(spn)); | ||
176 | /* normal I/O here ... */ | ||
177 | close(fd); | ||
178 | |||
144 | 179 | ||
145 | WARNING: | 180 | WARNING: |
146 | When polling a connected pipe socket for writability, there is an | 181 | When polling a connected pipe socket for writability, there is an |
@@ -165,6 +200,10 @@ The pipe protocol provides two socket options at the SOL_PNPIPE level: | |||
165 | interface index of the network interface created by PNPIPE_ENCAP, | 200 | interface index of the network interface created by PNPIPE_ENCAP, |
166 | or zero if encapsulation is off. | 201 | or zero if encapsulation is off. |
167 | 202 | ||
203 | PNPIPE_HANDLE is a read-only integer value. It contains the underlying | ||
204 | identifier ("pipe handle") of the pipe. This is only defined for | ||
205 | socket descriptors that are already connected or being connected. | ||
206 | |||
168 | 207 | ||
169 | Authors | 208 | Authors |
170 | ------- | 209 | ------- |
diff --git a/Documentation/networking/phy.txt b/Documentation/networking/phy.txt index 88bb71b46da4..9eb1ba52013d 100644 --- a/Documentation/networking/phy.txt +++ b/Documentation/networking/phy.txt | |||
@@ -177,18 +177,6 @@ Doing it all yourself | |||
177 | 177 | ||
178 | A convenience function to print out the PHY status neatly. | 178 | A convenience function to print out the PHY status neatly. |
179 | 179 | ||
180 | int phy_clear_interrupt(struct phy_device *phydev); | ||
181 | int phy_config_interrupt(struct phy_device *phydev, u32 interrupts); | ||
182 | |||
183 | Clear the PHY's interrupt, and configure which ones are allowed, | ||
184 | respectively. Currently only supports all on, or all off. | ||
185 | |||
186 | int phy_enable_interrupts(struct phy_device *phydev); | ||
187 | int phy_disable_interrupts(struct phy_device *phydev); | ||
188 | |||
189 | Functions which enable/disable PHY interrupts, clearing them | ||
190 | before and after, respectively. | ||
191 | |||
192 | int phy_start_interrupts(struct phy_device *phydev); | 180 | int phy_start_interrupts(struct phy_device *phydev); |
193 | int phy_stop_interrupts(struct phy_device *phydev); | 181 | int phy_stop_interrupts(struct phy_device *phydev); |
194 | 182 | ||
@@ -213,12 +201,6 @@ Doing it all yourself | |||
213 | Fills the phydev structure with up-to-date information about the current | 201 | Fills the phydev structure with up-to-date information about the current |
214 | settings in the PHY. | 202 | settings in the PHY. |
215 | 203 | ||
216 | void phy_sanitize_settings(struct phy_device *phydev) | ||
217 | |||
218 | Resolves differences between currently desired settings, and | ||
219 | supported settings for the given PHY device. Does not make | ||
220 | the changes in the hardware, though. | ||
221 | |||
222 | int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd); | 204 | int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd); |
223 | int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd); | 205 | int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd); |
224 | 206 | ||
diff --git a/Documentation/networking/s2io.txt b/Documentation/networking/s2io.txt index 9d4e0f4df5a8..4be0c039edbc 100644 --- a/Documentation/networking/s2io.txt +++ b/Documentation/networking/s2io.txt | |||
@@ -37,7 +37,7 @@ To associate an interface with a physical adapter use "ethtool -p <ethX>". | |||
37 | The corresponding adapter's LED will blink multiple times. | 37 | The corresponding adapter's LED will blink multiple times. |
38 | 38 | ||
39 | 3. Features supported: | 39 | 3. Features supported: |
40 | a. Jumbo frames. Xframe I/II supports MTU upto 9600 bytes, | 40 | a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes, |
41 | modifiable using ifconfig command. | 41 | modifiable using ifconfig command. |
42 | 42 | ||
43 | b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit | 43 | b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit |
@@ -49,7 +49,7 @@ significant performance improvement on certain platforms(SGI Altix, | |||
49 | IBM xSeries). | 49 | IBM xSeries). |
50 | 50 | ||
51 | d. MSI/MSI-X. Can be enabled on platforms which support this feature | 51 | d. MSI/MSI-X. Can be enabled on platforms which support this feature |
52 | (IA64, Xeon) resulting in noticeable performance improvement(upto 7% | 52 | (IA64, Xeon) resulting in noticeable performance improvement(up to 7% |
53 | on certain platforms). | 53 | on certain platforms). |
54 | 54 | ||
55 | e. Statistics. Comprehensive MAC-level and software statistics displayed | 55 | e. Statistics. Comprehensive MAC-level and software statistics displayed |
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 | ||
9 | Currently this network device driver is for all STM embedded MAC/GMAC | 9 | Currently 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 | ||
12 | DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/100 | 12 | DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/100 |
13 | Universal version 4.0 have been used for developing the first code | 13 | Universal 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 | |||
95 | driver's Header file in include/linux directory. | 95 | driver's Header file in include/linux directory. |
96 | 96 | ||
97 | struct plat_stmmacenet_data { | 97 | struct 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 | ||
118 | struct plat_stmmacphy_data { | 129 | struct 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 | ||
145 | SOURCES: | ||
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 | |||
134 | TODO: | 166 | TODO: |
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. |
diff --git a/Documentation/networking/tc-actions-env-rules.txt b/Documentation/networking/tc-actions-env-rules.txt index dcadf6f88e34..70d6cf608251 100644 --- a/Documentation/networking/tc-actions-env-rules.txt +++ b/Documentation/networking/tc-actions-env-rules.txt | |||
@@ -1,5 +1,5 @@ | |||
1 | 1 | ||
2 | The "enviromental" rules for authors of any new tc actions are: | 2 | The "environmental" rules for authors of any new tc actions are: |
3 | 3 | ||
4 | 1) If you stealeth or borroweth any packet thou shalt be branching | 4 | 1) If you stealeth or borroweth any packet thou shalt be branching |
5 | from the righteous path and thou shalt cloneth. | 5 | from the righteous path and thou shalt cloneth. |
@@ -20,7 +20,7 @@ this way any action downstream can stomp on the packet. | |||
20 | 3) Dropping packets you don't own is a no-no. You simply return | 20 | 3) Dropping packets you don't own is a no-no. You simply return |
21 | TC_ACT_SHOT to the caller and they will drop it. | 21 | TC_ACT_SHOT to the caller and they will drop it. |
22 | 22 | ||
23 | The "enviromental" rules for callers of actions (qdiscs etc) are: | 23 | The "environmental" rules for callers of actions (qdiscs etc) are: |
24 | 24 | ||
25 | *) Thou art responsible for freeing anything returned as being | 25 | *) Thou art responsible for freeing anything returned as being |
26 | TC_ACT_SHOT/STOLEN/QUEUED. If none of TC_ACT_SHOT/STOLEN/QUEUED is | 26 | TC_ACT_SHOT/STOLEN/QUEUED. If none of TC_ACT_SHOT/STOLEN/QUEUED is |
diff --git a/Documentation/networking/timestamping.txt b/Documentation/networking/timestamping.txt index e8c8f4f06c67..98097d8cb910 100644 --- a/Documentation/networking/timestamping.txt +++ b/Documentation/networking/timestamping.txt | |||
@@ -172,15 +172,19 @@ struct skb_shared_hwtstamps { | |||
172 | }; | 172 | }; |
173 | 173 | ||
174 | Time stamps for outgoing packets are to be generated as follows: | 174 | Time stamps for outgoing packets are to be generated as follows: |
175 | - In hard_start_xmit(), check if skb_tx(skb)->hardware is set no-zero. | 175 | - In hard_start_xmit(), check if (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) |
176 | If yes, then the driver is expected to do hardware time stamping. | 176 | is set no-zero. If yes, then the driver is expected to do hardware time |
177 | stamping. | ||
177 | - If this is possible for the skb and requested, then declare | 178 | - If this is possible for the skb and requested, then declare |
178 | that the driver is doing the time stamping by setting the field | 179 | that the driver is doing the time stamping by setting the flag |
179 | skb_tx(skb)->in_progress non-zero. You might want to keep a pointer | 180 | SKBTX_IN_PROGRESS in skb_shinfo(skb)->tx_flags , e.g. with |
180 | to the associated skb for the next step and not free the skb. A driver | 181 | |
181 | not supporting hardware time stamping doesn't do that. A driver must | 182 | skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; |
182 | never touch sk_buff::tstamp! It is used to store software generated | 183 | |
183 | time stamps by the network subsystem. | 184 | You might want to keep a pointer to the associated skb for the next step |
185 | and not free the skb. A driver not supporting hardware time stamping doesn't | ||
186 | do that. A driver must never touch sk_buff::tstamp! It is used to store | ||
187 | software generated time stamps by the network subsystem. | ||
184 | - As soon as the driver has sent the packet and/or obtained a | 188 | - As soon as the driver has sent the packet and/or obtained a |
185 | hardware time stamp for it, it passes the time stamp back by | 189 | hardware time stamp for it, it passes the time stamp back by |
186 | calling skb_hwtstamp_tx() with the original skb, the raw | 190 | calling skb_hwtstamp_tx() with the original skb, the raw |
@@ -191,6 +195,6 @@ Time stamps for outgoing packets are to be generated as follows: | |||
191 | this would occur at a later time in the processing pipeline than other | 195 | this would occur at a later time in the processing pipeline than other |
192 | software time stamping and therefore could lead to unexpected deltas | 196 | software time stamping and therefore could lead to unexpected deltas |
193 | between time stamps. | 197 | between time stamps. |
194 | - If the driver did not call set skb_tx(skb)->in_progress, then | 198 | - If the driver did not set the SKBTX_IN_PROGRESS flag (see above), then |
195 | dev_hard_start_xmit() checks whether software time stamping | 199 | dev_hard_start_xmit() checks whether software time stamping |
196 | is wanted as fallback and potentially generates the time stamp. | 200 | is wanted as fallback and potentially generates the time stamp. |