aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-08-06 12:38:14 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-08-06 12:38:14 -0400
commitae045e2455429c418a418a3376301a9e5753a0a8 (patch)
treeb445bdeecd3f38aa0d0a29c9585cee49e4ccb0f1 /Documentation
parentf4f142ed4ef835709c7e6d12eaca10d190bcebed (diff)
parentd247b6ab3ce6dd43665780865ec5fa145d9ab6bd (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller: "Highlights: 1) Steady transitioning of the BPF instructure to a generic spot so all kernel subsystems can make use of it, from Alexei Starovoitov. 2) SFC driver supports busy polling, from Alexandre Rames. 3) Take advantage of hash table in UDP multicast delivery, from David Held. 4) Lighten locking, in particular by getting rid of the LRU lists, in inet frag handling. From Florian Westphal. 5) Add support for various RFC6458 control messages in SCTP, from Geir Ola Vaagland. 6) Allow to filter bridge forwarding database dumps by device, from Jamal Hadi Salim. 7) virtio-net also now supports busy polling, from Jason Wang. 8) Some low level optimization tweaks in pktgen from Jesper Dangaard Brouer. 9) Add support for ipv6 address generation modes, so that userland can have some input into the process. From Jiri Pirko. 10) Consolidate common TCP connection request code in ipv4 and ipv6, from Octavian Purdila. 11) New ARP packet logger in netfilter, from Pablo Neira Ayuso. 12) Generic resizable RCU hash table, with intial users in netlink and nftables. From Thomas Graf. 13) Maintain a name assignment type so that userspace can see where a network device name came from (enumerated by kernel, assigned explicitly by userspace, etc.) From Tom Gundersen. 14) Automatic flow label generation on transmit in ipv6, from Tom Herbert. 15) New packet timestamping facilities from Willem de Bruijn, meant to assist in measuring latencies going into/out-of the packet scheduler, latency from TCP data transmission to ACK, etc" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1536 commits) cxgb4 : Disable recursive mailbox commands when enabling vi net: reduce USB network driver config options. tg3: Modify tg3_tso_bug() to handle multiple TX rings amd-xgbe: Perform phy connect/disconnect at dev open/stop amd-xgbe: Use dma_set_mask_and_coherent to set DMA mask net: sun4i-emac: fix memory leak on bad packet sctp: fix possible seqlock seadlock in sctp_packet_transmit() Revert "net: phy: Set the driver when registering an MDIO bus device" cxgb4vf: Turn off SGE RX/TX Callback Timers and interrupts in PCI shutdown routine team: Simplify return path of team_newlink bridge: Update outdated comment on promiscuous mode net-timestamp: ACK timestamp for bytestreams net-timestamp: TCP timestamping net-timestamp: SCHED timestamp on entering packet scheduler net-timestamp: add key to disambiguate concurrent datagrams net-timestamp: move timestamp flags out of sk_flags net-timestamp: extend SCM_TIMESTAMPING ancillary data struct cxgb4i : Move stray CPL definitions to cxgb4 driver tcp: reduce spurious retransmits due to transient SACK reneging qlcnic: Initialize dcbnl_ops before register_netdev ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/ABI/testing/sysfs-class-net11
-rw-r--r--Documentation/devicetree/bindings/net/amd-xgbe-phy.txt6
-rw-r--r--Documentation/devicetree/bindings/net/amd-xgbe.txt17
-rw-r--r--Documentation/devicetree/bindings/net/broadcom-systemport.txt3
-rw-r--r--Documentation/devicetree/bindings/net/davinci-mdio.txt8
-rw-r--r--Documentation/devicetree/bindings/net/ieee802154/cc2520.txt29
-rw-r--r--Documentation/devicetree/bindings/net/marvell-pp2.txt61
-rw-r--r--Documentation/devicetree/bindings/net/nfc/st21nfcb.txt33
-rw-r--r--Documentation/devicetree/bindings/net/sh_eth.txt1
-rw-r--r--Documentation/devicetree/bindings/net/stmmac.txt6
-rw-r--r--Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt41
-rw-r--r--Documentation/networking/bonding.txt31
-rw-r--r--Documentation/networking/filter.txt12
-rw-r--r--Documentation/networking/i40e.txt7
-rw-r--r--Documentation/networking/ip-sysctl.txt38
-rw-r--r--Documentation/networking/packet_mmap.txt18
-rw-r--r--Documentation/networking/phy.txt18
-rw-r--r--Documentation/networking/pktgen.txt28
-rw-r--r--Documentation/networking/timestamping.txt16
-rw-r--r--Documentation/networking/timestamping/timestamping.c7
20 files changed, 317 insertions, 74 deletions
diff --git a/Documentation/ABI/testing/sysfs-class-net b/Documentation/ABI/testing/sysfs-class-net
index 416c5d59f52e..d322b0581194 100644
--- a/Documentation/ABI/testing/sysfs-class-net
+++ b/Documentation/ABI/testing/sysfs-class-net
@@ -1,3 +1,14 @@
1What: /sys/class/net/<iface>/name_assign_type
2Date: July 2014
3KernelVersion: 3.17
4Contact: netdev@vger.kernel.org
5Description:
6 Indicates the name assignment type. Possible values are:
7 1: enumerated by the kernel, possibly in an unpredictable way
8 2: predictably named by the kernel
9 3: named by userspace
10 4: renamed
11
1What: /sys/class/net/<iface>/addr_assign_type 12What: /sys/class/net/<iface>/addr_assign_type
2Date: July 2010 13Date: July 2010
3KernelVersion: 3.2 14KernelVersion: 3.2
diff --git a/Documentation/devicetree/bindings/net/amd-xgbe-phy.txt b/Documentation/devicetree/bindings/net/amd-xgbe-phy.txt
index d01ed63d3ebb..42409bfe04c4 100644
--- a/Documentation/devicetree/bindings/net/amd-xgbe-phy.txt
+++ b/Documentation/devicetree/bindings/net/amd-xgbe-phy.txt
@@ -8,10 +8,16 @@ Required properties:
8 - SerDes integration registers (1/2) 8 - SerDes integration registers (1/2)
9 - SerDes integration registers (2/2) 9 - SerDes integration registers (2/2)
10 10
11Optional properties:
12- amd,speed-set: Speed capabilities of the device
13 0 - 1GbE and 10GbE (default)
14 1 - 2.5GbE and 10GbE
15
11Example: 16Example:
12 xgbe_phy@e1240800 { 17 xgbe_phy@e1240800 {
13 compatible = "amd,xgbe-phy-seattle-v1a", "ethernet-phy-ieee802.3-c45"; 18 compatible = "amd,xgbe-phy-seattle-v1a", "ethernet-phy-ieee802.3-c45";
14 reg = <0 0xe1240800 0 0x00400>, 19 reg = <0 0xe1240800 0 0x00400>,
15 <0 0xe1250000 0 0x00060>, 20 <0 0xe1250000 0 0x00060>,
16 <0 0xe1250080 0 0x00004>; 21 <0 0xe1250080 0 0x00004>;
22 amd,speed-set = <0>;
17 }; 23 };
diff --git a/Documentation/devicetree/bindings/net/amd-xgbe.txt b/Documentation/devicetree/bindings/net/amd-xgbe.txt
index ea0c7908a3b8..41354f730beb 100644
--- a/Documentation/devicetree/bindings/net/amd-xgbe.txt
+++ b/Documentation/devicetree/bindings/net/amd-xgbe.txt
@@ -8,16 +8,21 @@ Required properties:
8- interrupt-parent: Should be the phandle for the interrupt controller 8- interrupt-parent: Should be the phandle for the interrupt controller
9 that services interrupts for this device 9 that services interrupts for this device
10- interrupts: Should contain the amd-xgbe interrupt 10- interrupts: Should contain the amd-xgbe interrupt
11- clocks: Should be the DMA clock for the amd-xgbe device (used for 11- clocks:
12 calculating the correct Rx interrupt watchdog timer value on a DMA 12 - DMA clock for the amd-xgbe device (used for calculating the
13 channel for coalescing) 13 correct Rx interrupt watchdog timer value on a DMA channel
14- clock-names: Should be the name of the DMA clock, "dma_clk" 14 for coalescing)
15 - PTP clock for the amd-xgbe device
16- clock-names: Should be the names of the clocks
17 - "dma_clk" for the DMA clock
18 - "ptp_clk" for the PTP clock
15- phy-handle: See ethernet.txt file in the same directory 19- phy-handle: See ethernet.txt file in the same directory
16- phy-mode: See ethernet.txt file in the same directory 20- phy-mode: See ethernet.txt file in the same directory
17 21
18Optional properties: 22Optional properties:
19- mac-address: mac address to be assigned to the device. Can be overridden 23- mac-address: mac address to be assigned to the device. Can be overridden
20 by UEFI. 24 by UEFI.
25- dma-coherent: Present if dma operations are coherent
21 26
22Example: 27Example:
23 xgbe@e0700000 { 28 xgbe@e0700000 {
@@ -26,8 +31,8 @@ Example:
26 <0 0xe0780000 0 0x80000>; 31 <0 0xe0780000 0 0x80000>;
27 interrupt-parent = <&gic>; 32 interrupt-parent = <&gic>;
28 interrupts = <0 325 4>; 33 interrupts = <0 325 4>;
29 clocks = <&xgbe_clk>; 34 clocks = <&xgbe_dma_clk>, <&xgbe_ptp_clk>;
30 clock-names = "dma_clk"; 35 clock-names = "dma_clk", "ptp_clk";
31 phy-handle = <&phy>; 36 phy-handle = <&phy>;
32 phy-mode = "xgmii"; 37 phy-mode = "xgmii";
33 mac-address = [ 02 a1 a2 a3 a4 a5 ]; 38 mac-address = [ 02 a1 a2 a3 a4 a5 ];
diff --git a/Documentation/devicetree/bindings/net/broadcom-systemport.txt b/Documentation/devicetree/bindings/net/broadcom-systemport.txt
index c183ea90d9bc..aa7ad622259d 100644
--- a/Documentation/devicetree/bindings/net/broadcom-systemport.txt
+++ b/Documentation/devicetree/bindings/net/broadcom-systemport.txt
@@ -4,7 +4,8 @@ Required properties:
4- compatible: should be one of "brcm,systemport-v1.00" or "brcm,systemport" 4- compatible: should be one of "brcm,systemport-v1.00" or "brcm,systemport"
5- reg: address and length of the register set for the device. 5- reg: address and length of the register set for the device.
6- interrupts: interrupts for the device, first cell must be for the the rx 6- interrupts: interrupts for the device, first cell must be for the the rx
7 interrupts, and the second cell should be for the transmit queues 7 interrupts, and the second cell should be for the transmit queues. An
8 optional third interrupt cell for Wake-on-LAN can be specified
8- local-mac-address: Ethernet MAC address (48 bits) of this adapter 9- local-mac-address: Ethernet MAC address (48 bits) of this adapter
9- phy-mode: Should be a string describing the PHY interface to the 10- phy-mode: Should be a string describing the PHY interface to the
10 Ethernet switch/PHY, see Documentation/devicetree/bindings/net/ethernet.txt 11 Ethernet switch/PHY, see Documentation/devicetree/bindings/net/ethernet.txt
diff --git a/Documentation/devicetree/bindings/net/davinci-mdio.txt b/Documentation/devicetree/bindings/net/davinci-mdio.txt
index 72efaaf764f7..0369e25aabd2 100644
--- a/Documentation/devicetree/bindings/net/davinci-mdio.txt
+++ b/Documentation/devicetree/bindings/net/davinci-mdio.txt
@@ -1,8 +1,8 @@
1TI SoC Davinci MDIO Controller Device Tree Bindings 1TI SoC Davinci/Keystone2 MDIO Controller Device Tree Bindings
2--------------------------------------------------- 2---------------------------------------------------
3 3
4Required properties: 4Required properties:
5- compatible : Should be "ti,davinci_mdio" 5- compatible : Should be "ti,davinci_mdio" or "ti,keystone_mdio"
6- reg : physical base address and size of the davinci mdio 6- reg : physical base address and size of the davinci mdio
7 registers map 7 registers map
8- bus_freq : Mdio Bus frequency 8- bus_freq : Mdio Bus frequency
@@ -19,7 +19,7 @@ file.
19Examples: 19Examples:
20 20
21 mdio: davinci_mdio@4A101000 { 21 mdio: davinci_mdio@4A101000 {
22 compatible = "ti,cpsw"; 22 compatible = "ti,davinci_mdio";
23 reg = <0x4A101000 0x1000>; 23 reg = <0x4A101000 0x1000>;
24 bus_freq = <1000000>; 24 bus_freq = <1000000>;
25 }; 25 };
@@ -27,7 +27,7 @@ Examples:
27(or) 27(or)
28 28
29 mdio: davinci_mdio@4A101000 { 29 mdio: davinci_mdio@4A101000 {
30 compatible = "ti,cpsw"; 30 compatible = "ti,davinci_mdio";
31 ti,hwmods = "davinci_mdio"; 31 ti,hwmods = "davinci_mdio";
32 bus_freq = <1000000>; 32 bus_freq = <1000000>;
33 }; 33 };
diff --git a/Documentation/devicetree/bindings/net/ieee802154/cc2520.txt b/Documentation/devicetree/bindings/net/ieee802154/cc2520.txt
new file mode 100644
index 000000000000..0071883c08d8
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/ieee802154/cc2520.txt
@@ -0,0 +1,29 @@
1*CC2520 IEEE 802.15.4 Compatible Radio*
2
3Required properties:
4 - compatible: should be "ti,cc2520"
5 - spi-max-frequency: maximal bus speed (8000000), should be set to 4000000 depends
6 sync or async operation mode
7 - reg: the chipselect index
8 - pinctrl-0: pin control group to be used for this controller.
9 - pinctrl-names: must contain a "default" entry.
10 - fifo-gpio: GPIO spec for the FIFO pin
11 - fifop-gpio: GPIO spec for the FIFOP pin
12 - sfd-gpio: GPIO spec for the SFD pin
13 - cca-gpio: GPIO spec for the CCA pin
14 - vreg-gpio: GPIO spec for the VREG pin
15 - reset-gpio: GPIO spec for the RESET pin
16Example:
17 cc2520@0 {
18 compatible = "ti,cc2520";
19 reg = <0>;
20 spi-max-frequency = <4000000>;
21 pinctrl-names = "default";
22 pinctrl-0 = <&cc2520_cape_pins>;
23 fifo-gpio = <&gpio1 18 0>;
24 fifop-gpio = <&gpio1 19 0>;
25 sfd-gpio = <&gpio1 13 0>;
26 cca-gpio = <&gpio1 16 0>;
27 vreg-gpio = <&gpio0 31 0>;
28 reset-gpio = <&gpio1 12 0>;
29 };
diff --git a/Documentation/devicetree/bindings/net/marvell-pp2.txt b/Documentation/devicetree/bindings/net/marvell-pp2.txt
new file mode 100644
index 000000000000..aa4f4230bfd7
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/marvell-pp2.txt
@@ -0,0 +1,61 @@
1* Marvell Armada 375 Ethernet Controller (PPv2)
2
3Required properties:
4
5- compatible: should be "marvell,armada-375-pp2"
6- reg: addresses and length of the register sets for the device.
7 Must contain the following register sets:
8 - common controller registers
9 - LMS registers
10 In addition, at least one port register set is required.
11- clocks: a pointer to the reference clocks for this device, consequently:
12 - main controller clock
13 - GOP clock
14- clock-names: names of used clocks, must be "pp_clk" and "gop_clk".
15
16The ethernet ports are represented by subnodes. At least one port is
17required.
18
19Required properties (port):
20
21- interrupts: interrupt for the port
22- port-id: should be '0' or '1' for ethernet ports, and '2' for the
23 loopback port
24- phy-mode: See ethernet.txt file in the same directory
25
26Optional properties (port):
27
28- marvell,loopback: port is loopback mode
29- phy: a phandle to a phy node defining the PHY address (as the reg
30 property, a single integer). Note: if this property isn't present,
31 then fixed link is assumed, and the 'fixed-link' property is
32 mandatory.
33
34Example:
35
36ethernet@f0000 {
37 compatible = "marvell,armada-375-pp2";
38 reg = <0xf0000 0xa000>,
39 <0xc0000 0x3060>,
40 <0xc4000 0x100>,
41 <0xc5000 0x100>;
42 clocks = <&gateclk 3>, <&gateclk 19>;
43 clock-names = "pp_clk", "gop_clk";
44 status = "okay";
45
46 eth0: eth0@c4000 {
47 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
48 port-id = <0>;
49 status = "okay";
50 phy = <&phy0>;
51 phy-mode = "gmii";
52 };
53
54 eth1: eth1@c5000 {
55 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
56 port-id = <1>;
57 status = "okay";
58 phy = <&phy3>;
59 phy-mode = "gmii";
60 };
61};
diff --git a/Documentation/devicetree/bindings/net/nfc/st21nfcb.txt b/Documentation/devicetree/bindings/net/nfc/st21nfcb.txt
new file mode 100644
index 000000000000..3b58ae480344
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/nfc/st21nfcb.txt
@@ -0,0 +1,33 @@
1* STMicroelectronics SAS. ST21NFCB NFC Controller
2
3Required properties:
4- compatible: Should be "st,st21nfcb_i2c".
5- clock-frequency: I²C work frequency.
6- reg: address on the bus
7- interrupt-parent: phandle for the interrupt gpio controller
8- interrupts: GPIO interrupt to which the chip is connected
9- reset-gpios: Output GPIO pin used to reset the ST21NFCB
10
11Optional SoC Specific Properties:
12- pinctrl-names: Contains only one value - "default".
13- pintctrl-0: Specifies the pin control groups used for this controller.
14
15Example (for ARM-based BeagleBoard xM with ST21NFCB on I2C2):
16
17&i2c2 {
18
19 status = "okay";
20
21 st21nfcb: st21nfcb@8 {
22
23 compatible = "st,st21nfcb_i2c";
24
25 reg = <0x08>;
26 clock-frequency = <400000>;
27
28 interrupt-parent = <&gpio5>;
29 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
30
31 reset-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
32 };
33};
diff --git a/Documentation/devicetree/bindings/net/sh_eth.txt b/Documentation/devicetree/bindings/net/sh_eth.txt
index e7106b50dbdc..34d4db1a4e25 100644
--- a/Documentation/devicetree/bindings/net/sh_eth.txt
+++ b/Documentation/devicetree/bindings/net/sh_eth.txt
@@ -9,6 +9,7 @@ Required properties:
9 "renesas,ether-r8a7779" if the device is a part of R8A7779 SoC. 9 "renesas,ether-r8a7779" if the device is a part of R8A7779 SoC.
10 "renesas,ether-r8a7790" if the device is a part of R8A7790 SoC. 10 "renesas,ether-r8a7790" if the device is a part of R8A7790 SoC.
11 "renesas,ether-r8a7791" if the device is a part of R8A7791 SoC. 11 "renesas,ether-r8a7791" if the device is a part of R8A7791 SoC.
12 "renesas,ether-r8a7794" if the device is a part of R8A7794 SoC.
12 "renesas,ether-r7s72100" if the device is a part of R7S72100 SoC. 13 "renesas,ether-r7s72100" if the device is a part of R7S72100 SoC.
13- reg: offset and length of (1) the E-DMAC/feLic register block (required), 14- reg: offset and length of (1) the E-DMAC/feLic register block (required),
14 (2) the TSU register block (optional). 15 (2) the TSU register block (optional).
diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt
index a2acd2b26baf..9b03c57563a4 100644
--- a/Documentation/devicetree/bindings/net/stmmac.txt
+++ b/Documentation/devicetree/bindings/net/stmmac.txt
@@ -25,6 +25,10 @@ Required properties:
25- snps,force_sf_dma_mode Force DMA to use the Store and Forward 25- snps,force_sf_dma_mode Force DMA to use the Store and Forward
26 mode for both tx and rx. This flag is 26 mode for both tx and rx. This flag is
27 ignored if force_thresh_dma_mode is set. 27 ignored if force_thresh_dma_mode is set.
28- snps,multicast-filter-bins: Number of multicast filter hash bins
29 supported by this device instance
30- snps,perfect-filter-entries: Number of perfect filter entries supported
31 by this device instance
28 32
29Optional properties: 33Optional properties:
30- resets: Should contain a phandle to the STMMAC reset signal, if any 34- resets: Should contain a phandle to the STMMAC reset signal, if any
@@ -47,6 +51,8 @@ Examples:
47 mac-address = [000000000000]; /* Filled in by U-Boot */ 51 mac-address = [000000000000]; /* Filled in by U-Boot */
48 max-frame-size = <3800>; 52 max-frame-size = <3800>;
49 phy-mode = "gmii"; 53 phy-mode = "gmii";
54 snps,multicast-filter-bins = <256>;
55 snps,perfect-filter-entries = <128>;
50 clocks = <&clock>; 56 clocks = <&clock>;
51 clock-names = "stmmaceth">; 57 clock-names = "stmmaceth">;
52 }; 58 };
diff --git a/Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt b/Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt
new file mode 100644
index 000000000000..5dbf169cd81c
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt
@@ -0,0 +1,41 @@
1Broadcom BCM43xx Fullmac wireless SDIO devices
2
3This node provides properties for controlling the Broadcom wireless device. The
4node is expected to be specified as a child node to the SDIO controller that
5connects the device to the system.
6
7Required properties:
8
9 - compatible : Should be "brcm,bcm4329-fmac".
10
11Optional properties:
12 - brcm,drive-strength : drive strength used for SDIO pins on device in mA
13 (default = 6).
14 - interrupt-parent : the phandle for the interrupt controller to which the
15 device interrupts are connected.
16 - interrupts : specifies attributes for the out-of-band interrupt (host-wake).
17 When not specified the device will use in-band SDIO interrupts.
18 - interrupt-names : name of the out-of-band interrupt, which must be set
19 to "host-wake".
20
21Example:
22
23mmc3: mmc@01c12000 {
24 #address-cells = <1>;
25 #size-cells = <0>;
26
27 pinctrl-names = "default";
28 pinctrl-0 = <&mmc3_pins_a>;
29 vmmc-supply = <&reg_vmmc3>;
30 bus-width = <4>;
31 non-removable;
32 status = "okay";
33
34 brcmf: bcrmf@1 {
35 reg = <1>;
36 compatible = "brcm,bcm4329-fmac";
37 interrupt-parent = <&pio>;
38 interrupts = <10 8>; /* PH10 / EINT10 */
39 interrupt-names = "host-wake";
40 };
41};
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt
index 9c723ecd0025..eeb5b2e97bed 100644
--- a/Documentation/networking/bonding.txt
+++ b/Documentation/networking/bonding.txt
@@ -542,10 +542,10 @@ mode
542 542
543 XOR policy: Transmit based on the selected transmit 543 XOR policy: Transmit based on the selected transmit
544 hash policy. The default policy is a simple [(source 544 hash policy. The default policy is a simple [(source
545 MAC address XOR'd with destination MAC address) modulo 545 MAC address XOR'd with destination MAC address XOR
546 slave count]. Alternate transmit policies may be 546 packet type ID) modulo slave count]. Alternate transmit
547 selected via the xmit_hash_policy option, described 547 policies may be selected via the xmit_hash_policy option,
548 below. 548 described below.
549 549
550 This mode provides load balancing and fault tolerance. 550 This mode provides load balancing and fault tolerance.
551 551
@@ -801,10 +801,11 @@ xmit_hash_policy
801 801
802 layer2 802 layer2
803 803
804 Uses XOR of hardware MAC addresses to generate the 804 Uses XOR of hardware MAC addresses and packet type ID
805 hash. The formula is 805 field to generate the hash. The formula is
806 806
807 (source MAC XOR destination MAC) modulo slave count 807 hash = source MAC XOR destination MAC XOR packet type ID
808 slave number = hash modulo slave count
808 809
809 This algorithm will place all traffic to a particular 810 This algorithm will place all traffic to a particular
810 network peer on the same slave. 811 network peer on the same slave.
@@ -819,7 +820,7 @@ xmit_hash_policy
819 Uses XOR of hardware MAC addresses and IP addresses to 820 Uses XOR of hardware MAC addresses and IP addresses to
820 generate the hash. The formula is 821 generate the hash. The formula is
821 822
822 hash = source MAC XOR destination MAC 823 hash = source MAC XOR destination MAC XOR packet type ID
823 hash = hash XOR source IP XOR destination IP 824 hash = hash XOR source IP XOR destination IP
824 hash = hash XOR (hash RSHIFT 16) 825 hash = hash XOR (hash RSHIFT 16)
825 hash = hash XOR (hash RSHIFT 8) 826 hash = hash XOR (hash RSHIFT 8)
@@ -2301,13 +2302,13 @@ broadcast: Like active-backup, there is not much advantage to this
2301 bandwidth. 2302 bandwidth.
2302 2303
2303 Additionally, the linux bonding 802.3ad implementation 2304 Additionally, the linux bonding 802.3ad implementation
2304 distributes traffic by peer (using an XOR of MAC addresses), 2305 distributes traffic by peer (using an XOR of MAC addresses
2305 so in a "gatewayed" configuration, all outgoing traffic will 2306 and packet type ID), so in a "gatewayed" configuration, all
2306 generally use the same device. Incoming traffic may also end 2307 outgoing traffic will generally use the same device. Incoming
2307 up on a single device, but that is dependent upon the 2308 traffic may also end up on a single device, but that is
2308 balancing policy of the peer's 8023.ad implementation. In a 2309 dependent upon the balancing policy of the peer's 8023.ad
2309 "local" configuration, traffic will be distributed across the 2310 implementation. In a "local" configuration, traffic will be
2310 devices in the bond. 2311 distributed across the devices in the bond.
2311 2312
2312 Finally, the 802.3ad mode mandates the use of the MII monitor, 2313 Finally, the 802.3ad mode mandates the use of the MII monitor,
2313 therefore, the ARP monitor is not available in this mode. 2314 therefore, the ARP monitor is not available in this mode.
diff --git a/Documentation/networking/filter.txt b/Documentation/networking/filter.txt
index ee78eba78a9d..c48a9704bda8 100644
--- a/Documentation/networking/filter.txt
+++ b/Documentation/networking/filter.txt
@@ -586,12 +586,12 @@ team driver's classifier for its load-balancing mode, netfilter's xt_bpf
586extension, PTP dissector/classifier, and much more. They are all internally 586extension, PTP dissector/classifier, and much more. They are all internally
587converted by the kernel into the new instruction set representation and run 587converted by the kernel into the new instruction set representation and run
588in the eBPF interpreter. For in-kernel handlers, this all works transparently 588in the eBPF interpreter. For in-kernel handlers, this all works transparently
589by using sk_unattached_filter_create() for setting up the filter, resp. 589by using bpf_prog_create() for setting up the filter, resp.
590sk_unattached_filter_destroy() for destroying it. The macro 590bpf_prog_destroy() for destroying it. The macro
591SK_RUN_FILTER(filter, ctx) transparently invokes eBPF interpreter or JITed 591BPF_PROG_RUN(filter, ctx) transparently invokes eBPF interpreter or JITed
592code to run the filter. 'filter' is a pointer to struct sk_filter that we 592code to run the filter. 'filter' is a pointer to struct bpf_prog that we
593got from sk_unattached_filter_create(), and 'ctx' the given context (e.g. 593got from bpf_prog_create(), and 'ctx' the given context (e.g.
594skb pointer). All constraints and restrictions from sk_chk_filter() apply 594skb pointer). All constraints and restrictions from bpf_check_classic() apply
595before a conversion to the new layout is being done behind the scenes! 595before a conversion to the new layout is being done behind the scenes!
596 596
597Currently, the classic BPF format is being used for JITing on most of the 597Currently, the classic BPF format is being used for JITing on most of the
diff --git a/Documentation/networking/i40e.txt b/Documentation/networking/i40e.txt
index f737273c6dc1..a251bf4fe9c9 100644
--- a/Documentation/networking/i40e.txt
+++ b/Documentation/networking/i40e.txt
@@ -69,8 +69,11 @@ Additional Configurations
69 69
70 FCoE 70 FCoE
71 ---- 71 ----
72 Fiber Channel over Ethernet (FCoE) hardware offload is not currently 72 The driver supports Fiber Channel over Ethernet (FCoE) and Data Center
73 supported. 73 Bridging (DCB) functionality. Configuring DCB and FCoE is outside the scope
74 of this driver doc. Refer to http://www.open-fcoe.org/ for FCoE project
75 information and http://www.open-lldp.org/ or email list
76 e1000-eedc@lists.sourceforge.net for DCB information.
74 77
75 MAC and VLAN anti-spoofing feature 78 MAC and VLAN anti-spoofing feature
76 ---------------------------------- 79 ----------------------------------
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index ab42c95f9985..29a93518bf18 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -101,19 +101,17 @@ ipfrag_high_thresh - INTEGER
101 Maximum memory used to reassemble IP fragments. When 101 Maximum memory used to reassemble IP fragments. When
102 ipfrag_high_thresh bytes of memory is allocated for this purpose, 102 ipfrag_high_thresh bytes of memory is allocated for this purpose,
103 the fragment handler will toss packets until ipfrag_low_thresh 103 the fragment handler will toss packets until ipfrag_low_thresh
104 is reached. 104 is reached. This also serves as a maximum limit to namespaces
105 different from the initial one.
105 106
106ipfrag_low_thresh - INTEGER 107ipfrag_low_thresh - INTEGER
107 See ipfrag_high_thresh 108 Maximum memory used to reassemble IP fragments before the kernel
109 begins to remove incomplete fragment queues to free up resources.
110 The kernel still accepts new fragments for defragmentation.
108 111
109ipfrag_time - INTEGER 112ipfrag_time - INTEGER
110 Time in seconds to keep an IP fragment in memory. 113 Time in seconds to keep an IP fragment in memory.
111 114
112ipfrag_secret_interval - INTEGER
113 Regeneration interval (in seconds) of the hash secret (or lifetime
114 for the hash secret) for IP fragments.
115 Default: 600
116
117ipfrag_max_dist - INTEGER 115ipfrag_max_dist - INTEGER
118 ipfrag_max_dist is a non-negative integer value which defines the 116 ipfrag_max_dist is a non-negative integer value which defines the
119 maximum "disorder" which is allowed among fragments which share a 117 maximum "disorder" which is allowed among fragments which share a
@@ -1132,6 +1130,15 @@ flowlabel_consistency - BOOLEAN
1132 FALSE: disabled 1130 FALSE: disabled
1133 Default: TRUE 1131 Default: TRUE
1134 1132
1133auto_flowlabels - BOOLEAN
1134 Automatically generate flow labels based based on a flow hash
1135 of the packet. This allows intermediate devices, such as routers,
1136 to idenfify packet flows for mechanisms like Equal Cost Multipath
1137 Routing (see RFC 6438).
1138 TRUE: enabled
1139 FALSE: disabled
1140 Default: false
1141
1135anycast_src_echo_reply - BOOLEAN 1142anycast_src_echo_reply - BOOLEAN
1136 Controls the use of anycast addresses as source addresses for ICMPv6 1143 Controls the use of anycast addresses as source addresses for ICMPv6
1137 echo reply 1144 echo reply
@@ -1153,11 +1160,6 @@ ip6frag_low_thresh - INTEGER
1153ip6frag_time - INTEGER 1160ip6frag_time - INTEGER
1154 Time in seconds to keep an IPv6 fragment in memory. 1161 Time in seconds to keep an IPv6 fragment in memory.
1155 1162
1156ip6frag_secret_interval - INTEGER
1157 Regeneration interval (in seconds) of the hash secret (or lifetime
1158 for the hash secret) for IPv6 fragments.
1159 Default: 600
1160
1161conf/default/*: 1163conf/default/*:
1162 Change the interface-specific default settings. 1164 Change the interface-specific default settings.
1163 1165
@@ -1210,6 +1212,18 @@ accept_ra_defrtr - BOOLEAN
1210 Functional default: enabled if accept_ra is enabled. 1212 Functional default: enabled if accept_ra is enabled.
1211 disabled if accept_ra is disabled. 1213 disabled if accept_ra is disabled.
1212 1214
1215accept_ra_from_local - BOOLEAN
1216 Accept RA with source-address that is found on local machine
1217 if the RA is otherwise proper and able to be accepted.
1218 Default is to NOT accept these as it may be an un-intended
1219 network loop.
1220
1221 Functional default:
1222 enabled if accept_ra_from_local is enabled
1223 on a specific interface.
1224 disabled if accept_ra_from_local is disabled
1225 on a specific interface.
1226
1213accept_ra_pinfo - BOOLEAN 1227accept_ra_pinfo - BOOLEAN
1214 Learn Prefix Information in Router Advertisement. 1228 Learn Prefix Information in Router Advertisement.
1215 1229
diff --git a/Documentation/networking/packet_mmap.txt b/Documentation/networking/packet_mmap.txt
index 38112d512f47..a6d7cb91069e 100644
--- a/Documentation/networking/packet_mmap.txt
+++ b/Documentation/networking/packet_mmap.txt
@@ -1008,14 +1008,9 @@ hardware timestamps to be used. Note: you may need to enable the generation
1008of hardware timestamps with SIOCSHWTSTAMP (see related information from 1008of hardware timestamps with SIOCSHWTSTAMP (see related information from
1009Documentation/networking/timestamping.txt). 1009Documentation/networking/timestamping.txt).
1010 1010
1011PACKET_TIMESTAMP accepts the same integer bit field as 1011PACKET_TIMESTAMP accepts the same integer bit field as SO_TIMESTAMPING:
1012SO_TIMESTAMPING. However, only the SOF_TIMESTAMPING_SYS_HARDWARE 1012
1013and SOF_TIMESTAMPING_RAW_HARDWARE values are recognized by 1013 int req = SOF_TIMESTAMPING_RAW_HARDWARE;
1014PACKET_TIMESTAMP. SOF_TIMESTAMPING_SYS_HARDWARE takes precedence over
1015SOF_TIMESTAMPING_RAW_HARDWARE if both bits are set.
1016
1017 int req = 0;
1018 req |= SOF_TIMESTAMPING_SYS_HARDWARE;
1019 setsockopt(fd, SOL_PACKET, PACKET_TIMESTAMP, (void *) &req, sizeof(req)) 1014 setsockopt(fd, SOL_PACKET, PACKET_TIMESTAMP, (void *) &req, sizeof(req))
1020 1015
1021For the mmap(2)ed ring buffers, such timestamps are stored in the 1016For the mmap(2)ed ring buffers, such timestamps are stored in the
@@ -1023,14 +1018,13 @@ tpacket{,2,3}_hdr structure's tp_sec and tp_{n,u}sec members. To determine
1023what kind of timestamp has been reported, the tp_status field is binary |'ed 1018what kind of timestamp has been reported, the tp_status field is binary |'ed
1024with the following possible bits ... 1019with the following possible bits ...
1025 1020
1026 TP_STATUS_TS_SYS_HARDWARE
1027 TP_STATUS_TS_RAW_HARDWARE 1021 TP_STATUS_TS_RAW_HARDWARE
1028 TP_STATUS_TS_SOFTWARE 1022 TP_STATUS_TS_SOFTWARE
1029 1023
1030... that are equivalent to its SOF_TIMESTAMPING_* counterparts. For the 1024... that are equivalent to its SOF_TIMESTAMPING_* counterparts. For the
1031RX_RING, if none of those 3 are set (i.e. PACKET_TIMESTAMP is not set), 1025RX_RING, if neither is set (i.e. PACKET_TIMESTAMP is not set), then a
1032then this means that a software fallback was invoked *within* PF_PACKET's 1026software fallback was invoked *within* PF_PACKET's processing code (less
1033processing code (less precise). 1027precise).
1034 1028
1035Getting timestamps for the TX_RING works as follows: i) fill the ring frames, 1029Getting timestamps for the TX_RING works as follows: i) fill the ring frames,
1036ii) call sendto() e.g. in blocking mode, iii) wait for status of relevant 1030ii) call sendto() e.g. in blocking mode, iii) wait for status of relevant
diff --git a/Documentation/networking/phy.txt b/Documentation/networking/phy.txt
index 3544c98401fd..e839e7efc835 100644
--- a/Documentation/networking/phy.txt
+++ b/Documentation/networking/phy.txt
@@ -272,6 +272,8 @@ Writing a PHY driver
272 txtsamp: Requests a transmit timestamp at the PHY level for a 'skb' 272 txtsamp: Requests a transmit timestamp at the PHY level for a 'skb'
273 set_wol: Enable Wake-on-LAN at the PHY level 273 set_wol: Enable Wake-on-LAN at the PHY level
274 get_wol: Get the Wake-on-LAN status at the PHY level 274 get_wol: Get the Wake-on-LAN status at the PHY level
275 read_mmd_indirect: Read PHY MMD indirect register
276 write_mmd_indirect: Write PHY MMD indirect register
275 277
276 Of these, only config_aneg and read_status are required to be 278 Of these, only config_aneg and read_status are required to be
277 assigned by the driver code. The rest are optional. Also, it is 279 assigned by the driver code. The rest are optional. Also, it is
@@ -284,7 +286,21 @@ Writing a PHY driver
284 286
285 Feel free to look at the Marvell, Cicada, and Davicom drivers in 287 Feel free to look at the Marvell, Cicada, and Davicom drivers in
286 drivers/net/phy/ for examples (the lxt and qsemi drivers have 288 drivers/net/phy/ for examples (the lxt and qsemi drivers have
287 not been tested as of this writing) 289 not been tested as of this writing).
290
291 The PHY's MMD register accesses are handled by the PAL framework
292 by default, but can be overridden by a specific PHY driver if
293 required. This could be the case if a PHY was released for
294 manufacturing before the MMD PHY register definitions were
295 standardized by the IEEE. Most modern PHYs will be able to use
296 the generic PAL framework for accessing the PHY's MMD registers.
297 An example of such usage is for Energy Efficient Ethernet support,
298 implemented in the PAL. This support uses the PAL to access MMD
299 registers for EEE query and configuration if the PHY supports
300 the IEEE standard access mechanisms, or can use the PHY's specific
301 access interfaces if overridden by the specific PHY driver. See
302 the Micrel driver in drivers/net/phy/ for an example of how this
303 can be implemented.
288 304
289Board Fixups 305Board Fixups
290 306
diff --git a/Documentation/networking/pktgen.txt b/Documentation/networking/pktgen.txt
index 0e30c7845b2b..0dffc6e37902 100644
--- a/Documentation/networking/pktgen.txt
+++ b/Documentation/networking/pktgen.txt
@@ -24,6 +24,34 @@ For monitoring and control pktgen creates:
24 /proc/net/pktgen/ethX 24 /proc/net/pktgen/ethX
25 25
26 26
27Tuning NIC for max performance
28==============================
29
30The default NIC setting are (likely) not tuned for pktgen's artificial
31overload type of benchmarking, as this could hurt the normal use-case.
32
33Specifically increasing the TX ring buffer in the NIC:
34 # ethtool -G ethX tx 1024
35
36A larger TX ring can improve pktgen's performance, while it can hurt
37in the general case, 1) because the TX ring buffer might get larger
38than the CPUs L1/L2 cache, 2) because it allow more queueing in the
39NIC HW layer (which is bad for bufferbloat).
40
41One should be careful to conclude, that packets/descriptors in the HW
42TX ring cause delay. Drivers usually delay cleaning up the
43ring-buffers (for various performance reasons), thus packets stalling
44the TX ring, might just be waiting for cleanup.
45
46This cleanup issues is specifically the case, for the driver ixgbe
47(Intel 82599 chip). This driver (ixgbe) combine TX+RX ring cleanups,
48and the cleanup interval is affected by the ethtool --coalesce setting
49of parameter "rx-usecs".
50
51For ixgbe use e.g "30" resulting in approx 33K interrupts/sec (1/30*10^6):
52 # ethtool -C ethX rx-usecs 30
53
54
27Viewing threads 55Viewing threads
28=============== 56===============
29/proc/net/pktgen/kpktgend_0 57/proc/net/pktgen/kpktgend_0
diff --git a/Documentation/networking/timestamping.txt b/Documentation/networking/timestamping.txt
index bc3554124903..897f942b976b 100644
--- a/Documentation/networking/timestamping.txt
+++ b/Documentation/networking/timestamping.txt
@@ -40,7 +40,7 @@ the set bits correspond to data that is available, then the control
40message will not be generated: 40message will not be generated:
41 41
42SOF_TIMESTAMPING_SOFTWARE: report systime if available 42SOF_TIMESTAMPING_SOFTWARE: report systime if available
43SOF_TIMESTAMPING_SYS_HARDWARE: report hwtimetrans if available 43SOF_TIMESTAMPING_SYS_HARDWARE: report hwtimetrans if available (deprecated)
44SOF_TIMESTAMPING_RAW_HARDWARE: report hwtimeraw if available 44SOF_TIMESTAMPING_RAW_HARDWARE: report hwtimeraw if available
45 45
46It is worth noting that timestamps may be collected for reasons other 46It is worth noting that timestamps may be collected for reasons other
@@ -88,13 +88,12 @@ hwtimeraw is the original hardware time stamp. Filled in if
88SOF_TIMESTAMPING_RAW_HARDWARE is set. No assumptions about its 88SOF_TIMESTAMPING_RAW_HARDWARE is set. No assumptions about its
89relation to system time should be made. 89relation to system time should be made.
90 90
91hwtimetrans is the hardware time stamp transformed so that it 91hwtimetrans is always zero. This field is deprecated. It used to hold
92corresponds as good as possible to system time. This correlation is 92hw timestamps converted to system time. Instead, expose the hardware
93not perfect; as a consequence, sorting packets received via different 93clock device on the NIC directly as a HW PTP clock source, to allow
94NICs by their hwtimetrans may differ from the order in which they were 94time conversion in userspace and optionally synchronize system time
95received. hwtimetrans may be non-monotonic even for the same NIC. 95with a userspace PTP stack such as linuxptp. For the PTP clock API,
96Filled in if SOF_TIMESTAMPING_SYS_HARDWARE is set. Requires support 96see Documentation/ptp/ptp.txt.
97by the network device and will be empty without that support.
98 97
99 98
100SIOCSHWTSTAMP, SIOCGHWTSTAMP: 99SIOCSHWTSTAMP, SIOCGHWTSTAMP:
@@ -185,7 +184,6 @@ struct skb_shared_hwtstamps {
185 * since arbitrary point in time 184 * since arbitrary point in time
186 */ 185 */
187 ktime_t hwtstamp; 186 ktime_t hwtstamp;
188 ktime_t syststamp; /* hwtstamp transformed to system time base */
189}; 187};
190 188
191Time stamps for outgoing packets are to be generated as follows: 189Time stamps for outgoing packets are to be generated as follows:
diff --git a/Documentation/networking/timestamping/timestamping.c b/Documentation/networking/timestamping/timestamping.c
index 8ba82bfe6a33..5cdfd743447b 100644
--- a/Documentation/networking/timestamping/timestamping.c
+++ b/Documentation/networking/timestamping/timestamping.c
@@ -76,7 +76,6 @@ static void usage(const char *error)
76 " SOF_TIMESTAMPING_RX_HARDWARE - hardware time stamping of incoming packets\n" 76 " SOF_TIMESTAMPING_RX_HARDWARE - hardware time stamping of incoming packets\n"
77 " SOF_TIMESTAMPING_RX_SOFTWARE - software fallback for incoming packets\n" 77 " SOF_TIMESTAMPING_RX_SOFTWARE - software fallback for incoming packets\n"
78 " SOF_TIMESTAMPING_SOFTWARE - request reporting of software time stamps\n" 78 " SOF_TIMESTAMPING_SOFTWARE - request reporting of software time stamps\n"
79 " SOF_TIMESTAMPING_SYS_HARDWARE - request reporting of transformed HW time stamps\n"
80 " SOF_TIMESTAMPING_RAW_HARDWARE - request reporting of raw HW time stamps\n" 79 " SOF_TIMESTAMPING_RAW_HARDWARE - request reporting of raw HW time stamps\n"
81 " SIOCGSTAMP - check last socket time stamp\n" 80 " SIOCGSTAMP - check last socket time stamp\n"
82 " SIOCGSTAMPNS - more accurate socket time stamp\n"); 81 " SIOCGSTAMPNS - more accurate socket time stamp\n");
@@ -202,9 +201,7 @@ static void printpacket(struct msghdr *msg, int res,
202 (long)stamp->tv_sec, 201 (long)stamp->tv_sec,
203 (long)stamp->tv_nsec); 202 (long)stamp->tv_nsec);
204 stamp++; 203 stamp++;
205 printf("HW transformed %ld.%09ld ", 204 /* skip deprecated HW transformed */
206 (long)stamp->tv_sec,
207 (long)stamp->tv_nsec);
208 stamp++; 205 stamp++;
209 printf("HW raw %ld.%09ld", 206 printf("HW raw %ld.%09ld",
210 (long)stamp->tv_sec, 207 (long)stamp->tv_sec,
@@ -361,8 +358,6 @@ int main(int argc, char **argv)
361 so_timestamping_flags |= SOF_TIMESTAMPING_RX_SOFTWARE; 358 so_timestamping_flags |= SOF_TIMESTAMPING_RX_SOFTWARE;
362 else if (!strcasecmp(argv[i], "SOF_TIMESTAMPING_SOFTWARE")) 359 else if (!strcasecmp(argv[i], "SOF_TIMESTAMPING_SOFTWARE"))
363 so_timestamping_flags |= SOF_TIMESTAMPING_SOFTWARE; 360 so_timestamping_flags |= SOF_TIMESTAMPING_SOFTWARE;
364 else if (!strcasecmp(argv[i], "SOF_TIMESTAMPING_SYS_HARDWARE"))
365 so_timestamping_flags |= SOF_TIMESTAMPING_SYS_HARDWARE;
366 else if (!strcasecmp(argv[i], "SOF_TIMESTAMPING_RAW_HARDWARE")) 361 else if (!strcasecmp(argv[i], "SOF_TIMESTAMPING_RAW_HARDWARE"))
367 so_timestamping_flags |= SOF_TIMESTAMPING_RAW_HARDWARE; 362 so_timestamping_flags |= SOF_TIMESTAMPING_RAW_HARDWARE;
368 else 363 else