Commit 4b4976a6 authored by David S. Miller's avatar David S. Miller

Merge branch 'net-ReST-part-three'

Mauro Carvalho Chehab says:

====================
net: manually convert files to ReST format - part 3 (final)

That's the third part (and the final one) of my work to convert the networking
text files into ReST. it is based on linux-next next-20200430 branch.

The full series (including those ones) are at:

	https://git.linuxtv.org/mchehab/experimental.git/log/?h=net-docs

The  built output documents, on html format is at:

	https://www.infradead.org/~mchehab/kernel_docs/networking/
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents ef891284 30cbf2dd
...@@ -1296,8 +1296,8 @@ DIP Switches: ...@@ -1296,8 +1296,8 @@ DIP Switches:
11111 0xC400 (guessed - crashes tested system) 11111 0xC400 (guessed - crashes tested system)
============= ============================================ ============= ============================================
CNet Technology Inc. CNet Technology Inc. (8-bit cards)
==================== ==================================
120 Series (8-bit cards) 120 Series (8-bit cards)
------------------------ ------------------------
...@@ -1520,8 +1520,8 @@ The jumpers labeled EXT1 and EXT2 are used to determine the timeout ...@@ -1520,8 +1520,8 @@ The jumpers labeled EXT1 and EXT2 are used to determine the timeout
parameters. These two jumpers are normally left open. parameters. These two jumpers are normally left open.
CNet Technology Inc. CNet Technology Inc. (16-bit cards)
==================== ===================================
160 Series (16-bit cards) 160 Series (16-bit cards)
------------------------- -------------------------
......
.. SPDX-License-Identifier: GPL-2.0
=====================
DM9000 Network driver DM9000 Network driver
===================== =====================
Copyright 2008 Simtec Electronics, Copyright 2008 Simtec Electronics,
Ben Dooks <ben@simtec.co.uk> <ben-linux@fluff.org> Ben Dooks <ben@simtec.co.uk> <ben-linux@fluff.org>
...@@ -30,9 +34,9 @@ These resources should be specified in that order, as the ordering of the ...@@ -30,9 +34,9 @@ These resources should be specified in that order, as the ordering of the
two address regions is important (the driver expects these to be address two address regions is important (the driver expects these to be address
and then data). and then data).
An example from arch/arm/mach-s3c2410/mach-bast.c is: An example from arch/arm/mach-s3c2410/mach-bast.c is::
static struct resource bast_dm9k_resource[] = { static struct resource bast_dm9k_resource[] = {
[0] = { [0] = {
.start = S3C2410_CS5 + BAST_PA_DM9000, .start = S3C2410_CS5 + BAST_PA_DM9000,
.end = S3C2410_CS5 + BAST_PA_DM9000 + 3, .end = S3C2410_CS5 + BAST_PA_DM9000 + 3,
...@@ -48,14 +52,14 @@ static struct resource bast_dm9k_resource[] = { ...@@ -48,14 +52,14 @@ static struct resource bast_dm9k_resource[] = {
.end = IRQ_DM9000, .end = IRQ_DM9000,
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
} }
}; };
static struct platform_device bast_device_dm9k = { static struct platform_device bast_device_dm9k = {
.name = "dm9000", .name = "dm9000",
.id = 0, .id = 0,
.num_resources = ARRAY_SIZE(bast_dm9k_resource), .num_resources = ARRAY_SIZE(bast_dm9k_resource),
.resource = bast_dm9k_resource, .resource = bast_dm9k_resource,
}; };
Note the setting of the IRQ trigger flag in bast_dm9k_resource[2].flags, Note the setting of the IRQ trigger flag in bast_dm9k_resource[2].flags,
as this will generate a warning if it is not present. The trigger from as this will generate a warning if it is not present. The trigger from
...@@ -64,13 +68,13 @@ handler to ensure that the IRQ is setup correctly. ...@@ -64,13 +68,13 @@ handler to ensure that the IRQ is setup correctly.
This shows a typical platform device, without the optional configuration This shows a typical platform device, without the optional configuration
platform data supplied. The next example uses the same resources, but adds platform data supplied. The next example uses the same resources, but adds
the optional platform data to pass extra configuration data: the optional platform data to pass extra configuration data::
static struct dm9000_plat_data bast_dm9k_platdata = { static struct dm9000_plat_data bast_dm9k_platdata = {
.flags = DM9000_PLATF_16BITONLY, .flags = DM9000_PLATF_16BITONLY,
}; };
static struct platform_device bast_device_dm9k = { static struct platform_device bast_device_dm9k = {
.name = "dm9000", .name = "dm9000",
.id = 0, .id = 0,
.num_resources = ARRAY_SIZE(bast_dm9k_resource), .num_resources = ARRAY_SIZE(bast_dm9k_resource),
...@@ -78,7 +82,7 @@ static struct platform_device bast_device_dm9k = { ...@@ -78,7 +82,7 @@ static struct platform_device bast_device_dm9k = {
.dev = { .dev = {
.platform_data = &bast_dm9k_platdata, .platform_data = &bast_dm9k_platdata,
} }
}; };
The platform data is defined in include/linux/dm9000.h and described below. The platform data is defined in include/linux/dm9000.h and described below.
......
.. SPDX-License-Identifier: GPL-2.0
===================================
DEC EtherWORKS Ethernet De4x5 cards
===================================
Originally, this driver was written for the Digital Equipment Originally, this driver was written for the Digital Equipment
Corporation series of EtherWORKS Ethernet cards: Corporation series of EtherWORKS Ethernet cards:
DE425 TP/COAX EISA - DE425 TP/COAX EISA
DE434 TP PCI - DE434 TP PCI
DE435 TP/COAX/AUI PCI - DE435 TP/COAX/AUI PCI
DE450 TP/COAX/AUI PCI - DE450 TP/COAX/AUI PCI
DE500 10/100 PCI Fasternet - DE500 10/100 PCI Fasternet
but it will now attempt to support all cards which conform to the but it will now attempt to support all cards which conform to the
Digital Semiconductor SROM Specification. The driver currently Digital Semiconductor SROM Specification. The driver currently
recognises the following chips: recognises the following chips:
DC21040 (no SROM) - DC21040 (no SROM)
DC21041[A] - DC21041[A]
DC21140[A] - DC21140[A]
DC21142 - DC21142
DC21143 - DC21143
So far the driver is known to work with the following cards: So far the driver is known to work with the following cards:
KINGSTON - KINGSTON
Linksys - Linksys
ZNYX342 - ZNYX342
SMC8432 - SMC8432
SMC9332 (w/new SROM) - SMC9332 (w/new SROM)
ZNYX31[45] - ZNYX31[45]
ZNYX346 10/100 4 port (can act as a 10/100 bridge!) - ZNYX346 10/100 4 port (can act as a 10/100 bridge!)
The driver has been tested on a relatively busy network using the DE425, The driver has been tested on a relatively busy network using the DE425,
DE434, DE435 and DE500 cards and benchmarked with 'ttcp': it transferred DE434, DE435 and DE500 cards and benchmarked with 'ttcp': it transferred
16M of data to a DECstation 5000/200 as follows: 16M of data to a DECstation 5000/200 as follows::
TCP UDP TCP UDP
TX RX TX RX TX RX TX RX
DE425 1030k 997k 1170k 1128k DE425 1030k 997k 1170k 1128k
DE434 1063k 995k 1170k 1125k DE434 1063k 995k 1170k 1125k
DE435 1063k 995k 1170k 1125k DE435 1063k 995k 1170k 1125k
DE500 1063k 998k 1170k 1125k in 10Mb/s mode DE500 1063k 998k 1170k 1125k in 10Mb/s mode
All values are typical (in kBytes/sec) from a sample of 4 for each All values are typical (in kBytes/sec) from a sample of 4 for each
measurement. Their error is +/-20k on a quiet (private) network and also measurement. Their error is +/-20k on a quiet (private) network and also
depend on what load the CPU has. depend on what load the CPU has.
========================================================================= ----------------------------------------------------------------------------
The ability to load this driver as a loadable module has been included The ability to load this driver as a loadable module has been included
and used extensively during the driver development (to save those long and used extensively during the driver development (to save those long
...@@ -55,31 +61,33 @@ ...@@ -55,31 +61,33 @@
0) have a copy of the loadable modules code installed on your system. 0) have a copy of the loadable modules code installed on your system.
1) copy de4x5.c from the /linux/drivers/net directory to your favourite 1) copy de4x5.c from the /linux/drivers/net directory to your favourite
temporary directory. temporary directory.
2) for fixed autoprobes (not recommended), edit the source code near 2) for fixed autoprobes (not recommended), edit the source code near
line 5594 to reflect the I/O address you're using, or assign these when line 5594 to reflect the I/O address you're using, or assign these when
loading by: loading by::
insmod de4x5 io=0xghh where g = bus number insmod de4x5 io=0xghh where g = bus number
hh = device number hh = device number
NB: autoprobing for modules is now supported by default. You may just .. note::
use:
insmod de4x5 autoprobing for modules is now supported by default. You may just
use::
to load all available boards. For a specific board, still use insmod de4x5
to load all available boards. For a specific board, still use
the 'io=?' above. the 'io=?' above.
3) compile de4x5.c, but include -DMODULE in the command line to ensure 3) compile de4x5.c, but include -DMODULE in the command line to ensure
that the correct bits are compiled (see end of source code). that the correct bits are compiled (see end of source code).
4) if you are wanting to add a new card, goto 5. Otherwise, recompile a 4) if you are wanting to add a new card, goto 5. Otherwise, recompile a
kernel with the de4x5 configuration turned off and reboot. kernel with the de4x5 configuration turned off and reboot.
5) insmod de4x5 [io=0xghh] 5) insmod de4x5 [io=0xghh]
6) run the net startup bits for your new eth?? interface(s) manually 6) run the net startup bits for your new eth?? interface(s) manually
(usually /etc/rc.inet[12] at boot time). (usually /etc/rc.inet[12] at boot time).
7) enjoy! 7) enjoy!
To unload a module, turn off the associated interface(s) To unload a module, turn off the associated interface(s)
'ifconfig eth?? down' then 'rmmod de4x5'. 'ifconfig eth?? down' then 'rmmod de4x5'.
Automedia detection is included so that in principle you can disconnect Automedia detection is included so that in principle you can disconnect
...@@ -90,7 +98,7 @@ ...@@ -90,7 +98,7 @@
By default, the driver will now autodetect any DECchip based card. By default, the driver will now autodetect any DECchip based card.
Should you have a need to restrict the driver to DIGITAL only cards, you Should you have a need to restrict the driver to DIGITAL only cards, you
can compile with a DEC_ONLY define, or if loading as a module, use the can compile with a DEC_ONLY define, or if loading as a module, use the
'dec_only=1' parameter. 'dec_only=1' parameter.
I've changed the timing routines to use the kernel timer and scheduling I've changed the timing routines to use the kernel timer and scheduling
functions so that the hangs and other assorted problems that occurred functions so that the hangs and other assorted problems that occurred
...@@ -158,18 +166,21 @@ ...@@ -158,18 +166,21 @@
either at the end of the parameter list or with another board name. The either at the end of the parameter list or with another board name. The
following parameters are allowed: following parameters are allowed:
fdx for full duplex ========= ===============================================
autosense to set the media/speed; with the following fdx for full duplex
sub-parameters: autosense to set the media/speed; with the following
sub-parameters:
TP, TP_NW, BNC, AUI, BNC_AUI, 100Mb, 10Mb, AUTO TP, TP_NW, BNC, AUI, BNC_AUI, 100Mb, 10Mb, AUTO
========= ===============================================
Case sensitivity is important for the sub-parameters. They *must* be Case sensitivity is important for the sub-parameters. They *must* be
upper case. Examples: upper case. Examples::
insmod de4x5 args='eth1:fdx autosense=BNC eth0:autosense=100Mb'.
insmod de4x5 args='eth1:fdx autosense=BNC eth0:autosense=100Mb'. For a compiled in driver, in linux/drivers/net/CONFIG, place e.g.::
For a compiled in driver, in linux/drivers/net/CONFIG, place e.g. DE4X5_OPTS = -DDE4X5_PARM='"eth0:fdx autosense=AUI eth2:autosense=TP"'
DE4X5_OPTS = -DDE4X5_PARM='"eth0:fdx autosense=AUI eth2:autosense=TP"'
Yes, I know full duplex isn't permissible on BNC or AUI; they're just Yes, I know full duplex isn't permissible on BNC or AUI; they're just
examples. By default, full duplex is turned off and AUTO is the default examples. By default, full duplex is turned off and AUTO is the default
......
.. SPDX-License-Identifier: GPL-2.0
==============================================================
Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver for Linux
==============================================================
Note: This driver doesn't have a maintainer. Note: This driver doesn't have a maintainer.
Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver for Linux.
This program is free software; you can redistribute it and/or This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License modify it under the terms of the GNU General Public License
...@@ -16,29 +21,29 @@ GNU General Public License for more details. ...@@ -16,29 +21,29 @@ GNU General Public License for more details.
This driver provides kernel support for Davicom DM9102(A)/DM9132/DM9801 ethernet cards ( CNET This driver provides kernel support for Davicom DM9102(A)/DM9132/DM9801 ethernet cards ( CNET
10/100 ethernet cards uses Davicom chipset too, so this driver supports CNET cards too ).If you 10/100 ethernet cards uses Davicom chipset too, so this driver supports CNET cards too ).If you
didn't compile this driver as a module, it will automatically load itself on boot and print a didn't compile this driver as a module, it will automatically load itself on boot and print a
line similar to : line similar to::
dmfe: Davicom DM9xxx net driver, version 1.36.4 (2002-01-17) dmfe: Davicom DM9xxx net driver, version 1.36.4 (2002-01-17)
If you compiled this driver as a module, you have to load it on boot.You can load it with command : If you compiled this driver as a module, you have to load it on boot.You can load it with command::
insmod dmfe insmod dmfe
This way it will autodetect the device mode.This is the suggested way to load the module.Or you can pass This way it will autodetect the device mode.This is the suggested way to load the module.Or you can pass
a mode= setting to module while loading, like : a mode= setting to module while loading, like::
insmod dmfe mode=0 # Force 10M Half Duplex insmod dmfe mode=0 # Force 10M Half Duplex
insmod dmfe mode=1 # Force 100M Half Duplex insmod dmfe mode=1 # Force 100M Half Duplex
insmod dmfe mode=4 # Force 10M Full Duplex insmod dmfe mode=4 # Force 10M Full Duplex
insmod dmfe mode=5 # Force 100M Full Duplex insmod dmfe mode=5 # Force 100M Full Duplex
Next you should configure your network interface with a command similar to : Next you should configure your network interface with a command similar to::
ifconfig eth0 172.22.3.18 ifconfig eth0 172.22.3.18
^^^^^^^^^^^ ^^^^^^^^^^^
Your IP Address Your IP Address
Then you may have to modify the default routing table with command : Then you may have to modify the default routing table with command::
route add default eth0 route add default eth0
...@@ -48,10 +53,10 @@ Now your ethernet card should be up and running. ...@@ -48,10 +53,10 @@ Now your ethernet card should be up and running.
TODO: TODO:
Implement pci_driver::suspend() and pci_driver::resume() power management methods. - Implement pci_driver::suspend() and pci_driver::resume() power management methods.
Check on 64 bit boxes. - Check on 64 bit boxes.
Check and fix on big endian boxes. - Check and fix on big endian boxes.
Test and make sure PCI latency is now correct for all cases. - Test and make sure PCI latency is now correct for all cases.
Authors: Authors:
...@@ -60,7 +65,7 @@ Sten Wang <sten_wang@davicom.com.tw > : Original Author ...@@ -60,7 +65,7 @@ Sten Wang <sten_wang@davicom.com.tw > : Original Author
Contributors: Contributors:
Marcelo Tosatti <marcelo@conectiva.com.br> - Marcelo Tosatti <marcelo@conectiva.com.br>
Alan Cox <alan@lxorguk.ukuu.org.uk> - Alan Cox <alan@lxorguk.ukuu.org.uk>
Jeff Garzik <jgarzik@pobox.com> - Jeff Garzik <jgarzik@pobox.com>
Vojtech Pavlik <vojtech@suse.cz> - Vojtech Pavlik <vojtech@suse.cz>
.. SPDX-License-Identifier: GPL-2.0
==============================
The QorIQ DPAA Ethernet Driver The QorIQ DPAA Ethernet Driver
============================== ==============================
Authors: Authors:
Madalin Bucur <madalin.bucur@nxp.com> - Madalin Bucur <madalin.bucur@nxp.com>
Camelia Groza <camelia.groza@nxp.com> - Camelia Groza <camelia.groza@nxp.com>
Contents .. Contents
========
- DPAA Ethernet Overview - DPAA Ethernet Overview
- DPAA Ethernet Supported SoCs - DPAA Ethernet Supported SoCs
...@@ -34,7 +36,7 @@ following drivers in the Linux kernel: ...@@ -34,7 +36,7 @@ following drivers in the Linux kernel:
- Queue Manager (QMan), Buffer Manager (BMan) - Queue Manager (QMan), Buffer Manager (BMan)
drivers/soc/fsl/qbman drivers/soc/fsl/qbman
A simplified view of the dpaa_eth interfaces mapped to FMan MACs: A simplified view of the dpaa_eth interfaces mapped to FMan MACs::
dpaa_eth /eth0\ ... /ethN\ dpaa_eth /eth0\ ... /ethN\
driver | | | | driver | | | |
...@@ -42,89 +44,93 @@ A simplified view of the dpaa_eth interfaces mapped to FMan MACs: ...@@ -42,89 +44,93 @@ A simplified view of the dpaa_eth interfaces mapped to FMan MACs:
-Ports / Tx Rx \ ... / Tx Rx \ -Ports / Tx Rx \ ... / Tx Rx \
FMan | | | | FMan | | | |
-MACs | MAC0 | | MACN | -MACs | MAC0 | | MACN |
/ dtsec0 \ ... / dtsecN \ (or tgec) / dtsec0 \ ... / dtsecN \ (or tgec)
/ \ / \(or memac) / \ / \(or memac)
--------- -------------- --- -------------- --------- --------- -------------- --- -------------- ---------
FMan, FMan Port, FMan SP, FMan MURAM drivers FMan, FMan Port, FMan SP, FMan MURAM drivers
--------------------------------------------------------- ---------------------------------------------------------
FMan HW blocks: MURAM, MACs, Ports, SP FMan HW blocks: MURAM, MACs, Ports, SP
--------------------------------------------------------- ---------------------------------------------------------
The dpaa_eth relation to the QMan, BMan and FMan: The dpaa_eth relation to the QMan, BMan and FMan::
________________________________
________________________________
dpaa_eth / eth0 \ dpaa_eth / eth0 \
driver / \ driver / \
--------- -^- -^- -^- --- --------- --------- -^- -^- -^- --- ---------
QMan driver / \ / \ / \ \ / | BMan | QMan driver / \ / \ / \ \ / | BMan |
|Rx | |Rx | |Tx | |Tx | | driver | |Rx | |Rx | |Tx | |Tx | | driver |
--------- |Dfl| |Err| |Cnf| |FQs| | | --------- |Dfl| |Err| |Cnf| |FQs| | |
QMan HW |FQ | |FQ | |FQs| | | | | QMan HW |FQ | |FQ | |FQs| | | | |
/ \ / \ / \ \ / | | / \ / \ / \ \ / | |
--------- --- --- --- -v- --------- --------- --- --- --- -v- ---------
| FMan QMI | | | FMan QMI | |
| FMan HW FMan BMI | BMan HW | | FMan HW FMan BMI | BMan HW |
----------------------- -------- ----------------------- --------
where the acronyms used above (and in the code) are: where the acronyms used above (and in the code) are:
DPAA = Data Path Acceleration Architecture
FMan = DPAA Frame Manager =============== ===========================================================
QMan = DPAA Queue Manager DPAA Data Path Acceleration Architecture
BMan = DPAA Buffers Manager FMan DPAA Frame Manager
QMI = QMan interface in FMan QMan DPAA Queue Manager
BMI = BMan interface in FMan BMan DPAA Buffers Manager
FMan SP = FMan Storage Profiles QMI QMan interface in FMan
MURAM = Multi-user RAM in FMan BMI BMan interface in FMan
FQ = QMan Frame Queue FMan SP FMan Storage Profiles
Rx Dfl FQ = default reception FQ MURAM Multi-user RAM in FMan
Rx Err FQ = Rx error frames FQ FQ QMan Frame Queue
Tx Cnf FQ = Tx confirmation FQs Rx Dfl FQ default reception FQ
Tx FQs = transmission frame queues Rx Err FQ Rx error frames FQ
dtsec = datapath three speed Ethernet controller (10/100/1000 Mbps) Tx Cnf FQ Tx confirmation FQs
tgec = ten gigabit Ethernet controller (10 Gbps) Tx FQs transmission frame queues
memac = multirate Ethernet MAC (10/100/1000/10000) dtsec datapath three speed Ethernet controller (10/100/1000 Mbps)
tgec ten gigabit Ethernet controller (10 Gbps)
memac multirate Ethernet MAC (10/100/1000/10000)
=============== ===========================================================
DPAA Ethernet Supported SoCs DPAA Ethernet Supported SoCs
============================ ============================
The DPAA drivers enable the Ethernet controllers present on the following SoCs: The DPAA drivers enable the Ethernet controllers present on the following SoCs:
# PPC PPC
P1023 - P1023
P2041 - P2041
P3041 - P3041
P4080 - P4080
P5020 - P5020
P5040 - P5040
T1023 - T1023
T1024 - T1024
T1040 - T1040
T1042 - T1042
T2080 - T2080
T4240 - T4240
B4860 - B4860
# ARM ARM
LS1043A - LS1043A
LS1046A - LS1046A
Configuring DPAA Ethernet in your kernel Configuring DPAA Ethernet in your kernel
======================================== ========================================
To enable the DPAA Ethernet driver, the following Kconfig options are required: To enable the DPAA Ethernet driver, the following Kconfig options are required::
# common for arch/arm64 and arch/powerpc platforms # common for arch/arm64 and arch/powerpc platforms
CONFIG_FSL_DPAA=y CONFIG_FSL_DPAA=y
CONFIG_FSL_FMAN=y CONFIG_FSL_FMAN=y
CONFIG_FSL_DPAA_ETH=y CONFIG_FSL_DPAA_ETH=y
CONFIG_FSL_XGMAC_MDIO=y CONFIG_FSL_XGMAC_MDIO=y
# for arch/powerpc only # for arch/powerpc only
CONFIG_FSL_PAMU=y CONFIG_FSL_PAMU=y
# common options needed for the PHYs used on the RDBs # common options needed for the PHYs used on the RDBs
CONFIG_VITESSE_PHY=y CONFIG_VITESSE_PHY=y
CONFIG_REALTEK_PHY=y CONFIG_REALTEK_PHY=y
CONFIG_AQUANTIA_PHY=y CONFIG_AQUANTIA_PHY=y
DPAA Ethernet Frame Processing DPAA Ethernet Frame Processing
============================== ==============================
...@@ -167,7 +173,9 @@ classes as follows: ...@@ -167,7 +173,9 @@ classes as follows:
* priorities 8 to 11 - traffic class 2 (medium-high priority) * priorities 8 to 11 - traffic class 2 (medium-high priority)
* priorities 12 to 15 - traffic class 3 (high priority) * priorities 12 to 15 - traffic class 3 (high priority)
tc qdisc add dev <int> root handle 1: \ ::
tc qdisc add dev <int> root handle 1: \
mqprio num_tc 4 map 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 hw 1 mqprio num_tc 4 map 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 hw 1
DPAA IRQ Affinity and Receive Side Scaling DPAA IRQ Affinity and Receive Side Scaling
...@@ -201,11 +209,11 @@ of these frame queues will arrive at the same portal and will always ...@@ -201,11 +209,11 @@ of these frame queues will arrive at the same portal and will always
be processed by the same CPU. This ensures intra-flow order preservation be processed by the same CPU. This ensures intra-flow order preservation
and workload distribution for multiple traffic flows. and workload distribution for multiple traffic flows.
RSS can be turned off for a certain interface using ethtool, i.e. RSS can be turned off for a certain interface using ethtool, i.e.::
# ethtool -N fm1-mac9 rx-flow-hash tcp4 "" # ethtool -N fm1-mac9 rx-flow-hash tcp4 ""
To turn it back on, one needs to set rx-flow-hash for tcp4/6 or udp4/6: To turn it back on, one needs to set rx-flow-hash for tcp4/6 or udp4/6::
# ethtool -N fm1-mac9 rx-flow-hash udp4 sfdn # ethtool -N fm1-mac9 rx-flow-hash udp4 sfdn
...@@ -216,7 +224,7 @@ going to control the rx-flow-hashing for all protocols on that interface. ...@@ -216,7 +224,7 @@ going to control the rx-flow-hashing for all protocols on that interface.
Besides using the FMan Keygen computed hash for spreading traffic on the Besides using the FMan Keygen computed hash for spreading traffic on the
128 Rx FQs, the DPAA Ethernet driver also sets the skb hash value when 128 Rx FQs, the DPAA Ethernet driver also sets the skb hash value when
the NETIF_F_RXHASH feature is on (active by default). This can be turned the NETIF_F_RXHASH feature is on (active by default). This can be turned
on or off through ethtool, i.e.: on or off through ethtool, i.e.::
# ethtool -K fm1-mac9 rx-hashing off # ethtool -K fm1-mac9 rx-hashing off
# ethtool -k fm1-mac9 | grep hash # ethtool -k fm1-mac9 | grep hash
...@@ -246,6 +254,7 @@ The following statistics are exported for each interface through ethtool: ...@@ -246,6 +254,7 @@ The following statistics are exported for each interface through ethtool:
- Rx error count per CPU - Rx error count per CPU
- Rx error count per type - Rx error count per type
- congestion related statistics: - congestion related statistics:
- congestion status - congestion status
- time spent in congestion - time spent in congestion
- number of time the device entered congestion - number of time the device entered congestion
...@@ -254,7 +263,7 @@ The following statistics are exported for each interface through ethtool: ...@@ -254,7 +263,7 @@ The following statistics are exported for each interface through ethtool:
The driver also exports the following information in sysfs: The driver also exports the following information in sysfs:
- the FQ IDs for each FQ type - the FQ IDs for each FQ type
/sys/devices/platform/soc/<addr>.fman/<addr>.ethernet/dpaa-ethernet.<id>/net/fm<nr>-mac<nr>/fqids /sys/devices/platform/soc/<addr>.fman/<addr>.ethernet/dpaa-ethernet.<id>/net/fm<nr>-mac<nr>/fqids
- the ID of the buffer pool in use - the ID of the buffer pool in use
/sys/devices/platform/soc/<addr>.fman/<addr>.ethernet/dpaa-ethernet.<id>/net/fm<nr>-mac<nr>/bpids /sys/devices/platform/soc/<addr>.fman/<addr>.ethernet/dpaa-ethernet.<id>/net/fm<nr>-mac<nr>/bpids
.. SPDX-License-Identifier: GPL-2.0
===========================
The Gianfar Ethernet Driver The Gianfar Ethernet Driver
===========================
Author: Andy Fleming <afleming@freescale.com> :Author: Andy Fleming <afleming@freescale.com>
Updated: 2005-07-28 :Updated: 2005-07-28
CHECKSUM OFFLOADING Checksum Offloading
===================
The eTSEC controller (first included in parts from late 2005 like The eTSEC controller (first included in parts from late 2005 like
the 8548) has the ability to perform TCP, UDP, and IP checksums the 8548) has the ability to perform TCP, UDP, and IP checksums
...@@ -15,13 +20,15 @@ packets. Use ethtool to enable or disable this feature for RX ...@@ -15,13 +20,15 @@ packets. Use ethtool to enable or disable this feature for RX
and TX. and TX.
VLAN VLAN
====
In order to use VLAN, please consult Linux documentation on In order to use VLAN, please consult Linux documentation on
configuring VLANs. The gianfar driver supports hardware insertion and configuring VLANs. The gianfar driver supports hardware insertion and
extraction of VLAN headers, but not filtering. Filtering will be extraction of VLAN headers, but not filtering. Filtering will be
done by the kernel. done by the kernel.
MULTICASTING Multicasting
============
The gianfar driver supports using the group hash table on the The gianfar driver supports using the group hash table on the
TSEC (and the extended hash table on the eTSEC) for multicast TSEC (and the extended hash table on the eTSEC) for multicast
...@@ -29,13 +36,15 @@ filtering. On the eTSEC, the exact-match MAC registers are used ...@@ -29,13 +36,15 @@ filtering. On the eTSEC, the exact-match MAC registers are used
before the hash tables. See Linux documentation on how to join before the hash tables. See Linux documentation on how to join
multicast groups. multicast groups.
PADDING Padding
=======
The gianfar driver supports padding received frames with 2 bytes The gianfar driver supports padding received frames with 2 bytes
to align the IP header to a 16-byte boundary, when supported by to align the IP header to a 16-byte boundary, when supported by
hardware. hardware.
ETHTOOL Ethtool
=======
The gianfar driver supports the use of ethtool for many The gianfar driver supports the use of ethtool for many
configuration options. You must run ethtool only on currently configuration options. You must run ethtool only on currently
......
...@@ -27,6 +27,30 @@ Contents: ...@@ -27,6 +27,30 @@ Contents:
netronome/nfp netronome/nfp
pensando/ionic pensando/ionic
stmicro/stmmac stmicro/stmmac
3com/3c509
3com/vortex
amazon/ena
aquantia/atlantic
chelsio/cxgb
cirrus/cs89x0
davicom/dm9000
dec/de4x5
dec/dmfe
dlink/dl2k
freescale/dpaa
freescale/gianfar
intel/ipw2100
intel/ipw2200
microsoft/netvsc
neterion/s2io
neterion/vxge
qualcomm/rmnet
sb1000
smsc/smc9
ti/cpsw_switchdev
ti/cpsw
ti/tlan
toshiba/spider_net
.. only:: subproject and html .. only:: subproject and html
......
.. SPDX-License-Identifier: GPL-2.0
======================
Hyper-V network driver Hyper-V network driver
====================== ======================
...@@ -10,15 +13,15 @@ Windows 10. ...@@ -10,15 +13,15 @@ Windows 10.
Features Features
======== ========
Checksum offload Checksum offload
---------------- ----------------
The netvsc driver supports checksum offload as long as the The netvsc driver supports checksum offload as long as the
Hyper-V host version does. Windows Server 2016 and Azure Hyper-V host version does. Windows Server 2016 and Azure
support checksum offload for TCP and UDP for both IPv4 and support checksum offload for TCP and UDP for both IPv4 and
IPv6. Windows Server 2012 only supports checksum offload for TCP. IPv6. Windows Server 2012 only supports checksum offload for TCP.
Receive Side Scaling Receive Side Scaling
-------------------- --------------------
Hyper-V supports receive side scaling. For TCP & UDP, packets can Hyper-V supports receive side scaling. For TCP & UDP, packets can
be distributed among available queues based on IP address and port be distributed among available queues based on IP address and port
number. number.
...@@ -32,30 +35,37 @@ Features ...@@ -32,30 +35,37 @@ Features
hashing. Using L3 hashing is recommended in this case. hashing. Using L3 hashing is recommended in this case.
For example, for UDP over IPv4 on eth0: For example, for UDP over IPv4 on eth0:
To include UDP port numbers in hashing:
ethtool -N eth0 rx-flow-hash udp4 sdfn To include UDP port numbers in hashing::
To exclude UDP port numbers in hashing:
ethtool -N eth0 rx-flow-hash udp4 sd ethtool -N eth0 rx-flow-hash udp4 sdfn
To show UDP hash level:
ethtool -n eth0 rx-flow-hash udp4 To exclude UDP port numbers in hashing::
Generic Receive Offload, aka GRO ethtool -N eth0 rx-flow-hash udp4 sd
--------------------------------
To show UDP hash level::
ethtool -n eth0 rx-flow-hash udp4
Generic Receive Offload, aka GRO
--------------------------------
The driver supports GRO and it is enabled by default. GRO coalesces The driver supports GRO and it is enabled by default. GRO coalesces
like packets and significantly reduces CPU usage under heavy Rx like packets and significantly reduces CPU usage under heavy Rx
load. load.
Large Receive Offload (LRO), or Receive Side Coalescing (RSC) Large Receive Offload (LRO), or Receive Side Coalescing (RSC)
------------------------------------------------------------- -------------------------------------------------------------
The driver supports LRO/RSC in the vSwitch feature. It reduces the per packet The driver supports LRO/RSC in the vSwitch feature. It reduces the per packet
processing overhead by coalescing multiple TCP segments when possible. The processing overhead by coalescing multiple TCP segments when possible. The
feature is enabled by default on VMs running on Windows Server 2019 and feature is enabled by default on VMs running on Windows Server 2019 and
later. It may be changed by ethtool command: later. It may be changed by ethtool command::
ethtool -K eth0 lro on ethtool -K eth0 lro on
ethtool -K eth0 lro off ethtool -K eth0 lro off
SR-IOV support SR-IOV support
-------------- --------------
Hyper-V supports SR-IOV as a hardware acceleration option. If SR-IOV Hyper-V supports SR-IOV as a hardware acceleration option. If SR-IOV
is enabled in both the vSwitch and the guest configuration, then the is enabled in both the vSwitch and the guest configuration, then the
Virtual Function (VF) device is passed to the guest as a PCI Virtual Function (VF) device is passed to the guest as a PCI
...@@ -70,8 +80,8 @@ Features ...@@ -70,8 +80,8 @@ Features
flow direction is desired, these should be applied directly to the flow direction is desired, these should be applied directly to the
VF slave device. VF slave device.
Receive Buffer Receive Buffer
-------------- --------------
Packets are received into a receive area which is created when device Packets are received into a receive area which is created when device
is probed. The receive area is broken into MTU sized chunks and each may is probed. The receive area is broken into MTU sized chunks and each may
contain one or more packets. The number of receive sections may be changed contain one or more packets. The number of receive sections may be changed
...@@ -83,8 +93,8 @@ Features ...@@ -83,8 +93,8 @@ Features
will use slower method to handle very large packets or if the send buffer will use slower method to handle very large packets or if the send buffer
area is exhausted. area is exhausted.
XDP support XDP support
----------- -----------
XDP (eXpress Data Path) is a feature that runs eBPF bytecode at the early XDP (eXpress Data Path) is a feature that runs eBPF bytecode at the early
stage when packets arrive at a NIC card. The goal is to increase performance stage when packets arrive at a NIC card. The goal is to increase performance
for packet processing, reducing the overhead of SKB allocation and other for packet processing, reducing the overhead of SKB allocation and other
...@@ -99,7 +109,8 @@ Features ...@@ -99,7 +109,8 @@ Features
overwritten by setting of synthetic NIC. overwritten by setting of synthetic NIC.
XDP program cannot run with LRO (RSC) enabled, so you need to disable LRO XDP program cannot run with LRO (RSC) enabled, so you need to disable LRO
before running XDP: before running XDP::
ethtool -K eth0 lro off ethtool -K eth0 lro off
XDP_REDIRECT action is not yet supported. XDP_REDIRECT action is not yet supported.
This diff is collapsed.
This diff is collapsed.
.. SPDX-License-Identifier: GPL-2.0
================
SMC 9xxxx Driver
================
Revision 0.12
SMC 9xxxx Driver
Revision 0.12
3/5/96 3/5/96
Copyright 1996 Erik Stahlman
Released under terms of the GNU General Public License. Copyright 1996 Erik Stahlman
Released under terms of the GNU General Public License.
This file contains the instructions and caveats for my SMC9xxx driver. You This file contains the instructions and caveats for my SMC9xxx driver. You
should not be using the driver without reading this file. should not be using the driver without reading this file.
Things to note about installation: Things to note about installation:
1. The driver should work on all kernels from 1.2.13 until 1.3.71. 1. The driver should work on all kernels from 1.2.13 until 1.3.71.
(A kernel patch is supplied for 1.3.71 ) (A kernel patch is supplied for 1.3.71 )
2. If you include this into the kernel, you might need to change some 2. If you include this into the kernel, you might need to change some
options, such as for forcing IRQ. options, such as for forcing IRQ.
3. To compile as a module, run 'make' .
Make will give you the appropriate options for various kernel support.
4. Loading the driver as a module :
use: insmod smc9194.o 3. To compile as a module, run 'make'.
Make will give you the appropriate options for various kernel support.
4. Loading the driver as a module::
use: insmod smc9194.o
optional parameters: optional parameters:
io=xxxx : your base address io=xxxx : your base address
irq=xx : your irq irq=xx : your irq
ifport=x : 0 for whatever is default ifport=x : 0 for whatever is default
1 for twisted pair 1 for twisted pair
2 for AUI ( or BNC on some cards ) 2 for AUI ( or BNC on some cards )
How to obtain the latest version? How to obtain the latest version?
FTP: FTP:
ftp://fenris.campus.vt.edu/smc9/smc9-12.tar.gz ftp://fenris.campus.vt.edu/smc9/smc9-12.tar.gz
ftp://sfbox.vt.edu/filebox/F/fenris/smc9/smc9-12.tar.gz ftp://sfbox.vt.edu/filebox/F/fenris/smc9/smc9-12.tar.gz
Contacting me: Contacting me:
erik@mail.vt.edu erik@mail.vt.edu
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment