aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/networking
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
commitc71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch)
treeecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /Documentation/networking
parentea53c912f8a86a8567697115b6a0d8152beee5c8 (diff)
parent6a00f206debf8a5c8899055726ad127dbeeed098 (diff)
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts: litmus/sched_cedf.c
Diffstat (limited to 'Documentation/networking')
-rw-r--r--Documentation/networking/00-INDEX6
-rw-r--r--Documentation/networking/3c359.txt2
-rw-r--r--Documentation/networking/LICENSE.qlcnic327
-rw-r--r--Documentation/networking/Makefile2
-rw-r--r--Documentation/networking/README.ipw22002
-rw-r--r--Documentation/networking/batman-adv.txt241
-rw-r--r--Documentation/networking/bonding.txt160
-rw-r--r--Documentation/networking/bridge.txt4
-rw-r--r--Documentation/networking/caif/Linux-CAIF.txt2
-rw-r--r--Documentation/networking/caif/spi_porting.txt4
-rw-r--r--Documentation/networking/can.txt14
-rw-r--r--Documentation/networking/dccp.txt52
-rw-r--r--Documentation/networking/dns_resolver.txt13
-rw-r--r--Documentation/networking/e100.txt19
-rw-r--r--Documentation/networking/e1000.txt16
-rw-r--r--Documentation/networking/e1000e.txt52
-rw-r--r--Documentation/networking/generic_netlink.txt2
-rw-r--r--Documentation/networking/ieee802154.txt2
-rw-r--r--Documentation/networking/igb.txt46
-rw-r--r--Documentation/networking/igbvf.txt6
-rw-r--r--Documentation/networking/ip-sysctl.txt80
-rw-r--r--Documentation/networking/ixgb.txt10
-rw-r--r--Documentation/networking/ixgbe.txt213
-rw-r--r--Documentation/networking/ixgbevf.txt4
-rw-r--r--Documentation/networking/olympic.txt2
-rw-r--r--Documentation/networking/packet_mmap.txt2
-rw-r--r--Documentation/networking/phonet.txt45
-rw-r--r--Documentation/networking/phy.txt18
-rw-r--r--Documentation/networking/s2io.txt4
-rw-r--r--Documentation/networking/stmmac.txt48
-rw-r--r--Documentation/networking/tc-actions-env-rules.txt4
-rw-r--r--Documentation/networking/timestamping.txt22
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.
41depca.txt 41depca.txt
42 - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver 42 - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver
43dgrs.txt
44 - the Digi International RightSwitch SE-X Ethernet driver
45dmfe.txt 43dmfe.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.
47e100.txt 45e100.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
51eql.txt 49eql.txt
52 - serial IP load balancing 50 - serial IP load balancing
53ethertap.txt
54 - the Ethertap user space packet reception and transmission driver
55ewrk3.txt 51ewrk3.txt
56 - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver 52 - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver
57filter.txt 53filter.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.
105vortex.txt 101vortex.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.
107wavelan.txt
108 - AT&T GIS (nee NCR) WaveLAN card: An Ethernet-like radio transceiver
109x25.txt 103x25.txt
110 - general info on X.25 development. 104 - general info on X.25 development.
111x25-iface.txt 105x25-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
46Variable MTU size: 46Variable MTU size:
47 47
48The driver can handle a MTU size upto either 4500 or 18000 depending upon 48The driver can handle a MTU size up to either 4500 or 18000 depending upon
49ring speed. The driver also changes the size of the receive buffers as part 49ring speed. The driver also changes the size of the receive buffers as part
50of the mtu re-sizing, so if you set mtu = 18000, you will need to be able 50of the mtu re-sizing, so if you set mtu = 18000, you will need to be able
51to allocate 16 * (sk_buff with 18000 buffer size) call it 18500 bytes per ring 51to 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 @@
1Copyright (c) 2009-2010 QLogic Corporation
2QLogic Linux qlcnic NIC Driver
3
4This program includes a device driver for Linux 2.6 that may be
5distributed with QLogic hardware specific firmware binary file.
6You may modify and redistribute the device driver code under the
7GNU General Public License (a copy of which is attached hereto as
8Exhibit A) published by the Free Software Foundation (version 2).
9
10You may redistribute the hardware specific firmware binary file
11under the following terms:
12
13 1. Redistribution of source code (only if applicable),
14 must retain the above copyright notice, this list of
15 conditions and the following disclaimer.
16
17 2. Redistribution in binary form must reproduce the above
18 copyright notice, this list of conditions and the
19 following disclaimer in the documentation and/or other
20 materials provided with the distribution.
21
22 3. The name of QLogic Corporation may not be used to
23 endorse or promote products derived from this software
24 without specific prior written permission
25
26REGARDLESS OF WHAT LICENSING MECHANISM IS USED OR APPLICABLE,
27THIS PROGRAM IS PROVIDED BY QLOGIC CORPORATION "AS IS'' AND ANY
28EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
30PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
31BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
32EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
33TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
35ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
36OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38POSSIBILITY OF SUCH DAMAGE.
39
40USER ACKNOWLEDGES AND AGREES THAT USE OF THIS PROGRAM WILL NOT
41CREATE OR GIVE GROUNDS FOR A LICENSE BY IMPLICATION, ESTOPPEL, OR
42OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS (PATENT, COPYRIGHT,
43TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) EMBODIED IN
44ANY OTHER QLOGIC HARDWARE OR SOFTWARE EITHER SOLELY OR IN
45COMBINATION WITH THIS PROGRAM.
46
47
48EXHIBIT A
49
50 GNU GENERAL PUBLIC LICENSE
51 Version 2, June 1991
52
53 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
54 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
55 Everyone is permitted to copy and distribute verbatim copies
56 of this license document, but changing it is not allowed.
57
58 Preamble
59
60 The licenses for most software are designed to take away your
61freedom to share and change it. By contrast, the GNU General Public
62License is intended to guarantee your freedom to share and change free
63software--to make sure the software is free for all its users. This
64General Public License applies to most of the Free Software
65Foundation's software and to any other program whose authors commit to
66using it. (Some other Free Software Foundation software is covered by
67the GNU Lesser General Public License instead.) You can apply it to
68your programs, too.
69
70 When we speak of free software, we are referring to freedom, not
71price. Our General Public Licenses are designed to make sure that you
72have the freedom to distribute copies of free software (and charge for
73this service if you wish), that you receive source code or can get it
74if you want it, that you can change the software or use pieces of it
75in new free programs; and that you know you can do these things.
76
77 To protect your rights, we need to make restrictions that forbid
78anyone to deny you these rights or to ask you to surrender the rights.
79These restrictions translate to certain responsibilities for you if you
80distribute copies of the software, or if you modify it.
81
82 For example, if you distribute copies of such a program, whether
83gratis or for a fee, you must give the recipients all the rights that
84you have. You must make sure that they, too, receive or can get the
85source code. And you must show them these terms so they know their
86rights.
87
88 We protect your rights with two steps: (1) copyright the software, and
89(2) offer you this license which gives you legal permission to copy,
90distribute and/or modify the software.
91
92 Also, for each author's protection and ours, we want to make certain
93that everyone understands that there is no warranty for this free
94software. If the software is modified by someone else and passed on, we
95want its recipients to know that what they have is not the original, so
96that any problems introduced by others will not reflect on the original
97authors' reputations.
98
99 Finally, any free program is threatened constantly by software
100patents. We wish to avoid the danger that redistributors of a free
101program will individually obtain patent licenses, in effect making the
102program proprietary. To prevent this, we have made it clear that any
103patent must be licensed for everyone's free use or not licensed at all.
104
105 The precise terms and conditions for copying, distribution and
106modification follow.
107
108 GNU GENERAL PUBLIC LICENSE
109 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
110
111 0. This License applies to any program or other work which contains
112a notice placed by the copyright holder saying it may be distributed
113under the terms of this General Public License. The "Program", below,
114refers to any such program or work, and a "work based on the Program"
115means either the Program or any derivative work under copyright law:
116that is to say, a work containing the Program or a portion of it,
117either verbatim or with modifications and/or translated into another
118language. (Hereinafter, translation is included without limitation in
119the term "modification".) Each licensee is addressed as "you".
120
121Activities other than copying, distribution and modification are not
122covered by this License; they are outside its scope. The act of
123running the Program is not restricted, and the output from the Program
124is covered only if its contents constitute a work based on the
125Program (independent of having been made by running the Program).
126Whether that is true depends on what the Program does.
127
128 1. You may copy and distribute verbatim copies of the Program's
129source code as you receive it, in any medium, provided that you
130conspicuously and appropriately publish on each copy an appropriate
131copyright notice and disclaimer of warranty; keep intact all the
132notices that refer to this License and to the absence of any warranty;
133and give any other recipients of the Program a copy of this License
134along with the Program.
135
136You may charge a fee for the physical act of transferring a copy, and
137you may at your option offer warranty protection in exchange for a fee.
138
139 2. You may modify your copy or copies of the Program or any portion
140of it, thus forming a work based on the Program, and copy and
141distribute such modifications or work under the terms of Section 1
142above, provided that you also meet all of these conditions:
143
144 a) You must cause the modified files to carry prominent notices
145 stating that you changed the files and the date of any change.
146
147 b) You must cause any work that you distribute or publish, that in
148 whole or in part contains or is derived from the Program or any
149 part thereof, to be licensed as a whole at no charge to all third
150 parties under the terms of this License.
151
152 c) If the modified program normally reads commands interactively
153 when run, you must cause it, when started running for such
154 interactive use in the most ordinary way, to print or display an
155 announcement including an appropriate copyright notice and a
156 notice that there is no warranty (or else, saying that you provide
157 a warranty) and that users may redistribute the program under
158 these conditions, and telling the user how to view a copy of this
159 License. (Exception: if the Program itself is interactive but
160 does not normally print such an announcement, your work based on
161 the Program is not required to print an announcement.)
162
163These requirements apply to the modified work as a whole. If
164identifiable sections of that work are not derived from the Program,
165and can be reasonably considered independent and separate works in
166themselves, then this License, and its terms, do not apply to those
167sections when you distribute them as separate works. But when you
168distribute the same sections as part of a whole which is a work based
169on the Program, the distribution of the whole must be on the terms of
170this License, whose permissions for other licensees extend to the
171entire whole, and thus to each and every part regardless of who wrote it.
172
173Thus, it is not the intent of this section to claim rights or contest
174your rights to work written entirely by you; rather, the intent is to
175exercise the right to control the distribution of derivative or
176collective works based on the Program.
177
178In addition, mere aggregation of another work not based on the Program
179with the Program (or with a work based on the Program) on a volume of
180a storage or distribution medium does not bring the other work under
181the scope of this License.
182
183 3. You may copy and distribute the Program (or a work based on it,
184under Section 2) in object code or executable form under the terms of
185Sections 1 and 2 above provided that you also do one of the following:
186
187 a) Accompany it with the complete corresponding machine-readable
188 source code, which must be distributed under the terms of Sections
189 1 and 2 above on a medium customarily used for software interchange; or,
190
191 b) Accompany it with a written offer, valid for at least three
192 years, to give any third party, for a charge no more than your
193 cost of physically performing source distribution, a complete
194 machine-readable copy of the corresponding source code, to be
195 distributed under the terms of Sections 1 and 2 above on a medium
196 customarily used for software interchange; or,
197
198 c) Accompany it with the information you received as to the offer
199 to distribute corresponding source code. (This alternative is
200 allowed only for noncommercial distribution and only if you
201 received the program in object code or executable form with such
202 an offer, in accord with Subsection b above.)
203
204The source code for a work means the preferred form of the work for
205making modifications to it. For an executable work, complete source
206code means all the source code for all modules it contains, plus any
207associated interface definition files, plus the scripts used to
208control compilation and installation of the executable. However, as a
209special exception, the source code distributed need not include
210anything that is normally distributed (in either source or binary
211form) with the major components (compiler, kernel, and so on) of the
212operating system on which the executable runs, unless that component
213itself accompanies the executable.
214
215If distribution of executable or object code is made by offering
216access to copy from a designated place, then offering equivalent
217access to copy the source code from the same place counts as
218distribution of the source code, even though third parties are not
219compelled to copy the source along with the object code.
220
221 4. You may not copy, modify, sublicense, or distribute the Program
222except as expressly provided under this License. Any attempt
223otherwise to copy, modify, sublicense or distribute the Program is
224void, and will automatically terminate your rights under this License.
225However, parties who have received copies, or rights, from you under
226this License will not have their licenses terminated so long as such
227parties remain in full compliance.
228
229 5. You are not required to accept this License, since you have not
230signed it. However, nothing else grants you permission to modify or
231distribute the Program or its derivative works. These actions are
232prohibited by law if you do not accept this License. Therefore, by
233modifying or distributing the Program (or any work based on the
234Program), you indicate your acceptance of this License to do so, and
235all its terms and conditions for copying, distributing or modifying
236the Program or works based on it.
237
238 6. Each time you redistribute the Program (or any work based on the
239Program), the recipient automatically receives a license from the
240original licensor to copy, distribute or modify the Program subject to
241these terms and conditions. You may not impose any further
242restrictions on the recipients' exercise of the rights granted herein.
243You are not responsible for enforcing compliance by third parties to
244this License.
245
246 7. If, as a consequence of a court judgment or allegation of patent
247infringement or for any other reason (not limited to patent issues),
248conditions are imposed on you (whether by court order, agreement or
249otherwise) that contradict the conditions of this License, they do not
250excuse you from the conditions of this License. If you cannot
251distribute so as to satisfy simultaneously your obligations under this
252License and any other pertinent obligations, then as a consequence you
253may not distribute the Program at all. For example, if a patent
254license would not permit royalty-free redistribution of the Program by
255all those who receive copies directly or indirectly through you, then
256the only way you could satisfy both it and this License would be to
257refrain entirely from distribution of the Program.
258
259If any portion of this section is held invalid or unenforceable under
260any particular circumstance, the balance of the section is intended to
261apply and the section as a whole is intended to apply in other
262circumstances.
263
264It is not the purpose of this section to induce you to infringe any
265patents or other property right claims or to contest validity of any
266such claims; this section has the sole purpose of protecting the
267integrity of the free software distribution system, which is
268implemented by public license practices. Many people have made
269generous contributions to the wide range of software distributed
270through that system in reliance on consistent application of that
271system; it is up to the author/donor to decide if he or she is willing
272to distribute software through any other system and a licensee cannot
273impose that choice.
274
275This section is intended to make thoroughly clear what is believed to
276be a consequence of the rest of this License.
277
278 8. If the distribution and/or use of the Program is restricted in
279certain countries either by patents or by copyrighted interfaces, the
280original copyright holder who places the Program under this License
281may add an explicit geographical distribution limitation excluding
282those countries, so that distribution is permitted only in or among
283countries not thus excluded. In such case, this License incorporates
284the limitation as if written in the body of this License.
285
286 9. The Free Software Foundation may publish revised and/or new versions
287of the General Public License from time to time. Such new versions will
288be similar in spirit to the present version, but may differ in detail to
289address new problems or concerns.
290
291Each version is given a distinguishing version number. If the Program
292specifies a version number of this License which applies to it and "any
293later version", you have the option of following the terms and conditions
294either of that version or of any later version published by the Free
295Software Foundation. If the Program does not specify a version number of
296this License, you may choose any version ever published by the Free Software
297Foundation.
298
299 10. If you wish to incorporate parts of the Program into other free
300programs whose distribution conditions are different, write to the author
301to ask for permission. For software which is copyrighted by the Free
302Software Foundation, write to the Free Software Foundation; we sometimes
303make exceptions for this. Our decision will be guided by the two goals
304of preserving the free status of all derivatives of our free software and
305of promoting the sharing and reuse of software generally.
306
307 NO WARRANTY
308
309 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
310FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
311OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
312PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
313OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
314MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
315TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
316PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
317REPAIR OR CORRECTION.
318
319 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
320WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
321REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
322INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
323OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
324TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
325YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
326PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
327POSSIBILITY OF SUCH DAMAGES.
diff --git a/Documentation/networking/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
5hostprogs-y := ifenslave 5hostprogs-y := ifenslave
6 6
7HOSTCFLAGS_ifenslave.o += -I$(objtree)/usr/include
8
7# Tell kbuild to always build the programs 9# Tell kbuild to always build the programs
8always := $(hostprogs-y) 10always := $(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
257Where $VALUE would be a number in the case of this sysfs entry. The 257Where $VALUE would be a number in the case of this sysfs entry. The
258input to sysfs files does not have to be a number. For example, the 258input to sysfs files does not have to be a number. For example, the
259firmware loader used by hotplug utilizes sysfs entries for transfering 259firmware loader used by hotplug utilizes sysfs entries for transferring
260the firmware image from user space into the driver. 260the firmware image from user space into the driver.
261 261
262The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries 262The 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
3BATMAN-ADV
4----------
5
6Batman advanced is a new approach to wireless networking which
7does no longer operate on the IP basis. Unlike the batman daemon,
8which exchanges information using UDP packets and sets routing
9tables, batman-advanced operates on ISO/OSI Layer 2 only and uses
10and routes (or better: bridges) Ethernet Frames. It emulates a
11virtual network switch of all nodes participating. Therefore all
12nodes appear to be link local, thus all higher operating proto-
13cols won't be affected by any changes within the network. You can
14run almost any protocol above batman advanced, prominent examples
15are: IPv4, IPv6, DHCP, IPX.
16
17Batman advanced was implemented as a Linux kernel driver to re-
18duce the overhead to a minimum. It does not depend on any (other)
19network driver, and can be used on wifi as well as ethernet lan,
20vpn, etc ... (anything with ethernet-style layer 2).
21
22
23CONFIGURATION
24-------------
25
26Load the batman-adv module into your kernel:
27
28# insmod batman-adv.ko
29
30The module is now waiting for activation. You must add some in-
31terfaces on which batman can operate. After loading the module
32batman advanced will scan your systems interfaces to search for
33compatible interfaces. Once found, it will create subfolders in
34the /sys directories of each supported interface, e.g.
35
36# ls /sys/class/net/eth0/batman_adv/
37# iface_status mesh_iface
38
39If an interface does not have the "batman_adv" subfolder it prob-
40ably is not supported. Not supported interfaces are: loopback,
41non-ethernet and batman's own interfaces.
42
43Note: After the module was loaded it will continuously watch for
44new interfaces to verify the compatibility. There is no need to
45reload the module if you plug your USB wifi adapter into your ma-
46chine after batman advanced was initially loaded.
47
48To 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
53Repeat this step for all interfaces you wish to add. Now batman
54starts using/broadcasting on this/these interface(s).
55
56By reading the "iface_status" file you can check its status:
57
58# cat /sys/class/net/eth0/batman_adv/iface_status
59# active
60
61To 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
67All mesh wide settings can be found in batman's own interface
68folder:
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
76There 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
83Some of the files contain all sort of status information regard-
84ing the mesh network. For example, you can view the table of
85originators (mesh participants) with:
86
87# cat /sys/kernel/debug/batman_adv/bat0/originators
88
89Other files allow to change batman's behaviour to better fit your
90requirements. For instance, you can check the current originator
91interval (value in milliseconds which determines how often batman
92sends its broadcast packets):
93
94# cat /sys/class/net/bat0/mesh/orig_interval
95# 1000
96
97and also change its value:
98
99# echo 3000 > /sys/class/net/bat0/mesh/orig_interval
100
101In very mobile scenarios, you might want to adjust the originator
102interval to a lower value. This will make the mesh more respon-
103sive to topology changes, but will also increase the overhead.
104
105
106USAGE
107-----
108
109To make use of your newly created mesh, batman advanced provides
110a new interface "bat0" which you should use from this point on.
111All interfaces added to batman advanced are not relevant any
112longer because batman handles them for you. Basically, one "hands
113over" the data by using the batman interface and batman will make
114sure it reaches its destination.
115
116The "bat0" interface can be used like any other regular inter-
117face. It needs an IP address which can be either statically con-
118figured 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
124Note: In order to avoid problems remove all IP addresses previ-
125ously assigned to interfaces now used by batman advanced, e.g.
126
127# ifconfig eth0 0.0.0.0
128
129
130VISUALIZATION
131-------------
132
133If you want topology visualization, at least one mesh node must
134be configured as VIS-server:
135
136# echo "server" > /sys/class/net/bat0/mesh/vis_mode
137
138Each node is either configured as "server" or as "client" (de-
139fault: "client"). Clients send their topology data to the server
140next to them, and server synchronize with other servers. If there
141is no server configured (default) within the mesh, no topology
142information will be transmitted. With these "synchronizing
143servers", there can be 1 or more vis servers sharing the same (or
144at least very similar) data.
145
146When configured as server, you can get a topology snapshot of
147your mesh:
148
149# cat /sys/kernel/debug/batman_adv/bat0/vis_data
150
151This raw output is intended to be easily parsable and convertable
152with other tools. Have a look at the batctl README if you want a
153vis output in dot or json format for instance and how those out-
154puts could then be visualised in an image.
155
156The raw format consists of comma separated values per entry where
157each entry is giving information about a certain source inter-
158face. 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
169The TQ value has a range from 4 to 255 with 255 being the best.
170The TT entries are showing which hosts are connected to the mesh
171via bat0 or being bridged into the mesh network. The PRIMARY/SEC
172values are only applied on primary interfaces
173
174
175LOGGING/DEBUGGING
176-----------------
177
178All error messages, warnings and information messages are sent to
179the kernel log. Depending on your operating system distribution
180this can be read in one of a number of ways. Try using the com-
181mands: dmesg, logread, or looking in the files /var/log/kern.log
182or /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
187When investigating problems with your mesh network it is some-
188times necessary to see more detail debug messages. This must be
189enabled when compiling the batman-adv module. When building bat-
190man-adv as part of kernel, use "make menuconfig" and enable the
191option "B.A.T.M.A.N. debugging".
192
193Those additional debug messages can be accessed using a special
194file in debugfs
195
196# cat /sys/kernel/debug/batman_adv/bat0/log
197
198The additional debug output is by default disabled. It can be en-
199abled during run time. Following log_levels are defined:
200
2010 - All debug output disabled
2021 - Enable messages related to routing / flooding / broadcasting
2032 - Enable route or tt entry added / changed / deleted
2043 - Enable all messages
205
206The 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
211will enable debug messages for when routes or TTs change.
212
213
214BATCTL
215------
216
217As batman advanced operates on layer 2 all hosts participating in
218the virtual switch are completely transparent for all protocols
219above layer 2. Therefore the common diagnosis tools do not work
220as expected. To overcome these problems batctl was created. At
221the moment the batctl contains ping, traceroute, tcpdump and
222interfaces to the kernel module settings.
223
224For more information, please see the manpage (man batctl).
225
226batctl is available on http://www.open-mesh.org/
227
228
229CONTACT
230-------
231
232Please send us comments, experiences, questions, anything :)
233
234IRC: #batman on irc.freenode.org
235Mailing-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
238You can also contact the Authors:
239
240Marek Lindner <lindner_marek@yahoo.de>
241Simon 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
6Initial release : Thomas Davis <tadavis at lbl.gov> 6Initial release : Thomas Davis <tadavis at lbl.gov>
7Corrections, HA extensions : 2000/10/03-15 : 7Corrections, HA extensions : 2000/10/03-15 :
@@ -49,7 +49,8 @@ Table of Contents
493.3 Configuring Bonding Manually with Ifenslave 493.3 Configuring Bonding Manually with Ifenslave
503.3.1 Configuring Multiple Bonds Manually 503.3.1 Configuring Multiple Bonds Manually
513.4 Configuring Bonding Manually via Sysfs 513.4 Configuring Bonding Manually via Sysfs
523.5 Overriding Configuration for Special Cases 523.5 Configuration with Interfaces Support
533.6 Overriding Configuration for Special Cases
53 54
544. Querying Bonding Configuration 554. Querying Bonding Configuration
554.1 Bonding Configuration 564.1 Bonding Configuration
@@ -161,8 +162,8 @@ onwards) do not have /usr/include/linux symbolically linked to the
161default kernel source include directory. 162default kernel source include directory.
162 163
163SECOND IMPORTANT NOTE: 164SECOND 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
165to use ifenslave. 166/etc/network/interfaces file, you do not need to use ifenslave.
166 167
1672. Bonding Driver Options 1682. 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
586num_grat_arp 587num_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
597num_unsol_na 588num_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
607primary 606primary
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
767resend_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
7693. Configuring Bonding Devices 7853. 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
773initialization scripts, or manually using either ifenslave or the 789initialization scripts, or manually using either ifenslave or the
774sysfs interface. Distros generally use one of two packages for the 790sysfs interface. Distros generally use one of three packages for the
775network initialization scripts: initscripts or sysconfig. Recent 791network initialization scripts: initscripts, sysconfig or interfaces.
776versions of these packages have support for bonding, while older 792Recent versions of these packages have support for bonding, while older
777versions do not. 793versions 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
780distros using versions of initscripts and sysconfig with full or 796distros using versions of initscripts, sysconfig and interfaces with full
781partial support for bonding, then provide information on enabling 797or partial support for bonding, then provide information on enabling
782bonding without support from the network initialization scripts (i.e., 798bonding without support from the network initialization scripts (i.e.,
783older versions of initscripts or sysconfig). 799older 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,
786initscripts, or don't know if it's new enough, have no fear. 802initscripts or interfaces, or don't know if it's new enough, have no fear.
787Determining this is fairly straightforward. 803Determining this is fairly straightforward.
788 804
789 First, issue the command: 805 First, look for a file called interfaces in /etc/network directory.
806If this file is present in your system, then your system use interfaces. See
807Configuration 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
1319echo +eth2 > /sys/class/net/bond1/bonding/slaves 1339echo +eth2 > /sys/class/net/bond1/bonding/slaves
1320echo +eth3 > /sys/class/net/bond1/bonding/slaves 1340echo +eth3 > /sys/class/net/bond1/bonding/slaves
1321 1341
13223.5 Overriding Configuration for Special Cases 13423.5 Configuration with Interfaces Support
1343-----------------------------------------
1344
1345 This section applies to distros which use /etc/network/interfaces file
1346to describe network interface configuration, most notably Debian and it's
1347derivatives.
1348
1349 The ifup and ifdown commands on Debian don't support bonding out of
1350the box. The ifenslave-2.6 package should be installed to provide bonding
1351support. Once installed, this package will provide bond-* options to be used
1352into /etc/network/interfaces.
1353
1354 Note that ifenslave-2.6 package will load the bonding module and use
1355the ifenslave command when appropriate.
1356
1357Example Configurations
1358----------------------
1359
1360In /etc/network/interfaces, the following stanza will configure bond0, in
1361active-backup mode, with eth0 and eth1 as slaves.
1362
1363auto bond0
1364iface bond0 inet dhcp
1365 bond-slaves eth0 eth1
1366 bond-mode active-backup
1367 bond-miimon 100
1368 bond-primary eth0 eth1
1369
1370If the above configuration doesn't work, you might have a system using
1371upstart for system startup. This is most notably true for recent
1372Ubuntu versions. The following stanza in /etc/network/interfaces will
1373produce the same result on those systems.
1374
1375auto bond0
1376iface bond0 inet dhcp
1377 bond-slaves none
1378 bond-mode active-backup
1379 bond-miimon 100
1380
1381auto eth0
1382iface eth0 inet manual
1383 bond-master bond0
1384 bond-primary eth0 eth1
1385
1386auto eth1
1387iface eth1 inet manual
1388 bond-master bond0
1389 bond-primary eth0 eth1
1390
1391For a full list of bond-* supported options in /etc/network/interfaces and some
1392more advanced examples tailored to you particular distros, see the files in
1393/usr/share/doc/ifenslave-2.6.
1394
13953.6 Overriding Configuration for Special Cases
1323---------------------------------------------- 1396----------------------------------------------
1397
1324When using the bonding driver, the physical port which transmits a frame is 1398When using the bonding driver, the physical port which transmits a frame is
1325typically selected by the bonding driver, and is not relevant to the user or 1399typically selected by the bonding driver, and is not relevant to the user or
1326system administrator. The output port is simply selected using the policies of 1400system administrator. The output port is simply selected using the policies of
@@ -2491,18 +2565,15 @@ enslaved.
249116. Resources and Links 256516. Resources and Links
2492======================= 2566=======================
2493 2567
2494The 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
2495version of the linux kernel, found on http://kernel.org 2569version of the linux kernel, found on http://kernel.org
2496 2570
2497The 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
2498kernel source (named Documentation/networking/bonding.txt), or on the 2572source (named Documentation/networking/bonding.txt).
2499bonding sourceforge site:
2500
2501http://www.sourceforge.net/projects/bonding
2502 2573
2503Discussions regarding the bonding driver take place primarily on the 2574 Discussions regarding the usage of the bonding driver take place on the
2504bonding-devel mailing list, hosted at sourceforge.net. If you have 2575bonding-devel mailing list, hosted at sourceforge.net. If you have questions or
2505questions or problems, post them to the list. The list address is: 2576problems, post them to the list. The list address is:
2506 2577
2507bonding-devel@lists.sourceforge.net 2578bonding-devel@lists.sourceforge.net
2508 2579
@@ -2511,6 +2582,17 @@ be found at:
2511 2582
2512https://lists.sourceforge.net/lists/listinfo/bonding-devel 2583https://lists.sourceforge.net/lists/listinfo/bonding-devel
2513 2584
2585 Discussions regarding the developpement of the bonding driver take place
2586on the main Linux network mailing list, hosted at vger.kernel.org. The list
2587address is:
2588
2589netdev@vger.kernel.org
2590
2591 The administrative interface (to subscribe or unsubscribe) can
2592be found at:
2593
2594http://vger.kernel.org/vger-lists.html#netdev
2595
2514Donald Becker's Ethernet Drivers and diag programs may be found at : 2596Donald 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 @@
1In order to use the Ethernet bridging functionality, you'll need the 1In order to use the Ethernet bridging functionality, you'll need the
2userspace tools. These programs and documentation are available 2userspace tools. These programs and documentation are available
3at http://www.linux-foundation.org/en/Net:Bridge. The download page is 3at http://www.linuxfoundation.org/en/Net:Bridge. The download page is
4http://prdownloads.sourceforge.net/bridge. 4http://prdownloads.sourceforge.net/bridge.
5 5
6If you still have questions, don't hesitate to post to the mailing list 6If 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)
150void sspi_sig_xfer(bool xfer, struct cfspi_dev *dev) 150void 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
2454. How to use Socket CAN 2464. 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 @@
1DCCP protocol 1DCCP protocol
2============ 2=============
3 3
4 4
5Contents 5Contents
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
13Introduction 16Introduction
14============ 17============
15
16Datagram Congestion Control Protocol (DCCP) is an unreliable, connection 18Datagram Congestion Control Protocol (DCCP) is an unreliable, connection
17oriented protocol designed to solve issues present in UDP and TCP, particularly 19oriented protocol designed to solve issues present in UDP and TCP, particularly
18for real-time and multimedia (streaming) traffic. 20for real-time and multimedia (streaming) traffic.
@@ -29,22 +31,41 @@ It has a base protocol and pluggable congestion control IDs (CCIDs).
29DCCP is a Proposed Standard (RFC 2026), and the homepage for DCCP as a protocol 31DCCP is a Proposed Standard (RFC 2026), and the homepage for DCCP as a protocol
30is at http://www.ietf.org/html.charters/dccp-charter.html 32is at http://www.ietf.org/html.charters/dccp-charter.html
31 33
34
32Missing features 35Missing features
33================ 36================
34
35The Linux DCCP implementation does not currently support all the features that are 37The Linux DCCP implementation does not currently support all the features that are
36specified in RFCs 4340...42. 38specified in RFCs 4340...42.
37 39
38The known bugs are at: 40The 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
41For more up-to-date versions of the DCCP implementation, please consider using 43For more up-to-date versions of the DCCP implementation, please consider using
42the experimental DCCP test tree; instructions for checking this out are on: 44the experimental DCCP test tree; instructions for checking this out are on:
43http://linux-net.osdl.org/index.php/DCCP_Testing#Experimental_DCCP_source_tree 45http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp_testing#Experimental_DCCP_source_tree
44 46
45 47
46Socket options 48Socket options
47============== 49==============
50DCCP_SOCKOPT_QPOLICY_ID sets the dequeuing policy for outgoing packets. It takes
51a policy ID as argument and can only be set before the connection (i.e. changes
52during an established connection are not supported). Currently, two policies are
53defined: the "simple" policy (DCCPQ_POLICY_SIMPLE), which does nothing special,
54and a priority-based variant (DCCPQ_POLICY_PRIO). The latter allows to pass an
55u32 priority value as ancillary data to sendmsg(), where higher numbers indicate
56a higher packet priority (similar to SO_PRIORITY). This ancillary data needs to
57be formatted using a cmsg(3) message header filled in as follows:
58 cmsg->cmsg_level = SOL_DCCP;
59 cmsg->cmsg_type = DCCP_SCM_PRIORITY;
60 cmsg->cmsg_len = CMSG_LEN(sizeof(uint32_t)); /* or CMSG_LEN(4) */
61
62DCCP_SOCKOPT_QPOLICY_TXQLEN sets the maximum length of the output queue. A zero
63value is always interpreted as unbounded queue length. If different from zero,
64the interpretation of this parameter depends on the current dequeuing policy
65(see above): the "simple" policy will enforce a fixed queue size by returning
66EAGAIN, whereas the "prio" policy enforces a fixed queue length by dropping the
67lowest-priority packet first. The default value for this parameter is
68initialised from /proc/sys/net/dccp/default/tx_qlen.
48 69
49DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of 70DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of
50service codes (RFC 4340, sec. 8.1.2); if this socket option is not set, 71service codes (RFC 4340, sec. 8.1.2); if this socket option is not set,
@@ -112,6 +133,7 @@ DCCP_SOCKOPT_CCID_TX_INFO
112On unidirectional connections it is useful to close the unused half-connection 133On unidirectional connections it is useful to close the unused half-connection
113via shutdown (SHUT_WR or SHUT_RD): this will reduce per-packet processing costs. 134via shutdown (SHUT_WR or SHUT_RD): this will reduce per-packet processing costs.
114 135
136
115Sysctl variables 137Sysctl variables
116================ 138================
117Several DCCP default parameters can be managed by the following sysctls 139Several DCCP default parameters can be managed by the following sysctls
@@ -145,6 +167,7 @@ rx_ccid = 2
145seq_window = 100 167seq_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
149tx_qlen = 5 172tx_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
158IOCTLS 182IOCTLS
159====== 183======
160FIONREAD 184FIONREAD
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
189Other tunables
190==============
191Per-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
164Notes 203Notes
165===== 204=====
166
167DCCP does not travel through NAT successfully at present on many boxes. This is 205DCCP does not travel through NAT successfully at present on many boxes. This is
168because the checksum covers the pseudo-header as per TCP and UDP. Linux NAT 206because the checksum covers the pseudo-header as per TCP and UDP. Linux NAT
169support for DCCP has been added. 207support 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=====
66USAGE 65USAGE
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===============================
107READING DNS KEYS FROM USERSPACE
108===============================
109
110Keys of dns_resolver type can be read from userspace using keyctl_read() or
111"keyctl read/print/pipe".
112
113
107========= 114=========
108MECHANISM 115MECHANISM
109========= 116=========
@@ -132,8 +139,8 @@ the key will be discarded and recreated when the data it holds has expired.
132dns_query() returns a copy of the value attached to the key, or an error if 139dns_query() returns a copy of the value attached to the key, or an error if
133that is indicated instead. 140that is indicated instead.
134 141
135See <file:Documentation/keys-request-key.txt> for further information about 142See <file:Documentation/security/keys-request-key.txt> for further
136request-key function. 143information 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
74Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by 74Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by
75 default. Ethtool can be used as follows to force speed/duplex. 75 default. The ethtool utility can be used as follows to force speed/duplex.
76 76
77 ethtool -s eth? autoneg off speed {10|100} duplex {full|half} 77 ethtool -s eth? autoneg off speed {10|100} duplex {full|half}
78 78
@@ -126,30 +126,21 @@ Additional Configurations
126 ------- 126 -------
127 127
128 The driver utilizes the ethtool interface for driver configuration and 128 The driver utilizes the ethtool interface for driver configuration and
129 diagnostics, as well as displaying statistical information. Ethtool 129 diagnostics, as well as displaying statistical information. The ethtool
130 version 1.6 or later is required for this functionality. 130 version 1.6 or later is required for this functionality.
131 131
132 The latest release of ethtool can be found from 132 The latest release of ethtool can be found from
133 http://sourceforge.net/projects/gkernel. 133 http://ftp.kernel.org/pub/software/network/ethtool/
134
135 NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support
136 for a more complete ethtool feature set can be enabled by upgrading
137 ethtool to ethtool-1.8.1.
138
139 134
140 Enabling Wake on LAN* (WoL) 135 Enabling Wake on LAN* (WoL)
141 --------------------------- 136 ---------------------------
142 WoL is provided through the Ethtool* utility. Ethtool is included with Red 137 WoL is provided through the ethtool* utility. For instructions on enabling
143 Hat* 8.0. For other Linux distributions, download and install Ethtool from 138 WoL with ethtool, refer to the ethtool man page.
144 the following website: http://sourceforge.net/projects/gkernel.
145
146 For instructions on enabling WoL with Ethtool, refer to the Ethtool man page.
147 139
148 WoL will be enabled on the system during the next shut down or reboot. For 140 WoL will be enabled on the system during the next shut down or reboot. For
149 this driver version, in order to enable WoL, the e100 driver must be 141 this driver version, in order to enable WoL, the e100 driver must be
150 loaded when shutting down or rebooting the system. 142 loaded when shutting down or rebooting the system.
151 143
152
153 NAPI 144 NAPI
154 ---- 145 ----
155 146
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt
index d9271e74e488..71ca95855671 100644
--- a/Documentation/networking/e1000.txt
+++ b/Documentation/networking/e1000.txt
@@ -79,7 +79,7 @@ InterruptThrottleRate
79--------------------- 79---------------------
80(not supported on Intel(R) 82542, 82543 or 82544-based adapters) 80(not supported on Intel(R) 82542, 82543 or 82544-based adapters)
81Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative, 81Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative,
82 4=simplified balancing) 82 4=simplified balancing)
83Default Value: 3 83Default Value: 3
84 84
85The driver can limit the amount of interrupts per second that the adapter 85The driver can limit the amount of interrupts per second that the adapter
@@ -124,8 +124,8 @@ InterruptThrottleRate is set to mode 1. In this mode, which operates
124the same as mode 3, the InterruptThrottleRate will be increased stepwise to 124the same as mode 3, the InterruptThrottleRate will be increased stepwise to
12570000 for traffic in class "Lowest latency". 12570000 for traffic in class "Lowest latency".
126 126
127In simplified mode the interrupt rate is based on the ratio of Tx and 127In simplified mode the interrupt rate is based on the ratio of TX and
128Rx traffic. If the bytes per second rate is approximately equal, the 128RX traffic. If the bytes per second rate is approximately equal, the
129interrupt rate will drop as low as 2000 interrupts per second. If the 129interrupt rate will drop as low as 2000 interrupts per second. If the
130traffic is mostly transmit or mostly receive, the interrupt rate could 130traffic is mostly transmit or mostly receive, the interrupt rate could
131be as high as 8000. 131be as high as 8000.
@@ -245,7 +245,7 @@ NOTE: Depending on the available system resources, the request for a
245TxDescriptorStep 245TxDescriptorStep
246---------------- 246----------------
247Valid Range: 1 (use every Tx Descriptor) 247Valid Range: 1 (use every Tx Descriptor)
248 4 (use every 4th Tx Descriptor) 248 4 (use every 4th Tx Descriptor)
249 249
250Default Value: 1 (use every Tx Descriptor) 250Default Value: 1 (use every Tx Descriptor)
251 251
@@ -312,7 +312,7 @@ Valid Range: 0-xxxxxxx (0=off)
312Default Value: 256 312Default Value: 256
313Usage: insmod e1000.ko copybreak=128 313Usage: insmod e1000.ko copybreak=128
314 314
315Driver copies all packets below or equaling this size to a fresh Rx 315Driver copies all packets below or equaling this size to a fresh RX
316buffer before handing it up the stack. 316buffer before handing it up the stack.
317 317
318This parameter is different than other parameters, in that it is a 318This parameter is different than other parameters, in that it is a
@@ -431,15 +431,15 @@ Additional Configurations
431 Ethtool 431 Ethtool
432 ------- 432 -------
433 The driver utilizes the ethtool interface for driver configuration and 433 The driver utilizes the ethtool interface for driver configuration and
434 diagnostics, as well as displaying statistical information. Ethtool 434 diagnostics, as well as displaying statistical information. The ethtool
435 version 1.6 or later is required for this functionality. 435 version 1.6 or later is required for this functionality.
436 436
437 The latest release of ethtool can be found from 437 The latest release of ethtool can be found from
438 http://sourceforge.net/projects/gkernel. 438 http://ftp.kernel.org/pub/software/network/ethtool/
439 439
440 Enabling Wake on LAN* (WoL) 440 Enabling Wake on LAN* (WoL)
441 --------------------------- 441 ---------------------------
442 WoL is configured through the Ethtool* utility. 442 WoL is configured through the ethtool* utility.
443 443
444 WoL will be enabled on the system during the next shut down or reboot. 444 WoL will be enabled on the system during the next shut down or reboot.
445 For this driver version, in order to enable WoL, the e1000 driver must be 445 For this driver version, in order to enable WoL, the e1000 driver must be
diff --git a/Documentation/networking/e1000e.txt b/Documentation/networking/e1000e.txt
index 6aa048badf32..97b5ba942ebf 100644
--- a/Documentation/networking/e1000e.txt
+++ b/Documentation/networking/e1000e.txt
@@ -1,5 +1,5 @@
1Linux* Driver for Intel(R) Network Connection 1Linux* Driver for Intel(R) Network Connection
2=============================================================== 2=============================================
3 3
4Intel Gigabit Linux driver. 4Intel Gigabit Linux driver.
5Copyright(c) 1999 - 2010 Intel Corporation. 5Copyright(c) 1999 - 2010 Intel Corporation.
@@ -61,6 +61,12 @@ per second, even if more packets have come in. This reduces interrupt
61load on the system and can lower CPU utilization under heavy load, 61load on the system and can lower CPU utilization under heavy load,
62but will increase latency as packets are not processed as quickly. 62but will increase latency as packets are not processed as quickly.
63 63
64The default behaviour of the driver previously assumed a static
65InterruptThrottleRate value of 8000, providing a good fallback value for
66all traffic types, but lacking in small packet performance and latency.
67The hardware can handle many more small packets per second however, and
68for this reason an adaptive interrupt moderation algorithm was implemented.
69
64The driver has two adaptive modes (setting 1 or 3) in which 70The driver has two adaptive modes (setting 1 or 3) in which
65it dynamically adjusts the InterruptThrottleRate value based on the traffic 71it dynamically adjusts the InterruptThrottleRate value based on the traffic
66that it receives. After determining the type of incoming traffic in the last 72that it receives. After determining the type of incoming traffic in the last
@@ -86,8 +92,8 @@ InterruptThrottleRate is set to mode 1. In this mode, which operates
86the same as mode 3, the InterruptThrottleRate will be increased stepwise to 92the same as mode 3, the InterruptThrottleRate will be increased stepwise to
8770000 for traffic in class "Lowest latency". 9370000 for traffic in class "Lowest latency".
88 94
89In simplified mode the interrupt rate is based on the ratio of Tx and 95In simplified mode the interrupt rate is based on the ratio of TX and
90Rx traffic. If the bytes per second rate is approximately equal the 96RX traffic. If the bytes per second rate is approximately equal, the
91interrupt rate will drop as low as 2000 interrupts per second. If the 97interrupt rate will drop as low as 2000 interrupts per second. If the
92traffic is mostly transmit or mostly receive, the interrupt rate could 98traffic is mostly transmit or mostly receive, the interrupt rate could
93be as high as 8000. 99be as high as 8000.
@@ -177,7 +183,7 @@ Copybreak
177Valid Range: 0-xxxxxxx (0=off) 183Valid Range: 0-xxxxxxx (0=off)
178Default Value: 256 184Default Value: 256
179 185
180Driver copies all packets below or equaling this size to a fresh Rx 186Driver copies all packets below or equaling this size to a fresh RX
181buffer before handing it up the stack. 187buffer before handing it up the stack.
182 188
183This parameter is different than other parameters, in that it is a 189This parameter is different than other parameters, in that it is a
@@ -223,17 +229,17 @@ loading or enabling the driver, try disabling this feature.
223 229
224WriteProtectNVM 230WriteProtectNVM
225--------------- 231---------------
226Valid Range: 0-1 232Valid Range: 0,1
227Default Value: 1 (enabled) 233Default Value: 1
228 234
229Set the hardware to ignore all write/erase cycles to the GbE region in the 235If set to 1, configure the hardware to ignore all write/erase cycles to the
230ICHx NVM (non-volatile memory). This feature can be disabled by the 236GbE region in the ICHx NVM (in order to prevent accidental corruption of the
231WriteProtectNVM module parameter (enabled by default) only after a hardware 237NVM). This feature can be disabled by setting the parameter to 0 during initial
232reset, but the machine must be power cycled before trying to enable writes. 238driver load.
233 239NOTE: The machine must be power cycled (full off/on) when enabling NVM writes
234Note: the kernel boot option iomem=relaxed may need to be set if the kernel 240via setting the parameter to zero. Once the NVM has been locked (via the
235config option CONFIG_STRICT_DEVMEM=y, if the root user wants to write the 241parameter at 1 when the driver loads) it cannot be unlocked except via power
236NVM from user space via ethtool. 242cycle.
237 243
238Additional Configurations 244Additional Configurations
239========================= 245=========================
@@ -259,32 +265,30 @@ Additional Configurations
259 - Some adapters limit Jumbo Frames sized packets to a maximum of 265 - Some adapters limit Jumbo Frames sized packets to a maximum of
260 4096 bytes and some adapters do not support Jumbo Frames. 266 4096 bytes and some adapters do not support Jumbo Frames.
261 267
262
263 Ethtool 268 Ethtool
264 ------- 269 -------
265 The driver utilizes the ethtool interface for driver configuration and 270 The driver utilizes the ethtool interface for driver configuration and
266 diagnostics, as well as displaying statistical information. We 271 diagnostics, as well as displaying statistical information. We
267 strongly recommend downloading the latest version of Ethtool at: 272 strongly recommend downloading the latest version of ethtool at:
268 273
269 http://sourceforge.net/projects/gkernel. 274 http://ftp.kernel.org/pub/software/network/ethtool/
270 275
271 Speed and Duplex 276 Speed and Duplex
272 ---------------- 277 ----------------
273 Speed and Duplex are configured through the Ethtool* utility. For 278 Speed and Duplex are configured through the ethtool* utility. For
274 instructions, refer to the Ethtool man page. 279 instructions, refer to the ethtool man page.
275 280
276 Enabling Wake on LAN* (WoL) 281 Enabling Wake on LAN* (WoL)
277 --------------------------- 282 ---------------------------
278 WoL is configured through the Ethtool* utility. For instructions on 283 WoL is configured through the ethtool* utility. For instructions on
279 enabling WoL with Ethtool, refer to the Ethtool man page. 284 enabling WoL with ethtool, refer to the ethtool man page.
280 285
281 WoL will be enabled on the system during the next shut down or reboot. 286 WoL will be enabled on the system during the next shut down or reboot.
282 For this driver version, in order to enable WoL, the e1000e driver must be 287 For this driver version, in order to enable WoL, the e1000e driver must be
283 loaded when shutting down or rebooting the system. 288 loaded when shutting down or rebooting the system.
284 289
285 In most cases Wake On LAN is only supported on port A for multiple port 290 In most cases Wake On LAN is only supported on port A for multiple port
286 adapters. To verify if a port supports Wake on LAN run ethtool eth<X>. 291 adapters. To verify if a port supports Wake on Lan run ethtool eth<X>.
287
288 292
289Support 293Support
290======= 294=======
diff --git a/Documentation/networking/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 @@
1A wiki document on how to use Generic Netlink can be found here: 1A 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
9of IEEE 802.15.4 / ZigBee / 6LoWPAN protocols. IEEE 802.15.4 is a stack 9of IEEE 802.15.4 / ZigBee / 6LoWPAN protocols. IEEE 802.15.4 is a stack
10of protocols for organizing Low-Rate Wireless Personal Area Networks. 10of protocols for organizing Low-Rate Wireless Personal Area Networks.
11 11
12Currently only IEEE 802.15.4 layer is implemented. We have choosen 12Currently only IEEE 802.15.4 layer is implemented. We have chosen
13to use plain Berkeley socket API, the generic Linux networking stack 13to use plain Berkeley socket API, the generic Linux networking stack
14to transfer IEEE 802.15.4 messages and a special protocol over genetlink 14to transfer IEEE 802.15.4 messages and a special protocol over genetlink
15for configuration/management 15for 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
36This parameter adds support for SR-IOV. It causes the driver to spawn up to 36This parameter adds support for SR-IOV. It causes the driver to spawn up to
37max_vfs worth of virtual function. 37max_vfs worth of virtual function.
38 38
39
39Additional Configurations 40Additional Configurations
40========================= 41=========================
41 42
@@ -60,15 +61,16 @@ Additional Configurations
60 Ethtool 61 Ethtool
61 ------- 62 -------
62 The driver utilizes the ethtool interface for driver configuration and 63 The driver utilizes the ethtool interface for driver configuration and
63 diagnostics, as well as displaying statistical information. 64 diagnostics, as well as displaying statistical information. The latest
65 version of ethtool can be found at:
64 66
65 http://sourceforge.net/projects/gkernel. 67 http://ftp.kernel.org/pub/software/network/ethtool/
66 68
67 Enabling Wake on LAN* (WoL) 69 Enabling Wake on LAN* (WoL)
68 --------------------------- 70 ---------------------------
69 WoL is configured through the Ethtool* utility. 71 WoL is configured through the ethtool* utility.
70 72
71 For instructions on enabling WoL with Ethtool, refer to the Ethtool man page. 73 For instructions on enabling WoL with ethtool, refer to the ethtool man page.
72 74
73 WoL will be enabled on the system during the next shut down or reboot. 75 WoL will be enabled on the system during the next shut down or reboot.
74 For this driver version, in order to enable WoL, the igb driver must be 76 For this driver version, in order to enable WoL, the igb driver must be
@@ -91,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
119Support 109Support
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
65Support 67Support
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
13ip_default_ttl - INTEGER 13ip_default_ttl - INTEGER
14 default 64 14 Default value of TTL field (Time To Live) for outgoing (but not
15 forwarded) IP packets. Should be between 1 and 255 inclusive.
16 Default: 64 (as recommended by RFC1700)
15 17
16ip_no_pmtu_disc - BOOLEAN 18ip_no_pmtu_disc - BOOLEAN
17 Disable Path MTU Discovery. 19 Disable Path MTU Discovery.
@@ -20,6 +22,15 @@ ip_no_pmtu_disc - BOOLEAN
20min_pmtu - INTEGER 22min_pmtu - INTEGER
21 default 562 - minimum discovered Path MTU 23 default 562 - minimum discovered Path MTU
22 24
25route/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
29neigh/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
23mtu_expires - INTEGER 34mtu_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
140tcp_allowed_congestion_control - STRING 152tcp_allowed_congestion_control - STRING
@@ -175,7 +187,7 @@ tcp_cookie_size - INTEGER
175tcp_dsack - BOOLEAN 187tcp_dsack - BOOLEAN
176 Allows TCP to send "duplicate" SACKs. 188 Allows TCP to send "duplicate" SACKs.
177 189
178tcp_ecn - BOOLEAN 190tcp_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
283tcp_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
271tcp_max_syn_backlog - INTEGER 294tcp_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
701conf/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
703conf/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
706log_martians - BOOLEAN 747log_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/*:
1014accept_ra - BOOLEAN 1055accept_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
1101hop_limit - INTEGER 1159hop_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 @@
1Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection 1Linux Base Driver for 10 Gigabit PCI Express Intel(R) Network Connection
2======================================================================== 2========================================================================
3 3
4March 10, 2009 4Intel Gigabit Linux driver.
5 5Copyright(c) 1999 - 2010 Intel Corporation.
6 6
7Contents 7Contents
8======== 8========
9 9
10- In This Release
11- Identifying Your Adapter 10- Identifying Your Adapter
12- Building and Installation
13- Additional Configurations 11- Additional Configurations
12- Performance Tuning
13- Known Issues
14- Support 14- Support
15 15
16Identifying Your Adapter
17========================
16 18
19The driver in this release is compatible with 82598 and 82599-based Intel
20Network Connections.
17 21
18In This Release 22For more information on how to identify your adapter, go to the Adapter &
19=============== 23Driver ID Guide at:
20 24
21This file describes the ixgbe Linux Base Driver for the 10 Gigabit PCI 25 http://support.intel.com/support/network/sb/CS-012904.htm
22Express Intel(R) Network Connection. This driver includes support for
23Itanium(R)2-based systems.
24 26
25For questions related to hardware requirements, refer to the documentation 27SFP+ Devices with Pluggable Optics
26supplied with your 10 Gigabit adapter. All hardware requirements listed apply 28----------------------------------
27to use with Linux.
28 29
29The following features are available in this kernel: 3082599-BASED ADAPTERS
30 - Native VLANs
31 - Channel Bonding (teaming)
32 - SNMP
33 - Generic Receive Offload
34 - Data Center Bridging
35 31
36Channel Bonding documentation can be found in the Linux kernel source: 32NOTES: If your 82599-based Intel(R) Network Adapter came with Intel optics, or
37/Documentation/networking/bonding.txt 33is an Intel(R) Ethernet Server Adapter X520-2, then it only supports Intel
34optics and/or the direct attach cables listed below.
38 35
39Ethtool, lspci, and ifconfig can be used to display device and driver 36When 82599-based SFP+ devices are connected back to back, they should be set to
40specific information. 37the same Speed setting via ethtool. Results may vary if you mix speed settings.
3882598-based adapters support all passive direct attach cables that comply
39with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach
40cables are not supported.
41 41
42Supplier Type Part Numbers
42 43
43Identifying Your Adapter 44SR Modules
44======================== 45Intel DUAL RATE 1G/10G SFP+ SR (bailed) FTLX8571D3BCV-IT
46Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDDZ-IN1
47Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDZ-IN2
48LR Modules
49Intel DUAL RATE 1G/10G SFP+ LR (bailed) FTLX1471D3BCV-IT
50Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDDZ-IN1
51Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDZ-IN2
45 52
46This driver supports devices based on the 82598 controller and the 82599 53The following is a list of 3rd party SFP+ modules and direct attach cables that
47controller. 54have received some testing. Not all modules are applicable to all devices.
48 55
49For specific information on identifying which adapter you have, please visit: 56Supplier Type Part Numbers
50 57
51 http://support.intel.com/support/network/sb/CS-008441.htm 58Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL
59Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ
60Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL
52 61
62Finisar DUAL RATE 1G/10G SFP+ SR (No Bail) FTLX8571D3QCV-IT
63Avago DUAL RATE 1G/10G SFP+ SR (No Bail) AFBR-703SDZ-IN1
64Finisar DUAL RATE 1G/10G SFP+ LR (No Bail) FTLX1471D3QCV-IT
65Avago DUAL RATE 1G/10G SFP+ LR (No Bail) AFCT-701SDZ-IN1
66Finistar 1000BASE-T SFP FCLF8522P2BTL
67Avago 1000BASE-T SFP ABCU-5710RZ
53 68
54Building and Installation 6982599-based adapters support all passive and active limiting direct attach
55========================= 70cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications.
56 71
57select m for "Intel(R) 10GbE PCI Express adapters support" located at: 72Laser turns off for SFP+ when ifconfig down
58 Location: 73-------------------------------------------
59 -> Device Drivers 74"ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters.
60 -> Network device support (NETDEVICES [=y]) 75"ifconfig up" turns on the later.
61 -> Ethernet (10000 Mbit) (NETDEV_10000 [=y])
62 76
631. make modules & make modules_install
64 77
652. Load the module: 7882598-BASED ADAPTERS
66 79
67# modprobe ixgbe 80NOTES for 82598-Based Adapters:
81- Intel(R) Network Adapters that support removable optical modules only support
82 their original module type (i.e., the Intel(R) 10 Gigabit SR Dual Port
83 Express Module only supports SR optical modules). If you plug in a different
84 type of module, the driver will not load.
85- Hot Swapping/hot plugging optical modules is not supported.
86- Only single speed, 10 gigabit modules are supported.
87- LAN on Motherboard (LOMs) may support DA, SR, or LR modules. Other module
88 types are not supported. Please see your system documentation for details.
68 89
69 The insmod command can be used if the full 90The following is a list of 3rd party SFP+ modules and direct attach cables that
70 path to the driver module is specified. For example: 91have received some testing. Not all modules are applicable to all devices.
71 92
72 insmod /lib/modules/<KERNEL VERSION>/kernel/drivers/net/ixgbe/ixgbe.ko 93Supplier Type Part Numbers
73 94
74 With 2.6 based kernels also make sure that older ixgbe drivers are 95Finisar SFP+ SR bailed, 10g single rate FTLX8571D3BCL
75 removed from the kernel, before loading the new module: 96Avago SFP+ SR bailed, 10g single rate AFBR-700SDZ
97Finisar SFP+ LR bailed, 10g single rate FTLX1471D3BCL
76 98
77 rmmod ixgbe; modprobe ixgbe 9982598-based adapters support all passive direct attach cables that comply
100with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach
101cables are not supported.
78 102
793. Assign an IP address to the interface by entering the following, where
80 x is the interface number:
81 103
82 ifconfig ethx <IP_address> 104Flow Control
105------------
106Ethernet Flow Control (IEEE 802.3x) can be configured with ethtool to enable
107receiving and transmitting pause frames for ixgbe. When TX is enabled, PAUSE
108frames are generated when the receive packet buffer crosses a predefined
109threshold. When rx is enabled, the transmit unit will halt for the time delay
110specified when a PAUSE frame is received.
83 111
844. Verify that the interface works. Enter the following, where <IP_address> 112Flow Control is enabled by default. If you want to disable a flow control
85 is the IP address for another machine on the same subnet as the interface 113capable link partner, use ethtool:
86 that is being tested:
87 114
88 ping <IP_address> 115 ethtool -A eth? autoneg off RX off TX off
89 116
117NOTE: For 82598 backplane cards entering 1 gig mode, flow control default
118behavior is changed to off. Flow control in 1 gig mode on these devices can
119lead to Tx hangs.
90 120
91Additional Configurations 121Additional Configurations
92========================= 122=========================
93 123
94 Viewing Link Messages
95 ---------------------
96 Link messages will not be displayed to the console if the distribution is
97 restricting system messages. In order to see network driver link messages on
98 your console, set dmesg to eight by entering the following:
99
100 dmesg -n 8
101
102 NOTE: This setting is not saved across reboots.
103
104
105 Jumbo Frames 124 Jumbo Frames
106 ------------ 125 ------------
107 The driver supports Jumbo Frames for all adapters. Jumbo Frames support is 126 The driver supports Jumbo Frames for all adapters. Jumbo Frames support is
@@ -123,13 +142,8 @@ Additional Configurations
123 other protocols besides TCP. It's also safe to use with configurations that 142 other protocols besides TCP. It's also safe to use with configurations that
124 are problematic for LRO, namely bridging and iSCSI. 143 are problematic for LRO, namely bridging and iSCSI.
125 144
126 GRO is enabled by default in the driver. Future versions of ethtool will
127 support disabling and re-enabling GRO on the fly.
128
129
130 Data Center Bridging, aka DCB 145 Data Center Bridging, aka DCB
131 ----------------------------- 146 -----------------------------
132
133 DCB is a configuration Quality of Service implementation in hardware. 147 DCB is a configuration Quality of Service implementation in hardware.
134 It uses the VLAN priority tag (802.1p) to filter traffic. That means 148 It uses the VLAN priority tag (802.1p) to filter traffic. That means
135 that there are 8 different priorities that traffic can be filtered into. 149 that there are 8 different priorities that traffic can be filtered into.
@@ -163,24 +177,71 @@ Additional Configurations
163 177
164 http://e1000.sf.net 178 http://e1000.sf.net
165 179
166
167 Ethtool 180 Ethtool
168 ------- 181 -------
169 The driver utilizes the ethtool interface for driver configuration and 182 The driver utilizes the ethtool interface for driver configuration and
170 diagnostics, as well as displaying statistical information. Ethtool 183 diagnostics, as well as displaying statistical information. The latest
171 version 3.0 or later is required for this functionality. 184 ethtool version is required for this functionality.
172 185
173 The latest release of ethtool can be found from 186 The latest release of ethtool can be found from
174 http://sourceforge.net/projects/gkernel. 187 http://ftp.kernel.org/pub/software/network/ethtool/
175 188
176 189 FCoE
177 NAPI
178 ---- 190 ----
191 This release of the ixgbe driver contains new code to enable users to use
192 Fiber Channel over Ethernet (FCoE) and Data Center Bridging (DCB)
193 functionality that is supported by the 82598-based hardware. This code has
194 no default effect on the regular driver operation, and configuring DCB and
195 FCoE is outside the scope of this driver README. Refer to
196 http://www.open-fcoe.org/ for FCoE project information and contact
197 e1000-eedc@lists.sourceforge.net for DCB information.
198
199 MAC and VLAN anti-spoofing feature
200 ----------------------------------
201 When a malicious driver attempts to send a spoofed packet, it is dropped by
202 the hardware and not transmitted. An interrupt is sent to the PF driver
203 notifying it of the spoof attempt.
204
205 When a spoofed packet is detected the PF driver will send the following
206 message to the system log (displayed by the "dmesg" command):
207
208 Spoof event(s) detected on VF (n)
209
210 Where n=the VF that attempted to do the spoofing.
211
212
213Performance Tuning
214==================
215
216An excellent article on performance tuning can be found at:
217
218http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf
219
220
221Known Issues
222============
223
224 Enabling SR-IOV in a 32-bit Microsoft* Windows* Server 2008 Guest OS using
225 Intel (R) 82576-based GbE or Intel (R) 82599-based 10GbE controller under KVM
226 -----------------------------------------------------------------------------
227 KVM Hypervisor/VMM supports direct assignment of a PCIe device to a VM. This
228 includes traditional PCIe devices, as well as SR-IOV-capable devices using
229 Intel 82576-based and 82599-based controllers.
230
231 While direct assignment of a PCIe device or an SR-IOV Virtual Function (VF)
232 to a Linux-based VM running 2.6.32 or later kernel works fine, there is a
233 known issue with Microsoft Windows Server 2008 VM that results in a "yellow
234 bang" error. This problem is within the KVM VMM itself, not the Intel driver,
235 or the SR-IOV logic of the VMM, but rather that KVM emulates an older CPU
236 model for the guests, and this older CPU model does not support MSI-X
237 interrupts, which is a requirement for Intel SR-IOV.
179 238
180 NAPI (Rx polling mode) is supported in the ixgbe driver. NAPI is enabled 239 If you wish to use the Intel 82576 or 82599-based controllers in SR-IOV mode
181 by default in the driver. 240 with KVM and a Microsoft Windows Server 2008 guest try the following
241 workaround. The workaround is to tell KVM to emulate a different model of CPU
242 when using qemu to create the KVM guest:
182 243
183 See www.cyberus.ca/~hadi/usenix-paper.tgz for more information on NAPI. 244 "-cpu qemu64,model=13"
184 245
185 246
186Support 247Support
diff --git a/Documentation/networking/ixgbevf.txt b/Documentation/networking/ixgbevf.txt
index 21dd5d15b6b4..5a91a41fa946 100644
--- a/Documentation/networking/ixgbevf.txt
+++ b/Documentation/networking/ixgbevf.txt
@@ -35,10 +35,6 @@ Driver ID Guide at:
35Known Issues/Troubleshooting 35Known Issues/Troubleshooting
36============================ 36============================
37 37
38 Unloading Physical Function (PF) Driver Causes System Reboots When VM is
39 Running and VF is Loaded on the VM
40 ------------------------------------------------------------------------
41 Do not unload the PF driver (ixgbe) while VFs are assigned to guests.
42 38
43Support 39Support
44======= 40=======
diff --git a/Documentation/networking/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
66Variable MTU size: 66Variable MTU size:
67 67
68The driver can handle a MTU size upto either 4500 or 18000 depending upon 68The driver can handle a MTU size up to either 4500 or 18000 depending upon
69ring speed. The driver also changes the size of the receive buffers as part 69ring speed. The driver also changes the size of the receive buffers as part
70of the mtu re-sizing, so if you set mtu = 18000, you will need to be able 70of the mtu re-sizing, so if you set mtu = 18000, you will need to be able
71to allocate 16 * (sk_buff with 18000 buffer size) call it 18500 bytes per ring 71to 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
224A frame can be of any size with the only condition it can fit in a block. A block 224A frame can be of any size with the only condition it can fit in a block. A block
225can only hold an integer number of frames, or in other words, a frame cannot 225can only hold an integer number of frames, or in other words, a frame cannot
226be spawned accross two blocks, so there are some details you have to take into 226be spawned across two blocks, so there are some details you have to take into
227account when choosing the frame_size. See "Mapping and use of the circular 227account when choosing the frame_size. See "Mapping and use of the circular
228buffer (ring)". 228buffer (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
112not seem useful with Phonet usages (could be added easily). 112not seem useful with Phonet usages (could be added easily).
113 113
114 114
115Resource subscription
116---------------------
117
118A Phonet datagram socket can be subscribed to any number of 8-bits
119Phonet resources, as follow:
120
121 uint32_t res = 0xXX;
122 ioctl(fd, SIOCPNADDRESOURCE, &res);
123
124Subscription is similarly cancelled using the SIOCPNDELRESOURCE I/O
125control request, or when the socket is closed.
126
127Note that no more than one socket can be subcribed to any given
128resource at a time. If not, ioctl() will return EBUSY.
129
130
115Phonet Pipe protocol 131Phonet 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
141Connections are established between two endpoints by a "third party" 157Connections are traditionally established between two endpoints by a
142application. This means that both endpoints are passive; so connect() 158"third party" application. This means that both endpoints are passive.
143is not possible. 159
160
161As of Linux kernel version 2.6.39, it is also possible to connect
162two endpoints directly, using connect() on the active side. This is
163intended to support the newer Nokia Wireless Modem API, as found in
164e.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
145WARNING: 180WARNING:
146When polling a connected pipe socket for writability, there is an 181When 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
169Authors 208Authors
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>".
37The corresponding adapter's LED will blink multiple times. 37The corresponding adapter's LED will blink multiple times.
38 38
393. Features supported: 393. Features supported:
40a. Jumbo frames. Xframe I/II supports MTU upto 9600 bytes, 40a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes,
41modifiable using ifconfig command. 41modifiable using ifconfig command.
42 42
43b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit 43b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit
@@ -49,7 +49,7 @@ significant performance improvement on certain platforms(SGI Altix,
49IBM xSeries). 49IBM xSeries).
50 50
51d. MSI/MSI-X. Can be enabled on platforms which support this feature 51d. 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%
53on certain platforms). 53on certain platforms).
54 54
55e. Statistics. Comprehensive MAC-level and software statistics displayed 55e. 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
9Currently this network device driver is for all STM embedded MAC/GMAC 9Currently this network device driver is for all STM embedded MAC/GMAC
10(7xxx SoCs). 10(7xxx SoCs). Other platforms start using it i.e. ARM SPEAr.
11 11
12DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/100 12DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/100
13Universal version 4.0 have been used for developing the first code 13Universal version 4.0 have been used for developing the first code
@@ -95,9 +95,14 @@ Several information came from the platform; please refer to the
95driver's Header file in include/linux directory. 95driver's Header file in include/linux directory.
96 96
97struct plat_stmmacenet_data { 97struct plat_stmmacenet_data {
98 int bus_id; 98 int bus_id;
99 int pbl; 99 int pbl;
100 int has_gmac; 100 int clk_csr;
101 int has_gmac;
102 int enh_desc;
103 int tx_coe;
104 int bugged_jumbo;
105 int pmt;
101 void (*fix_mac_speed)(void *priv, unsigned int speed); 106 void (*fix_mac_speed)(void *priv, unsigned int speed);
102 void (*bus_setup)(unsigned long ioaddr); 107 void (*bus_setup)(unsigned long ioaddr);
103#ifdef CONFIG_STM_DRIVERS 108#ifdef CONFIG_STM_DRIVERS
@@ -114,6 +119,12 @@ Where:
114 registers (on STM platforms); 119 registers (on STM platforms);
115- has_gmac: GMAC core is on board (get it at run-time in the next step); 120- has_gmac: GMAC core is on board (get it at run-time in the next step);
116- bus_id: bus identifier. 121- bus_id: bus identifier.
122- tx_coe: core is able to perform the tx csum in HW.
123- enh_desc: if sets the MAC will use the enhanced descriptor structure.
124- clk_csr: CSR Clock range selection.
125- bugged_jumbo: some HWs are not able to perform the csum in HW for
126 over-sized frames due to limited buffer sizes. Setting this
127 flag the csum will be done in SW on JUMBO frames.
117 128
118struct plat_stmmacphy_data { 129struct plat_stmmacphy_data {
119 int bus_id; 130 int bus_id;
@@ -131,13 +142,28 @@ Where:
131- interface: physical MII interface mode; 142- interface: physical MII interface mode;
132- phy_reset: hook to reset HW function. 143- phy_reset: hook to reset HW function.
133 144
145SOURCES:
146- Kconfig
147- Makefile
148- stmmac_main.c: main network device driver;
149- stmmac_mdio.c: mdio functions;
150- stmmac_ethtool.c: ethtool support;
151- stmmac_timer.[ch]: timer code used for mitigating the driver dma interrupts
152 Only tested on ST40 platforms based.
153- stmmac.h: private driver structure;
154- common.h: common definitions and VFTs;
155- descs.h: descriptor structure definitions;
156- dwmac1000_core.c: GMAC core functions;
157- dwmac1000_dma.c: dma functions for the GMAC chip;
158- dwmac1000.h: specific header file for the GMAC;
159- dwmac100_core: MAC 100 core and dma code;
160- dwmac100_dma.c: dma funtions for the MAC chip;
161- dwmac1000.h: specific header file for the MAC;
162- dwmac_lib.c: generic DMA functions shared among chips
163- enh_desc.c: functions for handling enhanced descriptors
164- norm_desc.c: functions for handling normal descriptors
165
134TODO: 166TODO:
135- Continue to make the driver more generic and suitable for other Synopsys 167- XGMAC controller is not supported.
136 Ethernet controllers used on other architectures (i.e. ARM).
137- 10G controllers are not supported.
138- MAC uses Normal descriptors and GMAC uses enhanced ones.
139 This is a limit that should be reviewed. MAC could want to
140 use the enhanced structure.
141- Checksumming: Rx/Tx csum is done in HW in case of GMAC only.
142- Review the timer optimisation code to use an embedded device that seems to be 168- Review the timer optimisation code to use an embedded device that seems to be
143 available in new chip generations. 169 available in new chip generations.
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
2The "enviromental" rules for authors of any new tc actions are: 2The "environmental" rules for authors of any new tc actions are:
3 3
41) If you stealeth or borroweth any packet thou shalt be branching 41) If you stealeth or borroweth any packet thou shalt be branching
5from the righteous path and thou shalt cloneth. 5from the righteous path and thou shalt cloneth.
@@ -20,7 +20,7 @@ this way any action downstream can stomp on the packet.
203) Dropping packets you don't own is a no-no. You simply return 203) Dropping packets you don't own is a no-no. You simply return
21TC_ACT_SHOT to the caller and they will drop it. 21TC_ACT_SHOT to the caller and they will drop it.
22 22
23The "enviromental" rules for callers of actions (qdiscs etc) are: 23The "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
26TC_ACT_SHOT/STOLEN/QUEUED. If none of TC_ACT_SHOT/STOLEN/QUEUED is 26TC_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
174Time stamps for outgoing packets are to be generated as follows: 174Time 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.