History

Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next

Pull networking updates from David Miller: 1) Allow setting bluetooth L2CAP modes via socket option, from Luiz Augusto von Dentz. 2) Add GSO partial support to igc, from Sasha Neftin. 3) Several cleanups and improvements to r8169 from Heiner Kallweit. 4) Add IF_OPER_TESTING link state and use it when ethtool triggers a device self-test. From Andrew Lunn. 5) Start moving away from custom driver versions, use the globally defined kernel version instead, from Leon Romanovsky. 6) Support GRO vis gro_cells in DSA layer, from Alexander Lobakin. 7) Allow hard IRQ deferral during NAPI, from Eric Dumazet. 8) Add sriov and vf support to hinic, from Luo bin. 9) Support Media Redundancy Protocol (MRP) in the bridging code, from Horatiu Vultur. 10) Support netmap in the nft_nat code, from Pablo Neira Ayuso. 11) Allow UDPv6 encapsulation of ESP in the ipsec code, from Sabrina Dubroca. Also add ipv6 support for espintcp. 12) Lots of ReST conversions of the networking documentation, from Mauro Carvalho Chehab. 13) Support configuration of ethtool rxnfc flows in bcmgenet driver, from Doug Berger. 14) Allow to dump cgroup id and filter by it in inet_diag code, from Dmitry Yakunin. 15) Add infrastructure to export netlink attribute policies to userspace, from Johannes Berg. 16) Several optimizations to sch_fq scheduler, from Eric Dumazet. 17) Fallback to the default qdisc if qdisc init fails because otherwise a packet scheduler init failure will make a device inoperative. From Jesper Dangaard Brouer. 18) Several RISCV bpf jit optimizations, from Luke Nelson. 19) Correct the return type of the ->ndo_start_xmit() method in several drivers, it's netdev_tx_t but many drivers were using 'int'. From Yunjian Wang. 20) Add an ethtool interface for PHY master/slave config, from Oleksij Rempel. 21) Add BPF iterators, from Yonghang Song. 22) Add cable test infrastructure, including ethool interfaces, from Andrew Lunn. Marvell PHY driver is the first to support this facility. 23) Remove zero-length arrays all over, from Gustavo A. R. Silva. 24) Calculate and maintain an explicit frame size in XDP, from Jesper Dangaard Brouer. 25) Add CAP_BPF, from Alexei Starovoitov. 26) Support terse dumps in the packet scheduler, from Vlad Buslov. 27) Support XDP_TX bulking in dpaa2 driver, from Ioana Ciornei. 28) Add devm_register_netdev(), from Bartosz Golaszewski. 29) Minimize qdisc resets, from Cong Wang. 30) Get rid of kernel_getsockopt and kernel_setsockopt in order to eliminate set_fs/get_fs calls. From Christoph Hellwig. * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2517 commits) selftests: net: ip_defrag: ignore EPERM net_failover: fixed rollback in net_failover_open() Revert "tipc: Fix potential tipc_aead refcnt leak in tipc_crypto_rcv" Revert "tipc: Fix potential tipc_node refcnt leak in tipc_rcv" vmxnet3: allow rx flow hash ops only when rss is enabled hinic: add set_channels ethtool_ops support selftests/bpf: Add a default $(CXX) value tools/bpf: Don't use $(COMPILE.c) bpf, selftests: Use bpf_probe_read_kernel s390/bpf: Use bcr 0,%0 as tail call nop filler s390/bpf: Maintain 8-byte stack alignment selftests/bpf: Fix verifier test selftests/bpf: Fix sample_cnt shared between two threads bpf, selftests: Adapt cls_redirect to call csum_level helper bpf: Add csum_level helper for fixing up csum levels bpf: Fix up bpf_skb_adjust_room helper's skb csum setting sfc: add missing annotation for efx_ef10_try_update_nic_stats_vf() crypto/chtls: IPv6 support for inline TLS Crypto/chcr: Fixes a coccinile check error Crypto/chcr: Fixes compilations warnings ...

Linus Torvalds committed 6 years ago

Commit cb8e59c2 parents 2e63f6c 065fcfd2097 files · +151766 −46213Browse files

Unified · Split

1756 files
  1. Documentation/ABI/testing/sysfs-class-net +13 −0
  2. Documentation/admin-guide/kernel-parameters.txt +6 −6
  3. Documentation/admin-guide/serial-console.rst +1 −1
  4. Documentation/admin-guide/sysctl/net.rst +5 −3
  5. Documentation/bpf/bpf_devel_QA.rst +15 −0
  6. Documentation/bpf/index.rst +2 −2
  7. Documentation/bpf/ringbuf.rst +209 −0
  8. Documentation/dev-tools/kselftest.rst +2 −1
  9. Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt +0 −36
  10. Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.yaml +64 −0
  11. Documentation/devicetree/bindings/net/amlogic,meson-dwmac.yaml +20 −3
  12. Documentation/devicetree/bindings/net/ethernet-phy.yaml +2 −1
  13. Documentation/devicetree/bindings/net/fsl-fec.txt +6 −2
  14. Documentation/devicetree/bindings/net/imx-dwmac.txt +56 −0
  15. Documentation/devicetree/bindings/net/mdio.yaml +45 −5
  16. Documentation/devicetree/bindings/net/mediatek,star-emac.yaml +89 −0
  17. Documentation/devicetree/bindings/net/nxp,tja11xx.yaml +61 −0
  18. Documentation/devicetree/bindings/net/qca,ar71xx.txt +0 −45
  19. Documentation/devicetree/bindings/net/qca,ar71xx.yaml +216 −0
  20. Documentation/devicetree/bindings/net/qcom,ipa.yaml +9 −1
  21. Documentation/devicetree/bindings/net/qcom,ipq4019-mdio.yaml +61 −0
  22. Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt +6 −0
  23. Documentation/devicetree/bindings/net/realtek-bluetooth.yaml +54 −0
  24. Documentation/devicetree/bindings/net/socionext,uniphier-ave4.txt +0 −64
  25. Documentation/devicetree/bindings/net/socionext,uniphier-ave4.yaml +111 −0
  26. Documentation/devicetree/bindings/net/ti,dp83867.txt +0 −68
  27. Documentation/devicetree/bindings/net/ti,dp83867.yaml +127 −0
  28. Documentation/devicetree/bindings/net/ti,dp83869.yaml +1 −1
  29. Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml +20 −0
  30. Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml +145 −0
  31. Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt +3 −0
  32. Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt +14 −0
  33. Documentation/driver-api/driver-model/devres.rst +5 −0
  34. Documentation/filesystems/afs.rst +1 −1
  35. Documentation/hwmon/bcm54140.rst +45 −0
  36. Documentation/hwmon/index.rst +1 −0
  37. Documentation/networking/6pack.rst +31 −15
  38. Documentation/networking/altera_tse.rst +56 −33
  39. Documentation/networking/arcnet-hardware.rst +1164 −1063
  40. Documentation/networking/arcnet.rst +193 −155
  41. Documentation/networking/atm.rst +6 −0
  42. Documentation/networking/ax25.rst +6 −0
  43. Documentation/networking/baycom.rst +68 −52
  44. Documentation/networking/bonding.rst +685 −632
  45. Documentation/networking/caif/caif.rst +0 −2
  46. Documentation/networking/caif/index.rst +13 −0
  47. Documentation/networking/caif/linux_caif.rst +37 −17
  48. Documentation/networking/caif/spi_porting.rst +229 −0
  49. Documentation/networking/caif/spi_porting.txt +0 −208
  50. Documentation/networking/can.rst +1 −1
  51. Documentation/networking/cdc_mbim.rst +46 −30
  52. Documentation/networking/checksum-offloads.rst +1 −1
  53. Documentation/networking/cops.rst +80 −0
  54. Documentation/networking/cops.txt +0 −63
  55. Documentation/networking/cxacru.rst +53 −33
  56. Documentation/networking/dccp.rst +24 −15
  57. Documentation/networking/dctcp.rst +11 −3
  58. Documentation/networking/decnet.rst +45 −32
  59. Documentation/networking/defza.rst +7 −1
  60. Documentation/networking/device_drivers/3com/3c509.rst +99 −63
  61. Documentation/networking/device_drivers/3com/vortex.rst +120 −107
  62. Documentation/networking/device_drivers/amazon/ena.rst +90 −54
  63. Documentation/networking/device_drivers/aquantia/atlantic.rst +223 −146
  64. Documentation/networking/device_drivers/chelsio/cxgb.rst +112 −71
  65. Documentation/networking/device_drivers/cirrus/cs89x0.rst +291 −268
  66. Documentation/networking/device_drivers/davicom/dm9000.rst +14 −10
  67. Documentation/networking/device_drivers/dec/de4x5.rst +58 −47
  68. Documentation/networking/device_drivers/dec/dmfe.rst +20 −15
  69. Documentation/networking/device_drivers/dlink/dl2k.rst +130 −98
  70. Documentation/networking/device_drivers/freescale/dpaa.rst +75 −66
  71. Documentation/networking/device_drivers/freescale/gianfar.rst +15 −6
  72. Documentation/networking/device_drivers/index.rst +24 −0
  73. Documentation/networking/device_drivers/intel/e100.rst +1 −1
  74. Documentation/networking/device_drivers/intel/ipw2100.rst +135 −105
  75. Documentation/networking/device_drivers/intel/ipw2200.rst +234 −180
  76. Documentation/networking/device_drivers/intel/ixgb.rst +1 −1
  77. Documentation/networking/device_drivers/microsoft/netvsc.rst +34 −23
  78. Documentation/networking/device_drivers/neterion/s2io.rst +196 −0
  79. Documentation/networking/device_drivers/neterion/s2io.txt +0 −141
  80. Documentation/networking/device_drivers/neterion/vxge.rst +41 −19
  81. Documentation/networking/device_drivers/pensando/ionic.rst +230 −1
  82. Documentation/networking/device_drivers/qualcomm/rmnet.rst +28 −15
  83. Documentation/networking/device_drivers/sb1000.rst +222 −0
  84. Documentation/networking/device_drivers/sb1000.txt +0 −207
  85. Documentation/networking/device_drivers/smsc/smc9.rst +48 −0
  86. Documentation/networking/device_drivers/smsc/smc9.txt +0 −42
  87. Documentation/networking/device_drivers/ti/cpsw.rst +587 −0
  88. Documentation/networking/device_drivers/ti/cpsw.txt +0 −541
  89. Documentation/networking/device_drivers/ti/cpsw_switchdev.rst +138 −105
  90. Documentation/networking/device_drivers/ti/tlan.rst +48 −25
  91. Documentation/networking/device_drivers/toshiba/spider_net.rst +29 −31
  92. Documentation/networking/devlink-params-sja1105.txt +27 −0
  93. Documentation/networking/devlink/devlink-region.rst +9 −2
  94. Documentation/networking/devlink/devlink-trap.rst +216 −3
  95. Documentation/networking/devlink/ice.rst +11 −0
  96. Documentation/networking/dns_resolver.rst +25 −27
  97. Documentation/networking/driver.rst +13 −9
  98. Documentation/networking/dsa/sja1105.rst +301 −26
  99. Documentation/networking/eql.rst +144 −299
  100. Documentation/networking/ethtool-netlink.rst +176 −19
  101. Documentation/networking/fib_trie.rst +10 −6
  102. Documentation/networking/filter.rst +487 −381
  103. Documentation/networking/fore200e.rst +5 −3
  104. Documentation/networking/framerelay.rst +13 −8
  105. Documentation/networking/gen_stats.rst +54 −44
  106. Documentation/networking/generic-hdlc.rst +62 −24
  107. Documentation/networking/generic_netlink.rst +6 −0
  108. Documentation/networking/gtp.rst +59 −38
  109. Documentation/networking/hinic.rst +4 −1
  110. Documentation/networking/ila.rst +50 −39
  111. Documentation/networking/index.rst +87 −0
  112. Documentation/networking/ip-sysctl.rst +575 −280
  113. Documentation/networking/ip_dynaddr.rst +20 −9
  114. Documentation/networking/ipddp.rst +9 −4
  115. Documentation/networking/iphase.rst +111 −76
  116. Documentation/networking/ipsec.rst +11 −3
  117. Documentation/networking/ipv6.rst +7 −1
  118. Documentation/networking/ipvlan.rst +101 −58
  119. Documentation/networking/ipvs-sysctl.rst +98 −90
  120. Documentation/networking/kcm.rst +45 −40
  121. Documentation/networking/l2tp.rst +86 −73
  122. Documentation/networking/lapb-module.rst +82 −40
  123. Documentation/networking/ltpc.rst +30 −17
  124. Documentation/networking/mac80211-injection.rst +25 −16
  125. Documentation/networking/mpls-sysctl.rst +13 −4
  126. Documentation/networking/multiqueue.rst +20 −21
  127. Documentation/networking/netconsole.rst +77 −48
  128. Documentation/networking/netdev-features.rst +11 −8
  129. Documentation/networking/netdevices.rst +14 −7
  130. Documentation/networking/netfilter-sysctl.rst +9 −2
  131. Documentation/networking/netif-msg.rst +95 −0
  132. Documentation/networking/netif-msg.txt +0 −79
  133. Documentation/networking/nf_conntrack-sysctl.rst +29 −22
  134. Documentation/networking/nf_flowtable.rst +30 −25
  135. Documentation/networking/openvswitch.rst +13 −10
  136. Documentation/networking/operstates.rst +33 −12
  137. Documentation/networking/packet_mmap.rst +1084 −0
  138. Documentation/networking/packet_mmap.txt +0 −1061
  139. Documentation/networking/phonet.rst +36 −20
  140. Documentation/networking/pktgen.rst +166 −154
  141. Documentation/networking/plip.rst +25 −18
  142. Documentation/networking/ppp_generic.rst +32 −20
  143. Documentation/networking/proc_net_tcp.rst +16 −7
  144. Documentation/networking/radiotap-headers.rst +53 −46
  145. Documentation/networking/ray_cs.rst +60 −45
  146. Documentation/networking/rds.rst +165 −140
  147. Documentation/networking/regulatory.rst +17 −12
  148. Documentation/networking/rxrpc.rst +171 −148
  149. Documentation/networking/sctp.rst +22 −15
  150. Documentation/networking/secid.rst +6 −0
  151. Documentation/networking/seg6-sysctl.rst +26 −0
  152. Documentation/networking/seg6-sysctl.txt +0 −18
  153. Documentation/networking/skfp.rst +93 −60
  154. Documentation/networking/snmp_counter.rst +1 −1
  155. Documentation/networking/strparser.rst +59 −26
  156. Documentation/networking/switchdev.rst +65 −51
  157. Documentation/networking/tc-actions-env-rules.rst +29 −0
  158. Documentation/networking/tc-actions-env-rules.txt +0 −24
  159. Documentation/networking/tcp-thin.rst +5 −0
  160. Documentation/networking/team.rst +6 −0
  161. Documentation/networking/timestamping.rst +93 −73
  162. Documentation/networking/tproxy.rst +31 −26
  163. Documentation/networking/tuntap.rst +116 −84
  164. Documentation/networking/udplite.rst +94 −81
  165. Documentation/networking/vrf.rst +451 −0
  166. Documentation/networking/vrf.txt +0 −418
  167. Documentation/networking/vxlan.rst +21 −12
  168. Documentation/networking/x25-iface.rst +8 −2
  169. Documentation/networking/x25.rst +4 −0
  170. Documentation/networking/xfrm_device.rst +22 −11
  171. Documentation/networking/xfrm_proc.rst +31 −0
  172. Documentation/networking/xfrm_sync.rst +43 −23
  173. Documentation/networking/xfrm_sysctl.rst +7 −0
  174. Documentation/networking/z8530drv.rst +329 −300
  175. Documentation/timers/timers-howto.rst +3 −0
  176. MAINTAINERS +34 −30
  177. arch/arm/boot/dts/imx6qdl-sabresd.dtsi +1 −0
  178. arch/arm/boot/dts/imx6qdl.dtsi +1 −1
  179. arch/arm/boot/dts/imx6sx.dtsi +2 −0
  180. arch/arm/boot/dts/imx6ul.dtsi +2 −0
  181. arch/arm/boot/dts/imx7d.dtsi +1 −0
  182. arch/arm/boot/dts/imx7s.dtsi +1 −0
  183. arch/arm/boot/dts/qcom-ipq4019.dtsi +28 −0
  184. arch/arm/net/bpf_jit_32.c +9 −5
  185. arch/arm/net/bpf_jit_32.h +3 −0
  186. arch/arm64/boot/dts/mediatek/mt8516.dtsi +17 −0
  187. arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi +34 −0
  188. arch/arm64/boot/dts/qcom/sdm845.dtsi +2 −0
  189. arch/arm64/boot/dts/ti/k3-am65-main.dtsi +22 −0
  190. arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi +21 −0
  191. arch/arm64/boot/dts/ti/k3-j721e-main.dtsi +12 −0
  192. arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi +11 −0
  193. arch/arm64/kernel/armv8_deprecated.c +1 −1
  194. arch/arm64/kernel/fpsimd.c +1 −2
  195. arch/riscv/net/bpf_jit_comp32.c +68 −35
  196. arch/riscv/net/bpf_jit_comp64.c +44 −20
  197. arch/s390/appldata/appldata_base.c +5 −6
  198. arch/s390/include/asm/ccwgroup.h +0 −10
  199. arch/s390/kernel/debug.c +1 −1
  200. arch/s390/kernel/topology.c +1 −1
  201. arch/s390/mm/cmm.c +5 −7
  202. arch/s390/net/bpf_jit_comp.c +12 −10
  203. arch/x86/kernel/itmt.c +1 −2
  204. arch/x86/net/bpf_jit_comp32.c +2 −2
  205. drivers/atm/Kconfig +2 −2
  206. drivers/block/drbd/drbd_int.h +0 −28
  207. drivers/block/drbd/drbd_main.c +1 −1
  208. drivers/block/drbd/drbd_receiver.c +6 −7
  209. drivers/block/drbd/drbd_worker.c +3 −3
  210. drivers/bluetooth/btbcm.c +81 −61
  211. drivers/bluetooth/btbcm.h +4 −6
  212. drivers/bluetooth/btmtkuart.c +9 −8
  213. drivers/bluetooth/btqca.c +22 −10
  214. drivers/bluetooth/btqca.h +2 −1
  215. drivers/bluetooth/btrtl.c +9 −1
  216. drivers/bluetooth/btusb.c +158 −47
  217. drivers/bluetooth/hci_bcm.c +16 −19
  218. drivers/bluetooth/hci_h5.c +2 −0
  219. drivers/bluetooth/hci_qca.c +145 −33
  220. drivers/bluetooth/hci_serdev.c +1 −3
  221. drivers/cdrom/cdrom.c +1 −1
  222. drivers/char/random.c +1 −1
  223. drivers/crypto/chelsio/chcr_algo.c +72 −28
  224. drivers/crypto/chelsio/chcr_core.c +10 −13
  225. drivers/crypto/chelsio/chcr_core.h +8 −2
  226. drivers/crypto/chelsio/chcr_crypto.h +1 −0
  227. drivers/crypto/chelsio/chcr_ipsec.c +1 −4
  228. drivers/crypto/chelsio/chcr_ktls.c +48 −59
  229. drivers/crypto/chelsio/chcr_ktls.h +7 −2
  230. drivers/crypto/chelsio/chtls/chtls_cm.c +155 −40
  231. drivers/crypto/chelsio/chtls/chtls_cm.h +1 −0
  232. drivers/crypto/chelsio/chtls/chtls_main.c +11 −3
  233. drivers/infiniband/hw/mlx5/Makefile +21 −7
  234. drivers/infiniband/hw/mlx5/cmd.c +0 −17
  235. drivers/infiniband/hw/mlx5/cmd.h +0 −2
  236. drivers/infiniband/hw/mlx5/cq.c +6 −5
  237. drivers/infiniband/hw/mlx5/devx.c +5 −5
  238. drivers/infiniband/hw/mlx5/flow.c +6 −3
  239. drivers/infiniband/hw/mlx5/ib_virt.c +1 −1
  240. drivers/infiniband/hw/mlx5/mad.c +2 −3
  241. drivers/infiniband/hw/mlx5/main.c +70 −73
  242. drivers/infiniband/hw/mlx5/mlx5_ib.h +2 −1
  243. drivers/infiniband/hw/mlx5/odp.c +2 −1
  244. drivers/infiniband/hw/mlx5/qp.c +37 −42
  245. drivers/infiniband/hw/mlx5/qp.h +46 −0
  246. drivers/infiniband/hw/mlx5/qpc.c +86 −218
  247. drivers/infiniband/hw/mlx5/srq_cmd.c +1 −1
  248. drivers/infiniband/sw/siw/siw_cm.c +9 −33
  249. drivers/macintosh/mac_hid.c +1 −2
  250. drivers/media/rc/bpf-lirc.c +3 −1
  251. drivers/net/Kconfig +6 −6
  252. drivers/net/appletalk/Kconfig +4 −4
  253. drivers/net/arcnet/Kconfig +3 −3
  254. drivers/net/bonding/bond_alb.c +30 −16
  255. drivers/net/bonding/bond_main.c +201 −99
  256. drivers/net/bonding/bonding_priv.h +1 −1
  257. drivers/net/caif/Kconfig +1 −1
  258. drivers/net/dsa/b53/b53_common.c +51 −31
  259. drivers/net/dsa/b53/b53_priv.h +7 −1
  260. drivers/net/dsa/b53/b53_srab.c +1 −1
  261. drivers/net/dsa/mt7530.c +9 −15
  262. drivers/net/dsa/mt7530.h +6 −0
  263. drivers/net/dsa/mv88e6xxx/chip.c +12 −4
  264. drivers/net/dsa/mv88e6xxx/serdes.c +47 −8
  265. drivers/net/dsa/mv88e6xxx/serdes.h +2 −5
  266. drivers/net/dsa/ocelot/felix.c +85 −0
  267. drivers/net/dsa/ocelot/felix.h +6 −0
  268. drivers/net/dsa/ocelot/felix_vsc9959.c +191 −1
  269. drivers/net/dsa/sja1105/Kconfig +9 −0
  270. drivers/net/dsa/sja1105/Makefile +4 −0
  271. drivers/net/dsa/sja1105/sja1105.h +88 −15
  272. drivers/net/dsa/sja1105/sja1105_clocking.c +51 −7
  273. drivers/net/dsa/sja1105/sja1105_dynamic_config.c +199 −9
  274. drivers/net/dsa/sja1105/sja1105_ethtool.c +74 −70
  275. drivers/net/dsa/sja1105/sja1105_flower.c +188 −27
  276. drivers/net/dsa/sja1105/sja1105_main.c +1142 −93
  277. drivers/net/dsa/sja1105/sja1105_ptp.h +13 −0
  278. drivers/net/dsa/sja1105/sja1105_spi.c +16 −0
  279. drivers/net/dsa/sja1105/sja1105_static_config.c +266 −8
  280. drivers/net/dsa/sja1105/sja1105_static_config.h +118 −0
  281. drivers/net/dsa/sja1105/sja1105_tas.c +112 −15
  282. drivers/net/dsa/sja1105/sja1105_tas.h +36 −0
  283. drivers/net/dsa/sja1105/sja1105_vl.c +782 −0
  284. drivers/net/dsa/sja1105/sja1105_vl.h +74 −0
  285. drivers/net/dsa/vitesse-vsc73xx-platform.c +1 −9
  286. drivers/net/ethernet/3com/3c509.c +0 −1
  287. drivers/net/ethernet/3com/3c515.c +0 −1
  288. drivers/net/ethernet/3com/3c59x.c +2 −2
  289. drivers/net/ethernet/3com/Kconfig +1 −1
  290. drivers/net/ethernet/8390/ne2k-pci.c +182 −163
  291. drivers/net/ethernet/adaptec/starfire.c +0 −1
  292. drivers/net/ethernet/agere/et131x.c +2 −2
  293. drivers/net/ethernet/allwinner/sun4i-emac.c +2 −2
  294. drivers/net/ethernet/altera/altera_tse_main.c +2 −2
  295. drivers/net/ethernet/amazon/ena/ena_admin_defs.h +15 −4
  296. drivers/net/ethernet/amazon/ena/ena_com.c +67 −57
  297. drivers/net/ethernet/amazon/ena/ena_com.h +41 −39
  298. drivers/net/ethernet/amazon/ena/ena_common_defs.h +1 −1
  299. drivers/net/ethernet/amazon/ena/ena_eth_com.c +16 −10
  300. drivers/net/ethernet/amazon/ena/ena_eth_com.h +4 −3
  301. drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h +4 −2
  302. drivers/net/ethernet/amazon/ena/ena_ethtool.c +47 −38
  303. drivers/net/ethernet/amazon/ena/ena_netdev.c +37 −18
  304. drivers/net/ethernet/amazon/ena/ena_netdev.h +7 −10
  305. drivers/net/ethernet/amazon/ena/ena_regs_defs.h +1 −1
  306. drivers/net/ethernet/amd/7990.c +1 −1
  307. drivers/net/ethernet/amd/7990.h +1 −1
  308. drivers/net/ethernet/amd/atarilance.c +1 −1
  309. drivers/net/ethernet/aquantia/atlantic/Makefile +4 −0
  310. drivers/net/ethernet/aquantia/atlantic/aq_cfg.h +2 −2
  311. drivers/net/ethernet/aquantia/atlantic/aq_common.h +25 −15
  312. drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c +44 −35
  313. drivers/net/ethernet/aquantia/atlantic/aq_filters.c +7 −4
  314. drivers/net/ethernet/aquantia/atlantic/aq_hw.h +36 −6
  315. drivers/net/ethernet/aquantia/atlantic/aq_hw_utils.c +26 −0
  316. drivers/net/ethernet/aquantia/atlantic/aq_hw_utils.h +2 −0
  317. drivers/net/ethernet/aquantia/atlantic/aq_macsec.c +3 −3
  318. drivers/net/ethernet/aquantia/atlantic/aq_main.c +71 −1
  319. drivers/net/ethernet/aquantia/atlantic/aq_nic.c +268 −67
  320. drivers/net/ethernet/aquantia/atlantic/aq_nic.h +24 −3
  321. drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +35 −7
  322. drivers/net/ethernet/aquantia/atlantic/aq_ptp.c +13 −14
  323. drivers/net/ethernet/aquantia/atlantic/aq_ring.c +14 −5
  324. drivers/net/ethernet/aquantia/atlantic/aq_vec.c +46 −26
  325. drivers/net/ethernet/aquantia/atlantic/aq_vec.h +4 −4
  326. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c +16 −14
  327. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c +226 −122
  328. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h +41 −3
  329. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0_internal.h +5 −1
  330. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c +66 −17
  331. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h +32 −10
  332. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h +88 −13
  333. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c +28 −32
  334. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.h +10 −16
  335. drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c +7 −28
  336. drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c +841 −0
  337. drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.h +14 −0
  338. drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_internal.h +127 −0
  339. drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.c +234 −0
  340. drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.h +102 −0
  341. drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh_internal.h +391 −0
  342. drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_utils.c +131 −0
  343. drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_utils.h +606 −0
  344. drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_utils_fw.c +320 −0
  345. drivers/net/ethernet/aquantia/atlantic/macsec/macsec_api.c +3 −3
  346. drivers/net/ethernet/atheros/ag71xx.c +38 −5
  347. drivers/net/ethernet/atheros/atl1c/atl1c_main.c +1 −7
  348. drivers/net/ethernet/atheros/atlx/atl1.c +1 −1
  349. drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c +3 −4
  350. drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c +15 −11
  351. drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c +0 −21
  352. drivers/net/ethernet/broadcom/bnxt/bnxt.c +68 −32
  353. drivers/net/ethernet/broadcom/bnxt/bnxt.h +21 −4
  354. drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +188 −73
  355. drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h +6 −2
  356. drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h +184 −32
  357. drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c +1 −1
  358. drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c +12 −39
  359. drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c +9 −1
  360. drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h +8 −0
  361. drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +1 −0
  362. drivers/net/ethernet/broadcom/cnic.c +0 −1
  363. drivers/net/ethernet/broadcom/genet/bcmgenet.c +703 −87
  364. drivers/net/ethernet/broadcom/genet/bcmgenet.h +22 −1
  365. drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c +66 −30
  366. drivers/net/ethernet/broadcom/tg3.c +3 −5
  367. drivers/net/ethernet/cavium/liquidio/lio_core.c +0 −1
  368. drivers/net/ethernet/cavium/liquidio/octeon_device.h +0 −12
  369. drivers/net/ethernet/cavium/octeon/octeon_mgmt.c +5 −0
  370. drivers/net/ethernet/cavium/thunder/nicvf_main.c +1 −0
  371. drivers/net/ethernet/chelsio/Kconfig +1 −1
  372. drivers/net/ethernet/chelsio/cxgb4/cxgb4.h +28 −16
  373. drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c +124 −42
  374. drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +89 −7
  375. drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c +17 −0
  376. drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.h +1 −0
  377. drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c +135 −69
  378. drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h +14 −0
  379. drivers/net/ethernet/chelsio/cxgb4/sched.c +2 −1
  380. drivers/net/ethernet/chelsio/cxgb4/sge.c +26 −14
  381. drivers/net/ethernet/chelsio/cxgb4/t4_hw.c +5 −3
  382. drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h +8 −2
  383. drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c +1 −1
  384. drivers/net/ethernet/cirrus/Kconfig +1 −1
  385. drivers/net/ethernet/cortina/gemini.c +2 −1
  386. drivers/net/ethernet/dec/tulip/Kconfig +2 −2
  387. drivers/net/ethernet/dec/tulip/de4x5.c +4 −6
  388. drivers/net/ethernet/dlink/dl2k.c +1 −1
  389. drivers/net/ethernet/dnet.c +1 −2
  390. drivers/net/ethernet/faraday/ftmac100.c +0 −3
  391. drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +1 −1
  392. drivers/net/ethernet/freescale/dpaa2/Kconfig +10 −0
  393. drivers/net/ethernet/freescale/dpaa2/Makefile +1 −0
  394. drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-dcb.c +150 −0
  395. drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-debugfs.c +10 −6
  396. drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +374 −117
  397. drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h +71 −14
  398. drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c +16 −10
  399. drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h +59 −0
  400. drivers/net/ethernet/freescale/dpaa2/dpni.c +177 −0
  401. drivers/net/ethernet/freescale/dpaa2/dpni.h +97 −0
  402. drivers/net/ethernet/freescale/enetc/enetc.c +33 −1
  403. drivers/net/ethernet/freescale/enetc/enetc.h +86 −0
  404. drivers/net/ethernet/freescale/enetc/enetc_hw.h +159 −0
  405. drivers/net/ethernet/freescale/enetc/enetc_pf.c +22 −28
  406. drivers/net/ethernet/freescale/enetc/enetc_qos.c +1103 −0
  407. drivers/net/ethernet/freescale/fec.h +1 −3
  408. drivers/net/ethernet/freescale/fec_main.c +77 −50
  409. drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c +2 −2
  410. drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h +6 −1
  411. drivers/net/ethernet/hisilicon/hns3/hnae3.h +8 −17
  412. drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c +3 −1
  413. drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +26 −140
  414. drivers/net/ethernet/hisilicon/hns3/hns3_enet.h +1 −52
  415. drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c +82 −6
  416. drivers/net/ethernet/hisilicon/hns3/hns3pf/Makefile +1 −0
  417. drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c +3 −2
  418. drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h +19 −29
  419. drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c +182 −13
  420. drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.h +0 −1
  421. drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +1199 −559
  422. drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h +24 −16
  423. drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +47 −32
  424. drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c +1 −1
  425. drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h +87 −0
  426. drivers/net/ethernet/hisilicon/hns3/hns3vf/Makefile +1 −0
  427. drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c +0 −3
  428. drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.h +2 −2
  429. drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +343 −45
  430. drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h +28 −4
  431. drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c +7 −0
  432. drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h +87 −0
  433. drivers/net/ethernet/huawei/hinic/Makefile +1 −1
  434. drivers/net/ethernet/huawei/hinic/hinic_dev.h +5 −0
  435. drivers/net/ethernet/huawei/hinic/hinic_ethtool.c +518 −20
  436. drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c +37 −10
  437. drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.h +1 −1
  438. drivers/net/ethernet/huawei/hinic/hinic_hw_csr.h +1 −1
  439. drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c +106 −99
  440. drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h +89 −1
  441. drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.c +82 −16
  442. drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.h +4 −3
  443. drivers/net/ethernet/huawei/hinic/hinic_hw_if.c +69 −9
  444. drivers/net/ethernet/huawei/hinic/hinic_hw_if.h +23 −3
  445. drivers/net/ethernet/huawei/hinic/hinic_hw_io.c +51 −2
  446. drivers/net/ethernet/huawei/hinic/hinic_hw_io.h +25 −1
  447. drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c +1210 −0
  448. drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.h +154 −0
  449. drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c +14 −3
  450. drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.h +10 −2
  451. drivers/net/ethernet/huawei/hinic/hinic_hw_qp.c +7 −1
  452. drivers/net/ethernet/huawei/hinic/hinic_hw_qp.h +5 −2
  453. drivers/net/ethernet/huawei/hinic/hinic_hw_wq.c +6 −3
  454. drivers/net/ethernet/huawei/hinic/hinic_hw_wq.h +3 −3
  455. drivers/net/ethernet/huawei/hinic/hinic_main.c +125 −17
  456. drivers/net/ethernet/huawei/hinic/hinic_port.c +170 −37
  457. drivers/net/ethernet/huawei/hinic/hinic_port.h +157 −2
  458. drivers/net/ethernet/huawei/hinic/hinic_rx.c +9 −6
  459. drivers/net/ethernet/huawei/hinic/hinic_sriov.c +1294 −0
  460. drivers/net/ethernet/huawei/hinic/hinic_sriov.h +109 −0
  461. drivers/net/ethernet/huawei/hinic/hinic_tx.c +10 −7
  462. drivers/net/ethernet/intel/e1000/e1000_hw.c +1 −1
  463. drivers/net/ethernet/intel/e1000/e1000_main.c +17 −5
  464. drivers/net/ethernet/intel/e1000e/e1000.h +0 −1
  465. drivers/net/ethernet/intel/e1000e/ich8lan.c +5 −1
  466. drivers/net/ethernet/intel/e1000e/netdev.c +106 −9
  467. drivers/net/ethernet/intel/e1000e/regs.h +3 −0
  468. drivers/net/ethernet/intel/i40e/i40e_adminq.c +1 −5
  469. drivers/net/ethernet/intel/i40e/i40e_main.c +30 −22
  470. drivers/net/ethernet/intel/i40e/i40e_prototype.h +1 −1
  471. drivers/net/ethernet/intel/i40e/i40e_txrx.c +80 −86
  472. drivers/net/ethernet/intel/i40e/i40e_txrx.h +5 −12
  473. drivers/net/ethernet/intel/i40e/i40e_txrx_common.h +34 −6
  474. drivers/net/ethernet/intel/i40e/i40e_type.h +4 −1
  475. drivers/net/ethernet/intel/i40e/i40e_xsk.c +56 −325
  476. drivers/net/ethernet/intel/i40e/i40e_xsk.h +2 −1
  477. drivers/net/ethernet/intel/ice/Makefile +4 −0
  478. drivers/net/ethernet/intel/ice/ice.h +66 −6
  479. drivers/net/ethernet/intel/ice/ice_adminq_cmd.h +67 −9
  480. drivers/net/ethernet/intel/ice/ice_arfs.c +663 −0
  481. drivers/net/ethernet/intel/ice/ice_arfs.h +82 −0
  482. drivers/net/ethernet/intel/ice/ice_base.c +62 −55
  483. drivers/net/ethernet/intel/ice/ice_common.c +137 −9
  484. drivers/net/ethernet/intel/ice/ice_common.h +4 −1
  485. drivers/net/ethernet/intel/ice/ice_controlq.c +102 −78
  486. drivers/net/ethernet/intel/ice/ice_controlq.h +3 −0
  487. drivers/net/ethernet/intel/ice/ice_dcb_lib.c +80 −25
  488. drivers/net/ethernet/intel/ice/ice_dcb_lib.h +24 −1
  489. drivers/net/ethernet/intel/ice/ice_dcb_nl.c +5 −6
  490. drivers/net/ethernet/intel/ice/ice_devlink.c +23 −0
  491. drivers/net/ethernet/intel/ice/ice_ethtool.c +79 −55
  492. drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c +1697 −0
  493. drivers/net/ethernet/intel/ice/ice_fdir.c +840 −0
  494. drivers/net/ethernet/intel/ice/ice_fdir.h +166 −0
  495. drivers/net/ethernet/intel/ice/ice_flex_pipe.c +886 −33
  496. drivers/net/ethernet/intel/ice/ice_flex_pipe.h +8 −0
  497. drivers/net/ethernet/intel/ice/ice_flex_type.h +37 −4
  498. drivers/net/ethernet/intel/ice/ice_flow.c +348 −7
  499. drivers/net/ethernet/intel/ice/ice_flow.h +46 −1
  500. drivers/net/ethernet/intel/ice/ice_fltr.c +397 −0
  501. drivers/net/ethernet/intel/ice/ice_fltr.h +39 −0
  502. drivers/net/ethernet/intel/ice/ice_hw_autogen.h +26 −3
  503. drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h +127 −1
  504. drivers/net/ethernet/intel/ice/ice_lib.c +318 −287
  505. drivers/net/ethernet/intel/ice/ice_lib.h +7 −7
  506. drivers/net/ethernet/intel/ice/ice_main.c +608 −125
  507. drivers/net/ethernet/intel/ice/ice_nvm.c +89 −2
  508. drivers/net/ethernet/intel/ice/ice_nvm.h +0 −4
  509. drivers/net/ethernet/intel/ice/ice_protocol_type.h +3 −0
  510. drivers/net/ethernet/intel/ice/ice_sched.c +5 −9
  511. drivers/net/ethernet/intel/ice/ice_status.h +3 −0
  512. drivers/net/ethernet/intel/ice/ice_switch.c +84 −12
  513. drivers/net/ethernet/intel/ice/ice_switch.h +7 −0
  514. drivers/net/ethernet/intel/ice/ice_txrx.c +350 −65
  515. drivers/net/ethernet/intel/ice/ice_txrx.h +19 −9
  516. drivers/net/ethernet/intel/ice/ice_txrx_lib.c +25 −13
  517. drivers/net/ethernet/intel/ice/ice_txrx_lib.h +2 −2
  518. drivers/net/ethernet/intel/ice/ice_type.h +77 −3
  519. drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c +885 −390
  520. drivers/net/ethernet/intel/ice/ice_virtchnl_pf.h +13 −2
  521. drivers/net/ethernet/intel/ice/ice_xsk.c +43 −337
  522. drivers/net/ethernet/intel/ice/ice_xsk.h +3 −10
  523. drivers/net/ethernet/intel/igb/e1000_mac.c +3 −6
  524. drivers/net/ethernet/intel/igb/igb_ethtool.c +2 −1
  525. drivers/net/ethernet/intel/igc/Makefile +1 −1
  526. drivers/net/ethernet/intel/igc/igc.h +217 −232
  527. drivers/net/ethernet/intel/igc/igc_base.c +6 −3
  528. drivers/net/ethernet/intel/igc/igc_defines.h +23 −28
  529. drivers/net/ethernet/intel/igc/igc_diag.c +186 −0
  530. drivers/net/ethernet/intel/igc/igc_diag.h +30 −0
  531. drivers/net/ethernet/intel/igc/igc_dump.c +54 −59
  532. drivers/net/ethernet/intel/igc/igc_ethtool.c +344 −439
  533. drivers/net/ethernet/intel/igc/igc_hw.h +3 −0
  534. drivers/net/ethernet/intel/igc/igc_mac.c +2 −7
  535. drivers/net/ethernet/intel/igc/igc_mac.h +0 −4
  536. drivers/net/ethernet/intel/igc/igc_main.c +699 −342
  537. drivers/net/ethernet/intel/igc/igc_ptp.c +5 −19
  538. drivers/net/ethernet/intel/igc/igc_regs.h +17 −27
  539. drivers/net/ethernet/intel/igc/igc_tsn.c +157 −0
  540. drivers/net/ethernet/intel/igc/igc_tsn.h +9 −0
  541. drivers/net/ethernet/intel/ixgbe/ixgbe.h +4 −5
  542. drivers/net/ethernet/intel/ixgbe/ixgbe_common.c +2 −3
  543. drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +33 −46
  544. drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +1 −1
  545. drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h +1 −1
  546. drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c +53 −256
  547. drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +27 −7
  548. drivers/net/ethernet/lantiq_xrx200.c +2 −1
  549. drivers/net/ethernet/marvell/mv643xx_eth.c +0 −5
  550. drivers/net/ethernet/marvell/mvneta.c +18 −12
  551. drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +22 −30
  552. drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h +2 −15
  553. drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +6 −2
  554. drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c +1 −2
  555. drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.h +0 −4
  556. drivers/net/ethernet/mediatek/Kconfig +8 −1
  557. drivers/net/ethernet/mediatek/Makefile +2 −1
  558. drivers/net/ethernet/mediatek/mtk_eth_soc.c +2 −2
  559. drivers/net/ethernet/mediatek/mtk_star_emac.c +1651 −0
  560. drivers/net/ethernet/mellanox/mlx4/crdump.c +1 −0
  561. drivers/net/ethernet/mellanox/mlx4/en_ethtool.c +2 −4
  562. drivers/net/ethernet/mellanox/mlx4/en_netdev.c +2 −1
  563. drivers/net/ethernet/mellanox/mlx4/en_rx.c +2 −1
  564. drivers/net/ethernet/mellanox/mlx4/en_tx.c +10 −10
  565. drivers/net/ethernet/mellanox/mlx4/mlx4_en.h +2 −2
  566. drivers/net/ethernet/mellanox/mlx5/core/Kconfig +16 −1
  567. drivers/net/ethernet/mellanox/mlx5/core/Makefile +12 −5
  568. drivers/net/ethernet/mellanox/mlx5/core/accel/accel.h +0 −1
  569. drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec.c +14 −5
  570. drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec.h +2 −6
  571. drivers/net/ethernet/mellanox/mlx5/core/accel/tls.c +2 −2
  572. drivers/net/ethernet/mellanox/mlx5/core/accel/tls.h +4 −4
  573. drivers/net/ethernet/mellanox/mlx5/core/cmd.c +19 −6
  574. drivers/net/ethernet/mellanox/mlx5/core/cq.c +9 −14
  575. drivers/net/ethernet/mellanox/mlx5/core/debugfs.c +29 −39
  576. drivers/net/ethernet/mellanox/mlx5/core/diag/fs_tracepoint.c +43 −42
  577. drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c +1 −1
  578. drivers/net/ethernet/mellanox/mlx5/core/ecpf.c +6 −24
  579. drivers/net/ethernet/mellanox/mlx5/core/en.h +11 −90
  580. drivers/net/ethernet/mellanox/mlx5/core/en/dcbnl.h +54 −0
  581. drivers/net/ethernet/mellanox/mlx5/core/en/health.c +1 −1
  582. drivers/net/ethernet/mellanox/mlx5/core/en/monitor_stats.c +14 −32
  583. drivers/net/ethernet/mellanox/mlx5/core/en/params.c +7 −6
  584. drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c +350 −0
  585. drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c +368 −0
  586. drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.h +34 −0
  587. drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c +646 −0
  588. drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.h +77 −0
  589. drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c +293 −34
  590. drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c +20 −11
  591. drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.h +2 −0
  592. drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_mplsoudp.c +134 −0
  593. drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h +127 −26
  594. drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c +56 −45
  595. drivers/net/ethernet/mellanox/mlx5/core/en/xdp.h +5 −32
  596. drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c +21 −92
  597. drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.h +18 −7
  598. drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.c +4 −5
  599. drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.h +1 −1
  600. drivers/net/ethernet/mellanox/mlx5/core/en/xsk/umem.c +7 −44
  601. drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h +34 −16
  602. drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c +35 −52
  603. drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.h +0 −25
  604. drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c +7 −8
  605. drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.h +3 −3
  606. drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_stats.c +51 −37
  607. drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c +13 −0
  608. drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h +18 −10
  609. drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c +25 −56
  610. drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c +15 −1
  611. drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.h +7 −0
  612. drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c +35 −33
  613. drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h +8 −5
  614. drivers/net/ethernet/mellanox/mlx5/core/en_common.c +13 −7
  615. drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c +28 −2
  616. drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +2 −2
  617. drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c +1 −1
  618. drivers/net/ethernet/mellanox/mlx5/core/en_main.c +130 −139
  619. drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +42 −893
  620. drivers/net/ethernet/mellanox/mlx5/core/en_rep.h +29 −10
  621. drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +69 −47
  622. drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c +2 −2
  623. drivers/net/ethernet/mellanox/mlx5/core/en_stats.c +32 −47
  624. drivers/net/ethernet/mellanox/mlx5/core/en_stats.h +2 −0
  625. drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +430 −205
  626. drivers/net/ethernet/mellanox/mlx5/core/en_tc.h +54 −8
  627. drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +24 −42
  628. drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c +5 −2
  629. drivers/net/ethernet/mellanox/mlx5/core/eq.c +2 −4
  630. drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c +170 −0
  631. drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_ofld.c +235 −0
  632. drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c +160 −0
  633. drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.h +26 −0
  634. drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c +279 −0
  635. drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c +322 −0
  636. drivers/net/ethernet/mellanox/mlx5/core/esw/acl/lgcy.h +17 −0
  637. drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ofld.h +29 −0
  638. drivers/net/ethernet/mellanox/mlx5/core/esw/chains.c +1 −1
  639. drivers/net/ethernet/mellanox/mlx5/core/esw/chains.h +19 −0
  640. drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +26 −574
  641. drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +23 −27
  642. drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +92 −335
  643. drivers/net/ethernet/mellanox/mlx5/core/fpga/cmd.c +13 −16
  644. drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c +45 −91
  645. drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.h +1 −1
  646. drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c +27 −4
  647. drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.h +16 −2
  648. drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c +2 −2
  649. drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.h +2 −2
  650. drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c +36 −50
  651. drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +95 −40
  652. drivers/net/ethernet/mellanox/mlx5/core/fs_core.h +2 −0
  653. drivers/net/ethernet/mellanox/mlx5/core/fw.c +13 −21
  654. drivers/net/ethernet/mellanox/mlx5/core/health.c +0 −1
  655. drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c +88 −73
  656. drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h +9 −15
  657. drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c +9 −12
  658. drivers/net/ethernet/mellanox/mlx5/core/lag.c +62 −56
  659. drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c +21 −0
  660. drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c +10 −5
  661. drivers/net/ethernet/mellanox/mlx5/core/lib/eq.h +0 −1
  662. drivers/net/ethernet/mellanox/mlx5/core/lib/gid.c +2 −3
  663. drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c +4 −6
  664. drivers/net/ethernet/mellanox/mlx5/core/lib/port_tun.c +2 −3
  665. drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c +4 −6
  666. drivers/net/ethernet/mellanox/mlx5/core/main.c +99 −104
  667. drivers/net/ethernet/mellanox/mlx5/core/mcg.c +4 −7
  668. drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h +0 −3
  669. drivers/net/ethernet/mellanox/mlx5/core/mr.c +9 −12
  670. drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c +71 −28
  671. drivers/net/ethernet/mellanox/mlx5/core/pd.c +5 −7
  672. drivers/net/ethernet/mellanox/mlx5/core/port.c +5 −6
  673. drivers/net/ethernet/mellanox/mlx5/core/rl.c +9 −13
  674. drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c +1 −1
  675. drivers/net/ethernet/mellanox/mlx5/core/steering/dr_cmd.c +14 −19
  676. drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c +8 −6
  677. drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c +25 −28
  678. drivers/net/ethernet/mellanox/mlx5/core/steering/dr_matcher.c +5 −5
  679. drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c +14 −17
  680. drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c +36 −34
  681. drivers/net/ethernet/mellanox/mlx5/core/steering/dr_ste.c +2 −3
  682. drivers/net/ethernet/mellanox/mlx5/core/steering/dr_table.c +6 −6
  683. drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h +26 −4
  684. drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c +1 −1
  685. drivers/net/ethernet/mellanox/mlx5/core/transobj.c +40 −73
  686. drivers/net/ethernet/mellanox/mlx5/core/uar.c +5 −7
  687. drivers/net/ethernet/mellanox/mlx5/core/vport.c +67 −75
  688. drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c +2 −2
  689. drivers/net/ethernet/mellanox/mlxsw/Makefile +1 −0
  690. drivers/net/ethernet/mellanox/mlxsw/reg.h +12 −15
  691. drivers/net/ethernet/mellanox/mlxsw/spectrum.c +24 −588
  692. drivers/net/ethernet/mellanox/mlxsw/spectrum.h +121 −64
  693. drivers/net/ethernet/mellanox/mlxsw/spectrum2_mr_tcam.c +7 −7
  694. drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c +34 −186
  695. drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_flex_actions.c +19 −12
  696. drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c +34 −5
  697. drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h +2 −1
  698. drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c +1 −1
  699. drivers/net/ethernet/mellanox/mlxsw/spectrum_flow.c +305 −0
  700. drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c +68 −16
  701. drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c +378 −0
  702. drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +11 −5
  703. drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c +396 −225
  704. drivers/net/ethernet/mellanox/mlxsw/spectrum_span.h +30 −24
  705. drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c +1072 −252
  706. drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.h +10 −8
  707. drivers/net/ethernet/mellanox/mlxsw/switchx2.c +5 −0
  708. drivers/net/ethernet/mellanox/mlxsw/trap.h +5 −2
  709. drivers/net/ethernet/micrel/Kconfig +2 −0
  710. drivers/net/ethernet/micrel/Makefile +2 −0
  711. drivers/net/ethernet/micrel/ks8851.h +150 −1
  712. drivers/net/ethernet/micrel/ks8851_common.c +139 −559
  713. drivers/net/ethernet/micrel/ks8851_mll.c +0 −1393
  714. drivers/net/ethernet/micrel/ks8851_par.c +357 −0
  715. drivers/net/ethernet/micrel/ks8851_spi.c +485 −0
  716. drivers/net/ethernet/microchip/encx24j600-regmap.c +0 −5
  717. drivers/net/ethernet/microchip/encx24j600.c +2 −10
  718. drivers/net/ethernet/microchip/lan743x_ethtool.c +2 −2
  719. drivers/net/ethernet/microchip/lan743x_main.c +71 −10
  720. drivers/net/ethernet/microchip/lan743x_main.h +6 −0
  721. drivers/net/ethernet/microchip/lan743x_ptp.c +1 −1
  722. drivers/net/ethernet/moxa/moxart_ether.c +3 −2
  723. drivers/net/ethernet/mscc/Makefile +1 −1
  724. drivers/net/ethernet/mscc/ocelot.c +18 −217
  725. drivers/net/ethernet/mscc/ocelot.h +1 −2
  726. drivers/net/ethernet/mscc/ocelot_ace.c +112 −1
  727. drivers/net/ethernet/mscc/ocelot_ace.h +3 −2
  728. drivers/net/ethernet/mscc/ocelot_board.c +29 −1
  729. drivers/net/ethernet/mscc/ocelot_flower.c +20 −9
  730. drivers/net/ethernet/mscc/ocelot_ptp.c +324 −0
  731. drivers/net/ethernet/mscc/ocelot_regs.c +2 −0
  732. drivers/net/ethernet/mscc/ocelot_tc.c +3 −3
  733. drivers/net/ethernet/myricom/myri10ge/myri10ge.c +0 −12
  734. drivers/net/ethernet/neterion/Kconfig +2 −2
  735. drivers/net/ethernet/netronome/nfp/flower/action.c +2 −2
  736. drivers/net/ethernet/netronome/nfp/flower/cmsg.c +2 −2
  737. drivers/net/ethernet/netronome/nfp/flower/main.c +87 −38
  738. drivers/net/ethernet/netronome/nfp/flower/main.h +21 −6
  739. drivers/net/ethernet/netronome/nfp/flower/match.c +31 −11
  740. drivers/net/ethernet/netronome/nfp/flower/offload.c +6 −29
  741. drivers/net/ethernet/netronome/nfp/nfp_main.c +0 −3
  742. drivers/net/ethernet/netronome/nfp/nfp_net_common.c +6 −0
  743. drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c +1 −4
  744. drivers/net/ethernet/netronome/nfp/nfp_net_repr.c +16 −0
  745. drivers/net/ethernet/ni/nixge.c +2 −1
  746. drivers/net/ethernet/nxp/lpc_eth.c +4 −2
  747. drivers/net/ethernet/pensando/ionic/ionic_dev.c +14 −0
  748. drivers/net/ethernet/pensando/ionic/ionic_dev.h +11 −6
  749. drivers/net/ethernet/pensando/ionic/ionic_ethtool.c +12 −8
  750. drivers/net/ethernet/pensando/ionic/ionic_if.h +672 −417
  751. drivers/net/ethernet/pensando/ionic/ionic_lif.c +145 −13
  752. drivers/net/ethernet/pensando/ionic/ionic_lif.h +26 −2
  753. drivers/net/ethernet/pensando/ionic/ionic_main.c +5 −2
  754. drivers/net/ethernet/pensando/ionic/ionic_stats.c +134 −2
  755. drivers/net/ethernet/pensando/ionic/ionic_stats.h +6 −0
  756. drivers/net/ethernet/pensando/ionic/ionic_txrx.c +33 −16
  757. drivers/net/ethernet/qlogic/qed/qed.h +8 −8
  758. drivers/net/ethernet/qlogic/qed/qed_cxt.c +50 −10
  759. drivers/net/ethernet/qlogic/qed/qed_cxt.h +8 −2
  760. drivers/net/ethernet/qlogic/qed/qed_debug.c +13 −13
  761. drivers/net/ethernet/qlogic/qed/qed_dev.c +10 −4
  762. drivers/net/ethernet/qlogic/qed/qed_hsi.h +47 −2
  763. drivers/net/ethernet/qlogic/qed/qed_hw.c +39 −3
  764. drivers/net/ethernet/qlogic/qed/qed_hw.h +15 −0
  765. drivers/net/ethernet/qlogic/qed/qed_int.c +33 −7
  766. drivers/net/ethernet/qlogic/qed/qed_int.h +11 −0
  767. drivers/net/ethernet/qlogic/qed/qed_ll2.c +1 −1
  768. drivers/net/ethernet/qlogic/qed/qed_main.c +43 −0
  769. drivers/net/ethernet/qlogic/qed/qed_mcp.c +253 −0
  770. drivers/net/ethernet/qlogic/qed/qed_mcp.h +28 −0
  771. drivers/net/ethernet/qlogic/qed/qed_rdma.c +129 −19
  772. drivers/net/ethernet/qlogic/qed/qed_rdma.h +20 −0
  773. drivers/net/ethernet/qlogic/qed/qed_roce.c +40 −9
  774. drivers/net/ethernet/qlogic/qed/qed_spq.c +10 −6
  775. drivers/net/ethernet/qlogic/qed/qed_sriov.h +7 −3
  776. drivers/net/ethernet/qlogic/qede/qede.h +15 −2
  777. drivers/net/ethernet/qlogic/qede/qede_ethtool.c +24 −0
  778. drivers/net/ethernet/qlogic/qede/qede_fp.c +1 −0
  779. drivers/net/ethernet/qlogic/qede/qede_main.c +225 −7
  780. drivers/net/ethernet/qlogic/qlcnic/qlcnic.h +0 −6
  781. drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c +2 −2
  782. drivers/net/ethernet/qualcomm/emac/emac-mac.c +3 −2
  783. drivers/net/ethernet/qualcomm/emac/emac-mac.h +3 −2
  784. drivers/net/ethernet/qualcomm/emac/emac.c +2 −1
  785. drivers/net/ethernet/realtek/8139cp.c +8 −17
  786. drivers/net/ethernet/realtek/8139too.c +7 −19
  787. drivers/net/ethernet/realtek/r8169_main.c +448 −553
  788. drivers/net/ethernet/renesas/ravb_main.c +8 −2
  789. drivers/net/ethernet/renesas/sh_eth.c +2 −1
  790. drivers/net/ethernet/seeq/ether3.c +1 −4
  791. drivers/net/ethernet/sfc/ef10.c +134 −83
  792. drivers/net/ethernet/sfc/ef10_sriov.c +13 −14
  793. drivers/net/ethernet/sfc/mcdi.c +9 −16
  794. drivers/net/ethernet/sfc/mcdi.h +12 −0
  795. drivers/net/ethernet/sfc/mcdi_filters.c +34 −48
  796. drivers/net/ethernet/sfc/mcdi_filters.h +16 −1
  797. drivers/net/ethernet/sfc/mcdi_functions.c +2 −6
  798. drivers/net/ethernet/sfc/mcdi_port.c +2 −5
  799. drivers/net/ethernet/sfc/net_driver.h +10 −0
  800. drivers/net/ethernet/sfc/nic.h +0 −11
  801. drivers/net/ethernet/sfc/ptp.c +1 −6
  802. drivers/net/ethernet/sfc/rx.c +2 −1
  803. drivers/net/ethernet/sfc/siena.c +8 −0
  804. drivers/net/ethernet/smsc/Kconfig +2 −2
  805. drivers/net/ethernet/socionext/netsec.c +19 −13
  806. drivers/net/ethernet/socionext/sni_ave.c +1 −1
  807. drivers/net/ethernet/stmicro/stmmac/Kconfig +13 −0
  808. drivers/net/ethernet/stmicro/stmmac/Makefile +3 −2
  809. drivers/net/ethernet/stmicro/stmmac/common.h +1 −0
  810. drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c +315 −0
  811. drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +63 −97
  812. drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c +114 −32
  813. drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c +44 −30
  814. drivers/net/ethernet/stmicro/stmmac/dwmac4.h +1 −0
  815. drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c +67 −0
  816. drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +0 −9
  817. drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c +0 −5
  818. drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +2 −1
  819. drivers/net/ethernet/sun/cassini.c +1 −13
  820. drivers/net/ethernet/tehuti/tehuti.c +0 −12
  821. drivers/net/ethernet/ti/Kconfig +24 −1
  822. drivers/net/ethernet/ti/Makefile +2 −1
  823. drivers/net/ethernet/ti/am65-cpsw-ethtool.c +33 −3
  824. drivers/net/ethernet/ti/am65-cpsw-nuss.c +199 −6
  825. drivers/net/ethernet/ti/am65-cpsw-nuss.h +12 −1
  826. drivers/net/ethernet/ti/am65-cpsw-qos.c +626 −0
  827. drivers/net/ethernet/ti/am65-cpsw-qos.h +29 −0
  828. drivers/net/ethernet/ti/am65-cpts.c +1086 −0
  829. drivers/net/ethernet/ti/am65-cpts.h +74 −0
  830. drivers/net/ethernet/ti/cpmac.c +1 −1
  831. drivers/net/ethernet/ti/cpsw.c +22 −0
  832. drivers/net/ethernet/ti/cpsw_new.c +23 −2
  833. drivers/net/ethernet/ti/cpsw_priv.c +17 −2
  834. drivers/net/ethernet/ti/cpsw_priv.h +2 −0
  835. drivers/net/ethernet/ti/cpts.c +278 −144
  836. drivers/net/ethernet/ti/cpts.h +24 −3
  837. drivers/net/ethernet/ti/davinci_mdio.c +2 −0
  838. drivers/net/ethernet/ti/k3-cppi-desc-pool.c +2 −2
  839. drivers/net/ethernet/ti/netcp_ethss.c +2 −1
  840. drivers/net/ethernet/ti/tlan.c +1 −1
  841. drivers/net/ethernet/toshiba/ps3_gelic_net.c +1 −1
  842. drivers/net/ethernet/toshiba/spider_net.c +1 −1
  843. drivers/net/ethernet/via/Kconfig +1 −0
  844. drivers/net/ethernet/xilinx/ll_temac_main.c +4 −4
  845. drivers/net/fddi/Kconfig +1 −1
  846. drivers/net/hamradio/Kconfig +7 −7
  847. drivers/net/hamradio/bpqether.c +20 −0
  848. drivers/net/hamradio/scc.c +1 −1
  849. drivers/net/hyperv/netvsc_bpf.c +1 −1
  850. drivers/net/hyperv/netvsc_drv.c +3 −1
  851. drivers/net/ipa/gsi.c +70 −57
  852. drivers/net/ipa/gsi.h +7 −8
  853. drivers/net/ipa/ipa.h +10 −0
  854. drivers/net/ipa/ipa_clock.c +2 −2
  855. drivers/net/ipa/ipa_cmd.c +0 −59
  856. drivers/net/ipa/ipa_cmd.h +0 −11
  857. drivers/net/ipa/ipa_data-sc7180.c +11 −3
  858. drivers/net/ipa/ipa_data-sdm845.c +11 −4
  859. drivers/net/ipa/ipa_data.h +14 −15
  860. drivers/net/ipa/ipa_endpoint.c +62 −114
  861. drivers/net/ipa/ipa_endpoint.h +0 −3
  862. drivers/net/ipa/ipa_main.c +4 −4
  863. drivers/net/ipa/ipa_mem.c +205 −5
  864. drivers/net/ipa/ipa_mem.h +2 −1
  865. drivers/net/ipvlan/ipvlan_main.c +2 −0
  866. drivers/net/macsec.c +2 −0
  867. drivers/net/macvlan.c +10 −4
  868. drivers/net/net_failover.c +2 −1
  869. drivers/net/netdevsim/dev.c +9 −1
  870. drivers/net/phy/Kconfig +20 −1
  871. drivers/net/phy/Makefile +2 −0
  872. drivers/net/phy/at803x.c +301 −9
  873. drivers/net/phy/bcm-phy-lib.c +330 −7
  874. drivers/net/phy/bcm-phy-lib.h +19 −0
  875. drivers/net/phy/bcm54140.c +860 −0
  876. drivers/net/phy/bcm87xx.c +1 −1
  877. drivers/net/phy/broadcom.c +60 −4
  878. drivers/net/phy/cortina.c +1 −3
  879. drivers/net/phy/dp83867.c +2 −2
  880. drivers/net/phy/dp83869.c +32 −4
  881. drivers/net/phy/marvell.c +484 −0
  882. drivers/net/phy/marvell10g.c +0 −2
  883. drivers/net/phy/mdio-bcm-iproc.c +2 −2
  884. drivers/net/phy/mdio-ipq4019.c +160 −0
  885. drivers/net/phy/mdio-moxart.c +0 −1
  886. drivers/net/phy/mdio-mscc-miim.c +26 −7
  887. drivers/net/phy/mdio_bus.c +16 −9
  888. drivers/net/phy/micrel.c +123 −5
  889. drivers/net/phy/mscc/mscc.h +0 −1
  890. drivers/net/phy/mscc/mscc_main.c +37 −73
  891. drivers/net/phy/nxp-tja11xx.c +406 −6
  892. drivers/net/phy/phy-c45.c +0 −1
  893. drivers/net/phy/phy-core.c +4 −7
  894. drivers/net/phy/phy.c +180 −8
  895. drivers/net/phy/phy_device.c +259 −21
  896. drivers/net/phy/phylink.c +21 −39
  897. drivers/net/phy/realtek.c +13 −2
  898. drivers/net/phy/teranetics.c +0 −1
  899. drivers/net/plip/Kconfig +1 −1
  900. drivers/net/ppp/ppp_generic.c +2 −0
  901. drivers/net/rionet.c +2 −1
  902. drivers/net/team/team.c +1 −0
  903. drivers/net/tun.c +13 −5
  904. drivers/net/usb/ax88179_178a.c +78 −1
  905. drivers/net/usb/huawei_cdc_ncm.c +1 −1
  906. drivers/net/usb/qmi_wwan.c +1 −1
  907. drivers/net/usb/r8152.c +13 −9
  908. drivers/net/usb/sierra_net.c +0 −5
  909. drivers/net/veth.c +17 −17
  910. drivers/net/virtio_net.c +14 −5
  911. drivers/net/vmxnet3/Makefile +1 −1
  912. drivers/net/vmxnet3/upt1_defs.h +4 −1
  913. drivers/net/vmxnet3/vmxnet3_defs.h +23 −8
  914. drivers/net/vmxnet3/vmxnet3_drv.c +163 −28
  915. drivers/net/vmxnet3/vmxnet3_ethtool.c +273 −4
  916. drivers/net/vmxnet3/vmxnet3_int.h +19 −6
  917. drivers/net/vrf.c +1 −0
  918. drivers/net/vxlan.c +311 −63
  919. drivers/net/wan/Kconfig +2 −2
  920. drivers/net/wireless/Kconfig +1 −1
  921. drivers/net/wireless/ath/ath10k/Kconfig +3 −4
  922. drivers/net/wireless/ath/ath10k/bmi.c +1 −0
  923. drivers/net/wireless/ath/ath10k/ce.h +2 −2
  924. drivers/net/wireless/ath/ath10k/core.c +19 −12
  925. drivers/net/wireless/ath/ath10k/core.h +36 −2
  926. drivers/net/wireless/ath/ath10k/coredump.h +2 −2
  927. drivers/net/wireless/ath/ath10k/debug.c +2 −2
  928. drivers/net/wireless/ath/ath10k/debug.h +9 −1
  929. drivers/net/wireless/ath/ath10k/hif.h +15 −5
  930. drivers/net/wireless/ath/ath10k/htc.c +367 −32
  931. drivers/net/wireless/ath/ath10k/htc.h +36 −4
  932. drivers/net/wireless/ath/ath10k/htt.c +13 −0
  933. drivers/net/wireless/ath/ath10k/htt.h +44 −22
  934. drivers/net/wireless/ath/ath10k/htt_rx.c +41 −1
  935. drivers/net/wireless/ath/ath10k/htt_tx.c +49 −2
  936. drivers/net/wireless/ath/ath10k/hw.h +5 −2
  937. drivers/net/wireless/ath/ath10k/mac.c +300 −29
  938. drivers/net/wireless/ath/ath10k/pci.c +55 −16
  939. drivers/net/wireless/ath/ath10k/pci.h +6 −1
  940. drivers/net/wireless/ath/ath10k/qmi.c +20 −54
  941. drivers/net/wireless/ath/ath10k/qmi.h +6 −4
  942. drivers/net/wireless/ath/ath10k/sdio.c +139 −52
  943. drivers/net/wireless/ath/ath10k/sdio.h +18 −1
  944. drivers/net/wireless/ath/ath10k/snoc.c +176 −10
  945. drivers/net/wireless/ath/ath10k/snoc.h +7 −0
  946. drivers/net/wireless/ath/ath10k/txrx.c +2 −0
  947. drivers/net/wireless/ath/ath10k/usb.c +0 −12
  948. drivers/net/wireless/ath/ath10k/wmi-ops.h +40 −0
  949. drivers/net/wireless/ath/ath10k/wmi-tlv.c +139 −3
  950. drivers/net/wireless/ath/ath10k/wmi-tlv.h +113 −3
  951. drivers/net/wireless/ath/ath10k/wmi.c +38 −14
  952. drivers/net/wireless/ath/ath10k/wmi.h +37 −24
  953. drivers/net/wireless/ath/ath11k/ahb.c +42 −19
  954. drivers/net/wireless/ath/ath11k/ahb.h +0 −22
  955. drivers/net/wireless/ath/ath11k/core.c +14 −33
  956. drivers/net/wireless/ath/ath11k/core.h +23 −2
  957. drivers/net/wireless/ath/ath11k/debug.c +7 −2
  958. drivers/net/wireless/ath/ath11k/debug.h +20 −2
  959. drivers/net/wireless/ath/ath11k/debug_htt_stats.c +38 −10
  960. drivers/net/wireless/ath/ath11k/debug_htt_stats.h +4 −4
  961. drivers/net/wireless/ath/ath11k/debugfs_sta.c +297 −0
  962. drivers/net/wireless/ath/ath11k/dp.c +6 −1
  963. drivers/net/wireless/ath/ath11k/dp.h +11 −3
  964. drivers/net/wireless/ath/ath11k/dp_rx.c +43 −17
  965. drivers/net/wireless/ath/ath11k/dp_tx.c +57 −12
  966. drivers/net/wireless/ath/ath11k/hal.c +44 −43
  967. drivers/net/wireless/ath/ath11k/hal.h +1 −1
  968. drivers/net/wireless/ath/ath11k/hal_desc.h +4 −2
  969. drivers/net/wireless/ath/ath11k/hal_rx.c +11 −11
  970. drivers/net/wireless/ath/ath11k/hal_rx.h +1 −1
  971. drivers/net/wireless/ath/ath11k/hal_tx.c +7 −6
  972. drivers/net/wireless/ath/ath11k/hal_tx.h +1 −0
  973. drivers/net/wireless/ath/ath11k/hif.h +65 −0
  974. drivers/net/wireless/ath/ath11k/htc.c +2 −2
  975. drivers/net/wireless/ath/ath11k/hw.h +6 −1
  976. drivers/net/wireless/ath/ath11k/mac.c +82 −20
  977. drivers/net/wireless/ath/ath11k/peer.c +33 −2
  978. drivers/net/wireless/ath/ath11k/peer.h +1 −0
  979. drivers/net/wireless/ath/ath11k/thermal.c +4 −2
  980. drivers/net/wireless/ath/ath11k/trace.h +8 −4
  981. drivers/net/wireless/ath/ath11k/wmi.c +158 −12
  982. drivers/net/wireless/ath/ath11k/wmi.h +86 −2
  983. drivers/net/wireless/ath/ath5k/ani.c +1 −1
  984. drivers/net/wireless/ath/ath6kl/cfg80211.c +12 −14
  985. drivers/net/wireless/ath/ath6kl/core.h +2 −2
  986. drivers/net/wireless/ath/ath6kl/debug.c +1 −1
  987. drivers/net/wireless/ath/ath6kl/hif.h +1 −1
  988. drivers/net/wireless/ath/ath9k/ar9002_calib.c +39 −10
  989. drivers/net/wireless/ath/ath9k/calib.c +10 −6
  990. drivers/net/wireless/ath/ath9k/hif_usb.c +45 −13
  991. drivers/net/wireless/ath/ath9k/hif_usb.h +6 −0
  992. drivers/net/wireless/ath/ath9k/htc_drv_init.c +9 −3
  993. drivers/net/wireless/ath/ath9k/htc_drv_main.c +1 −0
  994. drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +5 −4
  995. drivers/net/wireless/ath/ath9k/htc_hst.c +3 −3
  996. drivers/net/wireless/ath/ath9k/hw.h +2 −0
  997. drivers/net/wireless/ath/ath9k/init.c +2 −0
  998. drivers/net/wireless/ath/ath9k/main.c +1 −0
  999. drivers/net/wireless/ath/ath9k/recv.c +2 −1
  1000. drivers/net/wireless/ath/ath9k/wmi.c +4 −2
  1001. drivers/net/wireless/ath/ath9k/wmi.h +2 −1
  1002. drivers/net/wireless/ath/carl9170/fw.c +1 −3
  1003. drivers/net/wireless/ath/carl9170/fwcmd.h +1 −1
  1004. drivers/net/wireless/ath/carl9170/hw.h +1 −1
  1005. drivers/net/wireless/ath/carl9170/main.c +4 −17
  1006. drivers/net/wireless/ath/wcn36xx/hal.h +2 −2
  1007. drivers/net/wireless/ath/wcn36xx/main.c +4 −2
  1008. drivers/net/wireless/ath/wcn36xx/testmode.h +1 −1
  1009. drivers/net/wireless/ath/wil6210/fw.h +8 −8
  1010. drivers/net/wireless/ath/wil6210/wmi.c +1 −1
  1011. drivers/net/wireless/ath/wil6210/wmi.h +29 −29
  1012. drivers/net/wireless/atmel/atmel.c +1 −2
  1013. drivers/net/wireless/broadcom/b43/main.c +1 −1
  1014. drivers/net/wireless/broadcom/b43/phy_n.c +1 −1
  1015. drivers/net/wireless/broadcom/b43/pio.c +1 −1
  1016. drivers/net/wireless/broadcom/b43/xmit.c +0 −13
  1017. drivers/net/wireless/broadcom/b43legacy/main.c +1 −0
  1018. drivers/net/wireless/broadcom/b43legacy/xmit.c +1 −0
  1019. drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c +20 −4
  1020. drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +250 −51
  1021. drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h +28 −0
  1022. drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h +4 −0
  1023. drivers/net/wireless/broadcom/brcm80211/brcmfmac/commonring.c +1 −7
  1024. drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +0 −3
  1025. drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c +3 −6
  1026. drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h +5 −7
  1027. drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c +2 −1
  1028. drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c +2 −2
  1029. drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c +4 −24
  1030. drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h +23 −0
  1031. drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c +135 −16
  1032. drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.h +6 −3
  1033. drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +58 −17
  1034. drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c +2 −0
  1035. drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c +2 −5
  1036. drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c +2 −5
  1037. drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h +1 −1
  1038. drivers/net/wireless/cisco/airo.c +12 −0
  1039. drivers/net/wireless/intel/ipw2x00/Kconfig +2 −2
  1040. drivers/net/wireless/intel/ipw2x00/ipw2100.c +1 −1
  1041. drivers/net/wireless/intel/ipw2x00/ipw2200.c +8 −21
  1042. drivers/net/wireless/intel/ipw2x00/ipw2200.h +6 −6
  1043. drivers/net/wireless/intel/ipw2x00/libipw.h +14 −14
  1044. drivers/net/wireless/intel/iwlegacy/commands.h +11 −11
  1045. drivers/net/wireless/intel/iwlegacy/iwl-spectrum.h +2 −2
  1046. drivers/net/wireless/intel/iwlwifi/Makefile +2 −1
  1047. drivers/net/wireless/intel/iwlwifi/cfg/22000.c +106 −67
  1048. drivers/net/wireless/intel/iwlwifi/dvm/dev.h +1 −2
  1049. drivers/net/wireless/intel/iwlwifi/dvm/main.c +2 −9
  1050. drivers/net/wireless/intel/iwlwifi/dvm/rs.c +1 −10
  1051. drivers/net/wireless/intel/iwlwifi/fw/acpi.c +164 −11
  1052. drivers/net/wireless/intel/iwlwifi/fw/acpi.h +39 −0
  1053. drivers/net/wireless/intel/iwlwifi/fw/api/config.h +36 −3
  1054. drivers/net/wireless/intel/iwlwifi/fw/api/d3.h +38 −1
  1055. drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h +3 −2
  1056. drivers/net/wireless/intel/iwlwifi/fw/api/debug.h +8 −6
  1057. drivers/net/wireless/intel/iwlwifi/fw/api/location.h +101 −9
  1058. drivers/net/wireless/intel/iwlwifi/fw/api/nvm-reg.h +47 −2
  1059. drivers/net/wireless/intel/iwlwifi/fw/api/rx.h +6 −8
  1060. drivers/net/wireless/intel/iwlwifi/fw/api/scan.h +0 −26
  1061. drivers/net/wireless/intel/iwlwifi/fw/api/soc.h +8 −4
  1062. drivers/net/wireless/intel/iwlwifi/fw/api/sta.h +0 −26
  1063. drivers/net/wireless/intel/iwlwifi/fw/dbg.c +155 −65
  1064. drivers/net/wireless/intel/iwlwifi/fw/dbg.h +0 −11
  1065. drivers/net/wireless/intel/iwlwifi/fw/debugfs.c +100 −4
  1066. drivers/net/wireless/intel/iwlwifi/fw/error-dump.h +11 −2
  1067. drivers/net/wireless/intel/iwlwifi/fw/file.h +1 −0
  1068. drivers/net/wireless/intel/iwlwifi/fw/img.c +99 −0
  1069. drivers/net/wireless/intel/iwlwifi/fw/img.h +2 −17
  1070. drivers/net/wireless/intel/iwlwifi/fw/init.c +53 −2
  1071. drivers/net/wireless/intel/iwlwifi/fw/runtime.h +14 −6
  1072. drivers/net/wireless/intel/iwlwifi/fw/smem.c +10 −4
  1073. drivers/net/wireless/intel/iwlwifi/iwl-config.h +27 −11
  1074. drivers/net/wireless/intel/iwlwifi/iwl-context-info-gen3.h +10 −2
  1075. drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c +25 −17
  1076. drivers/net/wireless/intel/iwlwifi/iwl-drv.c +3 −15
  1077. drivers/net/wireless/intel/iwlwifi/iwl-drv.h +3 −4
  1078. drivers/net/wireless/intel/iwlwifi/iwl-fh.h +3 −4
  1079. drivers/net/wireless/intel/iwlwifi/iwl-modparams.h +2 −8
  1080. drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c +6 −2
  1081. drivers/net/wireless/intel/iwlwifi/iwl-prph.h +5 −6
  1082. drivers/net/wireless/intel/iwlwifi/iwl-trans.h +128 −0
  1083. drivers/net/wireless/intel/iwlwifi/mvm/coex.c +3 −4
  1084. drivers/net/wireless/intel/iwlwifi/mvm/constants.h +4 −0
  1085. drivers/net/wireless/intel/iwlwifi/mvm/d3.c +35 −28
  1086. drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c +7 −4
  1087. drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c +90 −15
  1088. drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c +2 −2
  1089. drivers/net/wireless/intel/iwlwifi/mvm/fw.c +137 −38
  1090. drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +29 −33
  1091. drivers/net/wireless/intel/iwlwifi/mvm/mvm.h +4 −8
  1092. drivers/net/wireless/intel/iwlwifi/mvm/ops.c +6 −32
  1093. drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c +8 −7
  1094. drivers/net/wireless/intel/iwlwifi/mvm/rs.c +5 −4
  1095. drivers/net/wireless/intel/iwlwifi/mvm/scan.c +4 −40
  1096. drivers/net/wireless/intel/iwlwifi/mvm/sta.c +45 −24
  1097. drivers/net/wireless/intel/iwlwifi/mvm/sta.h +3 −3
  1098. drivers/net/wireless/intel/iwlwifi/mvm/tx.c +4 −7
  1099. drivers/net/wireless/intel/iwlwifi/mvm/utils.c +23 −6
  1100. drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c +34 −23
  1101. drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c +18 −3
  1102. drivers/net/wireless/intel/iwlwifi/pcie/drv.c +56 −83
  1103. drivers/net/wireless/intel/iwlwifi/pcie/internal.h +6 −136
  1104. drivers/net/wireless/intel/iwlwifi/pcie/rx.c +30 −8
  1105. drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c +6 −5
  1106. drivers/net/wireless/intel/iwlwifi/pcie/trans.c +124 −71
  1107. drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c +60 −51
  1108. drivers/net/wireless/intel/iwlwifi/pcie/tx.c +65 −67
  1109. drivers/net/wireless/intersil/hostap/hostap_hw.c +22 −0
  1110. drivers/net/wireless/intersil/hostap/hostap_proc.c +2 −0
  1111. drivers/net/wireless/intersil/orinoco/spectrum_cs.c +1 −2
  1112. drivers/net/wireless/intersil/p54/p54usb.c +1 −0
  1113. drivers/net/wireless/intersil/prism54/isl_oid.h +4 −4
  1114. drivers/net/wireless/intersil/prism54/islpci_mgt.h +1 −1
  1115. drivers/net/wireless/mac80211_hwsim.c +64 −0
  1116. drivers/net/wireless/mac80211_hwsim.h +8 −0
  1117. drivers/net/wireless/marvell/libertas/cmd.h +1 −1
  1118. drivers/net/wireless/marvell/libertas/cmdresp.c +1 −4
  1119. drivers/net/wireless/marvell/libertas/mesh.c +1 −5
  1120. drivers/net/wireless/marvell/libertas/mesh.h +1 −1
  1121. drivers/net/wireless/marvell/libertas/rx.c +1 −4
  1122. drivers/net/wireless/marvell/libertas_tf/if_usb.c +3 −3
  1123. drivers/net/wireless/marvell/mwifiex/cfg80211.c +17 −18
  1124. drivers/net/wireless/marvell/mwifiex/cmdevt.c +27 −2
  1125. drivers/net/wireless/marvell/mwifiex/fw.h +10 −0
  1126. drivers/net/wireless/marvell/mwifiex/main.h +1 −0
  1127. drivers/net/wireless/marvell/mwifiex/sta_cmd.c +16 −23
  1128. drivers/net/wireless/marvell/mwl8k.c +1 −1
  1129. drivers/net/wireless/mediatek/mt76/Kconfig +1 −0
  1130. drivers/net/wireless/mediatek/mt76/Makefile +2 −1
  1131. drivers/net/wireless/mediatek/mt76/agg-rx.c +6 −6
  1132. drivers/net/wireless/mediatek/mt76/debugfs.c +21 −0
  1133. drivers/net/wireless/mediatek/mt76/dma.c +2 −2
  1134. drivers/net/wireless/mediatek/mt76/mac80211.c +18 −15
  1135. drivers/net/wireless/mediatek/mt76/mcu.c +5 −4
  1136. drivers/net/wireless/mediatek/mt76/mmio.c +2 −1
  1137. drivers/net/wireless/mediatek/mt76/mt76.h +54 −14
  1138. drivers/net/wireless/mediatek/mt76/mt7603/debugfs.c +1 −1
  1139. drivers/net/wireless/mediatek/mt76/mt7603/eeprom.c +5 −0
  1140. drivers/net/wireless/mediatek/mt76/mt7603/init.c +2 −0
  1141. drivers/net/wireless/mediatek/mt76/mt7603/mac.c +13 −6
  1142. drivers/net/wireless/mediatek/mt76/mt7603/mcu.c +2 −1
  1143. drivers/net/wireless/mediatek/mt76/mt7603/mcu.h +0 −7
  1144. drivers/net/wireless/mediatek/mt76/mt7603/soc.c +1 −3
  1145. drivers/net/wireless/mediatek/mt76/mt7615/Kconfig +18 −2
  1146. drivers/net/wireless/mediatek/mt76/mt7615/Makefile +8 −2
  1147. drivers/net/wireless/mediatek/mt76/mt7615/debugfs.c +38 −9
  1148. drivers/net/wireless/mediatek/mt76/mt7615/dma.c +46 −41
  1149. drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c +77 −17
  1150. drivers/net/wireless/mediatek/mt76/mt7615/eeprom.h +32 −1
  1151. drivers/net/wireless/mediatek/mt76/mt7615/init.c +112 −179
  1152. drivers/net/wireless/mediatek/mt76/mt7615/mac.c +372 −393
  1153. drivers/net/wireless/mediatek/mt76/mt7615/mac.h +39 −0
  1154. drivers/net/wireless/mediatek/mt76/mt7615/main.c +338 −51
  1155. drivers/net/wireless/mediatek/mt76/mt7615/mcu.c +1419 −160
  1156. drivers/net/wireless/mediatek/mt76/mt7615/mcu.h +306 −8
  1157. drivers/net/wireless/mediatek/mt76/mt7615/mmio.c +64 −9
  1158. drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h +166 −24
  1159. drivers/net/wireless/mediatek/mt76/mt7615/pci.c +132 −3
  1160. drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c +174 −0
  1161. drivers/net/wireless/mediatek/mt76/mt7615/pci_mac.c +184 −0
  1162. drivers/net/wireless/mediatek/mt76/mt7615/regs.h +94 −14
  1163. drivers/net/wireless/mediatek/mt76/mt7615/soc.c +1 −3
  1164. drivers/net/wireless/mediatek/mt76/mt7615/usb.c +447 −0
  1165. drivers/net/wireless/mediatek/mt76/mt7615/usb_init.c +145 −0
  1166. drivers/net/wireless/mediatek/mt76/mt7615/usb_mcu.c +93 −0
  1167. drivers/net/wireless/mediatek/mt76/mt76x0/init.c +5 −21
  1168. drivers/net/wireless/mediatek/mt76/mt76x0/pci.c +3 −0
  1169. drivers/net/wireless/mediatek/mt76/mt76x02.h +5 −1
  1170. drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c +1 −1
  1171. drivers/net/wireless/mediatek/mt76/mt76x02_mac.c +6 −3
  1172. drivers/net/wireless/mediatek/mt76/mt76x02_mcu.c +4 −1
  1173. drivers/net/wireless/mediatek/mt76/mt76x02_mcu.h +0 −6
  1174. drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c +19 −2
  1175. drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c +3 −1
  1176. drivers/net/wireless/mediatek/mt76/mt76x02_util.c +5 −1
  1177. drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c +5 −0
  1178. drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c +1 −0
  1179. drivers/net/wireless/mediatek/mt76/mt76x2/pci_main.c +7 −14
  1180. drivers/net/wireless/mediatek/mt76/mt76x2/usb.c +2 −0
  1181. drivers/net/wireless/mediatek/mt76/mt7915/Kconfig +13 −0
  1182. drivers/net/wireless/mediatek/mt76/mt7915/Makefile +6 −0
  1183. drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c +463 −0
  1184. drivers/net/wireless/mediatek/mt76/mt7915/dma.c +285 −0
  1185. drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c +243 −0
  1186. drivers/net/wireless/mediatek/mt76/mt7915/eeprom.h +125 −0
  1187. drivers/net/wireless/mediatek/mt76/mt7915/init.c +702 −0
  1188. drivers/net/wireless/mediatek/mt76/mt7915/mac.c +1477 −0
  1189. drivers/net/wireless/mediatek/mt76/mt7915/mac.h +346 −0
  1190. drivers/net/wireless/mediatek/mt76/mt7915/main.c +838 −0
  1191. drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +3182 −0
  1192. drivers/net/wireless/mediatek/mt76/mt7915/mcu.h +1034 −0
  1193. drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h +469 −0
  1194. drivers/net/wireless/mediatek/mt76/mt7915/pci.c +191 −0
  1195. drivers/net/wireless/mediatek/mt76/mt7915/regs.h +375 −0
  1196. drivers/net/wireless/mediatek/mt76/tx.c +1 −3
  1197. drivers/net/wireless/mediatek/mt76/usb.c +13 −2
  1198. drivers/net/wireless/mediatek/mt76/util.c +6 −6
  1199. drivers/net/wireless/mediatek/mt76/util.h +7 −7
  1200. drivers/net/wireless/quantenna/qtnfmac/bus.h +1 −1
  1201. drivers/net/wireless/quantenna/qtnfmac/cfg80211.c +43 −40
  1202. drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c +1 −1
  1203. drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c +1 −1
  1204. drivers/net/wireless/quantenna/qtnfmac/qlink.h +27 −27
  1205. drivers/net/wireless/ralink/rt2x00/rt2800lib.c +1 −3
  1206. drivers/net/wireless/ralink/rt2x00/rt2x00mac.c +2 −1
  1207. drivers/net/wireless/ray_cs.c +1 −2
  1208. drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c +0 −4
  1209. drivers/net/wireless/realtek/rtlwifi/base.c +1 −1
  1210. drivers/net/wireless/realtek/rtlwifi/core.c +1 −1
  1211. drivers/net/wireless/realtek/rtlwifi/rtl8188ee/rf.c +2 −2
  1212. drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c +2 −2
  1213. drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c +6 −8
  1214. drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c +2 −2
  1215. drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hal_btc.c +1 −1
  1216. drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c +5 −5
  1217. drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c +2 −2
  1218. drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c +2 −2
  1219. drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c +2 −2
  1220. drivers/net/wireless/realtek/rtlwifi/usb.c +2 −6
  1221. drivers/net/wireless/realtek/rtw88/Kconfig +24 −2
  1222. drivers/net/wireless/realtek/rtw88/Makefile +22 −6
  1223. drivers/net/wireless/realtek/rtw88/bf.c +10 −4
  1224. drivers/net/wireless/realtek/rtw88/bf.h +22 −0
  1225. drivers/net/wireless/realtek/rtw88/coex.c +19 −5
  1226. drivers/net/wireless/realtek/rtw88/debug.c +5 −4
  1227. drivers/net/wireless/realtek/rtw88/efuse.c +27 −0
  1228. drivers/net/wireless/realtek/rtw88/efuse.h +3 −0
  1229. drivers/net/wireless/realtek/rtw88/fw.c +41 −14
  1230. drivers/net/wireless/realtek/rtw88/fw.h +30 −2
  1231. drivers/net/wireless/realtek/rtw88/mac.c +339 −98
  1232. drivers/net/wireless/realtek/rtw88/mac.h +1 −0
  1233. drivers/net/wireless/realtek/rtw88/mac80211.c +36 −7
  1234. drivers/net/wireless/realtek/rtw88/main.c +69 −13
  1235. drivers/net/wireless/realtek/rtw88/main.h +95 −6
  1236. drivers/net/wireless/realtek/rtw88/pci.c +47 −35
  1237. drivers/net/wireless/realtek/rtw88/pci.h +0 −4
  1238. drivers/net/wireless/realtek/rtw88/phy.c +89 −5
  1239. drivers/net/wireless/realtek/rtw88/phy.h +7 −0
  1240. drivers/net/wireless/realtek/rtw88/reg.h +108 −0
  1241. drivers/net/wireless/realtek/rtw88/rtw8723d.c +2753 −0
  1242. drivers/net/wireless/realtek/rtw88/rtw8723d.h +283 −0
  1243. drivers/net/wireless/realtek/rtw88/rtw8723d_table.c +1196 −0
  1244. drivers/net/wireless/realtek/rtw88/rtw8723d_table.h +15 −0
  1245. drivers/net/wireless/realtek/rtw88/rtw8723de.c +30 −0
  1246. drivers/net/wireless/realtek/rtw88/rtw8723de.h +14 −0
  1247. drivers/net/wireless/realtek/rtw88/rtw8822b.c +45 −7
  1248. drivers/net/wireless/realtek/rtw88/rtw8822be.c +30 −0
  1249. drivers/net/wireless/realtek/rtw88/rtw8822be.h +14 −0
  1250. drivers/net/wireless/realtek/rtw88/rtw8822c.c +181 −2
  1251. drivers/net/wireless/realtek/rtw88/rtw8822c.h +28 −0
  1252. drivers/net/wireless/realtek/rtw88/rtw8822c_table.c +15542 −1328
  1253. drivers/net/wireless/realtek/rtw88/rtw8822c_table.h +1 −0
  1254. drivers/net/wireless/realtek/rtw88/rtw8822ce.c +30 −0
  1255. drivers/net/wireless/realtek/rtw88/rtw8822ce.h +14 −0
  1256. drivers/net/wireless/realtek/rtw88/rx.c +1 −0
  1257. drivers/net/wireless/realtek/rtw88/sec.c +5 −1
  1258. drivers/net/wireless/realtek/rtw88/tx.c +8 −3
  1259. drivers/net/wireless/realtek/rtw88/tx.h +1 −1
  1260. drivers/net/wireless/realtek/rtw88/util.c +14 −6
  1261. drivers/net/wireless/rndis_wlan.c +12 −20
  1262. drivers/net/wireless/rsi/rsi_91x_mac80211.c +1 −1
  1263. drivers/net/wireless/st/cw1200/cw1200_sdio.c +1 −8
  1264. drivers/net/wireless/st/cw1200/cw1200_spi.c +1 −5
  1265. drivers/net/wireless/ti/wlcore/cmd.h +1 −0
  1266. drivers/net/wireless/ti/wlcore/main.c +23 −14
  1267. drivers/net/wireless/ti/wlcore/tx.c +1 −0
  1268. drivers/nvme/host/tcp.c +8 −45
  1269. drivers/nvme/target/tcp.c +10 −44
  1270. drivers/of/of_mdio.c +42 −31
  1271. drivers/parport/procfs.c +18 −21
  1272. drivers/power/supply/test_power.c +1 −1
  1273. drivers/ptp/ptp_chardev.c +1 −0
  1274. drivers/ptp/ptp_clock.c +9 −0
  1275. drivers/ptp/ptp_clockmatrix.c +93 −1
  1276. drivers/ptp/ptp_clockmatrix.h +6 −2
  1277. drivers/ptp/ptp_idt82p33.c +3 −3
  1278. drivers/ptp/ptp_ines.c +1 −7
  1279. drivers/ptp/ptp_kvm.c +1 −1
  1280. drivers/s390/net/Kconfig +3 −6
  1281. drivers/s390/net/ctcm_main.c +0 −40
  1282. drivers/s390/net/lcs.c +0 −59
  1283. drivers/s390/net/netiucv.c +1 −103
  1284. drivers/s390/net/qeth_core.h +41 −8
  1285. drivers/s390/net/qeth_core_main.c +400 −96
  1286. drivers/s390/net/qeth_core_mpc.h +25 −0
  1287. drivers/s390/net/qeth_core_sys.c +9 −6
  1288. drivers/s390/net/qeth_l2_main.c +2 −0
  1289. drivers/s390/net/qeth_l3_main.c +6 −13
  1290. drivers/s390/net/smsgiucv.c +0 −65
  1291. drivers/soc/fsl/dpio/qbman-portal.c +1 −0
  1292. drivers/ssb/scan.c +4 −2
  1293. drivers/ssb/sprom.c +8 −4
  1294. drivers/staging/fsl-dpaa2/ethsw/README +1 −1
  1295. drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c +0 −24
  1296. drivers/staging/wilc1000/cfg80211.c +17 −19
  1297. drivers/staging/wilc1000/cfg80211.h +3 −2
  1298. drivers/staging/wilc1000/netdev.c +9 −12
  1299. drivers/staging/wilc1000/netdev.h +1 −8
  1300. drivers/target/iscsi/Kconfig +1 −1
  1301. drivers/target/iscsi/iscsi_target_login.c +6 −29
  1302. drivers/vhost/net.c +1 −0
  1303. fs/afs/rxrpc.c +2 −4
  1304. fs/cifs/connect.c +2 −8
  1305. fs/cifs/transport.c +2 −6
  1306. fs/dcache.c +1 −1
  1307. fs/dlm/lowcomms.c +15 −162
  1308. fs/drop_caches.c +1 −1
  1309. fs/file_table.c +2 −2
  1310. fs/fscache/main.c +1 −2
  1311. fs/inode.c +1 −1
  1312. fs/ocfs2/cluster/tcp.c +4 −38
  1313. fs/proc/proc_net.c +19 −0
  1314. fs/proc/proc_sysctl.c +29 −18
  1315. fs/quota/dquot.c +1 −1
  1316. fs/xfs/xfs_sysctl.c +2 −2
  1317. include/linux/avf/virtchnl.h +5 −0
  1318. include/linux/bpf-cgroup.h +5 −19
  1319. include/linux/bpf-netns.h +64 −0
  1320. include/linux/bpf.h +116 −6
  1321. include/linux/bpf_types.h +11 −0
  1322. include/linux/bpf_verifier.h +7 −0
  1323. include/linux/brcmphy.h +58 −0
  1324. include/linux/capability.h +5 −0
  1325. include/linux/compaction.h +1 −1
  1326. include/linux/coredump.h +4 −0
  1327. include/linux/delay.h +11 −0
  1328. include/linux/dsa/8021q.h +57 −0
  1329. include/linux/dsa/sja1105.h +3 −0
  1330. include/linux/etherdevice.h +12 −0
  1331. include/linux/ethtool_netlink.h +54 −0
  1332. include/linux/file.h +2 −0
  1333. include/linux/filter.h +2 −6
  1334. include/linux/fs.h +3 −3
  1335. include/linux/fsl/ptp_qoriq.h +1 −1
  1336. include/linux/ftrace.h +1 −2
  1337. include/linux/hugetlb.h +7 −8
  1338. include/linux/ieee80211.h +359 −8
  1339. include/linux/if_bridge.h +2 −0
  1340. include/linux/if_team.h +2 −5
  1341. include/linux/igmp.h +1 −1
  1342. include/linux/inet_diag.h +5 −1
  1343. include/linux/iopoll.h +43 −19
  1344. include/linux/kprobes.h +1 −1
  1345. include/linux/latencytop.h +2 −2
  1346. include/linux/mdio.h +31 −0
  1347. include/linux/mlx4/qp.h +1 −1
  1348. include/linux/mlx5/accel.h +13 −1
  1349. include/linux/mlx5/cmd.h +0 −51
  1350. include/linux/mlx5/cq.h +1 −1
  1351. include/linux/mlx5/device.h +41 −3
  1352. include/linux/mlx5/driver.h +20 −15
  1353. include/linux/mlx5/fs.h +1 −0
  1354. include/linux/mlx5/mlx5_ifc.h +166 −58
  1355. include/linux/mlx5/qp.h +7 −50
  1356. include/linux/mlx5/transobj.h +6 −13
  1357. include/linux/mlx5/vport.h +1 −2
  1358. include/linux/mm.h +8 −6
  1359. include/linux/mmzone.h +13 −14
  1360. include/linux/net.h +0 −4
  1361. include/linux/netdev_features.h +1 −1
  1362. include/linux/netdevice.h +82 −8
  1363. include/linux/netpoll.h +1 −9
  1364. include/linux/nmi.h +5 −10
  1365. include/linux/of_mdio.h +10 −1
  1366. include/linux/perf_event.h +5 −8
  1367. include/linux/phy.h +182 −11
  1368. include/linux/phylink.h +3 −3
  1369. include/linux/pid.h +3 −0
  1370. include/linux/printk.h +1 −1
  1371. include/linux/proc_fs.h +3 −0
  1372. include/linux/ptp_clock_kernel.h +5 −1
  1373. include/linux/qed/qed_if.h +23 −3
  1374. include/linux/qed/qed_rdma_if.h +22 −0
  1375. include/linux/sched/sysctl.h +15 −29
  1376. include/linux/security.h +1 −1
  1377. include/linux/skbuff.h +9 −27
  1378. include/linux/skmsg.h +8 −0
  1379. include/linux/socket.h +15 −2
  1380. include/linux/sysctl.h +30 −31
  1381. include/linux/tcp.h +13 −0
  1382. include/linux/timer.h +1 −2
  1383. include/linux/vermagic.h +4 −0
  1384. include/linux/vmstat.h +4 −4
  1385. include/linux/writeback.h +11 −17
  1386. include/net/act_api.h +1 −1
  1387. include/net/addrconf.h +0 −2
  1388. include/net/af_rxrpc.h +2 −0
  1389. include/net/bareudp.h +7 −0
  1390. include/net/bluetooth/bluetooth.h +19 −0
  1391. include/net/bluetooth/hci.h +24 −3
  1392. include/net/bluetooth/hci_core.h +37 −3
  1393. include/net/bluetooth/l2cap.h +3 −3
  1394. include/net/bluetooth/mgmt.h +54 −20
  1395. include/net/bond_alb.h +4 −0
  1396. include/net/bonding.h +10 −10
  1397. include/net/cfg80211.h +263 −42
  1398. include/net/compat.h +41 −6
  1399. include/net/devlink.h +189 −0
  1400. include/net/dsa.h +16 −5
  1401. include/net/dst_ops.h +3 −1
  1402. include/net/erspan.h +17 −2
  1403. include/net/flow_dissector.h +19 −1
  1404. include/net/flow_offload.h +36 −13
  1405. include/net/if_inet6.h +1 −2
  1406. include/net/inet_common.h +7 −1
  1407. include/net/inet_connection_sock.h +8 −0
  1408. include/net/ip.h +6 −0
  1409. include/net/ip6_fib.h +8 −0
  1410. include/net/ip6_route.h +3 −2
  1411. include/net/ip_tunnels.h +2 −1
  1412. include/net/ipv6.h +97 −3
  1413. include/net/ipv6_stubs.h +8 −2
  1414. include/net/iucv/af_iucv.h +0 −8
  1415. include/net/mac80211.h +38 −11
  1416. include/net/mpls.h +17 −0
  1417. include/net/mptcp.h +16 −8
  1418. include/net/net_namespace.h +3 −1
  1419. include/net/netfilter/nf_conntrack_l4proto.h +4 −2
  1420. include/net/netfilter/nf_flow_table.h +2 −0
  1421. include/net/netfilter/nf_tables.h +11 −0
  1422. include/net/netlink.h +99 −36
  1423. include/net/netns/bpf.h +18 −0
  1424. include/net/netns/ipv4.h +3 −0
  1425. include/net/netns/nexthop.h +1 −0
  1426. include/net/nexthop.h +44 −0
  1427. include/net/pkt_cls.h +1 −0
  1428. include/net/regulatory.h +0 −7
  1429. include/net/sch_generic.h +4 −5
  1430. include/net/sctp/sctp.h +7 −0
  1431. include/net/sctp/ulpevent.h +1 −1
  1432. include/net/sock.h +15 −1
  1433. include/net/switchdev.h +63 −0
  1434. include/net/tc_act/tc_gate.h +146 −0
  1435. include/net/tcp.h +10 −14
  1436. include/net/tls.h +20 −1
  1437. include/net/vxlan.h +25 −0
  1438. include/net/xdp.h +46 −9
  1439. include/net/xdp_sock.h +8 −273
  1440. include/net/xdp_sock_drv.h +232 −0
  1441. include/net/xfrm.h +22 −9
  1442. include/net/xsk_buff_pool.h +140 −0
  1443. include/soc/mscc/ocelot.h +10 −5
  1444. include/soc/mscc/ocelot_ptp.h +17 −0
  1445. include/trace/events/qdisc.h +75 −0
  1446. include/trace/events/qrtr.h +115 −0
  1447. include/trace/events/xdp.h +1 −1
  1448. include/uapi/linux/bpf.h +343 −45
  1449. include/uapi/linux/capability.h +33 −1
  1450. include/uapi/linux/devlink.h +9 −0
  1451. include/uapi/linux/errqueue.h +1 −1
  1452. include/uapi/linux/ethtool.h +15 −1
  1453. include/uapi/linux/ethtool_netlink.h +151 −0
  1454. include/uapi/linux/genetlink.h +2 −0
  1455. include/uapi/linux/if.h +1 −0
  1456. include/uapi/linux/if_bridge.h +96 −0
  1457. include/uapi/linux/if_ether.h +1 −0
  1458. include/uapi/linux/if_link.h +1 −0
  1459. include/uapi/linux/if_x25.h +1 −1
  1460. include/uapi/linux/inet_diag.h +2 −0
  1461. include/uapi/linux/mii.h +2 −0
  1462. include/uapi/linux/mrp_bridge.h +122 −0
  1463. include/uapi/linux/neighbour.h +1 −0
  1464. include/uapi/linux/netfilter/nf_conntrack_common.h +6 −2
  1465. include/uapi/linux/netfilter/nf_nat.h +3 −1
  1466. include/uapi/linux/netfilter/nfnetlink_conntrack.h +9 −0
  1467. include/uapi/linux/netlink.h +103 −0
  1468. include/uapi/linux/nexthop.h +3 −0
  1469. include/uapi/linux/nl80211.h +122 −25
  1470. include/uapi/linux/pkt_cls.h +24 −0
  1471. include/uapi/linux/pkt_sched.h +6 −0
  1472. include/uapi/linux/psample.h +22 −0
  1473. include/uapi/linux/ptp_clock.h +3 −1
  1474. include/uapi/linux/rtnetlink.h +6 −0
  1475. include/uapi/linux/tc_act/tc_gate.h +47 −0
  1476. include/uapi/linux/wireless.h +5 −1
  1477. ipc/ipc_sysctl.c +5 −5
  1478. ipc/mq_sysctl.c +2 −2
  1479. kernel/bpf/Makefile +3 −5
  1480. kernel/bpf/arraymap.c +5 −5
  1481. kernel/bpf/bpf_iter.c +539 −0
  1482. kernel/bpf/bpf_lsm.c +1 −1
  1483. kernel/bpf/bpf_struct_ops.c +1 −1
  1484. kernel/bpf/btf.c +48 −1
  1485. kernel/bpf/cgroup.c +90 −56
  1486. kernel/bpf/core.c +8 −2
  1487. kernel/bpf/cpumap.c +5 −20
  1488. kernel/bpf/devmap.c +113 −20
  1489. kernel/bpf/hashtab.c +2 −2
  1490. kernel/bpf/helpers.c +124 −1
  1491. kernel/bpf/inode.c +4 −1
  1492. kernel/bpf/lpm_trie.c +1 −1
  1493. kernel/bpf/map_in_map.c +1 −1
  1494. kernel/bpf/map_iter.c +102 −0
  1495. kernel/bpf/net_namespace.c +373 −0
  1496. kernel/bpf/queue_stack_maps.c +2 −2
  1497. kernel/bpf/reuseport_array.c +1 −1
  1498. kernel/bpf/ringbuf.c +501 −0
  1499. kernel/bpf/stackmap.c +1 −1
  1500. kernel/bpf/syscall.c +503 −94
  1501. kernel/bpf/task_iter.c +353 −0
  1502. kernel/bpf/verifier.c +299 −88
  1503. kernel/cgroup/cgroup.c +0 −27
  1504. kernel/events/callchain.c +1 −1
  1505. kernel/events/core.c +2 −4
  1506. kernel/kprobes.c +1 −1
  1507. kernel/latencytop.c +2 −2
  1508. kernel/module.c +3 −0
  1509. kernel/pid_namespace.c +1 −1
  1510. kernel/printk/printk.c +1 −1
  1511. kernel/sched/core.c +4 −5
  1512. kernel/sched/fair.c +1 −2
  1513. kernel/sched/rt.c +4 −6
  1514. kernel/sched/topology.c +1 −1
  1515. kernel/seccomp.c +1 −1
  1516. kernel/sysctl.c +1891 −1990
  1517. kernel/time/timer.c +1 −2
  1518. kernel/trace/bpf_trace.c +235 −6
  1519. kernel/trace/trace.c +1 −1
  1520. kernel/umh.c +1 −1
  1521. kernel/utsname_sysctl.c +1 −1
  1522. kernel/watchdog.c +6 −6
  1523. lib/nlattr.c +200 −48
  1524. mm/compaction.c +1 −1
  1525. mm/hugetlb.c +4 −5
  1526. mm/page-writeback.c +6 −10
  1527. mm/page_alloc.c +10 −32
  1528. mm/util.c +4 −6
  1529. mm/vmstat.c +2 −2
  1530. net/8021q/vlan_dev.c +23 −3
  1531. net/Kconfig +3 −2
  1532. net/Makefile +1 −1
  1533. net/appletalk/ddp.c +64 −18
  1534. net/atm/Kconfig +1 −1
  1535. net/atm/ioctl.c +52 −44
  1536. net/atm/resources.c +34 −74
  1537. net/atm/resources.h +3 −2
  1538. net/ax25/Kconfig +3 −3
  1539. net/batman-adv/bat_iv_ogm.c +2 −2
  1540. net/batman-adv/bat_v_elp.c +2 −15
  1541. net/batman-adv/bat_v_ogm.c +2 −2
  1542. net/batman-adv/distributed-arp-table.h +0 −5
  1543. net/batman-adv/gateway_client.c +2 −2
  1544. net/batman-adv/hard-interface.c +2 −2
  1545. net/batman-adv/icmp_socket.c +0 −3
  1546. net/batman-adv/main.h +1 −1
  1547. net/batman-adv/routing.c +2 −2
  1548. net/batman-adv/soft-interface.c +31 −0
  1549. net/batman-adv/trace.h +0 −1
  1550. net/batman-adv/types.h +1 −1
  1551. net/bluetooth/6lowpan.c +8 −0
  1552. net/bluetooth/Kconfig +20 −6
  1553. net/bluetooth/Makefile +1 −0
  1554. net/bluetooth/hci_conn.c +21 −6
  1555. net/bluetooth/hci_core.c +79 −60
  1556. net/bluetooth/hci_debugfs.c +46 −0
  1557. net/bluetooth/hci_event.c +75 −31
  1558. net/bluetooth/hci_request.c +9 −7
  1559. net/bluetooth/hci_sock.c +7 −5
  1560. net/bluetooth/l2cap_core.c +2 −2
  1561. net/bluetooth/l2cap_sock.c +156 −12
  1562. net/bluetooth/lib.c +33 −0
  1563. net/bluetooth/mgmt.c +310 −112
  1564. net/bluetooth/msft.c +141 −0
  1565. net/bluetooth/msft.h +18 −0
  1566. net/bluetooth/rfcomm/sock.c +2 −5
  1567. net/bluetooth/smp.c +32 −13
  1568. net/bpf/test_run.c +15 −5
  1569. net/bridge/Kconfig +12 −0
  1570. net/bridge/Makefile +2 −0
  1571. net/bridge/br_arp_nd_proxy.c +4 −0
  1572. net/bridge/br_device.c +3 −0
  1573. net/bridge/br_if.c +25 −9
  1574. net/bridge/br_input.c +25 −1
  1575. net/bridge/br_ioctl.c +1 −2
  1576. net/bridge/br_mrp.c +677 −0
  1577. net/bridge/br_mrp_netlink.c +327 −0
  1578. net/bridge/br_mrp_switchdev.c +143 −0
  1579. net/bridge/br_netfilter_hooks.c +1 −1
  1580. net/bridge/br_netlink.c +11 −1
  1581. net/bridge/br_private.h +41 −8
  1582. net/bridge/br_private_mrp.h +66 −0
  1583. net/bridge/br_stp.c +6 −0
  1584. net/bridge/br_stp_if.c +10 −1
  1585. net/bridge/br_sysfs_br.c +1 −3
  1586. net/caif/caif_dev.c +4 −4
  1587. net/caif/chnl_net.c +2 −1
  1588. net/ceph/Kconfig +1 −1
  1589. net/ceph/messenger.c +2 −9
  1590. net/compat.c +11 −203
  1591. net/core/bpf_sk_storage.c +2 −2
  1592. net/core/dev.c +142 −36
  1593. net/core/devlink.c +160 −50
  1594. net/core/dst.c +4 −4
  1595. net/core/filter.c +332 −132
  1596. net/core/flow_dissector.c +53 −120
  1597. net/core/flow_offload.c +115 −190
  1598. net/core/gen_stats.c +1 −1
  1599. net/core/link_watch.c +10 −2
  1600. net/core/neighbour.c +15 −15
  1601. net/core/net-sysfs.c +38 −7
  1602. net/core/netpoll.c +29 −9
  1603. net/core/pktgen.c +1 −1
  1604. net/core/rtnetlink.c +9 −2
  1605. net/core/scm.c +78 −63
  1606. net/core/skbuff.c +6 −6
  1607. net/core/skmsg.c +74 −24
  1608. net/core/sock.c +158 −61
  1609. net/core/sock_map.c +16 −2
  1610. net/core/sysctl_net_core.c +13 −18
  1611. net/core/xdp.c +19 −40
  1612. net/dccp/dccp.h +0 −5
  1613. net/dccp/ipv6.c +1 −0
  1614. net/decnet/Kconfig +2 −2
  1615. net/decnet/dn_dev.c +3 −4
  1616. net/decnet/sysctl_net_decnet.c +8 −19
  1617. net/devres.c +95 −0
  1618. net/dns_resolver/Kconfig +1 −1
  1619. net/dns_resolver/dns_key.c +1 −1
  1620. net/dns_resolver/dns_query.c +1 −1
  1621. net/dsa/Kconfig +1 −0
  1622. net/dsa/dsa.c +10 −1
  1623. net/dsa/dsa2.c +21 −0
  1624. net/dsa/dsa_priv.h +5 −0
  1625. net/dsa/port.c +35 −2
  1626. net/dsa/slave.c +41 −20
  1627. net/dsa/switch.c +15 −6
  1628. net/dsa/tag_8021q.c +190 −62
  1629. net/dsa/tag_ocelot.c +1 −1
  1630. net/dsa/tag_sja1105.c +41 −12
  1631. net/ethernet/eth.c +0 −28
  1632. net/ethtool/Makefile +1 −1
  1633. net/ethtool/cabletest.c +431 −0
  1634. net/ethtool/channels.c +19 −3
  1635. net/ethtool/ioctl.c +25 −4
  1636. net/ethtool/linkmodes.c +53 −0
  1637. net/ethtool/linkstate.c +74 −1
  1638. net/ethtool/netlink.c +12 −2
  1639. net/ethtool/netlink.h +4 −0
  1640. net/hsr/hsr_device.c +1 −3
  1641. net/hsr/hsr_forward.c +1 −1
  1642. net/hsr/hsr_main.c +20 −2
  1643. net/hsr/hsr_main.h +0 −19
  1644. net/ieee802154/6lowpan/core.c +8 −0
  1645. net/ieee802154/6lowpan/rx.c +1 −1
  1646. net/ipv4/Kconfig +2 −1
  1647. net/ipv4/af_inet.c +51 −18
  1648. net/ipv4/devinet.c +21 −11
  1649. net/ipv4/fib_semantics.c +3 −0
  1650. net/ipv4/icmp.c +1 −1
  1651. net/ipv4/igmp.c +5 −13
  1652. net/ipv4/inet_connection_sock.c +1 −5
  1653. net/ipv4/inet_diag.c +39 −0
  1654. net/ipv4/ip_gre.c +58 −36
  1655. net/ipv4/ip_sockglue.c +304 −93
  1656. net/ipv4/ip_tunnel.c +15 −1
  1657. net/ipv4/ip_vti.c +13 −19
  1658. net/ipv4/ipip.c +9 −21
  1659. net/ipv4/ipmr.c +43 −79
  1660. net/ipv4/nexthop.c +139 −29
  1661. net/ipv4/route.c +1 −2
  1662. net/ipv4/sysctl_net_ipv4.c +31 −23
  1663. net/ipv4/tcp.c +163 −63
  1664. net/ipv4/tcp_input.c +50 −39
  1665. net/ipv4/tcp_ipv4.c +57 −48
  1666. net/ipv4/tcp_minisocks.c +1 −1
  1667. net/ipv4/tcp_output.c +21 −15
  1668. net/ipv4/tcp_timer.c +7 −1
  1669. net/ipv4/udp.c +9 −1
  1670. net/ipv4/udp_tunnel.c +1 −3
  1671. net/ipv4/xfrm4_input.c +0 −5
  1672. net/ipv4/xfrm4_output.c +2 −61
  1673. net/ipv4/xfrm4_state.c +0 −24
  1674. net/ipv6/Kconfig +13 −1
  1675. net/ipv6/addrconf.c +120 −151
  1676. net/ipv6/addrconf_core.c +2 −1
  1677. net/ipv6/af_inet6.c +87 −19
  1678. net/ipv6/ah6.c +1 −0
  1679. net/ipv6/anycast.c +2 −2
  1680. net/ipv6/esp6.c +388 −26
  1681. net/ipv6/esp6_offload.c +3 −4
  1682. net/ipv6/ila/ila.h +0 −5
  1683. net/ipv6/ila/ila_xlat.c +0 −2
  1684. net/ipv6/ip6_fib.c +58 −2
  1685. net/ipv6/ip6_tunnel.c +143 −104
  1686. net/ipv6/ip6_udp_tunnel.c +2 −7
  1687. net/ipv6/ip6_vti.c +16 −2
  1688. net/ipv6/ipcomp6.c +1 −0
  1689. net/ipv6/ipv6_sockglue.c +202 −104
  1690. net/ipv6/mcast.c +7 −10
  1691. net/ipv6/ndisc.c +3 −2
  1692. net/ipv6/raw.c +1 −0
  1693. net/ipv6/route.c +78 −37
  1694. net/ipv6/sit.c +205 −158
  1695. net/ipv6/sysctl_net_ipv6.c +1 −2
  1696. net/ipv6/tcp_ipv6.c +12 −0
  1697. net/ipv6/tunnel6.c +83 −4
  1698. net/ipv6/xfrm6_input.c +101 −10
  1699. net/ipv6/xfrm6_output.c +4 −92
  1700. net/ipv6/xfrm6_protocol.c +48 −0
  1701. net/ipv6/xfrm6_state.c +0 −26
  1702. net/iucv/af_iucv.c +54 −199
  1703. net/iucv/iucv.c +0 −188
  1704. net/l2tp/l2tp_eth.c +1 −0
  1705. net/l2tp/l2tp_ip6.c +1 −0
  1706. net/lapb/Kconfig +1 −1
  1707. net/mac80211/agg-rx.c +3 −2
  1708. net/mac80211/agg-tx.c +52 −30
  1709. net/mac80211/cfg.c +71 −35
  1710. net/mac80211/chan.c +1 −0
  1711. net/mac80211/debugfs_netdev.c +1 −1
  1712. net/mac80211/driver-ops.h +2 −2
  1713. net/mac80211/he.c +53 −8
  1714. net/mac80211/ibss.c +14 −2
  1715. net/mac80211/ieee80211_i.h +25 −9
  1716. net/mac80211/iface.c +5 −0
  1717. net/mac80211/main.c +12 −3
  1718. net/mac80211/mesh.c +49 −6
  1719. net/mac80211/mesh.h +2 −0
  1720. net/mac80211/mesh_plink.c +7 −2
  1721. net/mac80211/mlme.c +132 −50
  1722. net/mac80211/offchannel.c +4 −0
  1723. net/mac80211/rc80211_minstrel_ht.c +2 −1
  1724. net/mac80211/rx.c +95 −27
  1725. net/mac80211/scan.c +18 −9
  1726. net/mac80211/spectmgmt.c +3 −1
  1727. net/mac80211/sta_info.h +4 −0
  1728. net/mac80211/status.c +8 −1
  1729. net/mac80211/tdls.c +6 −3
  1730. net/mac80211/trace.h +33 −8
  1731. net/mac80211/tx.c +51 −23
  1732. net/mac80211/util.c +286 −12
  1733. net/mac80211/vht.c +8 −2
  1734. net/mpls/af_mpls.c +4 −4
  1735. net/mpls/internal.h +0 −11
  1736. net/mptcp/options.c +24 −9
  1737. net/mptcp/protocol.c +123 −45
  1738. net/mptcp/protocol.h +1 −0
  1739. net/mptcp/subflow.c +48 −10
  1740. net/netfilter/Kconfig +1 −1
  1741. net/netfilter/ipvs/ip_vs_ctl.c +3 −3
  1742. net/netfilter/nf_conntrack_core.c +14 −5
  1743. net/netfilter/nf_conntrack_netlink.c +295 −39
  1744. net/netfilter/nf_conntrack_proto_icmp.c +27 −13
  1745. net/netfilter/nf_conntrack_proto_icmpv6.c +28 −14
  1746. net/netfilter/nf_conntrack_standalone.c +4 −2
  1747. net/netfilter/nf_flow_table_core.c +3 −3
  1748. net/netfilter/nf_flow_table_offload.c +17 −71
  1749. net/netfilter/nf_internals.h +17 −0
  1750. net/netfilter/nf_log.c +1 −1
  1751. net/netfilter/nf_tables_api.c +295 −76
  1752. net/netfilter/nf_tables_offload.c +19 −50
  1753. net/netfilter/nft_nat.c +84 −26
  1754. net/netlink/Makefile +1 −1
  1755. net/netlink/af_netlink.c +90 −2
  1756. net/netlink/genetlink.c +78 −0
Documentation/ABI/testing/sysfs-class-net+13−0
@@ -124,6 +124,19 @@ Description: · 123 unmodified lines
124124 authentication is performed (e.g: 802.1x). 'link_mode' attribute
125125 will also reflect the dormant state.
126126
127+What: /sys/class/net/<iface>/testing
128+Date: April 2002
129+KernelVersion: 5.8
130+Contact: netdev@vger.kernel.org
131+Description:
132+ Indicates whether the interface is under test. Possible
133+ values are:
134+ 0: interface is not being tested
135+ 1: interface is being tested
136+
137+ When an interface is under test, it cannot be expected
138+ to pass packets as normal.
139+
127140 What: /sys/clas/net/<iface>/duplex
128141 Date: October 2009
129142 KernelVersion: 2.6.33
Documentation/admin-guide/kernel-parameters.txt+6−6
@@ -356,7 +356,7 @@ · 355 unmodified lines
356356 shot down by NMI
357357
358358 autoconf= [IPV6]
359− See Documentation/networking/ipv6.txt.
359+ See Documentation/networking/ipv6.rst.
360360
361361 show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller
362362 Limit apic dumping. The parameter defines the maximal
@@ -638,7 +638,7 @@ · 275 unmodified lines
638638
639639 See Documentation/admin-guide/serial-console.rst for more
640640 information. See
641− Documentation/networking/netconsole.txt for an
641+ Documentation/networking/netconsole.rst for an
642642 alternative.
643643
644644 uart[8250],io,<addr>[,options]
@@ -831,7 +831,7 @@ · 186 unmodified lines
831831
832832 decnet.addr= [HW,NET]
833833 Format: <area>[,<node>]
834− See also Documentation/networking/decnet.txt.
834+ See also Documentation/networking/decnet.rst.
835835
836836 default_hugepagesz=
837837 [same as hugepagesz=] The size of the default
@@ -872,7 +872,7 @@ · 34 unmodified lines
872872 miss to occur.
873873
874874 disable= [IPV6]
875− See Documentation/networking/ipv6.txt.
875+ See Documentation/networking/ipv6.rst.
876876
877877 hardened_usercopy=
878878 [KNL] Under CONFIG_HARDENED_USERCOPY, whether
@@ -912,7 +912,7 @@ · 33 unmodified lines
912912 to workaround buggy firmware.
913913
914914 disable_ipv6= [IPV6]
915− See Documentation/networking/ipv6.txt.
915+ See Documentation/networking/ipv6.rst.
916916
917917 disable_mtrr_cleanup [X86]
918918 The kernel tries to adjust MTRR layout from continuous
@@ -4956,7 +4956,7 @@ · 4037 unmodified lines
49564956 Set the number of tcp_metrics_hash slots.
49574957 Default value is 8192 or 16384 depending on total
49584958 ram pages. This is used to specify the TCP metrics
4959− cache size. See Documentation/networking/ip-sysctl.txt
4959+ cache size. See Documentation/networking/ip-sysctl.rst
49604960 "tcp_no_metrics_save" section for more details.
49614961
49624962 tdfx= [HW,DRM]
Documentation/admin-guide/serial-console.rst+1−1
@@ -54,7 +54,7 @@ You will need to create a new device to use ``/dev/console``. The official · 53 unmodified lines
5454 ``/dev/console`` is now character device 5,1.
5555
5656 (You can also use a network device as a console. See
57−``Documentation/networking/netconsole.txt`` for information on that.)
57+``Documentation/networking/netconsole.rst`` for information on that.)
5858
5959 Here's an example that will use ``/dev/ttyS1`` (COM2) as the console.
6060 Replace the sample values as needed.
Documentation/admin-guide/sysctl/net.rst+5−3
@@ -339,7 +339,9 @@ settings from init_net and for IPv6 we reset all settings to default. · 338 unmodified lines
339339
340340 If set to 1, both IPv4 and IPv6 settings are forced to inherit from
341341 current ones in init_net. If set to 2, both IPv4 and IPv6 settings are
342−forced to reset to their default values.
342+forced to reset to their default values. If set to 3, both IPv4 and IPv6
343+settings are forced to inherit from current ones in the netns where this
344+new netns has been created.
343345
344346 Default : 0 (for compatibility reasons)
345347
@@ -353,8 +355,8 @@ socket's buffer. It will not take effect unless PF_UNIX flag is specified. · 7 unmodified lines
353355
354356 3. /proc/sys/net/ipv4 - IPV4 settings
355357 -------------------------------------
356−Please see: Documentation/networking/ip-sysctl.txt and ipvs-sysctl.txt for
357−descriptions of these entries.
358+Please see: Documentation/networking/ip-sysctl.rst and
359+Documentation/admin-guide/sysctl/net.rst for descriptions of these entries.
358360
359361
360362 4. Appletalk
Documentation/bpf/bpf_devel_QA.rst+15−0
@@ -437,6 +437,21 @@ needed:: · 436 unmodified lines
437437 See the kernels selftest `Documentation/dev-tools/kselftest.rst`_
438438 document for further documentation.
439439
440+To maximize the number of tests passing, the .config of the kernel
441+under test should match the config file fragment in
442+tools/testing/selftests/bpf as closely as possible.
443+
444+Finally to ensure support for latest BPF Type Format features -
445+discussed in `Documentation/bpf/btf.rst`_ - pahole version 1.16
446+is required for kernels built with CONFIG_DEBUG_INFO_BTF=y.
447+pahole is delivered in the dwarves package or can be built
448+from source at
449+
450+https://github.com/acmel/dwarves
451+
452+Some distros have pahole version 1.16 packaged already, e.g.
453+Fedora, Gentoo.
454+
440455 Q: Which BPF kernel selftests version should I run my kernel against?
441456 ---------------------------------------------------------------------
442457 A: If you run a kernel ``xyz``, then always run the BPF kernel selftests
Documentation/bpf/index.rst+2−2
@@ -7,7 +7,7 @@ Filter) facility, with a focus on the extended BPF version (eBPF). · 6 unmodified lines
77
88 This kernel side documentation is still work in progress. The main
99 textual documentation is (for historical reasons) described in
10−`Documentation/networking/filter.txt`_, which describe both classical
10+`Documentation/networking/filter.rst`_, which describe both classical
1111 and extended BPF instruction-set.
1212 The Cilium project also maintains a `BPF and XDP Reference Guide`_
1313 that goes into great technical depth about the BPF Architecture.
@@ -59,7 +59,7 @@ Testing and debugging BPF · 45 unmodified lines
5959
6060
6161 .. Links:
62−.. _Documentation/networking/filter.txt: ../networking/filter.txt
62+.. _Documentation/networking/filter.rst: ../networking/filter.txt
6363 .. _man-pages: https://www.kernel.org/doc/man-pages/
6464 .. _bpf(2): http://man7.org/linux/man-pages/man2/bpf.2.html
6565 .. _BPF and XDP Reference Guide: http://cilium.readthedocs.io/en/latest/bpf/
Documentation/bpf/ringbuf.rst+209−0
@@ -0,0 +1,209 @@
1+===============
2+BPF ring buffer
3+===============
4+
5+This document describes BPF ring buffer design, API, and implementation details.
6+
7+.. contents::
8+ :local:
9+ :depth: 2
10+
11+Motivation
12+----------
13+
14+There are two distinctive motivators for this work, which are not satisfied by
15+existing perf buffer, which prompted creation of a new ring buffer
16+implementation.
17+
18+- more efficient memory utilization by sharing ring buffer across CPUs;
19+- preserving ordering of events that happen sequentially in time, even across
20+ multiple CPUs (e.g., fork/exec/exit events for a task).
21+
22+These two problems are independent, but perf buffer fails to satisfy both.
23+Both are a result of a choice to have per-CPU perf ring buffer. Both can be
24+also solved by having an MPSC implementation of ring buffer. The ordering
25+problem could technically be solved for perf buffer with some in-kernel
26+counting, but given the first one requires an MPSC buffer, the same solution
27+would solve the second problem automatically.
28+
29+Semantics and APIs
30+------------------
31+
32+Single ring buffer is presented to BPF programs as an instance of BPF map of
33+type ``BPF_MAP_TYPE_RINGBUF``. Two other alternatives considered, but
34+ultimately rejected.
35+
36+One way would be to, similar to ``BPF_MAP_TYPE_PERF_EVENT_ARRAY``, make
37+``BPF_MAP_TYPE_RINGBUF`` could represent an array of ring buffers, but not
38+enforce "same CPU only" rule. This would be more familiar interface compatible
39+with existing perf buffer use in BPF, but would fail if application needed more
40+advanced logic to lookup ring buffer by arbitrary key.
41+``BPF_MAP_TYPE_HASH_OF_MAPS`` addresses this with current approach.
42+Additionally, given the performance of BPF ringbuf, many use cases would just
43+opt into a simple single ring buffer shared among all CPUs, for which current
44+approach would be an overkill.
45+
46+Another approach could introduce a new concept, alongside BPF map, to represent
47+generic "container" object, which doesn't necessarily have key/value interface
48+with lookup/update/delete operations. This approach would add a lot of extra
49+infrastructure that has to be built for observability and verifier support. It
50+would also add another concept that BPF developers would have to familiarize
51+themselves with, new syntax in libbpf, etc. But then would really provide no
52+additional benefits over the approach of using a map. ``BPF_MAP_TYPE_RINGBUF``
53+doesn't support lookup/update/delete operations, but so doesn't few other map
54+types (e.g., queue and stack; array doesn't support delete, etc).
55+
56+The approach chosen has an advantage of re-using existing BPF map
57+infrastructure (introspection APIs in kernel, libbpf support, etc), being
58+familiar concept (no need to teach users a new type of object in BPF program),
59+and utilizing existing tooling (bpftool). For common scenario of using a single
60+ring buffer for all CPUs, it's as simple and straightforward, as would be with
61+a dedicated "container" object. On the other hand, by being a map, it can be
62+combined with ``ARRAY_OF_MAPS`` and ``HASH_OF_MAPS`` map-in-maps to implement
63+a wide variety of topologies, from one ring buffer for each CPU (e.g., as
64+a replacement for perf buffer use cases), to a complicated application
65+hashing/sharding of ring buffers (e.g., having a small pool of ring buffers
66+with hashed task's tgid being a look up key to preserve order, but reduce
67+contention).
68+
69+Key and value sizes are enforced to be zero. ``max_entries`` is used to specify
70+the size of ring buffer and has to be a power of 2 value.
71+
72+There are a bunch of similarities between perf buffer
73+(``BPF_MAP_TYPE_PERF_EVENT_ARRAY``) and new BPF ring buffer semantics:
74+
75+- variable-length records;
76+- if there is no more space left in ring buffer, reservation fails, no
77+ blocking;
78+- memory-mappable data area for user-space applications for ease of
79+ consumption and high performance;
80+- epoll notifications for new incoming data;
81+- but still the ability to do busy polling for new data to achieve the
82+ lowest latency, if necessary.
83+
84+BPF ringbuf provides two sets of APIs to BPF programs:
85+
86+- ``bpf_ringbuf_output()`` allows to *copy* data from one place to a ring
87+ buffer, similarly to ``bpf_perf_event_output()``;
88+- ``bpf_ringbuf_reserve()``/``bpf_ringbuf_commit()``/``bpf_ringbuf_discard()``
89+ APIs split the whole process into two steps. First, a fixed amount of space
90+ is reserved. If successful, a pointer to a data inside ring buffer data
91+ area is returned, which BPF programs can use similarly to a data inside
92+ array/hash maps. Once ready, this piece of memory is either committed or
93+ discarded. Discard is similar to commit, but makes consumer ignore the
94+ record.
95+
96+``bpf_ringbuf_output()`` has disadvantage of incurring extra memory copy,
97+because record has to be prepared in some other place first. But it allows to
98+submit records of the length that's not known to verifier beforehand. It also
99+closely matches ``bpf_perf_event_output()``, so will simplify migration
100+significantly.
101+
102+``bpf_ringbuf_reserve()`` avoids the extra copy of memory by providing a memory
103+pointer directly to ring buffer memory. In a lot of cases records are larger
104+than BPF stack space allows, so many programs have use extra per-CPU array as
105+a temporary heap for preparing sample. bpf_ringbuf_reserve() avoid this needs
106+completely. But in exchange, it only allows a known constant size of memory to
107+be reserved, such that verifier can verify that BPF program can't access memory
108+outside its reserved record space. bpf_ringbuf_output(), while slightly slower
109+due to extra memory copy, covers some use cases that are not suitable for
110+``bpf_ringbuf_reserve()``.
111+
112+The difference between commit and discard is very small. Discard just marks
113+a record as discarded, and such records are supposed to be ignored by consumer
114+code. Discard is useful for some advanced use-cases, such as ensuring
115+all-or-nothing multi-record submission, or emulating temporary
116+``malloc()``/``free()`` within single BPF program invocation.
117+
118+Each reserved record is tracked by verifier through existing
119+reference-tracking logic, similar to socket ref-tracking. It is thus
120+impossible to reserve a record, but forget to submit (or discard) it.
121+
122+``bpf_ringbuf_query()`` helper allows to query various properties of ring
123+buffer. Currently 4 are supported:
124+
125+- ``BPF_RB_AVAIL_DATA`` returns amount of unconsumed data in ring buffer;
126+- ``BPF_RB_RING_SIZE`` returns the size of ring buffer;
127+- ``BPF_RB_CONS_POS``/``BPF_RB_PROD_POS`` returns current logical possition
128+ of consumer/producer, respectively.
129+
130+Returned values are momentarily snapshots of ring buffer state and could be
131+off by the time helper returns, so this should be used only for
132+debugging/reporting reasons or for implementing various heuristics, that take
133+into account highly-changeable nature of some of those characteristics.
134+
135+One such heuristic might involve more fine-grained control over poll/epoll
136+notifications about new data availability in ring buffer. Together with
137+``BPF_RB_NO_WAKEUP``/``BPF_RB_FORCE_WAKEUP`` flags for output/commit/discard
138+helpers, it allows BPF program a high degree of control and, e.g., more
139+efficient batched notifications. Default self-balancing strategy, though,
140+should be adequate for most applications and will work reliable and efficiently
141+already.
142+
143+Design and Implementation
144+-------------------------
145+
146+This reserve/commit schema allows a natural way for multiple producers, either
147+on different CPUs or even on the same CPU/in the same BPF program, to reserve
148+independent records and work with them without blocking other producers. This
149+means that if BPF program was interruped by another BPF program sharing the
150+same ring buffer, they will both get a record reserved (provided there is
151+enough space left) and can work with it and submit it independently. This
152+applies to NMI context as well, except that due to using a spinlock during
153+reservation, in NMI context, ``bpf_ringbuf_reserve()`` might fail to get
154+a lock, in which case reservation will fail even if ring buffer is not full.
155+
156+The ring buffer itself internally is implemented as a power-of-2 sized
157+circular buffer, with two logical and ever-increasing counters (which might
158+wrap around on 32-bit architectures, that's not a problem):
159+
160+- consumer counter shows up to which logical position consumer consumed the
161+ data;
162+- producer counter denotes amount of data reserved by all producers.
163+
164+Each time a record is reserved, producer that "owns" the record will
165+successfully advance producer counter. At that point, data is still not yet
166+ready to be consumed, though. Each record has 8 byte header, which contains the
167+length of reserved record, as well as two extra bits: busy bit to denote that
168+record is still being worked on, and discard bit, which might be set at commit
169+time if record is discarded. In the latter case, consumer is supposed to skip
170+the record and move on to the next one. Record header also encodes record's
171+relative offset from the beginning of ring buffer data area (in pages). This
172+allows ``bpf_ringbuf_commit()``/``bpf_ringbuf_discard()`` to accept only the
173+pointer to the record itself, without requiring also the pointer to ring buffer
174+itself. Ring buffer memory location will be restored from record metadata
175+header. This significantly simplifies verifier, as well as improving API
176+usability.
177+
178+Producer counter increments are serialized under spinlock, so there is
179+a strict ordering between reservations. Commits, on the other hand, are
180+completely lockless and independent. All records become available to consumer
181+in the order of reservations, but only after all previous records where
182+already committed. It is thus possible for slow producers to temporarily hold
183+off submitted records, that were reserved later.
184+
185+Reservation/commit/consumer protocol is verified by litmus tests in
186+Documentation/litmus_tests/bpf-rb/_.
187+
188+One interesting implementation bit, that significantly simplifies (and thus
189+speeds up as well) implementation of both producers and consumers is how data
190+area is mapped twice contiguously back-to-back in the virtual memory. This
191+allows to not take any special measures for samples that have to wrap around
192+at the end of the circular buffer data area, because the next page after the
193+last data page would be first data page again, and thus the sample will still
194+appear completely contiguous in virtual memory. See comment and a simple ASCII
195+diagram showing this visually in ``bpf_ringbuf_area_alloc()``.
196+
197+Another feature that distinguishes BPF ringbuf from perf ring buffer is
198+a self-pacing notifications of new data being availability.
199+``bpf_ringbuf_commit()`` implementation will send a notification of new record
200+being available after commit only if consumer has already caught up right up to
201+the record being committed. If not, consumer still has to catch up and thus
202+will see new data anyways without needing an extra poll notification.
203+Benchmarks (see tools/testing/selftests/bpf/benchs/bench_ringbuf.c_) show that
204+this allows to achieve a very high throughput without having to resort to
205+tricks like "notify only every Nth sample", which are necessary with perf
206+buffer. For extreme cases, when BPF program wants more manual control of
207+notifications, commit/discard/output helpers accept ``BPF_RB_NO_WAKEUP`` and
208+``BPF_RB_FORCE_WAKEUP`` flags, which give full control over notifications of
209+data availability, but require extra caution and diligence in using this API.
Documentation/dev-tools/kselftest.rst+2−1
@@ -301,7 +301,8 @@ Helpers · 300 unmodified lines
301301
302302 .. kernel-doc:: tools/testing/selftests/kselftest_harness.h
303303 :functions: TH_LOG TEST TEST_SIGNAL FIXTURE FIXTURE_DATA FIXTURE_SETUP
304− FIXTURE_TEARDOWN TEST_F TEST_HARNESS_MAIN
304+ FIXTURE_TEARDOWN TEST_F TEST_HARNESS_MAIN FIXTURE_VARIANT
305+ FIXTURE_VARIANT_ADD
305306
306307 Operators
307308 ---------
Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt+0−36
@@ -1,36 +0,0 @@
1−Mediatek pericfg controller
2−===========================
3−
4−The Mediatek pericfg controller provides various clocks and reset
5−outputs to the system.
6−
7−Required Properties:
8−
9−- compatible: Should be one of:
10− - "mediatek,mt2701-pericfg", "syscon"
11− - "mediatek,mt2712-pericfg", "syscon"
12− - "mediatek,mt7622-pericfg", "syscon"
13− - "mediatek,mt7623-pericfg", "mediatek,mt2701-pericfg", "syscon"
14− - "mediatek,mt7629-pericfg", "syscon"
15− - "mediatek,mt8135-pericfg", "syscon"
16− - "mediatek,mt8173-pericfg", "syscon"
17− - "mediatek,mt8183-pericfg", "syscon"
18−- #clock-cells: Must be 1
19−- #reset-cells: Must be 1
20−
21−The pericfg controller uses the common clk binding from
22−Documentation/devicetree/bindings/clock/clock-bindings.txt
23−The available clocks are defined in dt-bindings/clock/mt*-clk.h.
24−Also it uses the common reset controller binding from
25−Documentation/devicetree/bindings/reset/reset.txt.
26−The available reset outputs are defined in
27−dt-bindings/reset/mt*-resets.h
28−
29−Example:
30−
31−pericfg: power-controller@10003000 {
32− compatible = "mediatek,mt8173-pericfg", "syscon";
33− reg = <0 0x10003000 0 0x1000>;
34− #clock-cells = <1>;
35− #reset-cells = <1>;
36−};
Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.yaml+64−0
@@ -0,0 +1,64 @@
1+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+%YAML 1.2
3+---
4+$id: "http://devicetree.org/schemas/arm/mediatek/mediatek,pericfg.yaml#"
5+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6+
7+title: MediaTek Peripheral Configuration Controller
8+
9+maintainers:
10+ - Bartosz Golaszewski <bgolaszewski@baylibre.com>
11+
12+description:
13+ The Mediatek pericfg controller provides various clocks and reset outputs
14+ to the system.
15+
16+properties:
17+ compatible:
18+ oneOf:
19+ - items:
20+ - enum:
21+ - mediatek,mt2701-pericfg
22+ - mediatek,mt2712-pericfg
23+ - mediatek,mt7622-pericfg
24+ - mediatek,mt7629-pericfg
25+ - mediatek,mt8135-pericfg
26+ - mediatek,mt8173-pericfg
27+ - mediatek,mt8183-pericfg
28+ - mediatek,mt8516-pericfg
29+ - const: syscon
30+ - items:
31+ # Special case for mt7623 for backward compatibility
32+ - const: mediatek,mt7623-pericfg
33+ - const: mediatek,mt2701-pericfg
34+ - const: syscon
35+
36+ reg:
37+ maxItems: 1
38+
39+ '#clock-cells':
40+ const: 1
41+
42+ '#reset-cells':
43+ const: 1
44+
45+required:
46+ - compatible
47+ - reg
48+
49+examples:
50+ - |
51+ pericfg@10003000 {
52+ compatible = "mediatek,mt8173-pericfg", "syscon";
53+ reg = <0x10003000 0x1000>;
54+ #clock-cells = <1>;
55+ #reset-cells = <1>;
56+ };
57+
58+ - |
59+ pericfg@10003000 {
60+ compatible = "mediatek,mt7623-pericfg", "mediatek,mt2701-pericfg", "syscon";
61+ reg = <0x10003000 0x1000>;
62+ #clock-cells = <1>;
63+ #reset-cells = <1>;
64+ };
Documentation/devicetree/bindings/net/amlogic,meson-dwmac.yaml+20−3
@@ -40,18 +40,22 @@ allOf: · 39 unmodified lines
4040 then:
4141 properties:
4242 clocks:
43+ minItems: 3
44+ maxItems: 4
4345 items:
4446 - description: GMAC main clock
4547 - description: First parent clock of the internal mux
4648 - description: Second parent clock of the internal mux
49+ - description: The clock which drives the timing adjustment logic
4750
4851 clock-names:
4952 minItems: 3
50− maxItems: 3
53+ maxItems: 4
5154 items:
5255 - const: stmmaceth
5356 - const: clkin0
5457 - const: clkin1
58+ - const: timing-adjustment
5559
5660 amlogic,tx-delay-ns:
5761 $ref: /schemas/types.yaml#definitions/uint32
@@ -67,6 +71,19 @@ allOf: · 9 unmodified lines
6771 PHY and MAC are adding a delay).
6872 Any configuration is ignored when the phy-mode is set to "rmii".
6973
74+ amlogic,rx-delay-ns:
75+ enum:
76+ - 0
77+ - 2
78+ default: 0
79+ description:
80+ The internal RGMII RX clock delay (provided by this IP block) in
81+ nanoseconds. When phy-mode is set to "rgmii" then the RX delay
82+ should be explicitly configured. When the phy-mode is set to
83+ either "rgmii-id" or "rgmii-rxid" the RX clock delay is already
84+ provided by the PHY. Any configuration is ignored when the
85+ phy-mode is set to "rmii".
86+
7087 properties:
7188 compatible:
7289 additionalItems: true
@@ -107,7 +124,7 @@ examples: · 34 unmodified lines
107124 reg = <0xc9410000 0x10000>, <0xc8834540 0x8>;
108125 interrupts = <8>;
109126 interrupt-names = "macirq";
110− clocks = <&clk_eth>, <&clkc_fclk_div2>, <&clk_mpll2>;
111− clock-names = "stmmaceth", "clkin0", "clkin1";
127+ clocks = <&clk_eth>, <&clk_fclk_div2>, <&clk_mpll2>, <&clk_fclk_div2>;
128+ clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment";
112129 phy-mode = "rgmii";
113130 };
Documentation/devicetree/bindings/net/ethernet-phy.yaml+2−1
@@ -81,7 +81,8 @@ properties: · 80 unmodified lines
8181 $ref: /schemas/types.yaml#definitions/flag
8282 description:
8383 If set, indicates the PHY device does not correctly release
84− the turn around line low at the end of a MDIO transaction.
84+ the turn around line low at end of the control phase of the
85+ MDIO transaction.
8586
8687 enet-phy-lane-swap:
8788 $ref: /schemas/types.yaml#definitions/flag
Documentation/devicetree/bindings/net/fsl-fec.txt+6−2
@@ -22,8 +22,11 @@ Optional properties: · 21 unmodified lines
2222 - fsl,err006687-workaround-present: If present indicates that the system has
2323 the hardware workaround for ERR006687 applied and does not need a software
2424 workaround.
25−- gpr: phandle of SoC general purpose register mode. Required for wake on LAN
26− on some SoCs
25+- fsl,stop-mode: register bits of stop mode control, the format is
26+ <&gpr req_gpr req_bit>.
27+ gpr is the phandle to general purpose register node.
28+ req_gpr is the gpr register offset for ENET stop request.
29+ req_bit is the gpr bit offset for ENET stop request.
2730 -interrupt-names: names of the interrupts listed in interrupts property in
2831 the same order. The defaults if not specified are
2932 __Number of interrupts__ __Default__
@@ -82,6 +85,7 @@ ethernet@83fec000 { · 52 unmodified lines
8285 phy-supply = <&reg_fec_supply>;
8386 phy-handle = <&ethphy>;
8487 mdio {
88+ clock-frequency = <5000000>;
8589 ethphy: ethernet-phy@6 {
8690 compatible = "ethernet-phy-ieee802.3-c22";
8791 reg = <6>;
Documentation/devicetree/bindings/net/imx-dwmac.txt+56−0
@@ -0,0 +1,56 @@
1+IMX8 glue layer controller, NXP imx8 families support Synopsys MAC 5.10a IP.
2+
3+This file documents platform glue layer for IMX.
4+Please see stmmac.txt for the other unchanged properties.
5+
6+The device node has following properties.
7+
8+Required properties:
9+- compatible: Should be "nxp,imx8mp-dwmac-eqos" to select glue layer
10+ and "snps,dwmac-5.10a" to select IP version.
11+- clocks: Must contain a phandle for each entry in clock-names.
12+- clock-names: Should be "stmmaceth" for the host clock.
13+ Should be "pclk" for the MAC apb clock.
14+ Should be "ptp_ref" for the MAC timer clock.
15+ Should be "tx" for the MAC RGMII TX clock:
16+ Should be "mem" for EQOS MEM clock.
17+ - "mem" clock is required for imx8dxl platform.
18+ - "mem" clock is not required for imx8mp platform.
19+- interrupt-names: Should contain a list of interrupt names corresponding to
20+ the interrupts in the interrupts property, if available.
21+ Should be "macirq" for the main MAC IRQ
22+ Should be "eth_wake_irq" for the IT which wake up system
23+- intf_mode: Should be phandle/offset pair. The phandle to the syscon node which
24+ encompases the GPR register, and the offset of the GPR register.
25+ - required for imx8mp platform.
26+ - is optional for imx8dxl platform.
27+
28+Optional properties:
29+- intf_mode: is optional for imx8dxl platform.
30+- snps,rmii_refclk_ext: to select RMII reference clock from external.
31+
32+Example:
33+ eqos: ethernet@30bf0000 {
34+ compatible = "nxp,imx8mp-dwmac-eqos", "snps,dwmac-5.10a";
35+ reg = <0x30bf0000 0x10000>;
36+ interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
37+ <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
38+ interrupt-names = "eth_wake_irq", "macirq";
39+ clocks = <&clk IMX8MP_CLK_ENET_QOS_ROOT>,
40+ <&clk IMX8MP_CLK_QOS_ENET_ROOT>,
41+ <&clk IMX8MP_CLK_ENET_QOS_TIMER>,
42+ <&clk IMX8MP_CLK_ENET_QOS>;
43+ clock-names = "stmmaceth", "pclk", "ptp_ref", "tx";
44+ assigned-clocks = <&clk IMX8MP_CLK_ENET_AXI>,
45+ <&clk IMX8MP_CLK_ENET_QOS_TIMER>,
46+ <&clk IMX8MP_CLK_ENET_QOS>;
47+ assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>,
48+ <&clk IMX8MP_SYS_PLL2_100M>,
49+ <&clk IMX8MP_SYS_PLL2_125M>;
50+ assigned-clock-rates = <0>, <100000000>, <125000000>;
51+ nvmem-cells = <&eth_mac0>;
52+ nvmem-cell-names = "mac-address";
53+ nvmem_macaddr_swap;
54+ intf_mode = <&gpr 0x4>;
55+ status = "disabled";
56+ };
Documentation/devicetree/bindings/net/mdio.yaml+45−5
@@ -31,13 +31,25 @@ properties: · 30 unmodified lines
3131 maxItems: 1
3232 description:
3333 The phandle and specifier for the GPIO that controls the RESET
34− lines of all PHYs on that MDIO bus.
34+ lines of all devices on that MDIO bus.
3535
3636 reset-delay-us:
3737 description:
38− RESET pulse width in microseconds. It applies to all PHY devices
39− and must therefore be appropriately determined based on all PHY
40− requirements (maximum value of all per-PHY RESET pulse widths).
38+ RESET pulse width in microseconds. It applies to all MDIO devices
39+ and must therefore be appropriately determined based on all devices
40+ requirements (maximum value of all per-device RESET pulse widths).
41+
42+ clock-frequency:
43+ description:
44+ Desired MDIO bus clock frequency in Hz. Values greater than IEEE 802.3
45+ defined 2.5MHz should only be used when all devices on the bus support
46+ the given clock speed.
47+
48+ suppress-preamble:
49+ description:
50+ The 32 bit preamble should be suppressed. In order for this to
51+ work, all devices on the bus must support suppressed preamble.
52+ type: boolean
4153
4254 patternProperties:
4355 "^ethernet-phy@[0-9a-f]+$":
@@ -48,7 +60,35 @@ patternProperties: · 4 unmodified lines
4860 minimum: 0
4961 maximum: 31
5062 description:
51− The ID number for the PHY.
63+ The ID number for the device.
64+
65+ broken-turn-around:
66+ $ref: /schemas/types.yaml#definitions/flag
67+ description:
68+ If set, indicates the MDIO device does not correctly release
69+ the turn around line low at end of the control phase of the
70+ MDIO transaction.
71+
72+ resets:
73+ maxItems: 1
74+
75+ reset-names:
76+ const: phy
77+
78+ reset-gpios:
79+ maxItems: 1
80+ description:
81+ The GPIO phandle and specifier for the MDIO reset signal.
82+
83+ reset-assert-us:
84+ description:
85+ Delay after the reset was asserted in microseconds. If this
86+ property is missing the delay will be skipped.
87+
88+ reset-deassert-us:
89+ description:
90+ Delay after the reset was deasserted in microseconds. If
91+ this property is missing the delay will be skipped.
5292
5393 required:
5494 - reg
Documentation/devicetree/bindings/net/mediatek,star-emac.yaml+89−0
@@ -0,0 +1,89 @@
1+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+%YAML 1.2
3+---
4+$id: http://devicetree.org/schemas/net/mediatek,star-emac.yaml#
5+$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+title: MediaTek STAR Ethernet MAC Controller
8+
9+maintainers:
10+ - Bartosz Golaszewski <bgolaszewski@baylibre.com>
11+
12+description:
13+ This Ethernet MAC is used on the MT8* family of SoCs from MediaTek.
14+ It's compliant with 802.3 standards and supports half- and full-duplex
15+ modes with flow-control as well as CRC offloading and VLAN tags.
16+
17+allOf:
18+ - $ref: "ethernet-controller.yaml#"
19+
20+properties:
21+ compatible:
22+ enum:
23+ - mediatek,mt8516-eth
24+ - mediatek,mt8518-eth
25+ - mediatek,mt8175-eth
26+
27+ reg:
28+ maxItems: 1
29+
30+ interrupts:
31+ maxItems: 1
32+
33+ clocks:
34+ minItems: 3
35+ maxItems: 3
36+
37+ clock-names:
38+ additionalItems: false
39+ items:
40+ - const: core
41+ - const: reg
42+ - const: trans
43+
44+ mediatek,pericfg:
45+ $ref: /schemas/types.yaml#definitions/phandle
46+ description:
47+ Phandle to the device containing the PERICFG register range. This is used
48+ to control the MII mode.
49+
50+ mdio:
51+ type: object
52+ description:
53+ Creates and registers an MDIO bus.
54+
55+required:
56+ - compatible
57+ - reg
58+ - interrupts
59+ - clocks
60+ - clock-names
61+ - mediatek,pericfg
62+ - phy-handle
63+
64+examples:
65+ - |
66+ #include <dt-bindings/interrupt-controller/arm-gic.h>
67+ #include <dt-bindings/clock/mt8516-clk.h>
68+
69+ ethernet: ethernet@11180000 {
70+ compatible = "mediatek,mt8516-eth";
71+ reg = <0x11180000 0x1000>;
72+ mediatek,pericfg = <&pericfg>;
73+ interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_LOW>;
74+ clocks = <&topckgen CLK_TOP_RG_ETH>,
75+ <&topckgen CLK_TOP_66M_ETH>,
76+ <&topckgen CLK_TOP_133M_ETH>;
77+ clock-names = "core", "reg", "trans";
78+ phy-handle = <&eth_phy>;
79+ phy-mode = "rmii";
80+
81+ mdio {
82+ #address-cells = <1>;
83+ #size-cells = <0>;
84+
85+ eth_phy: ethernet-phy@0 {
86+ reg = <0>;
87+ };
88+ };
89+ };
Documentation/devicetree/bindings/net/nxp,tja11xx.yaml+61−0
@@ -0,0 +1,61 @@
1+# SPDX-License-Identifier: GPL-2.0+
2+%YAML 1.2
3+---
4+$id: http://devicetree.org/schemas/net/nxp,tja11xx.yaml#
5+$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+title: NXP TJA11xx PHY
8+
9+maintainers:
10+ - Andrew Lunn <andrew@lunn.ch>
11+ - Florian Fainelli <f.fainelli@gmail.com>
12+ - Heiner Kallweit <hkallweit1@gmail.com>
13+
14+description:
15+ Bindings for NXP TJA11xx automotive PHYs
16+
17+allOf:
18+ - $ref: ethernet-phy.yaml#
19+
20+patternProperties:
21+ "^ethernet-phy@[0-9a-f]+$":
22+ type: object
23+ description: |
24+ Some packages have multiple PHYs. Secondary PHY should be defines as
25+ subnode of the first (parent) PHY.
26+
27+ properties:
28+ reg:
29+ minimum: 0
30+ maximum: 31
31+ description:
32+ The ID number for the child PHY. Should be +1 of parent PHY.
33+
34+ required:
35+ - reg
36+
37+examples:
38+ - |
39+ mdio {
40+ #address-cells = <1>;
41+ #size-cells = <0>;
42+
43+ tja1101_phy0: ethernet-phy@4 {
44+ reg = <0x4>;
45+ };
46+ };
47+ - |
48+ mdio {
49+ #address-cells = <1>;
50+ #size-cells = <0>;
51+
52+ tja1102_phy0: ethernet-phy@4 {
53+ reg = <0x4>;
54+ #address-cells = <1>;
55+ #size-cells = <0>;
56+
57+ tja1102_phy1: ethernet-phy@5 {
58+ reg = <0x5>;
59+ };
60+ };
61+ };
Documentation/devicetree/bindings/net/qca,ar71xx.txt+0−45
@@ -1,45 +0,0 @@
1−Required properties:
2−- compatible: Should be "qca,<soc>-eth". Currently support compatibles are:
3− qca,ar7100-eth - Atheros AR7100
4− qca,ar7240-eth - Atheros AR7240
5− qca,ar7241-eth - Atheros AR7241
6− qca,ar7242-eth - Atheros AR7242
7− qca,ar9130-eth - Atheros AR9130
8− qca,ar9330-eth - Atheros AR9330
9− qca,ar9340-eth - Atheros AR9340
10− qca,qca9530-eth - Qualcomm Atheros QCA9530
11− qca,qca9550-eth - Qualcomm Atheros QCA9550
12− qca,qca9560-eth - Qualcomm Atheros QCA9560
13−
14−- reg : Address and length of the register set for the device
15−- interrupts : Should contain eth interrupt
16−- phy-mode : See ethernet.txt file in the same directory
17−- clocks: the clock used by the core
18−- clock-names: the names of the clock listed in the clocks property. These are
19− "eth" and "mdio".
20−- resets: Should contain phandles to the reset signals
21−- reset-names: Should contain the names of reset signal listed in the resets
22− property. These are "mac" and "mdio"
23−
24−Optional properties:
25−- phy-handle : phandle to the PHY device connected to this device.
26−- fixed-link : Assume a fixed link. See fixed-link.txt in the same directory.
27− Use instead of phy-handle.
28−
29−Optional subnodes:
30−- mdio : specifies the mdio bus, used as a container for phy nodes
31− according to phy.txt in the same directory
32−
33−Example:
34−
35−ethernet@1a000000 {
36− compatible = "qca,ar9330-eth";
37− reg = <0x1a000000 0x200>;
38− interrupts = <5>;
39− resets = <&rst 13>, <&rst 23>;
40− reset-names = "mac", "mdio";
41− clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_MDIO>;
42− clock-names = "eth", "mdio";
43−
44− phy-mode = "gmii";
45−};
Documentation/devicetree/bindings/net/qca,ar71xx.yaml+216−0
@@ -0,0 +1,216 @@
1+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+%YAML 1.2
3+---
4+$id: http://devicetree.org/schemas/net/qca,ar71xx.yaml#
5+$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+title: QCA AR71XX MAC
8+
9+allOf:
10+ - $ref: ethernet-controller.yaml#
11+
12+maintainers:
13+ - Oleksij Rempel <o.rempel@pengutronix.de>
14+
15+properties:
16+ compatible:
17+ oneOf:
18+ - items:
19+ - enum:
20+ - qca,ar7100-eth # Atheros AR7100
21+ - qca,ar7240-eth # Atheros AR7240
22+ - qca,ar7241-eth # Atheros AR7241
23+ - qca,ar7242-eth # Atheros AR7242
24+ - qca,ar9130-eth # Atheros AR9130
25+ - qca,ar9330-eth # Atheros AR9330
26+ - qca,ar9340-eth # Atheros AR9340
27+ - qca,qca9530-eth # Qualcomm Atheros QCA9530
28+ - qca,qca9550-eth # Qualcomm Atheros QCA9550
29+ - qca,qca9560-eth # Qualcomm Atheros QCA9560
30+
31+ reg:
32+ maxItems: 1
33+
34+ interrupts:
35+ maxItems: 1
36+
37+ '#address-cells':
38+ description: number of address cells for the MDIO bus
39+ const: 1
40+
41+ '#size-cells':
42+ description: number of size cells on the MDIO bus
43+ const: 0
44+
45+ clocks:
46+ items:
47+ - description: MAC main clock
48+ - description: MDIO clock
49+
50+ clock-names:
51+ items:
52+ - const: eth
53+ - const: mdio
54+
55+ resets:
56+ items:
57+ - description: MAC reset
58+ - description: MDIO reset
59+
60+ reset-names:
61+ items:
62+ - const: mac
63+ - const: mdio
64+
65+required:
66+ - compatible
67+ - reg
68+ - interrupts
69+ - phy-mode
70+ - clocks
71+ - clock-names
72+ - resets
73+ - reset-names
74+
75+examples:
76+ # Lager board
77+ - |
78+ eth0: ethernet@19000000 {
79+ compatible = "qca,ar9330-eth";
80+ reg = <0x19000000 0x200>;
81+ interrupts = <4>;
82+ resets = <&rst 9>, <&rst 22>;
83+ reset-names = "mac", "mdio";
84+ clocks = <&pll 1>, <&pll 2>;
85+ clock-names = "eth", "mdio";
86+ qca,ethcfg = <&ethcfg>;
87+ phy-mode = "mii";
88+ phy-handle = <&phy_port4>;
89+ };
90+
91+ eth1: ethernet@1a000000 {
92+ compatible = "qca,ar9330-eth";
93+ reg = <0x1a000000 0x200>;
94+ interrupts = <5>;
95+ resets = <&rst 13>, <&rst 23>;
96+ reset-names = "mac", "mdio";
97+ clocks = <&pll 1>, <&pll 2>;
98+ clock-names = "eth", "mdio";
99+
100+ phy-mode = "gmii";
101+
102+ status = "disabled";
103+
104+ fixed-link {
105+ speed = <1000>;
106+ full-duplex;
107+ };
108+
109+ mdio {
110+ #address-cells = <1>;
111+ #size-cells = <0>;
112+
113+ switch10: switch@10 {
114+ #address-cells = <1>;
115+ #size-cells = <0>;
116+
117+ compatible = "qca,ar9331-switch";
118+ reg = <0x10>;
119+ resets = <&rst 8>;
120+ reset-names = "switch";
121+
122+ interrupt-parent = <&miscintc>;
123+ interrupts = <12>;
124+
125+ interrupt-controller;
126+ #interrupt-cells = <1>;
127+
128+ ports {
129+ #address-cells = <1>;
130+ #size-cells = <0>;
131+
132+ switch_port0: port@0 {
133+ reg = <0x0>;
134+ label = "cpu";
135+ ethernet = <&eth1>;
136+
137+ phy-mode = "gmii";
138+
139+ fixed-link {
140+ speed = <1000>;
141+ full-duplex;
142+ };
143+ };
144+
145+ switch_port1: port@1 {
146+ reg = <0x1>;
147+ phy-handle = <&phy_port0>;
148+ phy-mode = "internal";
149+
150+ status = "disabled";
151+ };
152+
153+ switch_port2: port@2 {
154+ reg = <0x2>;
155+ phy-handle = <&phy_port1>;
156+ phy-mode = "internal";
157+
158+ status = "disabled";
159+ };
160+
161+ switch_port3: port@3 {
162+ reg = <0x3>;
163+ phy-handle = <&phy_port2>;
164+ phy-mode = "internal";
165+
166+ status = "disabled";
167+ };
168+
169+ switch_port4: port@4 {
170+ reg = <0x4>;
171+ phy-handle = <&phy_port3>;
172+ phy-mode = "internal";
173+
174+ status = "disabled";
175+ };
176+ };
177+
178+ mdio {
179+ #address-cells = <1>;
180+ #size-cells = <0>;
181+
182+ interrupt-parent = <&switch10>;
183+
184+ phy_port0: phy@0 {
185+ reg = <0x0>;
186+ interrupts = <0>;
187+ status = "disabled";
188+ };
189+
190+ phy_port1: phy@1 {
191+ reg = <0x1>;
192+ interrupts = <0>;
193+ status = "disabled";
194+ };
195+
196+ phy_port2: phy@2 {
197+ reg = <0x2>;
198+ interrupts = <0>;
199+ status = "disabled";
200+ };
201+
202+ phy_port3: phy@3 {
203+ reg = <0x3>;
204+ interrupts = <0>;
205+ status = "disabled";
206+ };
207+
208+ phy_port4: phy@4 {
209+ reg = <0x4>;
210+ interrupts = <0>;
211+ status = "disabled";
212+ };
213+ };
214+ };
215+ };
216+ };
Documentation/devicetree/bindings/net/qcom,ipa.yaml+9−1
@@ -20,7 +20,10 @@ description: · 19 unmodified lines
2020 The GSI is an integral part of the IPA, but it is logically isolated
2121 and has a distinct interrupt and a separately-defined address space.
2222
23− See also soc/qcom/qcom,smp2p.txt and interconnect/interconnect.txt.
23+ See also soc/qcom/qcom,smp2p.txt and interconnect/interconnect.txt. See
24+ iommu/iommu.txt and iommu/arm,smmu.yaml for more information about SMMU
25+ bindings.
26+
2427
2528 - |
2629 -------- ---------
@@ -54,6 +57,9 @@ properties: · 27 unmodified lines
5457 - const: ipa-shared
5558 - const: gsi
5659
60+ iommus:
61+ maxItems: 1
62+
5763 clocks:
5864 maxItems: 1
5965
@@ -126,6 +132,7 @@ properties: · 66 unmodified lines
126132
127133 required:
128134 - compatible
135+ - iommus
129136 - reg
130137 - clocks
131138 - interrupts
@@ -164,6 +171,7 @@ examples: · 32 unmodified lines
164171 modem-init;
165172 modem-remoteproc = <&mss_pil>;
166173
174+ iommus = <&apps_smmu 0x720 0x3>;
167175 reg = <0 0x1e40000 0 0x7000>,
168176 <0 0x1e47000 0 0x2000>,
169177 <0 0x1e04000 0 0x2c000>;
Documentation/devicetree/bindings/net/qcom,ipq4019-mdio.yaml+61−0
@@ -0,0 +1,61 @@
1+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+%YAML 1.2
3+---
4+$id: http://devicetree.org/schemas/net/qcom,ipq4019-mdio.yaml#
5+$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+title: Qualcomm IPQ40xx MDIO Controller Device Tree Bindings
8+
9+maintainers:
10+ - Robert Marko <robert.marko@sartura.hr>
11+
12+allOf:
13+ - $ref: "mdio.yaml#"
14+
15+properties:
16+ compatible:
17+ const: qcom,ipq4019-mdio
18+
19+ "#address-cells":
20+ const: 1
21+
22+ "#size-cells":
23+ const: 0
24+
25+ reg:
26+ maxItems: 1
27+
28+required:
29+ - compatible
30+ - reg
31+ - "#address-cells"
32+ - "#size-cells"
33+
34+examples:
35+ - |
36+ mdio@90000 {
37+ #address-cells = <1>;
38+ #size-cells = <0>;
39+ compatible = "qcom,ipq4019-mdio";
40+ reg = <0x90000 0x64>;
41+
42+ ethphy0: ethernet-phy@0 {
43+ reg = <0>;
44+ };
45+
46+ ethphy1: ethernet-phy@1 {
47+ reg = <1>;
48+ };
49+
50+ ethphy2: ethernet-phy@2 {
51+ reg = <2>;
52+ };
53+
54+ ethphy3: ethernet-phy@3 {
55+ reg = <3>;
56+ };
57+
58+ ethphy4: ethernet-phy@4 {
59+ reg = <4>;
60+ };
61+ };
Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt+6−0
@@ -10,9 +10,11 @@ device the slave device is attached to. · 9 unmodified lines
1010 Required properties:
1111 - compatible: should contain one of the following:
1212 * "qcom,qca6174-bt"
13+ * "qcom,qca9377-bt"
1314 * "qcom,wcn3990-bt"
1415 * "qcom,wcn3991-bt"
1516 * "qcom,wcn3998-bt"
17+ * "qcom,qca6390-bt"
1618
1719 Optional properties for compatible string qcom,qca6174-bt:
1820
@@ -20,6 +22,10 @@ Optional properties for compatible string qcom,qca6174-bt: · 1 unmodified line
2022 - clocks: clock provided to the controller (SUSCLK_32KHZ)
2123 - firmware-name: specify the name of nvm firmware to load
2224
25+Optional properties for compatible string qcom,qca9377-bt:
26+
27+ - max-speed: see Documentation/devicetree/bindings/serial/serial.yaml
28+
2329 Required properties for compatible string qcom,wcn399x-bt:
2430
2531 - vddio-supply: VDD_IO supply regulator handle.
Documentation/devicetree/bindings/net/realtek-bluetooth.yaml+54−0
@@ -0,0 +1,54 @@
1+# SPDX-License-Identifier: GPL-2.0
2+%YAML 1.2
3+---
4+$id: http://devicetree.org/schemas/net/realtek-bluetooth.yaml#
5+$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+title: RTL8723BS/RTL8723CS/RTL8822CS Bluetooth Device Tree Bindings
8+
9+maintainers:
10+ - Vasily Khoruzhick <anarsoul@gmail.com>
11+ - Alistair Francis <alistair@alistair23.me>
12+
13+description:
14+ RTL8723CS/RTL8723CS/RTL8822CS is WiFi + BT chip. WiFi part is connected over
15+ SDIO, while BT is connected over serial. It speaks H5 protocol with few
16+ extra commands to upload firmware and change module speed.
17+
18+properties:
19+ compatible:
20+ oneOf:
21+ - const: "realtek,rtl8723bs-bt"
22+ - const: "realtek,rtl8723cs-bt"
23+ - const: "realtek,rtl8822cs-bt"
24+
25+ device-wake-gpios:
26+ maxItems: 1
27+ description: GPIO specifier, used to wakeup the BT module
28+
29+ enable-gpios:
30+ maxItems: 1
31+ description: GPIO specifier, used to enable the BT module
32+
33+ host-wake-gpios:
34+ maxItems: 1
35+ description: GPIO specifier, used to wakeup the host processor
36+
37+required:
38+ - compatible
39+
40+examples:
41+ - |
42+ #include <dt-bindings/gpio/gpio.h>
43+
44+ uart1 {
45+ pinctrl-names = "default";
46+ pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
47+ uart-has-rtscts = <1>;
48+
49+ bluetooth {
50+ compatible = "realtek,rtl8723bs-bt";
51+ device-wake-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
52+ host-wakeup-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
53+ };
54+ };
Documentation/devicetree/bindings/net/socionext,uniphier-ave4.txt+0−64
@@ -1,64 +0,0 @@
1−* Socionext AVE ethernet controller
2−
3−This describes the devicetree bindings for AVE ethernet controller
4−implemented on Socionext UniPhier SoCs.
5−
6−Required properties:
7− - compatible: Should be
8− - "socionext,uniphier-pro4-ave4" : for Pro4 SoC
9− - "socionext,uniphier-pxs2-ave4" : for PXs2 SoC
10− - "socionext,uniphier-ld11-ave4" : for LD11 SoC
11− - "socionext,uniphier-ld20-ave4" : for LD20 SoC
12− - "socionext,uniphier-pxs3-ave4" : for PXs3 SoC
13− - reg: Address where registers are mapped and size of region.
14− - interrupts: Should contain the MAC interrupt.
15− - phy-mode: See ethernet.txt in the same directory. Allow to choose
16− "rgmii", "rmii", "mii", or "internal" according to the PHY.
17− The acceptable mode is SoC-dependent.
18− - phy-handle: Should point to the external phy device.
19− See ethernet.txt file in the same directory.
20− - clocks: A phandle to the clock for the MAC.
21− For Pro4 SoC, that is "socionext,uniphier-pro4-ave4",
22− another MAC clock, GIO bus clock and PHY clock are also required.
23− - clock-names: Should contain
24− - "ether", "ether-gb", "gio", "ether-phy" for Pro4 SoC
25− - "ether" for others
26− - resets: A phandle to the reset control for the MAC. For Pro4 SoC,
27− GIO bus reset is also required.
28− - reset-names: Should contain
29− - "ether", "gio" for Pro4 SoC
30− - "ether" for others
31− - socionext,syscon-phy-mode: A phandle to syscon with one argument
32− that configures phy mode. The argument is the ID of MAC instance.
33−
34−The MAC address will be determined using the optional properties
35−defined in ethernet.txt.
36−
37−Required subnode:
38− - mdio: A container for child nodes representing phy nodes.
39− See phy.txt in the same directory.
40−
41−Example:
42−
43− ether: ethernet@65000000 {
44− compatible = "socionext,uniphier-ld20-ave4";
45− reg = <0x65000000 0x8500>;
46− interrupts = <0 66 4>;
47− phy-mode = "rgmii";
48− phy-handle = <&ethphy>;
49− clock-names = "ether";
50− clocks = <&sys_clk 6>;
51− reset-names = "ether";
52− resets = <&sys_rst 6>;
53− socionext,syscon-phy-mode = <&soc_glue 0>;
54− local-mac-address = [00 00 00 00 00 00];
55−
56− mdio {
57− #address-cells = <1>;
58− #size-cells = <0>;
59−
60− ethphy: ethphy@1 {
61− reg = <1>;
62− };
63− };
64− };
Documentation/devicetree/bindings/net/socionext,uniphier-ave4.yaml+111−0
@@ -0,0 +1,111 @@
1+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+%YAML 1.2
3+---
4+$id: http://devicetree.org/schemas/net/socionext,uniphier-ave4.yaml#
5+$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+title: Socionext AVE ethernet controller
8+
9+maintainers:
10+ - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
11+
12+description: |
13+ This describes the devicetree bindings for AVE ethernet controller
14+ implemented on Socionext UniPhier SoCs.
15+
16+allOf:
17+ - $ref: ethernet-controller.yaml#
18+
19+properties:
20+ compatible:
21+ enum:
22+ - socionext,uniphier-pro4-ave4
23+ - socionext,uniphier-pxs2-ave4
24+ - socionext,uniphier-ld11-ave4
25+ - socionext,uniphier-ld20-ave4
26+ - socionext,uniphier-pxs3-ave4
27+
28+ reg:
29+ maxItems: 1
30+
31+ interrupts:
32+ maxItems: 1
33+
34+ phy-mode: true
35+
36+ phy-handle: true
37+
38+ mac-address: true
39+
40+ local-mac-address: true
41+
42+ clocks:
43+ minItems: 1
44+ maxItems: 4
45+
46+ clock-names:
47+ oneOf:
48+ - items: # for Pro4
49+ - const: gio
50+ - const: ether
51+ - const: ether-gb
52+ - const: ether-phy
53+ - const: ether # for others
54+
55+ resets:
56+ minItems: 1
57+ maxItems: 2
58+
59+ reset-names:
60+ oneOf:
61+ - items: # for Pro4
62+ - const: gio
63+ - const: ether
64+ - const: ether # for others
65+
66+ socionext,syscon-phy-mode:
67+ $ref: /schemas/types.yaml#definitions/phandle-array
68+ description:
69+ A phandle to syscon with one argument that configures phy mode.
70+ The argument is the ID of MAC instance.
71+
72+ mdio:
73+ $ref: mdio.yaml#
74+
75+required:
76+ - compatible
77+ - reg
78+ - interrupts
79+ - phy-mode
80+ - phy-handle
81+ - clocks
82+ - clock-names
83+ - resets
84+ - reset-names
85+ - mdio
86+
87+additionalProperties: false
88+
89+examples:
90+ - |
91+ ether: ethernet@65000000 {
92+ compatible = "socionext,uniphier-ld20-ave4";
93+ reg = <0x65000000 0x8500>;
94+ interrupts = <0 66 4>;
95+ phy-mode = "rgmii";
96+ phy-handle = <&ethphy>;
97+ clock-names = "ether";
98+ clocks = <&sys_clk 6>;
99+ reset-names = "ether";
100+ resets = <&sys_rst 6>;
101+ socionext,syscon-phy-mode = <&soc_glue 0>;
102+
103+ mdio {
104+ #address-cells = <1>;
105+ #size-cells = <0>;
106+
107+ ethphy: ethernet-phy@1 {
108+ reg = <1>;
109+ };
110+ };
111+ };
Documentation/devicetree/bindings/net/ti,dp83867.txt+0−68
@@ -1,68 +0,0 @@
1−* Texas Instruments - dp83867 Giga bit ethernet phy
2−
3−Required properties:
4− - reg - The ID number for the phy, usually a small integer
5− - ti,rx-internal-delay - RGMII Receive Clock Delay - see dt-bindings/net/ti-dp83867.h
6− for applicable values. Required only if interface type is
7− PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_RXID
8− - ti,tx-internal-delay - RGMII Transmit Clock Delay - see dt-bindings/net/ti-dp83867.h
9− for applicable values. Required only if interface type is
10− PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_TXID
11−
12−Note: If the interface type is PHY_INTERFACE_MODE_RGMII the TX/RX clock delays
13− will be left at their default values, as set by the PHY's pin strapping.
14− The default strapping will use a delay of 2.00 ns. Thus
15− PHY_INTERFACE_MODE_RGMII, by default, does not behave as RGMII with no
16− internal delay, but as PHY_INTERFACE_MODE_RGMII_ID. The device tree
17− should use "rgmii-id" if internal delays are desired as this may be
18− changed in future to cause "rgmii" mode to disable delays.
19−
20−Optional property:
21− - ti,min-output-impedance - MAC Interface Impedance control to set
22− the programmable output impedance to
23− minimum value (35 ohms).
24− - ti,max-output-impedance - MAC Interface Impedance control to set
25− the programmable output impedance to
26− maximum value (70 ohms).
27− - ti,dp83867-rxctrl-strap-quirk - This denotes the fact that the
28− board has RX_DV/RX_CTRL pin strapped in
29− mode 1 or 2. To ensure PHY operation,
30− there are specific actions that
31− software needs to take when this pin is
32− strapped in these modes. See data manual
33− for details.
34− - ti,clk-output-sel - Muxing option for CLK_OUT pin. See dt-bindings/net/ti-dp83867.h
35− for applicable values. The CLK_OUT pin can also
36− be disabled by this property. When omitted, the
37− PHY's default will be left as is.
38− - ti,sgmii-ref-clock-output-enable - This denotes which
39− SGMII configuration is used (4 or 6-wire modes).
40− Some MACs work with differential SGMII clock.
41− See data manual for details.
42−
43− - ti,fifo-depth - Transmitt FIFO depth- see dt-bindings/net/ti-dp83867.h
44− for applicable values (deprecated)
45−
46− -tx-fifo-depth - As defined in the ethernet-controller.yaml. Values for
47− the depth can be found in dt-bindings/net/ti-dp83867.h
48− -rx-fifo-depth - As defined in the ethernet-controller.yaml. Values for
49− the depth can be found in dt-bindings/net/ti-dp83867.h
50−
51−Note: ti,min-output-impedance and ti,max-output-impedance are mutually
52− exclusive. When both properties are present ti,max-output-impedance
53− takes precedence.
54−
55−Default child nodes are standard Ethernet PHY device
56−nodes as described in Documentation/devicetree/bindings/net/phy.txt
57−
58−Example:
59−
60− ethernet-phy@0 {
61− reg = <0>;
62− ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
63− ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
64− tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
65− };
66−
67−Datasheet can be found:
68−http://www.ti.com/product/DP83867IR/datasheet
Documentation/devicetree/bindings/net/ti,dp83867.yaml+127−0
@@ -0,0 +1,127 @@
1+# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
2+# Copyright (C) 2019 Texas Instruments Incorporated
3+%YAML 1.2
4+---
5+$id: "http://devicetree.org/schemas/net/ti,dp83867.yaml#"
6+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7+
8+title: TI DP83867 ethernet PHY
9+
10+allOf:
11+ - $ref: "ethernet-controller.yaml#"
12+
13+maintainers:
14+ - Dan Murphy <dmurphy@ti.com>
15+
16+description: |
17+ The DP83867 device is a robust, low power, fully featured Physical Layer
18+ transceiver with integrated PMD sublayers to support 10BASE-Te, 100BASE-TX
19+ and 1000BASE-T Ethernet protocols.
20+
21+ The DP83867 is designed for easy implementation of 10/100/1000 Mbps Ethernet
22+ LANs. It interfaces directly to twisted pair media via an external
23+ transformer. This device interfaces directly to the MAC layer through the
24+ IEEE 802.3 Standard Media Independent Interface (MII), the IEEE 802.3 Gigabit
25+ Media Independent Interface (GMII) or Reduced GMII (RGMII).
26+
27+ Specifications about the charger can be found at:
28+ https://www.ti.com/lit/gpn/dp83867ir
29+
30+properties:
31+ reg:
32+ maxItems: 1
33+
34+ ti,min-output-impedance:
35+ type: boolean
36+ description: |
37+ MAC Interface Impedance control to set the programmable output impedance
38+ to a minimum value (35 ohms).
39+
40+ ti,max-output-impedance:
41+ type: boolean
42+ description: |
43+ MAC Interface Impedance control to set the programmable output impedance
44+ to a maximum value (70 ohms).
45+ Note: ti,min-output-impedance and ti,max-output-impedance are mutually
46+ exclusive. When both properties are present ti,max-output-impedance
47+ takes precedence.
48+
49+ tx-fifo-depth:
50+ $ref: /schemas/types.yaml#definitions/uint32
51+ description: |
52+ Transmitt FIFO depth see dt-bindings/net/ti-dp83867.h for values
53+
54+ rx-fifo-depth:
55+ $ref: /schemas/types.yaml#definitions/uint32
56+ description: |
57+ Receive FIFO depth see dt-bindings/net/ti-dp83867.h for values
58+
59+ ti,clk-output-sel:
60+ $ref: /schemas/types.yaml#definitions/uint32
61+ description: |
62+ Muxing option for CLK_OUT pin. See dt-bindings/net/ti-dp83867.h
63+ for applicable values. The CLK_OUT pin can also be disabled by this
64+ property. When omitted, the PHY's default will be left as is.
65+
66+ ti,rx-internal-delay:
67+ $ref: /schemas/types.yaml#definitions/uint32
68+ description: |
69+ RGMII Receive Clock Delay - see dt-bindings/net/ti-dp83867.h
70+ for applicable values. Required only if interface type is
71+ PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_RXID.
72+
73+ ti,tx-internal-delay:
74+ $ref: /schemas/types.yaml#definitions/uint32
75+ description: |
76+ RGMII Transmit Clock Delay - see dt-bindings/net/ti-dp83867.h
77+ for applicable values. Required only if interface type is
78+ PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_TXID.
79+
80+ Note: If the interface type is PHY_INTERFACE_MODE_RGMII the TX/RX clock
81+ delays will be left at their default values, as set by the PHY's pin
82+ strapping. The default strapping will use a delay of 2.00 ns. Thus
83+ PHY_INTERFACE_MODE_RGMII, by default, does not behave as RGMII with no
84+ internal delay, but as PHY_INTERFACE_MODE_RGMII_ID. The device tree
85+ should use "rgmii-id" if internal delays are desired as this may be
86+ changed in future to cause "rgmii" mode to disable delays.
87+
88+ ti,dp83867-rxctrl-strap-quirk:
89+ type: boolean
90+ description: |
91+ This denotes the fact that the board has RX_DV/RX_CTRL pin strapped in
92+ mode 1 or 2. To ensure PHY operation, there are specific actions that
93+ software needs to take when this pin is strapped in these modes.
94+ See data manual for details.
95+
96+ ti,sgmii-ref-clock-output-enable:
97+ type: boolean
98+ description: |
99+ This denotes which SGMII configuration is used (4 or 6-wire modes).
100+ Some MACs work with differential SGMII clock. See data manual for details.
101+
102+ ti,fifo-depth:
103+ deprecated: true
104+ $ref: /schemas/types.yaml#definitions/uint32
105+ description: |
106+ Transmitt FIFO depth- see dt-bindings/net/ti-dp83867.h for applicable
107+ values.
108+
109+required:
110+ - reg
111+
112+examples:
113+ - |
114+ #include <dt-bindings/net/ti-dp83867.h>
115+ mdio0 {
116+ #address-cells = <1>;
117+ #size-cells = <0>;
118+ ethphy0: ethernet-phy@0 {
119+ reg = <0>;
120+ tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
121+ rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
122+ ti,max-output-impedance;
123+ ti,clk-output-sel = <DP83867_CLK_O_SEL_CHN_A_RCLK>;
124+ ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
125+ ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
126+ };
127+ };
Documentation/devicetree/bindings/net/ti,dp83869.yaml+1−1
@@ -1,4 +1,4 @@
1−# SPDX-License-Identifier: GPL-2.0
1+# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
22 # Copyright (C) 2019 Texas Instruments Incorporated
33 %YAML 1.2
44 ---
Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml+20−0
@@ -144,6 +144,13 @@ patternProperties: · 143 unmodified lines
144144 description:
145145 CPSW MDIO bus.
146146
147+ "^cpts@[0-9a-f]+":
148+ type: object
149+ allOf:
150+ - $ref: "ti,k3-am654-cpts.yaml#"
151+ description:
152+ CPSW Common Platform Time Sync (CPTS) module.
153+
147154 required:
148155 - compatible
149156 - reg
@@ -164,6 +171,8 @@ examples: · 14 unmodified lines
164171 #include <dt-bindings/pinctrl/k3.h>
165172 #include <dt-bindings/soc/ti,sci_pm_domain.h>
166173 #include <dt-bindings/net/ti-dp83867.h>
174+ #include <dt-bindings/interrupt-controller/irq.h>
175+ #include <dt-bindings/interrupt-controller/arm-gic.h>
167176
168177 mcu_cpsw: ethernet@46000000 {
169178 compatible = "ti,am654-cpsw-nuss";
@@ -222,4 +231,15 @@ examples: · 52 unmodified lines
222231 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
223232 };
224233 };
234+
235+ cpts@3d000 {
236+ compatible = "ti,am65-cpts";
237+ reg = <0x0 0x3d000 0x0 0x400>;
238+ clocks = <&k3_clks 18 2>;
239+ clock-names = "cpts";
240+ interrupts-extended = <&gic500 GIC_SPI 858 IRQ_TYPE_LEVEL_HIGH>;
241+ interrupt-names = "cpts";
242+ ti,cpts-ext-ts-inputs = <4>;
243+ ti,cpts-periodic-outputs = <2>;
244+ };
225245 };
Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml+145−0
@@ -0,0 +1,145 @@
1+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+%YAML 1.2
3+---
4+$id: http://devicetree.org/schemas/net/ti,k3-am654-cpts.yaml#
5+$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+title: The TI AM654x/J721E Common Platform Time Sync (CPTS) module Device Tree Bindings
8+
9+maintainers:
10+ - Grygorii Strashko <grygorii.strashko@ti.com>
11+ - Sekhar Nori <nsekhar@ti.com>
12+
13+description: |+
14+ The TI AM654x/J721E CPTS module is used to facilitate host control of time
15+ sync operations.
16+ Main features of CPTS module are
17+ - selection of multiple external clock sources
18+ - Software control of time sync events via interrupt or polling
19+ - 64-bit timestamp mode in ns with PPM and nudge adjustment.
20+ - hardware timestamp push inputs (HWx_TS_PUSH)
21+ - timestamp counter compare output (TS_COMP)
22+ - timestamp counter bit output (TS_SYNC)
23+ - periodic Generator function outputs (TS_GENFx)
24+ - Ethernet Enhanced Scheduled Traffic Operations (CPTS_ESTFn) (TSN)
25+ - external hardware timestamp push inputs (HWx_TS_PUSH) timestamping
26+
27+ Depending on integration it enables compliance with the IEEE 1588-2008
28+ standard for a precision clock synchronization protocol, Ethernet Enhanced
29+ Scheduled Traffic Operations (CPTS_ESTFn) and PCIe Subsystem Precision Time
30+ Measurement (PTM).
31+
32+ TI AM654x/J721E SoCs has several similar CPTS modules integrated into the
33+ different parts of the system which could be synchronized with each other
34+ - Main CPTS
35+ - MCU CPSW CPTS with IEEE 1588-2008 support
36+ - PCIe subsystem CPTS for PTM support
37+
38+ Depending on CPTS module integration and when CPTS is integral part of
39+ another module (MCU CPSW for example) "compatible" and "reg" can
40+ be omitted - parent module is fully responsible for CPTS enabling and
41+ configuration.
42+
43+properties:
44+ $nodename:
45+ pattern: "^cpts@[0-9a-f]+$"
46+
47+ compatible:
48+ oneOf:
49+ - const: ti,am65-cpts
50+ - const: ti,j721e-cpts
51+
52+ reg:
53+ maxItems: 1
54+ description:
55+ The physical base address and size of CPTS IO range
56+
57+ reg-names:
58+ items:
59+ - const: cpts
60+
61+ clocks:
62+ description: CPTS reference clock
63+
64+ clock-names:
65+ items:
66+ - const: cpts
67+
68+ interrupts:
69+ items:
70+ - description: CPTS events interrupt
71+
72+ interrupt-names:
73+ items:
74+ - const: cpts
75+
76+ ti,cpts-ext-ts-inputs:
77+ allOf:
78+ - $ref: /schemas/types.yaml#/definitions/uint32
79+ maximum: 8
80+ description:
81+ Number of hardware timestamp push inputs (HWx_TS_PUSH)
82+
83+ ti,cpts-periodic-outputs:
84+ allOf:
85+ - $ref: /schemas/types.yaml#/definitions/uint32
86+ maximum: 8
87+ description:
88+ Number of timestamp Generator function outputs (TS_GENFx)
89+
90+ refclk-mux:
91+ type: object
92+ description: CPTS reference clock multiplexer clock
93+ properties:
94+ '#clock-cells':
95+ const: 0
96+
97+ clocks:
98+ maxItems: 8
99+
100+ assigned-clocks:
101+ maxItems: 1
102+
103+ assigned-clocks-parents:
104+ maxItems: 1
105+
106+ required:
107+ - clocks
108+
109+required:
110+ - compatible
111+ - reg
112+ - clocks
113+ - clock-names
114+ - interrupts
115+ - interrupt-names
116+
117+additionalProperties: false
118+
119+examples:
120+ - |
121+ #include <dt-bindings/interrupt-controller/irq.h>
122+ #include <dt-bindings/interrupt-controller/arm-gic.h>
123+
124+ cpts@310d0000 {
125+ compatible = "ti,am65-cpts";
126+ reg = <0x0 0x310d0000 0x0 0x400>;
127+ reg-names = "cpts";
128+ clocks = <&main_cpts_mux>;
129+ clock-names = "cpts";
130+ interrupts-extended = <&k3_irq 163 0 IRQ_TYPE_LEVEL_HIGH>;
131+ interrupt-names = "cpts";
132+ ti,cpts-periodic-outputs = <6>;
133+ ti,cpts-ext-ts-inputs = <8>;
134+
135+ main_cpts_mux: refclk-mux {
136+ #clock-cells = <0>;
137+ clocks = <&k3_clks 118 5>, <&k3_clks 118 11>,
138+ <&k3_clks 157 91>, <&k3_clks 157 77>,
139+ <&k3_clks 157 102>, <&k3_clks 157 80>,
140+ <&k3_clks 120 3>, <&k3_clks 121 3>;
141+ assigned-clocks = <&main_cpts_mux>;
142+ assigned-clock-parents = <&k3_clks 118 11>;
143+ };
144+ };
145+
Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt+3−0
@@ -25,6 +25,9 @@ Optional properties: · 24 unmodified lines
2525 - mediatek,mtd-eeprom: Specify a MTD partition + offset containing EEPROM data
2626 - big-endian: if the radio eeprom partition is written in big-endian, specify
2727 this property
28+- mediatek,eeprom-merge-otp: Merge EEPROM data with OTP data. Can be used on
29+ boards where the flash calibration data is generic and specific calibration
30+ data should be pulled from the OTP ROM
2831
2932 The MAC address can as well be set with corresponding optional properties
3033 defined in net/ethernet.txt.
Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt+14−0
@@ -96,6 +96,17 @@ Optional properties: · 95 unmodified lines
9696 - qcom,coexist-gpio-pin : gpio pin number information to support coex
9797 which will be used by wifi firmware.
9898
99+* Subnodes
100+The ath10k wifi node can contain one optional firmware subnode.
101+Firmware subnode is needed when the platform does not have TustZone.
102+The firmware subnode must have:
103+
104+- iommus:
105+ Usage: required
106+ Value type: <prop-encoded-array>
107+ Definition: A list of phandle and IOMMU specifier pairs.
108+
109+
99110 Example (to supply PCI based wifi block details):
100111
101112 In this example, the node is defined as child node of the PCI controller.
@@ -196,4 +207,7 @@ wifi@18000000 { · 94 unmodified lines
196207 memory-region = <&wifi_msa_mem>;
197208 iommus = <&apps_smmu 0x0040 0x1>;
198209 qcom,msa-fixed-perm;
210+ wifi-firmware {
211+ iommus = <&apps_iommu 0xc22 0x1>;
212+ };
199213 };
Documentation/driver-api/driver-model/devres.rst+5−0
@@ -372,6 +372,11 @@ MUX · 371 unmodified lines
372372 devm_mux_chip_register()
373373 devm_mux_control_get()
374374
375+NET
376+ devm_alloc_etherdev()
377+ devm_alloc_etherdev_mqs()
378+ devm_register_netdev()
379+
375380 PER-CPU MEM
376381 devm_alloc_percpu()
377382 devm_free_percpu()
Documentation/filesystems/afs.rst+1−1
@@ -70,7 +70,7 @@ list of volume location server IP addresses:: · 69 unmodified lines
7070 The first module is the AF_RXRPC network protocol driver. This provides the
7171 RxRPC remote operation protocol and may also be accessed from userspace. See:
7272
73− Documentation/networking/rxrpc.txt
73+ Documentation/networking/rxrpc.rst
7474
7575 The second module is the kerberos RxRPC security driver, and the third module
7676 is the actual filesystem driver for the AFS filesystem.
Documentation/hwmon/bcm54140.rst+45−0
@@ -0,0 +1,45 @@
1+.. SPDX-License-Identifier: GPL-2.0-only
2+
3+Broadcom BCM54140 Quad SGMII/QSGMII PHY
4+=======================================
5+
6+Supported chips:
7+
8+ * Broadcom BCM54140
9+
10+ Datasheet: not public
11+
12+Author: Michael Walle <michael@walle.cc>
13+
14+Description
15+-----------
16+
17+The Broadcom BCM54140 is a Quad SGMII/QSGMII PHY which supports monitoring
18+its die temperature as well as two analog voltages.
19+
20+The AVDDL is a 1.0V analogue voltage, the AVDDH is a 3.3V analogue voltage.
21+Both voltages and the temperature are measured in a round-robin fashion.
22+
23+Sysfs entries
24+-------------
25+
26+The following attributes are supported.
27+
28+======================= ========================================================
29+in0_label "AVDDL"
30+in0_input Measured AVDDL voltage.
31+in0_min Minimum AVDDL voltage.
32+in0_max Maximum AVDDL voltage.
33+in0_alarm AVDDL voltage alarm.
34+
35+in1_label "AVDDH"
36+in1_input Measured AVDDH voltage.
37+in1_min Minimum AVDDH voltage.
38+in1_max Maximum AVDDH voltage.
39+in1_alarm AVDDH voltage alarm.
40+
41+temp1_input Die temperature.
42+temp1_min Minimum die temperature.
43+temp1_max Maximum die temperature.
44+temp1_alarm Die temperature alarm.
45+======================= ========================================================
Documentation/hwmon/index.rst+1−0
@@ -43,6 +43,7 @@ Hardware Monitoring Kernel Drivers · 42 unmodified lines
4343 asb100
4444 asc7621
4545 aspeed-pwm-tacho
46+ bcm54140
4647 bel-pfe
4748 bt1-pvt
4849 coretemp
Documentation/networking/6pack.rstrenamed from Documentation/networking/6pack.txt+31−15
@@ -1,27 +1,36 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+==============
4+6pack Protocol
5+==============
6+
17 This is the 6pack-mini-HOWTO, written by
28
39 Andreas Könsgen DG3KQ
4−Internet: ajk@comnets.uni-bremen.de
5−AMPR-net: dg3kq@db0pra.ampr.org
6−AX.25: dg3kq@db0ach.#nrw.deu.eu
10+
11+:Internet: ajk@comnets.uni-bremen.de
12+:AMPR-net: dg3kq@db0pra.ampr.org
13+:AX.25: dg3kq@db0ach.#nrw.deu.eu
714
815 Last update: April 7, 1998
916
1017 1. What is 6pack, and what are the advantages to KISS?
18+======================================================
1119
1220 6pack is a transmission protocol for data exchange between the PC and
1321 the TNC over a serial line. It can be used as an alternative to KISS.
1422
1523 6pack has two major advantages:
24+
1625 - The PC is given full control over the radio
1726 channel. Special control data is exchanged between the PC and the TNC so
1827 that the PC knows at any time if the TNC is receiving data, if a TNC
1928 buffer underrun or overrun has occurred, if the PTT is
2029 set and so on. This control data is processed at a higher priority than
2130 normal data, so a data stream can be interrupted at any time to issue an
22− important event. This helps to improve the channel access and timing
23− algorithms as everything is computed in the PC. It would even be possible
24− to experiment with something completely different from the known CSMA and
31+ important event. This helps to improve the channel access and timing
32+ algorithms as everything is computed in the PC. It would even be possible
33+ to experiment with something completely different from the known CSMA and
2534 DAMA channel access methods.
2635 This kind of real-time control is especially important to supply several
2736 TNCs that are connected between each other and the PC by a daisy chain
@@ -36,6 +45,7 @@ More details about 6pack are described in the file 6pack.ps that is located · 8 unmodified lines
3645 in the doc directory of the AX.25 utilities package.
3746
3847 2. Who has developed the 6pack protocol?
48+========================================
3949
4050 The 6pack protocol has been developed by Ekki Plicht DF4OR, Henning Rech
4151 DF9IC and Gunter Jost DK7WJ. A driver for 6pack, written by Gunter Jost and
@@ -44,12 +54,14 @@ They have also written a firmware for TNCs to perform the 6pack · 2 unmodified lines
4454 protocol (see section 4 below).
4555
4656 3. Where can I get the latest version of 6pack for LinuX?
57+=========================================================
4758
4859 At the moment, the 6pack stuff can obtained via anonymous ftp from
4960 db0bm.automation.fh-aachen.de. In the directory /incoming/dg3kq,
5061 there is a file named 6pack.tgz.
5162
5263 4. Preparing the TNC for 6pack operation
64+========================================
5365
5466 To be able to use 6pack, a special firmware for the TNC is needed. The EPROM
5567 of a newly bought TNC does not contain 6pack, so you will have to
@@ -75,12 +87,14 @@ and the status LED are lit for about a second if the firmware initialises · 19 unmodified lines
7587 the TNC correctly.
7688
7789 5. Building and installing the 6pack driver
90+===========================================
7891
7992 The driver has been tested with kernel version 2.1.90. Use with older
8093 kernels may lead to a compilation error because the interface to a kernel
8194 function has been changed in the 2.1.8x kernels.
8295
8396 How to turn on 6pack support:
97+=============================
8498
8599 - In the linux kernel configuration program, select the code maturity level
86100 options menu and turn on the prompting for development drivers.
@@ -94,27 +108,28 @@ To use the driver, the kissattach program delivered with the AX.25 utilities · 7 unmodified lines
94108 has to be modified.
95109
96110 - Do a cd to the directory that holds the kissattach sources. Edit the
97− kissattach.c file. At the top, insert the following lines:
111+ kissattach.c file. At the top, insert the following lines::
112+
113+ #ifndef N_6PACK
114+ #define N_6PACK (N_AX25+1)
115+ #endif
98116
99− #ifndef N_6PACK
100− #define N_6PACK (N_AX25+1)
101− #endif
117+ Then find the line:
102118
103− Then find the line
104−
105− int disc = N_AX25;
119+ int disc = N_AX25;
106120
107121 and replace N_AX25 by N_6PACK.
108122
109123 - Recompile kissattach. Rename it to spattach to avoid confusions.
110124
111125 Installing the driver:
126+----------------------
112127
113−- Do an insmod 6pack. Look at your /var/log/messages file to check if the
128+- Do an insmod 6pack. Look at your /var/log/messages file to check if the
114129 module has printed its initialization message.
115130
116131 - Do a spattach as you would launch kissattach when starting a KISS port.
117− Check if the kernel prints the message '6pack: TNC found'.
132+ Check if the kernel prints the message '6pack: TNC found'.
118133
119134 - From here, everything should work as if you were setting up a KISS port.
120135 The only difference is that the network device that represents
@@ -138,6 +153,7 @@ from the PC to the TNC over the serial line, the status LED if data is · 17 unmodified lines
138153 sent to the PC.
139154
140155 6. Known problems
156+=================
141157
142158 When testing the driver with 2.0.3x kernels and
143159 operating with data rates on the radio channel of 9600 Baud or higher,
Documentation/networking/altera_tse.rstrenamed from Documentation/networking/altera_tse.txt+56−33
@@ -1,6 +1,12 @@
1− Altera Triple-Speed Ethernet MAC driver
1+.. SPDX-License-Identifier: GPL-2.0
22
3−Copyright (C) 2008-2014 Altera Corporation
3+.. include:: <isonum.txt>
4+
5+=======================================
6+Altera Triple-Speed Ethernet MAC driver
7+=======================================
8+
9+Copyright |copy| 2008-2014 Altera Corporation
410
511 This is the driver for the Altera Triple-Speed Ethernet (TSE) controllers
612 using the SGDMA and MSGDMA soft DMA IP components. The driver uses the
@@ -46,23 +52,33 @@ Jumbo frames are not supported at this time. · 39 unmodified lines
4652 The driver limits PHY operations to 10/100Mbps, and has not yet been fully
4753 tested for 1Gbps. This support will be added in a future maintenance update.
4854
49−1) Kernel Configuration
55+1. Kernel Configuration
56+=======================
57+
5058 The kernel configuration option is ALTERA_TSE:
59+
5160 Device Drivers ---> Network device support ---> Ethernet driver support --->
5261 Altera Triple-Speed Ethernet MAC support (ALTERA_TSE)
5362
54−2) Driver parameters list:
55− debug: message level (0: no output, 16: all);
56− dma_rx_num: Number of descriptors in the RX list (default is 64);
57− dma_tx_num: Number of descriptors in the TX list (default is 64).
63+2. Driver parameters list
64+=========================
65+
66+ - debug: message level (0: no output, 16: all);
67+ - dma_rx_num: Number of descriptors in the RX list (default is 64);
68+ - dma_tx_num: Number of descriptors in the TX list (default is 64).
69+
70+3. Command line options
71+=======================
72+
73+Driver parameters can be also passed in command line by using::
5874
59−3) Command line options
60−Driver parameters can be also passed in command line by using:
6175 altera_tse=dma_rx_num:128,dma_tx_num:512
6276
63−4) Driver information and notes
77+4. Driver information and notes
78+===============================
6479
65−4.1) Transmit process
80+4.1. Transmit process
81+---------------------
6682 When the driver's transmit routine is called by the kernel, it sets up a
6783 transmit descriptor by calling the underlying DMA transmit routine (SGDMA or
6884 MSGDMA), and initiates a transmit operation. Once the transmit is complete, an
@@ -70,7 +86,8 @@ interrupt is driven by the transmit DMA logic. The driver handles the transmit · 1 unmodified line
7086 completion in the context of the interrupt handling chain by recycling
7187 resource required to send and track the requested transmit operation.
7288
73−4.2) Receive process
89+4.2. Receive process
90+--------------------
7491 The driver will post receive buffers to the receive DMA logic during driver
7592 initialization. Receive buffers may or may not be queued depending upon the
7693 underlying DMA logic (MSGDMA is able queue receive buffers, SGDMA is not able
@@ -79,34 +96,39 @@ received, the DMA logic generates an interrupt. The driver handles a receive · 2 unmodified lines
7996 interrupt by obtaining the DMA receive logic status, reaping receive
8097 completions until no more receive completions are available.
8198
82−4.3) Interrupt Mitigation
99+4.3. Interrupt Mitigation
100+-------------------------
83101 The driver is able to mitigate the number of its DMA interrupts
84102 using NAPI for receive operations. Interrupt mitigation is not yet supported
85103 for transmit operations, but will be added in a future maintenance release.
86104
87105 4.4) Ethtool support
106+--------------------
88107 Ethtool is supported. Driver statistics and internal errors can be taken using:
89108 ethtool -S ethX command. It is possible to dump registers etc.
90109
91110 4.5) PHY Support
111+----------------
92112 The driver is compatible with PAL to work with PHY and GPHY devices.
93113
94114 4.7) List of source files:
95− o Kconfig
96− o Makefile
97− o altera_tse_main.c: main network device driver
98− o altera_tse_ethtool.c: ethtool support
99− o altera_tse.h: private driver structure and common definitions
100− o altera_msgdma.h: MSGDMA implementation function definitions
101− o altera_sgdma.h: SGDMA implementation function definitions
102− o altera_msgdma.c: MSGDMA implementation
103− o altera_sgdma.c: SGDMA implementation
104− o altera_sgdmahw.h: SGDMA register and descriptor definitions
105− o altera_msgdmahw.h: MSGDMA register and descriptor definitions
106− o altera_utils.c: Driver utility functions
107− o altera_utils.h: Driver utility function definitions
108−
109−5) Debug Information
115+--------------------------
116+ - Kconfig
117+ - Makefile
118+ - altera_tse_main.c: main network device driver
119+ - altera_tse_ethtool.c: ethtool support
120+ - altera_tse.h: private driver structure and common definitions
121+ - altera_msgdma.h: MSGDMA implementation function definitions
122+ - altera_sgdma.h: SGDMA implementation function definitions
123+ - altera_msgdma.c: MSGDMA implementation
124+ - altera_sgdma.c: SGDMA implementation
125+ - altera_sgdmahw.h: SGDMA register and descriptor definitions
126+ - altera_msgdmahw.h: MSGDMA register and descriptor definitions
127+ - altera_utils.c: Driver utility functions
128+ - altera_utils.h: Driver utility function definitions
129+
130+5. Debug Information
131+====================
110132
111133 The driver exports debug information such as internal statistics,
112134 debug information, MAC and DMA registers etc.
@@ -118,17 +140,18 @@ or sees the MAC registers: e.g. using: ethtool -d ethX · 5 unmodified lines
118140 The developer can also use the "debug" module parameter to get
119141 further debug information.
120142
121−6) Statistics Support
143+6. Statistics Support
144+=====================
122145
123146 The controller and driver support a mix of IEEE standard defined statistics,
124147 RFC defined statistics, and driver or Altera defined statistics. The four
125148 specifications containing the standard definitions for these statistics are
126149 as follows:
127150
128− o IEEE 802.3-2012 - IEEE Standard for Ethernet.
129− o RFC 2863 found at http://www.rfc-editor.org/rfc/rfc2863.txt.
130− o RFC 2819 found at http://www.rfc-editor.org/rfc/rfc2819.txt.
131− o Altera Triple Speed Ethernet User Guide, found at http://www.altera.com
151+ - IEEE 802.3-2012 - IEEE Standard for Ethernet.
152+ - RFC 2863 found at http://www.rfc-editor.org/rfc/rfc2863.txt.
153+ - RFC 2819 found at http://www.rfc-editor.org/rfc/rfc2819.txt.
154+ - Altera Triple Speed Ethernet User Guide, found at http://www.altera.com
132155
133156 The statistics supported by the TSE and the device driver are as follows:
134157
Documentation/networking/arcnet-hardware.rstrenamed from Documentation/networking/arcnet-hardware.txt+1164−1063
@@ -1,11 +1,15 @@
1−
2−-----------------------------------------------------------------------------
3−1) This file is a supplement to arcnet.txt. Please read that for general
4− driver configuration help.
5−-----------------------------------------------------------------------------
6−2) This file is no longer Linux-specific. It should probably be moved out of
7− the kernel sources. Ideas?
8−-----------------------------------------------------------------------------
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+===============
4+ARCnet Hardware
5+===============
6+
7+.. note::
8+
9+ 1) This file is a supplement to arcnet.txt. Please read that for general
10+ driver configuration help.
11+ 2) This file is no longer Linux-specific. It should probably be moved out
12+ of the kernel sources. Ideas?
913
1014 Because so many people (myself included) seem to have obtained ARCnet cards
1115 without manuals, this file contains a quick introduction to ARCnet hardware,
@@ -14,8 +18,8 @@ e-mail apenwarr@worldvisions.ca with any settings for your particular card, · 2 unmodified lines
1418 or any other information you have!
1519
1620
17−INTRODUCTION TO ARCNET
18−----------------------
21+Introduction to ARCnet
22+======================
1923
2024 ARCnet is a network type which works in a way similar to popular Ethernet
2125 networks but which is also different in some very important ways.
@@ -30,7 +34,7 @@ since I only have the 2.5 Mbps variety. It is probably not going to saturate · 8 unmodified lines
3034 your 100 Mbps card. Stop complaining. :)
3135
3236 You also cannot connect an ARCnet card to any kind of Ethernet card and
33−expect it to work.
37+expect it to work.
3438
3539 There are two "types" of ARCnet - STAR topology and BUS topology. This
3640 refers to how the cards are meant to be wired together. According to most
@@ -71,19 +75,24 @@ although they are generally kept down to the Ethernet-style 1500 bytes. · 34 unmodified lines
7175 For more information on the advantages and disadvantages (mostly the
7276 advantages) of ARCnet networks, you might try the "ARCnet Trade Association"
7377 WWW page:
78+
7479 http://www.arcnet.com
7580
7681
77−CABLING ARCNET NETWORKS
78−-----------------------
82+Cabling ARCnet Networks
83+=======================
84+
85+This section was rewritten by
86+
87+ Vojtech Pavlik <vojtech@suse.cz>
7988
80−This section was rewritten by
81− Vojtech Pavlik <vojtech@suse.cz>
8289 using information from several people, including:
83− Avery Pennraun <apenwarr@worldvisions.ca>
84− Stephen A. Wood <saw@hallc1.cebaf.gov>
85− John Paul Morrison <jmorriso@bogomips.ee.ubc.ca>
86− Joachim Koenig <jojo@repas.de>
90+
91+ - Avery Pennraun <apenwarr@worldvisions.ca>
92+ - Stephen A. Wood <saw@hallc1.cebaf.gov>
93+ - John Paul Morrison <jmorriso@bogomips.ee.ubc.ca>
94+ - Joachim Koenig <jojo@repas.de>
95+
8796 and Avery touched it up a bit, at Vojtech's request.
8897
8998 ARCnet (the classic 2.5 Mbps version) can be connected by two different
@@ -103,13 +112,13 @@ equal to a high impedance one with a terminator installed. · 13 unmodified lines
103112
104113 Usually, the ARCnet networks are built up from STAR cards and hubs. There
105114 are two types of hubs - active and passive. Passive hubs are small boxes
106−with four BNC connectors containing four 47 Ohm resistors:
115+with four BNC connectors containing four 47 Ohm resistors::
107116
108− | | wires
109− R + junction
110−-R-+-R- R 47 Ohm resistors
111− R
112− |
117+ | | wires
118+ R + junction
119+ -R-+-R- R 47 Ohm resistors
120+ R
121+ |
113122
114123 The shielding is connected together. Active hubs are much more complicated;
115124 they are powered and contain electronics to amplify the signal and send it
@@ -127,14 +136,15 @@ And now to the cabling. What you can connect together: · 11 unmodified lines
127136 2. A card to a passive hub. Remember that all unused connectors on the hub
128137 must be properly terminated with 93 Ohm (or something else if you don't
129138 have the right ones) terminators.
130− (Avery's note: oops, I didn't know that. Mine (TV cable) works
139+
140+ (Avery's note: oops, I didn't know that. Mine (TV cable) works
131141 anyway, though.)
132142
133143 3. A card to an active hub. Here is no need to terminate the unused
134144 connectors except some kind of aesthetic feeling. But, there may not be
135145 more than eleven active hubs between any two computers. That of course
136146 doesn't limit the number of active hubs on the network.
137−
147+
138148 4. An active hub to another.
139149
140150 5. An active hub to passive hub.
@@ -142,22 +152,22 @@ And now to the cabling. What you can connect together: · 1 unmodified line
142152 Remember that you cannot connect two passive hubs together. The power loss
143153 implied by such a connection is too high for the net to operate reliably.
144154
145−An example of a typical ARCnet network:
155+An example of a typical ARCnet network::
146156
147− R S - STAR type card
157+ R S - STAR type card
148158 S------H--------A-------S R - Terminator
149− | | H - Hub
150− | | A - Active hub
151− | S----H----S
152− S |
153− |
154− S
155−
159+ | | H - Hub
160+ | | A - Active hub
161+ | S----H----S
162+ S |
163+ |
164+ S
165+
156166 The BUS topology is very similar to the one used by Ethernet. The only
157167 difference is in cable and terminators: they should be 93 Ohm. Ethernet
158168 uses 50 Ohm impedance. You use T connectors to put the computers on a single
159169 line of cable, the bus. You have to put terminators at both ends of the
160−cable. A typical BUS ARCnet network looks like:
170+cable. A typical BUS ARCnet network looks like::
161171
162172 RT----T------T------T------T------TR
163173 B B B B B B
@@ -168,63 +178,63 @@ cable. A typical BUS ARCnet network looks like: · 4 unmodified lines
168178
169179 But that is not all! The two types can be connected together. According to
170180 the official documentation the only way of connecting them is using an active
171−hub:
181+hub::
172182
173− A------T------T------TR
174− | B B B
183+ A------T------T------TR
184+ | B B B
175185 S---H---S
176− |
177− S
186+ |
187+ S
178188
179189 The official docs also state that you can use STAR cards at the ends of
180−BUS network in place of a BUS card and a terminator:
190+BUS network in place of a BUS card and a terminator::
181191
182192 S------T------T------S
183− B B
193+ B B
184194
185195 But, according to my own experiments, you can simply hang a BUS type card
186196 anywhere in middle of a cable in a STAR topology network. And more - you
187197 can use the bus card in place of any star card if you use a terminator. Then
188198 you can build very complicated networks fulfilling all your needs! An
189−example:
190−
191− S
192− |
193− RT------T-------T------H------S
194− B B B |
195− | R
196− S------A------T-------T-------A-------H------TR
197− | B B | | B
198− | S BT |
199− | | | S----A-----S
200− S------H---A----S | |
201− | | S------T----H---S |
202− S S B R S
203−
199+example::
200+
201+ S
202+ |
203+ RT------T-------T------H------S
204+ B B B |
205+ | R
206+ S------A------T-------T-------A-------H------TR
207+ | B B | | B
208+ | S BT |
209+ | | | S----A-----S
210+ S------H---A----S | |
211+ | | S------T----H---S |
212+ S S B R S
213+
204214 A basically different cabling scheme is used with Twisted Pair cabling. Each
205215 of the TP cards has two RJ (phone-cord style) connectors. The cards are
206216 then daisy-chained together using a cable connecting every two neighboring
207217 cards. The ends are terminated with RJ 93 Ohm terminators which plug into
208−the empty connectors of cards on the ends of the chain. An example:
218+the empty connectors of cards on the ends of the chain. An example::
209219
210− ___________ ___________
211− _R_|_ _|_|_ _|_R_
212− | | | | | |
213− |Card | |Card | |Card |
214− |_____| |_____| |_____|
220+ ___________ ___________
221+ _R_|_ _|_|_ _|_R_
222+ | | | | | |
223+ |Card | |Card | |Card |
224+ |_____| |_____| |_____|
215225
216226
217227 There are also hubs for the TP topology. There is nothing difficult
218228 involved in using them; you just connect a TP chain to a hub on any end or
219−even at both. This way you can create almost any network configuration.
229+even at both. This way you can create almost any network configuration.
220230 The maximum of 11 hubs between any two computers on the net applies here as
221−well. An example:
231+well. An example::
222232
223233 RP-------P--------P--------H-----P------P-----PR
224− |
234+ |
225235 RP-----H--------P--------H-----P------PR
226− | |
227− PR PR
236+ | |
237+ PR PR
228238
229239 R - RJ Terminator
230240 P - TP Card
@@ -234,11 +244,13 @@ Like any network, ARCnet has a limited cable length. These are the maximum · 3 unmodified lines
234244 cable lengths between two active ends (an active end being an active hub or
235245 a STAR card).
236246
247+ ========== ======= ===========
237248 RG-62 93 Ohm up to 650 m
238249 RG-59/U 75 Ohm up to 457 m
239250 RG-11/U 75 Ohm up to 533 m
240251 IBM Type 1 150 Ohm up to 200 m
241252 IBM Type 3 100 Ohm up to 100 m
253+ ========== ======= ===========
242254
243255 The maximum length of all cables connected to a passive hub is limited to 65
244256 meters for RG-62 cabling; less for others. You can see that using passive
@@ -248,8 +260,8 @@ most distant points of the net is limited to 3000 meters. The maximum length · 3 unmodified lines
248260 of a TP cable between two cards/hubs is 650 meters.
249261
250262
251−SETTING THE JUMPERS
252−-------------------
263+Setting the Jumpers
264+===================
253265
254266 All ARCnet cards should have a total of four or five different settings:
255267
@@ -261,43 +273,51 @@ All ARCnet cards should have a total of four or five different settings: · 5 unmodified lines
261273 eating net connections on my system (at least) otherwise. My guess is
262274 this may be because, if your card is at 0x2E0, probing for a serial port
263275 at 0x2E8 will reset the card and probably mess things up royally.
276+
264277 - Avery's favourite: 0x300.
265278
266279 - the IRQ: on 8-bit cards, it might be 2 (9), 3, 4, 5, or 7.
267− on 16-bit cards, it might be 2 (9), 3, 4, 5, 7, or 10-15.
268−
280+ on 16-bit cards, it might be 2 (9), 3, 4, 5, 7, or 10-15.
281+
269282 Make sure this is different from any other card on your system. Note
270283 that IRQ2 is the same as IRQ9, as far as Linux is concerned. You can
271284 "cat /proc/interrupts" for a somewhat complete list of which ones are in
272285 use at any given time. Here is a list of common usages from Vojtech
273286 Pavlik <vojtech@suse.cz>:
274− ("Not on bus" means there is no way for a card to generate this
287+
288+ ("Not on bus" means there is no way for a card to generate this
275289 interrupt)
276− IRQ 0 - Timer 0 (Not on bus)
277− IRQ 1 - Keyboard (Not on bus)
278− IRQ 2 - IRQ Controller 2 (Not on bus, nor does interrupt the CPU)
279− IRQ 3 - COM2
280− IRQ 4 - COM1
281− IRQ 5 - FREE (LPT2 if you have it; sometimes COM3; maybe PLIP)
282− IRQ 6 - Floppy disk controller
283− IRQ 7 - FREE (LPT1 if you don't use the polling driver; PLIP)
284− IRQ 8 - Realtime Clock Interrupt (Not on bus)
285− IRQ 9 - FREE (VGA vertical sync interrupt if enabled)
286− IRQ 10 - FREE
287− IRQ 11 - FREE
288− IRQ 12 - FREE
289− IRQ 13 - Numeric Coprocessor (Not on bus)
290− IRQ 14 - Fixed Disk Controller
291− IRQ 15 - FREE (Fixed Disk Controller 2 if you have it)
292−
293− Note: IRQ 9 is used on some video cards for the "vertical retrace"
294− interrupt. This interrupt would have been handy for things like
295− video games, as it occurs exactly once per screen refresh, but
296− unfortunately IBM cancelled this feature starting with the original
297− VGA and thus many VGA/SVGA cards do not support it. For this
298− reason, no modern software uses this interrupt and it can almost
299− always be safely disabled, if your video card supports it at all.
300−
290+
291+ ====== =========================================================
292+ IRQ 0 Timer 0 (Not on bus)
293+ IRQ 1 Keyboard (Not on bus)
294+ IRQ 2 IRQ Controller 2 (Not on bus, nor does interrupt the CPU)
295+ IRQ 3 COM2
296+ IRQ 4 COM1
297+ IRQ 5 FREE (LPT2 if you have it; sometimes COM3; maybe PLIP)
298+ IRQ 6 Floppy disk controller
299+ IRQ 7 FREE (LPT1 if you don't use the polling driver; PLIP)
300+ IRQ 8 Realtime Clock Interrupt (Not on bus)
301+ IRQ 9 FREE (VGA vertical sync interrupt if enabled)
302+ IRQ 10 FREE
303+ IRQ 11 FREE
304+ IRQ 12 FREE
305+ IRQ 13 Numeric Coprocessor (Not on bus)
306+ IRQ 14 Fixed Disk Controller
307+ IRQ 15 FREE (Fixed Disk Controller 2 if you have it)
308+ ====== =========================================================
309+
310+
311+ .. note::
312+
313+ IRQ 9 is used on some video cards for the "vertical retrace"
314+ interrupt. This interrupt would have been handy for things like
315+ video games, as it occurs exactly once per screen refresh, but
316+ unfortunately IBM cancelled this feature starting with the original
317+ VGA and thus many VGA/SVGA cards do not support it. For this
318+ reason, no modern software uses this interrupt and it can almost
319+ always be safely disabled, if your video card supports it at all.
320+
301321 If your card for some reason CANNOT disable this IRQ (usually there
302322 is a jumper), one solution would be to clip the printed circuit
303323 contact on the board: it's the fourth contact from the left on the
@@ -308,14 +328,18 @@ All ARCnet cards should have a total of four or five different settings: · 4 unmodified lines
308328 - the memory address: Unlike most cards, ARCnets use "shared memory" for
309329 copying buffers around. Make SURE it doesn't conflict with any other
310330 used memory in your system!
331+
332+ ::
333+
311334 A0000 - VGA graphics memory (ok if you don't have VGA)
312− B0000 - Monochrome text mode
313− C0000 \ One of these is your VGA BIOS - usually C0000.
314− E0000 /
315− F0000 - System BIOS
335+ B0000 - Monochrome text mode
336+ C0000 \ One of these is your VGA BIOS - usually C0000.
337+ E0000 /
338+ F0000 - System BIOS
316339
317340 Anything less than 0xA0000 is, well, a BAD idea since it isn't above
318341 640k.
342+
319343 - Avery's favourite: 0xD0000
320344
321345 - the station address: Every ARCnet card has its own "unique" network
@@ -326,6 +350,7 @@ All ARCnet cards should have a total of four or five different settings: · 4 unmodified lines
326350 neat stuff will probably happen if you DO use them). By the way, if you
327351 haven't already guessed, don't set this the same as any other ARCnet on
328352 your network!
353+
329354 - Avery's favourite: 3 and 4. Not that it matters.
330355
331356 - There may be ETS1 and ETS2 settings. These may or may not make a
@@ -336,28 +361,34 @@ All ARCnet cards should have a total of four or five different settings: · 4 unmodified lines
336361 requirement here is that all cards on the network with ETS1 and ETS2
337362 jumpers have them in the same position. Chris Hindy <chrish@io.org>
338363 sent in a chart with actual values for this:
364+
365+ ======= ======= =============== ====================
339366 ET1 ET2 Response Time Reconfiguration Time
340− --- --- ------------- --------------------
367+ ======= ======= =============== ====================
341368 open open 74.7us 840us
342369 open closed 283.4us 1680us
343370 closed open 561.8us 1680us
344371 closed closed 1118.6us 1680us
345−
372+ ======= ======= =============== ====================
373+
346374 Make sure you set ETS1 and ETS2 to the SAME VALUE for all cards on your
347375 network.
348−
349−Also, on many cards (not mine, though) there are red and green LED's.
376+
377+Also, on many cards (not mine, though) there are red and green LED's.
350378 Vojtech Pavlik <vojtech@suse.cz> tells me this is what they mean:
379+
380+ =============== =============== =====================================
351381 GREEN RED Status
352− ----- --- ------
382+ =============== =============== =====================================
353383 OFF OFF Power off
354384 OFF Short flashes Cabling problems (broken cable or not
355− terminated)
385+ terminated)
356386 OFF (short) ON Card init
357387 ON ON Normal state - everything OK, nothing
358− happens
388+ happens
359389 ON Long flashes Data transfer
360390 ON OFF Never happens (maybe when wrong ID)
391+ =============== =============== =====================================
361392
362393
363394 The following is all the specific information people have sent me about
@@ -366,7 +397,7 @@ huge amounts of duplicated information. I have no time to fix it. If you · 2 unmodified lines
366397 want to, PLEASE DO! Just send me a 'diff -u' of all your changes.
367398
368399 The model # is listed right above specifics for that card, so you should be
369−able to use your text viewer's "search" function to find the entry you want.
400+able to use your text viewer's "search" function to find the entry you want.
370401 If you don't KNOW what kind of card you have, try looking through the
371402 various diagrams to see if you can tell.
372403
@@ -378,8 +409,9 @@ model that is, please e-mail me to say so. · 5 unmodified lines
378409
379410 Cards Listed in this file (in this order, mostly):
380411
412+ =============== ======================= ====
381413 Manufacturer Model # Bits
382− ------------ ------- ----
414+ =============== ======================= ====
383415 SMC PC100 8
384416 SMC PC110 8
385417 SMC PC120 8
@@ -404,17 +436,19 @@ Cards Listed in this file (in this order, mostly): · 18 unmodified lines
404436 No Name Taiwan R.O.C? 8
405437 No Name Model 9058 8
406438 Tiara Tiara Lancard? 8
407−
439+ =============== ======================= ====
408440
409−** SMC = Standard Microsystems Corp.
410−** CNet Tech = CNet Technology, Inc.
411441
442+* SMC = Standard Microsystems Corp.
443+* CNet Tech = CNet Technology, Inc.
412444
413445 Unclassified Stuff
414−------------------
446+==================
447+
415448 - Please send any other information you can find.
416−
417− - And some other stuff (more info is welcome!):
449+
450+ - And some other stuff (more info is welcome!)::
451+
418452 From: root@ultraworld.xs4all.nl (Timo Hilbrink)
419453 To: apenwarr@foxnet.net (Avery Pennarun)
420454 Date: Wed, 26 Oct 1994 02:10:32 +0000 (GMT)
@@ -423,7 +457,7 @@ Unclassified Stuff · 2 unmodified lines
423457 [...parts deleted...]
424458
425459 About the jumpers: On my PC130 there is one more jumper, located near the
426− cable-connector and it's for changing to star or bus topology;
460+ cable-connector and it's for changing to star or bus topology;
427461 closed: star - open: bus
428462 On the PC500 are some more jumper-pins, one block labeled with RX,PDN,TXI
429463 and another with ALE,LA17,LA18,LA19 these are undocumented..
@@ -432,136 +466,130 @@ Unclassified Stuff · 2 unmodified lines
432466
433467 --- CUT ---
434468
469+Standard Microsystems Corp (SMC)
470+================================
471+
472+PC100, PC110, PC120, PC130 (8-bit cards) and PC500, PC600 (16-bit cards)
473+------------------------------------------------------------------------
435474
436−** Standard Microsystems Corp (SMC) **
437−PC100, PC110, PC120, PC130 (8-bit cards)
438−PC500, PC600 (16-bit cards)
439−---------------------------------
440475 - mainly from Avery Pennarun <apenwarr@worldvisions.ca>. Values depicted
441476 are from Avery's setup.
442477 - special thanks to Timo Hilbrink <timoh@xs4all.nl> for noting that PC120,
443− 130, 500, and 600 all have the same switches as Avery's PC100.
478+ 130, 500, and 600 all have the same switches as Avery's PC100.
444479 PC500/600 have several extra, undocumented pins though. (?)
445480 - PC110 settings were verified by Stephen A. Wood <saw@cebaf.gov>
446481 - Also, the JP- and S-numbers probably don't match your card exactly. Try
447482 to find jumpers/switches with the same number of settings - it's
448483 probably more reliable.
449−
450−
451− JP5 [|] : : : :
452−(IRQ Setting) IRQ2 IRQ3 IRQ4 IRQ5 IRQ7
453− Put exactly one jumper on exactly one set of pins.
454−
455−
456− 1 2 3 4 5 6 7 8 9 10
457− S1 /----------------------------------\
458−(I/O and Memory | 1 1 * 0 0 0 0 * 1 1 0 1 |
459− addresses) \----------------------------------/
460− |--| |--------| |--------|
461− (a) (b) (m)
462−
463− WARNING. It's very important when setting these which way
464− you're holding the card, and which way you think is '1'!
465−
466− If you suspect that your settings are not being made
467− correctly, try reversing the direction or inverting the
468− switch positions.
469−
470− a: The first digit of the I/O address.
471− Setting Value
472− ------- -----
473− 00 0
474− 01 1
475− 10 2
476− 11 3
477−
478− b: The second digit of the I/O address.
479− Setting Value
480− ------- -----
481− 0000 0
482− 0001 1
483− 0010 2
484− ... ...
485− 1110 E
486− 1111 F
487−
488− The I/O address is in the form ab0. For example, if
489− a is 0x2 and b is 0xE, the address will be 0x2E0.
490−
491− DO NOT SET THIS LESS THAN 0x200!!!!!
492−
493−
494− m: The first digit of the memory address.
495− Setting Value
496− ------- -----
497− 0000 0
498− 0001 1
499− 0010 2
500− ... ...
501− 1110 E
502− 1111 F
503−
504− The memory address is in the form m0000. For example, if
505− m is D, the address will be 0xD0000.
506−
507− DO NOT SET THIS TO C0000, F0000, OR LESS THAN A0000!
508−
509− 1 2 3 4 5 6 7 8
510− S2 /--------------------------\
511−(Station Address) | 1 1 0 0 0 0 0 0 |
512− \--------------------------/
513−
514− Setting Value
515− ------- -----
516− 00000000 00
517− 10000000 01
518− 01000000 02
519− ...
520− 01111111 FE
521− 11111111 FF
522−
523− Note that this is binary with the digits reversed!
524−
525− DO NOT SET THIS TO 0 OR 255 (0xFF)!
526484
485+::
486+
487+ JP5 [|] : : : :
488+ (IRQ Setting) IRQ2 IRQ3 IRQ4 IRQ5 IRQ7
489+ Put exactly one jumper on exactly one set of pins.
490+
491+
492+ 1 2 3 4 5 6 7 8 9 10
493+ S1 /----------------------------------\
494+ (I/O and Memory | 1 1 * 0 0 0 0 * 1 1 0 1 |
495+ addresses) \----------------------------------/
496+ |--| |--------| |--------|
497+ (a) (b) (m)
498+
499+ WARNING. It's very important when setting these which way
500+ you're holding the card, and which way you think is '1'!
501+
502+ If you suspect that your settings are not being made
503+ correctly, try reversing the direction or inverting the
504+ switch positions.
505+
506+ a: The first digit of the I/O address.
507+ Setting Value
508+ ------- -----
509+ 00 0
510+ 01 1
511+ 10 2
512+ 11 3
513+
514+ b: The second digit of the I/O address.
515+ Setting Value
516+ ------- -----
517+ 0000 0
518+ 0001 1
519+ 0010 2
520+ ... ...
521+ 1110 E
522+ 1111 F
523+
524+ The I/O address is in the form ab0. For example, if
525+ a is 0x2 and b is 0xE, the address will be 0x2E0.
526+
527+ DO NOT SET THIS LESS THAN 0x200!!!!!
528+
529+
530+ m: The first digit of the memory address.
531+ Setting Value
532+ ------- -----
533+ 0000 0
534+ 0001 1
535+ 0010 2
536+ ... ...
537+ 1110 E
538+ 1111 F
539+
540+ The memory address is in the form m0000. For example, if
541+ m is D, the address will be 0xD0000.
542+
543+ DO NOT SET THIS TO C0000, F0000, OR LESS THAN A0000!
544+
545+ 1 2 3 4 5 6 7 8
546+ S2 /--------------------------\
547+ (Station Address) | 1 1 0 0 0 0 0 0 |
548+ \--------------------------/
549+
550+ Setting Value
551+ ------- -----
552+ 00000000 00
553+ 10000000 01
554+ 01000000 02
555+ ...
556+ 01111111 FE
557+ 11111111 FF
558+
559+ Note that this is binary with the digits reversed!
560+
561+ DO NOT SET THIS TO 0 OR 255 (0xFF)!
527562
528−*****************************************************************************
529563
530−** Standard Microsystems Corp (SMC) **
531564 PC130E/PC270E (8-bit cards)
532565 ---------------------------
533− - from Juergen Seifert <seifert@htwm.de>
534−
535566
536−STANDARD MICROSYSTEMS CORPORATION (SMC) ARCNET(R)-PC130E/PC270E
537−===============================================================
567+ - from Juergen Seifert <seifert@htwm.de>
538568
539569 This description has been written by Juergen Seifert <seifert@htwm.de>
540−using information from the following Original SMC Manual
570+using information from the following Original SMC Manual
541571
542− "Configuration Guide for
543− ARCNET(R)-PC130E/PC270
544− Network Controller Boards
545− Pub. # 900.044A
546− June, 1989"
572+ "Configuration Guide for ARCNET(R)-PC130E/PC270 Network
573+ Controller Boards Pub. # 900.044A June, 1989"
547574
548575 ARCNET is a registered trademark of the Datapoint Corporation
549−SMC is a registered trademark of the Standard Microsystems Corporation
576+SMC is a registered trademark of the Standard Microsystems Corporation
550577
551−The PC130E is an enhanced version of the PC130 board, is equipped with a
578+The PC130E is an enhanced version of the PC130 board, is equipped with a
552579 standard BNC female connector for connection to RG-62/U coax cable.
553580 Since this board is designed both for point-to-point connection in star
554−networks and for connection to bus networks, it is downwardly compatible
581+networks and for connection to bus networks, it is downwardly compatible
555582 with all the other standard boards designed for coax networks (that is,
556−the PC120, PC110 and PC100 star topology boards and the PC220, PC210 and
583+the PC120, PC110 and PC100 star topology boards and the PC220, PC210 and
557584 PC200 bus topology boards).
558585
559−The PC270E is an enhanced version of the PC260 board, is equipped with two
586+The PC270E is an enhanced version of the PC260 board, is equipped with two
560587 modular RJ11-type jacks for connection to twisted pair wiring.
561588 It can be used in a star or a daisy-chained network.
562589
590+::
563591
564− 8 7 6 5 4 3 2 1
592+ 8 7 6 5 4 3 2 1
565593 ________________________________________________________________
566594 | | S1 | |
567595 | |_________________| |
@@ -587,27 +615,27 @@ It can be used in a star or a daisy-chained network. · 19 unmodified lines
587615 | |
588616 |_____________________________________________|
589617
590−Legend:
618+Legend::
591619
592−SMC 90C63 ARCNET Controller / Transceiver /Logic
593−S1 1-3: I/O Base Address Select
620+ SMC 90C63 ARCNET Controller / Transceiver /Logic
621+ S1 1-3: I/O Base Address Select
594622 4-6: Memory Base Address Select
595623 7-8: RAM Offset Select
596−S2 1-8: Node ID Select
597−EXT Extended Timeout Select
598−ROM ROM Enable Select
599−STAR Selected - Star Topology (PC130E only)
624+ S2 1-8: Node ID Select
625+ EXT Extended Timeout Select
626+ ROM ROM Enable Select
627+ STAR Selected - Star Topology (PC130E only)
600628 Deselected - Bus Topology (PC130E only)
601−CR3/CR4 Diagnostic LEDs
602−J1 BNC RG62/U Connector (PC130E only)
603−J1 6-position Telephone Jack (PC270E only)
604−J2 6-position Telephone Jack (PC270E only)
629+ CR3/CR4 Diagnostic LEDs
630+ J1 BNC RG62/U Connector (PC130E only)
631+ J1 6-position Telephone Jack (PC270E only)
632+ J2 6-position Telephone Jack (PC270E only)
605633
606634 Setting one of the switches to Off/Open means "1", On/Closed means "0".
607635
608636
609637 Setting the Node ID
610−-------------------
638+^^^^^^^^^^^^^^^^^^^
611639
612640 The eight switches in group S2 are used to set the node ID.
613641 These switches work in a way similar to the PC100-series cards; see that
@@ -615,10 +643,10 @@ entry for more information. · 1 unmodified line
615643
616644
617645 Setting the I/O Base Address
618−----------------------------
646+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
619647
620648 The first three switches in switch group S1 are used to select one
621−of eight possible I/O Base addresses using the following table
649+of eight possible I/O Base addresses using the following table::
622650
623651
624652 Switch | Hex I/O
@@ -635,14 +663,16 @@ of eight possible I/O Base addresses using the following table · 10 unmodified lines
635663
636664
637665 Setting the Base Memory (RAM) buffer Address
638−--------------------------------------------
666+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
639667
640668 The memory buffer requires 2K of a 16K block of RAM. The base of this
641669 16K block can be located in any of eight positions.
642670 Switches 4-6 of switch group S1 select the Base of the 16K block.
643−Within that 16K address space, the buffer may be assigned any one of four
671+Within that 16K address space, the buffer may be assigned any one of four
644672 positions, determined by the offset, switches 7 and 8 of group S1.
645673
674+::
675+
646676 Switch | Hex RAM | Hex ROM
647677 4 5 6 7 8 | Address | Address *)
648678 -----------|---------|-----------
@@ -650,115 +680,111 @@ positions, determined by the offset, switches 7 and 8 of group S1. · 1 unmodified line
650680 0 0 0 0 1 | C0800 | C2000
651681 0 0 0 1 0 | C1000 | C2000
652682 0 0 0 1 1 | C1800 | C2000
653− | |
683+ | |
654684 0 0 1 0 0 | C4000 | C6000
655685 0 0 1 0 1 | C4800 | C6000
656686 0 0 1 1 0 | C5000 | C6000
657687 0 0 1 1 1 | C5800 | C6000
658− | |
688+ | |
659689 0 1 0 0 0 | CC000 | CE000
660690 0 1 0 0 1 | CC800 | CE000
661691 0 1 0 1 0 | CD000 | CE000
662692 0 1 0 1 1 | CD800 | CE000
663− | |
693+ | |
664694 0 1 1 0 0 | D0000 | D2000 (Manufacturer's default)
665695 0 1 1 0 1 | D0800 | D2000
666696 0 1 1 1 0 | D1000 | D2000
667697 0 1 1 1 1 | D1800 | D2000
668− | |
698+ | |
669699 1 0 0 0 0 | D4000 | D6000
670700 1 0 0 0 1 | D4800 | D6000
671701 1 0 0 1 0 | D5000 | D6000
672702 1 0 0 1 1 | D5800 | D6000
673− | |
703+ | |
674704 1 0 1 0 0 | D8000 | DA000
675705 1 0 1 0 1 | D8800 | DA000
676706 1 0 1 1 0 | D9000 | DA000
677707 1 0 1 1 1 | D9800 | DA000
678− | |
708+ | |
679709 1 1 0 0 0 | DC000 | DE000
680710 1 1 0 0 1 | DC800 | DE000
681711 1 1 0 1 0 | DD000 | DE000
682712 1 1 0 1 1 | DD800 | DE000
683− | |
713+ | |
684714 1 1 1 0 0 | E0000 | E2000
685715 1 1 1 0 1 | E0800 | E2000
686716 1 1 1 1 0 | E1000 | E2000
687717 1 1 1 1 1 | E1800 | E2000
688−
689−*) To enable the 8K Boot PROM install the jumper ROM.
690− The default is jumper ROM not installed.
718+
719+ *) To enable the 8K Boot PROM install the jumper ROM.
720+ The default is jumper ROM not installed.
691721
692722
693723 Setting the Timeouts and Interrupt
694−----------------------------------
724+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
695725
696−The jumpers labeled EXT1 and EXT2 are used to determine the timeout
726+The jumpers labeled EXT1 and EXT2 are used to determine the timeout
697727 parameters. These two jumpers are normally left open.
698728
699729 To select a hardware interrupt level set one (only one!) of the jumpers
700730 IRQ2, IRQ3, IRQ4, IRQ5, IRQ7. The Manufacturer's default is IRQ2.
701−
731+
702732
703733 Configuring the PC130E for Star or Bus Topology
704−-----------------------------------------------
734+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
705735
706−The single jumper labeled STAR is used to configure the PC130E board for
736+The single jumper labeled STAR is used to configure the PC130E board for
707737 star or bus topology.
708−When the jumper is installed, the board may be used in a star network, when
738+When the jumper is installed, the board may be used in a star network, when
709739 it is removed, the board can be used in a bus topology.
710740
711741
712742 Diagnostic LEDs
713−---------------
743+^^^^^^^^^^^^^^^
714744
715745 Two diagnostic LEDs are visible on the rear bracket of the board.
716746 The green LED monitors the network activity: the red one shows the
717−board activity:
747+board activity::
718748
719749 Green | Status Red | Status
720750 -------|------------------- ---------|-------------------
721751 on | normal activity flash/on | data transfer
722752 blink | reconfiguration off | no data transfer;
723753 off | defective board or | incorrect memory or
724− | node ID is zero | I/O address
754+ | node ID is zero | I/O address
725755
726756
727−*****************************************************************************
728−
729−** Standard Microsystems Corp (SMC) **
730757 PC500/PC550 Longboard (16-bit cards)
731−-------------------------------------
758+------------------------------------
759+
732760 - from Juergen Seifert <seifert@htwm.de>
733761
734762
735−STANDARD MICROSYSTEMS CORPORATION (SMC) ARCNET-PC500/PC550 Long Board
736−=====================================================================
763+ .. note::
737764
738−Note: There is another Version of the PC500 called Short Version, which
765+ There is another Version of the PC500 called Short Version, which
739766 is different in hard- and software! The most important differences
740767 are:
768+
741769 - The long board has no Shared memory.
742770 - On the long board the selection of the interrupt is done by binary
743− coded switch, on the short board directly by jumper.
744−
771+ coded switch, on the short board directly by jumper.
772+
745773 [Avery's note: pay special attention to that: the long board HAS NO SHARED
746−MEMORY. This means the current Linux-ARCnet driver can't use these cards.
774+MEMORY. This means the current Linux-ARCnet driver can't use these cards.
747775 I have obtained a PC500Longboard and will be doing some experiments on it in
748776 the future, but don't hold your breath. Thanks again to Juergen Seifert for
749777 his advice about this!]
750778
751779 This description has been written by Juergen Seifert <seifert@htwm.de>
752−using information from the following Original SMC Manual
780+using information from the following Original SMC Manual
753781
754− "Configuration Guide for
755− SMC ARCNET-PC500/PC550
756− Series Network Controller Boards
757− Pub. # 900.033 Rev. A
758− November, 1989"
782+ "Configuration Guide for SMC ARCNET-PC500/PC550
783+ Series Network Controller Boards Pub. # 900.033 Rev. A
784+ November, 1989"
759785
760786 ARCNET is a registered trademark of the Datapoint Corporation
761−SMC is a registered trademark of the Standard Microsystems Corporation
787+SMC is a registered trademark of the Standard Microsystems Corporation
762788
763789 The PC500 is equipped with a standard BNC female connector for connection
764790 to RG-62/U coax cable.
@@ -769,7 +795,9 @@ The PC550 is equipped with two modular RJ11-type jacks for connection · 4 unmodified lines
769795 to twisted pair wiring.
770796 It can be used in a star or a daisy-chained (BUS) network.
771797
772− 1
798+::
799+
800+ 1
773801 0 9 8 7 6 5 4 3 2 1 6 5 4 3 2 1
774802 ____________________________________________________________________
775803 < | SW1 | | SW2 | |
@@ -796,34 +824,34 @@ It can be used in a star or a daisy-chained (BUS) network. · 20 unmodified lines
796824 > | | |
797825 <____| |_____________________________________________|
798826
799−Legend:
827+Legend::
800828
801−SW1 1-6: I/O Base Address Select
829+ SW1 1-6: I/O Base Address Select
802830 7-10: Interrupt Select
803−SW2 1-6: Reserved for Future Use
804−SW3 1-8: Node ID Select
805−JP2 1-4: Extended Timeout Select
806−JP6 Selected - Star Topology (PC500 only)
831+ SW2 1-6: Reserved for Future Use
832+ SW3 1-8: Node ID Select
833+ JP2 1-4: Extended Timeout Select
834+ JP6 Selected - Star Topology (PC500 only)
807835 Deselected - Bus Topology (PC500 only)
808−CR3 Green Monitors Network Activity
809−CR4 Red Monitors Board Activity
810−J1 BNC RG62/U Connector (PC500 only)
811−J1 6-position Telephone Jack (PC550 only)
812−J2 6-position Telephone Jack (PC550 only)
836+ CR3 Green Monitors Network Activity
837+ CR4 Red Monitors Board Activity
838+ J1 BNC RG62/U Connector (PC500 only)
839+ J1 6-position Telephone Jack (PC550 only)
840+ J2 6-position Telephone Jack (PC550 only)
813841
814842 Setting one of the switches to Off/Open means "1", On/Closed means "0".
815843
816844
817845 Setting the Node ID
818−-------------------
846+^^^^^^^^^^^^^^^^^^^
819847
820848 The eight switches in group SW3 are used to set the node ID. Each node
821−attached to the network must have an unique node ID which must be
849+attached to the network must have an unique node ID which must be
822850 different from 0.
823851 Switch 1 serves as the least significant bit (LSB).
824852
825−The node ID is the sum of the values of all switches set to "1"
826−These values are:
853+The node ID is the sum of the values of all switches set to "1"
854+These values are::
827855
828856 Switch | Value
829857 -------|-------
@@ -836,30 +864,30 @@ These values are: · 6 unmodified lines
836864 7 | 64
837865 8 | 128
838866
839−Some Examples:
867+Some Examples::
840868
841− Switch | Hex | Decimal
869+ Switch | Hex | Decimal
842870 8 7 6 5 4 3 2 1 | Node ID | Node ID
843871 ----------------|---------|---------
844872 0 0 0 0 0 0 0 0 | not allowed
845− 0 0 0 0 0 0 0 1 | 1 | 1
873+ 0 0 0 0 0 0 0 1 | 1 | 1
846874 0 0 0 0 0 0 1 0 | 2 | 2
847875 0 0 0 0 0 0 1 1 | 3 | 3
848876 . . . | |
849877 0 1 0 1 0 1 0 1 | 55 | 85
850878 . . . | |
851879 1 0 1 0 1 0 1 0 | AA | 170
852− . . . | |
880+ . . . | |
853881 1 1 1 1 1 1 0 1 | FD | 253
854882 1 1 1 1 1 1 1 0 | FE | 254
855− 1 1 1 1 1 1 1 1 | FF | 255
883+ 1 1 1 1 1 1 1 1 | FF | 255
856884
857885
858886 Setting the I/O Base Address
859−----------------------------
887+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
860888
861889 The first six switches in switch group SW1 are used to select one
862−of 32 possible I/O Base addresses using the following table
890+of 32 possible I/O Base addresses using the following table::
863891
864892 Switch | Hex I/O
865893 6 5 4 3 2 1 | Address
@@ -899,16 +927,18 @@ of 32 possible I/O Base addresses using the following table · 33 unmodified lines
899927
900928
901929 Setting the Interrupt
902−---------------------
930+^^^^^^^^^^^^^^^^^^^^^
903931
904−Switches seven through ten of switch group SW1 are used to select the
905−interrupt level. The interrupt level is binary coded, so selections
932+Switches seven through ten of switch group SW1 are used to select the
933+interrupt level. The interrupt level is binary coded, so selections
906934 from 0 to 15 would be possible, but only the following eight values will
907935 be supported: 3, 4, 5, 7, 9, 10, 11, 12.
908936
937+::
938+
909939 Switch | IRQ
910− 10 9 8 7 |
911− ---------|--------
940+ 10 9 8 7 |
941+ ---------|--------
912942 0 0 1 1 | 3
913943 0 1 0 0 | 4
914944 0 1 0 1 | 5
@@ -919,52 +949,50 @@ be supported: 3, 4, 5, 7, 9, 10, 11, 12. · 4 unmodified lines
919949 1 1 0 0 | 12
920950
921951
922−Setting the Timeouts
923−--------------------
952+Setting the Timeouts
953+^^^^^^^^^^^^^^^^^^^^
924954
925−The two jumpers JP2 (1-4) are used to determine the timeout parameters.
955+The two jumpers JP2 (1-4) are used to determine the timeout parameters.
926956 These two jumpers are normally left open.
927957 Refer to the COM9026 Data Sheet for alternate configurations.
928958
929959
930960 Configuring the PC500 for Star or Bus Topology
931−----------------------------------------------
961+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
932962
933−The single jumper labeled JP6 is used to configure the PC500 board for
963+The single jumper labeled JP6 is used to configure the PC500 board for
934964 star or bus topology.
935−When the jumper is installed, the board may be used in a star network, when
965+When the jumper is installed, the board may be used in a star network, when
936966 it is removed, the board can be used in a bus topology.
937967
938968
939969 Diagnostic LEDs
940−---------------
970+^^^^^^^^^^^^^^^
941971
942972 Two diagnostic LEDs are visible on the rear bracket of the board.
943973 The green LED monitors the network activity: the red one shows the
944−board activity:
974+board activity::
945975
946976 Green | Status Red | Status
947977 -------|------------------- ---------|-------------------
948978 on | normal activity flash/on | data transfer
949979 blink | reconfiguration off | no data transfer;
950980 off | defective board or | incorrect memory or
951− | node ID is zero | I/O address
981+ | node ID is zero | I/O address
952982
953983
954−*****************************************************************************
955−
956−** SMC **
957984 PC710 (8-bit card)
958985 ------------------
986+
959987 - from J.S. van Oosten <jvoosten@compiler.tdcnet.nl>
960−
988+
961989 Note: this data is gathered by experimenting and looking at info of other
962990 cards. However, I'm sure I got 99% of the settings right.
963991
964992 The SMC710 card resembles the PC270 card, but is much more basic (i.e. no
965−LEDs, RJ11 jacks, etc.) and 8 bit. Here's a little drawing:
993+LEDs, RJ11 jacks, etc.) and 8 bit. Here's a little drawing::
966994
967− _______________________________________
995+ _______________________________________
968996 | +---------+ +---------+ |____
969997 | | S2 | | S1 | |
970998 | +---------+ +---------+ |
@@ -976,12 +1004,12 @@ LEDs, RJ11 jacks, etc.) and 8 bit. Here's a little drawing: · 5 unmodified lines
9761004 | +===+ |
9771005 | |
9781006 | .. JP1 +----------+ |
979− | .. | big chip | |
1007+ | .. | big chip | |
9801008 | .. | 90C63 | |
9811009 | .. | | |
9821010 | .. +----------+ |
9831011 ------- -----------
984− |||||||||||||||||||||
1012+ |||||||||||||||||||||
9851013
9861014 The row of jumpers at JP1 actually consists of 8 jumpers, (sometimes
9871015 labelled) the same as on the PC270, from top to bottom: EXT2, EXT1, ROM,
@@ -992,71 +1020,76 @@ are swapped (S1 is the nodeaddress, S2 sets IO- and RAM-address). · 4 unmodified lines
9921020
9931021 I know it works when connected to a PC110 type ARCnet board.
9941022
995−
1023+
9961024 *****************************************************************************
9971025
998−** Possibly SMC **
1026+Possibly SMC
1027+============
1028+
9991029 LCS-8830(-T) (8 and 16-bit cards)
10001030 ---------------------------------
1031+
10011032 - from Mathias Katzer <mkatzer@HRZ.Uni-Bielefeld.DE>
10021033 - Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> says the
10031034 LCS-8830 is slightly different from LCS-8830-T. These are 8 bit, BUS
10041035 only (the JP0 jumper is hardwired), and BNC only.
1005−
1036+
10061037 This is a LCS-8830-T made by SMC, I think ('SMC' only appears on one PLCC,
10071038 nowhere else, not even on the few Xeroxed sheets from the manual).
10081039
1009−SMC ARCnet Board Type LCS-8830-T
1040+SMC ARCnet Board Type LCS-8830-T::
10101041
1011− ------------------------------------
1012− | |
1013− | JP3 88 8 JP2 |
1014− | ##### | \ |
1015− | ##### ET1 ET2 ###|
1016− | 8 ###|
1017− | U3 SW 1 JP0 ###| Phone Jacks
1018− | -- ###|
1019− | | | |
1020− | | | SW2 |
1021− | | | |
1022− | | | ##### |
1023− | -- ##### #### BNC Connector
1024− | ####
1025− | 888888 JP1 |
1026− | 234567 |
1027− -- -------
1028− |||||||||||||||||||||||||||
1029− --------------------------
1030−
1031−
1032−SW1: DIP-Switches for Station Address
1033−SW2: DIP-Switches for Memory Base and I/O Base addresses
1034−
1035−JP0: If closed, internal termination on (default open)
1036−JP1: IRQ Jumpers
1037−JP2: Boot-ROM enabled if closed
1038−JP3: Jumpers for response timeout
1039−
1040−U3: Boot-ROM Socket
1041−
1042−
1043−ET1 ET2 Response Time Idle Time Reconfiguration Time
1044−
1045− 78 86 840
1046− X 285 316 1680
1047− X 563 624 1680
1048− X X 1130 1237 1680
1049−
1050−(X means closed jumper)
1051−
1052−(DIP-Switch downwards means "0")
1042+ ------------------------------------
1043+ | |
1044+ | JP3 88 8 JP2 |
1045+ | ##### | \ |
1046+ | ##### ET1 ET2 ###|
1047+ | 8 ###|
1048+ | U3 SW 1 JP0 ###| Phone Jacks
1049+ | -- ###|
1050+ | | | |
1051+ | | | SW2 |
1052+ | | | |
1053+ | | | ##### |
1054+ | -- ##### #### BNC Connector
1055+ | ####
1056+ | 888888 JP1 |
1057+ | 234567 |
1058+ -- -------
1059+ |||||||||||||||||||||||||||
1060+ --------------------------
1061+
1062+
1063+ SW1: DIP-Switches for Station Address
1064+ SW2: DIP-Switches for Memory Base and I/O Base addresses
1065+
1066+ JP0: If closed, internal termination on (default open)
1067+ JP1: IRQ Jumpers
1068+ JP2: Boot-ROM enabled if closed
1069+ JP3: Jumpers for response timeout
1070+
1071+ U3: Boot-ROM Socket
1072+
1073+
1074+ ET1 ET2 Response Time Idle Time Reconfiguration Time
1075+
1076+ 78 86 840
1077+ X 285 316 1680
1078+ X 563 624 1680
1079+ X X 1130 1237 1680
1080+
1081+ (X means closed jumper)
1082+
1083+ (DIP-Switch downwards means "0")
10531084
10541085 The station address is binary-coded with SW1.
10551086
10561087 The I/O base address is coded with DIP-Switches 6,7 and 8 of SW2:
10571088
1089+======== ========
10581090 Switches Base
10591091 678 Address
1092+======== ========
10601093 000 260-26f
10611094 100 290-29f
10621095 010 2e0-2ef
@@ -1065,19 +1098,22 @@ Switches Base · 2 unmodified lines
10651098 101 350-35f
10661099 011 380-38f
10671100 111 3e0-3ef
1101+======== ========
10681102
10691103
10701104 DIP Switches 1-5 of SW2 encode the RAM and ROM Address Range:
10711105
1106+======== ============= ================
10721107 Switches RAM ROM
10731108 12345 Address Range Address Range
1109+======== ============= ================
10741110 00000 C:0000-C:07ff C:2000-C:3fff
10751111 10000 C:0800-C:0fff
10761112 01000 C:1000-C:17ff
10771113 11000 C:1800-C:1fff
10781114 00100 C:4000-C:47ff C:6000-C:7fff
10791115 10100 C:4800-C:4fff
1080−01100 C:5000-C:57ff
1116+01100 C:5000-C:57ff
10811117 11100 C:5800-C:5fff
10821118 00010 C:C000-C:C7ff C:E000-C:ffff
10831119 10010 C:C800-C:Cfff
@@ -1094,7 +1130,7 @@ Switches RAM ROM · 10 unmodified lines
10941130 00101 D:8000-D:87ff D:A000-D:bfff
10951131 10101 D:8800-D:8fff
10961132 01101 D:9000-D:97ff
1097−11101 D:9800-D:9fff
1133+11101 D:9800-D:9fff
10981134 00011 D:C000-D:c7ff D:E000-D:ffff
10991135 10011 D:C800-D:cfff
11001136 01011 D:D000-D:d7ff
@@ -1103,34 +1139,37 @@ Switches RAM ROM · 2 unmodified lines
11031139 10111 E:0800-E:0fff
11041140 01111 E:1000-E:17ff
11051141 11111 E:1800-E:1fff
1142+======== ============= ================
11061143
11071144
1108−*****************************************************************************
1145+PureData Corp
1146+=============
11091147
1110−** PureData Corp **
11111148 PDI507 (8-bit card)
11121149 --------------------
1150+
11131151 - from Mark Rejhon <mdrejhon@magi.com> (slight modifications by Avery)
11141152 - Avery's note: I think PDI508 cards (but definitely NOT PDI508Plus cards)
11151153 are mostly the same as this. PDI508Plus cards appear to be mainly
11161154 software-configured.
11171155
11181156 Jumpers:
1157+
11191158 There is a jumper array at the bottom of the card, near the edge
1120− connector. This array is labelled J1. They control the IRQs and
1121− something else. Put only one jumper on the IRQ pins.
1159+ connector. This array is labelled J1. They control the IRQs and
1160+ something else. Put only one jumper on the IRQ pins.
11221161
11231162 ETS1, ETS2 are for timing on very long distance networks. See the
11241163 more general information near the top of this file.
11251164
11261165 There is a J2 jumper on two pins. A jumper should be put on them,
1127− since it was already there when I got the card. I don't know what
1128− this jumper is for though.
1166+ since it was already there when I got the card. I don't know what
1167+ this jumper is for though.
11291168
11301169 There is a two-jumper array for J3. I don't know what it is for,
1131− but there were already two jumpers on it when I got the card. It's
1132− a six pin grid in a two-by-three fashion. The jumpers were
1133− configured as follows:
1170+ but there were already two jumpers on it when I got the card. It's
1171+ a six pin grid in a two-by-three fashion. The jumpers were
1172+ configured as follows::
11341173
11351174 .-------.
11361175 o | o o |
@@ -1140,28 +1179,28 @@ Jumpers: · 3 unmodified lines
11401179
11411180 Carl de Billy <CARL@carainfo.com> explains J3 and J4:
11421181
1143− J3 Diagram:
1182+ J3 Diagram::
11441183
1145− .-------.
1146− o | o o |
1147− :-------: TWIST Technology
1148− o | o o |
1149− `-------'
1150− .-------.
1151− | o o | o
1152− :-------: COAX Technology
1153− | o o | o
1154− `-------'
1184+ .-------.
1185+ o | o o |
1186+ :-------: TWIST Technology
1187+ o | o o |
1188+ `-------'
1189+ .-------.
1190+ | o o | o
1191+ :-------: COAX Technology
1192+ | o o | o
1193+ `-------'
11551194
11561195 - If using coax cable in a bus topology the J4 jumper must be removed;
11571196 place it on one pin.
11581197
1159− - If using bus topology with twisted pair wiring move the J3
1198+ - If using bus topology with twisted pair wiring move the J3
11601199 jumpers so they connect the middle pin and the pins closest to the RJ11
11611200 Connectors. Also the J4 jumper must be removed; place it on one pin of
11621201 J4 jumper for storage.
11631202
1164− - If using star topology with twisted pair wiring move the J3
1203+ - If using star topology with twisted pair wiring move the J3
11651204 jumpers so they connect the middle pin and the pins closest to the RJ11
11661205 connectors.
11671206
@@ -1169,40 +1208,43 @@ Carl de Billy <CARL@carainfo.com> explains J3 and J4: · 1 unmodified line
11691208 DIP Switches:
11701209
11711210 The DIP switches accessible on the accessible end of the card while
1172− it is installed, is used to set the ARCnet address. There are 8
1173− switches. Use an address from 1 to 254.
1211+ it is installed, is used to set the ARCnet address. There are 8
1212+ switches. Use an address from 1 to 254
11741213
1175− Switch No.
1176− 12345678 ARCnet address
1177− -----------------------------------------
1214+ ========== =========================
1215+ Switch No. ARCnet address
1216+ 12345678
1217+ ========== =========================
11781218 00000000 FF (Don't use this!)
11791219 00000001 FE
11801220 00000010 FD
1181− ....
1182− 11111101 2
1221+ ...
1222+ 11111101 2
11831223 11111110 1
11841224 11111111 0 (Don't use this!)
1225+ ========== =========================
11851226
11861227 There is another array of eight DIP switches at the top of the
1187− card. There are five labelled MS0-MS4 which seem to control the
1188− memory address, and another three labelled IO0-IO2 which seem to
1189− control the base I/O address of the card.
1228+ card. There are five labelled MS0-MS4 which seem to control the
1229+ memory address, and another three labelled IO0-IO2 which seem to
1230+ control the base I/O address of the card.
11901231
11911232 This was difficult to test by trial and error, and the I/O addresses
1192− are in a weird order. This was tested by setting the DIP switches,
1193− rebooting the computer, and attempting to load ARCETHER at various
1194− addresses (mostly between 0x200 and 0x400). The address that caused
1195− the red transmit LED to blink, is the one that I thought works.
1233+ are in a weird order. This was tested by setting the DIP switches,
1234+ rebooting the computer, and attempting to load ARCETHER at various
1235+ addresses (mostly between 0x200 and 0x400). The address that caused
1236+ the red transmit LED to blink, is the one that I thought works.
11961237
11971238 Also, the address 0x3D0 seem to have a special meaning, since the
1198− ARCETHER packet driver loaded fine, but without the red LED
1199− blinking. I don't know what 0x3D0 is for though. I recommend using
1200− an address of 0x300 since Windows may not like addresses below
1201− 0x300.
1202−
1203− IO Switch No.
1204− 210 I/O address
1205− -------------------------------
1239+ ARCETHER packet driver loaded fine, but without the red LED
1240+ blinking. I don't know what 0x3D0 is for though. I recommend using
1241+ an address of 0x300 since Windows may not like addresses below
1242+ 0x300.
1243+
1244+ ============= ===========
1245+ IO Switch No. I/O address
1246+ 210
1247+ ============= ===========
12061248 111 0x260
12071249 110 0x290
12081250 101 0x2E0
@@ -1211,29 +1253,31 @@ DIP Switches: · 2 unmodified lines
12111253 010 0x350
12121254 001 0x380
12131255 000 0x3E0
1256+ ============= ===========
12141257
12151258 The memory switches set a reserved address space of 0x1000 bytes
1216− (0x100 segment units, or 4k). For example if I set an address of
1217− 0xD000, it will use up addresses 0xD000 to 0xD100.
1259+ (0x100 segment units, or 4k). For example if I set an address of
1260+ 0xD000, it will use up addresses 0xD000 to 0xD100.
12181261
12191262 The memory switches were tested by booting using QEMM386 stealth,
1220− and using LOADHI to see what address automatically became excluded
1221− from the upper memory regions, and then attempting to load ARCETHER
1222− using these addresses.
1263+ and using LOADHI to see what address automatically became excluded
1264+ from the upper memory regions, and then attempting to load ARCETHER
1265+ using these addresses.
12231266
12241267 I recommend using an ARCnet memory address of 0xD000, and putting
1225− the EMS page frame at 0xC000 while using QEMM stealth mode. That
1226− way, you get contiguous high memory from 0xD100 almost all the way
1227− the end of the megabyte.
1268+ the EMS page frame at 0xC000 while using QEMM stealth mode. That
1269+ way, you get contiguous high memory from 0xD100 almost all the way
1270+ the end of the megabyte.
12281271
12291272 Memory Switch 0 (MS0) didn't seem to work properly when set to OFF
1230− on my card. It could be malfunctioning on my card. Experiment with
1231− it ON first, and if it doesn't work, set it to OFF. (It may be a
1232− modifier for the 0x200 bit?)
1273+ on my card. It could be malfunctioning on my card. Experiment with
1274+ it ON first, and if it doesn't work, set it to OFF. (It may be a
1275+ modifier for the 0x200 bit?)
12331276
1277+ ============= ============================================
12341278 MS Switch No.
12351279 43210 Memory address
1236− --------------------------------
1280+ ============= ============================================
12371281 00001 0xE100 (guessed - was not detected by QEMM)
12381282 00011 0xE000 (guessed - was not detected by QEMM)
12391283 00101 0xDD00
@@ -1250,40 +1294,36 @@ DIP Switches: · 10 unmodified lines
12501294 11011 0xC800 (guessed - crashes tested system)
12511295 11101 0xC500 (guessed - crashes tested system)
12521296 11111 0xC400 (guessed - crashes tested system)
1253−
1254−
1255−*****************************************************************************
1297+ ============= ============================================
1298+
1299+CNet Technology Inc. (8-bit cards)
1300+==================================
12561301
1257−** CNet Technology Inc. **
12581302 120 Series (8-bit cards)
12591303 ------------------------
12601304 - from Juergen Seifert <seifert@htwm.de>
12611305
1262−
1263−CNET TECHNOLOGY INC. (CNet) ARCNET 120A SERIES
1264−==============================================
1265−
12661306 This description has been written by Juergen Seifert <seifert@htwm.de>
1267−using information from the following Original CNet Manual
1268−
1269− "ARCNET
1270− USER'S MANUAL
1271− for
1272− CN120A
1273− CN120AB
1274− CN120TP
1275− CN120ST
1276− CN120SBT
1277− P/N:12-01-0007
1278− Revision 3.00"
1307+using information from the following Original CNet Manual
1308+
1309+ "ARCNET USER'S MANUAL for
1310+ CN120A
1311+ CN120AB
1312+ CN120TP
1313+ CN120ST
1314+ CN120SBT
1315+ P/N:12-01-0007
1316+ Revision 3.00"
12791317
12801318 ARCNET is a registered trademark of the Datapoint Corporation
12811319
1282−P/N 120A ARCNET 8 bit XT/AT Star
1283−P/N 120AB ARCNET 8 bit XT/AT Bus
1284−P/N 120TP ARCNET 8 bit XT/AT Twisted Pair
1285−P/N 120ST ARCNET 8 bit XT/AT Star, Twisted Pair
1286−P/N 120SBT ARCNET 8 bit XT/AT Star, Bus, Twisted Pair
1320+- P/N 120A ARCNET 8 bit XT/AT Star
1321+- P/N 120AB ARCNET 8 bit XT/AT Bus
1322+- P/N 120TP ARCNET 8 bit XT/AT Twisted Pair
1323+- P/N 120ST ARCNET 8 bit XT/AT Star, Twisted Pair
1324+- P/N 120SBT ARCNET 8 bit XT/AT Star, Bus, Twisted Pair
1325+
1326+::
12871327
12881328 __________________________________________________________________
12891329 | |
@@ -1307,75 +1347,77 @@ P/N 120SBT ARCNET 8 bit XT/AT Star, Bus, Twisted Pair · 17 unmodified lines
13071347 | > SOCKET | JP 6 5 4 3 2 |o|o|o| | J1 |
13081348 | |______________| |o|o|o|o|o| |o|o|o| |_____|
13091349 |_____ |o|o|o|o|o| ______________|
1310− | |
1311− |_____________________________________________|
1312−
1313−Legend:
1314−
1315−90C65 ARCNET Probe
1316−S1 1-5: Base Memory Address Select
1317− 6-8: Base I/O Address Select
1318−S2 1-8: Node ID Select (ID0-ID7)
1319−JP1 ROM Enable Select
1320−JP2 IRQ2
1321−JP3 IRQ3
1322−JP4 IRQ4
1323−JP5 IRQ5
1324−JP6 IRQ7
1325−JP7/JP8 ET1, ET2 Timeout Parameters
1326−JP10/JP11 Coax / Twisted Pair Select (CN120ST/SBT only)
1327−JP12 Terminator Select (CN120AB/ST/SBT only)
1328−J1 BNC RG62/U Connector (all except CN120TP)
1329−J2 Two 6-position Telephone Jack (CN120TP/ST/SBT only)
1350+ | |
1351+ |_____________________________________________|
1352+
1353+Legend::
1354+
1355+ 90C65 ARCNET Probe
1356+ S1 1-5: Base Memory Address Select
1357+ 6-8: Base I/O Address Select
1358+ S2 1-8: Node ID Select (ID0-ID7)
1359+ JP1 ROM Enable Select
1360+ JP2 IRQ2
1361+ JP3 IRQ3
1362+ JP4 IRQ4
1363+ JP5 IRQ5
1364+ JP6 IRQ7
1365+ JP7/JP8 ET1, ET2 Timeout Parameters
1366+ JP10/JP11 Coax / Twisted Pair Select (CN120ST/SBT only)
1367+ JP12 Terminator Select (CN120AB/ST/SBT only)
1368+ J1 BNC RG62/U Connector (all except CN120TP)
1369+ J2 Two 6-position Telephone Jack (CN120TP/ST/SBT only)
13301370
13311371 Setting one of the switches to Off means "1", On means "0".
13321372
13331373
13341374 Setting the Node ID
1335−-------------------
1375+^^^^^^^^^^^^^^^^^^^
13361376
13371377 The eight switches in SW2 are used to set the node ID. Each node attached
13381378 to the network must have an unique node ID which must be different from 0.
13391379 Switch 1 (ID0) serves as the least significant bit (LSB).
13401380
1341−The node ID is the sum of the values of all switches set to "1"
1381+The node ID is the sum of the values of all switches set to "1"
13421382 These values are:
13431383
1344− Switch | Label | Value
1345− -------|-------|-------
1346− 1 | ID0 | 1
1347− 2 | ID1 | 2
1348− 3 | ID2 | 4
1349− 4 | ID3 | 8
1350− 5 | ID4 | 16
1351− 6 | ID5 | 32
1352− 7 | ID6 | 64
1353− 8 | ID7 | 128
1354−
1355−Some Examples:
1356−
1357− Switch | Hex | Decimal
1384+ ======= ====== =====
1385+ Switch Label Value
1386+ ======= ====== =====
1387+ 1 ID0 1
1388+ 2 ID1 2
1389+ 3 ID2 4
1390+ 4 ID3 8
1391+ 5 ID4 16
1392+ 6 ID5 32
1393+ 7 ID6 64
1394+ 8 ID7 128
1395+ ======= ====== =====
1396+
1397+Some Examples::
1398+
1399+ Switch | Hex | Decimal
13581400 8 7 6 5 4 3 2 1 | Node ID | Node ID
13591401 ----------------|---------|---------
13601402 0 0 0 0 0 0 0 0 | not allowed
1361− 0 0 0 0 0 0 0 1 | 1 | 1
1403+ 0 0 0 0 0 0 0 1 | 1 | 1
13621404 0 0 0 0 0 0 1 0 | 2 | 2
13631405 0 0 0 0 0 0 1 1 | 3 | 3
13641406 . . . | |
13651407 0 1 0 1 0 1 0 1 | 55 | 85
13661408 . . . | |
13671409 1 0 1 0 1 0 1 0 | AA | 170
1368− . . . | |
1410+ . . . | |
13691411 1 1 1 1 1 1 0 1 | FD | 253
13701412 1 1 1 1 1 1 1 0 | FE | 254
13711413 1 1 1 1 1 1 1 1 | FF | 255
13721414
13731415
13741416 Setting the I/O Base Address
1375−----------------------------
1417+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
13761418
13771419 The last three switches in switch block SW1 are used to select one
1378−of eight possible I/O Base addresses using the following table
1420+of eight possible I/O Base addresses using the following table::
13791421
13801422
13811423 Switch | Hex I/O
@@ -1392,13 +1434,15 @@ of eight possible I/O Base addresses using the following table · 10 unmodified lines
13921434
13931435
13941436 Setting the Base Memory (RAM) buffer Address
1395−--------------------------------------------
1437+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
13961438
1397−The memory buffer (RAM) requires 2K. The base of this buffer can be
1439+The memory buffer (RAM) requires 2K. The base of this buffer can be
13981440 located in any of eight positions. The address of the Boot Prom is
13991441 memory base + 8K or memory base + 0x2000.
14001442 Switches 1-5 of switch block SW1 select the Memory Base address.
14011443
1444+::
1445+
14021446 Switch | Hex RAM | Hex ROM
14031447 1 2 3 4 5 | Address | Address *)
14041448 --------------------|---------|-----------
@@ -1410,22 +1454,24 @@ Switches 1-5 of switch block SW1 select the Memory Base address. · 5 unmodified lines
14101454 ON ON OFF ON OFF | D8000 | DA000
14111455 ON ON ON OFF OFF | DC000 | DE000
14121456 ON ON OFF OFF OFF | E0000 | E2000
1413−
1414−*) To enable the Boot ROM install the jumper JP1
14151457
1416−Note: Since the switches 1 and 2 are always set to ON it may be possible
1458+ *) To enable the Boot ROM install the jumper JP1
1459+
1460+.. note::
1461+
1462+ Since the switches 1 and 2 are always set to ON it may be possible
14171463 that they can be used to add an offset of 2K, 4K or 6K to the base
14181464 address, but this feature is not documented in the manual and I
14191465 haven't tested it yet.
14201466
14211467
14221468 Setting the Interrupt Line
1423−--------------------------
1469+^^^^^^^^^^^^^^^^^^^^^^^^^^
14241470
14251471 To select a hardware interrupt level install one (only one!) of the jumpers
1426−JP2, JP3, JP4, JP5, JP6. JP2 is the default.
1472+JP2, JP3, JP4, JP5, JP6. JP2 is the default::
14271473
1428− Jumper | IRQ
1474+ Jumper | IRQ
14291475 -------|-----
14301476 2 | 2
14311477 3 | 3
@@ -1435,71 +1481,66 @@ JP2, JP3, JP4, JP5, JP6. JP2 is the default. · 3 unmodified lines
14351481
14361482
14371483 Setting the Internal Terminator on CN120AB/TP/SBT
1438−--------------------------------------------------
1484+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14391485
1440−The jumper JP12 is used to enable the internal terminator.
1486+The jumper JP12 is used to enable the internal terminator::
14411487
1442− -----
1443− 0 | 0 |
1488+ -----
1489+ 0 | 0 |
14441490 ----- ON | | ON
14451491 | 0 | | 0 |
14461492 | | OFF ----- OFF
14471493 | 0 | 0
14481494 -----
1449− Terminator Terminator
1495+ Terminator Terminator
14501496 disabled enabled
1451−
1497+
14521498
14531499 Selecting the Connector Type on CN120ST/SBT
1454−-------------------------------------------
1500+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1501+
1502+::
14551503
14561504 JP10 JP11 JP10 JP11
1457− ----- -----
1458− 0 0 | 0 | | 0 |
1505+ ----- -----
1506+ 0 0 | 0 | | 0 |
14591507 ----- ----- | | | |
14601508 | 0 | | 0 | | 0 | | 0 |
14611509 | | | | ----- -----
1462− | 0 | | 0 | 0 0
1510+ | 0 | | 0 | 0 0
14631511 ----- -----
1464− Coaxial Cable Twisted Pair Cable
1512+ Coaxial Cable Twisted Pair Cable
14651513 (Default)
14661514
14671515
14681516 Setting the Timeout Parameters
1469−------------------------------
1517+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14701518
1471−The jumpers labeled EXT1 and EXT2 are used to determine the timeout
1519+The jumpers labeled EXT1 and EXT2 are used to determine the timeout
14721520 parameters. These two jumpers are normally left open.
14731521
14741522
1523+CNet Technology Inc. (16-bit cards)
1524+===================================
14751525
1476−*****************************************************************************
1477−
1478−** CNet Technology Inc. **
14791526 160 Series (16-bit cards)
14801527 -------------------------
14811528 - from Juergen Seifert <seifert@htwm.de>
14821529
1483−CNET TECHNOLOGY INC. (CNet) ARCNET 160A SERIES
1484−==============================================
1485−
14861530 This description has been written by Juergen Seifert <seifert@htwm.de>
1487−using information from the following Original CNet Manual
1531+using information from the following Original CNet Manual
14881532
1489− "ARCNET
1490− USER'S MANUAL
1491− for
1492− CN160A
1493− CN160AB
1494− CN160TP
1495− P/N:12-01-0006
1496− Revision 3.00"
1533+ "ARCNET USER'S MANUAL for
1534+ CN160A CN160AB CN160TP
1535+ P/N:12-01-0006 Revision 3.00"
14971536
14981537 ARCNET is a registered trademark of the Datapoint Corporation
14991538
1500−P/N 160A ARCNET 16 bit XT/AT Star
1501−P/N 160AB ARCNET 16 bit XT/AT Bus
1502−P/N 160TP ARCNET 16 bit XT/AT Twisted Pair
1539+- P/N 160A ARCNET 16 bit XT/AT Star
1540+- P/N 160AB ARCNET 16 bit XT/AT Bus
1541+- P/N 160TP ARCNET 16 bit XT/AT Twisted Pair
1542+
1543+::
15031544
15041545 ___________________________________________________________________
15051546 < _________________________ ___|
@@ -1526,30 +1567,30 @@ P/N 160TP ARCNET 16 bit XT/AT Twisted Pair · 20 unmodified lines
15261567 > | | |
15271568 <____________| |_______________________________________|
15281569
1529−Legend:
1570+Legend::
15301571
1531−9026 ARCNET Probe
1532−SW1 1-6: Base I/O Address Select
1533− 7-10: Base Memory Address Select
1534−SW2 1-8: Node ID Select (ID0-ID7)
1535−JP1/JP2 ET1, ET2 Timeout Parameters
1536−JP3-JP13 Interrupt Select
1537−J1 BNC RG62/U Connector (CN160A/AB only)
1538−J1 Two 6-position Telephone Jack (CN160TP only)
1539−LED
1572+ 9026 ARCNET Probe
1573+ SW1 1-6: Base I/O Address Select
1574+ 7-10: Base Memory Address Select
1575+ SW2 1-8: Node ID Select (ID0-ID7)
1576+ JP1/JP2 ET1, ET2 Timeout Parameters
1577+ JP3-JP13 Interrupt Select
1578+ J1 BNC RG62/U Connector (CN160A/AB only)
1579+ J1 Two 6-position Telephone Jack (CN160TP only)
1580+ LED
15401581
15411582 Setting one of the switches to Off means "1", On means "0".
15421583
15431584
15441585 Setting the Node ID
1545−-------------------
1586+^^^^^^^^^^^^^^^^^^^
15461587
15471588 The eight switches in SW2 are used to set the node ID. Each node attached
15481589 to the network must have an unique node ID which must be different from 0.
15491590 Switch 1 (ID0) serves as the least significant bit (LSB).
15501591
1551−The node ID is the sum of the values of all switches set to "1"
1552−These values are:
1592+The node ID is the sum of the values of all switches set to "1"
1593+These values are::
15531594
15541595 Switch | Label | Value
15551596 -------|-------|-------
@@ -1562,32 +1603,32 @@ These values are: · 6 unmodified lines
15621603 7 | ID6 | 64
15631604 8 | ID7 | 128
15641605
1565−Some Examples:
1606+Some Examples::
15661607
1567− Switch | Hex | Decimal
1608+ Switch | Hex | Decimal
15681609 8 7 6 5 4 3 2 1 | Node ID | Node ID
15691610 ----------------|---------|---------
15701611 0 0 0 0 0 0 0 0 | not allowed
1571− 0 0 0 0 0 0 0 1 | 1 | 1
1612+ 0 0 0 0 0 0 0 1 | 1 | 1
15721613 0 0 0 0 0 0 1 0 | 2 | 2
15731614 0 0 0 0 0 0 1 1 | 3 | 3
15741615 . . . | |
15751616 0 1 0 1 0 1 0 1 | 55 | 85
15761617 . . . | |
15771618 1 0 1 0 1 0 1 0 | AA | 170
1578− . . . | |
1619+ . . . | |
15791620 1 1 1 1 1 1 0 1 | FD | 253
15801621 1 1 1 1 1 1 1 0 | FE | 254
15811622 1 1 1 1 1 1 1 1 | FF | 255
15821623
15831624
15841625 Setting the I/O Base Address
1585−----------------------------
1626+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15861627
15871628 The first six switches in switch block SW1 are used to select the I/O Base
1588−address using the following table:
1629+address using the following table::
15891630
1590− Switch | Hex I/O
1631+ Switch | Hex I/O
15911632 1 2 3 4 5 6 | Address
15921633 ------------------------|--------
15931634 OFF ON ON OFF OFF ON | 260
@@ -1604,10 +1645,10 @@ Note: Other IO-Base addresses seem to be selectable, but only the above · 10 unmodified lines
16041645
16051646
16061647 Setting the Base Memory (RAM) buffer Address
1607−--------------------------------------------
1648+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16081649
16091650 The switches 7-10 of switch block SW1 are used to select the Memory
1610−Base address of the RAM (2K) and the PROM.
1651+Base address of the RAM (2K) and the PROM::
16111652
16121653 Switch | Hex RAM | Hex ROM
16131654 7 8 9 10 | Address | Address
@@ -1616,17 +1657,19 @@ Base address of the RAM (2K) and the PROM. · 2 unmodified lines
16161657 OFF OFF ON OFF | D0000 | D8000 (Default)
16171658 OFF OFF OFF ON | E0000 | E8000
16181659
1619−Note: Other MEM-Base addresses seem to be selectable, but only the above
1660+.. note::
1661+
1662+ Other MEM-Base addresses seem to be selectable, but only the above
16201663 combinations are documented.
16211664
16221665
16231666 Setting the Interrupt Line
1624−--------------------------
1667+^^^^^^^^^^^^^^^^^^^^^^^^^^
16251668
16261669 To select a hardware interrupt level install one (only one!) of the jumpers
1627−JP3 through JP13 using the following table:
1670+JP3 through JP13 using the following table::
16281671
1629− Jumper | IRQ
1672+ Jumper | IRQ
16301673 -------|-----------------
16311674 3 | 14
16321675 4 | 15
@@ -1640,10 +1683,12 @@ JP3 through JP13 using the following table: · 7 unmodified lines
16401683 12 | 7
16411684 13 | 2 (=9) Default!
16421685
1643−Note: - Do not use JP11=IRQ6, it may conflict with your Floppy Disk
1644− Controller
1686+.. note::
1687+
1688+ - Do not use JP11=IRQ6, it may conflict with your Floppy Disk
1689+ Controller
16451690 - Use JP3=IRQ14 only, if you don't have an IDE-, MFM-, or RLL-
1646− Hard Disk, it may conflict with their controllers
1691+ Hard Disk, it may conflict with their controllers
16471692
16481693
16491694 Setting the Timeout Parameters
@@ -1653,14 +1698,16 @@ The jumpers labeled JP1 and JP2 are used to determine the timeout · 3 unmodified lines
16531698 parameters. These two jumpers are normally left open.
16541699
16551700
1656−*****************************************************************************
1701+Lantech
1702+=======
16571703
1658−** Lantech **
16591704 8-bit card, unknown model
16601705 -------------------------
16611706 - from Vlad Lungu <vlungu@ugal.ro> - his e-mail address seemed broken at
16621707 the time I tried to reach him. Sorry Vlad, if you didn't get my reply.
16631708
1709+::
1710+
16641711 ________________________________________________________________
16651712 | 1 8 |
16661713 | ___________ __|
@@ -1683,25 +1730,27 @@ parameters. These two jumpers are normally left open. · 16 unmodified lines
16831730 | | PROM | |ooooo| JP6 |
16841731 | |____________| |ooooo| |
16851732 |_____________ _ _|
1686− |____________________________________________| |__|
1733+ |____________________________________________| |__|
16871734
16881735
16891736 UM9065L : ARCnet Controller
16901737
16911738 SW 1 : Shared Memory Address and I/O Base
16921739
1693− ON=0
1740+::
16941741
1695− 12345|Memory Address
1696− -----|--------------
1697− 00001| D4000
1698− 00010| CC000
1699− 00110| D0000
1700− 01110| D1000
1701− 01101| D9000
1702− 10010| CC800
1703− 10011| DC800
1704− 11110| D1800
1742+ ON=0
1743+
1744+ 12345|Memory Address
1745+ -----|--------------
1746+ 00001| D4000
1747+ 00010| CC000
1748+ 00110| D0000
1749+ 01110| D1000
1750+ 01101| D9000
1751+ 10010| CC800
1752+ 10011| DC800
1753+ 11110| D1800
17051754
17061755 It seems that the bits are considered in reverse order. Also, you must
17071756 observe that some of those addresses are unusual and I didn't probe them; I
@@ -1710,43 +1759,48 @@ some others that I didn't write here the card seems to conflict with the · 2 unmodified lines
17101759 video card (an S3 GENDAC). I leave the full decoding of those addresses to
17111760 you.
17121761
1713− 678| I/O Address
1714− ---|------------
1715− 000| 260
1716− 001| failed probe
1717− 010| 2E0
1718− 011| 380
1719− 100| 290
1720− 101| 350
1721− 110| failed probe
1722− 111| 3E0
1762+::
17231763
1724−SW 2 : Node ID (binary coded)
1764+ 678| I/O Address
1765+ ---|------------
1766+ 000| 260
1767+ 001| failed probe
1768+ 010| 2E0
1769+ 011| 380
1770+ 100| 290
1771+ 101| 350
1772+ 110| failed probe
1773+ 111| 3E0
17251774
1726−JP 4 : Boot PROM enable CLOSE - enabled
1727− OPEN - disabled
1775+ SW 2 : Node ID (binary coded)
17281776
1729−JP 6 : IRQ set (ONLY ONE jumper on 1-5 for IRQ 2-6)
1777+ JP 4 : Boot PROM enable CLOSE - enabled
1778+ OPEN - disabled
17301779
1780+ JP 6 : IRQ set (ONLY ONE jumper on 1-5 for IRQ 2-6)
17311781
1732−*****************************************************************************
17331782
1734−** Acer **
1783+Acer
1784+====
1785+
17351786 8-bit card, Model 5210-003
17361787 --------------------------
1788+
17371789 - from Vojtech Pavlik <vojtech@suse.cz> using portions of the existing
17381790 arcnet-hardware file.
17391791
17401792 This is a 90C26 based card. Its configuration seems similar to the SMC
17411793 PC100, but has some additional jumpers I don't know the meaning of.
17421794
1743− __
1744− | |
1795+::
1796+
1797+ __
1798+ | |
17451799 ___________|__|_________________________
17461800 | | | |
17471801 | | BNC | |
17481802 | |______| ___|
1749− | _____________________ |___
1803+ | _____________________ |___
17501804 | | | |
17511805 | | Hybrid IC | |
17521806 | | | o|o J1 |
@@ -1762,51 +1816,51 @@ PC100, but has some additional jumpers I don't know the meaning of. · 9 unmodified lines
17621816 | _____ |
17631817 | | | _____ |
17641818 | | | | | ___|
1765− | | | | | |
1766− | _____ | ROM | | UFS | |
1767− | | | | | | | |
1768− | | | ___ | | | | |
1769− | | | | | |__.__| |__.__| |
1770− | | NCR | |XTL| _____ _____ |
1771− | | | |___| | | | | |
1772− | |90C26| | | | | |
1773− | | | | RAM | | UFS | |
1774− | | | J17 o|o | | | | |
1775− | | | J16 o|o | | | | |
1776− | |__.__| |__.__| |__.__| |
1777− | ___ |
1778− | | |8 |
1779− | |SW2| |
1780− | | | |
1781− | |___|1 |
1782− | ___ |
1783− | | |10 J18 o|o |
1784− | | | o|o |
1785− | |SW1| o|o |
1786− | | | J21 o|o |
1787− | |___|1 |
1788− | |
1789− |____________________________________|
1790−
1791−
1792−Legend:
1793−
1794−90C26 ARCNET Chip
1795−XTL 20 MHz Crystal
1796−SW1 1-6 Base I/O Address Select
1797− 7-10 Memory Address Select
1798−SW2 1-8 Node ID Select (ID0-ID7)
1799−J1-J5 IRQ Select
1800−J6-J21 Unknown (Probably extra timeouts & ROM enable ...)
1801−LED1 Activity LED
1802−BNC Coax connector (STAR ARCnet)
1803−RAM 2k of SRAM
1804−ROM Boot ROM socket
1805−UFS Unidentified Flying Sockets
1819+ | | | | | |
1820+ | _____ | ROM | | UFS | |
1821+ | | | | | | | |
1822+ | | | ___ | | | | |
1823+ | | | | | |__.__| |__.__| |
1824+ | | NCR | |XTL| _____ _____ |
1825+ | | | |___| | | | | |
1826+ | |90C26| | | | | |
1827+ | | | | RAM | | UFS | |
1828+ | | | J17 o|o | | | | |
1829+ | | | J16 o|o | | | | |
1830+ | |__.__| |__.__| |__.__| |
1831+ | ___ |
1832+ | | |8 |
1833+ | |SW2| |
1834+ | | | |
1835+ | |___|1 |
1836+ | ___ |
1837+ | | |10 J18 o|o |
1838+ | | | o|o |
1839+ | |SW1| o|o |
1840+ | | | J21 o|o |
1841+ | |___|1 |
1842+ | |
1843+ |____________________________________|
1844+
1845+
1846+Legend::
1847+
1848+ 90C26 ARCNET Chip
1849+ XTL 20 MHz Crystal
1850+ SW1 1-6 Base I/O Address Select
1851+ 7-10 Memory Address Select
1852+ SW2 1-8 Node ID Select (ID0-ID7)
1853+ J1-J5 IRQ Select
1854+ J6-J21 Unknown (Probably extra timeouts & ROM enable ...)
1855+ LED1 Activity LED
1856+ BNC Coax connector (STAR ARCnet)
1857+ RAM 2k of SRAM
1858+ ROM Boot ROM socket
1859+ UFS Unidentified Flying Sockets
18061860
18071861
18081862 Setting the Node ID
1809−-------------------
1863+^^^^^^^^^^^^^^^^^^^
18101864
18111865 The eight switches in SW2 are used to set the node ID. Each node attached
18121866 to the network must have an unique node ID which must not be 0.
@@ -1815,7 +1869,7 @@ Switch 1 (ID0) serves as the least significant bit (LSB). · 2 unmodified lines
18151869 Setting one of the switches to OFF means "1", ON means "0".
18161870
18171871 The node ID is the sum of the values of all switches set to "1"
1818−These values are:
1872+These values are::
18191873
18201874 Switch | Value
18211875 -------|-------
@@ -1832,40 +1886,40 @@ Don't set this to 0 or 255; these values are reserved. · 10 unmodified lines
18321886
18331887
18341888 Setting the I/O Base Address
1835−----------------------------
1889+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
18361890
18371891 The switches 1 to 6 of switch block SW1 are used to select one
1838−of 32 possible I/O Base addresses using the following tables
1839−
1840− | Hex
1892+of 32 possible I/O Base addresses using the following tables::
1893+
1894+ | Hex
18411895 Switch | Value
18421896 -------|-------
1843− 1 | 200
1844− 2 | 100
1845− 3 | 80
1846− 4 | 40
1847− 5 | 20
1848− 6 | 10
1897+ 1 | 200
1898+ 2 | 100
1899+ 3 | 80
1900+ 4 | 40
1901+ 5 | 20
1902+ 6 | 10
18491903
18501904 The I/O address is sum of all switches set to "1". Remember that
18511905 the I/O address space bellow 0x200 is RESERVED for mainboard, so
1852−switch 1 should be ALWAYS SET TO OFF.
1906+switch 1 should be ALWAYS SET TO OFF.
18531907
18541908
18551909 Setting the Base Memory (RAM) buffer Address
1856−--------------------------------------------
1910+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
18571911
18581912 The memory buffer (RAM) requires 2K. The base of this buffer can be
18591913 located in any of sixteen positions. However, the addresses below
18601914 A0000 are likely to cause system hang because there's main RAM.
18611915
1862−Jumpers 7-10 of switch block SW1 select the Memory Base address.
1916+Jumpers 7-10 of switch block SW1 select the Memory Base address::
18631917
18641918 Switch | Hex RAM
18651919 7 8 9 10 | Address
18661920 ----------------|---------
18671921 OFF OFF OFF OFF | F0000 (conflicts with main BIOS)
1868− OFF OFF OFF ON | E0000
1922+ OFF OFF OFF ON | E0000
18691923 OFF OFF ON OFF | D0000
18701924 OFF OFF ON ON | C0000 (conflicts with video BIOS)
18711925 OFF ON OFF OFF | B0000 (conflicts with mono video)
@@ -1873,10 +1927,10 @@ Jumpers 7-10 of switch block SW1 select the Memory Base address. · 1 unmodified line
18731927
18741928
18751929 Setting the Interrupt Line
1876−--------------------------
1930+^^^^^^^^^^^^^^^^^^^^^^^^^^
18771931
1878−Jumpers 1-5 of the jumper block J1 control the IRQ level. ON means
1879−shorted, OFF means open.
1932+Jumpers 1-5 of the jumper block J1 control the IRQ level. ON means
1933+shorted, OFF means open::
18801934
18811935 Jumper | IRQ
18821936 1 2 3 4 5 |
@@ -1889,65 +1943,67 @@ shorted, OFF means open. · 6 unmodified lines
18891943
18901944
18911945 Unknown jumpers & sockets
1892−-------------------------
1946+^^^^^^^^^^^^^^^^^^^^^^^^^
18931947
18941948 I know nothing about these. I just guess that J16&J17 are timeout
18951949 jumpers and maybe one of J18-J21 selects ROM. Also J6-J10 and
18961950 J11-J15 are connecting IRQ2-7 to some pins on the UFSs. I can't
18971951 guess the purpose.
18981952
1953+Datapoint?
1954+==========
18991955
1900−*****************************************************************************
1901−
1902−** Datapoint? **
19031956 LAN-ARC-8, an 8-bit card
19041957 ------------------------
1958+
19051959 - from Vojtech Pavlik <vojtech@suse.cz>
19061960
19071961 This is another SMC 90C65-based ARCnet card. I couldn't identify the
19081962 manufacturer, but it might be DataPoint, because the card has the
19091963 original arcNet logo in its upper right corner.
19101964
1911− _______________________________________________________
1912− | _________ |
1913− | | SW2 | ON arcNet |
1914− | |_________| OFF ___|
1915− | _____________ 1 ______ 8 | | 8
1916− | | | SW1 | XTAL | ____________ | S |
1917− | > RAM (2k) | |______|| | | W |
1918− | |_____________| | H | | 3 |
1919− | _________|_____ y | |___| 1
1920− | _________ | | |b | |
1921− | |_________| | | |r | |
1922− | | SMC | |i | |
1923− | | 90C65| |d | |
1924− | _________ | | | | |
1925− | | SW1 | ON | | |I | |
1926− | |_________| OFF |_________|_____/C | _____|
1927− | 1 8 | | | |___
1928− | ______________ | | | BNC |___|
1929− | | | |____________| |_____|
1930− | > EPROM SOCKET | _____________ |
1931− | |______________| |_____________| |
1932− | ______________|
1933− | |
1934− |________________________________________|
1935−
1936−Legend:
1937−
1938−90C65 ARCNET Chip
1939−SW1 1-5: Base Memory Address Select
1940− 6-8: Base I/O Address Select
1941−SW2 1-8: Node ID Select
1942−SW3 1-5: IRQ Select
1943− 6-7: Extra Timeout
1944− 8 : ROM Enable
1945−BNC Coax connector
1946−XTAL 20 MHz Crystal
1965+::
1966+
1967+ _______________________________________________________
1968+ | _________ |
1969+ | | SW2 | ON arcNet |
1970+ | |_________| OFF ___|
1971+ | _____________ 1 ______ 8 | | 8
1972+ | | | SW1 | XTAL | ____________ | S |
1973+ | > RAM (2k) | |______|| | | W |
1974+ | |_____________| | H | | 3 |
1975+ | _________|_____ y | |___| 1
1976+ | _________ | | |b | |
1977+ | |_________| | | |r | |
1978+ | | SMC | |i | |
1979+ | | 90C65| |d | |
1980+ | _________ | | | | |
1981+ | | SW1 | ON | | |I | |
1982+ | |_________| OFF |_________|_____/C | _____|
1983+ | 1 8 | | | |___
1984+ | ______________ | | | BNC |___|
1985+ | | | |____________| |_____|
1986+ | > EPROM SOCKET | _____________ |
1987+ | |______________| |_____________| |
1988+ | ______________|
1989+ | |
1990+ |________________________________________|
1991+
1992+Legend::
1993+
1994+ 90C65 ARCNET Chip
1995+ SW1 1-5: Base Memory Address Select
1996+ 6-8: Base I/O Address Select
1997+ SW2 1-8: Node ID Select
1998+ SW3 1-5: IRQ Select
1999+ 6-7: Extra Timeout
2000+ 8 : ROM Enable
2001+ BNC Coax connector
2002+ XTAL 20 MHz Crystal
19472003
19482004
19492005 Setting the Node ID
1950−-------------------
2006+^^^^^^^^^^^^^^^^^^^
19512007
19522008 The eight switches in SW3 are used to set the node ID. Each node attached
19532009 to the network must have an unique node ID which must not be 0.
@@ -1955,8 +2011,8 @@ Switch 1 serves as the least significant bit (LSB). · 1 unmodified line
19552011
19562012 Setting one of the switches to Off means "1", On means "0".
19572013
1958−The node ID is the sum of the values of all switches set to "1"
1959−These values are:
2014+The node ID is the sum of the values of all switches set to "1"
2015+These values are::
19602016
19612017 Switch | Value
19622018 -------|-------
@@ -1971,10 +2027,10 @@ These values are: · 8 unmodified lines
19712027
19722028
19732029 Setting the I/O Base Address
1974−----------------------------
2030+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19752031
19762032 The last three switches in switch block SW1 are used to select one
1977−of eight possible I/O Base addresses using the following table
2033+of eight possible I/O Base addresses using the following table::
19782034
19792035
19802036 Switch | Hex I/O
@@ -1991,13 +2047,16 @@ of eight possible I/O Base addresses using the following table · 10 unmodified lines
19912047
19922048
19932049 Setting the Base Memory (RAM) buffer Address
1994−--------------------------------------------
2050+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19952051
1996−The memory buffer (RAM) requires 2K. The base of this buffer can be
2052+The memory buffer (RAM) requires 2K. The base of this buffer can be
19972053 located in any of eight positions. The address of the Boot Prom is
19982054 memory base + 0x2000.
2055+
19992056 Jumpers 3-5 of switch block SW1 select the Memory Base address.
20002057
2058+::
2059+
20012060 Switch | Hex RAM | Hex ROM
20022061 1 2 3 4 5 | Address | Address *)
20032062 --------------------|---------|-----------
@@ -2009,16 +2068,16 @@ Jumpers 3-5 of switch block SW1 select the Memory Base address. · 5 unmodified lines
20092068 ON ON OFF ON OFF | D8000 | DA000
20102069 ON ON ON OFF OFF | DC000 | DE000
20112070 ON ON OFF OFF OFF | E0000 | E2000
2012−
2013−*) To enable the Boot ROM set the switch 8 of switch block SW3 to position ON.
2071+
2072+ *) To enable the Boot ROM set the switch 8 of switch block SW3 to position ON.
20142073
20152074 The switches 1 and 2 probably add 0x0800 and 0x1000 to RAM base address.
20162075
20172076
20182077 Setting the Interrupt Line
2019−--------------------------
2078+^^^^^^^^^^^^^^^^^^^^^^^^^^
20202079
2021−Switches 1-5 of the switch block SW3 control the IRQ level.
2080+Switches 1-5 of the switch block SW3 control the IRQ level::
20222081
20232082 Jumper | IRQ
20242083 1 2 3 4 5 |
@@ -2031,64 +2090,67 @@ Switches 1-5 of the switch block SW3 control the IRQ level. · 6 unmodified lines
20312090
20322091
20332092 Setting the Timeout Parameters
2034−------------------------------
2093+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20352094
20362095 The switches 6-7 of the switch block SW3 are used to determine the timeout
20372096 parameters. These two switches are normally left in the OFF position.
20382097
20392098
2040−*****************************************************************************
2099+Topware
2100+=======
20412101
2042−** Topware **
20432102 8-bit card, TA-ARC/10
2044−-------------------------
2103+---------------------
2104+
20452105 - from Vojtech Pavlik <vojtech@suse.cz>
20462106
20472107 This is another very similar 90C65 card. Most of the switches and jumpers
20482108 are the same as on other clones.
20492109
2050− _____________________________________________________________________
2051−| ___________ | | ______ |
2052−| |SW2 NODE ID| | | | XTAL | |
2053−| |___________| | Hybrid IC | |______| |
2054−| ___________ | | __|
2055−| |SW1 MEM+I/O| |_________________________| LED1|__|)
2056−| |___________| 1 2 |
2057−| J3 |o|o| TIMEOUT ______|
2058−| ______________ |o|o| | |
2059−| | | ___________________ | RJ |
2060−| > EPROM SOCKET | | \ |------|
2061−|J2 |______________| | | | |
2062−||o| | | |______|
2063−||o| ROM ENABLE | SMC | _________ |
2064−| _____________ | 90C65 | |_________| _____|
2065−| | | | | | |___
2066−| > RAM (2k) | | | | BNC |___|
2067−| |_____________| | | |_____|
2068−| |____________________| |
2069−| ________ IRQ 2 3 4 5 7 ___________ |
2070−||________| |o|o|o|o|o| |___________| |
2071−|________ J1|o|o|o|o|o| ______________|
2072− | |
2073− |_____________________________________________|
2074−
2075−Legend:
2076−
2077−90C65 ARCNET Chip
2078−XTAL 20 MHz Crystal
2079−SW1 1-5 Base Memory Address Select
2080− 6-8 Base I/O Address Select
2081−SW2 1-8 Node ID Select (ID0-ID7)
2082−J1 IRQ Select
2083−J2 ROM Enable
2084−J3 Extra Timeout
2085−LED1 Activity LED
2086−BNC Coax connector (BUS ARCnet)
2087−RJ Twisted Pair Connector (daisy chain)
2110+::
2111+
2112+ _____________________________________________________________________
2113+ | ___________ | | ______ |
2114+ | |SW2 NODE ID| | | | XTAL | |
2115+ | |___________| | Hybrid IC | |______| |
2116+ | ___________ | | __|
2117+ | |SW1 MEM+I/O| |_________________________| LED1|__|)
2118+ | |___________| 1 2 |
2119+ | J3 |o|o| TIMEOUT ______|
2120+ | ______________ |o|o| | |
2121+ | | | ___________________ | RJ |
2122+ | > EPROM SOCKET | | \ |------|
2123+ |J2 |______________| | | | |
2124+ ||o| | | |______|
2125+ ||o| ROM ENABLE | SMC | _________ |
2126+ | _____________ | 90C65 | |_________| _____|
2127+ | | | | | | |___
2128+ | > RAM (2k) | | | | BNC |___|
2129+ | |_____________| | | |_____|
2130+ | |____________________| |
2131+ | ________ IRQ 2 3 4 5 7 ___________ |
2132+ ||________| |o|o|o|o|o| |___________| |
2133+ |________ J1|o|o|o|o|o| ______________|
2134+ | |
2135+ |_____________________________________________|
2136+
2137+Legend::
2138+
2139+ 90C65 ARCNET Chip
2140+ XTAL 20 MHz Crystal
2141+ SW1 1-5 Base Memory Address Select
2142+ 6-8 Base I/O Address Select
2143+ SW2 1-8 Node ID Select (ID0-ID7)
2144+ J1 IRQ Select
2145+ J2 ROM Enable
2146+ J3 Extra Timeout
2147+ LED1 Activity LED
2148+ BNC Coax connector (BUS ARCnet)
2149+ RJ Twisted Pair Connector (daisy chain)
20882150
20892151
20902152 Setting the Node ID
2091−-------------------
2153+^^^^^^^^^^^^^^^^^^^
20922154
20932155 The eight switches in SW2 are used to set the node ID. Each node attached to
20942156 the network must have an unique node ID which must not be 0. Switch 1 (ID0)
@@ -2097,7 +2159,7 @@ serves as the least significant bit (LSB). · 2 unmodified lines
20972159 Setting one of the switches to Off means "1", On means "0".
20982160
20992161 The node ID is the sum of the values of all switches set to "1"
2100−These values are:
2162+These values are::
21012163
21022164 Switch | Label | Value
21032165 -------|-------|-------
@@ -2111,10 +2173,10 @@ These values are: · 7 unmodified lines
21112173 8 | ID7 | 128
21122174
21132175 Setting the I/O Base Address
2114−----------------------------
2176+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21152177
21162178 The last three switches in switch block SW1 are used to select one
2117−of eight possible I/O Base addresses using the following table:
2179+of eight possible I/O Base addresses using the following table::
21182180
21192181
21202182 Switch | Hex I/O
@@ -2122,7 +2184,7 @@ of eight possible I/O Base addresses using the following table: · 1 unmodified line
21222184 ------------|--------
21232185 ON ON ON | 260 (Manufacturer's default)
21242186 OFF ON ON | 290
2125− ON OFF ON | 2E0
2187+ ON OFF ON | 2E0
21262188 OFF OFF ON | 2F0
21272189 ON ON OFF | 300
21282190 OFF ON OFF | 350
@@ -2131,35 +2193,38 @@ of eight possible I/O Base addresses using the following table: · 2 unmodified lines
21312193
21322194
21332195 Setting the Base Memory (RAM) buffer Address
2134−--------------------------------------------
2196+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21352197
21362198 The memory buffer (RAM) requires 2K. The base of this buffer can be
21372199 located in any of eight positions. The address of the Boot Prom is
21382200 memory base + 0x2000.
2201+
21392202 Jumpers 3-5 of switch block SW1 select the Memory Base address.
21402203
2204+::
2205+
21412206 Switch | Hex RAM | Hex ROM
21422207 1 2 3 4 5 | Address | Address *)
21432208 --------------------|---------|-----------
21442209 ON ON ON ON ON | C0000 | C2000
2145− ON ON OFF ON ON | C4000 | C6000 (Manufacturer's default)
2210+ ON ON OFF ON ON | C4000 | C6000 (Manufacturer's default)
21462211 ON ON ON OFF ON | CC000 | CE000
2147− ON ON OFF OFF ON | D0000 | D2000
2212+ ON ON OFF OFF ON | D0000 | D2000
21482213 ON ON ON ON OFF | D4000 | D6000
21492214 ON ON OFF ON OFF | D8000 | DA000
21502215 ON ON ON OFF OFF | DC000 | DE000
21512216 ON ON OFF OFF OFF | E0000 | E2000
21522217
2153−*) To enable the Boot ROM short the jumper J2.
2218+ *) To enable the Boot ROM short the jumper J2.
21542219
21552220 The jumpers 1 and 2 probably add 0x0800 and 0x1000 to RAM address.
21562221
21572222
21582223 Setting the Interrupt Line
2159−--------------------------
2224+^^^^^^^^^^^^^^^^^^^^^^^^^^
21602225
21612226 Jumpers 1-5 of the jumper block J1 control the IRQ level. ON means
2162−shorted, OFF means open.
2227+shorted, OFF means open::
21632228
21642229 Jumper | IRQ
21652230 1 2 3 4 5 |
@@ -2172,19 +2237,21 @@ shorted, OFF means open. · 6 unmodified lines
21722237
21732238
21742239 Setting the Timeout Parameters
2175−------------------------------
2240+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21762241
2177−The jumpers J3 are used to set the timeout parameters. These two
2242+The jumpers J3 are used to set the timeout parameters. These two
21782243 jumpers are normally left open.
21792244
2180−
2181−*****************************************************************************
2245+Thomas-Conrad
2246+=============
21822247
2183−** Thomas-Conrad **
21842248 Model #500-6242-0097 REV A (8-bit card)
21852249 ---------------------------------------
2250+
21862251 - from Lars Karlsson <100617.3473@compuserve.com>
21872252
2253+::
2254+
21882255 ________________________________________________________
21892256 | ________ ________ |_____
21902257 | |........| |........| |
@@ -2194,11 +2261,11 @@ Model #500-6242-0097 REV A (8-bit card) · 3 unmodified lines
21942261 | address | |
21952262 | ______ switch | |
21962263 | | | | |
2197− | | | |___|
2264+ | | | |___|
21982265 | | | ______ |___._
21992266 | |______| |______| ____| BNC
22002267 | Jumper- _____| Connector
2201− | Main chip block _ __| '
2268+ | Main chip block _ __| '
22022269 | | | | RJ Connector
22032270 | |_| | with 110 Ohm
22042271 | |__ Terminator
@@ -2208,46 +2275,49 @@ Model #500-6242-0097 REV A (8-bit card) · 3 unmodified lines
22082275 | |___________| |_____| |__
22092276 | Boot PROM socket IRQ-jumpers |_ Diagnostic
22102277 |________ __ _| LED (red)
2211− | | | | | | | | | | | | | | | | | | | | | |
2212− | | | | | | | | | | | | | | | | | | | | |________|
2213− |
2214− |
2278+ | | | | | | | | | | | | | | | | | | | | | |
2279+ | | | | | | | | | | | | | | | | | | | | |________|
2280+ |
2281+ |
22152282
22162283 And here are the settings for some of the switches and jumpers on the cards.
22172284
2285+::
22182286
2219− I/O
2287+ I/O
22202288
2221− 1 2 3 4 5 6 7 8
2289+ 1 2 3 4 5 6 7 8
22222290
2223−2E0----- 0 0 0 1 0 0 0 1
2224−2F0----- 0 0 0 1 0 0 0 0
2225−300----- 0 0 0 0 1 1 1 1
2226−350----- 0 0 0 0 1 1 1 0
2291+ 2E0----- 0 0 0 1 0 0 0 1
2292+ 2F0----- 0 0 0 1 0 0 0 0
2293+ 300----- 0 0 0 0 1 1 1 1
2294+ 350----- 0 0 0 0 1 1 1 0
22272295
22282296 "0" in the above example means switch is off "1" means that it is on.
22292297
2298+::
22302299
2231− ShMem address.
2300+ ShMem address.
22322301
2233− 1 2 3 4 5 6 7 8
2302+ 1 2 3 4 5 6 7 8
22342303
2235−CX00--0 0 1 1 | | |
2236−DX00--0 0 1 0 |
2237−X000--------- 1 1 |
2238−X400--------- 1 0 |
2239−X800--------- 0 1 |
2240−XC00--------- 0 0
2241−ENHANCED----------- 1
2242−COMPATIBLE--------- 0
2304+ CX00--0 0 1 1 | | |
2305+ DX00--0 0 1 0 |
2306+ X000--------- 1 1 |
2307+ X400--------- 1 0 |
2308+ X800--------- 0 1 |
2309+ XC00--------- 0 0
2310+ ENHANCED----------- 1
2311+ COMPATIBLE--------- 0
22432312
2313+::
22442314
2245− IRQ
2315+ IRQ
22462316
22472317
2248− 3 4 5 7 2
2249− . . . . .
2250− . . . . .
2318+ 3 4 5 7 2
2319+ . . . . .
2320+ . . . . .
22512321
22522322
22532323 There is a DIP-switch with 8 switches, used to set the shared memory address
@@ -2266,10 +2336,9 @@ varies by the type of card involved. I fail to see how either of these · 12 unmodified lines
22662336 enhance anything. Send me more detailed information about this mode, or
22672337 just use "compatible" mode instead.]
22682338
2339+Waterloo Microsystems Inc. ??
2340+=============================
22692341
2270−*****************************************************************************
2271−
2272−** Waterloo Microsystems Inc. ?? **
22732342 8-bit card (C) 1985
22742343 -------------------
22752344 - from Robert Michael Best <rmb117@cs.usask.ca>
@@ -2283,103 +2352,104 @@ e-mail me.] · 7 unmodified lines
22832352
22842353 The probe has not been able to detect the card on any of the J2 settings,
22852354 and I tried them again with the "Waterloo" chip removed.
2286−
2287− _____________________________________________________________________
2288−| \/ \/ ___ __ __ |
2289−| C4 C4 |^| | M || ^ ||^| |
2290−| -- -- |_| | 5 || || | C3 |
2291−| \/ \/ C10 |___|| ||_| |
2292−| C4 C4 _ _ | | ?? |
2293−| -- -- | \/ || | |
2294−| | || | |
2295−| | || C1 | |
2296−| | || | \/ _____|
2297−| | C6 || | C9 | |___
2298−| | || | -- | BNC |___|
2299−| | || | >C7| |_____|
2300−| | || | |
2301−| __ __ |____||_____| 1 2 3 6 |
2302−|| ^ | >C4| |o|o|o|o|o|o| J2 >C4| |
2303−|| | |o|o|o|o|o|o| |
2304−|| C2 | >C4| >C4| |
2305−|| | >C8| |
2306−|| | 2 3 4 5 6 7 IRQ >C4| |
2307−||_____| |o|o|o|o|o|o| J3 |
2308−|_______ |o|o|o|o|o|o| _______________|
2309− | |
2310− |_____________________________________________|
2311−
2312−C1 -- "COM9026
2313− SMC 8638"
2314− In a chip socket.
2315−
2316−C2 -- "@Copyright
2317− Waterloo Microsystems Inc.
2318− 1985"
2319− In a chip Socket with info printed on a label covering a round window
2320− showing the circuit inside. (The window indicates it is an EPROM chip.)
2321−
2322−C3 -- "COM9032
2323− SMC 8643"
2324− In a chip socket.
2325−
2326−C4 -- "74LS"
2327− 9 total no sockets.
2328−
2329−M5 -- "50006-136
2330− 20.000000 MHZ
2331− MTQ-T1-S3
2332− 0 M-TRON 86-40"
2333− Metallic case with 4 pins, no socket.
2334−
2335−C6 -- "MOSTEK@TC8643
2336− MK6116N-20
2337− MALAYSIA"
2338− No socket.
2339−
2340−C7 -- No stamp or label but in a 20 pin chip socket.
2341−
2342−C8 -- "PAL10L8CN
2343− 8623"
2344− In a 20 pin socket.
2345−
2346−C9 -- "PAl16R4A-2CN
2347− 8641"
2348− In a 20 pin socket.
2349−
2350−C10 -- "M8640
2351− NMC
2352− 9306N"
2353− In an 8 pin socket.
2354−
2355−?? -- Some components on a smaller board and attached with 20 pins all
2356− along the side closest to the BNC connector. The are coated in a dark
2357− resin.
2358−
2359−On the board there are two jumper banks labeled J2 and J3. The
2360−manufacturer didn't put a J1 on the board. The two boards I have both
2355+
2356+::
2357+
2358+ _____________________________________________________________________
2359+ | \/ \/ ___ __ __ |
2360+ | C4 C4 |^| | M || ^ ||^| |
2361+ | -- -- |_| | 5 || || | C3 |
2362+ | \/ \/ C10 |___|| ||_| |
2363+ | C4 C4 _ _ | | ?? |
2364+ | -- -- | \/ || | |
2365+ | | || | |
2366+ | | || C1 | |
2367+ | | || | \/ _____|
2368+ | | C6 || | C9 | |___
2369+ | | || | -- | BNC |___|
2370+ | | || | >C7| |_____|
2371+ | | || | |
2372+ | __ __ |____||_____| 1 2 3 6 |
2373+ || ^ | >C4| |o|o|o|o|o|o| J2 >C4| |
2374+ || | |o|o|o|o|o|o| |
2375+ || C2 | >C4| >C4| |
2376+ || | >C8| |
2377+ || | 2 3 4 5 6 7 IRQ >C4| |
2378+ ||_____| |o|o|o|o|o|o| J3 |
2379+ |_______ |o|o|o|o|o|o| _______________|
2380+ | |
2381+ |_____________________________________________|
2382+
2383+ C1 -- "COM9026
2384+ SMC 8638"
2385+ In a chip socket.
2386+
2387+ C2 -- "@Copyright
2388+ Waterloo Microsystems Inc.
2389+ 1985"
2390+ In a chip Socket with info printed on a label covering a round window
2391+ showing the circuit inside. (The window indicates it is an EPROM chip.)
2392+
2393+ C3 -- "COM9032
2394+ SMC 8643"
2395+ In a chip socket.
2396+
2397+ C4 -- "74LS"
2398+ 9 total no sockets.
2399+
2400+ M5 -- "50006-136
2401+ 20.000000 MHZ
2402+ MTQ-T1-S3
2403+ 0 M-TRON 86-40"
2404+ Metallic case with 4 pins, no socket.
2405+
2406+ C6 -- "MOSTEK@TC8643
2407+ MK6116N-20
2408+ MALAYSIA"
2409+ No socket.
2410+
2411+ C7 -- No stamp or label but in a 20 pin chip socket.
2412+
2413+ C8 -- "PAL10L8CN
2414+ 8623"
2415+ In a 20 pin socket.
2416+
2417+ C9 -- "PAl16R4A-2CN
2418+ 8641"
2419+ In a 20 pin socket.
2420+
2421+ C10 -- "M8640
2422+ NMC
2423+ 9306N"
2424+ In an 8 pin socket.
2425+
2426+ ?? -- Some components on a smaller board and attached with 20 pins all
2427+ along the side closest to the BNC connector. The are coated in a dark
2428+ resin.
2429+
2430+On the board there are two jumper banks labeled J2 and J3. The
2431+manufacturer didn't put a J1 on the board. The two boards I have both
23612432 came with a jumper box for each bank.
23622433
2363−J2 -- Numbered 1 2 3 4 5 6.
2364− 4 and 5 are not stamped due to solder points.
2365−
2366−J3 -- IRQ 2 3 4 5 6 7
2434+::
2435+
2436+ J2 -- Numbered 1 2 3 4 5 6.
2437+ 4 and 5 are not stamped due to solder points.
2438+
2439+ J3 -- IRQ 2 3 4 5 6 7
23672440
2368−The board itself has a maple leaf stamped just above the irq jumpers
2369−and "-2 46-86" beside C2. Between C1 and C6 "ASS 'Y 300163" and "@1986
2441+The board itself has a maple leaf stamped just above the irq jumpers
2442+and "-2 46-86" beside C2. Between C1 and C6 "ASS 'Y 300163" and "@1986
23702443 CORMAN CUSTOM ELECTRONICS CORP." stamped just below the BNC connector.
23712444 Below that "MADE IN CANADA"
23722445
2373−
2374−*****************************************************************************
2446+No Name
2447+=======
23752448
2376−** No Name **
23772449 8-bit cards, 16-bit cards
23782450 -------------------------
2451+
23792452 - from Juergen Seifert <seifert@htwm.de>
2380−
2381−NONAME 8-BIT ARCNET
2382−===================
23832453
23842454 I have named this ARCnet card "NONAME", since there is no name of any
23852455 manufacturer on the Installation manual nor on the shipping box. The only
@@ -2388,8 +2458,10 @@ it is "Made in Taiwan" · 2 unmodified lines
23882458
23892459 This description has been written by Juergen Seifert <seifert@htwm.de>
23902460 using information from the Original
2391− "ARCnet Installation Manual"
23922461
2462+ "ARCnet Installation Manual"
2463+
2464+::
23932465
23942466 ________________________________________________________________
23952467 | |STAR| BUS| T/P| |
@@ -2416,32 +2488,32 @@ using information from the Original · 20 unmodified lines
24162488 | \ IRQ / T T O |
24172489 |__________________1_2_M______________________|
24182490
2419−Legend:
2491+Legend::
24202492
2421−COM90C65: ARCnet Probe
2422−S1 1-8: Node ID Select
2423−S2 1-3: I/O Base Address Select
2424− 4-6: Memory Base Address Select
2425− 7-8: RAM Offset Select
2426−ET1, ET2 Extended Timeout Select
2427−ROM ROM Enable Select
2428−CN RG62 Coax Connector
2429−STAR| BUS | T/P Three fields for placing a sign (colored circle)
2430− indicating the topology of the card
2493+ COM90C65: ARCnet Probe
2494+ S1 1-8: Node ID Select
2495+ S2 1-3: I/O Base Address Select
2496+ 4-6: Memory Base Address Select
2497+ 7-8: RAM Offset Select
2498+ ET1, ET2 Extended Timeout Select
2499+ ROM ROM Enable Select
2500+ CN RG62 Coax Connector
2501+ STAR| BUS | T/P Three fields for placing a sign (colored circle)
2502+ indicating the topology of the card
24312503
24322504 Setting one of the switches to Off means "1", On means "0".
24332505
24342506
24352507 Setting the Node ID
2436−-------------------
2508+^^^^^^^^^^^^^^^^^^^
24372509
24382510 The eight switches in group SW1 are used to set the node ID.
24392511 Each node attached to the network must have an unique node ID which
24402512 must be different from 0.
24412513 Switch 8 serves as the least significant bit (LSB).
24422514
2443−The node ID is the sum of the values of all switches set to "1"
2444−These values are:
2515+The node ID is the sum of the values of all switches set to "1"
2516+These values are::
24452517
24462518 Switch | Value
24472519 -------|-------
@@ -2454,30 +2526,30 @@ These values are: · 6 unmodified lines
24542526 2 | 64
24552527 1 | 128
24562528
2457−Some Examples:
2529+Some Examples::
24582530
2459− Switch | Hex | Decimal
2531+ Switch | Hex | Decimal
24602532 1 2 3 4 5 6 7 8 | Node ID | Node ID
24612533 ----------------|---------|---------
24622534 0 0 0 0 0 0 0 0 | not allowed
2463− 0 0 0 0 0 0 0 1 | 1 | 1
2535+ 0 0 0 0 0 0 0 1 | 1 | 1
24642536 0 0 0 0 0 0 1 0 | 2 | 2
24652537 0 0 0 0 0 0 1 1 | 3 | 3
24662538 . . . | |
24672539 0 1 0 1 0 1 0 1 | 55 | 85
24682540 . . . | |
24692541 1 0 1 0 1 0 1 0 | AA | 170
2470− . . . | |
2542+ . . . | |
24712543 1 1 1 1 1 1 0 1 | FD | 253
24722544 1 1 1 1 1 1 1 0 | FE | 254
24732545 1 1 1 1 1 1 1 1 | FF | 255
24742546
24752547
24762548 Setting the I/O Base Address
2477−----------------------------
2549+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
24782550
24792551 The first three switches in switch group SW2 are used to select one
2480−of eight possible I/O Base addresses using the following table
2552+of eight possible I/O Base addresses using the following table::
24812553
24822554 Switch | Hex I/O
24832555 1 2 3 | Address
@@ -2493,7 +2565,7 @@ of eight possible I/O Base addresses using the following table · 9 unmodified lines
24932565
24942566
24952567 Setting the Base Memory (RAM) buffer Address
2496−--------------------------------------------
2568+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
24972569
24982570 The memory buffer requires 2K of a 16K block of RAM. The base of this
24992571 16K block can be located in any of eight positions.
@@ -2501,6 +2573,8 @@ Switches 4-6 of switch group SW2 select the Base of the 16K block. · 1 unmodified line
25012573 Within that 16K address space, the buffer may be assigned any one of four
25022574 positions, determined by the offset, switches 7 and 8 of group SW2.
25032575
2576+::
2577+
25042578 Switch | Hex RAM | Hex ROM
25052579 4 5 6 7 8 | Address | Address *)
25062580 -----------|---------|-----------
@@ -2508,60 +2582,62 @@ positions, determined by the offset, switches 7 and 8 of group SW2. · 1 unmodified line
25082582 0 0 0 0 1 | C0800 | C2000
25092583 0 0 0 1 0 | C1000 | C2000
25102584 0 0 0 1 1 | C1800 | C2000
2511− | |
2585+ | |
25122586 0 0 1 0 0 | C4000 | C6000
25132587 0 0 1 0 1 | C4800 | C6000
25142588 0 0 1 1 0 | C5000 | C6000
25152589 0 0 1 1 1 | C5800 | C6000
2516− | |
2590+ | |
25172591 0 1 0 0 0 | CC000 | CE000
25182592 0 1 0 0 1 | CC800 | CE000
25192593 0 1 0 1 0 | CD000 | CE000
25202594 0 1 0 1 1 | CD800 | CE000
2521− | |
2595+ | |
25222596 0 1 1 0 0 | D0000 | D2000 (Manufacturer's default)
25232597 0 1 1 0 1 | D0800 | D2000
25242598 0 1 1 1 0 | D1000 | D2000
25252599 0 1 1 1 1 | D1800 | D2000
2526− | |
2600+ | |
25272601 1 0 0 0 0 | D4000 | D6000
25282602 1 0 0 0 1 | D4800 | D6000
25292603 1 0 0 1 0 | D5000 | D6000
25302604 1 0 0 1 1 | D5800 | D6000
2531− | |
2605+ | |
25322606 1 0 1 0 0 | D8000 | DA000
25332607 1 0 1 0 1 | D8800 | DA000
25342608 1 0 1 1 0 | D9000 | DA000
25352609 1 0 1 1 1 | D9800 | DA000
2536− | |
2610+ | |
25372611 1 1 0 0 0 | DC000 | DE000
25382612 1 1 0 0 1 | DC800 | DE000
25392613 1 1 0 1 0 | DD000 | DE000
25402614 1 1 0 1 1 | DD800 | DE000
2541− | |
2615+ | |
25422616 1 1 1 0 0 | E0000 | E2000
25432617 1 1 1 0 1 | E0800 | E2000
25442618 1 1 1 1 0 | E1000 | E2000
25452619 1 1 1 1 1 | E1800 | E2000
2546−
2547−*) To enable the 8K Boot PROM install the jumper ROM.
2548− The default is jumper ROM not installed.
2620+
2621+ *) To enable the 8K Boot PROM install the jumper ROM.
2622+ The default is jumper ROM not installed.
25492623
25502624
25512625 Setting Interrupt Request Lines (IRQ)
2552−-------------------------------------
2626+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25532627
25542628 To select a hardware interrupt level set one (only one!) of the jumpers
25552629 IRQ2, IRQ3, IRQ4, IRQ5 or IRQ7. The manufacturer's default is IRQ2.
2556−
2630+
25572631
25582632 Setting the Timeouts
2559−--------------------
2633+^^^^^^^^^^^^^^^^^^^^
25602634
25612635 The two jumpers labeled ET1 and ET2 are used to determine the timeout
25622636 parameters (response and reconfiguration time). Every node in a network
25632637 must be set to the same timeout values.
25642638
2639+::
2640+
25652641 ET1 ET2 | Response Time (us) | Reconfiguration Time (ms)
25662642 --------|--------------------|--------------------------
25672643 Off Off | 78 | 840 (Default)
@@ -2572,8 +2648,8 @@ must be set to the same timeout values. · 4 unmodified lines
25722648 On means jumper installed, Off means jumper not installed
25732649
25742650
2575−NONAME 16-BIT ARCNET
2576−====================
2651+16-BIT ARCNET
2652+-------------
25772653
25782654 The manual of my 8-Bit NONAME ARCnet Card contains another description
25792655 of a 16-Bit Coax / Twisted Pair Card. This description is incomplete,
@@ -2584,13 +2660,16 @@ the booklet there is a different way of counting ... 2-9, 2-10, A-1, · 4 unmodified lines
25842660 Also the picture of the board layout is not as good as the picture of
25852661 8-Bit card, because there isn't any letter like "SW1" written to the
25862662 picture.
2663+
25872664 Should somebody have such a board, please feel free to complete this
25882665 description or to send a mail to me!
25892666
25902667 This description has been written by Juergen Seifert <seifert@htwm.de>
25912668 using information from the Original
2592− "ARCnet Installation Manual"
25932669
2670+ "ARCnet Installation Manual"
2671+
2672+::
25942673
25952674 ___________________________________________________________________
25962675 < _________________ _________________ |
@@ -2622,15 +2701,15 @@ Setting one of the switches to Off means "1", On means "0". · 25 unmodified lines
26222701
26232702
26242703 Setting the Node ID
2625−-------------------
2704+^^^^^^^^^^^^^^^^^^^
26262705
26272706 The eight switches in group SW2 are used to set the node ID.
26282707 Each node attached to the network must have an unique node ID which
26292708 must be different from 0.
26302709 Switch 8 serves as the least significant bit (LSB).
26312710
2632−The node ID is the sum of the values of all switches set to "1"
2633−These values are:
2711+The node ID is the sum of the values of all switches set to "1"
2712+These values are::
26342713
26352714 Switch | Value
26362715 -------|-------
@@ -2643,30 +2722,30 @@ These values are: · 6 unmodified lines
26432722 2 | 64
26442723 1 | 128
26452724
2646−Some Examples:
2725+Some Examples::
26472726
2648− Switch | Hex | Decimal
2727+ Switch | Hex | Decimal
26492728 1 2 3 4 5 6 7 8 | Node ID | Node ID
26502729 ----------------|---------|---------
26512730 0 0 0 0 0 0 0 0 | not allowed
2652− 0 0 0 0 0 0 0 1 | 1 | 1
2731+ 0 0 0 0 0 0 0 1 | 1 | 1
26532732 0 0 0 0 0 0 1 0 | 2 | 2
26542733 0 0 0 0 0 0 1 1 | 3 | 3
26552734 . . . | |
26562735 0 1 0 1 0 1 0 1 | 55 | 85
26572736 . . . | |
26582737 1 0 1 0 1 0 1 0 | AA | 170
2659− . . . | |
2738+ . . . | |
26602739 1 1 1 1 1 1 0 1 | FD | 253
26612740 1 1 1 1 1 1 1 0 | FE | 254
26622741 1 1 1 1 1 1 1 1 | FF | 255
26632742
26642743
26652744 Setting the I/O Base Address
2666−----------------------------
2745+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
26672746
26682747 The first three switches in switch group SW1 are used to select one
2669−of eight possible I/O Base addresses using the following table
2748+of eight possible I/O Base addresses using the following table::
26702749
26712750 Switch | Hex I/O
26722751 3 2 1 | Address
@@ -2682,13 +2761,13 @@ of eight possible I/O Base addresses using the following table · 9 unmodified lines
26822761
26832762
26842763 Setting the Base Memory (RAM) buffer Address
2685−--------------------------------------------
2764+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
26862765
26872766 The memory buffer requires 2K of a 16K block of RAM. The base of this
26882767 16K block can be located in any of eight positions.
26892768 Switches 6-8 of switch group SW1 select the Base of the 16K block.
26902769 Within that 16K address space, the buffer may be assigned any one of four
2691−positions, determined by the offset, switches 4 and 5 of group SW1.
2770+positions, determined by the offset, switches 4 and 5 of group SW1::
26922771
26932772 Switch | Hex RAM | Hex ROM
26942773 8 7 6 5 4 | Address | Address
@@ -2697,111 +2776,111 @@ positions, determined by the offset, switches 4 and 5 of group SW1. · 2 unmodified lines
26972776 0 0 0 0 1 | C0800 | C2000
26982777 0 0 0 1 0 | C1000 | C2000
26992778 0 0 0 1 1 | C1800 | C2000
2700− | |
2779+ | |
27012780 0 0 1 0 0 | C4000 | C6000
27022781 0 0 1 0 1 | C4800 | C6000
27032782 0 0 1 1 0 | C5000 | C6000
27042783 0 0 1 1 1 | C5800 | C6000
2705− | |
2784+ | |
27062785 0 1 0 0 0 | CC000 | CE000
27072786 0 1 0 0 1 | CC800 | CE000
27082787 0 1 0 1 0 | CD000 | CE000
27092788 0 1 0 1 1 | CD800 | CE000
2710− | |
2789+ | |
27112790 0 1 1 0 0 | D0000 | D2000 (Manufacturer's default)
27122791 0 1 1 0 1 | D0800 | D2000
27132792 0 1 1 1 0 | D1000 | D2000
27142793 0 1 1 1 1 | D1800 | D2000
2715− | |
2794+ | |
27162795 1 0 0 0 0 | D4000 | D6000
27172796 1 0 0 0 1 | D4800 | D6000
27182797 1 0 0 1 0 | D5000 | D6000
27192798 1 0 0 1 1 | D5800 | D6000
2720− | |
2799+ | |
27212800 1 0 1 0 0 | D8000 | DA000
27222801 1 0 1 0 1 | D8800 | DA000
27232802 1 0 1 1 0 | D9000 | DA000
27242803 1 0 1 1 1 | D9800 | DA000
2725− | |
2804+ | |
27262805 1 1 0 0 0 | DC000 | DE000
27272806 1 1 0 0 1 | DC800 | DE000
27282807 1 1 0 1 0 | DD000 | DE000
27292808 1 1 0 1 1 | DD800 | DE000
2730− | |
2809+ | |
27312810 1 1 1 0 0 | E0000 | E2000
27322811 1 1 1 0 1 | E0800 | E2000
27332812 1 1 1 1 0 | E1000 | E2000
27342813 1 1 1 1 1 | E1800 | E2000
2735−
2814+
27362815
27372816 Setting Interrupt Request Lines (IRQ)
2738−-------------------------------------
2817+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
27392818
27402819 ??????????????????????????????????????
27412820
27422821
27432822 Setting the Timeouts
2744−--------------------
2823+^^^^^^^^^^^^^^^^^^^^
27452824
27462825 ??????????????????????????????????????
27472826
27482827
2749−*****************************************************************************
2750−
2751−** No Name **
27522828 8-bit cards ("Made in Taiwan R.O.C.")
2753−-----------
2829+-------------------------------------
2830+
27542831 - from Vojtech Pavlik <vojtech@suse.cz>
27552832
27562833 I have named this ARCnet card "NONAME", since I got only the card with
2757−no manual at all and the only text identifying the manufacturer is
2834+no manual at all and the only text identifying the manufacturer is
27582835 "MADE IN TAIWAN R.O.C" printed on the card.
27592836
2760− ____________________________________________________________
2761− | 1 2 3 4 5 6 7 8 |
2762− | |o|o| JP1 o|o|o|o|o|o|o|o| ON |
2763− | + o|o|o|o|o|o|o|o| ___|
2764− | _____________ o|o|o|o|o|o|o|o| OFF _____ | | ID7
2765− | | | SW1 | | | | ID6
2766− | > RAM (2k) | ____________________ | H | | S | ID5
2767− | |_____________| | || y | | W | ID4
2768− | | || b | | 2 | ID3
2769− | | || r | | | ID2
2770− | | || i | | | ID1
2771− | | 90C65 || d | |___| ID0
2772− | SW3 | || | |
2773− | |o|o|o|o|o|o|o|o| ON | || I | |
2774− | |o|o|o|o|o|o|o|o| | || C | |
2775− | |o|o|o|o|o|o|o|o| OFF |____________________|| | _____|
2776− | 1 2 3 4 5 6 7 8 | | | |___
2777− | ______________ | | | BNC |___|
2778− | | | |_____| |_____|
2779− | > EPROM SOCKET | |
2780− | |______________| |
2781− | ______________|
2782− | |
2783− |_____________________________________________|
2784−
2785−Legend:
2786−
2787−90C65 ARCNET Chip
2788−SW1 1-5: Base Memory Address Select
2789− 6-8: Base I/O Address Select
2790−SW2 1-8: Node ID Select (ID0-ID7)
2791−SW3 1-5: IRQ Select
2792− 6-7: Extra Timeout
2793− 8 : ROM Enable
2794−JP1 Led connector
2795−BNC Coax connector
2796−
2797−Although the jumpers SW1 and SW3 are marked SW, not JP, they are jumpers, not
2837+::
2838+
2839+ ____________________________________________________________
2840+ | 1 2 3 4 5 6 7 8 |
2841+ | |o|o| JP1 o|o|o|o|o|o|o|o| ON |
2842+ | + o|o|o|o|o|o|o|o| ___|
2843+ | _____________ o|o|o|o|o|o|o|o| OFF _____ | | ID7
2844+ | | | SW1 | | | | ID6
2845+ | > RAM (2k) | ____________________ | H | | S | ID5
2846+ | |_____________| | || y | | W | ID4
2847+ | | || b | | 2 | ID3
2848+ | | || r | | | ID2
2849+ | | || i | | | ID1
2850+ | | 90C65 || d | |___| ID0
2851+ | SW3 | || | |
2852+ | |o|o|o|o|o|o|o|o| ON | || I | |
2853+ | |o|o|o|o|o|o|o|o| | || C | |
2854+ | |o|o|o|o|o|o|o|o| OFF |____________________|| | _____|
2855+ | 1 2 3 4 5 6 7 8 | | | |___
2856+ | ______________ | | | BNC |___|
2857+ | | | |_____| |_____|
2858+ | > EPROM SOCKET | |
2859+ | |______________| |
2860+ | ______________|
2861+ | |
2862+ |_____________________________________________|
2863+
2864+Legend::
2865+
2866+ 90C65 ARCNET Chip
2867+ SW1 1-5: Base Memory Address Select
2868+ 6-8: Base I/O Address Select
2869+ SW2 1-8: Node ID Select (ID0-ID7)
2870+ SW3 1-5: IRQ Select
2871+ 6-7: Extra Timeout
2872+ 8 : ROM Enable
2873+ JP1 Led connector
2874+ BNC Coax connector
2875+
2876+Although the jumpers SW1 and SW3 are marked SW, not JP, they are jumpers, not
27982877 switches.
27992878
2800−Setting the jumpers to ON means connecting the upper two pins, off the bottom
2879+Setting the jumpers to ON means connecting the upper two pins, off the bottom
28012880 two - or - in case of IRQ setting, connecting none of them at all.
28022881
28032882 Setting the Node ID
2804−-------------------
2883+^^^^^^^^^^^^^^^^^^^
28052884
28062885 The eight switches in SW2 are used to set the node ID. Each node attached
28072886 to the network must have an unique node ID which must not be 0.
@@ -2809,8 +2888,8 @@ Switch 1 (ID0) serves as the least significant bit (LSB). · 1 unmodified line
28092888
28102889 Setting one of the switches to Off means "1", On means "0".
28112890
2812−The node ID is the sum of the values of all switches set to "1"
2813−These values are:
2891+The node ID is the sum of the values of all switches set to "1"
2892+These values are::
28142893
28152894 Switch | Label | Value
28162895 -------|-------|-------
@@ -2823,30 +2902,30 @@ These values are: · 6 unmodified lines
28232902 7 | ID6 | 64
28242903 8 | ID7 | 128
28252904
2826−Some Examples:
2905+Some Examples::
28272906
2828− Switch | Hex | Decimal
2907+ Switch | Hex | Decimal
28292908 8 7 6 5 4 3 2 1 | Node ID | Node ID
28302909 ----------------|---------|---------
28312910 0 0 0 0 0 0 0 0 | not allowed
2832− 0 0 0 0 0 0 0 1 | 1 | 1
2911+ 0 0 0 0 0 0 0 1 | 1 | 1
28332912 0 0 0 0 0 0 1 0 | 2 | 2
28342913 0 0 0 0 0 0 1 1 | 3 | 3
28352914 . . . | |
28362915 0 1 0 1 0 1 0 1 | 55 | 85
28372916 . . . | |
28382917 1 0 1 0 1 0 1 0 | AA | 170
2839− . . . | |
2918+ . . . | |
28402919 1 1 1 1 1 1 0 1 | FD | 253
28412920 1 1 1 1 1 1 1 0 | FE | 254
28422921 1 1 1 1 1 1 1 1 | FF | 255
28432922
28442923
28452924 Setting the I/O Base Address
2846−----------------------------
2925+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
28472926
28482927 The last three switches in switch block SW1 are used to select one
2849−of eight possible I/O Base addresses using the following table
2928+of eight possible I/O Base addresses using the following table::
28502929
28512930
28522931 Switch | Hex I/O
@@ -2863,13 +2942,16 @@ of eight possible I/O Base addresses using the following table · 10 unmodified lines
28632942
28642943
28652944 Setting the Base Memory (RAM) buffer Address
2866−--------------------------------------------
2945+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
28672946
2868−The memory buffer (RAM) requires 2K. The base of this buffer can be
2947+The memory buffer (RAM) requires 2K. The base of this buffer can be
28692948 located in any of eight positions. The address of the Boot Prom is
28702949 memory base + 0x2000.
2950+
28712951 Jumpers 3-5 of jumper block SW1 select the Memory Base address.
28722952
2953+::
2954+
28732955 Switch | Hex RAM | Hex ROM
28742956 1 2 3 4 5 | Address | Address *)
28752957 --------------------|---------|-----------
@@ -2881,15 +2963,15 @@ Jumpers 3-5 of jumper block SW1 select the Memory Base address. · 5 unmodified lines
28812963 ON ON OFF ON OFF | D8000 | DA000
28822964 ON ON ON OFF OFF | DC000 | DE000
28832965 ON ON OFF OFF OFF | E0000 | E2000
2884−
2885−*) To enable the Boot ROM set the jumper 8 of jumper block SW3 to position ON.
2966+
2967+ *) To enable the Boot ROM set the jumper 8 of jumper block SW3 to position ON.
28862968
28872969 The jumpers 1 and 2 probably add 0x0800, 0x1000 and 0x1800 to RAM adders.
28882970
28892971 Setting the Interrupt Line
2890−--------------------------
2972+^^^^^^^^^^^^^^^^^^^^^^^^^^
28912973
2892−Jumpers 1-5 of the jumper block SW3 control the IRQ level.
2974+Jumpers 1-5 of the jumper block SW3 control the IRQ level::
28932975
28942976 Jumper | IRQ
28952977 1 2 3 4 5 |
@@ -2902,23 +2984,24 @@ Jumpers 1-5 of the jumper block SW3 control the IRQ level. · 6 unmodified lines
29022984
29032985
29042986 Setting the Timeout Parameters
2905−------------------------------
2987+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
29062988
2907−The jumpers 6-7 of the jumper block SW3 are used to determine the timeout
2989+The jumpers 6-7 of the jumper block SW3 are used to determine the timeout
29082990 parameters. These two jumpers are normally left in the OFF position.
29092991
29102992
2911−*****************************************************************************
29122993
2913−** No Name **
29142994 (Generic Model 9058)
29152995 --------------------
29162996 - from Andrew J. Kroll <ag784@freenet.buffalo.edu>
29172997 - Sorry this sat in my to-do box for so long, Andrew! (yikes - over a
29182998 year!)
2919− _____
2920− | <
2921− | .---'
2999+
3000+::
3001+
3002+ _____
3003+ | <
3004+ | .---'
29223005 ________________________________________________________________ | |
29233006 | | SW2 | | |
29243007 | ___________ |_____________| | |
@@ -2936,7 +3019,7 @@ parameters. These two jumpers are normally left in the OFF position. · 11 unmodified lines
29363019 | |________________| | | : B |- | |
29373020 | 1 2 3 4 5 6 7 8 | | : O |- | |
29383021 | |_________o____|..../ A |- _______| |
2939− | ____________________ | R |- | |------,
3022+ | ____________________ | R |- | |------,
29403023 | | | | D |- | BNC | # |
29413024 | > 2764 PROM SOCKET | |__________|- |_______|------'
29423025 | |____________________| _________ | |
@@ -2945,23 +3028,24 @@ parameters. These two jumpers are normally left in the OFF position. · 2 unmodified lines
29453028 |___ ______________| |
29463029 |H H H H H H H H H H H H H H H H H H H H H H H| | |
29473030 |U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U| | |
2948− \|
2949−Legend:
3031+ \|
3032+
3033+Legend::
29503034
2951−SL90C65 ARCNET Controller / Transceiver /Logic
2952−SW1 1-5: IRQ Select
3035+ SL90C65 ARCNET Controller / Transceiver /Logic
3036+ SW1 1-5: IRQ Select
29533037 6: ET1
29543038 7: ET2
2955− 8: ROM ENABLE
2956−SW2 1-3: Memory Buffer/PROM Address
3039+ 8: ROM ENABLE
3040+ SW2 1-3: Memory Buffer/PROM Address
29573041 3-6: I/O Address Map
2958−SW3 1-8: Node ID Select
2959−BNC BNC RG62/U Connection
3042+ SW3 1-8: Node ID Select
3043+ BNC BNC RG62/U Connection
29603044 *I* have had success using RG59B/U with *NO* terminators!
29613045 What gives?!
29623046
29633047 SW1: Timeouts, Interrupt and ROM
2964−---------------------------------
3048+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
29653049
29663050 To select a hardware interrupt level set one (only one!) of the dip switches
29673051 up (on) SW1...(switches 1-5)
@@ -2976,10 +3060,10 @@ are normally left off (down). · 8 unmodified lines
29763060
29773061
29783062 Setting the I/O Base Address
2979−----------------------------
3063+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
29803064
29813065 The last three switches in switch group SW2 are used to select one
2982−of eight possible I/O Base addresses using the following table
3066+of eight possible I/O Base addresses using the following table::
29833067
29843068
29853069 Switch | Hex I/O
@@ -2996,7 +3080,7 @@ of eight possible I/O Base addresses using the following table · 10 unmodified lines
29963080
29973081
29983082 Setting the Base Memory Address (RAM & ROM)
2999−-------------------------------------------
3083+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
30003084
30013085 The memory buffer requires 2K of a 16K block of RAM. The base of this
30023086 16K block can be located in any of eight positions.
@@ -3004,13 +3088,16 @@ Switches 1-3 of switch group SW2 select the Base of the 16K block. · 1 unmodified line
30043088 (0 = DOWN, 1 = UP)
30053089 I could, however, only verify two settings...
30063090
3091+
3092+::
3093+
30073094 Switch| Hex RAM | Hex ROM
30083095 1 2 3 | Address | Address
30093096 ------|---------|-----------
30103097 0 0 0 | E0000 | E2000
30113098 0 0 1 | D0000 | D2000 (Manufacturer's default)
30123099 0 1 0 | ????? | ?????
3013− 0 1 1 | ????? | ?????
3100+ 0 1 1 | ????? | ?????
30143101 1 0 0 | ????? | ?????
30153102 1 0 1 | ????? | ?????
30163103 1 1 0 | ????? | ?????
@@ -3018,7 +3105,7 @@ I could, however, only verify two settings... · 1 unmodified line
30183105
30193106
30203107 Setting the Node ID
3021−-------------------
3108+^^^^^^^^^^^^^^^^^^^
30223109
30233110 The eight switches in group SW3 are used to set the node ID.
30243111 Each node attached to the network must have an unique node ID which
@@ -3026,8 +3113,9 @@ must be different from 0. · 1 unmodified line
30263113 Switch 1 serves as the least significant bit (LSB).
30273114 switches in the DOWN position are OFF (0) and in the UP position are ON (1)
30283115
3029−The node ID is the sum of the values of all switches set to "1"
3030−These values are:
3116+The node ID is the sum of the values of all switches set to "1"
3117+These values are::
3118+
30313119 Switch | Value
30323120 -------|-------
30333121 1 | 1
@@ -3039,70 +3127,80 @@ These values are: · 5 unmodified lines
30393127 7 | 64
30403128 8 | 128
30413129
3042−Some Examples:
3043−
3044− Switch# | Hex | Decimal
3045−8 7 6 5 4 3 2 1 | Node ID | Node ID
3046−----------------|---------|---------
3047−0 0 0 0 0 0 0 0 | not allowed <-.
3048−0 0 0 0 0 0 0 1 | 1 | 1 |
3049−0 0 0 0 0 0 1 0 | 2 | 2 |
3050−0 0 0 0 0 0 1 1 | 3 | 3 |
3051− . . . | | |
3052−0 1 0 1 0 1 0 1 | 55 | 85 |
3053− . . . | | + Don't use 0 or 255!
3054−1 0 1 0 1 0 1 0 | AA | 170 |
3055− . . . | | |
3056−1 1 1 1 1 1 0 1 | FD | 253 |
3057−1 1 1 1 1 1 1 0 | FE | 254 |
3058−1 1 1 1 1 1 1 1 | FF | 255 <-'
3059−
3130+Some Examples::
30603131
3061−*****************************************************************************
3132+ Switch# | Hex | Decimal
3133+ 8 7 6 5 4 3 2 1 | Node ID | Node ID
3134+ ----------------|---------|---------
3135+ 0 0 0 0 0 0 0 0 | not allowed <-.
3136+ 0 0 0 0 0 0 0 1 | 1 | 1 |
3137+ 0 0 0 0 0 0 1 0 | 2 | 2 |
3138+ 0 0 0 0 0 0 1 1 | 3 | 3 |
3139+ . . . | | |
3140+ 0 1 0 1 0 1 0 1 | 55 | 85 |
3141+ . . . | | + Don't use 0 or 255!
3142+ 1 0 1 0 1 0 1 0 | AA | 170 |
3143+ . . . | | |
3144+ 1 1 1 1 1 1 0 1 | FD | 253 |
3145+ 1 1 1 1 1 1 1 0 | FE | 254 |
3146+ 1 1 1 1 1 1 1 1 | FF | 255 <-'
3147+
3148+
3149+Tiara
3150+=====
30623151
3063−** Tiara **
30643152 (model unknown)
3065−-------------------------
3153+---------------
3154+
30663155 - from Christoph Lameter <christoph@lameter.com>
3067−
3068−
3069−Here is information about my card as far as I could figure it out:
3070−----------------------------------------------- tiara
3071−Tiara LanCard of Tiara Computer Systems.
3072−
3073−+----------------------------------------------+
3074−! ! Transmitter Unit ! !
3075−! +------------------+ -------
3076−! MEM Coax Connector
3077−! ROM 7654321 <- I/O -------
3078−! : : +--------+ !
3079−! : : ! 90C66LJ! +++
3080−! : : ! ! !D Switch to set
3081−! : : ! ! !I the Nodenumber
3082−! : : +--------+ !P
3083−! !++
3084−! 234567 <- IRQ !
3085−+------------!!!!!!!!!!!!!!!!!!!!!!!!--------+
3086− !!!!!!!!!!!!!!!!!!!!!!!!
3087−
3088−0 = Jumper Installed
3089−1 = Open
3156+
3157+
3158+Here is information about my card as far as I could figure it out::
3159+
3160+
3161+ ----------------------------------------------- tiara
3162+ Tiara LanCard of Tiara Computer Systems.
3163+
3164+ +----------------------------------------------+
3165+ ! ! Transmitter Unit ! !
3166+ ! +------------------+ -------
3167+ ! MEM Coax Connector
3168+ ! ROM 7654321 <- I/O -------
3169+ ! : : +--------+ !
3170+ ! : : ! 90C66LJ! +++
3171+ ! : : ! ! !D Switch to set
3172+ ! : : ! ! !I the Nodenumber
3173+ ! : : +--------+ !P
3174+ ! !++
3175+ ! 234567 <- IRQ !
3176+ +------------!!!!!!!!!!!!!!!!!!!!!!!!--------+
3177+ !!!!!!!!!!!!!!!!!!!!!!!!
3178+
3179+- 0 = Jumper Installed
3180+- 1 = Open
30903181
30913182 Top Jumper line Bit 7 = ROM Enable 654=Memory location 321=I/O
30923183
30933184 Settings for Memory Location (Top Jumper Line)
3185+
3186+=== ================
30943187 456 Address selected
3188+=== ================
30953189 000 C0000
30963190 001 C4000
30973191 010 CC000
30983192 011 D0000
30993193 100 D4000
31003194 101 D8000
3101−110 DC000
3195+110 DC000
31023196 111 E0000
3197+=== ================
31033198
31043199 Settings for I/O Address (Top Jumper Line)
3200+
3201+=== ====
31053202 123 Port
3203+=== ====
31063204 000 260
31073205 001 290
31083206 010 2E0
@@ -3111,23 +3209,26 @@ Settings for I/O Address (Top Jumper Line) · 2 unmodified lines
31113209 101 350
31123210 110 380
31133211 111 3E0
3212+=== ====
31143213
31153214 Settings for IRQ Selection (Lower Jumper Line)
3215+
3216+====== =====
31163217 234567
3218+====== =====
31173219 011111 IRQ 2
31183220 101111 IRQ 3
31193221 110111 IRQ 4
31203222 111011 IRQ 5
31213223 111110 IRQ 7
3122−
3123−*****************************************************************************
3124−
3224+====== =====
31253225
31263226 Other Cards
3127−-----------
3227+===========
31283228
31293229 I have no information on other models of ARCnet cards at the moment. Please
31303230 send any and all info to:
3231+
31313232 apenwarr@worldvisions.ca
31323233
31333234 Thanks.
Documentation/networking/arcnet.rstrenamed from Documentation/networking/arcnet.txt+193−155
@@ -1,11 +1,18 @@
1−----------------------------------------------------------------------------
2−NOTE: See also arcnet-hardware.txt in this directory for jumper-setting
3−and cabling information if you're like many of us and didn't happen to get a
4−manual with your ARCnet card.
5−----------------------------------------------------------------------------
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+======
4+ARCnet
5+======
6+
7+.. note::
8+
9+ See also arcnet-hardware.txt in this directory for jumper-setting
10+ and cabling information if you're like many of us and didn't happen to get a
11+ manual with your ARCnet card.
612
713 Since no one seems to listen to me otherwise, perhaps a poem will get your
8−attention:
14+attention::
15+
916 This driver's getting fat and beefy,
1017 But my cat is still named Fifi.
1118
@@ -24,28 +31,21 @@ Come on, be a sport! Send me a success report! · 12 unmodified lines
2431 (hey, that was even better than my original poem... this is getting bad!)
2532
2633
27−--------
28−WARNING:
29−--------
30−
31−If you don't e-mail me about your success/failure soon, I may be forced to
32−start SINGING. And we don't want that, do we?
34+.. warning::
3335
34−(You know, it might be argued that I'm pushing this point a little too much.
35−If you think so, why not flame me in a quick little e-mail? Please also
36−include the type of card(s) you're using, software, size of network, and
37−whether it's working or not.)
36+ If you don't e-mail me about your success/failure soon, I may be forced to
37+ start SINGING. And we don't want that, do we?
3838
39−My e-mail address is: apenwarr@worldvisions.ca
39+ (You know, it might be argued that I'm pushing this point a little too much.
40+ If you think so, why not flame me in a quick little e-mail? Please also
41+ include the type of card(s) you're using, software, size of network, and
42+ whether it's working or not.)
4043
44+ My e-mail address is: apenwarr@worldvisions.ca
4145
42−---------------------------------------------------------------------------
43−
44−
4546 These are the ARCnet drivers for Linux.
4647
47−
48−This new release (2.91) has been put together by David Woodhouse
48+This new release (2.91) has been put together by David Woodhouse
4949 <dwmw2@infradead.org>, in an attempt to tidy up the driver after adding support
5050 for yet another chipset. Now the generic support has been separated from the
5151 individual chipset drivers, and the source files aren't quite so packed with
@@ -62,12 +62,13 @@ included and seems to be working fine! · 10 unmodified lines
6262 Where do I discuss these drivers?
6363 ---------------------------------
6464
65−Tomasz has been so kind as to set up a new and improved mailing list.
65+Tomasz has been so kind as to set up a new and improved mailing list.
6666 Subscribe by sending a message with the BODY "subscribe linux-arcnet YOUR
6767 REAL NAME" to listserv@tichy.ch.uj.edu.pl. Then, to submit messages to the
6868 list, mail to linux-arcnet@tichy.ch.uj.edu.pl.
6969
7070 There are archives of the mailing list at:
71+
7172 http://epistolary.org/mailman/listinfo.cgi/arcnet
7273
7374 The people on linux-net@vger.kernel.org (now defunct, replaced by
@@ -80,17 +81,20 @@ Other Drivers and Info · 6 unmodified lines
8081 ----------------------
8182
8283 You can try my ARCNET page on the World Wide Web at:
83− http://www.qis.net/~jschmitz/arcnet/
84+
85+ http://www.qis.net/~jschmitz/arcnet/
8486
8587 Also, SMC (one of the companies that makes ARCnet cards) has a WWW site you
8688 might be interested in, which includes several drivers for various cards
8789 including ARCnet. Try:
90+
8891 http://www.smc.com/
89−
92+
9093 Performance Technologies makes various network software that supports
9194 ARCnet:
95+
9296 http://www.perftech.com/ or ftp to ftp.perftech.com.
93−
97+
9498 Novell makes a networking stack for DOS which includes ARCnet drivers. Try
9599 FTPing to ftp.novell.com.
96100
@@ -99,19 +103,20 @@ one you'll want to use with ARCnet cards) from · 2 unmodified lines
99103 oak.oakland.edu:/simtel/msdos/pktdrvr. It won't work perfectly on a 386+
100104 without patches, though, and also doesn't like several cards. Fixed
101105 versions are available on my WWW page, or via e-mail if you don't have WWW
102−access.
106+access.
103107
104108
105109 Installing the Driver
106110 ---------------------
107111
108−All you will need to do in order to install the driver is:
112+All you will need to do in order to install the driver is::
113+
109114 make config
110− (be sure to choose ARCnet in the network devices
115+ (be sure to choose ARCnet in the network devices
111116 and at least one chipset driver.)
112117 make clean
113118 make zImage
114−
119+
115120 If you obtained this ARCnet package as an upgrade to the ARCnet driver in
116121 your current kernel, you will need to first copy arcnet.c over the one in
117122 the linux/drivers/net directory.
@@ -125,10 +130,12 @@ There are four chipset options: · 7 unmodified lines
125130
126131 This is the normal ARCnet card, which you've probably got. This is the only
127132 chipset driver which will autoprobe if not told where the card is.
128−It following options on the command line:
133+It following options on the command line::
134+
129135 com90xx=[<io>[,<irq>[,<shmem>]]][,<name>] | <name>
130136
131−If you load the chipset support as a module, the options are:
137+If you load the chipset support as a module, the options are::
138+
132139 io=<io> irq=<irq> shmem=<shmem> device=<name>
133140
134141 To disable the autoprobe, just specify "com90xx=" on the kernel command line.
@@ -136,14 +143,17 @@ To specify the name alone, but allow autoprobe, just put "com90xx=<name>" · 1 unmodified line
136143
137144 2. ARCnet COM20020 chipset.
138145
139−This is the new chipset from SMC with support for promiscuous mode (packet
146+This is the new chipset from SMC with support for promiscuous mode (packet
140147 sniffing), extra diagnostic information, etc. Unfortunately, there is no
141148 sensible method of autoprobing for these cards. You must specify the I/O
142149 address on the kernel command line.
143−The command line options are:
150+
151+The command line options are::
152+
144153 com20020=<io>[,<irq>[,<node_ID>[,backplane[,CKP[,timeout]]]]][,name]
145154
146−If you load the chipset support as a module, the options are:
155+If you load the chipset support as a module, the options are::
156+
147157 io=<io> irq=<irq> node=<node_ID> backplane=<backplane> clock=<CKP>
148158 timeout=<timeout> device=<name>
149159
@@ -160,8 +170,10 @@ you have a card which doesn't support shared memory, or (strangely) in case · 10 unmodified lines
160170 you have so many ARCnet cards in your machine that you run out of shmem slots.
161171 If you don't give the IO address on the kernel command line, then the driver
162172 will not find the card.
163−The command line options are:
164− com90io=<io>[,<irq>][,<name>]
173+
174+The command line options are::
175+
176+ com90io=<io>[,<irq>][,<name>]
165177
166178 If you load the chipset support as a module, the options are:
167179 io=<io> irq=<irq> device=<name>
@@ -169,44 +181,49 @@ If you load the chipset support as a module, the options are: · 1 unmodified line
169181 4. ARCnet RIM I cards.
170182
171183 These are COM90xx chips which are _completely_ memory mapped. The support for
172−these is not tested. If you have one, please mail the author with a success
184+these is not tested. If you have one, please mail the author with a success
173185 report. All options must be specified, except the device name.
174−Command line options:
186+Command line options::
187+
175188 arcrimi=<shmem>,<irq>,<node_ID>[,<name>]
176189
177−If you load the chipset support as a module, the options are:
190+If you load the chipset support as a module, the options are::
191+
178192 shmem=<shmem> irq=<irq> node=<node_ID> device=<name>
179193
180194
181195 Loadable Module Support
182196 -----------------------
183197
184−Configure and rebuild Linux. When asked, answer 'm' to "Generic ARCnet
198+Configure and rebuild Linux. When asked, answer 'm' to "Generic ARCnet
185199 support" and to support for your ARCnet chipset if you want to use the
186−loadable module. You can also say 'y' to "Generic ARCnet support" and 'm'
200+loadable module. You can also say 'y' to "Generic ARCnet support" and 'm'
187201 to the chipset support if you wish.
188202
203+::
204+
189205 make config
190− make clean
206+ make clean
191207 make zImage
192208 make modules
193−
209+
194210 If you're using a loadable module, you need to use insmod to load it, and
195211 you can specify various characteristics of your card on the command
196212 line. (In recent versions of the driver, autoprobing is much more reliable
197213 and works as a module, so most of this is now unnecessary.)
198214
199−For example:
215+For example::
216+
200217 cd /usr/src/linux/modules
201218 insmod arcnet.o
202219 insmod com90xx.o
203220 insmod com20020.o io=0x2e0 device=eth1
204−
221+
205222
206223 Using the Driver
207224 ----------------
208225
209−If you build your kernel with ARCnet COM90xx support included, it should
226+If you build your kernel with ARCnet COM90xx support included, it should
210227 probe for your card automatically when you boot. If you use a different
211228 chipset driver complied into the kernel, you must give the necessary options
212229 on the kernel command line, as detailed above.
@@ -224,69 +241,78 @@ Multiple Cards in One Computer · 11 unmodified lines
224241 ------------------------------
225242
226243 Linux has pretty good support for this now, but since I've been busy, the
227−ARCnet driver has somewhat suffered in this respect. COM90xx support, if
228−compiled into the kernel, will (try to) autodetect all the installed cards.
244+ARCnet driver has somewhat suffered in this respect. COM90xx support, if
245+compiled into the kernel, will (try to) autodetect all the installed cards.
246+
247+If you have other cards, with support compiled into the kernel, then you can
248+just repeat the options on the kernel command line, e.g.::
249+
250+ LILO: linux com20020=0x2e0 com20020=0x380 com90io=0x260
229251
230−If you have other cards, with support compiled into the kernel, then you can
231−just repeat the options on the kernel command line, e.g.:
232−LILO: linux com20020=0x2e0 com20020=0x380 com90io=0x260
252+If you have the chipset support built as a loadable module, then you need to
253+do something like this::
233254
234−If you have the chipset support built as a loadable module, then you need to
235−do something like this:
236255 insmod -o arc0 com90xx
237256 insmod -o arc1 com20020 io=0x2e0
238257 insmod -o arc2 com90xx
258+
239259 The ARCnet drivers will now sort out their names automatically.
240260
241261
242262 How do I get it to work with...?
243263 --------------------------------
244264
245−NFS: Should be fine linux->linux, just pretend you're using Ethernet cards.
246− oak.oakland.edu:/simtel/msdos/nfs has some nice DOS clients. There
247− is also a DOS-based NFS server called SOSS. It doesn't multitask
248− quite the way Linux does (actually, it doesn't multitask AT ALL) but
249− you never know what you might need.
250−
251− With AmiTCP (and possibly others), you may need to set the following
252− options in your Amiga nfstab: MD 1024 MR 1024 MW 1024
253− (Thanks to Christian Gottschling <ferksy@indigo.tng.oche.de>
265+NFS:
266+ Should be fine linux->linux, just pretend you're using Ethernet cards.
267+ oak.oakland.edu:/simtel/msdos/nfs has some nice DOS clients. There
268+ is also a DOS-based NFS server called SOSS. It doesn't multitask
269+ quite the way Linux does (actually, it doesn't multitask AT ALL) but
270+ you never know what you might need.
271+
272+ With AmiTCP (and possibly others), you may need to set the following
273+ options in your Amiga nfstab: MD 1024 MR 1024 MW 1024
274+ (Thanks to Christian Gottschling <ferksy@indigo.tng.oche.de>
254275 for this.)
255−
276+
256277 Probably these refer to maximum NFS data/read/write block sizes. I
257278 don't know why the defaults on the Amiga didn't work; write to me if
258279 you know more.
259280
260−DOS: If you're using the freeware arcether.com, you might want to install
261− the driver patch from my web page. It helps with PC/TCP, and also
262− can get arcether to load if it timed out too quickly during
263− initialization. In fact, if you use it on a 386+ you REALLY need
264− the patch, really.
265−
266−Windows: See DOS :) Trumpet Winsock works fine with either the Novell or
281+DOS:
282+ If you're using the freeware arcether.com, you might want to install
283+ the driver patch from my web page. It helps with PC/TCP, and also
284+ can get arcether to load if it timed out too quickly during
285+ initialization. In fact, if you use it on a 386+ you REALLY need
286+ the patch, really.
287+
288+Windows:
289+ See DOS :) Trumpet Winsock works fine with either the Novell or
267290 Arcether client, assuming you remember to load winpkt of course.
268291
269−LAN Manager and Windows for Workgroups: These programs use protocols that
270− are incompatible with the Internet standard. They try to pretend
271− the cards are Ethernet, and confuse everyone else on the network.
272−
273− However, v2.00 and higher of the Linux ARCnet driver supports this
274− protocol via the 'arc0e' device. See the section on "Multiprotocol
275− Support" for more information.
292+LAN Manager and Windows for Workgroups:
293+ These programs use protocols that
294+ are incompatible with the Internet standard. They try to pretend
295+ the cards are Ethernet, and confuse everyone else on the network.
296+
297+ However, v2.00 and higher of the Linux ARCnet driver supports this
298+ protocol via the 'arc0e' device. See the section on "Multiprotocol
299+ Support" for more information.
276300
277301 Using the freeware Samba server and clients for Linux, you can now
278302 interface quite nicely with TCP/IP-based WfWg or Lan Manager
279303 networks.
280−
281−Windows 95: Tools are included with Win95 that let you use either the LANMAN
304+
305+Windows 95:
306+ Tools are included with Win95 that let you use either the LANMAN
282307 style network drivers (NDIS) or Novell drivers (ODI) to handle your
283308 ARCnet packets. If you use ODI, you'll need to use the 'arc0'
284− device with Linux. If you use NDIS, then try the 'arc0e' device.
309+ device with Linux. If you use NDIS, then try the 'arc0e' device.
285310 See the "Multiprotocol Support" section below if you need arc0e,
286311 you're completely insane, and/or you need to build some kind of
287312 hybrid network that uses both encapsulation types.
288313
289−OS/2: I've been told it works under Warp Connect with an ARCnet driver from
314+OS/2:
315+ I've been told it works under Warp Connect with an ARCnet driver from
290316 SMC. You need to use the 'arc0e' interface for this. If you get
291317 the SMC driver to work with the TCP/IP stuff included in the
292318 "normal" Warp Bonus Pack, let me know.
@@ -295,7 +321,8 @@ OS/2: I've been told it works under Warp Connect with an ARCnet driver from · 2 unmodified lines
295321 which should use the same protocol as WfWg does. I had no luck
296322 installing it under Warp, however. Please mail me with any results.
297323
298−NetBSD/AmiTCP: These use an old version of the Internet standard ARCnet
324+NetBSD/AmiTCP:
325+ These use an old version of the Internet standard ARCnet
299326 protocol (RFC1051) which is compatible with the Linux driver v2.10
300327 ALPHA and above using the arc0s device. (See "Multiprotocol ARCnet"
301328 below.) ** Newer versions of NetBSD apparently support RFC1201.
@@ -307,16 +334,17 @@ Using Multiprotocol ARCnet · 5 unmodified lines
307334 The ARCnet driver v2.10 ALPHA supports three protocols, each on its own
308335 "virtual network device":
309336
310− arc0 - RFC1201 protocol, the official Internet standard which just
311− happens to be 100% compatible with Novell's TRXNET driver.
337+ ====== ===============================================================
338+ arc0 RFC1201 protocol, the official Internet standard which just
339+ happens to be 100% compatible with Novell's TRXNET driver.
312340 Version 1.00 of the ARCnet driver supported _only_ this
313341 protocol. arc0 is the fastest of the three protocols (for
314342 whatever reason), and allows larger packets to be used
315− because it supports RFC1201 "packet splitting" operations.
343+ because it supports RFC1201 "packet splitting" operations.
316344 Unless you have a specific need to use a different protocol,
317345 I strongly suggest that you stick with this one.
318−
319− arc0e - "Ethernet-Encapsulation" which sends packets over ARCnet
346+
347+ arc0e "Ethernet-Encapsulation" which sends packets over ARCnet
320348 that are actually a lot like Ethernet packets, including the
321349 6-byte hardware addresses. This protocol is compatible with
322350 Microsoft's NDIS ARCnet driver, like the one in WfWg and
@@ -328,8 +356,8 @@ The ARCnet driver v2.10 ALPHA supports three protocols, each on its own · 5 unmodified lines
328356 fit. arc0e also works slightly more slowly than arc0, for
329357 reasons yet to be determined. (Probably it's the smaller
330358 MTU that does it.)
331−
332− arc0s - The "[s]imple" RFC1051 protocol is the "previous" Internet
359+
360+ arc0s The "[s]imple" RFC1051 protocol is the "previous" Internet
333361 standard that is completely incompatible with the new
334362 standard. Some software today, however, continues to
335363 support the old standard (and only the old standard)
@@ -338,9 +366,10 @@ The ARCnet driver v2.10 ALPHA supports three protocols, each on its own · 2 unmodified lines
338366 smaller than the Internet "requirement," so it's quite
339367 possible that you may run into problems. It's also slower
340368 than RFC1201 by about 25%, for the same reason as arc0e.
341−
369+
342370 The arc0s support was contributed by Tomasz Motylewski
343371 and modified somewhat by me. Bugs are probably my fault.
372+ ====== ===============================================================
344373
345374 You can choose not to compile arc0e and arc0s into the driver if you want -
346375 this will save you a bit of memory and avoid confusion when eg. trying to
@@ -358,19 +387,21 @@ can set up your network then: · 11 unmodified lines
358387 two available protocols. As mentioned above, it's a good idea to use
359388 only arc0 unless you have a good reason (like some other software, ie.
360389 WfWg, that only works with arc0e).
361−
362− If you need only arc0, then the following commands should get you going:
363− ifconfig arc0 MY.IP.ADD.RESS
364− route add MY.IP.ADD.RESS arc0
365− route add -net SUB.NET.ADD.RESS arc0
366− [add other local routes here]
367−
368− If you need arc0e (and only arc0e), it's a little different:
369− ifconfig arc0 MY.IP.ADD.RESS
370− ifconfig arc0e MY.IP.ADD.RESS
371− route add MY.IP.ADD.RESS arc0e
372− route add -net SUB.NET.ADD.RESS arc0e
373−
390+
391+ If you need only arc0, then the following commands should get you going::
392+
393+ ifconfig arc0 MY.IP.ADD.RESS
394+ route add MY.IP.ADD.RESS arc0
395+ route add -net SUB.NET.ADD.RESS arc0
396+ [add other local routes here]
397+
398+ If you need arc0e (and only arc0e), it's a little different::
399+
400+ ifconfig arc0 MY.IP.ADD.RESS
401+ ifconfig arc0e MY.IP.ADD.RESS
402+ route add MY.IP.ADD.RESS arc0e
403+ route add -net SUB.NET.ADD.RESS arc0e
404+
374405 arc0s works much the same way as arc0e.
375406
376407
@@ -391,29 +422,32 @@ can set up your network then: · 14 unmodified lines
391422 XT (patience), however, does not have its own Internet IP address and so
392423 I assigned it one on a "private subnet" (as defined by RFC1597).
393424
394− To start with, take a simple network with just insight and freedom.
425+ To start with, take a simple network with just insight and freedom.
395426 Insight needs to:
396− - talk to freedom via RFC1201 (arc0) protocol, because I like it
427+
428+ - talk to freedom via RFC1201 (arc0) protocol, because I like it
397429 more and it's faster.
398430 - use freedom as its Internet gateway.
399−
400− That's pretty easy to do. Set up insight like this:
401− ifconfig arc0 insight
402− route add insight arc0
403− route add freedom arc0 /* I would use the subnet here (like I said
431+
432+ That's pretty easy to do. Set up insight like this::
433+
434+ ifconfig arc0 insight
435+ route add insight arc0
436+ route add freedom arc0 /* I would use the subnet here (like I said
404437 to to in "single protocol" above),
405− but the rest of the subnet
406− unfortunately lies across the PPP
407− link on freedom, which confuses
408− things. */
409− route add default gw freedom
410−
411− And freedom gets configured like so:
412− ifconfig arc0 freedom
413− route add freedom arc0
414− route add insight arc0
415− /* and default gateway is configured by pppd */
416−
438+ but the rest of the subnet
439+ unfortunately lies across the PPP
440+ link on freedom, which confuses
441+ things. */
442+ route add default gw freedom
443+
444+ And freedom gets configured like so::
445+
446+ ifconfig arc0 freedom
447+ route add freedom arc0
448+ route add insight arc0
449+ /* and default gateway is configured by pppd */
450+
417451 Great, now insight talks to freedom directly on arc0, and sends packets
418452 to the Internet through freedom. If you didn't know how to do the above,
419453 you should probably stop reading this section now because it only gets
@@ -425,7 +459,7 @@ can set up your network then: · 5 unmodified lines
425459 Internet. (Recall that patience has a "private IP address" which won't
426460 work on the Internet; that's okay, I configured Linux IP masquerading on
427461 freedom for this subnet).
428−
462+
429463 So patience (necessarily; I don't have another IP number from my
430464 provider) has an IP address on a different subnet than freedom and
431465 insight, but needs to use freedom as an Internet gateway. Worse, most
@@ -435,53 +469,54 @@ can set up your network then: · 3 unmodified lines
435469 insight, patience WILL send through its default gateway, regardless of
436470 the fact that both freedom and insight (courtesy of the arc0e device)
437471 could understand a direct transmission.
438−
439− I compensate by giving freedom an extra IP address - aliased 'gatekeeper'
440− - that is on my private subnet, the same subnet that patience is on. I
472+
473+ I compensate by giving freedom an extra IP address - aliased 'gatekeeper' -
474+ that is on my private subnet, the same subnet that patience is on. I
441475 then define gatekeeper to be the default gateway for patience.
442−
443− To configure freedom (in addition to the commands above):
444− ifconfig arc0e gatekeeper
445− route add gatekeeper arc0e
446− route add patience arc0e
447−
476+
477+ To configure freedom (in addition to the commands above)::
478+
479+ ifconfig arc0e gatekeeper
480+ route add gatekeeper arc0e
481+ route add patience arc0e
482+
448483 This way, freedom will send all packets for patience through arc0e,
449484 giving its IP address as gatekeeper (on the private subnet). When it
450485 talks to insight or the Internet, it will use its "freedom" Internet IP
451486 address.
452−
453− You will notice that we haven't configured the arc0e device on insight.
487+
488+ You will notice that we haven't configured the arc0e device on insight.
454489 This would work, but is not really necessary, and would require me to
455490 assign insight another special IP number from my private subnet. Since
456491 both insight and patience are using freedom as their default gateway, the
457492 two can already talk to each other.
458−
493+
459494 It's quite fortunate that I set things up like this the first time (cough
460495 cough) because it's really handy when I boot insight into DOS. There, it
461− runs the Novell ODI protocol stack, which only works with RFC1201 ARCnet.
496+ runs the Novell ODI protocol stack, which only works with RFC1201 ARCnet.
462497 In this mode it would be impossible for insight to communicate directly
463498 with patience, since the Novell stack is incompatible with Microsoft's
464499 Ethernet-Encap. Without changing any settings on freedom or patience, I
465500 simply set freedom as the default gateway for insight (now in DOS,
466501 remember) and all the forwarding happens "automagically" between the two
467502 hosts that would normally not be able to communicate at all.
468−
503+
469504 For those who like diagrams, I have created two "virtual subnets" on the
470− same physical ARCnet wire. You can picture it like this:
471−
472−
473− [RFC1201 NETWORK] [ETHER-ENCAP NETWORK]
505+ same physical ARCnet wire. You can picture it like this::
506+
507+
508+ [RFC1201 NETWORK] [ETHER-ENCAP NETWORK]
474509 (registered Internet subnet) (RFC1597 private subnet)
475−
476− (IP Masquerade)
477− /---------------\ * /---------------\
478− | | * | |
479− | +-Freedom-*-Gatekeeper-+ |
480− | | | * | |
481− \-------+-------/ | * \-------+-------/
482− | | |
483− Insight | Patience
484− (Internet)
510+
511+ (IP Masquerade)
512+ /---------------\ * /---------------\
513+ | | * | |
514+ | +-Freedom-*-Gatekeeper-+ |
515+ | | | * | |
516+ \-------+-------/ | * \-------+-------/
517+ | | |
518+ Insight | Patience
519+ (Internet)
485520
486521
487522
@@ -491,6 +526,7 @@ It works: what now? · 3 unmodified lines
491526 Send mail describing your setup, preferably including driver version, kernel
492527 version, ARCnet card model, CPU type, number of systems on your network, and
493528 list of software in use to me at the following address:
529+
494530 apenwarr@worldvisions.ca
495531
496532 I do send (sometimes automated) replies to all messages I receive. My email
@@ -525,7 +561,7 @@ this, you should grab the pertinent RFCs. (some are listed near the top of · 28 unmodified lines
525561 arcnet.c). arcdump assumes your card is at 0xD0000. If it isn't, edit the
526562 script.
527563
528−Buffers 0 and 1 are used for receiving, and Buffers 2 and 3 are for sending.
564+Buffers 0 and 1 are used for receiving, and Buffers 2 and 3 are for sending.
529565 Ping-pong buffers are implemented both ways.
530566
531567 If your debug level includes D_DURING and you did NOT define SLOW_XMIT_COPY,
@@ -535,9 +571,11 @@ decides that the driver is broken). During a transmit, unused parts of the · 3 unmodified lines
535571 buffer will be cleared to 0x42 as well. This is to make it easier to figure
536572 out which bytes are being used by a packet.
537573
538−You can change the debug level without recompiling the kernel by typing:
574+You can change the debug level without recompiling the kernel by typing::
575+
539576 ifconfig arc0 down metric 1xxx
540577 /etc/rc.d/rc.inet1
578+
541579 where "xxx" is the debug level you want. For example, "metric 1015" would put
542580 you at debug level 15. Debug level 7 is currently the default.
543581
@@ -546,7 +584,7 @@ combination of different debug flags; so debug level 7 is really 1+2+4 or · 2 unmodified lines
546584 D_NORMAL+D_EXTRA+D_INIT. To include D_DURING, you would add 16 to this,
547585 resulting in debug level 23.
548586
549−If you don't understand that, you probably don't want to know anyway.
587+If you don't understand that, you probably don't want to know anyway.
550588 E-mail me about your problem.
551589
552590
Documentation/networking/atm.rstrenamed from Documentation/networking/atm.txt+6−0
@@ -1,3 +1,9 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+===
4+ATM
5+===
6+
17 In order to use anything but the most primitive functions of ATM,
28 several user-mode programs are required to assist the kernel. These
39 programs and related material can be found via the ATM on Linux Web
Documentation/networking/ax25.rstrenamed from Documentation/networking/ax25.txt+6−0
@@ -1,3 +1,9 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+=====
4+AX.25
5+=====
6+
17 To use the amateur radio protocols within Linux you will need to get a
28 suitable copy of the AX.25 Utilities. More detailed information about
39 AX.25, NET/ROM and ROSE, associated programs and and utilities can be
Documentation/networking/baycom.rstrenamed from Documentation/networking/baycom.txt+68−52
@@ -1,26 +1,31 @@
1− LINUX DRIVERS FOR BAYCOM MODEMS
1+.. SPDX-License-Identifier: GPL-2.0
22
3− Thomas M. Sailer, HB9JNX/AE4WA, <sailer@ife.ee.ethz.ch>
3+===============================
4+Linux Drivers for Baycom Modems
5+===============================
46
5−!!NEW!! (04/98) The drivers for the baycom modems have been split into
7+Thomas M. Sailer, HB9JNX/AE4WA, <sailer@ife.ee.ethz.ch>
8+
9+The drivers for the baycom modems have been split into
610 separate drivers as they did not share any code, and the driver
711 and device names have changed.
812
913 This document describes the Linux Kernel Drivers for simple Baycom style
10−amateur radio modems.
14+amateur radio modems.
1115
1216 The following drivers are available:
17+====================================
1318
1419 baycom_ser_fdx:
1520 This driver supports the SER12 modems either full or half duplex.
16− Its baud rate may be changed via the `baud' module parameter,
21+ Its baud rate may be changed via the ``baud`` module parameter,
1722 therefore it supports just about every bit bang modem on a
1823 serial port. Its devices are called bcsf0 through bcsf3.
1924 This is the recommended driver for SER12 type modems,
2025 however if you have a broken UART clone that does not have working
21− delta status bits, you may try baycom_ser_hdx.
26+ delta status bits, you may try baycom_ser_hdx.
2227
23−baycom_ser_hdx:
28+baycom_ser_hdx:
2429 This is an alternative driver for SER12 type modems.
2530 It only supports half duplex, and only 1200 baud. Its devices
2631 are called bcsh0 through bcsh3. Use this driver only if baycom_ser_fdx
@@ -37,45 +42,48 @@ baycom_epp: · 10 unmodified lines
3742
3843 The following modems are supported:
3944
40−ser12: This is a very simple 1200 baud AFSK modem. The modem consists only
41− of a modulator/demodulator chip, usually a TI TCM3105. The computer
42− is responsible for regenerating the receiver bit clock, as well as
43− for handling the HDLC protocol. The modem connects to a serial port,
44− hence the name. Since the serial port is not used as an async serial
45− port, the kernel driver for serial ports cannot be used, and this
46− driver only supports standard serial hardware (8250, 16450, 16550)
47−
48−par96: This is a modem for 9600 baud FSK compatible to the G3RUH standard.
49− The modem does all the filtering and regenerates the receiver clock.
50− Data is transferred from and to the PC via a shift register.
51− The shift register is filled with 16 bits and an interrupt is signalled.
52− The PC then empties the shift register in a burst. This modem connects
53− to the parallel port, hence the name. The modem leaves the
54− implementation of the HDLC protocol and the scrambler polynomial to
55− the PC.
56−
57−picpar: This is a redesign of the par96 modem by Henning Rech, DF9IC. The modem
58− is protocol compatible to par96, but uses only three low power ICs
59− and can therefore be fed from the parallel port and does not require
60− an additional power supply. Furthermore, it incorporates a carrier
61− detect circuitry.
62−
63−EPP: This is a high-speed modem adaptor that connects to an enhanced parallel port.
64− Its target audience is users working over a high speed hub (76.8kbit/s).
65−
66−eppfpga: This is a redesign of the EPP adaptor.
67−
68−
45+======= ========================================================================
46+ser12 This is a very simple 1200 baud AFSK modem. The modem consists only
47+ of a modulator/demodulator chip, usually a TI TCM3105. The computer
48+ is responsible for regenerating the receiver bit clock, as well as
49+ for handling the HDLC protocol. The modem connects to a serial port,
50+ hence the name. Since the serial port is not used as an async serial
51+ port, the kernel driver for serial ports cannot be used, and this
52+ driver only supports standard serial hardware (8250, 16450, 16550)
53+
54+par96 This is a modem for 9600 baud FSK compatible to the G3RUH standard.
55+ The modem does all the filtering and regenerates the receiver clock.
56+ Data is transferred from and to the PC via a shift register.
57+ The shift register is filled with 16 bits and an interrupt is signalled.
58+ The PC then empties the shift register in a burst. This modem connects
59+ to the parallel port, hence the name. The modem leaves the
60+ implementation of the HDLC protocol and the scrambler polynomial to
61+ the PC.
62+
63+picpar This is a redesign of the par96 modem by Henning Rech, DF9IC. The modem
64+ is protocol compatible to par96, but uses only three low power ICs
65+ and can therefore be fed from the parallel port and does not require
66+ an additional power supply. Furthermore, it incorporates a carrier
67+ detect circuitry.
68+
69+EPP This is a high-speed modem adaptor that connects to an enhanced parallel
70+ port.
71+
72+ Its target audience is users working over a high speed hub (76.8kbit/s).
73+
74+eppfpga This is a redesign of the EPP adaptor.
75+======= ========================================================================
6976
7077 All of the above modems only support half duplex communications. However,
7178 the driver supports the KISS (see below) fullduplex command. It then simply
7279 starts to send as soon as there's a packet to transmit and does not care
7380 about DCD, i.e. it starts to send even if there's someone else on the channel.
74−This command is required by some implementations of the DAMA channel
81+This command is required by some implementations of the DAMA channel
7582 access protocol.
7683
7784
7885 The Interface of the drivers
86+============================
7987
8088 Unlike previous drivers, these drivers are no longer character devices,
8189 but they are now true kernel network interfaces. Installation is therefore
@@ -88,20 +96,22 @@ me for WAMPES which allows attaching a kernel network interface directly. · 6 unmodified lines
8896
8997
9098 Configuring the driver
99+======================
91100
92101 Every time a driver is inserted into the kernel, it has to know which
93102 modems it should access at which ports. This can be done with the setbaycom
94103 utility. If you are only using one modem, you can also configure the
95104 driver from the insmod command line (or by means of an option line in
96−/etc/modprobe.d/*.conf).
105+``/etc/modprobe.d/*.conf``).
106+
107+Examples::
97108
98−Examples:
99109 modprobe baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4
100110 sethdlc -i bcsf0 -p mode "ser12*" io 0x3f8 irq 4
101111
102112 Both lines configure the first port to drive a ser12 modem at the first
103−serial port (COM1 under DOS). The * in the mode parameter instructs the driver to use
104−the software DCD algorithm (see below).
113+serial port (COM1 under DOS). The * in the mode parameter instructs the driver
114+to use the software DCD algorithm (see below)::
105115
106116 insmod baycom_par mode="picpar" iobase=0x378
107117 sethdlc -i bcp0 -p mode "picpar" io 0x378
@@ -115,29 +125,33 @@ Note that both utilities interpret the values slightly differently. · 7 unmodified lines
115125
116126
117127 Hardware DCD versus Software DCD
128+================================
118129
119130 To avoid collisions on the air, the driver must know when the channel is
120131 busy. This is the task of the DCD circuitry/software. The driver may either
121132 utilise a software DCD algorithm (options=1) or use a DCD signal from
122133 the hardware (options=0).
123134
124−ser12: if software DCD is utilised, the radio's squelch should always be
125− open. It is highly recommended to use the software DCD algorithm,
126− as it is much faster than most hardware squelch circuitry. The
127− disadvantage is a slightly higher load on the system.
135+======= =================================================================
136+ser12 if software DCD is utilised, the radio's squelch should always be
137+ open. It is highly recommended to use the software DCD algorithm,
138+ as it is much faster than most hardware squelch circuitry. The
139+ disadvantage is a slightly higher load on the system.
128140
129−par96: the software DCD algorithm for this type of modem is rather poor.
130− The modem simply does not provide enough information to implement
131− a reasonable DCD algorithm in software. Therefore, if your radio
132− feeds the DCD input of the PAR96 modem, the use of the hardware
133− DCD circuitry is recommended.
141+par96 the software DCD algorithm for this type of modem is rather poor.
142+ The modem simply does not provide enough information to implement
143+ a reasonable DCD algorithm in software. Therefore, if your radio
144+ feeds the DCD input of the PAR96 modem, the use of the hardware
145+ DCD circuitry is recommended.
134146
135−picpar: the picpar modem features a builtin DCD hardware, which is highly
136− recommended.
147+picpar the picpar modem features a builtin DCD hardware, which is highly
148+ recommended.
149+======= =================================================================
137150
138151
139152
140153 Compatibility with the rest of the Linux kernel
154+===============================================
141155
142156 The serial driver and the baycom serial drivers compete
143157 for the same hardware resources. Of course only one driver can access a given
@@ -154,5 +168,7 @@ The parallel port drivers (baycom_par, baycom_epp) now use the parport subsystem · 10 unmodified lines
154168 to arbitrate the ports between different client drivers.
155169
156170 vy 73s de
171+
157172 Tom Sailer, sailer@ife.ee.ethz.ch
173+
158174 hb9jnx @ hb9w.ampr.org
Documentation/networking/bonding.rstrenamed from Documentation/networking/bonding.txt+685−632
@@ -1,10 +1,15 @@
1+.. SPDX-License-Identifier: GPL-2.0
12
2− Linux Ethernet Bonding Driver HOWTO
3+===================================
4+Linux Ethernet Bonding Driver HOWTO
5+===================================
36
4− Latest update: 27 April 2011
7+Latest update: 27 April 2011
8+
9+Initial release: Thomas Davis <tadavis at lbl.gov>
10+
11+Corrections, HA extensions: 2000/10/03-15:
512
6−Initial release : Thomas Davis <tadavis at lbl.gov>
7−Corrections, HA extensions : 2000/10/03-15 :
813 - Willy Tarreau <willy at meta-x.org>
914 - Constantine Gavrilov <const-g at xpert.com>
1015 - Chad N. Tindel <ctindel at ieee dot org>
@@ -13,98 +18,98 @@ Corrections, HA extensions : 2000/10/03-15 : · 2 unmodified lines
1318
1419 Reorganized and updated Feb 2005 by Jay Vosburgh
1520 Added Sysfs information: 2006/04/24
21+
1622 - Mitch Williams <mitch.a.williams at intel.com>
1723
1824 Introduction
1925 ============
2026
21− The Linux bonding driver provides a method for aggregating
27+The Linux bonding driver provides a method for aggregating
2228 multiple network interfaces into a single logical "bonded" interface.
2329 The behavior of the bonded interfaces depends upon the mode; generally
2430 speaking, modes provide either hot standby or load balancing services.
2531 Additionally, link integrity monitoring may be performed.
26−
27− The bonding driver originally came from Donald Becker's
32+
33+The bonding driver originally came from Donald Becker's
2834 beowulf patches for kernel 2.0. It has changed quite a bit since, and
2935 the original tools from extreme-linux and beowulf sites will not work
3036 with this version of the driver.
3137
32− For new versions of the driver, updated userspace tools, and
38+For new versions of the driver, updated userspace tools, and
3339 who to ask for help, please follow the links at the end of this file.
3440
35−Table of Contents
36−=================
41+.. Table of Contents
3742
38−1. Bonding Driver Installation
43+ 1. Bonding Driver Installation
3944
40−2. Bonding Driver Options
45+ 2. Bonding Driver Options
4146
42−3. Configuring Bonding Devices
43−3.1 Configuration with Sysconfig Support
44−3.1.1 Using DHCP with Sysconfig
45−3.1.2 Configuring Multiple Bonds with Sysconfig
46−3.2 Configuration with Initscripts Support
47−3.2.1 Using DHCP with Initscripts
48−3.2.2 Configuring Multiple Bonds with Initscripts
49−3.3 Configuring Bonding Manually with Ifenslave
50−3.3.1 Configuring Multiple Bonds Manually
51−3.4 Configuring Bonding Manually via Sysfs
52−3.5 Configuration with Interfaces Support
53−3.6 Overriding Configuration for Special Cases
54−3.7 Configuring LACP for 802.3ad mode in a more secure way
47+ 3. Configuring Bonding Devices
48+ 3.1 Configuration with Sysconfig Support
49+ 3.1.1 Using DHCP with Sysconfig
50+ 3.1.2 Configuring Multiple Bonds with Sysconfig
51+ 3.2 Configuration with Initscripts Support
52+ 3.2.1 Using DHCP with Initscripts
53+ 3.2.2 Configuring Multiple Bonds with Initscripts
54+ 3.3 Configuring Bonding Manually with Ifenslave
55+ 3.3.1 Configuring Multiple Bonds Manually
56+ 3.4 Configuring Bonding Manually via Sysfs
57+ 3.5 Configuration with Interfaces Support
58+ 3.6 Overriding Configuration for Special Cases
59+ 3.7 Configuring LACP for 802.3ad mode in a more secure way
5560
56−4. Querying Bonding Configuration
57−4.1 Bonding Configuration
58−4.2 Network Configuration
61+ 4. Querying Bonding Configuration
62+ 4.1 Bonding Configuration
63+ 4.2 Network Configuration
5964
60−5. Switch Configuration
65+ 5. Switch Configuration
6166
62−6. 802.1q VLAN Support
67+ 6. 802.1q VLAN Support
6368
64−7. Link Monitoring
65−7.1 ARP Monitor Operation
66−7.2 Configuring Multiple ARP Targets
67−7.3 MII Monitor Operation
69+ 7. Link Monitoring
70+ 7.1 ARP Monitor Operation
71+ 7.2 Configuring Multiple ARP Targets
72+ 7.3 MII Monitor Operation
6873
69−8. Potential Trouble Sources
70−8.1 Adventures in Routing
71−8.2 Ethernet Device Renaming
72−8.3 Painfully Slow Or No Failed Link Detection By Miimon
74+ 8. Potential Trouble Sources
75+ 8.1 Adventures in Routing
76+ 8.2 Ethernet Device Renaming
77+ 8.3 Painfully Slow Or No Failed Link Detection By Miimon
7378
74−9. SNMP agents
79+ 9. SNMP agents
7580
76−10. Promiscuous mode
81+ 10. Promiscuous mode
7782
78−11. Configuring Bonding for High Availability
79−11.1 High Availability in a Single Switch Topology
80−11.2 High Availability in a Multiple Switch Topology
81−11.2.1 HA Bonding Mode Selection for Multiple Switch Topology
82−11.2.2 HA Link Monitoring for Multiple Switch Topology
83+ 11. Configuring Bonding for High Availability
84+ 11.1 High Availability in a Single Switch Topology
85+ 11.2 High Availability in a Multiple Switch Topology
86+ 11.2.1 HA Bonding Mode Selection for Multiple Switch Topology
87+ 11.2.2 HA Link Monitoring for Multiple Switch Topology
8388
84−12. Configuring Bonding for Maximum Throughput
85−12.1 Maximum Throughput in a Single Switch Topology
86−12.1.1 MT Bonding Mode Selection for Single Switch Topology
87−12.1.2 MT Link Monitoring for Single Switch Topology
88−12.2 Maximum Throughput in a Multiple Switch Topology
89−12.2.1 MT Bonding Mode Selection for Multiple Switch Topology
90−12.2.2 MT Link Monitoring for Multiple Switch Topology
89+ 12. Configuring Bonding for Maximum Throughput
90+ 12.1 Maximum Throughput in a Single Switch Topology
91+ 12.1.1 MT Bonding Mode Selection for Single Switch Topology
92+ 12.1.2 MT Link Monitoring for Single Switch Topology
93+ 12.2 Maximum Throughput in a Multiple Switch Topology
94+ 12.2.1 MT Bonding Mode Selection for Multiple Switch Topology
95+ 12.2.2 MT Link Monitoring for Multiple Switch Topology
9196
92−13. Switch Behavior Issues
93−13.1 Link Establishment and Failover Delays
94−13.2 Duplicated Incoming Packets
97+ 13. Switch Behavior Issues
98+ 13.1 Link Establishment and Failover Delays
99+ 13.2 Duplicated Incoming Packets
95100
96−14. Hardware Specific Considerations
97−14.1 IBM BladeCenter
101+ 14. Hardware Specific Considerations
102+ 14.1 IBM BladeCenter
98103
99−15. Frequently Asked Questions
104+ 15. Frequently Asked Questions
100105
101−16. Resources and Links
106+ 16. Resources and Links
102107
103108
104109 1. Bonding Driver Installation
105110 ==============================
106111
107− Most popular distro kernels ship with the bonding driver
112+Most popular distro kernels ship with the bonding driver
108113 already available as a module. If your distro does not, or you
109114 have need to compile bonding from source (e.g., configuring and
110115 installing a mainline kernel from kernel.org), you'll need to perform
@@ -113,54 +118,54 @@ the following steps: · 2 unmodified lines
113118 1.1 Configure and build the kernel with bonding
114119 -----------------------------------------------
115120
116− The current version of the bonding driver is available in the
121+The current version of the bonding driver is available in the
117122 drivers/net/bonding subdirectory of the most recent kernel source
118123 (which is available on http://kernel.org). Most users "rolling their
119124 own" will want to use the most recent kernel from kernel.org.
120125
121− Configure kernel with "make menuconfig" (or "make xconfig" or
126+Configure kernel with "make menuconfig" (or "make xconfig" or
122127 "make config"), then select "Bonding driver support" in the "Network
123128 device support" section. It is recommended that you configure the
124129 driver as module since it is currently the only way to pass parameters
125130 to the driver or configure more than one bonding device.
126131
127− Build and install the new kernel and modules.
132+Build and install the new kernel and modules.
128133
129134 1.2 Bonding Control Utility
130−-------------------------------------
135+---------------------------
131136
132− It is recommended to configure bonding via iproute2 (netlink)
137+It is recommended to configure bonding via iproute2 (netlink)
133138 or sysfs, the old ifenslave control utility is obsolete.
134139
135140 2. Bonding Driver Options
136141 =========================
137142
138− Options for the bonding driver are supplied as parameters to the
143+Options for the bonding driver are supplied as parameters to the
139144 bonding module at load time, or are specified via sysfs.
140145
141− Module options may be given as command line arguments to the
146+Module options may be given as command line arguments to the
142147 insmod or modprobe command, but are usually specified in either the
143−/etc/modprobe.d/*.conf configuration files, or in a distro-specific
148+``/etc/modprobe.d/*.conf`` configuration files, or in a distro-specific
144149 configuration file (some of which are detailed in the next section).
145150
146− Details on bonding support for sysfs is provided in the
151+Details on bonding support for sysfs is provided in the
147152 "Configuring Bonding Manually via Sysfs" section, below.
148153
149− The available bonding driver parameters are listed below. If a
154+The available bonding driver parameters are listed below. If a
150155 parameter is not specified the default value is used. When initially
151156 configuring a bond, it is recommended "tail -f /var/log/messages" be
152157 run in a separate window to watch for bonding driver error messages.
153158
154− It is critical that either the miimon or arp_interval and
159+It is critical that either the miimon or arp_interval and
155160 arp_ip_target parameters be specified, otherwise serious network
156161 degradation will occur during link failures. Very few devices do not
157162 support at least miimon, so there is really no reason not to use it.
158163
159− Options with textual values will accept either the text name
164+Options with textual values will accept either the text name
160165 or, for backwards compatibility, the option value. E.g.,
161166 "mode=802.3ad" and "mode=4" set the same mode.
162167
163− The parameters are as follows:
168+The parameters are as follows:
164169
165170 active_slave
166171
@@ -246,10 +251,13 @@ ad_user_port_key · 79 unmodified lines
246251
247252 In an AD system, the port-key has three parts as shown below -
248253
254+ ===== ============
249255 Bits Use
256+ ===== ============
250257 00 Duplex
251258 01-05 Speed
252259 06-15 User-defined
260+ ===== ============
253261
254262 This defines the upper 10 bits of the port key. The values can be
255263 from 0 - 1023. If not given, the system defaults to 0.
@@ -699,7 +707,7 @@ mode · 443 unmodified lines
699707 swapped with the new curr_active_slave that was
700708 chosen.
701709
702−num_grat_arp
710+num_grat_arp,
703711 num_unsol_na
704712
705713 Specify the number of peer notifications (gratuitous ARPs and
@@ -729,13 +737,13 @@ packets_per_slave · 23 unmodified lines
729737
730738 peer_notif_delay
731739
732− Specify the delay, in milliseconds, between each peer
733− notification (gratuitous ARP and unsolicited IPv6 Neighbor
734− Advertisement) when they are issued after a failover event.
735− This delay should be a multiple of the link monitor interval
736− (arp_interval or miimon, whichever is active). The default
737− value is 0 which means to match the value of the link monitor
738− interval.
740+ Specify the delay, in milliseconds, between each peer
741+ notification (gratuitous ARP and unsolicited IPv6 Neighbor
742+ Advertisement) when they are issued after a failover event.
743+ This delay should be a multiple of the link monitor interval
744+ (arp_interval or miimon, whichever is active). The default
745+ value is 0 which means to match the value of the link monitor
746+ interval.
739747
740748 primary
741749
@@ -977,88 +985,88 @@ lp_interval · 235 unmodified lines
977985 3. Configuring Bonding Devices
978986 ==============================
979987
980− You can configure bonding using either your distro's network
988+You can configure bonding using either your distro's network
981989 initialization scripts, or manually using either iproute2 or the
982990 sysfs interface. Distros generally use one of three packages for the
983991 network initialization scripts: initscripts, sysconfig or interfaces.
984992 Recent versions of these packages have support for bonding, while older
985993 versions do not.
986994
987− We will first describe the options for configuring bonding for
995+We will first describe the options for configuring bonding for
988996 distros using versions of initscripts, sysconfig and interfaces with full
989997 or partial support for bonding, then provide information on enabling
990998 bonding without support from the network initialization scripts (i.e.,
991999 older versions of initscripts or sysconfig).
9921000
993− If you're unsure whether your distro uses sysconfig,
1001+If you're unsure whether your distro uses sysconfig,
9941002 initscripts or interfaces, or don't know if it's new enough, have no fear.
9951003 Determining this is fairly straightforward.
9961004
997− First, look for a file called interfaces in /etc/network directory.
1005+First, look for a file called interfaces in /etc/network directory.
9981006 If this file is present in your system, then your system use interfaces. See
9991007 Configuration with Interfaces Support.
10001008
1001− Else, issue the command:
1009+Else, issue the command::
10021010
1003−$ rpm -qf /sbin/ifup
1011+ $ rpm -qf /sbin/ifup
10041012
1005− It will respond with a line of text starting with either
1013+It will respond with a line of text starting with either
10061014 "initscripts" or "sysconfig," followed by some numbers. This is the
10071015 package that provides your network initialization scripts.
10081016
1009− Next, to determine if your installation supports bonding,
1010−issue the command:
1017+Next, to determine if your installation supports bonding,
1018+issue the command::
10111019
1012−$ grep ifenslave /sbin/ifup
1020+ $ grep ifenslave /sbin/ifup
10131021
1014− If this returns any matches, then your initscripts or
1022+If this returns any matches, then your initscripts or
10151023 sysconfig has support for bonding.
10161024
10171025 3.1 Configuration with Sysconfig Support
10181026 ----------------------------------------
10191027
1020− This section applies to distros using a version of sysconfig
1028+This section applies to distros using a version of sysconfig
10211029 with bonding support, for example, SuSE Linux Enterprise Server 9.
10221030
1023− SuSE SLES 9's networking configuration system does support
1031+SuSE SLES 9's networking configuration system does support
10241032 bonding, however, at this writing, the YaST system configuration
10251033 front end does not provide any means to work with bonding devices.
10261034 Bonding devices can be managed by hand, however, as follows.
10271035
1028− First, if they have not already been configured, configure the
1036+First, if they have not already been configured, configure the
10291037 slave devices. On SLES 9, this is most easily done by running the
10301038 yast2 sysconfig configuration utility. The goal is for to create an
10311039 ifcfg-id file for each slave device. The simplest way to accomplish
10321040 this is to configure the devices for DHCP (this is only to get the
10331041 file ifcfg-id file created; see below for some issues with DHCP). The
1034−name of the configuration file for each device will be of the form:
1042+name of the configuration file for each device will be of the form::
10351043
1036−ifcfg-id-xx:xx:xx:xx:xx:xx
1044+ ifcfg-id-xx:xx:xx:xx:xx:xx
10371045
1038− Where the "xx" portion will be replaced with the digits from
1046+Where the "xx" portion will be replaced with the digits from
10391047 the device's permanent MAC address.
10401048
1041− Once the set of ifcfg-id-xx:xx:xx:xx:xx:xx files has been
1049+Once the set of ifcfg-id-xx:xx:xx:xx:xx:xx files has been
10421050 created, it is necessary to edit the configuration files for the slave
10431051 devices (the MAC addresses correspond to those of the slave devices).
10441052 Before editing, the file will contain multiple lines, and will look
1045−something like this:
1053+something like this::
10461054
1047−BOOTPROTO='dhcp'
1048−STARTMODE='on'
1049−USERCTL='no'
1050−UNIQUE='XNzu.WeZGOGF+4wE'
1051−_nm_name='bus-pci-0001:61:01.0'
1055+ BOOTPROTO='dhcp'
1056+ STARTMODE='on'
1057+ USERCTL='no'
1058+ UNIQUE='XNzu.WeZGOGF+4wE'
1059+ _nm_name='bus-pci-0001:61:01.0'
10521060
1053− Change the BOOTPROTO and STARTMODE lines to the following:
1061+Change the BOOTPROTO and STARTMODE lines to the following::
10541062
1055−BOOTPROTO='none'
1056−STARTMODE='off'
1063+ BOOTPROTO='none'
1064+ STARTMODE='off'
10571065
1058− Do not alter the UNIQUE or _nm_name lines. Remove any other
1066+Do not alter the UNIQUE or _nm_name lines. Remove any other
10591067 lines (USERCTL, etc).
10601068
1061− Once the ifcfg-id-xx:xx:xx:xx:xx:xx files have been modified,
1069+Once the ifcfg-id-xx:xx:xx:xx:xx:xx files have been modified,
10621070 it's time to create the configuration file for the bonding device
10631071 itself. This file is named ifcfg-bondX, where X is the number of the
10641072 bonding device to create, starting at 0. The first such file is
@@ -1066,49 +1074,52 @@ ifcfg-bond0, the second is ifcfg-bond1, and so on. The sysconfig · 1 unmodified line
10661074 network configuration system will correctly start multiple instances
10671075 of bonding.
10681076
1069− The contents of the ifcfg-bondX file is as follows:
1070−
1071−BOOTPROTO="static"
1072−BROADCAST="10.0.2.255"
1073−IPADDR="10.0.2.10"
1074−NETMASK="255.255.0.0"
1075−NETWORK="10.0.2.0"
1076−REMOTE_IPADDR=""
1077−STARTMODE="onboot"
1078−BONDING_MASTER="yes"
1079−BONDING_MODULE_OPTS="mode=active-backup miimon=100"
1080−BONDING_SLAVE0="eth0"
1081−BONDING_SLAVE1="bus-pci-0000:06:08.1"
1082−
1083− Replace the sample BROADCAST, IPADDR, NETMASK and NETWORK
1077+The contents of the ifcfg-bondX file is as follows::
1078+
1079+ BOOTPROTO="static"
1080+ BROADCAST="10.0.2.255"
1081+ IPADDR="10.0.2.10"
1082+ NETMASK="255.255.0.0"
1083+ NETWORK="10.0.2.0"
1084+ REMOTE_IPADDR=""
1085+ STARTMODE="onboot"
1086+ BONDING_MASTER="yes"
1087+ BONDING_MODULE_OPTS="mode=active-backup miimon=100"
1088+ BONDING_SLAVE0="eth0"
1089+ BONDING_SLAVE1="bus-pci-0000:06:08.1"
1090+
1091+Replace the sample BROADCAST, IPADDR, NETMASK and NETWORK
10841092 values with the appropriate values for your network.
10851093
1086− The STARTMODE specifies when the device is brought online.
1094+The STARTMODE specifies when the device is brought online.
10871095 The possible values are:
10881096
1089− onboot: The device is started at boot time. If you're not
1097+ ======== ======================================================
1098+ onboot The device is started at boot time. If you're not
10901099 sure, this is probably what you want.
10911100
1092− manual: The device is started only when ifup is called
1101+ manual The device is started only when ifup is called
10931102 manually. Bonding devices may be configured this
10941103 way if you do not wish them to start automatically
10951104 at boot for some reason.
10961105
1097− hotplug: The device is started by a hotplug event. This is not
1106+ hotplug The device is started by a hotplug event. This is not
10981107 a valid choice for a bonding device.
10991108
1100− off or ignore: The device configuration is ignored.
1109+ off or The device configuration is ignored.
1110+ ignore
1111+ ======== ======================================================
11011112
1102− The line BONDING_MASTER='yes' indicates that the device is a
1113+The line BONDING_MASTER='yes' indicates that the device is a
11031114 bonding master device. The only useful value is "yes."
11041115
1105− The contents of BONDING_MODULE_OPTS are supplied to the
1116+The contents of BONDING_MODULE_OPTS are supplied to the
11061117 instance of the bonding module for this device. Specify the options
11071118 for the bonding mode, link monitoring, and so on here. Do not include
11081119 the max_bonds bonding parameter; this will confuse the configuration
11091120 system if you have multiple bonding devices.
11101121
1111− Finally, supply one BONDING_SLAVEn="slave device" for each
1122+Finally, supply one BONDING_SLAVEn="slave device" for each
11121123 slave. where "n" is an increasing value, one for each slave. The
11131124 "slave device" is either an interface name, e.g., "eth0", or a device
11141125 specifier for the network device. The interface name is easier to
@@ -1120,34 +1131,34 @@ changes (for example, it is moved from one PCI slot to another). The · 5 unmodified lines
11201131 example above uses one of each type for demonstration purposes; most
11211132 configurations will choose one or the other for all slave devices.
11221133
1123− When all configuration files have been modified or created,
1134+When all configuration files have been modified or created,
11241135 networking must be restarted for the configuration changes to take
1125−effect. This can be accomplished via the following:
1136+effect. This can be accomplished via the following::
11261137
1127−# /etc/init.d/network restart
1138+ # /etc/init.d/network restart
11281139
1129− Note that the network control script (/sbin/ifdown) will
1140+Note that the network control script (/sbin/ifdown) will
11301141 remove the bonding module as part of the network shutdown processing,
11311142 so it is not necessary to remove the module by hand if, e.g., the
11321143 module parameters have changed.
11331144
1134− Also, at this writing, YaST/YaST2 will not manage bonding
1145+Also, at this writing, YaST/YaST2 will not manage bonding
11351146 devices (they do not show bonding interfaces on its list of network
11361147 devices). It is necessary to edit the configuration file by hand to
11371148 change the bonding configuration.
11381149
1139− Additional general options and details of the ifcfg file
1140−format can be found in an example ifcfg template file:
1150+Additional general options and details of the ifcfg file
1151+format can be found in an example ifcfg template file::
11411152
1142−/etc/sysconfig/network/ifcfg.template
1153+ /etc/sysconfig/network/ifcfg.template
11431154
1144− Note that the template does not document the various BONDING_
1155+Note that the template does not document the various ``BONDING_*``
11451156 settings described above, but does describe many of the other options.
11461157
11471158 3.1.1 Using DHCP with Sysconfig
11481159 -------------------------------
11491160
1150− Under sysconfig, configuring a device with BOOTPROTO='dhcp'
1161+Under sysconfig, configuring a device with BOOTPROTO='dhcp'
11511162 will cause it to query DHCP for its IP address information. At this
11521163 writing, this does not function for bonding devices; the scripts
11531164 attempt to obtain the device address from DHCP prior to adding any of
@@ -1157,7 +1168,7 @@ sent to the network. · 3 unmodified lines
11571168 3.1.2 Configuring Multiple Bonds with Sysconfig
11581169 -----------------------------------------------
11591170
1160− The sysconfig network initialization system is capable of
1171+The sysconfig network initialization system is capable of
11611172 handling multiple bonding devices. All that is necessary is for each
11621173 bonding instance to have an appropriately configured ifcfg-bondX file
11631174 (as described above). Do not specify the "max_bonds" parameter to any
@@ -1165,14 +1176,14 @@ instance of bonding, as this will confuse sysconfig. If you require · 1 unmodified line
11651176 multiple bonding devices with identical parameters, create multiple
11661177 ifcfg-bondX files.
11671178
1168− Because the sysconfig scripts supply the bonding module
1179+Because the sysconfig scripts supply the bonding module
11691180 options in the ifcfg-bondX file, it is not necessary to add them to
1170−the system /etc/modules.d/*.conf configuration files.
1181+the system ``/etc/modules.d/*.conf`` configuration files.
11711182
11721183 3.2 Configuration with Initscripts Support
11731184 ------------------------------------------
11741185
1175− This section applies to distros using a recent version of
1186+This section applies to distros using a recent version of
11761187 initscripts with bonding support, for example, Red Hat Enterprise Linux
11771188 version 3 or later, Fedora, etc. On these systems, the network
11781189 initialization scripts have knowledge of bonding, and can be configured to
@@ -1180,7 +1191,7 @@ control bonding devices. Note that older versions of the initscripts · 1 unmodified line
11801191 package have lower levels of support for bonding; this will be noted where
11811192 applicable.
11821193
1183− These distros will not automatically load the network adapter
1194+These distros will not automatically load the network adapter
11841195 driver unless the ethX device is configured with an IP address.
11851196 Because of this constraint, users must manually configure a
11861197 network-script file for all physical adapters that will be members of
@@ -1188,19 +1199,19 @@ a bondX link. Network script files are located in the directory: · 1 unmodified line
11881199
11891200 /etc/sysconfig/network-scripts
11901201
1191− The file name must be prefixed with "ifcfg-eth" and suffixed
1202+The file name must be prefixed with "ifcfg-eth" and suffixed
11921203 with the adapter's physical adapter number. For example, the script
11931204 for eth0 would be named /etc/sysconfig/network-scripts/ifcfg-eth0.
1194−Place the following text in the file:
1205+Place the following text in the file::
11951206
1196−DEVICE=eth0
1197−USERCTL=no
1198−ONBOOT=yes
1199−MASTER=bond0
1200−SLAVE=yes
1201−BOOTPROTO=none
1207+ DEVICE=eth0
1208+ USERCTL=no
1209+ ONBOOT=yes
1210+ MASTER=bond0
1211+ SLAVE=yes
1212+ BOOTPROTO=none
12021213
1203− The DEVICE= line will be different for every ethX device and
1214+The DEVICE= line will be different for every ethX device and
12041215 must correspond with the name of the file, i.e., ifcfg-eth1 must have
12051216 a device line of DEVICE=eth1. The setting of the MASTER= line will
12061217 also depend on the final bonding interface name chosen for your bond.
@@ -1208,69 +1219,70 @@ As with other network devices, these typically start at 0, and go up · 1 unmodified line
12081219 one for each device, i.e., the first bonding instance is bond0, the
12091220 second is bond1, and so on.
12101221
1211− Next, create a bond network script. The file name for this
1222+Next, create a bond network script. The file name for this
12121223 script will be /etc/sysconfig/network-scripts/ifcfg-bondX where X is
12131224 the number of the bond. For bond0 the file is named "ifcfg-bond0",
12141225 for bond1 it is named "ifcfg-bond1", and so on. Within that file,
1215−place the following text:
1216−
1217−DEVICE=bond0
1218−IPADDR=192.168.1.1
1219−NETMASK=255.255.255.0
1220−NETWORK=192.168.1.0
1221−BROADCAST=192.168.1.255
1222−ONBOOT=yes
1223−BOOTPROTO=none
1224−USERCTL=no
1225−
1226− Be sure to change the networking specific lines (IPADDR,
1226+place the following text::
1227+
1228+ DEVICE=bond0
1229+ IPADDR=192.168.1.1
1230+ NETMASK=255.255.255.0
1231+ NETWORK=192.168.1.0
1232+ BROADCAST=192.168.1.255
1233+ ONBOOT=yes
1234+ BOOTPROTO=none
1235+ USERCTL=no
1236+
1237+Be sure to change the networking specific lines (IPADDR,
12271238 NETMASK, NETWORK and BROADCAST) to match your network configuration.
12281239
1229− For later versions of initscripts, such as that found with Fedora
1240+For later versions of initscripts, such as that found with Fedora
12301241 7 (or later) and Red Hat Enterprise Linux version 5 (or later), it is possible,
12311242 and, indeed, preferable, to specify the bonding options in the ifcfg-bond0
1232−file, e.g. a line of the format:
1243+file, e.g. a line of the format::
12331244
1234−BONDING_OPTS="mode=active-backup arp_interval=60 arp_ip_target=192.168.1.254"
1245+ BONDING_OPTS="mode=active-backup arp_interval=60 arp_ip_target=192.168.1.254"
12351246
1236− will configure the bond with the specified options. The options
1247+will configure the bond with the specified options. The options
12371248 specified in BONDING_OPTS are identical to the bonding module parameters
12381249 except for the arp_ip_target field when using versions of initscripts older
12391250 than and 8.57 (Fedora 8) and 8.45.19 (Red Hat Enterprise Linux 5.2). When
12401251 using older versions each target should be included as a separate option and
12411252 should be preceded by a '+' to indicate it should be added to the list of
1242−queried targets, e.g.,
1253+queried targets, e.g.,::
12431254
1244− arp_ip_target=+192.168.1.1 arp_ip_target=+192.168.1.2
1255+ arp_ip_target=+192.168.1.1 arp_ip_target=+192.168.1.2
12451256
1246− is the proper syntax to specify multiple targets. When specifying
1247−options via BONDING_OPTS, it is not necessary to edit /etc/modprobe.d/*.conf.
1257+is the proper syntax to specify multiple targets. When specifying
1258+options via BONDING_OPTS, it is not necessary to edit
1259+``/etc/modprobe.d/*.conf``.
12481260
1249− For even older versions of initscripts that do not support
1261+For even older versions of initscripts that do not support
12501262 BONDING_OPTS, it is necessary to edit /etc/modprobe.d/*.conf, depending upon
12511263 your distro) to load the bonding module with your desired options when the
12521264 bond0 interface is brought up. The following lines in /etc/modprobe.d/*.conf
12531265 will load the bonding module, and select its options:
12541266
1255−alias bond0 bonding
1256−options bond0 mode=balance-alb miimon=100
1267+ alias bond0 bonding
1268+ options bond0 mode=balance-alb miimon=100
12571269
1258− Replace the sample parameters with the appropriate set of
1270+Replace the sample parameters with the appropriate set of
12591271 options for your configuration.
12601272
1261− Finally run "/etc/rc.d/init.d/network restart" as root. This
1273+Finally run "/etc/rc.d/init.d/network restart" as root. This
12621274 will restart the networking subsystem and your bond link should be now
12631275 up and running.
12641276
12651277 3.2.1 Using DHCP with Initscripts
12661278 ---------------------------------
12671279
1268− Recent versions of initscripts (the versions supplied with Fedora
1280+Recent versions of initscripts (the versions supplied with Fedora
12691281 Core 3 and Red Hat Enterprise Linux 4, or later versions, are reported to
12701282 work) have support for assigning IP information to bonding devices via
12711283 DHCP.
12721284
1273− To configure bonding for DHCP, configure it as described
1285+To configure bonding for DHCP, configure it as described
12741286 above, except replace the line "BOOTPROTO=none" with "BOOTPROTO=dhcp"
12751287 and add a line consisting of "TYPE=Bonding". Note that the TYPE value
12761288 is case sensitive.
@@ -1278,7 +1290,7 @@ is case sensitive. · 1 unmodified line
12781290 3.2.2 Configuring Multiple Bonds with Initscripts
12791291 -------------------------------------------------
12801292
1281− Initscripts packages that are included with Fedora 7 and Red Hat
1293+Initscripts packages that are included with Fedora 7 and Red Hat
12821294 Enterprise Linux 5 support multiple bonding interfaces by simply
12831295 specifying the appropriate BONDING_OPTS= in ifcfg-bondX where X is the
12841296 number of the bond. This support requires sysfs support in the kernel,
@@ -1290,77 +1302,77 @@ below. · 5 unmodified lines
12901302 3.3 Configuring Bonding Manually with iproute2
12911303 -----------------------------------------------
12921304
1293− This section applies to distros whose network initialization
1305+This section applies to distros whose network initialization
12941306 scripts (the sysconfig or initscripts package) do not have specific
12951307 knowledge of bonding. One such distro is SuSE Linux Enterprise Server
12961308 version 8.
12971309
1298− The general method for these systems is to place the bonding
1310+The general method for these systems is to place the bonding
12991311 module parameters into a config file in /etc/modprobe.d/ (as
13001312 appropriate for the installed distro), then add modprobe and/or
13011313 `ip link` commands to the system's global init script. The name of
13021314 the global init script differs; for sysconfig, it is
13031315 /etc/init.d/boot.local and for initscripts it is /etc/rc.d/rc.local.
13041316
1305− For example, if you wanted to make a simple bond of two e100
1317+For example, if you wanted to make a simple bond of two e100
13061318 devices (presumed to be eth0 and eth1), and have it persist across
13071319 reboots, edit the appropriate file (/etc/init.d/boot.local or
1308−/etc/rc.d/rc.local), and add the following:
1320+/etc/rc.d/rc.local), and add the following::
13091321
1310−modprobe bonding mode=balance-alb miimon=100
1311−modprobe e100
1312−ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up
1313−ip link set eth0 master bond0
1314−ip link set eth1 master bond0
1322+ modprobe bonding mode=balance-alb miimon=100
1323+ modprobe e100
1324+ ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up
1325+ ip link set eth0 master bond0
1326+ ip link set eth1 master bond0
13151327
1316− Replace the example bonding module parameters and bond0
1328+Replace the example bonding module parameters and bond0
13171329 network configuration (IP address, netmask, etc) with the appropriate
13181330 values for your configuration.
13191331
1320− Unfortunately, this method will not provide support for the
1332+Unfortunately, this method will not provide support for the
13211333 ifup and ifdown scripts on the bond devices. To reload the bonding
1322−configuration, it is necessary to run the initialization script, e.g.,
1334+configuration, it is necessary to run the initialization script, e.g.,::
13231335
1324−# /etc/init.d/boot.local
1336+ # /etc/init.d/boot.local
13251337
1326− or
1338+or::
13271339
1328−# /etc/rc.d/rc.local
1340+ # /etc/rc.d/rc.local
13291341
1330− It may be desirable in such a case to create a separate script
1342+It may be desirable in such a case to create a separate script
13311343 which only initializes the bonding configuration, then call that
13321344 separate script from within boot.local. This allows for bonding to be
13331345 enabled without re-running the entire global init script.
13341346
1335− To shut down the bonding devices, it is necessary to first
1347+To shut down the bonding devices, it is necessary to first
13361348 mark the bonding device itself as being down, then remove the
13371349 appropriate device driver modules. For our example above, you can do
1338−the following:
1350+the following::
13391351
1340−# ifconfig bond0 down
1341−# rmmod bonding
1342−# rmmod e100
1352+ # ifconfig bond0 down
1353+ # rmmod bonding
1354+ # rmmod e100
13431355
1344− Again, for convenience, it may be desirable to create a script
1356+Again, for convenience, it may be desirable to create a script
13451357 with these commands.
13461358
13471359
13481360 3.3.1 Configuring Multiple Bonds Manually
13491361 -----------------------------------------
13501362
1351− This section contains information on configuring multiple
1363+This section contains information on configuring multiple
13521364 bonding devices with differing options for those systems whose network
13531365 initialization scripts lack support for configuring multiple bonds.
13541366
1355− If you require multiple bonding devices, but all with the same
1367+If you require multiple bonding devices, but all with the same
13561368 options, you may wish to use the "max_bonds" module parameter,
13571369 documented above.
13581370
1359− To create multiple bonding devices with differing options, it is
1371+To create multiple bonding devices with differing options, it is
13601372 preferable to use bonding parameters exported by sysfs, documented in the
13611373 section below.
13621374
1363− For versions of bonding without sysfs support, the only means to
1375+For versions of bonding without sysfs support, the only means to
13641376 provide multiple instances of bonding with differing options is to load
13651377 the bonding driver multiple times. Note that current versions of the
13661378 sysconfig network initialization scripts handle this automatically; if
@@ -1368,35 +1380,35 @@ your distro uses these scripts, no special action is needed. See the · 1 unmodified line
13681380 section Configuring Bonding Devices, above, if you're not sure about your
13691381 network initialization scripts.
13701382
1371− To load multiple instances of the module, it is necessary to
1383+To load multiple instances of the module, it is necessary to
13721384 specify a different name for each instance (the module loading system
13731385 requires that every loaded module, even multiple instances of the same
13741386 module, have a unique name). This is accomplished by supplying multiple
1375−sets of bonding options in /etc/modprobe.d/*.conf, for example:
1387+sets of bonding options in ``/etc/modprobe.d/*.conf``, for example::
13761388
1377−alias bond0 bonding
1378−options bond0 -o bond0 mode=balance-rr miimon=100
1389+ alias bond0 bonding
1390+ options bond0 -o bond0 mode=balance-rr miimon=100
13791391
1380−alias bond1 bonding
1381−options bond1 -o bond1 mode=balance-alb miimon=50
1392+ alias bond1 bonding
1393+ options bond1 -o bond1 mode=balance-alb miimon=50
13821394
1383− will load the bonding module two times. The first instance is
1395+will load the bonding module two times. The first instance is
13841396 named "bond0" and creates the bond0 device in balance-rr mode with an
13851397 miimon of 100. The second instance is named "bond1" and creates the
13861398 bond1 device in balance-alb mode with an miimon of 50.
13871399
1388− In some circumstances (typically with older distributions),
1400+In some circumstances (typically with older distributions),
13891401 the above does not work, and the second bonding instance never sees
13901402 its options. In that case, the second options line can be substituted
1391−as follows:
1403+as follows::
13921404
1393−install bond1 /sbin/modprobe --ignore-install bonding -o bond1 \
1394− mode=balance-alb miimon=50
1405+ install bond1 /sbin/modprobe --ignore-install bonding -o bond1 \
1406+ mode=balance-alb miimon=50
13951407
1396− This may be repeated any number of times, specifying a new and
1408+This may be repeated any number of times, specifying a new and
13971409 unique name in place of bond1 for each subsequent instance.
13981410
1399− It has been observed that some Red Hat supplied kernels are unable
1411+It has been observed that some Red Hat supplied kernels are unable
14001412 to rename modules at load time (the "-o bond1" part). Attempts to pass
14011413 that option to modprobe will produce an "Operation not permitted" error.
14021414 This has been reported on some Fedora Core kernels, and has been seen on
@@ -1407,18 +1419,18 @@ kernels, and also lack sysfs support). · 4 unmodified lines
14071419 3.4 Configuring Bonding Manually via Sysfs
14081420 ------------------------------------------
14091421
1410− Starting with version 3.0.0, Channel Bonding may be configured
1422+Starting with version 3.0.0, Channel Bonding may be configured
14111423 via the sysfs interface. This interface allows dynamic configuration
14121424 of all bonds in the system without unloading the module. It also
14131425 allows for adding and removing bonds at runtime. Ifenslave is no
14141426 longer required, though it is still supported.
14151427
1416− Use of the sysfs interface allows you to use multiple bonds
1428+Use of the sysfs interface allows you to use multiple bonds
14171429 with different configurations without having to reload the module.
14181430 It also allows you to use multiple, differently configured bonds when
14191431 bonding is compiled into the kernel.
14201432
1421− You must have the sysfs filesystem mounted to configure
1433+You must have the sysfs filesystem mounted to configure
14221434 bonding this way. The examples in this document assume that you
14231435 are using the standard mount point for sysfs, e.g. /sys. If your
14241436 sysfs filesystem is mounted elsewhere, you will need to adjust the
@@ -1426,38 +1438,45 @@ example paths accordingly. · 1 unmodified line
14261438
14271439 Creating and Destroying Bonds
14281440 -----------------------------
1429−To add a new bond foo:
1430−# echo +foo > /sys/class/net/bonding_masters
1441+To add a new bond foo::
1442+
1443+ # echo +foo > /sys/class/net/bonding_masters
1444+
1445+To remove an existing bond bar::
14311446
1432−To remove an existing bond bar:
1433−# echo -bar > /sys/class/net/bonding_masters
1447+ # echo -bar > /sys/class/net/bonding_masters
14341448
1435−To show all existing bonds:
1436−# cat /sys/class/net/bonding_masters
1449+To show all existing bonds::
14371450
1438−NOTE: due to 4K size limitation of sysfs files, this list may be
1439−truncated if you have more than a few hundred bonds. This is unlikely
1440−to occur under normal operating conditions.
1451+ # cat /sys/class/net/bonding_masters
1452+
1453+.. note::
1454+
1455+ due to 4K size limitation of sysfs files, this list may be
1456+ truncated if you have more than a few hundred bonds. This is unlikely
1457+ to occur under normal operating conditions.
14411458
14421459 Adding and Removing Slaves
14431460 --------------------------
1444− Interfaces may be enslaved to a bond using the file
1461+Interfaces may be enslaved to a bond using the file
14451462 /sys/class/net/<bond>/bonding/slaves. The semantics for this file
14461463 are the same as for the bonding_masters file.
14471464
1448−To enslave interface eth0 to bond bond0:
1449−# ifconfig bond0 up
1450−# echo +eth0 > /sys/class/net/bond0/bonding/slaves
1465+To enslave interface eth0 to bond bond0::
1466+
1467+ # ifconfig bond0 up
1468+ # echo +eth0 > /sys/class/net/bond0/bonding/slaves
14511469
1452−To free slave eth0 from bond bond0:
1453−# echo -eth0 > /sys/class/net/bond0/bonding/slaves
1470+To free slave eth0 from bond bond0::
14541471
1455− When an interface is enslaved to a bond, symlinks between the
1472+ # echo -eth0 > /sys/class/net/bond0/bonding/slaves
1473+
1474+When an interface is enslaved to a bond, symlinks between the
14561475 two are created in the sysfs filesystem. In this case, you would get
14571476 /sys/class/net/bond0/slave_eth0 pointing to /sys/class/net/eth0, and
14581477 /sys/class/net/eth0/master pointing to /sys/class/net/bond0.
14591478
1460− This means that you can tell quickly whether or not an
1479+This means that you can tell quickly whether or not an
14611480 interface is enslaved by looking for the master symlink. Thus:
14621481 # echo -eth0 > /sys/class/net/eth0/master/bonding/slaves
14631482 will free eth0 from whatever bond it is enslaved to, regardless of
@@ -1465,127 +1484,143 @@ the name of the bond interface. · 1 unmodified line
14651484
14661485 Changing a Bond's Configuration
14671486 -------------------------------
1468− Each bond may be configured individually by manipulating the
1487+Each bond may be configured individually by manipulating the
14691488 files located in /sys/class/net/<bond name>/bonding
14701489
1471− The names of these files correspond directly with the command-
1490+The names of these files correspond directly with the command-
14721491 line parameters described elsewhere in this file, and, with the
14731492 exception of arp_ip_target, they accept the same values. To see the
14741493 current setting, simply cat the appropriate file.
14751494
1476− A few examples will be given here; for specific usage
1495+A few examples will be given here; for specific usage
14771496 guidelines for each parameter, see the appropriate section in this
14781497 document.
14791498
1480−To configure bond0 for balance-alb mode:
1481−# ifconfig bond0 down
1482−# echo 6 > /sys/class/net/bond0/bonding/mode
1483− - or -
1484−# echo balance-alb > /sys/class/net/bond0/bonding/mode
1485− NOTE: The bond interface must be down before the mode can be
1486−changed.
1487−
1488−To enable MII monitoring on bond0 with a 1 second interval:
1489−# echo 1000 > /sys/class/net/bond0/bonding/miimon
1490− NOTE: If ARP monitoring is enabled, it will disabled when MII
1491−monitoring is enabled, and vice-versa.
1492−
1493−To add ARP targets:
1494−# echo +192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
1495−# echo +192.168.0.101 > /sys/class/net/bond0/bonding/arp_ip_target
1496− NOTE: up to 16 target addresses may be specified.
1497−
1498−To remove an ARP target:
1499−# echo -192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
1500−
1501−To configure the interval between learning packet transmits:
1502−# echo 12 > /sys/class/net/bond0/bonding/lp_interval
1503− NOTE: the lp_interval is the number of seconds between instances where
1504−the bonding driver sends learning packets to each slaves peer switch. The
1505−default interval is 1 second.
1499+To configure bond0 for balance-alb mode::
1500+
1501+ # ifconfig bond0 down
1502+ # echo 6 > /sys/class/net/bond0/bonding/mode
1503+ - or -
1504+ # echo balance-alb > /sys/class/net/bond0/bonding/mode
1505+
1506+.. note::
1507+
1508+ The bond interface must be down before the mode can be changed.
1509+
1510+To enable MII monitoring on bond0 with a 1 second interval::
1511+
1512+ # echo 1000 > /sys/class/net/bond0/bonding/miimon
1513+
1514+.. note::
1515+
1516+ If ARP monitoring is enabled, it will disabled when MII
1517+ monitoring is enabled, and vice-versa.
1518+
1519+To add ARP targets::
1520+
1521+ # echo +192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
1522+ # echo +192.168.0.101 > /sys/class/net/bond0/bonding/arp_ip_target
1523+
1524+.. note::
1525+
1526+ up to 16 target addresses may be specified.
1527+
1528+To remove an ARP target::
1529+
1530+ # echo -192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
1531+
1532+To configure the interval between learning packet transmits::
1533+
1534+ # echo 12 > /sys/class/net/bond0/bonding/lp_interval
1535+
1536+.. note::
1537+
1538+ the lp_interval is the number of seconds between instances where
1539+ the bonding driver sends learning packets to each slaves peer switch. The
1540+ default interval is 1 second.
15061541
15071542 Example Configuration
15081543 ---------------------
1509− We begin with the same example that is shown in section 3.3,
1544+We begin with the same example that is shown in section 3.3,
15101545 executed with sysfs, and without using ifenslave.
15111546
1512− To make a simple bond of two e100 devices (presumed to be eth0
1547+To make a simple bond of two e100 devices (presumed to be eth0
15131548 and eth1), and have it persist across reboots, edit the appropriate
15141549 file (/etc/init.d/boot.local or /etc/rc.d/rc.local), and add the
1515−following:
1550+following::
15161551
1517−modprobe bonding
1518−modprobe e100
1519−echo balance-alb > /sys/class/net/bond0/bonding/mode
1520−ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up
1521−echo 100 > /sys/class/net/bond0/bonding/miimon
1522−echo +eth0 > /sys/class/net/bond0/bonding/slaves
1523−echo +eth1 > /sys/class/net/bond0/bonding/slaves
1552+ modprobe bonding
1553+ modprobe e100
1554+ echo balance-alb > /sys/class/net/bond0/bonding/mode
1555+ ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up
1556+ echo 100 > /sys/class/net/bond0/bonding/miimon
1557+ echo +eth0 > /sys/class/net/bond0/bonding/slaves
1558+ echo +eth1 > /sys/class/net/bond0/bonding/slaves
15241559
1525− To add a second bond, with two e1000 interfaces in
1560+To add a second bond, with two e1000 interfaces in
15261561 active-backup mode, using ARP monitoring, add the following lines to
1527−your init script:
1562+your init script::
15281563
1529−modprobe e1000
1530−echo +bond1 > /sys/class/net/bonding_masters
1531−echo active-backup > /sys/class/net/bond1/bonding/mode
1532−ifconfig bond1 192.168.2.1 netmask 255.255.255.0 up
1533−echo +192.168.2.100 /sys/class/net/bond1/bonding/arp_ip_target
1534−echo 2000 > /sys/class/net/bond1/bonding/arp_interval
1535−echo +eth2 > /sys/class/net/bond1/bonding/slaves
1536−echo +eth3 > /sys/class/net/bond1/bonding/slaves
1564+ modprobe e1000
1565+ echo +bond1 > /sys/class/net/bonding_masters
1566+ echo active-backup > /sys/class/net/bond1/bonding/mode
1567+ ifconfig bond1 192.168.2.1 netmask 255.255.255.0 up
1568+ echo +192.168.2.100 /sys/class/net/bond1/bonding/arp_ip_target
1569+ echo 2000 > /sys/class/net/bond1/bonding/arp_interval
1570+ echo +eth2 > /sys/class/net/bond1/bonding/slaves
1571+ echo +eth3 > /sys/class/net/bond1/bonding/slaves
15371572
15381573 3.5 Configuration with Interfaces Support
15391574 -----------------------------------------
15401575
1541− This section applies to distros which use /etc/network/interfaces file
1576+This section applies to distros which use /etc/network/interfaces file
15421577 to describe network interface configuration, most notably Debian and it's
15431578 derivatives.
15441579
1545− The ifup and ifdown commands on Debian don't support bonding out of
1580+The ifup and ifdown commands on Debian don't support bonding out of
15461581 the box. The ifenslave-2.6 package should be installed to provide bonding
1547−support. Once installed, this package will provide bond-* options to be used
1548−into /etc/network/interfaces.
1582+support. Once installed, this package will provide ``bond-*`` options
1583+to be used into /etc/network/interfaces.
15491584
1550− Note that ifenslave-2.6 package will load the bonding module and use
1585+Note that ifenslave-2.6 package will load the bonding module and use
15511586 the ifenslave command when appropriate.
15521587
15531588 Example Configurations
15541589 ----------------------
15551590
15561591 In /etc/network/interfaces, the following stanza will configure bond0, in
1557−active-backup mode, with eth0 and eth1 as slaves.
1592+active-backup mode, with eth0 and eth1 as slaves::
15581593
1559−auto bond0
1560−iface bond0 inet dhcp
1561− bond-slaves eth0 eth1
1562− bond-mode active-backup
1563− bond-miimon 100
1564− bond-primary eth0 eth1
1594+ auto bond0
1595+ iface bond0 inet dhcp
1596+ bond-slaves eth0 eth1
1597+ bond-mode active-backup
1598+ bond-miimon 100
1599+ bond-primary eth0 eth1
15651600
15661601 If the above configuration doesn't work, you might have a system using
15671602 upstart for system startup. This is most notably true for recent
15681603 Ubuntu versions. The following stanza in /etc/network/interfaces will
1569−produce the same result on those systems.
1570−
1571−auto bond0
1572−iface bond0 inet dhcp
1573− bond-slaves none
1574− bond-mode active-backup
1575− bond-miimon 100
1576−
1577−auto eth0
1578−iface eth0 inet manual
1579− bond-master bond0
1580− bond-primary eth0 eth1
1581−
1582−auto eth1
1583−iface eth1 inet manual
1584− bond-master bond0
1585− bond-primary eth0 eth1
1586−
1587−For a full list of bond-* supported options in /etc/network/interfaces and some
1588−more advanced examples tailored to you particular distros, see the files in
1604+produce the same result on those systems::
1605+
1606+ auto bond0
1607+ iface bond0 inet dhcp
1608+ bond-slaves none
1609+ bond-mode active-backup
1610+ bond-miimon 100
1611+
1612+ auto eth0
1613+ iface eth0 inet manual
1614+ bond-master bond0
1615+ bond-primary eth0 eth1
1616+
1617+ auto eth1
1618+ iface eth1 inet manual
1619+ bond-master bond0
1620+ bond-primary eth0 eth1
1621+
1622+For a full list of ``bond-*`` supported options in /etc/network/interfaces and
1623+some more advanced examples tailored to you particular distros, see the files in
15891624 /usr/share/doc/ifenslave-2.6.
15901625
15911626 3.6 Overriding Configuration for Special Cases
@@ -1604,37 +1639,37 @@ can safely be sent over either interface. Such configurations may be achieved · 12 unmodified lines
16041639 using the traffic control utilities inherent in linux.
16051640
16061641 By default the bonding driver is multiqueue aware and 16 queues are created
1607−when the driver initializes (see Documentation/networking/multiqueue.txt
1642+when the driver initializes (see Documentation/networking/multiqueue.rst
16081643 for details). If more or less queues are desired the module parameter
16091644 tx_queues can be used to change this value. There is no sysfs parameter
16101645 available as the allocation is done at module init time.
16111646
16121647 The output of the file /proc/net/bonding/bondX has changed so the output Queue
1613−ID is now printed for each slave:
1648+ID is now printed for each slave::
16141649
1615−Bonding Mode: fault-tolerance (active-backup)
1616−Primary Slave: None
1617−Currently Active Slave: eth0
1618−MII Status: up
1619−MII Polling Interval (ms): 0
1620−Up Delay (ms): 0
1621−Down Delay (ms): 0
1650+ Bonding Mode: fault-tolerance (active-backup)
1651+ Primary Slave: None
1652+ Currently Active Slave: eth0
1653+ MII Status: up
1654+ MII Polling Interval (ms): 0
1655+ Up Delay (ms): 0
1656+ Down Delay (ms): 0
16221657
1623−Slave Interface: eth0
1624−MII Status: up
1625−Link Failure Count: 0
1626−Permanent HW addr: 00:1a:a0:12:8f:cb
1627−Slave queue ID: 0
1658+ Slave Interface: eth0
1659+ MII Status: up
1660+ Link Failure Count: 0
1661+ Permanent HW addr: 00:1a:a0:12:8f:cb
1662+ Slave queue ID: 0
16281663
1629−Slave Interface: eth1
1630−MII Status: up
1631−Link Failure Count: 0
1632−Permanent HW addr: 00:1a:a0:12:8f:cc
1633−Slave queue ID: 2
1664+ Slave Interface: eth1
1665+ MII Status: up
1666+ Link Failure Count: 0
1667+ Permanent HW addr: 00:1a:a0:12:8f:cc
1668+ Slave queue ID: 2
16341669
1635−The queue_id for a slave can be set using the command:
1670+The queue_id for a slave can be set using the command::
16361671
1637−# echo "eth1:2" > /sys/class/net/bond0/bonding/queue_id
1672+ # echo "eth1:2" > /sys/class/net/bond0/bonding/queue_id
16381673
16391674 Any interface that needs a queue_id set should set it with multiple calls
16401675 like the one above until proper priorities are set for all interfaces. On
@@ -1645,12 +1680,12 @@ These queue id's can be used in conjunction with the tc utility to configure · 4 unmodified lines
16451680 a multiqueue qdisc and filters to bias certain traffic to transmit on certain
16461681 slave devices. For instance, say we wanted, in the above configuration to
16471682 force all traffic bound to 192.168.1.100 to use eth1 in the bond as its output
1648−device. The following commands would accomplish this:
1683+device. The following commands would accomplish this::
16491684
1650−# tc qdisc add dev bond0 handle 1 root multiq
1685+ # tc qdisc add dev bond0 handle 1 root multiq
16511686
1652−# tc filter add dev bond0 protocol ip parent 1: prio 1 u32 match ip dst \
1653− 192.168.1.100 action skbedit queue_mapping 2
1687+ # tc filter add dev bond0 protocol ip parent 1: prio 1 u32 match ip \
1688+ dst 192.168.1.100 action skbedit queue_mapping 2
16541689
16551690 These commands tell the kernel to attach a multiqueue queue discipline to the
16561691 bond0 interface and filter traffic enqueued to it, such that packets with a dst
@@ -1663,7 +1698,7 @@ that normal output policy selection should take place. One benefit to simply · 6 unmodified lines
16631698 leaving the qid for a slave to 0 is the multiqueue awareness in the bonding
16641699 driver that is now present. This awareness allows tc filters to be placed on
16651700 slave devices as well as bond devices and the bonding driver will simply act as
1666−a pass-through for selecting output queues on the slave device rather than
1701+a pass-through for selecting output queues on the slave device rather than
16671702 output port selection.
16681703
16691704 This feature first appeared in bonding driver version 3.7.0 and support for
@@ -1689,31 +1724,31 @@ few bonding parameters: · 19 unmodified lines
16891724 (a) ad_actor_system : You can set a random mac-address that can be used for
16901725 these LACPDU exchanges. The value can not be either NULL or Multicast.
16911726 Also it's preferable to set the local-admin bit. Following shell code
1692− generates a random mac-address as described above.
1727+ generates a random mac-address as described above::
16931728
1694− # sys_mac_addr=$(printf '%02x:%02x:%02x:%02x:%02x:%02x' \
1695− $(( (RANDOM & 0xFE) | 0x02 )) \
1696− $(( RANDOM & 0xFF )) \
1697− $(( RANDOM & 0xFF )) \
1698− $(( RANDOM & 0xFF )) \
1699− $(( RANDOM & 0xFF )) \
1700− $(( RANDOM & 0xFF )))
1701− # echo $sys_mac_addr > /sys/class/net/bond0/bonding/ad_actor_system
1729+ # sys_mac_addr=$(printf '%02x:%02x:%02x:%02x:%02x:%02x' \
1730+ $(( (RANDOM & 0xFE) | 0x02 )) \
1731+ $(( RANDOM & 0xFF )) \
1732+ $(( RANDOM & 0xFF )) \
1733+ $(( RANDOM & 0xFF )) \
1734+ $(( RANDOM & 0xFF )) \
1735+ $(( RANDOM & 0xFF )))
1736+ # echo $sys_mac_addr > /sys/class/net/bond0/bonding/ad_actor_system
17021737
17031738 (b) ad_actor_sys_prio : Randomize the system priority. The default value
17041739 is 65535, but system can take the value from 1 - 65535. Following shell
1705− code generates random priority and sets it.
1740+ code generates random priority and sets it::
17061741
1707− # sys_prio=$(( 1 + RANDOM + RANDOM ))
1708− # echo $sys_prio > /sys/class/net/bond0/bonding/ad_actor_sys_prio
1742+ # sys_prio=$(( 1 + RANDOM + RANDOM ))
1743+ # echo $sys_prio > /sys/class/net/bond0/bonding/ad_actor_sys_prio
17091744
17101745 (c) ad_user_port_key : Use the user portion of the port-key. The default
17111746 keeps this empty. These are the upper 10 bits of the port-key and value
17121747 ranges from 0 - 1023. Following shell code generates these 10 bits and
1713− sets it.
1748+ sets it::
17141749
1715− # usr_port_key=$(( RANDOM & 0x3FF ))
1716− # echo $usr_port_key > /sys/class/net/bond0/bonding/ad_user_port_key
1750+ # usr_port_key=$(( RANDOM & 0x3FF ))
1751+ # echo $usr_port_key > /sys/class/net/bond0/bonding/ad_user_port_key
17171752
17181753
17191754 4 Querying Bonding Configuration
@@ -1722,81 +1757,81 @@ few bonding parameters: · 2 unmodified lines
17221757 4.1 Bonding Configuration
17231758 -------------------------
17241759
1725− Each bonding device has a read-only file residing in the
1760+Each bonding device has a read-only file residing in the
17261761 /proc/net/bonding directory. The file contents include information
17271762 about the bonding configuration, options and state of each slave.
17281763
1729− For example, the contents of /proc/net/bonding/bond0 after the
1764+For example, the contents of /proc/net/bonding/bond0 after the
17301765 driver is loaded with parameters of mode=0 and miimon=1000 is
1731−generally as follows:
1766+generally as follows::
17321767
17331768 Ethernet Channel Bonding Driver: 2.6.1 (October 29, 2004)
1734− Bonding Mode: load balancing (round-robin)
1735− Currently Active Slave: eth0
1736− MII Status: up
1737− MII Polling Interval (ms): 1000
1738− Up Delay (ms): 0
1739− Down Delay (ms): 0
1740−
1741− Slave Interface: eth1
1742− MII Status: up
1743− Link Failure Count: 1
1744−
1745− Slave Interface: eth0
1746− MII Status: up
1747− Link Failure Count: 1
1748−
1749− The precise format and contents will change depending upon the
1769+ Bonding Mode: load balancing (round-robin)
1770+ Currently Active Slave: eth0
1771+ MII Status: up
1772+ MII Polling Interval (ms): 1000
1773+ Up Delay (ms): 0
1774+ Down Delay (ms): 0
1775+
1776+ Slave Interface: eth1
1777+ MII Status: up
1778+ Link Failure Count: 1
1779+
1780+ Slave Interface: eth0
1781+ MII Status: up
1782+ Link Failure Count: 1
1783+
1784+The precise format and contents will change depending upon the
17501785 bonding configuration, state, and version of the bonding driver.
17511786
17521787 4.2 Network configuration
17531788 -------------------------
17541789
1755− The network configuration can be inspected using the ifconfig
1790+The network configuration can be inspected using the ifconfig
17561791 command. Bonding devices will have the MASTER flag set; Bonding slave
17571792 devices will have the SLAVE flag set. The ifconfig output does not
17581793 contain information on which slaves are associated with which masters.
17591794
1760− In the example below, the bond0 interface is the master
1795+In the example below, the bond0 interface is the master
17611796 (MASTER) while eth0 and eth1 are slaves (SLAVE). Notice all slaves of
17621797 bond0 have the same MAC address (HWaddr) as bond0 for all modes except
1763−TLB and ALB that require a unique MAC address for each slave.
1764−
1765−# /sbin/ifconfig
1766−bond0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4
1767− inet addr:XXX.XXX.XXX.YYY Bcast:XXX.XXX.XXX.255 Mask:255.255.252.0
1768− UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
1769− RX packets:7224794 errors:0 dropped:0 overruns:0 frame:0
1770− TX packets:3286647 errors:1 dropped:0 overruns:1 carrier:0
1771− collisions:0 txqueuelen:0
1772−
1773−eth0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4
1774− UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
1775− RX packets:3573025 errors:0 dropped:0 overruns:0 frame:0
1776− TX packets:1643167 errors:1 dropped:0 overruns:1 carrier:0
1777− collisions:0 txqueuelen:100
1778− Interrupt:10 Base address:0x1080
1779−
1780−eth1 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4
1781− UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
1782− RX packets:3651769 errors:0 dropped:0 overruns:0 frame:0
1783− TX packets:1643480 errors:0 dropped:0 overruns:0 carrier:0
1784− collisions:0 txqueuelen:100
1785− Interrupt:9 Base address:0x1400
1798+TLB and ALB that require a unique MAC address for each slave::
1799+
1800+ # /sbin/ifconfig
1801+ bond0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4
1802+ inet addr:XXX.XXX.XXX.YYY Bcast:XXX.XXX.XXX.255 Mask:255.255.252.0
1803+ UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
1804+ RX packets:7224794 errors:0 dropped:0 overruns:0 frame:0
1805+ TX packets:3286647 errors:1 dropped:0 overruns:1 carrier:0
1806+ collisions:0 txqueuelen:0
1807+
1808+ eth0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4
1809+ UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
1810+ RX packets:3573025 errors:0 dropped:0 overruns:0 frame:0
1811+ TX packets:1643167 errors:1 dropped:0 overruns:1 carrier:0
1812+ collisions:0 txqueuelen:100
1813+ Interrupt:10 Base address:0x1080
1814+
1815+ eth1 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4
1816+ UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
1817+ RX packets:3651769 errors:0 dropped:0 overruns:0 frame:0
1818+ TX packets:1643480 errors:0 dropped:0 overruns:0 carrier:0
1819+ collisions:0 txqueuelen:100
1820+ Interrupt:9 Base address:0x1400
17861821
17871822 5. Switch Configuration
17881823 =======================
17891824
1790− For this section, "switch" refers to whatever system the
1825+For this section, "switch" refers to whatever system the
17911826 bonded devices are directly connected to (i.e., where the other end of
17921827 the cable plugs into). This may be an actual dedicated switch device,
17931828 or it may be another regular system (e.g., another computer running
17941829 Linux),
17951830
1796− The active-backup, balance-tlb and balance-alb modes do not
1831+The active-backup, balance-tlb and balance-alb modes do not
17971832 require any specific configuration of the switch.
17981833
1799− The 802.3ad mode requires that the switch have the appropriate
1834+The 802.3ad mode requires that the switch have the appropriate
18001835 ports configured as an 802.3ad aggregation. The precise method used
18011836 to configure this varies from switch to switch, but, for example, a
18021837 Cisco 3550 series switch requires that the appropriate ports first be
@@ -1804,7 +1839,7 @@ grouped together in a single etherchannel instance, then that · 1 unmodified line
18041839 etherchannel is set to mode "lacp" to enable 802.3ad (instead of
18051840 standard EtherChannel).
18061841
1807− The balance-rr, balance-xor and broadcast modes generally
1842+The balance-rr, balance-xor and broadcast modes generally
18081843 require that the switch have the appropriate ports grouped together.
18091844 The nomenclature for such a group differs between switches, it may be
18101845 called an "etherchannel" (as in the Cisco example, above), a "trunk
@@ -1820,7 +1855,7 @@ with another EtherChannel group. · 9 unmodified lines
18201855 6. 802.1q VLAN Support
18211856 ======================
18221857
1823− It is possible to configure VLAN devices over a bond interface
1858+It is possible to configure VLAN devices over a bond interface
18241859 using the 8021q driver. However, only packets coming from the 8021q
18251860 driver and passing through bonding will be tagged by default. Self
18261861 generated packets, for example, bonding's learning packets or ARP
@@ -1829,7 +1864,7 @@ tagged internally by bonding itself. As a result, bonding must · 2 unmodified lines
18291864 "learn" the VLAN IDs configured above it, and use those IDs to tag
18301865 self generated packets.
18311866
1832− For reasons of simplicity, and to support the use of adapters
1867+For reasons of simplicity, and to support the use of adapters
18331868 that can do VLAN hardware acceleration offloading, the bonding
18341869 interface declares itself as fully hardware offloading capable, it gets
18351870 the add_vid/kill_vid notifications to gather the necessary
@@ -1839,7 +1874,7 @@ should go through an adapter that is not offloading capable are · 3 unmodified lines
18391874 "un-accelerated" by the bonding driver so the VLAN tag sits in the
18401875 regular location.
18411876
1842− VLAN interfaces *must* be added on top of a bonding interface
1877+VLAN interfaces *must* be added on top of a bonding interface
18431878 only after enslaving at least one slave. The bonding interface has a
18441879 hardware address of 00:00:00:00:00:00 until the first slave is added.
18451880 If the VLAN interface is created prior to the first enslavement, it
@@ -1847,23 +1882,23 @@ would pick up the all-zeroes hardware address. Once the first slave · 1 unmodified line
18471882 is attached to the bond, the bond device itself will pick up the
18481883 slave's hardware address, which is then available for the VLAN device.
18491884
1850− Also, be aware that a similar problem can occur if all slaves
1885+Also, be aware that a similar problem can occur if all slaves
18511886 are released from a bond that still has one or more VLAN interfaces on
18521887 top of it. When a new slave is added, the bonding interface will
18531888 obtain its hardware address from the first slave, which might not
18541889 match the hardware address of the VLAN interfaces (which was
18551890 ultimately copied from an earlier slave).
18561891
1857− There are two methods to insure that the VLAN device operates
1892+There are two methods to insure that the VLAN device operates
18581893 with the correct hardware address if all slaves are removed from a
18591894 bond interface:
18601895
1861− 1. Remove all VLAN interfaces then recreate them
1896+1. Remove all VLAN interfaces then recreate them
18621897
1863− 2. Set the bonding interface's hardware address so that it
1898+2. Set the bonding interface's hardware address so that it
18641899 matches the hardware address of the VLAN interfaces.
18651900
1866− Note that changing a VLAN interface's HW address would set the
1901+Note that changing a VLAN interface's HW address would set the
18671902 underlying device -- i.e. the bonding interface -- to promiscuous
18681903 mode, which might not be what you want.
18691904
@@ -1871,24 +1906,24 @@ mode, which might not be what you want. · 1 unmodified line
18711906 7. Link Monitoring
18721907 ==================
18731908
1874− The bonding driver at present supports two schemes for
1909+The bonding driver at present supports two schemes for
18751910 monitoring a slave device's link state: the ARP monitor and the MII
18761911 monitor.
18771912
1878− At the present time, due to implementation restrictions in the
1913+At the present time, due to implementation restrictions in the
18791914 bonding driver itself, it is not possible to enable both ARP and MII
18801915 monitoring simultaneously.
18811916
18821917 7.1 ARP Monitor Operation
18831918 -------------------------
18841919
1885− The ARP monitor operates as its name suggests: it sends ARP
1920+The ARP monitor operates as its name suggests: it sends ARP
18861921 queries to one or more designated peer systems on the network, and
18871922 uses the response as an indication that the link is operating. This
18881923 gives some assurance that traffic is actually flowing to and from one
18891924 or more peers on the local network.
18901925
1891− The ARP monitor relies on the device driver itself to verify
1926+The ARP monitor relies on the device driver itself to verify
18921927 that traffic is flowing. In particular, the driver must keep up to
18931928 date the last receive time, dev->last_rx. Drivers that use NETIF_F_LLTX
18941929 flag must also update netdev_queue->trans_start. If they do not, then the
@@ -1900,36 +1935,36 @@ your device driver is not updating last_rx and trans_start. · 5 unmodified lines
19001935 7.2 Configuring Multiple ARP Targets
19011936 ------------------------------------
19021937
1903− While ARP monitoring can be done with just one target, it can
1938+While ARP monitoring can be done with just one target, it can
19041939 be useful in a High Availability setup to have several targets to
19051940 monitor. In the case of just one target, the target itself may go
19061941 down or have a problem making it unresponsive to ARP requests. Having
19071942 an additional target (or several) increases the reliability of the ARP
19081943 monitoring.
19091944
1910− Multiple ARP targets must be separated by commas as follows:
1945+Multiple ARP targets must be separated by commas as follows::
19111946
1912−# example options for ARP monitoring with three targets
1913−alias bond0 bonding
1914−options bond0 arp_interval=60 arp_ip_target=192.168.0.1,192.168.0.3,192.168.0.9
1947+ # example options for ARP monitoring with three targets
1948+ alias bond0 bonding
1949+ options bond0 arp_interval=60 arp_ip_target=192.168.0.1,192.168.0.3,192.168.0.9
19151950
1916− For just a single target the options would resemble:
1951+For just a single target the options would resemble::
19171952
1918−# example options for ARP monitoring with one target
1919−alias bond0 bonding
1920−options bond0 arp_interval=60 arp_ip_target=192.168.0.100
1953+ # example options for ARP monitoring with one target
1954+ alias bond0 bonding
1955+ options bond0 arp_interval=60 arp_ip_target=192.168.0.100
19211956
19221957
19231958 7.3 MII Monitor Operation
19241959 -------------------------
19251960
1926− The MII monitor monitors only the carrier state of the local
1961+The MII monitor monitors only the carrier state of the local
19271962 network interface. It accomplishes this in one of three ways: by
19281963 depending upon the device driver to maintain its carrier state, by
19291964 querying the device's MII registers, or by making an ethtool query to
19301965 the device.
19311966
1932− If the use_carrier module parameter is 1 (the default value),
1967+If the use_carrier module parameter is 1 (the default value),
19331968 then the MII monitor will rely on the driver for carrier state
19341969 information (via the netif_carrier subsystem). As explained in the
19351970 use_carrier parameter information, above, if the MII monitor fails to
@@ -1937,7 +1972,7 @@ detect carrier loss on the device (e.g., when the cable is physically · 1 unmodified line
19371972 disconnected), it may be that the driver does not support
19381973 netif_carrier.
19391974
1940− If use_carrier is 0, then the MII monitor will first query the
1975+If use_carrier is 0, then the MII monitor will first query the
19411976 device's (via ioctl) MII registers and check the link state. If that
19421977 request fails (not just that it returns carrier down), then the MII
19431978 monitor will make an ethtool ETHOOL_GLINK request to attempt to obtain
@@ -1952,25 +1987,25 @@ up. · 8 unmodified lines
19521987 8.1 Adventures in Routing
19531988 -------------------------
19541989
1955− When bonding is configured, it is important that the slave
1990+When bonding is configured, it is important that the slave
19561991 devices not have routes that supersede routes of the master (or,
19571992 generally, not have routes at all). For example, suppose the bonding
19581993 device bond0 has two slaves, eth0 and eth1, and the routing table is
1959−as follows:
1994+as follows::
19601995
1961−Kernel IP routing table
1962−Destination Gateway Genmask Flags MSS Window irtt Iface
1963−10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 eth0
1964−10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 eth1
1965−10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 bond0
1966−127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo
1996+ Kernel IP routing table
1997+ Destination Gateway Genmask Flags MSS Window irtt Iface
1998+ 10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 eth0
1999+ 10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 eth1
2000+ 10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 bond0
2001+ 127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo
19672002
1968− This routing configuration will likely still update the
2003+This routing configuration will likely still update the
19692004 receive/transmit times in the driver (needed by the ARP monitor), but
19702005 may bypass the bonding driver (because outgoing traffic to, in this
19712006 case, another host on network 10 would use eth0 or eth1 before bond0).
19722007
1973− The ARP monitor (and ARP itself) may become confused by this
2008+The ARP monitor (and ARP itself) may become confused by this
19742009 configuration, because ARP requests (generated by the ARP monitor)
19752010 will be sent on one interface (bond0), but the corresponding reply
19762011 will arrive on a different interface (eth0). This reply looks to ARP
@@ -1978,7 +2013,7 @@ as an unsolicited ARP reply (because ARP matches replies on an · 1 unmodified line
19782013 interface basis), and is discarded. The MII monitor is not affected
19792014 by the state of the routing table.
19802015
1981− The solution here is simply to insure that slaves do not have
2016+The solution here is simply to insure that slaves do not have
19822017 routes of their own, and if for some reason they must, those routes do
19832018 not supersede routes of their master. This should generally be the
19842019 case, but unusual configurations or errant manual or automatic static
@@ -1987,22 +2022,22 @@ route additions may cause trouble. · 2 unmodified lines
19872022 8.2 Ethernet Device Renaming
19882023 ----------------------------
19892024
1990− On systems with network configuration scripts that do not
2025+On systems with network configuration scripts that do not
19912026 associate physical devices directly with network interface names (so
19922027 that the same physical device always has the same "ethX" name), it may
19932028 be necessary to add some special logic to config files in
19942029 /etc/modprobe.d/.
19952030
1996− For example, given a modules.conf containing the following:
2031+For example, given a modules.conf containing the following::
19972032
1998−alias bond0 bonding
1999−options bond0 mode=some-mode miimon=50
2000−alias eth0 tg3
2001−alias eth1 tg3
2002−alias eth2 e1000
2003−alias eth3 e1000
2033+ alias bond0 bonding
2034+ options bond0 mode=some-mode miimon=50
2035+ alias eth0 tg3
2036+ alias eth1 tg3
2037+ alias eth2 e1000
2038+ alias eth3 e1000
20042039
2005− If neither eth0 and eth1 are slaves to bond0, then when the
2040+If neither eth0 and eth1 are slaves to bond0, then when the
20062041 bond0 interface comes up, the devices may end up reordered. This
20072042 happens because bonding is loaded first, then its slave device's
20082043 drivers are loaded next. Since no other drivers have been loaded,
@@ -2010,36 +2045,36 @@ when the e1000 driver loads, it will receive eth0 and eth1 for its · 1 unmodified line
20102045 devices, but the bonding configuration tries to enslave eth2 and eth3
20112046 (which may later be assigned to the tg3 devices).
20122047
2013− Adding the following:
2048+Adding the following::
20142049
2015−add above bonding e1000 tg3
2050+ add above bonding e1000 tg3
20162051
2017− causes modprobe to load e1000 then tg3, in that order, when
2052+causes modprobe to load e1000 then tg3, in that order, when
20182053 bonding is loaded. This command is fully documented in the
20192054 modules.conf manual page.
20202055
2021− On systems utilizing modprobe an equivalent problem can occur.
2056+On systems utilizing modprobe an equivalent problem can occur.
20222057 In this case, the following can be added to config files in
2023−/etc/modprobe.d/ as:
2058+/etc/modprobe.d/ as::
20242059
2025−softdep bonding pre: tg3 e1000
2060+ softdep bonding pre: tg3 e1000
20262061
2027− This will load tg3 and e1000 modules before loading the bonding one.
2062+This will load tg3 and e1000 modules before loading the bonding one.
20282063 Full documentation on this can be found in the modprobe.d and modprobe
20292064 manual pages.
20302065
20312066 8.3. Painfully Slow Or No Failed Link Detection By Miimon
20322067 ---------------------------------------------------------
20332068
2034− By default, bonding enables the use_carrier option, which
2069+By default, bonding enables the use_carrier option, which
20352070 instructs bonding to trust the driver to maintain carrier state.
20362071
2037− As discussed in the options section, above, some drivers do
2072+As discussed in the options section, above, some drivers do
20382073 not support the netif_carrier_on/_off link state tracking system.
20392074 With use_carrier enabled, bonding will always see these links as up,
20402075 regardless of their actual state.
20412076
2042− Additionally, other drivers do support netif_carrier, but do
2077+Additionally, other drivers do support netif_carrier, but do
20432078 not maintain it in real time, e.g., only polling the link state at
20442079 some fixed interval. In this case, miimon will detect failures, but
20452080 only after some long period of time has expired. If it appears that
@@ -2051,7 +2086,7 @@ use_carrier=0 method of querying the registers directly works). If · 5 unmodified lines
20512086 use_carrier=0 does not improve the failover, then the driver may cache
20522087 the registers, or the problem may be elsewhere.
20532088
2054− Also, remember that miimon only checks for the device's
2089+Also, remember that miimon only checks for the device's
20552090 carrier state. It has no way to determine the state of devices on or
20562091 beyond other ports of a switch, or if a switch is refusing to pass
20572092 traffic while still maintaining carrier on.
@@ -2059,7 +2094,7 @@ traffic while still maintaining carrier on. · 1 unmodified line
20592094 9. SNMP agents
20602095 ===============
20612096
2062− If running SNMP agents, the bonding driver should be loaded
2097+If running SNMP agents, the bonding driver should be loaded
20632098 before any network drivers participating in a bond. This requirement
20642099 is due to the interface index (ipAdEntIfIndex) being associated to
20652100 the first interface found with a given IP address. That is, there is
@@ -2070,6 +2105,8 @@ with the eth0 interface. This configuration is shown below, the IP · 4 unmodified lines
20702105 address 192.168.1.1 has an interface index of 2 which indexes to eth0
20712106 in the ifDescr table (ifDescr.2).
20722107
2108+::
2109+
20732110 interfaces.ifTable.ifEntry.ifDescr.1 = lo
20742111 interfaces.ifTable.ifEntry.ifDescr.2 = eth0
20752112 interfaces.ifTable.ifEntry.ifDescr.3 = eth1
@@ -2081,7 +2118,7 @@ in the ifDescr table (ifDescr.2). · 5 unmodified lines
20812118 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.74.20.94 = 4
20822119 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0.1 = 1
20832120
2084− This problem is avoided by loading the bonding driver before
2121+This problem is avoided by loading the bonding driver before
20852122 any network drivers participating in a bond. Below is an example of
20862123 loading the bonding driver first, the IP address 192.168.1.1 is
20872124 correctly associated with ifDescr.2.
@@ -2097,7 +2134,7 @@ correctly associated with ifDescr.2. · 9 unmodified lines
20972134 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.74.20.94 = 5
20982135 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0.1 = 1
20992136
2100− While some distributions may not report the interface name in
2137+While some distributions may not report the interface name in
21012138 ifDescr, the association between the IP address and IfIndex remains
21022139 and SNMP functions such as Interface_Scan_Next will report that
21032140 association.
@@ -2105,34 +2142,34 @@ association. · 1 unmodified line
21052142 10. Promiscuous mode
21062143 ====================
21072144
2108− When running network monitoring tools, e.g., tcpdump, it is
2145+When running network monitoring tools, e.g., tcpdump, it is
21092146 common to enable promiscuous mode on the device, so that all traffic
21102147 is seen (instead of seeing only traffic destined for the local host).
21112148 The bonding driver handles promiscuous mode changes to the bonding
21122149 master device (e.g., bond0), and propagates the setting to the slave
21132150 devices.
21142151
2115− For the balance-rr, balance-xor, broadcast, and 802.3ad modes,
2152+For the balance-rr, balance-xor, broadcast, and 802.3ad modes,
21162153 the promiscuous mode setting is propagated to all slaves.
21172154
2118− For the active-backup, balance-tlb and balance-alb modes, the
2155+For the active-backup, balance-tlb and balance-alb modes, the
21192156 promiscuous mode setting is propagated only to the active slave.
21202157
2121− For balance-tlb mode, the active slave is the slave currently
2158+For balance-tlb mode, the active slave is the slave currently
21222159 receiving inbound traffic.
21232160
2124− For balance-alb mode, the active slave is the slave used as a
2161+For balance-alb mode, the active slave is the slave used as a
21252162 "primary." This slave is used for mode-specific control traffic, for
21262163 sending to peers that are unassigned or if the load is unbalanced.
21272164
2128− For the active-backup, balance-tlb and balance-alb modes, when
2165+For the active-backup, balance-tlb and balance-alb modes, when
21292166 the active slave changes (e.g., due to a link failure), the
21302167 promiscuous setting will be propagated to the new active slave.
21312168
21322169 11. Configuring Bonding for High Availability
21332170 =============================================
21342171
2135− High Availability refers to configurations that provide
2172+High Availability refers to configurations that provide
21362173 maximum network availability by having redundant or backup devices,
21372174 links or switches between the host and the rest of the world. The
21382175 goal is to provide the maximum availability of network connectivity
@@ -2142,7 +2179,7 @@ could provide higher throughput. · 3 unmodified lines
21422179 11.1 High Availability in a Single Switch Topology
21432180 --------------------------------------------------
21442181
2145− If two hosts (or a host and a single switch) are directly
2182+If two hosts (or a host and a single switch) are directly
21462183 connected via multiple physical links, then there is no availability
21472184 penalty to optimizing for maximum bandwidth. In this case, there is
21482185 only one switch (or peer), so if it fails, there is no alternative
@@ -2150,32 +2187,32 @@ access to fail over to. Additionally, the bonding load balance modes · 1 unmodified line
21502187 support link monitoring of their members, so if individual links fail,
21512188 the load will be rebalanced across the remaining devices.
21522189
2153− See Section 12, "Configuring Bonding for Maximum Throughput"
2190+See Section 12, "Configuring Bonding for Maximum Throughput"
21542191 for information on configuring bonding with one peer device.
21552192
21562193 11.2 High Availability in a Multiple Switch Topology
21572194 ----------------------------------------------------
21582195
2159− With multiple switches, the configuration of bonding and the
2196+With multiple switches, the configuration of bonding and the
21602197 network changes dramatically. In multiple switch topologies, there is
21612198 a trade off between network availability and usable bandwidth.
21622199
2163− Below is a sample network, configured to maximize the
2164−availability of the network:
2165−
2166− | |
2167− |port3 port3|
2168− +-----+----+ +-----+----+
2169− | |port2 ISL port2| |
2170− | switch A +--------------------------+ switch B |
2171− | | | |
2172− +-----+----+ +-----++---+
2173− |port1 port1|
2174− | +-------+ |
2175− +-------------+ host1 +---------------+
2176− eth0 +-------+ eth1
2177−
2178− In this configuration, there is a link between the two
2200+Below is a sample network, configured to maximize the
2201+availability of the network::
2202+
2203+ | |
2204+ |port3 port3|
2205+ +-----+----+ +-----+----+
2206+ | |port2 ISL port2| |
2207+ | switch A +--------------------------+ switch B |
2208+ | | | |
2209+ +-----+----+ +-----++---+
2210+ |port1 port1|
2211+ | +-------+ |
2212+ +-------------+ host1 +---------------+
2213+ eth0 +-------+ eth1
2214+
2215+In this configuration, there is a link between the two
21792216 switches (ISL, or inter switch link), and multiple ports connecting to
21802217 the outside world ("port3" on each switch). There is no technical
21812218 reason that this could not be extended to a third switch.
@@ -2183,19 +2220,21 @@ reason that this could not be extended to a third switch. · 1 unmodified line
21832220 11.2.1 HA Bonding Mode Selection for Multiple Switch Topology
21842221 -------------------------------------------------------------
21852222
2186− In a topology such as the example above, the active-backup and
2223+In a topology such as the example above, the active-backup and
21872224 broadcast modes are the only useful bonding modes when optimizing for
21882225 availability; the other modes require all links to terminate on the
21892226 same peer for them to behave rationally.
21902227
2191−active-backup: This is generally the preferred mode, particularly if
2228+active-backup:
2229+ This is generally the preferred mode, particularly if
21922230 the switches have an ISL and play together well. If the
21932231 network configuration is such that one switch is specifically
21942232 a backup switch (e.g., has lower capacity, higher cost, etc),
21952233 then the primary option can be used to insure that the
21962234 preferred link is always used when it is available.
21972235
2198−broadcast: This mode is really a special purpose mode, and is suitable
2236+broadcast:
2237+ This mode is really a special purpose mode, and is suitable
21992238 only for very specific needs. For example, if the two
22002239 switches are not connected (no ISL), and the networks beyond
22012240 them are totally independent. In this case, if it is
@@ -2205,7 +2244,7 @@ broadcast: This mode is really a special purpose mode, and is suitable · 3 unmodified lines
22052244 11.2.2 HA Link Monitoring Selection for Multiple Switch Topology
22062245 ----------------------------------------------------------------
22072246
2208− The choice of link monitoring ultimately depends upon your
2247+The choice of link monitoring ultimately depends upon your
22092248 switch. If the switch can reliably fail ports in response to other
22102249 failures, then either the MII or ARP monitors should work. For
22112250 example, in the above example, if the "port3" link fails at the remote
@@ -2213,7 +2252,7 @@ end, the MII monitor has no direct means to detect this. The ARP · 1 unmodified line
22132252 monitor could be configured with a target at the remote end of port3,
22142253 thus detecting that failure without switch support.
22152254
2216− In general, however, in a multiple switch topology, the ARP
2255+In general, however, in a multiple switch topology, the ARP
22172256 monitor can provide a higher level of reliability in detecting end to
22182257 end connectivity failures (which may be caused by the failure of any
22192258 individual component to pass traffic for any reason). Additionally,
@@ -2222,7 +2261,7 @@ one for each switch in the network). This will insure that, · 2 unmodified lines
22222261 regardless of which switch is active, the ARP monitor has a suitable
22232262 target to query.
22242263
2225− Note, also, that of late many switches now support a functionality
2264+Note, also, that of late many switches now support a functionality
22262265 generally referred to as "trunk failover." This is a feature of the
22272266 switch that causes the link state of a particular switch port to be set
22282267 down (or up) when the state of another switch port goes down (or up).
@@ -2238,18 +2277,18 @@ suitable switches. · 9 unmodified lines
22382277 12.1 Maximizing Throughput in a Single Switch Topology
22392278 ------------------------------------------------------
22402279
2241− In a single switch configuration, the best method to maximize
2280+In a single switch configuration, the best method to maximize
22422281 throughput depends upon the application and network environment. The
22432282 various load balancing modes each have strengths and weaknesses in
22442283 different environments, as detailed below.
22452284
2246− For this discussion, we will break down the topologies into
2285+For this discussion, we will break down the topologies into
22472286 two categories. Depending upon the destination of most traffic, we
22482287 categorize them into either "gatewayed" or "local" configurations.
22492288
2250− In a gatewayed configuration, the "switch" is acting primarily
2289+In a gatewayed configuration, the "switch" is acting primarily
22512290 as a router, and the majority of traffic passes through this router to
2252−other networks. An example would be the following:
2291+other networks. An example would be the following::
22532292
22542293
22552294 +----------+ +----------+
@@ -2259,25 +2298,25 @@ other networks. An example would be the following: · 3 unmodified lines
22592298 | |eth1 port2| | here somewhere
22602299 +----------+ +----------+
22612300
2262− The router may be a dedicated router device, or another host
2301+The router may be a dedicated router device, or another host
22632302 acting as a gateway. For our discussion, the important point is that
22642303 the majority of traffic from Host A will pass through the router to
22652304 some other network before reaching its final destination.
22662305
2267− In a gatewayed network configuration, although Host A may
2306+In a gatewayed network configuration, although Host A may
22682307 communicate with many other systems, all of its traffic will be sent
22692308 and received via one other peer on the local network, the router.
22702309
2271− Note that the case of two systems connected directly via
2310+Note that the case of two systems connected directly via
22722311 multiple physical links is, for purposes of configuring bonding, the
22732312 same as a gatewayed configuration. In that case, it happens that all
22742313 traffic is destined for the "gateway" itself, not some other network
22752314 beyond the gateway.
22762315
2277− In a local configuration, the "switch" is acting primarily as
2316+In a local configuration, the "switch" is acting primarily as
22782317 a switch, and the majority of traffic passes through this switch to
22792318 reach other stations on the same network. An example would be the
2280−following:
2319+following::
22812320
22822321 +----------+ +----------+ +--------+
22832322 | |eth0 port1| +-------+ Host B |
@@ -2287,19 +2326,19 @@ following: · 3 unmodified lines
22872326 +----------+ +----------+port4 +--------+
22882327
22892328
2290− Again, the switch may be a dedicated switch device, or another
2329+Again, the switch may be a dedicated switch device, or another
22912330 host acting as a gateway. For our discussion, the important point is
22922331 that the majority of traffic from Host A is destined for other hosts
22932332 on the same local network (Hosts B and C in the above example).
22942333
2295− In summary, in a gatewayed configuration, traffic to and from
2334+In summary, in a gatewayed configuration, traffic to and from
22962335 the bonded device will be to the same MAC level peer on the network
22972336 (the gateway itself, i.e., the router), regardless of its final
22982337 destination. In a local configuration, traffic flows directly to and
22992338 from the final destinations, thus, each destination (Host B, Host C)
23002339 will be addressed directly by their individual MAC addresses.
23012340
2302− This distinction between a gatewayed and a local network
2341+This distinction between a gatewayed and a local network
23032342 configuration is important because many of the load balancing modes
23042343 available use the MAC addresses of the local network source and
23052344 destination to make load balancing decisions. The behavior of each
@@ -2309,11 +2348,12 @@ mode is described below. · 3 unmodified lines
23092348 12.1.1 MT Bonding Mode Selection for Single Switch Topology
23102349 -----------------------------------------------------------
23112350
2312− This configuration is the easiest to set up and to understand,
2351+This configuration is the easiest to set up and to understand,
23132352 although you will have to decide which bonding mode best suits your
23142353 needs. The trade offs for each mode are detailed below:
23152354
2316−balance-rr: This mode is the only mode that will permit a single
2355+balance-rr:
2356+ This mode is the only mode that will permit a single
23172357 TCP/IP connection to stripe traffic across multiple
23182358 interfaces. It is therefore the only mode that will allow a
23192359 single TCP/IP stream to utilize more than one interface's
@@ -2351,7 +2391,8 @@ balance-rr: This mode is the only mode that will permit a single · 31 unmodified lines
23512391 This mode requires the switch to have the appropriate ports
23522392 configured for "etherchannel" or "trunking."
23532393
2354−active-backup: There is not much advantage in this network topology to
2394+active-backup:
2395+ There is not much advantage in this network topology to
23552396 the active-backup mode, as the inactive backup devices are all
23562397 connected to the same peer as the primary. In this case, a
23572398 load balancing mode (with link monitoring) will provide the
@@ -2361,7 +2402,8 @@ active-backup: There is not much advantage in this network topology to · 3 unmodified lines
23612402 have value if the hardware available does not support any of
23622403 the load balance modes.
23632404
2364−balance-xor: This mode will limit traffic such that packets destined
2405+balance-xor:
2406+ This mode will limit traffic such that packets destined
23652407 for specific peers will always be sent over the same
23662408 interface. Since the destination is determined by the MAC
23672409 addresses involved, this mode works best in a "local" network
@@ -2373,10 +2415,12 @@ balance-xor: This mode will limit traffic such that packets destined · 5 unmodified lines
23732415 As with balance-rr, the switch ports need to be configured for
23742416 "etherchannel" or "trunking."
23752417
2376−broadcast: Like active-backup, there is not much advantage to this
2418+broadcast:
2419+ Like active-backup, there is not much advantage to this
23772420 mode in this type of network topology.
23782421
2379−802.3ad: This mode can be a good choice for this type of network
2422+802.3ad:
2423+ This mode can be a good choice for this type of network
23802424 topology. The 802.3ad mode is an IEEE standard, so all peers
23812425 that implement 802.3ad should interoperate well. The 802.3ad
23822426 protocol includes automatic configuration of the aggregates,
@@ -2390,7 +2434,7 @@ broadcast: Like active-backup, there is not much advantage to this · 7 unmodified lines
23902434 the same speed and duplex. Also, as with all bonding load
23912435 balance modes other than balance-rr, no single connection will
23922436 be able to utilize more than a single interface's worth of
2393− bandwidth.
2437+ bandwidth.
23942438
23952439 Additionally, the linux bonding 802.3ad implementation
23962440 distributes traffic by peer (using an XOR of MAC addresses
@@ -2404,7 +2448,8 @@ broadcast: Like active-backup, there is not much advantage to this · 7 unmodified lines
24042448 Finally, the 802.3ad mode mandates the use of the MII monitor,
24052449 therefore, the ARP monitor is not available in this mode.
24062450
2407−balance-tlb: The balance-tlb mode balances outgoing traffic by peer.
2451+balance-tlb:
2452+ The balance-tlb mode balances outgoing traffic by peer.
24082453 Since the balancing is done according to MAC address, in a
24092454 "gatewayed" configuration (as described above), this mode will
24102455 send all traffic across a single device. However, in a
@@ -2422,7 +2467,8 @@ balance-tlb: The balance-tlb mode balances outgoing traffic by peer. · 11 unmodified lines
24222467 network device driver of the slave interfaces, and the ARP
24232468 monitor is not available.
24242469
2425−balance-alb: This mode is everything that balance-tlb is, and more.
2470+balance-alb:
2471+ This mode is everything that balance-tlb is, and more.
24262472 It has all of the features (and restrictions) of balance-tlb,
24272473 and will also balance incoming traffic from local network
24282474 peers (as described in the Bonding Module Options section,
@@ -2435,7 +2481,7 @@ balance-alb: This mode is everything that balance-tlb is, and more. · 6 unmodified lines
24352481 12.1.2 MT Link Monitoring for Single Switch Topology
24362482 ----------------------------------------------------
24372483
2438− The choice of link monitoring may largely depend upon which
2484+The choice of link monitoring may largely depend upon which
24392485 mode you choose to use. The more advanced load balancing modes do not
24402486 support the use of the ARP monitor, and are thus restricted to using
24412487 the MII monitor (which does not provide as high a level of end to end
@@ -2444,27 +2490,27 @@ assurance as the ARP monitor). · 2 unmodified lines
24442490 12.2 Maximum Throughput in a Multiple Switch Topology
24452491 -----------------------------------------------------
24462492
2447− Multiple switches may be utilized to optimize for throughput
2493+Multiple switches may be utilized to optimize for throughput
24482494 when they are configured in parallel as part of an isolated network
2449−between two or more systems, for example:
2450−
2451− +-----------+
2452− | Host A |
2453− +-+---+---+-+
2454− | | |
2455− +--------+ | +---------+
2456− | | |
2457− +------+---+ +-----+----+ +-----+----+
2458− | Switch A | | Switch B | | Switch C |
2459− +------+---+ +-----+----+ +-----+----+
2460− | | |
2461− +--------+ | +---------+
2462− | | |
2463− +-+---+---+-+
2464− | Host B |
2465− +-----------+
2466−
2467− In this configuration, the switches are isolated from one
2495+between two or more systems, for example::
2496+
2497+ +-----------+
2498+ | Host A |
2499+ +-+---+---+-+
2500+ | | |
2501+ +--------+ | +---------+
2502+ | | |
2503+ +------+---+ +-----+----+ +-----+----+
2504+ | Switch A | | Switch B | | Switch C |
2505+ +------+---+ +-----+----+ +-----+----+
2506+ | | |
2507+ +--------+ | +---------+
2508+ | | |
2509+ +-+---+---+-+
2510+ | Host B |
2511+ +-----------+
2512+
2513+In this configuration, the switches are isolated from one
24682514 another. One reason to employ a topology such as this is for an
24692515 isolated network with many hosts (a cluster configured for high
24702516 performance, for example), using multiple smaller switches can be more
@@ -2472,14 +2518,14 @@ cost effective than a single larger switch, e.g., on a network with 24 · 1 unmodified line
24722518 hosts, three 24 port switches can be significantly less expensive than
24732519 a single 72 port switch.
24742520
2475− If access beyond the network is required, an individual host
2521+If access beyond the network is required, an individual host
24762522 can be equipped with an additional network device connected to an
24772523 external network; this host then additionally acts as a gateway.
24782524
24792525 12.2.1 MT Bonding Mode Selection for Multiple Switch Topology
24802526 -------------------------------------------------------------
24812527
2482− In actual practice, the bonding mode typically employed in
2528+In actual practice, the bonding mode typically employed in
24832529 configurations of this type is balance-rr. Historically, in this
24842530 network configuration, the usual caveats about out of order packet
24852531 delivery are mitigated by the use of network adapters that do not do
@@ -2492,7 +2538,7 @@ utilize greater than one interface's bandwidth. · 6 unmodified lines
24922538 12.2.2 MT Link Monitoring for Multiple Switch Topology
24932539 ------------------------------------------------------
24942540
2495− Again, in actual practice, the MII monitor is most often used
2541+Again, in actual practice, the MII monitor is most often used
24962542 in this configuration, as performance is given preference over
24972543 availability. The ARP monitor will function in this topology, but its
24982544 advantages over the MII monitor are mitigated by the volume of probes
@@ -2505,10 +2551,10 @@ host in the network is configured with bonding). · 6 unmodified lines
25052551 13.1 Link Establishment and Failover Delays
25062552 -------------------------------------------
25072553
2508− Some switches exhibit undesirable behavior with regard to the
2554+Some switches exhibit undesirable behavior with regard to the
25092555 timing of link up and down reporting by the switch.
25102556
2511− First, when a link comes up, some switches may indicate that
2557+First, when a link comes up, some switches may indicate that
25122558 the link is up (carrier available), but not pass traffic over the
25132559 interface for some period of time. This delay is typically due to
25142560 some type of autonegotiation or routing protocol, but may also occur
@@ -2517,12 +2563,12 @@ failure). If you find this to be a problem, specify an appropriate · 2 unmodified lines
25172563 value to the updelay bonding module option to delay the use of the
25182564 relevant interface(s).
25192565
2520− Second, some switches may "bounce" the link state one or more
2566+Second, some switches may "bounce" the link state one or more
25212567 times while a link is changing state. This occurs most commonly while
25222568 the switch is initializing. Again, an appropriate updelay value may
25232569 help.
25242570
2525− Note that when a bonding interface has no active links, the
2571+Note that when a bonding interface has no active links, the
25262572 driver will immediately reuse the first link that goes up, even if the
25272573 updelay parameter has been specified (the updelay is ignored in this
25282574 case). If there are slave interfaces waiting for the updelay timeout
@@ -2532,7 +2578,7 @@ value of updelay has been overestimated, and since this occurs only in · 3 unmodified lines
25322578 cases with no connectivity, there is no additional penalty for
25332579 ignoring the updelay.
25342580
2535− In addition to the concerns about switch timings, if your
2581+In addition to the concerns about switch timings, if your
25362582 switches take a long time to go into backup mode, it may be desirable
25372583 to not activate a backup interface immediately after a link goes down.
25382584 Failover may be delayed via the downdelay bonding module option.
@@ -2540,31 +2586,31 @@ Failover may be delayed via the downdelay bonding module option. · 1 unmodified line
25402586 13.2 Duplicated Incoming Packets
25412587 --------------------------------
25422588
2543− NOTE: Starting with version 3.0.2, the bonding driver has logic to
2589+NOTE: Starting with version 3.0.2, the bonding driver has logic to
25442590 suppress duplicate packets, which should largely eliminate this problem.
25452591 The following description is kept for reference.
25462592
2547− It is not uncommon to observe a short burst of duplicated
2593+It is not uncommon to observe a short burst of duplicated
25482594 traffic when the bonding device is first used, or after it has been
25492595 idle for some period of time. This is most easily observed by issuing
25502596 a "ping" to some other host on the network, and noticing that the
25512597 output from ping flags duplicates (typically one per slave).
25522598
2553− For example, on a bond in active-backup mode with five slaves
2554−all connected to one switch, the output may appear as follows:
2555−
2556−# ping -n 10.0.4.2
2557−PING 10.0.4.2 (10.0.4.2) from 10.0.3.10 : 56(84) bytes of data.
2558−64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.7 ms
2559−64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!)
2560−64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!)
2561−64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!)
2562−64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!)
2563−64 bytes from 10.0.4.2: icmp_seq=2 ttl=64 time=0.216 ms
2564−64 bytes from 10.0.4.2: icmp_seq=3 ttl=64 time=0.267 ms
2565−64 bytes from 10.0.4.2: icmp_seq=4 ttl=64 time=0.222 ms
2566−
2567− This is not due to an error in the bonding driver, rather, it
2599+For example, on a bond in active-backup mode with five slaves
2600+all connected to one switch, the output may appear as follows::
2601+
2602+ # ping -n 10.0.4.2
2603+ PING 10.0.4.2 (10.0.4.2) from 10.0.3.10 : 56(84) bytes of data.
2604+ 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.7 ms
2605+ 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!)
2606+ 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!)
2607+ 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!)
2608+ 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!)
2609+ 64 bytes from 10.0.4.2: icmp_seq=2 ttl=64 time=0.216 ms
2610+ 64 bytes from 10.0.4.2: icmp_seq=3 ttl=64 time=0.267 ms
2611+ 64 bytes from 10.0.4.2: icmp_seq=4 ttl=64 time=0.222 ms
2612+
2613+This is not due to an error in the bonding driver, rather, it
25682614 is a side effect of how many switches update their MAC forwarding
25692615 tables. Initially, the switch does not associate the MAC address in
25702616 the packet with a particular switch port, and so it may send the
@@ -2574,7 +2620,7 @@ single switch, when the switch (temporarily) floods the traffic to all · 3 unmodified lines
25742620 ports, the bond device receives multiple copies of the same packet
25752621 (one per slave device).
25762622
2577− The duplicated packet behavior is switch dependent, some
2623+The duplicated packet behavior is switch dependent, some
25782624 switches exhibit this, and some do not. On switches that display this
25792625 behavior, it can be induced by clearing the MAC forwarding table (on
25802626 most Cisco switches, the privileged command "clear mac address-table
@@ -2583,16 +2629,16 @@ dynamic" will accomplish this). · 2 unmodified lines
25832629 14. Hardware Specific Considerations
25842630 ====================================
25852631
2586− This section contains additional information for configuring
2632+This section contains additional information for configuring
25872633 bonding on specific hardware platforms, or for interfacing bonding
25882634 with particular switches or other devices.
25892635
25902636 14.1 IBM BladeCenter
25912637 --------------------
25922638
2593− This applies to the JS20 and similar systems.
2639+This applies to the JS20 and similar systems.
25942640
2595− On the JS20 blades, the bonding driver supports only
2641+On the JS20 blades, the bonding driver supports only
25962642 balance-rr, active-backup, balance-tlb and balance-alb modes. This is
25972643 largely due to the network topology inside the BladeCenter, detailed
25982644 below.
@@ -2600,7 +2646,7 @@ below. · 1 unmodified line
26002646 JS20 network adapter information
26012647 --------------------------------
26022648
2603− All JS20s come with two Broadcom Gigabit Ethernet ports
2649+All JS20s come with two Broadcom Gigabit Ethernet ports
26042650 integrated on the planar (that's "motherboard" in IBM-speak). In the
26052651 BladeCenter chassis, the eth0 port of all JS20 blades is hard wired to
26062652 I/O Module #1; similarly, all eth1 ports are wired to I/O Module #2.
@@ -2608,36 +2654,36 @@ An add-on Broadcom daughter card can be installed on a JS20 to provide · 1 unmodified line
26082654 two more Gigabit Ethernet ports. These ports, eth2 and eth3, are
26092655 wired to I/O Modules 3 and 4, respectively.
26102656
2611− Each I/O Module may contain either a switch or a passthrough
2657+Each I/O Module may contain either a switch or a passthrough
26122658 module (which allows ports to be directly connected to an external
26132659 switch). Some bonding modes require a specific BladeCenter internal
26142660 network topology in order to function; these are detailed below.
26152661
2616− Additional BladeCenter-specific networking information can be
2662+Additional BladeCenter-specific networking information can be
26172663 found in two IBM Redbooks (www.ibm.com/redbooks):
26182664
2619−"IBM eServer BladeCenter Networking Options"
2620−"IBM eServer BladeCenter Layer 2-7 Network Switching"
2665+- "IBM eServer BladeCenter Networking Options"
2666+- "IBM eServer BladeCenter Layer 2-7 Network Switching"
26212667
26222668 BladeCenter networking configuration
26232669 ------------------------------------
26242670
2625− Because a BladeCenter can be configured in a very large number
2671+Because a BladeCenter can be configured in a very large number
26262672 of ways, this discussion will be confined to describing basic
26272673 configurations.
26282674
2629− Normally, Ethernet Switch Modules (ESMs) are used in I/O
2675+Normally, Ethernet Switch Modules (ESMs) are used in I/O
26302676 modules 1 and 2. In this configuration, the eth0 and eth1 ports of a
26312677 JS20 will be connected to different internal switches (in the
26322678 respective I/O modules).
26332679
2634− A passthrough module (OPM or CPM, optical or copper,
2680+A passthrough module (OPM or CPM, optical or copper,
26352681 passthrough module) connects the I/O module directly to an external
26362682 switch. By using PMs in I/O module #1 and #2, the eth0 and eth1
26372683 interfaces of a JS20 can be redirected to the outside world and
26382684 connected to a common external switch.
26392685
2640− Depending upon the mix of ESMs and PMs, the network will
2686+Depending upon the mix of ESMs and PMs, the network will
26412687 appear to bonding as either a single switch topology (all PMs) or as a
26422688 multiple switch topology (one or more ESMs, zero or more PMs). It is
26432689 also possible to connect ESMs together, resulting in a configuration
@@ -2647,24 +2693,24 @@ Topology," above. · 3 unmodified lines
26472693 Requirements for specific modes
26482694 -------------------------------
26492695
2650− The balance-rr mode requires the use of passthrough modules
2696+The balance-rr mode requires the use of passthrough modules
26512697 for devices in the bond, all connected to an common external switch.
26522698 That switch must be configured for "etherchannel" or "trunking" on the
26532699 appropriate ports, as is usual for balance-rr.
26542700
2655− The balance-alb and balance-tlb modes will function with
2701+The balance-alb and balance-tlb modes will function with
26562702 either switch modules or passthrough modules (or a mix). The only
26572703 specific requirement for these modes is that all network interfaces
26582704 must be able to reach all destinations for traffic sent over the
26592705 bonding device (i.e., the network must converge at some point outside
26602706 the BladeCenter).
26612707
2662− The active-backup mode has no additional requirements.
2708+The active-backup mode has no additional requirements.
26632709
26642710 Link monitoring issues
26652711 ----------------------
26662712
2667− When an Ethernet Switch Module is in place, only the ARP
2713+When an Ethernet Switch Module is in place, only the ARP
26682714 monitor will reliably detect link loss to an external switch. This is
26692715 nothing unusual, but examination of the BladeCenter cabinet would
26702716 suggest that the "external" network ports are the ethernet ports for
@@ -2672,166 +2718,173 @@ the system, when it fact there is a switch between these "external" · 1 unmodified line
26722718 ports and the devices on the JS20 system itself. The MII monitor is
26732719 only able to detect link failures between the ESM and the JS20 system.
26742720
2675− When a passthrough module is in place, the MII monitor does
2721+When a passthrough module is in place, the MII monitor does
26762722 detect failures to the "external" port, which is then directly
26772723 connected to the JS20 system.
26782724
26792725 Other concerns
26802726 --------------
26812727
2682− The Serial Over LAN (SoL) link is established over the primary
2728+The Serial Over LAN (SoL) link is established over the primary
26832729 ethernet (eth0) only, therefore, any loss of link to eth0 will result
26842730 in losing your SoL connection. It will not fail over with other
26852731 network traffic, as the SoL system is beyond the control of the
26862732 bonding driver.
26872733
2688− It may be desirable to disable spanning tree on the switch
2734+It may be desirable to disable spanning tree on the switch
26892735 (either the internal Ethernet Switch Module, or an external switch) to
26902736 avoid fail-over delay issues when using bonding.
26912737
2692−
2738+
26932739 15. Frequently Asked Questions
26942740 ==============================
26952741
26962742 1. Is it SMP safe?
2743+-------------------
26972744
2698− Yes. The old 2.0.xx channel bonding patch was not SMP safe.
2745+Yes. The old 2.0.xx channel bonding patch was not SMP safe.
26992746 The new driver was designed to be SMP safe from the start.
27002747
27012748 2. What type of cards will work with it?
2749+-----------------------------------------
27022750
2703− Any Ethernet type cards (you can even mix cards - a Intel
2751+Any Ethernet type cards (you can even mix cards - a Intel
27042752 EtherExpress PRO/100 and a 3com 3c905b, for example). For most modes,
27052753 devices need not be of the same speed.
27062754
2707− Starting with version 3.2.1, bonding also supports Infiniband
2755+Starting with version 3.2.1, bonding also supports Infiniband
27082756 slaves in active-backup mode.
27092757
27102758 3. How many bonding devices can I have?
2759+----------------------------------------
27112760
2712− There is no limit.
2761+There is no limit.
27132762
27142763 4. How many slaves can a bonding device have?
2764+----------------------------------------------
27152765
2716− This is limited only by the number of network interfaces Linux
2766+This is limited only by the number of network interfaces Linux
27172767 supports and/or the number of network cards you can place in your
27182768 system.
27192769
27202770 5. What happens when a slave link dies?
2771+----------------------------------------
27212772
2722− If link monitoring is enabled, then the failing device will be
2773+If link monitoring is enabled, then the failing device will be
27232774 disabled. The active-backup mode will fail over to a backup link, and
27242775 other modes will ignore the failed link. The link will continue to be
27252776 monitored, and should it recover, it will rejoin the bond (in whatever
27262777 manner is appropriate for the mode). See the sections on High
27272778 Availability and the documentation for each mode for additional
27282779 information.
2729−
2730− Link monitoring can be enabled via either the miimon or
2780+
2781+Link monitoring can be enabled via either the miimon or
27312782 arp_interval parameters (described in the module parameters section,
27322783 above). In general, miimon monitors the carrier state as sensed by
27332784 the underlying network device, and the arp monitor (arp_interval)
27342785 monitors connectivity to another host on the local network.
27352786
2736− If no link monitoring is configured, the bonding driver will
2787+If no link monitoring is configured, the bonding driver will
27372788 be unable to detect link failures, and will assume that all links are
27382789 always available. This will likely result in lost packets, and a
27392790 resulting degradation of performance. The precise performance loss
27402791 depends upon the bonding mode and network configuration.
27412792
27422793 6. Can bonding be used for High Availability?
2794+----------------------------------------------
27432795
2744− Yes. See the section on High Availability for details.
2796+Yes. See the section on High Availability for details.
27452797
27462798 7. Which switches/systems does it work with?
2799+---------------------------------------------
27472800
2748− The full answer to this depends upon the desired mode.
2801+The full answer to this depends upon the desired mode.
27492802
2750− In the basic balance modes (balance-rr and balance-xor), it
2803+In the basic balance modes (balance-rr and balance-xor), it
27512804 works with any system that supports etherchannel (also called
27522805 trunking). Most managed switches currently available have such
27532806 support, and many unmanaged switches as well.
27542807
2755− The advanced balance modes (balance-tlb and balance-alb) do
2808+The advanced balance modes (balance-tlb and balance-alb) do
27562809 not have special switch requirements, but do need device drivers that
27572810 support specific features (described in the appropriate section under
27582811 module parameters, above).
27592812
2760− In 802.3ad mode, it works with systems that support IEEE
2813+In 802.3ad mode, it works with systems that support IEEE
27612814 802.3ad Dynamic Link Aggregation. Most managed and many unmanaged
27622815 switches currently available support 802.3ad.
27632816
2764− The active-backup mode should work with any Layer-II switch.
2817+The active-backup mode should work with any Layer-II switch.
27652818
27662819 8. Where does a bonding device get its MAC address from?
2820+---------------------------------------------------------
27672821
2768− When using slave devices that have fixed MAC addresses, or when
2822+When using slave devices that have fixed MAC addresses, or when
27692823 the fail_over_mac option is enabled, the bonding device's MAC address is
27702824 the MAC address of the active slave.
27712825
2772− For other configurations, if not explicitly configured (with
2826+For other configurations, if not explicitly configured (with
27732827 ifconfig or ip link), the MAC address of the bonding device is taken from
27742828 its first slave device. This MAC address is then passed to all following
27752829 slaves and remains persistent (even if the first slave is removed) until
27762830 the bonding device is brought down or reconfigured.
27772831
2778− If you wish to change the MAC address, you can set it with
2779−ifconfig or ip link:
2832+If you wish to change the MAC address, you can set it with
2833+ifconfig or ip link::
27802834
2781−# ifconfig bond0 hw ether 00:11:22:33:44:55
2835+ # ifconfig bond0 hw ether 00:11:22:33:44:55
27822836
2783−# ip link set bond0 address 66:77:88:99:aa:bb
2837+ # ip link set bond0 address 66:77:88:99:aa:bb
27842838
2785− The MAC address can be also changed by bringing down/up the
2786−device and then changing its slaves (or their order):
2839+The MAC address can be also changed by bringing down/up the
2840+device and then changing its slaves (or their order)::
27872841
2788−# ifconfig bond0 down ; modprobe -r bonding
2789−# ifconfig bond0 .... up
2790−# ifenslave bond0 eth...
2842+ # ifconfig bond0 down ; modprobe -r bonding
2843+ # ifconfig bond0 .... up
2844+ # ifenslave bond0 eth...
27912845
2792− This method will automatically take the address from the next
2846+This method will automatically take the address from the next
27932847 slave that is added.
27942848
2795− To restore your slaves' MAC addresses, you need to detach them
2796−from the bond (`ifenslave -d bond0 eth0'). The bonding driver will
2849+To restore your slaves' MAC addresses, you need to detach them
2850+from the bond (``ifenslave -d bond0 eth0``). The bonding driver will
27972851 then restore the MAC addresses that the slaves had before they were
27982852 enslaved.
27992853
28002854 16. Resources and Links
28012855 =======================
28022856
2803− The latest version of the bonding driver can be found in the latest
2857+The latest version of the bonding driver can be found in the latest
28042858 version of the linux kernel, found on http://kernel.org
28052859
2806− The latest version of this document can be found in the latest kernel
2807−source (named Documentation/networking/bonding.txt).
2860+The latest version of this document can be found in the latest kernel
2861+source (named Documentation/networking/bonding.rst).
28082862
2809− Discussions regarding the usage of the bonding driver take place on the
2863+Discussions regarding the usage of the bonding driver take place on the
28102864 bonding-devel mailing list, hosted at sourceforge.net. If you have questions or
28112865 problems, post them to the list. The list address is:
28122866
28132867 bonding-devel@lists.sourceforge.net
28142868
2815− The administrative interface (to subscribe or unsubscribe) can
2869+The administrative interface (to subscribe or unsubscribe) can
28162870 be found at:
28172871
28182872 https://lists.sourceforge.net/lists/listinfo/bonding-devel
28192873
2820− Discussions regarding the development of the bonding driver take place
2874+Discussions regarding the development of the bonding driver take place
28212875 on the main Linux network mailing list, hosted at vger.kernel.org. The list
28222876 address is:
28232877
28242878 netdev@vger.kernel.org
28252879
2826− The administrative interface (to subscribe or unsubscribe) can
2880+The administrative interface (to subscribe or unsubscribe) can
28272881 be found at:
28282882
28292883 http://vger.kernel.org/vger-lists.html#netdev
28302884
28312885 Donald Becker's Ethernet Drivers and diag programs may be found at :
2832− - http://web.archive.org/web/*/http://www.scyld.com/network/
2886+
2887+ - http://web.archive.org/web/%2E/http://www.scyld.com/network/
28332888
28342889 You will also find a lot of information regarding Ethernet, NWay, MII,
28352890 etc. at www.scyld.com.
2836−
2837−-- END --
Documentation/networking/caif/caif.rst+0−2
@@ -1,5 +1,3 @@
1−:orphan:
2−
31 .. SPDX-License-Identifier: GPL-2.0
42 .. include:: <isonum.txt>
53
Documentation/networking/caif/index.rst+13−0
@@ -0,0 +1,13 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+CAIF
4+====
5+
6+Contents:
7+
8+.. toctree::
9+ :maxdepth: 2
10+
11+ linux_caif
12+ caif
13+ spi_porting
Documentation/networking/caif/linux_caif.rstrenamed from Documentation/networking/caif/Linux-CAIF.txt+37−17
@@ -1,12 +1,19 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+.. include:: <isonum.txt>
3+
4+==========
15 Linux CAIF
2−===========
3−copyright (C) ST-Ericsson AB 2010
4−Author: Sjur Brendeland/ sjur.brandeland@stericsson.com
5−License terms: GNU General Public License (GPL) version 2
6+==========
7+
8+Copyright |copy| ST-Ericsson AB 2010
9+
10+:Author: Sjur Brendeland/ sjur.brandeland@stericsson.com
11+:License terms: GNU General Public License (GPL) version 2
612
713
814 Introduction
9−------------
15+============
16+
1017 CAIF is a MUX protocol used by ST-Ericsson cellular modems for
1118 communication between Modem and host. The host processes can open virtual AT
1219 channels, initiate GPRS Data connections, Video channels and Utility Channels.
@@ -16,13 +23,16 @@ ST-Ericsson modems support a number of transports between modem · 3 unmodified lines
1623 and host. Currently, UART and Loopback are available for Linux.
1724
1825
19−Architecture:
20−------------
26+Architecture
27+============
28+
2129 The implementation of CAIF is divided into:
30+
2231 * CAIF Socket Layer and GPRS IP Interface.
2332 * CAIF Core Protocol Implementation
2433 * CAIF Link Layer, implemented as NET devices.
2534
35+::
2636
2737 RTNL
2838 !
@@ -46,12 +56,12 @@ The implementation of CAIF is divided into: · 17 unmodified lines
4656
4757
4858
49−I M P L E M E N T A T I O N
50−===========================
59+Implementation
60+==============
5161
5262
5363 CAIF Core Protocol Layer
54−=========================================
64+------------------------
5565
5666 CAIF Core layer implements the CAIF protocol as defined by ST-Ericsson.
5767 It implements the CAIF protocol stack in a layered approach, where
@@ -59,8 +69,11 @@ each layer described in the specification is implemented as a separate layer. · 1 unmodified line
5969 The architecture is inspired by the design patterns "Protocol Layer" and
6070 "Protocol Packet".
6171
62−== CAIF structure ==
72+CAIF structure
73+^^^^^^^^^^^^^^
74+
6375 The Core CAIF implementation contains:
76+
6477 - Simple implementation of CAIF.
6578 - Layered architecture (a la Streams), each layer in the CAIF
6679 specification is implemented in a separate c-file.
@@ -73,7 +86,8 @@ The Core CAIF implementation contains: · 6 unmodified lines
7386 to the called function (except for framing layers' receive function)
7487
7588 Layered Architecture
76−--------------------
89+====================
90+
7791 The CAIF protocol can be divided into two parts: Support functions and Protocol
7892 Implementation. The support functions include:
7993
@@ -112,7 +126,7 @@ The CAIF Protocol implementation contains: · 32 unmodified lines
112126 - CFSERL CAIF Serial layer. Handles concatenation/split of frames
113127 into CAIF Frames with correct length.
114128
115−
129+::
116130
117131 +---------+
118132 | Config |
@@ -143,18 +157,24 @@ The CAIF Protocol implementation contains: · 24 unmodified lines
143157
144158
145159 In this layered approach the following "rules" apply.
160+
146161 - All layers embed the same structure "struct cflayer"
147162 - A layer does not depend on any other layer's private data.
148− - Layers are stacked by setting the pointers
163+ - Layers are stacked by setting the pointers::
164+
149165 layer->up , layer->dn
150− - In order to send data upwards, each layer should do
166+
167+ - In order to send data upwards, each layer should do::
168+
151169 layer->up->receive(layer->up, packet);
152− - In order to send data downwards, each layer should do
170+
171+ - In order to send data downwards, each layer should do::
172+
153173 layer->dn->transmit(layer->dn, packet);
154174
155175
156176 CAIF Socket and IP interface
157−===========================
177+============================
158178
159179 The IP interface and CAIF socket API are implemented on top of the
160180 CAIF Core protocol. The IP Interface and CAIF socket have an instance of
Documentation/networking/caif/spi_porting.rst+229−0
@@ -0,0 +1,229 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+================
4+CAIF SPI porting
5+================
6+
7+CAIF SPI basics
8+===============
9+
10+Running CAIF over SPI needs some extra setup, owing to the nature of SPI.
11+Two extra GPIOs have been added in order to negotiate the transfers
12+between the master and the slave. The minimum requirement for running
13+CAIF over SPI is a SPI slave chip and two GPIOs (more details below).
14+Please note that running as a slave implies that you need to keep up
15+with the master clock. An overrun or underrun event is fatal.
16+
17+CAIF SPI framework
18+==================
19+
20+To make porting as easy as possible, the CAIF SPI has been divided in
21+two parts. The first part (called the interface part) deals with all
22+generic functionality such as length framing, SPI frame negotiation
23+and SPI frame delivery and transmission. The other part is the CAIF
24+SPI slave device part, which is the module that you have to write if
25+you want to run SPI CAIF on a new hardware. This part takes care of
26+the physical hardware, both with regard to SPI and to GPIOs.
27+
28+- Implementing a CAIF SPI device:
29+
30+ - Functionality provided by the CAIF SPI slave device:
31+
32+ In order to implement a SPI device you will, as a minimum,
33+ need to implement the following
34+ functions:
35+
36+ ::
37+
38+ int (*init_xfer) (struct cfspi_xfer * xfer, struct cfspi_dev *dev):
39+
40+ This function is called by the CAIF SPI interface to give
41+ you a chance to set up your hardware to be ready to receive
42+ a stream of data from the master. The xfer structure contains
43+ both physical and logical addresses, as well as the total length
44+ of the transfer in both directions.The dev parameter can be used
45+ to map to different CAIF SPI slave devices.
46+
47+ ::
48+
49+ void (*sig_xfer) (bool xfer, struct cfspi_dev *dev):
50+
51+ This function is called by the CAIF SPI interface when the output
52+ (SPI_INT) GPIO needs to change state. The boolean value of the xfer
53+ variable indicates whether the GPIO should be asserted (HIGH) or
54+ deasserted (LOW). The dev parameter can be used to map to different CAIF
55+ SPI slave devices.
56+
57+ - Functionality provided by the CAIF SPI interface:
58+
59+ ::
60+
61+ void (*ss_cb) (bool assert, struct cfspi_ifc *ifc);
62+
63+ This function is called by the CAIF SPI slave device in order to
64+ signal a change of state of the input GPIO (SS) to the interface.
65+ Only active edges are mandatory to be reported.
66+ This function can be called from IRQ context (recommended in order
67+ not to introduce latency). The ifc parameter should be the pointer
68+ returned from the platform probe function in the SPI device structure.
69+
70+ ::
71+
72+ void (*xfer_done_cb) (struct cfspi_ifc *ifc);
73+
74+ This function is called by the CAIF SPI slave device in order to
75+ report that a transfer is completed. This function should only be
76+ called once both the transmission and the reception are completed.
77+ This function can be called from IRQ context (recommended in order
78+ not to introduce latency). The ifc parameter should be the pointer
79+ returned from the platform probe function in the SPI device structure.
80+
81+ - Connecting the bits and pieces:
82+
83+ - Filling in the SPI slave device structure:
84+
85+ Connect the necessary callback functions.
86+
87+ Indicate clock speed (used to calculate toggle delays).
88+
89+ Chose a suitable name (helps debugging if you use several CAIF
90+ SPI slave devices).
91+
92+ Assign your private data (can be used to map to your
93+ structure).
94+
95+ - Filling in the SPI slave platform device structure:
96+
97+ Add name of driver to connect to ("cfspi_sspi").
98+
99+ Assign the SPI slave device structure as platform data.
100+
101+Padding
102+=======
103+
104+In order to optimize throughput, a number of SPI padding options are provided.
105+Padding can be enabled independently for uplink and downlink transfers.
106+Padding can be enabled for the head, the tail and for the total frame size.
107+The padding needs to be correctly configured on both sides of the link.
108+The padding can be changed via module parameters in cfspi_sspi.c or via
109+the sysfs directory of the cfspi_sspi driver (before device registration).
110+
111+- CAIF SPI device template::
112+
113+ /*
114+ * Copyright (C) ST-Ericsson AB 2010
115+ * Author: Daniel Martensson / Daniel.Martensson@stericsson.com
116+ * License terms: GNU General Public License (GPL), version 2.
117+ *
118+ */
119+
120+ #include <linux/init.h>
121+ #include <linux/module.h>
122+ #include <linux/device.h>
123+ #include <linux/wait.h>
124+ #include <linux/interrupt.h>
125+ #include <linux/dma-mapping.h>
126+ #include <net/caif/caif_spi.h>
127+
128+ MODULE_LICENSE("GPL");
129+
130+ struct sspi_struct {
131+ struct cfspi_dev sdev;
132+ struct cfspi_xfer *xfer;
133+ };
134+
135+ static struct sspi_struct slave;
136+ static struct platform_device slave_device;
137+
138+ static irqreturn_t sspi_irq(int irq, void *arg)
139+ {
140+ /* You only need to trigger on an edge to the active state of the
141+ * SS signal. Once a edge is detected, the ss_cb() function should be
142+ * called with the parameter assert set to true. It is OK
143+ * (and even advised) to call the ss_cb() function in IRQ context in
144+ * order not to add any delay. */
145+
146+ return IRQ_HANDLED;
147+ }
148+
149+ static void sspi_complete(void *context)
150+ {
151+ /* Normally the DMA or the SPI framework will call you back
152+ * in something similar to this. The only thing you need to
153+ * do is to call the xfer_done_cb() function, providing the pointer
154+ * to the CAIF SPI interface. It is OK to call this function
155+ * from IRQ context. */
156+ }
157+
158+ static int sspi_init_xfer(struct cfspi_xfer *xfer, struct cfspi_dev *dev)
159+ {
160+ /* Store transfer info. For a normal implementation you should
161+ * set up your DMA here and make sure that you are ready to
162+ * receive the data from the master SPI. */
163+
164+ struct sspi_struct *sspi = (struct sspi_struct *)dev->priv;
165+
166+ sspi->xfer = xfer;
167+
168+ return 0;
169+ }
170+
171+ void sspi_sig_xfer(bool xfer, struct cfspi_dev *dev)
172+ {
173+ /* If xfer is true then you should assert the SPI_INT to indicate to
174+ * the master that you are ready to receive the data from the master
175+ * SPI. If xfer is false then you should de-assert SPI_INT to indicate
176+ * that the transfer is done.
177+ */
178+
179+ struct sspi_struct *sspi = (struct sspi_struct *)dev->priv;
180+ }
181+
182+ static void sspi_release(struct device *dev)
183+ {
184+ /*
185+ * Here you should release your SPI device resources.
186+ */
187+ }
188+
189+ static int __init sspi_init(void)
190+ {
191+ /* Here you should initialize your SPI device by providing the
192+ * necessary functions, clock speed, name and private data. Once
193+ * done, you can register your device with the
194+ * platform_device_register() function. This function will return
195+ * with the CAIF SPI interface initialized. This is probably also
196+ * the place where you should set up your GPIOs, interrupts and SPI
197+ * resources. */
198+
199+ int res = 0;
200+
201+ /* Initialize slave device. */
202+ slave.sdev.init_xfer = sspi_init_xfer;
203+ slave.sdev.sig_xfer = sspi_sig_xfer;
204+ slave.sdev.clk_mhz = 13;
205+ slave.sdev.priv = &slave;
206+ slave.sdev.name = "spi_sspi";
207+ slave_device.dev.release = sspi_release;
208+
209+ /* Initialize platform device. */
210+ slave_device.name = "cfspi_sspi";
211+ slave_device.dev.platform_data = &slave.sdev;
212+
213+ /* Register platform device. */
214+ res = platform_device_register(&slave_device);
215+ if (res) {
216+ printk(KERN_WARNING "sspi_init: failed to register dev.\n");
217+ return -ENODEV;
218+ }
219+
220+ return res;
221+ }
222+
223+ static void __exit sspi_exit(void)
224+ {
225+ platform_device_del(&slave_device);
226+ }
227+
228+ module_init(sspi_init);
229+ module_exit(sspi_exit);
Documentation/networking/caif/spi_porting.txt+0−208
@@ -1,208 +0,0 @@
1−- CAIF SPI porting -
2−
3−- CAIF SPI basics:
4−
5−Running CAIF over SPI needs some extra setup, owing to the nature of SPI.
6−Two extra GPIOs have been added in order to negotiate the transfers
7− between the master and the slave. The minimum requirement for running
8−CAIF over SPI is a SPI slave chip and two GPIOs (more details below).
9−Please note that running as a slave implies that you need to keep up
10−with the master clock. An overrun or underrun event is fatal.
11−
12−- CAIF SPI framework:
13−
14−To make porting as easy as possible, the CAIF SPI has been divided in
15−two parts. The first part (called the interface part) deals with all
16−generic functionality such as length framing, SPI frame negotiation
17−and SPI frame delivery and transmission. The other part is the CAIF
18−SPI slave device part, which is the module that you have to write if
19−you want to run SPI CAIF on a new hardware. This part takes care of
20−the physical hardware, both with regard to SPI and to GPIOs.
21−
22−- Implementing a CAIF SPI device:
23−
24− - Functionality provided by the CAIF SPI slave device:
25−
26− In order to implement a SPI device you will, as a minimum,
27− need to implement the following
28− functions:
29−
30− int (*init_xfer) (struct cfspi_xfer * xfer, struct cfspi_dev *dev):
31−
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
34− a stream of data from the master. The xfer structure contains
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
37− to map to different CAIF SPI slave devices.
38−
39− void (*sig_xfer) (bool xfer, struct cfspi_dev *dev):
40−
41− This function is called by the CAIF SPI interface when the output
42− (SPI_INT) GPIO needs to change state. The boolean value of the xfer
43− variable indicates whether the GPIO should be asserted (HIGH) or
44− deasserted (LOW). The dev parameter can be used to map to different CAIF
45− SPI slave devices.
46−
47− - Functionality provided by the CAIF SPI interface:
48−
49− void (*ss_cb) (bool assert, struct cfspi_ifc *ifc);
50−
51− This function is called by the CAIF SPI slave device in order to
52− signal a change of state of the input GPIO (SS) to the interface.
53− Only active edges are mandatory to be reported.
54− This function can be called from IRQ context (recommended in order
55− not to introduce latency). The ifc parameter should be the pointer
56− returned from the platform probe function in the SPI device structure.
57−
58− void (*xfer_done_cb) (struct cfspi_ifc *ifc);
59−
60− This function is called by the CAIF SPI slave device in order to
61− report that a transfer is completed. This function should only be
62− called once both the transmission and the reception are completed.
63− This function can be called from IRQ context (recommended in order
64− not to introduce latency). The ifc parameter should be the pointer
65− returned from the platform probe function in the SPI device structure.
66−
67− - Connecting the bits and pieces:
68−
69− - Filling in the SPI slave device structure:
70−
71− Connect the necessary callback functions.
72− Indicate clock speed (used to calculate toggle delays).
73− Chose a suitable name (helps debugging if you use several CAIF
74− SPI slave devices).
75− Assign your private data (can be used to map to your structure).
76−
77− - Filling in the SPI slave platform device structure:
78− Add name of driver to connect to ("cfspi_sspi").
79− Assign the SPI slave device structure as platform data.
80−
81−- Padding:
82−
83−In order to optimize throughput, a number of SPI padding options are provided.
84−Padding can be enabled independently for uplink and downlink transfers.
85−Padding can be enabled for the head, the tail and for the total frame size.
86−The padding needs to be correctly configured on both sides of the link.
87−The padding can be changed via module parameters in cfspi_sspi.c or via
88−the sysfs directory of the cfspi_sspi driver (before device registration).
89−
90−- CAIF SPI device template:
91−
92−/*
93− * Copyright (C) ST-Ericsson AB 2010
94− * Author: Daniel Martensson / Daniel.Martensson@stericsson.com
95− * License terms: GNU General Public License (GPL), version 2.
96− *
97− */
98−
99−#include <linux/init.h>
100−#include <linux/module.h>
101−#include <linux/device.h>
102−#include <linux/wait.h>
103−#include <linux/interrupt.h>
104−#include <linux/dma-mapping.h>
105−#include <net/caif/caif_spi.h>
106−
107−MODULE_LICENSE("GPL");
108−
109−struct sspi_struct {
110− struct cfspi_dev sdev;
111− struct cfspi_xfer *xfer;
112−};
113−
114−static struct sspi_struct slave;
115−static struct platform_device slave_device;
116−
117−static irqreturn_t sspi_irq(int irq, void *arg)
118−{
119− /* You only need to trigger on an edge to the active state of the
120− * SS signal. Once a edge is detected, the ss_cb() function should be
121− * called with the parameter assert set to true. It is OK
122− * (and even advised) to call the ss_cb() function in IRQ context in
123− * order not to add any delay. */
124−
125− return IRQ_HANDLED;
126−}
127−
128−static void sspi_complete(void *context)
129−{
130− /* Normally the DMA or the SPI framework will call you back
131− * in something similar to this. The only thing you need to
132− * do is to call the xfer_done_cb() function, providing the pointer
133− * to the CAIF SPI interface. It is OK to call this function
134− * from IRQ context. */
135−}
136−
137−static int sspi_init_xfer(struct cfspi_xfer *xfer, struct cfspi_dev *dev)
138−{
139− /* Store transfer info. For a normal implementation you should
140− * set up your DMA here and make sure that you are ready to
141− * receive the data from the master SPI. */
142−
143− struct sspi_struct *sspi = (struct sspi_struct *)dev->priv;
144−
145− sspi->xfer = xfer;
146−
147− return 0;
148−}
149−
150−void sspi_sig_xfer(bool xfer, struct cfspi_dev *dev)
151−{
152− /* If xfer is true then you should assert the SPI_INT to indicate to
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
155− * that the transfer is done.
156− */
157−
158− struct sspi_struct *sspi = (struct sspi_struct *)dev->priv;
159−}
160−
161−static void sspi_release(struct device *dev)
162−{
163− /*
164− * Here you should release your SPI device resources.
165− */
166−}
167−
168−static int __init sspi_init(void)
169−{
170− /* Here you should initialize your SPI device by providing the
171− * necessary functions, clock speed, name and private data. Once
172− * done, you can register your device with the
173− * platform_device_register() function. This function will return
174− * with the CAIF SPI interface initialized. This is probably also
175− * the place where you should set up your GPIOs, interrupts and SPI
176− * resources. */
177−
178− int res = 0;
179−
180− /* Initialize slave device. */
181− slave.sdev.init_xfer = sspi_init_xfer;
182− slave.sdev.sig_xfer = sspi_sig_xfer;
183− slave.sdev.clk_mhz = 13;
184− slave.sdev.priv = &slave;
185− slave.sdev.name = "spi_sspi";
186− slave_device.dev.release = sspi_release;
187−
188− /* Initialize platform device. */
189− slave_device.name = "cfspi_sspi";
190− slave_device.dev.platform_data = &slave.sdev;
191−
192− /* Register platform device. */
193− res = platform_device_register(&slave_device);
194− if (res) {
195− printk(KERN_WARNING "sspi_init: failed to register dev.\n");
196− return -ENODEV;
197− }
198−
199− return res;
200−}
201−
202−static void __exit sspi_exit(void)
203−{
204− platform_device_del(&slave_device);
205−}
206−
207−module_init(sspi_init);
208−module_exit(sspi_exit);
Documentation/networking/can.rst+1−1
@@ -1058,7 +1058,7 @@ drivers you mainly have to deal with: · 1057 unmodified lines
10581058 - TX: Put the CAN frame from the socket buffer to the CAN controller.
10591059 - RX: Put the CAN frame from the CAN controller to the socket buffer.
10601060
1061−See e.g. at Documentation/networking/netdevices.txt . The differences
1061+See e.g. at Documentation/networking/netdevices.rst . The differences
10621062 for writing CAN network device driver are described below:
10631063
10641064
Documentation/networking/cdc_mbim.rstrenamed from Documentation/networking/cdc_mbim.txt+46−30
@@ -1,5 +1,8 @@
1− cdc_mbim - Driver for CDC MBIM Mobile Broadband modems
2− ========================================================
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+======================================================
4+cdc_mbim - Driver for CDC MBIM Mobile Broadband modems
5+======================================================
36
47 The cdc_mbim driver supports USB devices conforming to the "Universal
58 Serial Bus Communications Class Subclass Specification for Mobile
@@ -19,9 +22,9 @@ by a cdc_ncm driver parameter: · 13 unmodified lines
1922
2023 prefer_mbim
2124 -----------
22−Type: Boolean
23−Valid Range: N/Y (0-1)
24−Default Value: Y (MBIM is preferred)
25+:Type: Boolean
26+:Valid Range: N/Y (0-1)
27+:Default Value: Y (MBIM is preferred)
2528
2629 This parameter sets the system policy for NCM/MBIM functions. Such
2730 functions will be handled by either the cdc_ncm driver or the cdc_mbim
@@ -44,11 +47,13 @@ userspace MBIM management application always is required to enable a · 16 unmodified lines
4447 MBIM function.
4548
4649 Such userspace applications includes, but are not limited to:
50+
4751 - mbimcli (included with the libmbim [3] library), and
4852 - ModemManager [4]
4953
5054 Establishing a MBIM IP session reequires at least these actions by the
5155 management application:
56+
5257 - open the control channel
5358 - configure network connection settings
5459 - connect to network
@@ -76,7 +81,7 @@ complies with all the control channel requirements in [1]. · 21 unmodified lines
7681
7782 The cdc-wdmX device is created as a child of the MBIM control
7883 interface USB device. The character device associated with a specific
79−MBIM function can be looked up using sysfs. For example:
84+MBIM function can be looked up using sysfs. For example::
8085
8186 bjorn@nemi:~$ ls /sys/bus/usb/drivers/cdc_mbim/2-4:2.12/usbmisc
8287 cdc-wdm0
@@ -119,13 +124,15 @@ negotiated control message size. · 36 unmodified lines
119124
120125
121126 /dev/cdc-wdmX ioctl()
122−--------------------
127+---------------------
123128 IOCTL_WDM_MAX_COMMAND: Get Maximum Command Size
124129 This ioctl returns the wMaxControlMessage field of the CDC MBIM
125130 functional descriptor for MBIM devices. This is intended as a
126131 convenience, eliminating the need to parse the USB descriptors from
127132 userspace.
128133
134+::
135+
129136 #include <stdio.h>
130137 #include <fcntl.h>
131138 #include <sys/ioctl.h>
@@ -178,7 +185,7 @@ VLAN links prior to establishing MBIM IP sessions where the SessionId · 46 unmodified lines
178185 is greater than 0. These links can be added by using the normal VLAN
179186 kernel interfaces, either ioctl or netlink.
180187
181−For example, adding a link for a MBIM IP session with SessionId 3:
188+For example, adding a link for a MBIM IP session with SessionId 3::
182189
183190 ip link add link wwan0 name wwan0.3 type vlan id 3
184191
@@ -207,6 +214,7 @@ the stream to the end user in an appropriate way for the stream type. · 22 unmodified lines
207214 The network device ABI requires a dummy ethernet header for every DSS
208215 data frame being transported. The contents of this header is
209216 arbitrary, with the following exceptions:
217+
210218 - TX frames using an IP protocol (0x0800 or 0x86dd) will be dropped
211219 - RX frames will have the protocol field set to ETH_P_802_3 (but will
212220 not be properly formatted 802.3 frames)
@@ -218,7 +226,7 @@ adding the dummy ethernet header on TX and stripping it on RX. · 5 unmodified lines
218226
219227 This is a simple example using tools commonly available, exporting
220228 DssSessionId 5 as a pty character device pointed to by a /dev/nmea
221−symlink:
229+symlink::
222230
223231 ip link add link wwan0 name wwan0.dss5 type vlan id 261
224232 ip link set dev wwan0.dss5 up
@@ -236,7 +244,7 @@ map frames to the correct DSS session and adding 18 byte VLAN ethernet · 11 unmodified lines
236244 headers with the appropriate tag on TX. In this case using a socket
237245 filter is recommended, matching only the DSS VLAN subset. This avoid
238246 unnecessary copying of unrelated IP session data to userspace. For
239−example:
247+example::
240248
241249 static struct sock_filter dssfilter[] = {
242250 /* use special negative offsets to get VLAN tag */
@@ -249,11 +257,11 @@ example: · 6 unmodified lines
249257 BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 512, 3, 0), /* 511 is last DSS VLAN */
250258
251259 /* verify ethertype */
252− BPF_STMT(BPF_LD|BPF_H|BPF_ABS, 2 * ETH_ALEN),
253− BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, ETH_P_802_3, 0, 1),
260+ BPF_STMT(BPF_LD|BPF_H|BPF_ABS, 2 * ETH_ALEN),
261+ BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, ETH_P_802_3, 0, 1),
254262
255− BPF_STMT(BPF_RET|BPF_K, (u_int)-1), /* accept */
256− BPF_STMT(BPF_RET|BPF_K, 0), /* ignore */
263+ BPF_STMT(BPF_RET|BPF_K, (u_int)-1), /* accept */
264+ BPF_STMT(BPF_RET|BPF_K, 0), /* ignore */
257265 };
258266
259267
@@ -266,6 +274,7 @@ network device. · 6 unmodified lines
266274
267275 This mapping implies a few restrictions on multiplexed IPS and DSS
268276 sessions, which may not always be practical:
277+
269278 - no IPS or DSS session can use a frame size greater than the MTU on
270279 IP session 0
271280 - no IPS or DSS session can be in the up state unless the network
@@ -280,7 +289,7 @@ device. · 8 unmodified lines
280289
281290 Tip: It might be less confusing to the end user to name this VLAN
282291 subdevice after the MBIM SessionID instead of the VLAN ID. For
283−example:
292+example::
284293
285294 ip link add link wwan0 name wwan0.0 type vlan id 4094
286295
@@ -290,7 +299,7 @@ VLAN mapping · 3 unmodified lines
290299
291300 Summarizing the cdc_mbim driver mapping described above, we have this
292301 relationship between VLAN tags on the wwanY network device and MBIM
293−sessions on the shared USB data channel:
302+sessions on the shared USB data channel::
294303
295304 VLAN ID MBIM type MBIM SessionID Notes
296305 ---------------------------------------------------------
@@ -310,30 +319,37 @@ sessions on the shared USB data channel: · 13 unmodified lines
310319 References
311320 ==========
312321
313−[1] USB Implementers Forum, Inc. - "Universal Serial Bus
314− Communications Class Subclass Specification for Mobile Broadband
315− Interface Model", Revision 1.0 (Errata 1), May 1, 2013
322+ 1) USB Implementers Forum, Inc. - "Universal Serial Bus
323+ Communications Class Subclass Specification for Mobile Broadband
324+ Interface Model", Revision 1.0 (Errata 1), May 1, 2013
325+
316326 - http://www.usb.org/developers/docs/devclass_docs/
317327
318−[2] USB Implementers Forum, Inc. - "Universal Serial Bus
319− Communications Class Subclass Specifications for Network Control
320− Model Devices", Revision 1.0 (Errata 1), November 24, 2010
328+ 2) USB Implementers Forum, Inc. - "Universal Serial Bus
329+ Communications Class Subclass Specifications for Network Control
330+ Model Devices", Revision 1.0 (Errata 1), November 24, 2010
331+
321332 - http://www.usb.org/developers/docs/devclass_docs/
322333
323−[3] libmbim - "a glib-based library for talking to WWAN modems and
324− devices which speak the Mobile Interface Broadband Model (MBIM)
325− protocol"
334+ 3) libmbim - "a glib-based library for talking to WWAN modems and
335+ devices which speak the Mobile Interface Broadband Model (MBIM)
336+ protocol"
337+
326338 - http://www.freedesktop.org/wiki/Software/libmbim/
327339
328−[4] ModemManager - "a DBus-activated daemon which controls mobile
329− broadband (2G/3G/4G) devices and connections"
340+ 4) ModemManager - "a DBus-activated daemon which controls mobile
341+ broadband (2G/3G/4G) devices and connections"
342+
330343 - http://www.freedesktop.org/wiki/Software/ModemManager/
331344
332−[5] "MBIM (Mobile Broadband Interface Model) Registry"
345+ 5) "MBIM (Mobile Broadband Interface Model) Registry"
346+
333347 - http://compliance.usb.org/mbim/
334348
335−[6] "/sys/kernel/debug/usb/devices output format"
349+ 6) "/sys/kernel/debug/usb/devices output format"
350+
336351 - Documentation/driver-api/usb/usb.rst
337352
338−[7] "/sys/bus/usb/devices/.../descriptors"
353+ 7) "/sys/bus/usb/devices/.../descriptors"
354+
339355 - Documentation/ABI/stable/sysfs-bus-usb
Documentation/networking/checksum-offloads.rst+1−1
@@ -59,7 +59,7 @@ recomputed for each resulting segment. See the skbuff.h comment (section 'E') · 58 unmodified lines
5959 for more details.
6060
6161 A driver declares its offload capabilities in netdev->hw_features; see
62−Documentation/networking/netdev-features.txt for more. Note that a device
62+Documentation/networking/netdev-features.rst for more. Note that a device
6363 which only advertises NETIF_F_IP[V6]_CSUM must still obey the csum_start and
6464 csum_offset given in the SKB; if it tries to deduce these itself in hardware
6565 (as some NICs do) the driver should check that the values in the SKB match
Documentation/networking/cops.rst+80−0
@@ -0,0 +1,80 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+========================================
4+The COPS LocalTalk Linux driver (cops.c)
5+========================================
6+
7+By Jay Schulist <jschlst@samba.org>
8+
9+This driver has two modes and they are: Dayna mode and Tangent mode.
10+Each mode corresponds with the type of card. It has been found
11+that there are 2 main types of cards and all other cards are
12+the same and just have different names or only have minor differences
13+such as more IO ports. As this driver is tested it will
14+become more clear exactly what cards are supported.
15+
16+Right now these cards are known to work with the COPS driver. The
17+LT-200 cards work in a somewhat more limited capacity than the
18+DL200 cards, which work very well and are in use by many people.
19+
20+TANGENT driver mode:
21+ - Tangent ATB-II, Novell NL-1000, Daystar Digital LT-200
22+
23+DAYNA driver mode:
24+ - Dayna DL2000/DaynaTalk PC (Half Length), COPS LT-95,
25+ - Farallon PhoneNET PC III, Farallon PhoneNET PC II
26+
27+Other cards possibly supported mode unknown though:
28+ - Dayna DL2000 (Full length)
29+
30+The COPS driver defaults to using Dayna mode. To change the driver's
31+mode if you built a driver with dual support use board_type=1 or
32+board_type=2 for Dayna or Tangent with insmod.
33+
34+Operation/loading of the driver
35+===============================
36+
37+Use modprobe like this: /sbin/modprobe cops.o (IO #) (IRQ #)
38+If you do not specify any options the driver will try and use the IO = 0x240,
39+IRQ = 5. As of right now I would only use IRQ 5 for the card, if autoprobing.
40+
41+To load multiple COPS driver Localtalk cards you can do one of the following::
42+
43+ insmod cops io=0x240 irq=5
44+ insmod -o cops2 cops io=0x260 irq=3
45+
46+Or in lilo.conf put something like this::
47+
48+ append="ether=5,0x240,lt0 ether=3,0x260,lt1"
49+
50+Then bring up the interface with ifconfig. It will look something like this::
51+
52+ lt0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-F7-00-00-00-00-00-00-00-00
53+ inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
54+ UP BROADCAST RUNNING NOARP MULTICAST MTU:600 Metric:1
55+ RX packets:0 errors:0 dropped:0 overruns:0 frame:0
56+ TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 coll:0
57+
58+Netatalk Configuration
59+======================
60+
61+You will need to configure atalkd with something like the following to make
62+it work with the cops.c driver.
63+
64+* For single LTalk card use::
65+
66+ dummy -seed -phase 2 -net 2000 -addr 2000.10 -zone "1033"
67+ lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033"
68+
69+* For multiple cards, Ethernet and LocalTalk::
70+
71+ eth0 -seed -phase 2 -net 3000 -addr 3000.20 -zone "1033"
72+ lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033"
73+
74+* For multiple LocalTalk cards, and an Ethernet card.
75+
76+* Order seems to matter here, Ethernet last::
77+
78+ lt0 -seed -phase 1 -net 1000 -addr 1000.10 -zone "LocalTalk1"
79+ lt1 -seed -phase 1 -net 2000 -addr 2000.20 -zone "LocalTalk2"
80+ eth0 -seed -phase 2 -net 3000 -addr 3000.30 -zone "EtherTalk"
Documentation/networking/cops.txt+0−63
@@ -1,63 +0,0 @@
1−Text File for the COPS LocalTalk Linux driver (cops.c).
2− By Jay Schulist <jschlst@samba.org>
3−
4−This driver has two modes and they are: Dayna mode and Tangent mode.
5−Each mode corresponds with the type of card. It has been found
6−that there are 2 main types of cards and all other cards are
7−the same and just have different names or only have minor differences
8−such as more IO ports. As this driver is tested it will
9−become more clear exactly what cards are supported.
10−
11−Right now these cards are known to work with the COPS driver. The
12−LT-200 cards work in a somewhat more limited capacity than the
13−DL200 cards, which work very well and are in use by many people.
14−
15−TANGENT driver mode:
16− Tangent ATB-II, Novell NL-1000, Daystar Digital LT-200
17−DAYNA driver mode:
18− Dayna DL2000/DaynaTalk PC (Half Length), COPS LT-95,
19− Farallon PhoneNET PC III, Farallon PhoneNET PC II
20−Other cards possibly supported mode unknown though:
21− Dayna DL2000 (Full length)
22−
23−The COPS driver defaults to using Dayna mode. To change the driver's
24−mode if you built a driver with dual support use board_type=1 or
25−board_type=2 for Dayna or Tangent with insmod.
26−
27−** Operation/loading of the driver.
28−Use modprobe like this: /sbin/modprobe cops.o (IO #) (IRQ #)
29−If you do not specify any options the driver will try and use the IO = 0x240,
30−IRQ = 5. As of right now I would only use IRQ 5 for the card, if autoprobing.
31−
32−To load multiple COPS driver Localtalk cards you can do one of the following.
33−
34−insmod cops io=0x240 irq=5
35−insmod -o cops2 cops io=0x260 irq=3
36−
37−Or in lilo.conf put something like this:
38− append="ether=5,0x240,lt0 ether=3,0x260,lt1"
39−
40−Then bring up the interface with ifconfig. It will look something like this:
41−lt0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-F7-00-00-00-00-00-00-00-00
42− inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
43− UP BROADCAST RUNNING NOARP MULTICAST MTU:600 Metric:1
44− RX packets:0 errors:0 dropped:0 overruns:0 frame:0
45− TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 coll:0
46−
47−** Netatalk Configuration
48−You will need to configure atalkd with something like the following to make
49−it work with the cops.c driver.
50−
51−* For single LTalk card use.
52−dummy -seed -phase 2 -net 2000 -addr 2000.10 -zone "1033"
53−lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033"
54−
55−* For multiple cards, Ethernet and LocalTalk.
56−eth0 -seed -phase 2 -net 3000 -addr 3000.20 -zone "1033"
57−lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033"
58−
59−* For multiple LocalTalk cards, and an Ethernet card.
60−* Order seems to matter here, Ethernet last.
61−lt0 -seed -phase 1 -net 1000 -addr 1000.10 -zone "LocalTalk1"
62−lt1 -seed -phase 1 -net 2000 -addr 2000.20 -zone "LocalTalk2"
63−eth0 -seed -phase 2 -net 3000 -addr 3000.30 -zone "EtherTalk"
Documentation/networking/cxacru.rstrenamed from Documentation/networking/cxacru.txt+53−33
@@ -1,3 +1,9 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+========================
4+ATM cxacru device driver
5+========================
6+
17 Firmware is required for this device: http://accessrunner.sourceforge.net/
28
39 While it is capable of managing/maintaining the ADSL connection without the
@@ -19,29 +25,35 @@ several sysfs attribute files for retrieving device statistics: · 15 unmodified lines
1925
2026 * adsl_headend
2127 * adsl_headend_environment
22− Information about the remote headend.
28+
29+ - Information about the remote headend.
2330
2431 * adsl_config
25− Configuration writing interface.
26− Write parameters in hexadecimal format <index>=<value>,
27− separated by whitespace, e.g.:
32+
33+ - Configuration writing interface.
34+ - Write parameters in hexadecimal format <index>=<value>,
35+ separated by whitespace, e.g.:
36+
2837 "1=0 a=5"
29− Up to 7 parameters at a time will be sent and the modem will restart
30− the ADSL connection when any value is set. These are logged for future
31− reference.
38+
39+ - Up to 7 parameters at a time will be sent and the modem will restart
40+ the ADSL connection when any value is set. These are logged for future
41+ reference.
3242
3343 * downstream_attenuation (dB)
3444 * downstream_bits_per_frame
3545 * downstream_rate (kbps)
3646 * downstream_snr_margin (dB)
37− Downstream stats.
47+
48+ - Downstream stats.
3849
3950 * upstream_attenuation (dB)
4051 * upstream_bits_per_frame
4152 * upstream_rate (kbps)
4253 * upstream_snr_margin (dB)
4354 * transmitter_power (dBm/Hz)
44− Upstream stats.
55+
56+ - Upstream stats.
4557
4658 * downstream_crc_errors
4759 * downstream_fec_errors
@@ -49,48 +61,56 @@ several sysfs attribute files for retrieving device statistics: · 1 unmodified line
4961 * upstream_crc_errors
5062 * upstream_fec_errors
5163 * upstream_hec_errors
52− Error counts.
64+
65+ - Error counts.
5366
5467 * line_startable
55− Indicates that ADSL support on the device
56− is/can be enabled, see adsl_start.
68+
69+ - Indicates that ADSL support on the device
70+ is/can be enabled, see adsl_start.
5771
5872 * line_status
59− "initialising"
60− "down"
61− "attempting to activate"
62− "training"
63− "channel analysis"
64− "exchange"
65− "waiting"
66− "up"
73+
74+ - "initialising"
75+ - "down"
76+ - "attempting to activate"
77+ - "training"
78+ - "channel analysis"
79+ - "exchange"
80+ - "waiting"
81+ - "up"
6782
6883 Changes between "down" and "attempting to activate"
6984 if there is no signal.
7085
7186 * link_status
72− "not connected"
73− "connected"
74− "lost"
87+
88+ - "not connected"
89+ - "connected"
90+ - "lost"
7591
7692 * mac_address
7793
7894 * modulation
79− "" (when not connected)
80− "ANSI T1.413"
81− "ITU-T G.992.1 (G.DMT)"
82− "ITU-T G.992.2 (G.LITE)"
95+
96+ - "" (when not connected)
97+ - "ANSI T1.413"
98+ - "ITU-T G.992.1 (G.DMT)"
99+ - "ITU-T G.992.2 (G.LITE)"
83100
84101 * startup_attempts
85− Count of total attempts to initialise ADSL.
102+
103+ - Count of total attempts to initialise ADSL.
86104
87105 To enable/disable ADSL, the following can be written to the adsl_state file:
88− "start"
89− "stop
90− "restart" (stops, waits 1.5s, then starts)
91− "poll" (used to resume status polling if it was disabled due to failure)
92106
93−Changes in adsl/line state are reported via kernel log messages:
107+ - "start"
108+ - "stop
109+ - "restart" (stops, waits 1.5s, then starts)
110+ - "poll" (used to resume status polling if it was disabled due to failure)
111+
112+Changes in adsl/line state are reported via kernel log messages::
113+
94114 [4942145.150704] ATM dev 0: ADSL state: running
95115 [4942243.663766] ATM dev 0: ADSL line: down
96116 [4942249.665075] ATM dev 0: ADSL line: attempting to activate
Documentation/networking/dccp.rstrenamed from Documentation/networking/dccp.txt+24−15
@@ -1,16 +1,18 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+=============
14 DCCP protocol
25 =============
36
47
5−Contents
6−========
7−- Introduction
8−- Missing features
9−- Socket options
10−- Sysctl variables
11−- IOCTLs
12−- Other tunables
13−- Notes
8+.. Contents
9+ - Introduction
10+ - Missing features
11+ - Socket options
12+ - Sysctl variables
13+ - IOCTLs
14+ - Other tunables
15+ - Notes
1416
1517
1618 Introduction
@@ -38,6 +40,7 @@ The Linux DCCP implementation does not currently support all the features that a · 21 unmodified lines
3840 specified in RFCs 4340...42.
3941
4042 The known bugs are at:
43+
4144 http://www.linuxfoundation.org/collaborate/workgroups/networking/todo#DCCP
4245
4346 For more up-to-date versions of the DCCP implementation, please consider using
@@ -54,7 +57,8 @@ defined: the "simple" policy (DCCPQ_POLICY_SIMPLE), which does nothing special, · 10 unmodified lines
5457 and a priority-based variant (DCCPQ_POLICY_PRIO). The latter allows to pass an
5558 u32 priority value as ancillary data to sendmsg(), where higher numbers indicate
5659 a higher packet priority (similar to SO_PRIORITY). This ancillary data needs to
57−be formatted using a cmsg(3) message header filled in as follows:
60+be formatted using a cmsg(3) message header filled in as follows::
61+
5862 cmsg->cmsg_level = SOL_DCCP;
5963 cmsg->cmsg_type = DCCP_SCM_PRIORITY;
6064 cmsg->cmsg_len = CMSG_LEN(sizeof(uint32_t)); /* or CMSG_LEN(4) */
@@ -94,7 +98,7 @@ must be registered on the socket before calling connect() or listen(). · 33 unmodified lines
9498
9599 DCCP_SOCKOPT_TX_CCID is read/write. It returns the current CCID (if set) or sets
96100 the preference list for the TX CCID, using the same format as DCCP_SOCKOPT_CCID.
97−Please note that the getsockopt argument type here is `int', not uint8_t.
101+Please note that the getsockopt argument type here is ``int``, not uint8_t.
98102
99103 DCCP_SOCKOPT_RX_CCID is analogous to DCCP_SOCKOPT_TX_CCID, but for the RX CCID.
100104
@@ -113,6 +117,7 @@ be enabled at the receiver, too with suitable choice of CsCov. · 12 unmodified lines
113117 DCCP_SOCKOPT_SEND_CSCOV sets the sender checksum coverage. Values in the
114118 range 0..15 are acceptable. The default setting is 0 (full coverage),
115119 values between 1..15 indicate partial coverage.
120+
116121 DCCP_SOCKOPT_RECV_CSCOV is for the receiver and has a different meaning: it
117122 sets a threshold, where again values 0..15 are acceptable. The default
118123 of 0 means that all packets with a partial coverage will be discarded.
@@ -123,11 +128,13 @@ DCCP_SOCKOPT_RECV_CSCOV is for the receiver and has a different meaning: it · 4 unmodified lines
123128
124129 The following two options apply to CCID 3 exclusively and are getsockopt()-only.
125130 In either case, a TFRC info struct (defined in <linux/tfrc.h>) is returned.
131+
126132 DCCP_SOCKOPT_CCID_RX_INFO
127− Returns a `struct tfrc_rx_info' in optval; the buffer for optval and
133+ Returns a ``struct tfrc_rx_info`` in optval; the buffer for optval and
128134 optlen must be set to at least sizeof(struct tfrc_rx_info).
135+
129136 DCCP_SOCKOPT_CCID_TX_INFO
130− Returns a `struct tfrc_tx_info' in optval; the buffer for optval and
137+ Returns a ``struct tfrc_tx_info`` in optval; the buffer for optval and
131138 optlen must be set to at least sizeof(struct tfrc_tx_info).
132139
133140 On unidirectional connections it is useful to close the unused half-connection
@@ -182,7 +189,7 @@ sync_ratelimit = 125 ms · 48 unmodified lines
182189 IOCTLS
183190 ======
184191 FIONREAD
185− Works as in udp(7): returns in the `int' argument pointer the size of
192+ Works as in udp(7): returns in the ``int`` argument pointer the size of
186193 the next pending datagram in bytes, or 0 when no datagram is pending.
187194
188195
@@ -191,10 +198,12 @@ Other tunables · 2 unmodified lines
191198 Per-route rto_min support
192199 CCID-2 supports the RTAX_RTO_MIN per-route setting for the minimum value
193200 of the RTO timer. This setting can be modified via the 'rto_min' option
194− of iproute2; for example:
201+ of iproute2; for example::
202+
195203 > ip route change 10.0.0.0/24 rto_min 250j dev wlan0
196204 > ip route add 10.0.0.254/32 rto_min 800j dev wlan0
197205 > ip route show dev wlan0
206+
198207 CCID-3 also supports the rto_min setting: it is used to define the lower
199208 bound for the expiry of the nofeedback timer. This can be useful on LANs
200209 with very low RTTs (e.g., loopback, Gbit ethernet).
Documentation/networking/dctcp.rstrenamed from Documentation/networking/dctcp.txt+11−3
@@ -1,11 +1,14 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+======================
14 DCTCP (DataCenter TCP)
2−----------------------
5+======================
36
47 DCTCP is an enhancement to the TCP congestion control algorithm for data
58 center networks and leverages Explicit Congestion Notification (ECN) in
69 the data center network to provide multi-bit feedback to the end hosts.
710
8−To enable it on end hosts:
11+To enable it on end hosts::
912
1013 sysctl -w net.ipv4.tcp_congestion_control=dctcp
1114 sysctl -w net.ipv4.tcp_ecn_fallback=0 (optional)
@@ -25,14 +28,19 @@ SIGCOMM/SIGMETRICS papers: · 13 unmodified lines
2528
2629 i) Mohammad Alizadeh, Albert Greenberg, David A. Maltz, Jitendra Padhye,
2730 Parveen Patel, Balaji Prabhakar, Sudipta Sengupta, and Murari Sridharan:
28− "Data Center TCP (DCTCP)", Data Center Networks session
31+
32+ "Data Center TCP (DCTCP)", Data Center Networks session"
33+
2934 Proc. ACM SIGCOMM, New Delhi, 2010.
35+
3036 http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf
3137 http://www.sigcomm.org/ccr/papers/2010/October/1851275.1851192
3238
3339 ii) Mohammad Alizadeh, Adel Javanmard, and Balaji Prabhakar:
40+
3441 "Analysis of DCTCP: Stability, Convergence, and Fairness"
3542 Proc. ACM SIGMETRICS, San Jose, 2011.
43+
3644 http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp_analysis-full.pdf
3745
3846 IETF informational draft:
Documentation/networking/decnet.rstrenamed from Documentation/networking/decnet.txt+45−32
@@ -1,26 +1,31 @@
1− Linux DECnet Networking Layer Information
2− ===========================================
1+.. SPDX-License-Identifier: GPL-2.0
32
4−1) Other documentation....
3+=========================================
4+Linux DECnet Networking Layer Information
5+=========================================
56
6− o Project Home Pages
7− http://www.chygwyn.com/ - Kernel info
8− http://linux-decnet.sourceforge.net/ - Userland tools
9− http://www.sourceforge.net/projects/linux-decnet/ - Status page
7+1. Other documentation....
8+==========================
109
11−2) Configuring the kernel
10+ - Project Home Pages
11+ - http://www.chygwyn.com/ - Kernel info
12+ - http://linux-decnet.sourceforge.net/ - Userland tools
13+ - http://www.sourceforge.net/projects/linux-decnet/ - Status page
14+
15+2. Configuring the kernel
16+=========================
1217
1318 Be sure to turn on the following options:
1419
15− CONFIG_DECNET (obviously)
16− CONFIG_PROC_FS (to see what's going on)
17− CONFIG_SYSCTL (for easy configuration)
20+ - CONFIG_DECNET (obviously)
21+ - CONFIG_PROC_FS (to see what's going on)
22+ - CONFIG_SYSCTL (for easy configuration)
1823
1924 if you want to try out router support (not properly debugged yet)
2025 you'll need the following options as well...
2126
22− CONFIG_DECNET_ROUTER (to be able to add/delete routes)
23− CONFIG_NETFILTER (will be required for the DECnet routing daemon)
27+ - CONFIG_DECNET_ROUTER (to be able to add/delete routes)
28+ - CONFIG_NETFILTER (will be required for the DECnet routing daemon)
2429
2530 Don't turn on SIOCGIFCONF support for DECnet unless you are really sure
2631 that you need it, in general you won't and it can cause ifconfig to
@@ -29,7 +34,7 @@ malfunction. · 2 unmodified lines
2934 Run time configuration has changed slightly from the 2.4 system. If you
3035 want to configure an endnode, then the simplified procedure is as follows:
3136
32− o Set the MAC address on your ethernet card before starting _any_ other
37+ - Set the MAC address on your ethernet card before starting _any_ other
3338 network protocols.
3439
3540 As soon as your network card is brought into the UP state, DECnet should
@@ -37,7 +42,8 @@ start working. If you need something more complicated or are unsure how · 1 unmodified line
3742 to set the MAC address, see the next section. Also all configurations which
3843 worked with 2.4 will work under 2.5 with no change.
3944
40−3) Command line options
45+3. Command line options
46+=======================
4147
4248 You can set a DECnet address on the kernel command line for compatibility
4349 with the 2.4 configuration procedure, but in general it's not needed any more.
@@ -56,7 +62,7 @@ interface then you won't see any entries in /proc/net/neigh for the local · 12 unmodified lines
5662 host until such time as you start a connection. This doesn't affect the
5763 operation of the local communications in any other way though.
5864
59−The kernel command line takes options looking like the following:
65+The kernel command line takes options looking like the following::
6066
6167 decnet.addr=1,2
6268
@@ -82,7 +88,7 @@ address of the node in order for it to be autoconfigured (and then appear in · 19 unmodified lines
8288 FTP sites called dn2ethaddr which can compute the correct ethernet
8389 address to use. The address can be set by ifconfig either before or
8490 at the time the device is brought up. If you are using RedHat you can
85−add the line:
91+add the line::
8692
8793 MACADDR=AA:00:04:00:03:04
8894
@@ -95,7 +101,7 @@ verify with iproute2). · 6 unmodified lines
95101 The default device for routing can be set through the /proc filesystem
96102 by setting /proc/sys/net/decnet/default_device to the
97103 device you want DECnet to route packets out of when no specific route
98−is available. Usually this will be eth0, for example:
104+is available. Usually this will be eth0, for example::
99105
100106 echo -n "eth0" >/proc/sys/net/decnet/default_device
101107
@@ -106,7 +112,9 @@ confirm that by looking in the default_device file of course. · 4 unmodified lines
106112 There is a list of what the other files under /proc/sys/net/decnet/ do
107113 on the kernel patch web site (shown above).
108114
109−4) Run time kernel configuration
115+4. Run time kernel configuration
116+================================
117+
110118
111119 This is either done through the sysctl/proc interface (see the kernel web
112120 pages for details on what the various options do) or through the iproute2
@@ -122,20 +130,21 @@ since its the _only_ way to add and delete routes currently. Eventually · 9 unmodified lines
122130 there will be a routing daemon to send and receive routing messages for
123131 each interface and update the kernel routing tables accordingly. The
124132 routing daemon will use netfilter to listen to routing packets, and
125−rtnetlink to update the kernels routing tables.
133+rtnetlink to update the kernels routing tables.
126134
127135 The DECnet raw socket layer has been removed since it was there purely
128136 for use by the routing daemon which will now use netfilter (a much cleaner
129137 and more generic solution) instead.
130138
131−5) How can I tell if its working ?
139+5. How can I tell if its working?
140+=================================
132141
133142 Here is a quick guide of what to look for in order to know if your DECnet
134143 kernel subsystem is working.
135144
136145 - Is the node address set (see /proc/sys/net/decnet/node_address)
137− - Is the node of the correct type
138− (see /proc/sys/net/decnet/conf/<dev>/forwarding)
146+ - Is the node of the correct type
147+ (see /proc/sys/net/decnet/conf/<dev>/forwarding)
139148 - Is the Ethernet MAC address of each Ethernet card set to match
140149 the DECnet address. If in doubt use the dn2ethaddr utility available
141150 at the ftp archive.
@@ -160,7 +169,8 @@ kernel subsystem is working. · 18 unmodified lines
160169 network, and see if you can obtain the same results.
161170 - At this point you are on your own... :-)
162171
163−6) How to send a bug report
172+6. How to send a bug report
173+===========================
164174
165175 If you've found a bug and want to report it, then there are several things
166176 you can do to help me work out exactly what it is that is wrong. Useful
@@ -175,18 +185,19 @@ information (_most_ of which _is_ _essential_) includes: · 8 unmodified lines
175185 - How much data was being transferred ?
176186 - Was the network congested ?
177187 - How can the problem be reproduced ?
178− - Can you use tcpdump to get a trace ? (N.B. Most (all?) versions of
188+ - Can you use tcpdump to get a trace ? (N.B. Most (all?) versions of
179189 tcpdump don't understand how to dump DECnet properly, so including
180190 the hex listing of the packet contents is _essential_, usually the -x flag.
181191 You may also need to increase the length grabbed with the -s flag. The
182192 -e flag also provides very useful information (ethernet MAC addresses))
183193
184−7) MAC FAQ
194+7. MAC FAQ
195+==========
185196
186197 A quick FAQ on ethernet MAC addresses to explain how Linux and DECnet
187−interact and how to get the best performance from your hardware.
198+interact and how to get the best performance from your hardware.
188199
189−Ethernet cards are designed to normally only pass received network frames
200+Ethernet cards are designed to normally only pass received network frames
190201 to a host computer when they are addressed to it, or to the broadcast address.
191202
192203 Linux has an interface which allows the setting of extra addresses for
@@ -197,8 +208,8 @@ significant processor time and bus bandwidth can be used up on a busy · 4 unmodified lines
197208 network (see the NAPI documentation for a longer explanation of these
198209 effects).
199210
200−DECnet makes use of this interface to allow running DECnet on an ethernet
201−card which has already been configured using TCP/IP (presumably using the
211+DECnet makes use of this interface to allow running DECnet on an ethernet
212+card which has already been configured using TCP/IP (presumably using the
202213 built in MAC address of the card, as usual) and/or to allow multiple DECnet
203214 addresses on each physical interface. If you do this, be aware that if your
204215 ethernet card doesn't support perfect hashing in its MAC address filter
@@ -210,7 +221,8 @@ to gain the best efficiency. Better still is to use a card which supports · 5 unmodified lines
210221 NAPI as well.
211222
212223
213−8) Mailing list
224+8. Mailing list
225+===============
214226
215227 If you are keen to get involved in development, or want to ask questions
216228 about configuration, or even just report bugs, then there is a mailing
@@ -218,7 +230,8 @@ list that you can join, details are at: · 1 unmodified line
218230
219231 http://sourceforge.net/mail/?group_id=4993
220232
221−9) Legal Info
233+9. Legal Info
234+=============
222235
223236 The Linux DECnet project team have placed their code under the GPL. The
224237 software is provided "as is" and without warranty express or implied.
Documentation/networking/defza.rstrenamed from Documentation/networking/defza.txt+7−1
@@ -1,4 +1,10 @@
1−Notes on the DEC FDDIcontroller 700 (DEFZA-xx) driver v.1.1.4.
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+=====================================================
4+Notes on the DEC FDDIcontroller 700 (DEFZA-xx) driver
5+=====================================================
6+
7+:Version: v.1.1.4
28
39
410 DEC FDDIcontroller 700 is DEC's first-generation TURBOchannel FDDI
Documentation/networking/device_drivers/3com/3c509.rstrenamed from Documentation/networking/device_drivers/3com/3c509.txt+99−63
@@ -1,17 +1,21 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+=============================================================================
14 Linux and the 3Com EtherLink III Series Ethercards (driver v1.18c and higher)
2−----------------------------------------------------------------------------
5+=============================================================================
36
47 This file contains the instructions and caveats for v1.18c and higher versions
58 of the 3c509 driver. You should not use the driver without reading this file.
69
710 release 1.0
11+
812 28 February 2002
13+
914 Current maintainer (corrections to):
1015 David Ruggiero <jdr@farfalle.com>
1116
12−----------------------------------------------------------------------------
13−
14−(0) Introduction
17+Introduction
18+============
1519
1620 The following are notes and information on using the 3Com EtherLink III series
1721 ethercards in Linux. These cards are commonly known by the most widely-used
@@ -21,11 +25,11 @@ be (but sometimes are) confused with the similarly-numbered PCI-bus "3c905" · 3 unmodified lines
2125 provided by the module 3c509.c, which has code to support all of the following
2226 models:
2327
24− 3c509 (original ISA card)
25− 3c509B (later revision of the ISA card; supports full-duplex)
26− 3c589 (PCMCIA)
27− 3c589B (later revision of the 3c589; supports full-duplex)
28− 3c579 (EISA)
28+ - 3c509 (original ISA card)
29+ - 3c509B (later revision of the ISA card; supports full-duplex)
30+ - 3c589 (PCMCIA)
31+ - 3c589B (later revision of the 3c589; supports full-duplex)
32+ - 3c579 (EISA)
2933
3034 Large portions of this documentation were heavily borrowed from the guide
3135 written the original author of the 3c509 driver, Donald Becker. The master
@@ -33,32 +37,34 @@ copy of that document, which contains notes on older versions of the driver, · 1 unmodified line
3337 currently resides on Scyld web server: http://www.scyld.com/.
3438
3539
36−(1) Special Driver Features
40+Special Driver Features
41+=======================
3742
3843 Overriding card settings
3944
4045 The driver allows boot- or load-time overriding of the card's detected IOADDR,
4146 IRQ, and transceiver settings, although this capability shouldn't generally be
4247 needed except to enable full-duplex mode (see below). An example of the syntax
43−for LILO parameters for doing this:
48+for LILO parameters for doing this::
4449
45− ether=10,0x310,3,0x3c509,eth0
50+ ether=10,0x310,3,0x3c509,eth0
4651
4752 This configures the first found 3c509 card for IRQ 10, base I/O 0x310, and
4853 transceiver type 3 (10base2). The flag "0x3c509" must be set to avoid conflicts
4954 with other card types when overriding the I/O address. When the driver is
5055 loaded as a module, only the IRQ may be overridden. For example,
5156 setting two cards to IRQ10 and IRQ11 is done by using the irq module
52−option:
57+option::
5358
5459 options 3c509 irq=10,11
5560
5661
57−(2) Full-duplex mode
62+Full-duplex mode
63+================
5864
5965 The v1.18c driver added support for the 3c509B's full-duplex capabilities.
6066 In order to enable and successfully use full-duplex mode, three conditions
61−must be met:
67+must be met:
6268
6369 (a) You must have a Etherlink III card model whose hardware supports full-
6470 duplex operations. Currently, the only members of the 3c509 family that are
@@ -78,27 +84,32 @@ duplex-capable Ethernet switch (*not* a hub), or a full-duplex-capable NIC on · 13 unmodified lines
7884 another system that's connected directly to the 3c509B via a crossover cable.
7985
8086 Full-duplex mode can be enabled using 'ethtool'.
81−
82−/////Extremely important caution concerning full-duplex mode/////
83−Understand that the 3c509B's hardware's full-duplex support is much more
84−limited than that provide by more modern network interface cards. Although
85−at the physical layer of the network it fully supports full-duplex operation,
86−the card was designed before the current Ethernet auto-negotiation (N-way)
87−spec was written. This means that the 3c509B family ***cannot and will not
88−auto-negotiate a full-duplex connection with its link partner under any
89−circumstances, no matter how it is initialized***. If the full-duplex mode
90−of the 3c509B is enabled, its link partner will very likely need to be
91−independently _forced_ into full-duplex mode as well; otherwise various nasty
92−failures will occur - at the very least, you'll see massive numbers of packet
93−collisions. This is one of very rare circumstances where disabling auto-
94−negotiation and forcing the duplex mode of a network interface card or switch
95−would ever be necessary or desirable.
96−
97−
98−(3) Available Transceiver Types
87+
88+.. warning::
89+
90+ Extremely important caution concerning full-duplex mode
91+
92+ Understand that the 3c509B's hardware's full-duplex support is much more
93+ limited than that provide by more modern network interface cards. Although
94+ at the physical layer of the network it fully supports full-duplex operation,
95+ the card was designed before the current Ethernet auto-negotiation (N-way)
96+ spec was written. This means that the 3c509B family ***cannot and will not
97+ auto-negotiate a full-duplex connection with its link partner under any
98+ circumstances, no matter how it is initialized***. If the full-duplex mode
99+ of the 3c509B is enabled, its link partner will very likely need to be
100+ independently _forced_ into full-duplex mode as well; otherwise various nasty
101+ failures will occur - at the very least, you'll see massive numbers of packet
102+ collisions. This is one of very rare circumstances where disabling auto-
103+ negotiation and forcing the duplex mode of a network interface card or switch
104+ would ever be necessary or desirable.
105+
106+
107+Available Transceiver Types
108+===========================
99109
100110 For versions of the driver v1.18c and above, the available transceiver types are:
101−
111+
112+== =========================================================================
102113 0 transceiver type from EEPROM config (normally 10baseT); force half-duplex
103114 1 AUI (thick-net / DB15 connector)
104115 2 (undefined)
@@ -106,6 +117,7 @@ For versions of the driver v1.18c and above, the available transceiver types are · 1 unmodified line
106117 4 10baseT (RJ-45 connector); force half-duplex mode
107118 8 transceiver type and duplex mode taken from card's EEPROM config settings
108119 12 10baseT (RJ-45 connector); force full-duplex mode
120+== =========================================================================
109121
110122 Prior to driver version 1.18c, only transceiver codes 0-4 were supported. Note
111123 that the new transceiver codes 8 and 12 are the *only* ones that will enable
@@ -116,26 +128,30 @@ it must always be explicitly enabled via one of these code in order to be · 4 unmodified lines
116128 activated.
117129
118130 The transceiver type can be changed using 'ethtool'.
119−
120131
121−(4a) Interpretation of error messages and common problems
132+
133+Interpretation of error messages and common problems
134+----------------------------------------------------
122135
123136 Error Messages
137+^^^^^^^^^^^^^^
124138
125−eth0: Infinite loop in interrupt, status 2011.
139+eth0: Infinite loop in interrupt, status 2011.
126140 These are "mostly harmless" message indicating that the driver had too much
127141 work during that interrupt cycle. With a status of 0x2011 you are receiving
128142 packets faster than they can be removed from the card. This should be rare
129143 or impossible in normal operation. Possible causes of this error report are:
130−
144+
131145 - a "green" mode enabled that slows the processor down when there is no
132− keyboard activity.
146+ keyboard activity.
133147
134148 - some other device or device driver hogging the bus or disabling interrupts.
135149 Check /proc/interrupts for excessive interrupt counts. The timer tick
136− interrupt should always be incrementing faster than the others.
150+ interrupt should always be incrementing faster than the others.
151+
152+No received packets
153+^^^^^^^^^^^^^^^^^^^
137154
138−No received packets
139155 If a 3c509, 3c562 or 3c589 can successfully transmit packets, but never
140156 receives packets (as reported by /proc/net/dev or 'ifconfig') you likely
141157 have an interrupt line problem. Check /proc/interrupts to verify that the
@@ -146,26 +162,37 @@ or IRQ5, and the easiest solution is to move the 3c509 to a different · 4 unmodified lines
146162 interrupt line. If the device is receiving packets but 'ping' doesn't work,
147163 you have a routing problem.
148164
149−Tx Carrier Errors Reported in /proc/net/dev
165+Tx Carrier Errors Reported in /proc/net/dev
166+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
167+
168+
150169 If an EtherLink III appears to transmit packets, but the "Tx carrier errors"
151170 field in /proc/net/dev increments as quickly as the Tx packet count, you
152−likely have an unterminated network or the incorrect media transceiver selected.
171+likely have an unterminated network or the incorrect media transceiver selected.
172+
173+3c509B card is not detected on machines with an ISA PnP BIOS.
174+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
153175
154−3c509B card is not detected on machines with an ISA PnP BIOS.
155176 While the updated driver works with most PnP BIOS programs, it does not work
156177 with all. This can be fixed by disabling PnP support using the 3Com-supplied
157−setup program.
178+setup program.
179+
180+3c509 card is not detected on overclocked machines
181+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
158182
159−3c509 card is not detected on overclocked machines
160183 Increase the delay time in id_read_eeprom() from the current value, 500,
161−to an absurdly high value, such as 5000.
184+to an absurdly high value, such as 5000.
185+
162186
187+Decoding Status and Error Messages
188+----------------------------------
163189
164−(4b) Decoding Status and Error Messages
165190
166−The bits in the main status register are:
191+The bits in the main status register are:
167192
193+===== ======================================
168194 value description
195+===== ======================================
169196 0x01 Interrupt latch
170197 0x02 Tx overrun, or Rx underrun
171198 0x04 Tx complete
@@ -174,30 +201,38 @@ value description · 2 unmodified lines
174201 0x20 A Rx packet has started to arrive
175202 0x40 The driver has requested an interrupt
176203 0x80 Statistics counter nearly full
204+===== ======================================
177205
178−The bits in the transmit (Tx) status word are:
206+The bits in the transmit (Tx) status word are:
179207
180−value description
181−0x02 Out-of-window collision.
182−0x04 Status stack overflow (normally impossible).
183−0x08 16 collisions.
184−0x10 Tx underrun (not enough PCI bus bandwidth).
185−0x20 Tx jabber.
186−0x40 Tx interrupt requested.
187−0x80 Status is valid (this should always be set).
208+===== ============================================
209+value description
210+===== ============================================
211+0x02 Out-of-window collision.
212+0x04 Status stack overflow (normally impossible).
213+0x08 16 collisions.
214+0x10 Tx underrun (not enough PCI bus bandwidth).
215+0x20 Tx jabber.
216+0x40 Tx interrupt requested.
217+0x80 Status is valid (this should always be set).
218+===== ============================================
188219
189220
190−When a transmit error occurs the driver produces a status message such as
221+When a transmit error occurs the driver produces a status message such as::
191222
192223 eth0: Transmit error, Tx status register 82
193224
194225 The two values typically seen here are:
195226
196−0x82
227+0x82
228+^^^^
229+
197230 Out of window collision. This typically occurs when some other Ethernet
198−host is incorrectly set to full duplex on a half duplex network.
231+host is incorrectly set to full duplex on a half duplex network.
232+
233+0x88
234+^^^^
199235
200−0x88
201236 16 collisions. This typically occurs when the network is exceptionally busy
202237 or when another host doesn't correctly back off after a collision. If this
203238 error is mixed with 0x82 errors it is the result of a host incorrectly set
@@ -207,7 +242,8 @@ Both of these errors are the result of network problems that should be · 3 unmodified lines
207242 corrected. They do not represent driver malfunction.
208243
209244
210−(5) Revision history (this file)
245+Revision history (this file)
246+============================
211247
212248 28Feb02 v1.0 DR New; major portions based on Becker original 3c509 docs
213249
Documentation/networking/device_drivers/3com/vortex.rstrenamed from Documentation/networking/device_drivers/3com/vortex.txt+120−107
@@ -1,5 +1,13 @@
1−Documentation/networking/device_drivers/3com/vortex.txt
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+=========================
4+3Com Vortex device driver
5+=========================
6+
7+Documentation/networking/device_drivers/3com/vortex.rst
8+
29 Andrew Morton
10+
311 30 April 2000
412
513
@@ -8,12 +16,12 @@ driver for Linux, 3c59x.c. · 2 unmodified lines
816
917 The driver was written by Donald Becker <becker@scyld.com>
1018
11−Don is no longer the prime maintainer of this version of the driver.
19+Don is no longer the prime maintainer of this version of the driver.
1220 Please report problems to one or more of:
1321
14− Andrew Morton
15− Netdev mailing list <netdev@vger.kernel.org>
16− Linux kernel mailing list <linux-kernel@vger.kernel.org>
22+- Andrew Morton
23+- Netdev mailing list <netdev@vger.kernel.org>
24+- Linux kernel mailing list <linux-kernel@vger.kernel.org>
1725
1826 Please note the 'Reporting and Diagnosing Problems' section at the end
1927 of this file.
@@ -24,58 +32,58 @@ Since kernel 2.3.99-pre6, this driver incorporates the support for the · 4 unmodified lines
2432
2533 This driver supports the following hardware:
2634
27− 3c590 Vortex 10Mbps
28− 3c592 EISA 10Mbps Demon/Vortex
29− 3c597 EISA Fast Demon/Vortex
30− 3c595 Vortex 100baseTx
31− 3c595 Vortex 100baseT4
32− 3c595 Vortex 100base-MII
33− 3c900 Boomerang 10baseT
34− 3c900 Boomerang 10Mbps Combo
35− 3c900 Cyclone 10Mbps TPO
36− 3c900 Cyclone 10Mbps Combo
37− 3c900 Cyclone 10Mbps TPC
38− 3c900B-FL Cyclone 10base-FL
39− 3c905 Boomerang 100baseTx
40− 3c905 Boomerang 100baseT4
41− 3c905B Cyclone 100baseTx
42− 3c905B Cyclone 10/100/BNC
43− 3c905B-FX Cyclone 100baseFx
44− 3c905C Tornado
45− 3c920B-EMB-WNM (ATI Radeon 9100 IGP)
46− 3c980 Cyclone
47− 3c980C Python-T
48− 3cSOHO100-TX Hurricane
49− 3c555 Laptop Hurricane
50− 3c556 Laptop Tornado
51− 3c556B Laptop Hurricane
52− 3c575 [Megahertz] 10/100 LAN CardBus
53− 3c575 Boomerang CardBus
54− 3CCFE575BT Cyclone CardBus
55− 3CCFE575CT Tornado CardBus
56− 3CCFE656 Cyclone CardBus
57− 3CCFEM656B Cyclone+Winmodem CardBus
58− 3CXFEM656C Tornado+Winmodem CardBus
59− 3c450 HomePNA Tornado
60− 3c920 Tornado
61− 3c982 Hydra Dual Port A
62− 3c982 Hydra Dual Port B
63− 3c905B-T4
64− 3c920B-EMB-WNM Tornado
35+ - 3c590 Vortex 10Mbps
36+ - 3c592 EISA 10Mbps Demon/Vortex
37+ - 3c597 EISA Fast Demon/Vortex
38+ - 3c595 Vortex 100baseTx
39+ - 3c595 Vortex 100baseT4
40+ - 3c595 Vortex 100base-MII
41+ - 3c900 Boomerang 10baseT
42+ - 3c900 Boomerang 10Mbps Combo
43+ - 3c900 Cyclone 10Mbps TPO
44+ - 3c900 Cyclone 10Mbps Combo
45+ - 3c900 Cyclone 10Mbps TPC
46+ - 3c900B-FL Cyclone 10base-FL
47+ - 3c905 Boomerang 100baseTx
48+ - 3c905 Boomerang 100baseT4
49+ - 3c905B Cyclone 100baseTx
50+ - 3c905B Cyclone 10/100/BNC
51+ - 3c905B-FX Cyclone 100baseFx
52+ - 3c905C Tornado
53+ - 3c920B-EMB-WNM (ATI Radeon 9100 IGP)
54+ - 3c980 Cyclone
55+ - 3c980C Python-T
56+ - 3cSOHO100-TX Hurricane
57+ - 3c555 Laptop Hurricane
58+ - 3c556 Laptop Tornado
59+ - 3c556B Laptop Hurricane
60+ - 3c575 [Megahertz] 10/100 LAN CardBus
61+ - 3c575 Boomerang CardBus
62+ - 3CCFE575BT Cyclone CardBus
63+ - 3CCFE575CT Tornado CardBus
64+ - 3CCFE656 Cyclone CardBus
65+ - 3CCFEM656B Cyclone+Winmodem CardBus
66+ - 3CXFEM656C Tornado+Winmodem CardBus
67+ - 3c450 HomePNA Tornado
68+ - 3c920 Tornado
69+ - 3c982 Hydra Dual Port A
70+ - 3c982 Hydra Dual Port B
71+ - 3c905B-T4
72+ - 3c920B-EMB-WNM Tornado
6573
6674 Module parameters
6775 =================
6876
6977 There are several parameters which may be provided to the driver when
70−its module is loaded. These are usually placed in /etc/modprobe.d/*.conf
71−configuration files. Example:
78+its module is loaded. These are usually placed in ``/etc/modprobe.d/*.conf``
79+configuration files. Example::
7280
73−options 3c59x debug=3 rx_copybreak=300
81+ options 3c59x debug=3 rx_copybreak=300
7482
7583 If you are using the PCMCIA tools (cardmgr) then the options may be
76−placed in /etc/pcmcia/config.opts:
84+placed in /etc/pcmcia/config.opts::
7785
78−module "3c59x" opts "debug=3 rx_copybreak=300"
86+ module "3c59x" opts "debug=3 rx_copybreak=300"
7987
8088
8189 The supported parameters are:
@@ -89,7 +97,7 @@ options=N1,N2,N3,... · 7 unmodified lines
8997
9098 Each number in the list provides an option to the corresponding
9199 network card. So if you have two 3c905's and you wish to provide
92− them with option 0x204 you would use:
100+ them with option 0x204 you would use::
93101
94102 options=0x204,0x204
95103
@@ -97,6 +105,8 @@ options=N1,N2,N3,... · 1 unmodified line
97105 have the following meanings:
98106
99107 Possible media type settings
108+
109+ == =================================
100110 0 10baseT
101111 1 10Mbs AUI
102112 2 undefined
@@ -108,17 +118,20 @@ options=N1,N2,N3,... · 5 unmodified lines
108118 8 Autonegotiate
109119 9 External MII
110120 10 Use default setting from EEPROM
121+ == =================================
111122
112123 When generating a value for the 'options' setting, the above media
113124 selection values may be OR'ed (or added to) the following:
114125
126+ ====== =============================================
115127 0x8000 Set driver debugging level to 7
116128 0x4000 Set driver debugging level to 2
117129 0x0400 Enable Wake-on-LAN
118130 0x0200 Force full duplex mode.
119131 0x0010 Bus-master enable bit (Old Vortex cards only)
132+ ====== =============================================
120133
121− For example:
134+ For example::
122135
123136 insmod 3c59x options=0x204
124137
@@ -127,14 +140,14 @@ options=N1,N2,N3,... · 2 unmodified lines
127140
128141 global_options=N
129142
130− Sets the `options' parameter for all 3c59x NICs in the machine.
131− Entries in the `options' array above will override any setting of
143+ Sets the ``options`` parameter for all 3c59x NICs in the machine.
144+ Entries in the ``options`` array above will override any setting of
132145 this.
133146
134147 full_duplex=N1,N2,N3...
135148
136149 Similar to bit 9 of 'options'. Forces the corresponding card into
137− full-duplex mode. Please use this in preference to the `options'
150+ full-duplex mode. Please use this in preference to the ``options``
138151 parameter.
139152
140153 In fact, please don't use this at all! You're better off getting
@@ -143,13 +156,13 @@ full_duplex=N1,N2,N3... · 2 unmodified lines
143156 global_full_duplex=N1
144157
145158 Sets full duplex mode for all 3c59x NICs in the machine. Entries
146− in the `full_duplex' array above will override any setting of this.
159+ in the ``full_duplex`` array above will override any setting of this.
147160
148161 flow_ctrl=N1,N2,N3...
149162
150163 Use 802.3x MAC-layer flow control. The 3com cards only support the
151164 PAUSE command, which means that they will stop sending packets for a
152− short period if they receive a PAUSE frame from the link partner.
165+ short period if they receive a PAUSE frame from the link partner.
153166
154167 The driver only allows flow control on a link which is operating in
155168 full duplex mode.
@@ -170,14 +183,14 @@ rx_copybreak=M · 14 unmodified lines
170183
171184 This is a speed/space tradeoff.
172185
173− The value of rx_copybreak is used to decide when to make the copy.
174− If the packet size is less than rx_copybreak, the packet is copied.
186+ The value of rx_copybreak is used to decide when to make the copy.
187+ If the packet size is less than rx_copybreak, the packet is copied.
175188 The default value for rx_copybreak is 200 bytes.
176189
177190 max_interrupt_work=N
178191
179192 The driver's interrupt service routine can handle many receive and
180− transmit packets in a single invocation. It does this in a loop.
193+ transmit packets in a single invocation. It does this in a loop.
181194 The value of max_interrupt_work governs how many times the interrupt
182195 service routine will loop. The default value is 32 loops. If this
183196 is exceeded the interrupt service routine gives up and generates a
@@ -186,7 +199,7 @@ max_interrupt_work=N · 2 unmodified lines
186199 hw_checksums=N1,N2,N3,...
187200
188201 Recent 3com NICs are able to generate IPv4, TCP and UDP checksums
189− in hardware. Linux has used the Rx checksumming for a long time.
202+ in hardware. Linux has used the Rx checksumming for a long time.
190203 The "zero copy" patch which is planned for the 2.4 kernel series
191204 allows you to make use of the NIC's DMA scatter/gather and transmit
192205 checksumming as well.
@@ -196,11 +209,11 @@ hw_checksums=N1,N2,N3,... · 3 unmodified lines
196209
197210 This module parameter has been provided so you can override this
198211 decision. If you think that Tx checksums are causing a problem, you
199− may disable the feature with `hw_checksums=0'.
212+ may disable the feature with ``hw_checksums=0``.
200213
201214 If you think your NIC should be performing Tx checksumming and the
202215 driver isn't enabling it, you can force the use of hardware Tx
203− checksumming with `hw_checksums=1'.
216+ checksumming with ``hw_checksums=1``.
204217
205218 The driver drops a message in the logfiles to indicate whether or
206219 not it is using hardware scatter/gather and hardware Tx checksums.
@@ -210,8 +223,8 @@ hw_checksums=N1,N2,N3,... · 3 unmodified lines
210223 decrease in throughput for send(). There is no effect upon receive
211224 efficiency.
212225
213−compaq_ioaddr=N
214−compaq_irq=N
226+compaq_ioaddr=N,
227+compaq_irq=N,
215228 compaq_device_id=N
216229
217230 "Variables to work-around the Compaq PCI BIOS32 problem"....
@@ -219,7 +232,7 @@ compaq_device_id=N · 1 unmodified line
219232 watchdog=N
220233
221234 Sets the time duration (in milliseconds) after which the kernel
222− decides that the transmitter has become stuck and needs to be reset.
235+ decides that the transmitter has become stuck and needs to be reset.
223236 This is mainly for debugging purposes, although it may be advantageous
224237 to increase this value on LANs which have very high collision rates.
225238 The default value is 5000 (5.0 seconds).
@@ -227,7 +240,7 @@ watchdog=N · 1 unmodified line
227240 enable_wol=N1,N2,N3,...
228241
229242 Enable Wake-on-LAN support for the relevant interface. Donald
230− Becker's `ether-wake' application may be used to wake suspended
243+ Becker's ``ether-wake`` application may be used to wake suspended
231244 machines.
232245
233246 Also enables the NIC's power management support.
@@ -235,7 +248,7 @@ enable_wol=N1,N2,N3,... · 1 unmodified line
235248 global_enable_wol=N
236249
237250 Sets enable_wol mode for all 3c59x NICs in the machine. Entries in
238− the `enable_wol' array above will override any setting of this.
251+ the ``enable_wol`` array above will override any setting of this.
239252
240253 Media selection
241254 ---------------
@@ -325,12 +338,12 @@ Autonegotiation notes · 83 unmodified lines
325338
326339 Cisco switches (Jeff Busch <jbusch@deja.com>)
327340
328− My "standard config" for ports to which PC's/servers connect directly:
341+ My "standard config" for ports to which PC's/servers connect directly::
329342
330− interface FastEthernet0/N
331− description machinename
332− load-interval 30
333− spanning-tree portfast
343+ interface FastEthernet0/N
344+ description machinename
345+ load-interval 30
346+ spanning-tree portfast
334347
335348 If autonegotiation is a problem, you may need to specify "speed
336349 100" and "duplex full" as well (or "speed 10" and "duplex half").
@@ -368,9 +381,9 @@ steps you should take: · 31 unmodified lines
368381
369382 But for most problems it is useful to provide the following:
370383
371− o Kernel version, driver version
384+ - Kernel version, driver version
372385
373− o A copy of the banner message which the driver generates when
386+ - A copy of the banner message which the driver generates when
374387 it is initialised. For example:
375388
376389 eth0: 3Com PCI 3c905C Tornado at 0xa400, 00:50:da:6a:88:f0, IRQ 19
@@ -378,68 +391,68 @@ steps you should take: · 1 unmodified line
378391 MII transceiver found at address 24, status 782d.
379392 Enabling bus-master transmits and whole-frame receives.
380393
381− NOTE: You must provide the `debug=2' modprobe option to generate
382− a full detection message. Please do this:
394+ NOTE: You must provide the ``debug=2`` modprobe option to generate
395+ a full detection message. Please do this::
383396
384397 modprobe 3c59x debug=2
385398
386− o If it is a PCI device, the relevant output from 'lspci -vx', eg:
387−
388− 00:09.0 Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 74)
389− Subsystem: 3Com Corporation: Unknown device 9200
390− Flags: bus master, medium devsel, latency 32, IRQ 19
391− I/O ports at a400 [size=128]
392− Memory at db000000 (32-bit, non-prefetchable) [size=128]
393− Expansion ROM at <unassigned> [disabled] [size=128K]
394− Capabilities: [dc] Power Management version 2
395− 00: b7 10 00 92 07 00 10 02 74 00 00 02 08 20 00 00
396− 10: 01 a4 00 00 00 00 00 db 00 00 00 00 00 00 00 00
397− 20: 00 00 00 00 00 00 00 00 00 00 00 00 b7 10 00 10
398− 30: 00 00 00 00 dc 00 00 00 00 00 00 00 05 01 0a 0a
399−
400− o A description of the environment: 10baseT? 100baseT?
399+ - If it is a PCI device, the relevant output from 'lspci -vx', eg::
400+
401+ 00:09.0 Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 74)
402+ Subsystem: 3Com Corporation: Unknown device 9200
403+ Flags: bus master, medium devsel, latency 32, IRQ 19
404+ I/O ports at a400 [size=128]
405+ Memory at db000000 (32-bit, non-prefetchable) [size=128]
406+ Expansion ROM at <unassigned> [disabled] [size=128K]
407+ Capabilities: [dc] Power Management version 2
408+ 00: b7 10 00 92 07 00 10 02 74 00 00 02 08 20 00 00
409+ 10: 01 a4 00 00 00 00 00 db 00 00 00 00 00 00 00 00
410+ 20: 00 00 00 00 00 00 00 00 00 00 00 00 b7 10 00 10
411+ 30: 00 00 00 00 dc 00 00 00 00 00 00 00 05 01 0a 0a
412+
413+ - A description of the environment: 10baseT? 100baseT?
401414 full/half duplex? switched or hubbed?
402415
403− o Any additional module parameters which you may be providing to the driver.
416+ - Any additional module parameters which you may be providing to the driver.
404417
405− o Any kernel logs which are produced. The more the merrier.
418+ - Any kernel logs which are produced. The more the merrier.
406419 If this is a large file and you are sending your report to a
407420 mailing list, mention that you have the logfile, but don't send
408421 it. If you're reporting direct to the maintainer then just send
409422 it.
410423
411424 To ensure that all kernel logs are available, add the
412− following line to /etc/syslog.conf:
425+ following line to /etc/syslog.conf::
413426
414− kern.* /var/log/messages
427+ kern.* /var/log/messages
415428
416− Then restart syslogd with:
429+ Then restart syslogd with::
417430
418− /etc/rc.d/init.d/syslog restart
431+ /etc/rc.d/init.d/syslog restart
419432
420433 (The above may vary, depending upon which Linux distribution you use).
421434
422− o If your problem is reproducible then that's great. Try the
435+ - If your problem is reproducible then that's great. Try the
423436 following:
424437
425438 1) Increase the debug level. Usually this is done via:
426439
427− a) modprobe driver debug=7
428− b) In /etc/modprobe.d/driver.conf:
429− options driver debug=7
440+ a) modprobe driver debug=7
441+ b) In /etc/modprobe.d/driver.conf:
442+ options driver debug=7
430443
431444 2) Recreate the problem with the higher debug level,
432− send all logs to the maintainer.
445+ send all logs to the maintainer.
433446
434447 3) Download you card's diagnostic tool from Donald
435− Becker's website <http://www.scyld.com/ethercard_diag.html>.
436− Download mii-diag.c as well. Build these.
448+ Becker's website <http://www.scyld.com/ethercard_diag.html>.
449+ Download mii-diag.c as well. Build these.
437450
438− a) Run 'vortex-diag -aaee' and 'mii-diag -v' when the card is
439− working correctly. Save the output.
451+ a) Run 'vortex-diag -aaee' and 'mii-diag -v' when the card is
452+ working correctly. Save the output.
440453
441− b) Run the above commands when the card is malfunctioning. Send
442− both sets of output.
454+ b) Run the above commands when the card is malfunctioning. Send
455+ both sets of output.
443456
444457 Finally, please be patient and be prepared to do some work. You may
445458 end up working on this problem for a week or more as the maintainer
Documentation/networking/device_drivers/amazon/ena.rstrenamed from Documentation/networking/device_drivers/amazon/ena.txt+90−54
@@ -1,8 +1,12 @@
1−Linux kernel driver for Elastic Network Adapter (ENA) family:
2−=============================================================
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+============================================================
4+Linux kernel driver for Elastic Network Adapter (ENA) family
5+============================================================
6+
7+Overview
8+========
39
4−Overview:
5−=========
610 ENA is a networking interface designed to make good use of modern CPU
711 features and system architectures.
812
@@ -35,32 +39,40 @@ debug logs. · 26 unmodified lines
3539 Some of the ENA devices support a working mode called Low-latency
3640 Queue (LLQ), which saves several more microseconds.
3741
38−Supported PCI vendor ID/device IDs:
42+Supported PCI vendor ID/device IDs
43+==================================
44+
45+========= =======================
46+1d0f:0ec2 ENA PF
47+1d0f:1ec2 ENA PF with LLQ support
48+1d0f:ec20 ENA VF
49+1d0f:ec21 ENA VF with LLQ support
50+========= =======================
51+
52+ENA Source Code Directory Structure
3953 ===================================
40−1d0f:0ec2 - ENA PF
41−1d0f:1ec2 - ENA PF with LLQ support
42−1d0f:ec20 - ENA VF
43−1d0f:ec21 - ENA VF with LLQ support
44−
45−ENA Source Code Directory Structure:
46−====================================
47−ena_com.[ch] - Management communication layer. This layer is
48− responsible for the handling all the management
49− (admin) communication between the device and the
50− driver.
51−ena_eth_com.[ch] - Tx/Rx data path.
52−ena_admin_defs.h - Definition of ENA management interface.
53−ena_eth_io_defs.h - Definition of ENA data path interface.
54−ena_common_defs.h - Common definitions for ena_com layer.
55−ena_regs_defs.h - Definition of ENA PCI memory-mapped (MMIO) registers.
56−ena_netdev.[ch] - Main Linux kernel driver.
57−ena_syfsfs.[ch] - Sysfs files.
58−ena_ethtool.c - ethtool callbacks.
59−ena_pci_id_tbl.h - Supported device IDs.
54+
55+================= ======================================================
56+ena_com.[ch] Management communication layer. This layer is
57+ responsible for the handling all the management
58+ (admin) communication between the device and the
59+ driver.
60+ena_eth_com.[ch] Tx/Rx data path.
61+ena_admin_defs.h Definition of ENA management interface.
62+ena_eth_io_defs.h Definition of ENA data path interface.
63+ena_common_defs.h Common definitions for ena_com layer.
64+ena_regs_defs.h Definition of ENA PCI memory-mapped (MMIO) registers.
65+ena_netdev.[ch] Main Linux kernel driver.
66+ena_syfsfs.[ch] Sysfs files.
67+ena_ethtool.c ethtool callbacks.
68+ena_pci_id_tbl.h Supported device IDs.
69+================= ======================================================
6070
6171 Management Interface:
6272 =====================
73+
6374 ENA management interface is exposed by means of:
75+
6476 - PCIe Configuration Space
6577 - Device Registers
6678 - Admin Queue (AQ) and Admin Completion Queue (ACQ)
@@ -78,6 +90,7 @@ vendor-specific extensions. Most of the management operations are · 11 unmodified lines
7890 framed in a generic Get/Set feature command.
7991
8092 The following admin queue commands are supported:
93+
8194 - Create I/O submission queue
8295 - Create I/O completion queue
8396 - Destroy I/O submission queue
@@ -96,12 +109,16 @@ be reported using ACQ. AENQ events are subdivided into groups. Each · 12 unmodified lines
96109 group may have multiple syndromes, as shown below
97110
98111 The events are:
112+
113+ ==================== ===============
99114 Group Syndrome
100− Link state change - X -
101− Fatal error - X -
115+ ==================== ===============
116+ Link state change **X**
117+ Fatal error **X**
102118 Notification Suspend traffic
103119 Notification Resume traffic
104− Keep-Alive - X -
120+ Keep-Alive **X**
121+ ==================== ===============
105122
106123 ACQ and AENQ share the same MSI-X vector.
107124
@@ -113,8 +130,8 @@ the device every second. The driver re-arms the WD upon reception of a · 5 unmodified lines
113130 Keep-Alive event. A missed Keep-Alive event causes the WD handler to
114131 fire.
115132
116−Data Path Interface:
117−====================
133+Data Path Interface
134+===================
118135 I/O operations are based on Tx and Rx Submission Queues (Tx SQ and Rx
119136 SQ correspondingly). Each SQ has a completion queue (CQ) associated
120137 with it.
@@ -123,11 +140,15 @@ The SQs and CQs are implemented as descriptor rings in contiguous · 2 unmodified lines
123140 physical memory.
124141
125142 The ENA driver supports two Queue Operation modes for Tx SQs:
143+
126144 - Regular mode
145+
127146 * In this mode the Tx SQs reside in the host's memory. The ENA
128147 device fetches the ENA Tx descriptors and packet data from host
129148 memory.
149+
130150 - Low Latency Queue (LLQ) mode or "push-mode".
151+
131152 * In this mode the driver pushes the transmit descriptors and the
132153 first 128 bytes of the packet directly to the ENA device memory
133154 space. The rest of the packet payload is fetched by the
@@ -142,6 +163,7 @@ Note: Not all ENA devices support LLQ, and this feature is negotiated · 8 unmodified lines
142163
143164 The driver supports multi-queue for both Tx and Rx. This has various
144165 benefits:
166+
145167 - Reduced CPU/thread/process contention on a given Ethernet interface.
146168 - Cache miss rate on completion is reduced, particularly for data
147169 cache lines that hold the sk_buff structures.
@@ -151,8 +173,8 @@ benefits: · 3 unmodified lines
151173 packet is running.
152174 - In hardware interrupt re-direction.
153175
154−Interrupt Modes:
155−================
176+Interrupt Modes
177+===============
156178 The driver assigns a single MSI-X vector per queue pair (for both Tx
157179 and Rx directions). The driver assigns an additional dedicated MSI-X vector
158180 for management (for ACQ and AENQ).
@@ -163,9 +185,12 @@ removed. I/O queue interrupt registration is performed when the Linux · 4 unmodified lines
163185 interface of the adapter is opened, and it is de-registered when the
164186 interface is closed.
165187
166−The management interrupt is named:
188+The management interrupt is named::
189+
167190 ena-mgmnt@pci:<PCI domain:bus:slot.function>
168−and for each queue pair, an interrupt is named:
191+
192+and for each queue pair, an interrupt is named::
193+
169194 <interface name>-Tx-Rx-<queue index>
170195
171196 The ENA device operates in auto-mask and auto-clear interrupt
@@ -173,8 +198,8 @@ modes. That is, once MSI-X is delivered to the host, its Cause bit is · 1 unmodified line
173198 automatically cleared and the interrupt is masked. The interrupt is
174199 unmasked by the driver after NAPI processing is complete.
175200
176−Interrupt Moderation:
177−=====================
201+Interrupt Moderation
202+====================
178203 ENA driver and device can operate in conventional or adaptive interrupt
179204 moderation mode.
180205
@@ -202,45 +227,46 @@ delay value to each level. · 21 unmodified lines
202227 The user can enable/disable adaptive moderation, modify the interrupt
203228 delay table and restore its default values through sysfs.
204229
205−RX copybreak:
206−=============
230+RX copybreak
231+============
207232 The rx_copybreak is initialized by default to ENA_DEFAULT_RX_COPYBREAK
208233 and can be configured by the ETHTOOL_STUNABLE command of the
209234 SIOCETHTOOL ioctl.
210235
211−SKB:
212−====
236+SKB
237+===
213238 The driver-allocated SKB for frames received from Rx handling using
214239 NAPI context. The allocation method depends on the size of the packet.
215240 If the frame length is larger than rx_copybreak, napi_get_frags()
216241 is used, otherwise netdev_alloc_skb_ip_align() is used, the buffer
217242 content is copied (by CPU) to the SKB, and the buffer is recycled.
218243
219−Statistics:
220−===========
244+Statistics
245+==========
221246 The user can obtain ENA device and driver statistics using ethtool.
222247 The driver can collect regular or extended statistics (including
223248 per-queue stats) from the device.
224249
225250 In addition the driver logs the stats to syslog upon device reset.
226251
227−MTU:
228−====
252+MTU
253+===
229254 The driver supports an arbitrarily large MTU with a maximum that is
230255 negotiated with the device. The driver configures MTU using the
231256 SetFeature command (ENA_ADMIN_MTU property). The user can change MTU
232257 via ip(8) and similar legacy tools.
233258
234−Stateless Offloads:
235−===================
259+Stateless Offloads
260+==================
236261 The ENA driver supports:
262+
237263 - TSO over IPv4/IPv6
238264 - TSO with ECN
239265 - IPv4 header checksum offload
240266 - TCP/UDP over IPv4/IPv6 checksum offloads
241267
242−RSS:
243−====
268+RSS
269+===
244270 - The ENA device supports RSS that allows flexible Rx traffic
245271 steering.
246272 - Toeplitz and CRC32 hash functions are supported.
@@ -255,11 +281,13 @@ RSS: · 8 unmodified lines
255281 - The user can provide a hash key, hash function, and configure the
256282 indirection table through ethtool(8).
257283
258−DATA PATH:
259−==========
260−Tx:
261−---
284+DATA PATH
285+=========
286+Tx
287+--
288+
262289 end_start_xmit() is called by the stack. This function does the following:
290+
263291 - Maps data buffers (skb->data and frags).
264292 - Populates ena_buf for the push buffer (if the driver and device are
265293 in push mode.)
@@ -271,8 +299,10 @@ end_start_xmit() is called by the stack. This function does the following: · 5 unmodified lines
271299 - Calls ena_com_prepare_tx(), an ENA communication layer that converts
272300 the ena_bufs to ENA descriptors (and adds meta ENA descriptors as
273301 needed.)
302+
274303 * This function also copies the ENA descriptors and the push buffer
275304 to the Device memory space (if in push mode.)
305+
276306 - Writes doorbell to the ENA device.
277307 - When the ENA device finishes sending the packet, a completion
278308 interrupt is raised.
@@ -280,14 +310,16 @@ end_start_xmit() is called by the stack. This function does the following: · 1 unmodified line
280310 - The ena_clean_tx_irq() function is called. This function handles the
281311 completion descriptors generated by the ENA, with a single
282312 completion descriptor per completed packet.
313+
283314 * req_id is retrieved from the completion descriptor. The tx_info of
284315 the packet is retrieved via the req_id. The data buffers are
285316 unmapped and req_id is returned to the empty req_id ring.
286317 * The function stops when the completion descriptors are completed or
287318 the budget is reached.
288319
289−Rx:
290−---
320+Rx
321+--
322+
291323 - When a packet is received from the ENA device.
292324 - The interrupt handler schedules NAPI.
293325 - The ena_clean_rx_irq() function is called. This function calls
@@ -296,13 +328,17 @@ Rx: · 2 unmodified lines
296328 no new packet is found.
297329 - Then it calls the ena_clean_rx_irq() function.
298330 - ena_eth_rx_skb() checks packet length:
331+
299332 * If the packet is small (len < rx_copybreak), the driver allocates
300333 a SKB for the new packet, and copies the packet payload into the
301334 SKB data buffer.
335+
302336 - In this way the original data buffer is not passed to the stack
303337 and is reused for future Rx packets.
338+
304339 * Otherwise the function unmaps the Rx buffer, then allocates the
305340 new SKB structure and hooks the Rx buffer to the SKB frags.
341+
306342 - The new SKB is updated with the necessary information (protocol,
307343 checksum hw verify result, etc.), and then passed to the network
308344 stack, using the NAPI interface function napi_gro_receive().
Documentation/networking/device_drivers/aquantia/atlantic.rstrenamed from Documentation/networking/device_drivers/aquantia/atlantic.txt+223−146
@@ -1,83 +1,96 @@
1−Marvell(Aquantia) AQtion Driver for the aQuantia Multi-Gigabit PCI Express
2−Family of Ethernet Adapters
3−=============================================================================
1+.. SPDX-License-Identifier: GPL-2.0
2+.. include:: <isonum.txt>
43
5−Contents
6−========
4+===============================
5+Marvell(Aquantia) AQtion Driver
6+===============================
77
8−- Identifying Your Adapter
9−- Configuration
10−- Supported ethtool options
11−- Command Line Parameters
12−- Config file parameters
13−- Support
14−- License
8+For the aQuantia Multi-Gigabit PCI Express Family of Ethernet Adapters
9+
10+.. Contents
11+
12+ - Identifying Your Adapter
13+ - Configuration
14+ - Supported ethtool options
15+ - Command Line Parameters
16+ - Config file parameters
17+ - Support
18+ - License
1519
1620 Identifying Your Adapter
1721 ========================
1822
19−The driver in this release is compatible with AQC-100, AQC-107, AQC-108 based ethernet adapters.
23+The driver in this release is compatible with AQC-100, AQC-107, AQC-108
24+based ethernet adapters.
2025
2126
2227 SFP+ Devices (for AQC-100 based adapters)
23−----------------------------------
28+-----------------------------------------
2429
25−This release tested with passive Direct Attach Cables (DAC) and SFP+/LC Optical Transceiver.
30+This release tested with passive Direct Attach Cables (DAC) and SFP+/LC
31+Optical Transceiver.
2632
2733 Configuration
28−=========================
29− Viewing Link Messages
30− ---------------------
34+=============
35+
36+Viewing Link Messages
37+---------------------
3138 Link messages will not be displayed to the console if the distribution is
3239 restricting system messages. In order to see network driver link messages on
33− your console, set dmesg to eight by entering the following:
40+ your console, set dmesg to eight by entering the following::
3441
3542 dmesg -n 8
3643
37− NOTE: This setting is not saved across reboots.
44+ .. note::
3845
39− Jumbo Frames
40− ------------
46+ This setting is not saved across reboots.
47+
48+Jumbo Frames
49+------------
4150 The driver supports Jumbo Frames for all adapters. Jumbo Frames support is
4251 enabled by changing the MTU to a value larger than the default of 1500.
4352 The maximum value for the MTU is 16000. Use the `ip` command to
44− increase the MTU size. For example:
53+ increase the MTU size. For example::
4554
46− ip link set mtu 16000 dev enp1s0
55+ ip link set mtu 16000 dev enp1s0
4756
48− ethtool
49− -------
57+ethtool
58+-------
5059 The driver utilizes the ethtool interface for driver configuration and
5160 diagnostics, as well as displaying statistical information. The latest
5261 ethtool version is required for this functionality.
5362
54− NAPI
55− ----
63+NAPI
64+----
5665 NAPI (Rx polling mode) is supported in the atlantic driver.
5766
5867 Supported ethtool options
59−============================
60− Viewing adapter settings
61− ---------------------
62− ethtool <ethX>
68+=========================
69+
70+Viewing adapter settings
71+------------------------
72+
73+ ::
6374
64− Output example:
75+ ethtool <ethX>
76+
77+ Output example::
6578
6679 Settings for enp1s0:
6780 Supported ports: [ TP ]
6881 Supported link modes: 100baseT/Full
69− 1000baseT/Full
70− 10000baseT/Full
71− 2500baseT/Full
72− 5000baseT/Full
82+ 1000baseT/Full
83+ 10000baseT/Full
84+ 2500baseT/Full
85+ 5000baseT/Full
7386 Supported pause frame use: Symmetric
7487 Supports auto-negotiation: Yes
7588 Supported FEC modes: Not reported
7689 Advertised link modes: 100baseT/Full
77− 1000baseT/Full
78− 10000baseT/Full
79− 2500baseT/Full
80− 5000baseT/Full
90+ 1000baseT/Full
91+ 10000baseT/Full
92+ 2500baseT/Full
93+ 5000baseT/Full
8194 Advertised pause frame use: Symmetric
8295 Advertised auto-negotiation: Yes
8396 Advertised FEC modes: Not reported
@@ -92,16 +105,22 @@ Supported ethtool options · 8 unmodified lines
92105 Wake-on: d
93106 Link detected: yes
94107
95− ---
96− Note: AQrate speeds (2.5/5 Gb/s) will be displayed only with linux kernels > 4.10.
97− But you can still use these speeds:
108+
109+ .. note::
110+
111+ AQrate speeds (2.5/5 Gb/s) will be displayed only with linux kernels > 4.10.
112+ But you can still use these speeds::
113+
98114 ethtool -s eth0 autoneg off speed 2500
99115
100− Viewing adapter information
101− ---------------------
102− ethtool -i <ethX>
116+Viewing adapter information
117+---------------------------
103118
104− Output example:
119+ ::
120+
121+ ethtool -i <ethX>
122+
123+ Output example::
105124
106125 driver: atlantic
107126 version: 5.2.0-050200rc5-generic-kern
@@ -115,12 +134,16 @@ Supported ethtool options · 7 unmodified lines
115134 supports-priv-flags: no
116135
117136
118− Viewing Ethernet adapter statistics:
119− ---------------------
120− ethtool -S <ethX>
137+Viewing Ethernet adapter statistics
138+-----------------------------------
139+
140+ ::
121141
122− Output example:
123− NIC statistics:
142+ ethtool -S <ethX>
143+
144+ Output example::
145+
146+ NIC statistics:
124147 InPackets: 13238607
125148 InUCast: 13293852
126149 InMCast: 52
@@ -164,85 +187,95 @@ Supported ethtool options · 37 unmodified lines
164187 Queue[3] InLroPackets: 0
165188 Queue[3] InErrors: 0
166189
167− Interrupt coalescing support
168− ---------------------------------
169− ITR mode, TX/RX coalescing timings could be viewed with:
190+Interrupt coalescing support
191+----------------------------
170192
171− ethtool -c <ethX>
193+ ITR mode, TX/RX coalescing timings could be viewed with::
172194
173− and changed with:
195+ ethtool -c <ethX>
174196
175− ethtool -C <ethX> tx-usecs <usecs> rx-usecs <usecs>
197+ and changed with::
176198
177− To disable coalescing:
199+ ethtool -C <ethX> tx-usecs <usecs> rx-usecs <usecs>
178200
179− ethtool -C <ethX> tx-usecs 0 rx-usecs 0 tx-max-frames 1 tx-max-frames 1
201+ To disable coalescing::
180202
181− Wake on LAN support
182− ---------------------------------
203+ ethtool -C <ethX> tx-usecs 0 rx-usecs 0 tx-max-frames 1 tx-max-frames 1
183204
184− WOL support by magic packet:
205+Wake on LAN support
206+-------------------
185207
186− ethtool -s <ethX> wol g
208+ WOL support by magic packet::
187209
188− To disable WOL:
210+ ethtool -s <ethX> wol g
189211
190− ethtool -s <ethX> wol d
212+ To disable WOL::
191213
192− Set and check the driver message level
193− ---------------------------------
214+ ethtool -s <ethX> wol d
215+
216+Set and check the driver message level
217+--------------------------------------
194218
195219 Set message level
196220
197− ethtool -s <ethX> msglvl <level>
221+ ::
222+
223+ ethtool -s <ethX> msglvl <level>
198224
199225 Level values:
200226
201− 0x0001 - general driver status.
202− 0x0002 - hardware probing.
203− 0x0004 - link state.
204− 0x0008 - periodic status check.
205− 0x0010 - interface being brought down.
206− 0x0020 - interface being brought up.
207− 0x0040 - receive error.
208− 0x0080 - transmit error.
209− 0x0200 - interrupt handling.
210− 0x0400 - transmit completion.
211− 0x0800 - receive completion.
212− 0x1000 - packet contents.
213− 0x2000 - hardware status.
214− 0x4000 - Wake-on-LAN status.
227+ ====== =============================
228+ 0x0001 general driver status.
229+ 0x0002 hardware probing.
230+ 0x0004 link state.
231+ 0x0008 periodic status check.
232+ 0x0010 interface being brought down.
233+ 0x0020 interface being brought up.
234+ 0x0040 receive error.
235+ 0x0080 transmit error.
236+ 0x0200 interrupt handling.
237+ 0x0400 transmit completion.
238+ 0x0800 receive completion.
239+ 0x1000 packet contents.
240+ 0x2000 hardware status.
241+ 0x4000 Wake-on-LAN status.
242+ ====== =============================
215243
216244 By default, the level of debugging messages is set 0x0001(general driver status).
217245
218246 Check message level
219247
220− ethtool <ethX> | grep "Current message level"
248+ ::
221249
222− If you want to disable the output of messages
250+ ethtool <ethX> | grep "Current message level"
223251
224− ethtool -s <ethX> msglvl 0
252+ If you want to disable the output of messages::
253+
254+ ethtool -s <ethX> msglvl 0
255+
256+RX flow rules (ntuple filters)
257+------------------------------
225258
226− RX flow rules (ntuple filters)
227− ---------------------------------
228259 There are separate rules supported, that applies in that order:
260+
229261 1. 16 VLAN ID rules
230262 2. 16 L2 EtherType rules
231263 3. 8 L3/L4 5-Tuple rules
232264
233265
234266 The driver utilizes the ethtool interface for configuring ntuple filters,
235− via "ethtool -N <device> <filter>".
267+ via ``ethtool -N <device> <filter>``.
236268
237− To enable or disable the RX flow rules:
269+ To enable or disable the RX flow rules::
238270
239− ethtool -K ethX ntuple <on|off>
271+ ethtool -K ethX ntuple <on|off>
240272
241273 When disabling ntuple filters, all the user programed filters are
242274 flushed from the driver cache and hardware. All needed filters must
243275 be re-added when ntuple is re-enabled.
244276
245277 Because of the fixed order of the rules, the location of filters is also fixed:
278+
246279 - Locations 0 - 15 for VLAN ID filters
247280 - Locations 16 - 31 for L2 EtherType filters
248281 - Locations 32 - 39 for L3/L4 5-tuple filters (locations 32, 36 for IPv6)
@@ -253,32 +286,34 @@ Supported ethtool options · 4 unmodified lines
253286 addresses can be supported. Source and destination ports are only compared for
254287 TCP/UDP/SCTP packets.
255288
256− To add a filter that directs packet to queue 5, use <-N|-U|--config-nfc|--config-ntuple> switch:
289+ To add a filter that directs packet to queue 5, use
290+ ``<-N|-U|--config-nfc|--config-ntuple>`` switch::
257291
258− ethtool -N <ethX> flow-type udp4 src-ip 10.0.0.1 dst-ip 10.0.0.2 src-port 2000 dst-port 2001 action 5 <loc 32>
292+ ethtool -N <ethX> flow-type udp4 src-ip 10.0.0.1 dst-ip 10.0.0.2 src-port 2000 dst-port 2001 action 5 <loc 32>
259293
260294 - action is the queue number.
261295 - loc is the rule number.
262296
263− For "flow-type ip4|udp4|tcp4|sctp4|ip6|udp6|tcp6|sctp6" you must set the loc
297+ For ``flow-type ip4|udp4|tcp4|sctp4|ip6|udp6|tcp6|sctp6`` you must set the loc
264298 number within 32 - 39.
265− For "flow-type ip4|udp4|tcp4|sctp4|ip6|udp6|tcp6|sctp6" you can set 8 rules
299+ For ``flow-type ip4|udp4|tcp4|sctp4|ip6|udp6|tcp6|sctp6`` you can set 8 rules
266300 for traffic IPv4 or you can set 2 rules for traffic IPv6. Loc number traffic
267301 IPv6 is 32 and 36.
268302 At the moment you can not use IPv4 and IPv6 filters at the same time.
269303
270− Example filter for IPv6 filter traffic:
304+ Example filter for IPv6 filter traffic::
271305
272− sudo ethtool -N <ethX> flow-type tcp6 src-ip 2001:db8:0:f101::1 dst-ip 2001:db8:0:f101::2 action 1 loc 32
273− sudo ethtool -N <ethX> flow-type ip6 src-ip 2001:db8:0:f101::2 dst-ip 2001:db8:0:f101::5 action -1 loc 36
306+ sudo ethtool -N <ethX> flow-type tcp6 src-ip 2001:db8:0:f101::1 dst-ip 2001:db8:0:f101::2 action 1 loc 32
307+ sudo ethtool -N <ethX> flow-type ip6 src-ip 2001:db8:0:f101::2 dst-ip 2001:db8:0:f101::5 action -1 loc 36
274308
275− Example filter for IPv4 filter traffic:
309+ Example filter for IPv4 filter traffic::
276310
277− sudo ethtool -N <ethX> flow-type udp4 src-ip 10.0.0.4 dst-ip 10.0.0.7 src-port 2000 dst-port 2001 loc 32
278− sudo ethtool -N <ethX> flow-type tcp4 src-ip 10.0.0.3 dst-ip 10.0.0.9 src-port 2000 dst-port 2001 loc 33
279− sudo ethtool -N <ethX> flow-type ip4 src-ip 10.0.0.6 dst-ip 10.0.0.4 loc 34
311+ sudo ethtool -N <ethX> flow-type udp4 src-ip 10.0.0.4 dst-ip 10.0.0.7 src-port 2000 dst-port 2001 loc 32
312+ sudo ethtool -N <ethX> flow-type tcp4 src-ip 10.0.0.3 dst-ip 10.0.0.9 src-port 2000 dst-port 2001 loc 33
313+ sudo ethtool -N <ethX> flow-type ip4 src-ip 10.0.0.6 dst-ip 10.0.0.4 loc 34
280314
281315 If you set action -1, then all traffic corresponding to the filter will be discarded.
316+
282317 The maximum value action is 31.
283318
284319
@@ -287,8 +322,9 @@ Supported ethtool options · 2 unmodified lines
287322 from L2 Ethertype filter with UserPriority since both User Priority and VLAN ID
288323 are passed in the same 'vlan' parameter.
289324
290− To add a filter that directs packets from VLAN 2001 to queue 5:
291− ethtool -N <ethX> flow-type ip4 vlan 2001 m 0xF000 action 1 loc 0
325+ To add a filter that directs packets from VLAN 2001 to queue 5::
326+
327+ ethtool -N <ethX> flow-type ip4 vlan 2001 m 0xF000 action 1 loc 0
292328
293329
294330 L2 EtherType filters allows filter packet by EtherType field or both EtherType
@@ -297,17 +333,17 @@ Supported ethtool options · 2 unmodified lines
297333 distinguish VLAN filter from L2 Ethertype filter with UserPriority since both
298334 User Priority and VLAN ID are passed in the same 'vlan' parameter.
299335
300− To add a filter that directs IP4 packess of priority 3 to queue 3:
301− ethtool -N <ethX> flow-type ether proto 0x800 vlan 0x600 m 0x1FFF action 3 loc 16
336+ To add a filter that directs IP4 packess of priority 3 to queue 3::
302337
338+ ethtool -N <ethX> flow-type ether proto 0x800 vlan 0x600 m 0x1FFF action 3 loc 16
303339
304− To see the list of filters currently present:
340+ To see the list of filters currently present::
305341
306− ethtool <-u|-n|--show-nfc|--show-ntuple> <ethX>
342+ ethtool <-u|-n|--show-nfc|--show-ntuple> <ethX>
307343
308− Rules may be deleted from the table itself. This is done using:
344+ Rules may be deleted from the table itself. This is done using::
309345
310− sudo ethtool <-N|-U|--config-nfc|--config-ntuple> <ethX> delete <loc>
346+ sudo ethtool <-N|-U|--config-nfc|--config-ntuple> <ethX> delete <loc>
311347
312348 - loc is the rule number to be deleted.
313349
@@ -316,34 +352,37 @@ Supported ethtool options · 2 unmodified lines
316352 case, any flow that matches the filter criteria will be directed to the
317353 appropriate queue. RX filters is supported on all kernels 2.6.30 and later.
318354
319− RSS for UDP
320− ---------------------------------
355+RSS for UDP
356+-----------
357+
321358 Currently, NIC does not support RSS for fragmented IP packets, which leads to
322359 incorrect working of RSS for fragmented UDP traffic. To disable RSS for UDP the
323360 RX Flow L3/L4 rule may be used.
324361
325− Example:
326− ethtool -N eth0 flow-type udp4 action 0 loc 32
362+ Example::
363+
364+ ethtool -N eth0 flow-type udp4 action 0 loc 32
365+
366+UDP GSO hardware offload
367+------------------------
327368
328− UDP GSO hardware offload
329− ---------------------------------
330369 UDP GSO allows to boost UDP tx rates by offloading UDP headers allocation
331370 into hardware. A special userspace socket option is required for this,
332− could be validated with /kernel/tools/testing/selftests/net/
371+ could be validated with /kernel/tools/testing/selftests/net/::
333372
334373 udpgso_bench_tx -u -4 -D 10.0.1.1 -s 6300 -S 100
335374
336375 Will cause sending out of 100 byte sized UDP packets formed from single
337376 6300 bytes user buffer.
338377
339− UDP GSO is configured by:
378+ UDP GSO is configured by::
340379
341380 ethtool -K eth0 tx-udp-segmentation on
342381
343− Private flags (testing)
344− ---------------------------------
382+Private flags (testing)
383+-----------------------
345384
346− Atlantic driver supports private flags for hardware custom features:
385+ Atlantic driver supports private flags for hardware custom features::
347386
348387 $ ethtool --show-priv-flags ethX
349388
@@ -354,7 +393,7 @@ Supported ethtool options · 4 unmodified lines
354393 PHYInternalLoopback: off
355394 PHYExternalLoopback: off
356395
357− Example:
396+ Example::
358397
359398 $ ethtool --set-priv-flags ethX DMASystemLoopback on
360399
@@ -370,93 +409,130 @@ Command Line Parameters · 9 unmodified lines
370409 The following command line parameters are available on atlantic driver:
371410
372411 aq_itr -Interrupt throttling mode
373−----------------------------------------
412+---------------------------------
374413 Accepted values: 0, 1, 0xFFFF
414+
375415 Default value: 0xFFFF
376−0 - Disable interrupt throttling.
377−1 - Enable interrupt throttling and use specified tx and rx rates.
378−0xFFFF - Auto throttling mode. Driver will choose the best RX and TX
379− interrupt throtting settings based on link speed.
416+
417+====== ==============================================================
418+0 Disable interrupt throttling.
419+1 Enable interrupt throttling and use specified tx and rx rates.
420+0xFFFF Auto throttling mode. Driver will choose the best RX and TX
421+ interrupt throtting settings based on link speed.
422+====== ==============================================================
380423
381424 aq_itr_tx - TX interrupt throttle rate
382−----------------------------------------
425+--------------------------------------
426+
383427 Accepted values: 0 - 0x1FF
428+
384429 Default value: 0
430+
385431 TX side throttling in microseconds. Adapter will setup maximum interrupt delay
386432 to this value. Minimum interrupt delay will be a half of this value
387433
388434 aq_itr_rx - RX interrupt throttle rate
389−----------------------------------------
435+--------------------------------------
436+
390437 Accepted values: 0 - 0x1FF
438+
391439 Default value: 0
440+
392441 RX side throttling in microseconds. Adapter will setup maximum interrupt delay
393442 to this value. Minimum interrupt delay will be a half of this value
394443
395−Note: ITR settings could be changed in runtime by ethtool -c means (see below)
444+.. note::
445+
446+ ITR settings could be changed in runtime by ethtool -c means (see below)
396447
397448 Config file parameters
398−=======================
449+======================
450+
399451 For some fine tuning and performance optimizations,
400452 some parameters can be changed in the {source_dir}/aq_cfg.h file.
401453
402454 AQ_CFG_RX_PAGEORDER
403−----------------------------------------
455+-------------------
456+
404457 Default value: 0
458+
405459 RX page order override. Thats a power of 2 number of RX pages allocated for
406−each descriptor. Received descriptor size is still limited by AQ_CFG_RX_FRAME_MAX.
460+each descriptor. Received descriptor size is still limited by
461+AQ_CFG_RX_FRAME_MAX.
462+
407463 Increasing pageorder makes page reuse better (actual on iommu enabled systems).
408464
409465 AQ_CFG_RX_REFILL_THRES
410−----------------------------------------
466+----------------------
467+
411468 Default value: 32
469+
412470 RX refill threshold. RX path will not refill freed descriptors until the
413471 specified number of free descriptors is observed. Larger values may help
414472 better page reuse but may lead to packet drops as well.
415473
416474 AQ_CFG_VECS_DEF
417−------------------------------------------------------------
475+---------------
476+
418477 Number of queues
478+
419479 Valid Range: 0 - 8 (up to AQ_CFG_VECS_MAX)
480+
420481 Default value: 8
482+
421483 Notice this value will be capped by the number of cores available on the system.
422484
423485 AQ_CFG_IS_RSS_DEF
424−------------------------------------------------------------
486+-----------------
487+
425488 Enable/disable Receive Side Scaling
426489
427490 This feature allows the adapter to distribute receive processing
428491 across multiple CPU-cores and to prevent from overloading a single CPU core.
429492
430493 Valid values
431−0 - disabled
432−1 - enabled
494+
495+== ========
496+0 disabled
497+1 enabled
498+== ========
433499
434500 Default value: 1
435501
436502 AQ_CFG_NUM_RSS_QUEUES_DEF
437−------------------------------------------------------------
503+-------------------------
504+
438505 Number of queues for Receive Side Scaling
506+
439507 Valid Range: 0 - 8 (up to AQ_CFG_VECS_DEF)
440508
441509 Default value: AQ_CFG_VECS_DEF
442510
443511 AQ_CFG_IS_LRO_DEF
444−------------------------------------------------------------
512+-----------------
513+
445514 Enable/disable Large Receive Offload
446515
447516 This offload enables the adapter to coalesce multiple TCP segments and indicate
448517 them as a single coalesced unit to the OS networking subsystem.
449−The system consumes less energy but it also introduces more latency in packets processing.
518+
519+The system consumes less energy but it also introduces more latency in packets
520+processing.
450521
451522 Valid values
452−0 - disabled
453−1 - enabled
523+
524+== ========
525+0 disabled
526+1 enabled
527+== ========
454528
455529 Default value: 1
456530
457531 AQ_CFG_TX_CLEAN_BUDGET
458−----------------------------------------
532+----------------------
533+
459534 Maximum descriptors to cleanup on TX at once.
535+
460536 Default value: 256
461537
462538 After the aq_cfg.h file changed the driver must be rebuilt to take effect.
@@ -472,7 +548,8 @@ License · 9 unmodified lines
472548 =======
473549
474550 aQuantia Corporation Network Driver
475−Copyright(c) 2014 - 2019 aQuantia Corporation.
551+
552+Copyright |copy| 2014 - 2019 aQuantia Corporation.
476553
477554 This program is free software; you can redistribute it and/or modify it
478555 under the terms and conditions of the GNU General Public License,
Documentation/networking/device_drivers/chelsio/cxgb.rstrenamed from Documentation/networking/device_drivers/chelsio/cxgb.txt+112−71
@@ -1,13 +1,18 @@
1− Chelsio N210 10Gb Ethernet Network Controller
1+.. SPDX-License-Identifier: GPL-2.0
2+.. include:: <isonum.txt>
23
3− Driver Release Notes for Linux
4+=============================================
5+Chelsio N210 10Gb Ethernet Network Controller
6+=============================================
47
5− Version 2.1.1
8+Driver Release Notes for Linux
69
7− June 20, 2005
10+Version 2.1.1
11+
12+June 20, 2005
13+
14+.. Contents
815
9−CONTENTS
10−========
1116 INTRODUCTION
1217 FEATURES
1318 PERFORMANCE
@@ -16,7 +21,7 @@ CONTENTS · 2 unmodified lines
1621 SUPPORT
1722
1823
19−INTRODUCTION
24+Introduction
2025 ============
2126
2227 This document describes the Linux driver for Chelsio 10Gb Ethernet Network
@@ -24,11 +29,11 @@ INTRODUCTION · 1 unmodified line
2429 compatible with the Chelsio N110 model 10Gb NICs.
2530
2631
27−FEATURES
32+Features
2833 ========
2934
30− Adaptive Interrupts (adaptive-rx)
31− ---------------------------------
35+Adaptive Interrupts (adaptive-rx)
36+---------------------------------
3237
3338 This feature provides an adaptive algorithm that adjusts the interrupt
3439 coalescing parameters, allowing the driver to dynamically adapt the latency
@@ -39,24 +44,24 @@ FEATURES · 4 unmodified lines
3944 ethtool manpage for additional usage information.
4045
4146 By default, adaptive-rx is disabled.
42− To enable adaptive-rx:
47+ To enable adaptive-rx::
4348
4449 ethtool -C <interface> adaptive-rx on
4550
46− To disable adaptive-rx, use ethtool:
51+ To disable adaptive-rx, use ethtool::
4752
4853 ethtool -C <interface> adaptive-rx off
4954
5055 After disabling adaptive-rx, the timer latency value will be set to 50us.
51− You may set the timer latency after disabling adaptive-rx:
56+ You may set the timer latency after disabling adaptive-rx::
5257
5358 ethtool -C <interface> rx-usecs <microseconds>
5459
55− An example to set the timer latency value to 100us on eth0:
60+ An example to set the timer latency value to 100us on eth0::
5661
5762 ethtool -C eth0 rx-usecs 100
5863
59− You may also provide a timer latency value while disabling adaptive-rx:
64+ You may also provide a timer latency value while disabling adaptive-rx::
6065
6166 ethtool -C <interface> adaptive-rx off rx-usecs <microseconds>
6267
@@ -64,13 +69,13 @@ FEATURES · 1 unmodified line
6469 will be set to the specified value until changed by the user or until
6570 adaptive-rx is enabled.
6671
67− To view the status of the adaptive-rx and timer latency values:
72+ To view the status of the adaptive-rx and timer latency values::
6873
6974 ethtool -c <interface>
7075
7176
72− TCP Segmentation Offloading (TSO) Support
73− -----------------------------------------
77+TCP Segmentation Offloading (TSO) Support
78+-----------------------------------------
7479
7580 This feature, also known as "large send", enables a system's protocol stack
7681 to offload portions of outbound TCP processing to a network interface card
@@ -80,20 +85,20 @@ FEATURES · 3 unmodified lines
8085 Please see the ethtool manpage for additional usage information.
8186
8287 By default, TSO is enabled.
83− To disable TSO:
88+ To disable TSO::
8489
8590 ethtool -K <interface> tso off
8691
87− To enable TSO:
92+ To enable TSO::
8893
8994 ethtool -K <interface> tso on
9095
91− To view the status of TSO:
96+ To view the status of TSO::
9297
9398 ethtool -k <interface>
9499
95100
96−PERFORMANCE
101+Performance
97102 ===========
98103
99104 The following information is provided as an example of how to change system
@@ -111,59 +116,81 @@ PERFORMANCE · 11 unmodified lines
111116 your system. You may want to write a script that runs at boot-up which
112117 includes the optimal settings for your system.
113118
114− Setting PCI Latency Timer:
115− setpci -d 1425:* 0x0c.l=0x0000F800
119+ Setting PCI Latency Timer::
120+
121+ setpci -d 1425::
122+
123+* 0x0c.l=0x0000F800
124+
125+ Disabling TCP timestamp::
116126
117− Disabling TCP timestamp:
118127 sysctl -w net.ipv4.tcp_timestamps=0
119128
120− Disabling SACK:
129+ Disabling SACK::
130+
121131 sysctl -w net.ipv4.tcp_sack=0
122132
123− Setting large number of incoming connection requests:
133+ Setting large number of incoming connection requests::
134+
124135 sysctl -w net.ipv4.tcp_max_syn_backlog=3000
125136
126− Setting maximum receive socket buffer size:
137+ Setting maximum receive socket buffer size::
138+
127139 sysctl -w net.core.rmem_max=1024000
128140
129− Setting maximum send socket buffer size:
141+ Setting maximum send socket buffer size::
142+
130143 sysctl -w net.core.wmem_max=1024000
131144
132− Set smp_affinity (on a multiprocessor system) to a single CPU:
145+ Set smp_affinity (on a multiprocessor system) to a single CPU::
146+
133147 echo 1 > /proc/irq/<interrupt_number>/smp_affinity
134148
135− Setting default receive socket buffer size:
149+ Setting default receive socket buffer size::
150+
136151 sysctl -w net.core.rmem_default=524287
137152
138− Setting default send socket buffer size:
153+ Setting default send socket buffer size::
154+
139155 sysctl -w net.core.wmem_default=524287
140156
141− Setting maximum option memory buffers:
157+ Setting maximum option memory buffers::
158+
142159 sysctl -w net.core.optmem_max=524287
143160
144− Setting maximum backlog (# of unprocessed packets before kernel drops):
161+ Setting maximum backlog (# of unprocessed packets before kernel drops)::
162+
145163 sysctl -w net.core.netdev_max_backlog=300000
146164
147− Setting TCP read buffers (min/default/max):
165+ Setting TCP read buffers (min/default/max)::
166+
148167 sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
149168
150− Setting TCP write buffers (min/pressure/max):
169+ Setting TCP write buffers (min/pressure/max)::
170+
151171 sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"
152172
153− Setting TCP buffer space (min/pressure/max):
173+ Setting TCP buffer space (min/pressure/max)::
174+
154175 sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000"
155176
156177 TCP window size for single connections:
178+
157179 The receive buffer (RX_WINDOW) size must be at least as large as the
158180 Bandwidth-Delay Product of the communication link between the sender and
159181 receiver. Due to the variations of RTT, you may want to increase the buffer
160182 size up to 2 times the Bandwidth-Delay Product. Reference page 289 of
161183 "TCP/IP Illustrated, Volume 1, The Protocols" by W. Richard Stevens.
162− At 10Gb speeds, use the following formula:
184+
185+ At 10Gb speeds, use the following formula::
186+
163187 RX_WINDOW >= 1.25MBytes * RTT(in milliseconds)
164188 Example for RTT with 100us: RX_WINDOW = (1,250,000 * 0.1) = 125,000
189+
165190 RX_WINDOW sizes of 256KB - 512KB should be sufficient.
166− Setting the min, max, and default receive buffer (RX_WINDOW) size:
191+
192+ Setting the min, max, and default receive buffer (RX_WINDOW) size::
193+
167194 sysctl -w net.ipv4.tcp_rmem="<min> <default> <max>"
168195
169196 TCP window size for multiple connections:
@@ -174,30 +201,35 @@ PERFORMANCE · 4 unmodified lines
174201 not supported on the machine. Experimentation may be necessary to attain
175202 the correct value. This method is provided as a starting point for the
176203 correct receive buffer size.
204+
177205 Setting the min, max, and default receive buffer (RX_WINDOW) size is
178206 performed in the same manner as single connection.
179207
180208
181−DRIVER MESSAGES
209+Driver Messages
182210 ===============
183211
184212 The following messages are the most common messages logged by syslog. These
185213 may be found in /var/log/messages.
186214
187− Driver up:
215+ Driver up::
216+
188217 Chelsio Network Driver - version 2.1.1
189218
190− NIC detected:
219+ NIC detected::
220+
191221 eth#: Chelsio N210 1x10GBaseX NIC (rev #), PCIX 133MHz/64-bit
192222
193− Link up:
223+ Link up::
224+
194225 eth#: link is up at 10 Gbps, full duplex
195226
196− Link down:
227+ Link down::
228+
197229 eth#: link is down
198230
199231
200−KNOWN ISSUES
232+Known Issues
201233 ============
202234
203235 These issues have been identified during testing. The following information
@@ -214,27 +246,33 @@ KNOWN ISSUES · 10 unmodified lines
214246
215247 To eliminate the TCP retransmits, set smp_affinity on the particular
216248 interrupt to a single CPU. You can locate the interrupt (IRQ) used on
217− the N110/N210 by using ifconfig:
218− ifconfig <dev_name> | grep Interrupt
219− Set the smp_affinity to a single CPU:
220− echo 1 > /proc/irq/<interrupt_number>/smp_affinity
249+ the N110/N210 by using ifconfig::
250+
251+ ifconfig <dev_name> | grep Interrupt
252+
253+ Set the smp_affinity to a single CPU::
254+
255+ echo 1 > /proc/irq/<interrupt_number>/smp_affinity
221256
222257 It is highly suggested that you do not run the irqbalance daemon on your
223258 system, as this will change any smp_affinity setting you have applied.
224259 The irqbalance daemon runs on a 10 second interval and binds interrupts
225− to the least loaded CPU determined by the daemon. To disable this daemon:
226− chkconfig --level 2345 irqbalance off
260+ to the least loaded CPU determined by the daemon. To disable this daemon::
261+
262+ chkconfig --level 2345 irqbalance off
227263
228264 By default, some Linux distributions enable the kernel feature,
229265 irqbalance, which performs the same function as the daemon. To disable
230− this feature, add the following line to your bootloader:
231− noirqbalance
266+ this feature, add the following line to your bootloader::
267+
268+ noirqbalance
269+
270+ Example using the Grub bootloader::
232271
233− Example using the Grub bootloader:
234− title Red Hat Enterprise Linux AS (2.4.21-27.ELsmp)
235− root (hd0,0)
236− kernel /vmlinuz-2.4.21-27.ELsmp ro root=/dev/hda3 noirqbalance
237− initrd /initrd-2.4.21-27.ELsmp.img
272+ title Red Hat Enterprise Linux AS (2.4.21-27.ELsmp)
273+ root (hd0,0)
274+ kernel /vmlinuz-2.4.21-27.ELsmp ro root=/dev/hda3 noirqbalance
275+ initrd /initrd-2.4.21-27.ELsmp.img
238276
239277 2. After running insmod, the driver is loaded and the incorrect network
240278 interface is brought up without running ifup.
@@ -277,12 +315,13 @@ KNOWN ISSUES · 36 unmodified lines
277315 AMD's provides three workarounds for this problem, however, Chelsio
278316 recommends the first option for best performance with this bug:
279317
280− For 133Mhz secondary bus operation, limit the transaction length and
281− the number of outstanding transactions, via BIOS configuration
282− programming of the PCI-X card, to the following:
318+ For 133Mhz secondary bus operation, limit the transaction length and
319+ the number of outstanding transactions, via BIOS configuration
320+ programming of the PCI-X card, to the following:
283321
284− Data Length (bytes): 1k
285− Total allowed outstanding transactions: 2
322+ Data Length (bytes): 1k
323+
324+ Total allowed outstanding transactions: 2
286325
287326 Please refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004,
288327 section 56, "133-MHz Mode Split Completion Data Corruption" for more
@@ -293,8 +332,10 @@ KNOWN ISSUES · 4 unmodified lines
293332 have issues with these settings, please revert to the "safe" settings
294333 and duplicate the problem before submitting a bug or asking for support.
295334
296− NOTE: The default setting on most systems is 8 outstanding transactions
297− and 2k bytes data length.
335+ .. note::
336+
337+ The default setting on most systems is 8 outstanding transactions
338+ and 2k bytes data length.
298339
299340 4. On multiprocessor systems, it has been noted that an application which
300341 is handling 10Gb networking can switch between CPUs causing degraded
@@ -320,14 +361,16 @@ KNOWN ISSUES · 19 unmodified lines
320361 particular CPU: runon 0 ifup eth0
321362
322363
323−SUPPORT
364+Support
324365 =======
325366
326367 If you have problems with the software or hardware, please contact our
327368 customer support team via email at support@chelsio.com or check our website
328369 at http://www.chelsio.com
329370
330−===============================================================================
371+-------------------------------------------------------------------------------
372+
373+::
331374
332375 Chelsio Communications
333376 370 San Aleso Ave.
@@ -343,10 +386,8 @@ You should have received a copy of the GNU General Public License along · 9 unmodified lines
343386 with this program; if not, write to the Free Software Foundation, Inc.,
344387 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
345388
346−THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
389+THIS SOFTWARE IS PROVIDED ``AS IS`` AND WITHOUT ANY EXPRESS OR IMPLIED
347390 WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
348391 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
349392
350− Copyright (c) 2003-2005 Chelsio Communications. All rights reserved.
351−
352−===============================================================================
393+Copyright |copy| 2003-2005 Chelsio Communications. All rights reserved.
Documentation/networking/device_drivers/cirrus/cs89x0.rstrenamed from Documentation/networking/device_drivers/cirrus/cs89x0.txt+291−268
@@ -1,79 +1,84 @@
1+.. SPDX-License-Identifier: GPL-2.0
12
2−NOTE
3−----
3+================================================
4+Cirrus Logic LAN CS8900/CS8920 Ethernet Adapters
5+================================================
46
5−This document was contributed by Cirrus Logic for kernel 2.2.5. This version
6−has been updated for 2.3.48 by Andrew Morton.
7+.. note::
8+
9+ This document was contributed by Cirrus Logic for kernel 2.2.5. This version
10+ has been updated for 2.3.48 by Andrew Morton.
11+
12+ Still, this is too outdated! A major cleanup is needed here.
713
814 Cirrus make a copy of this driver available at their website, as
915 described below. In general, you should use the driver version which
1016 comes with your Linux distribution.
1117
1218
13−
14−CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS
1519 Linux Network Interface Driver ver. 2.00 <kernel 2.3.48>
16−===============================================================================
17−
18−
19−TABLE OF CONTENTS
20−
21−1.0 CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS
22− 1.1 Product Overview
23− 1.2 Driver Description
24− 1.2.1 Driver Name
25− 1.2.2 File in the Driver Package
26− 1.3 System Requirements
27− 1.4 Licensing Information
28−
29−2.0 ADAPTER INSTALLATION and CONFIGURATION
30− 2.1 CS8900-based Adapter Configuration
31− 2.2 CS8920-based Adapter Configuration
32−
33−3.0 LOADING THE DRIVER AS A MODULE
34−
35−4.0 COMPILING THE DRIVER
36− 4.1 Compiling the Driver as a Loadable Module
37− 4.2 Compiling the driver to support memory mode
38− 4.3 Compiling the driver to support Rx DMA
39−
40−5.0 TESTING AND TROUBLESHOOTING
41− 5.1 Known Defects and Limitations
42− 5.2 Testing the Adapter
43− 5.2.1 Diagnostic Self-Test
44− 5.2.2 Diagnostic Network Test
45− 5.3 Using the Adapter's LEDs
46− 5.4 Resolving I/O Conflicts
47−
48−6.0 TECHNICAL SUPPORT
49− 6.1 Contacting Cirrus Logic's Technical Support
50− 6.2 Information Required Before Contacting Technical Support
51− 6.3 Obtaining the Latest Driver Version
52− 6.4 Current maintainer
53− 6.5 Kernel boot parameters
54−
55−
56−1.0 CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS
57−===============================================================================
58−
59−
60−1.1 PRODUCT OVERVIEW
61−
62−The CS8900-based ISA Ethernet Adapters from Cirrus Logic follow
63−IEEE 802.3 standards and support half or full-duplex operation in ISA bus
64−computers on 10 Mbps Ethernet networks. The adapters are designed for operation
65−in 16-bit ISA or EISA bus expansion slots and are available in
66−10BaseT-only or 3-media configurations (10BaseT, 10Base2, and AUI for 10Base-5
67−or fiber networks).
68−
69−CS8920-based adapters are similar to the CS8900-based adapter with additional
70−features for Plug and Play (PnP) support and Wakeup Frame recognition. As
71−such, the configuration procedures differ somewhat between the two types of
72−adapters. Refer to the "Adapter Configuration" section for details on
20+
21+
22+.. TABLE OF CONTENTS
23+
24+ 1.0 CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS
25+ 1.1 Product Overview
26+ 1.2 Driver Description
27+ 1.2.1 Driver Name
28+ 1.2.2 File in the Driver Package
29+ 1.3 System Requirements
30+ 1.4 Licensing Information
31+
32+ 2.0 ADAPTER INSTALLATION and CONFIGURATION
33+ 2.1 CS8900-based Adapter Configuration
34+ 2.2 CS8920-based Adapter Configuration
35+
36+ 3.0 LOADING THE DRIVER AS A MODULE
37+
38+ 4.0 COMPILING THE DRIVER
39+ 4.1 Compiling the Driver as a Loadable Module
40+ 4.2 Compiling the driver to support memory mode
41+ 4.3 Compiling the driver to support Rx DMA
42+
43+ 5.0 TESTING AND TROUBLESHOOTING
44+ 5.1 Known Defects and Limitations
45+ 5.2 Testing the Adapter
46+ 5.2.1 Diagnostic Self-Test
47+ 5.2.2 Diagnostic Network Test
48+ 5.3 Using the Adapter's LEDs
49+ 5.4 Resolving I/O Conflicts
50+
51+ 6.0 TECHNICAL SUPPORT
52+ 6.1 Contacting Cirrus Logic's Technical Support
53+ 6.2 Information Required Before Contacting Technical Support
54+ 6.3 Obtaining the Latest Driver Version
55+ 6.4 Current maintainer
56+ 6.5 Kernel boot parameters
57+
58+
59+1. Cirrus Logic LAN CS8900/CS8920 Ethernet Adapters
60+===================================================
61+
62+
63+1.1. Product Overview
64+=====================
65+
66+The CS8900-based ISA Ethernet Adapters from Cirrus Logic follow
67+IEEE 802.3 standards and support half or full-duplex operation in ISA bus
68+computers on 10 Mbps Ethernet networks. The adapters are designed for operation
69+in 16-bit ISA or EISA bus expansion slots and are available in
70+10BaseT-only or 3-media configurations (10BaseT, 10Base2, and AUI for 10Base-5
71+or fiber networks).
72+
73+CS8920-based adapters are similar to the CS8900-based adapter with additional
74+features for Plug and Play (PnP) support and Wakeup Frame recognition. As
75+such, the configuration procedures differ somewhat between the two types of
76+adapters. Refer to the "Adapter Configuration" section for details on
7377 configuring both types of adapters.
7478
7579
76−1.2 DRIVER DESCRIPTION
80+1.2. Driver Description
81+=======================
7782
7883 The CS8900/CS8920 Ethernet Adapter driver for Linux supports the Linux
7984 v2.3.48 or greater kernel. It can be compiled directly into the kernel
@@ -85,22 +90,25 @@ or loaded at run-time as a device driver module. · 5 unmodified lines
8590
8691 The files in the driver at Cirrus' website include:
8792
88− readme.txt - this file
89− build - batch file to compile cs89x0.c.
90− cs89x0.c - driver C code
91− cs89x0.h - driver header file
92− cs89x0.o - pre-compiled module (for v2.2.5 kernel)
93− config/Config.in - sample file to include cs89x0 driver in the kernel.
94− config/Makefile - sample file to include cs89x0 driver in the kernel.
95− config/Space.c - sample file to include cs89x0 driver in the kernel.
93+ =================== ====================================================
94+ readme.txt this file
95+ build batch file to compile cs89x0.c.
96+ cs89x0.c driver C code
97+ cs89x0.h driver header file
98+ cs89x0.o pre-compiled module (for v2.2.5 kernel)
99+ config/Config.in sample file to include cs89x0 driver in the kernel.
100+ config/Makefile sample file to include cs89x0 driver in the kernel.
101+ config/Space.c sample file to include cs89x0 driver in the kernel.
102+ =================== ====================================================
96103
97104
98105
99−1.3 SYSTEM REQUIREMENTS
106+1.3. System Requirements
107+------------------------
100108
101109 The following hardware is required:
102110
103− * Cirrus Logic LAN (CS8900/20-based) Ethernet ISA Adapter
111+ * Cirrus Logic LAN (CS8900/20-based) Ethernet ISA Adapter
104112
105113 * IBM or IBM-compatible PC with:
106114 * An 80386 or higher processor
@@ -118,20 +126,21 @@ The following software is required: · 11 unmodified lines
118126
119127 * LINUX kernel sources for your kernel (if compiling into kernel)
120128
121− * GNU Toolkit (gcc and make) v2.6 or above (if compiling into kernel
122− or a module)
129+ * GNU Toolkit (gcc and make) v2.6 or above (if compiling into kernel
130+ or a module)
123131
124132
125133
126−1.4 LICENSING INFORMATION
134+1.4. Licensing Information
135+--------------------------
127136
128137 This program is free software; you can redistribute it and/or modify it under
129138 the terms of the GNU General Public License as published by the Free Software
130139 Foundation, version 1.
131140
132141 This program is distributed in the hope that it will be useful, but WITHOUT
133−ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
134−FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
142+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
143+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
135144 more details.
136145
137146 For a full copy of the GNU General Public License, write to the Free Software
@@ -139,28 +148,29 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. · 1 unmodified line
139148
140149
141150
142−2.0 ADAPTER INSTALLATION and CONFIGURATION
143−===============================================================================
151+2. Adapter Installation and Configuration
152+=========================================
144153
145−Both the CS8900 and CS8920-based adapters can be configured using parameters
146−stored in an on-board EEPROM. You must use the DOS-based CS8900/20 Setup
147−Utility if you want to change the adapter's configuration in EEPROM.
154+Both the CS8900 and CS8920-based adapters can be configured using parameters
155+stored in an on-board EEPROM. You must use the DOS-based CS8900/20 Setup
156+Utility if you want to change the adapter's configuration in EEPROM.
148157
149−When loading the driver as a module, you can specify many of the adapter's
150−configuration parameters on the command-line to override the EEPROM's settings
151−or for interface configuration when an EEPROM is not used. (CS8920-based
158+When loading the driver as a module, you can specify many of the adapter's
159+configuration parameters on the command-line to override the EEPROM's settings
160+or for interface configuration when an EEPROM is not used. (CS8920-based
152161 adapters must use an EEPROM.) See Section 3.0 LOADING THE DRIVER AS A MODULE.
153162
154−Since the CS8900/20 Setup Utility is a DOS-based application, you must install
155−and configure the adapter in a DOS-based system using the CS8900/20 Setup
156−Utility before installation in the target LINUX system. (Not required if
163+Since the CS8900/20 Setup Utility is a DOS-based application, you must install
164+and configure the adapter in a DOS-based system using the CS8900/20 Setup
165+Utility before installation in the target LINUX system. (Not required if
157166 installing a CS8900-based adapter and the default configuration is acceptable.)
158−
159167
160−2.1 CS8900-BASED ADAPTER CONFIGURATION
161168
162−CS8900-based adapters shipped from Cirrus Logic have been configured
163−with the following "default" settings:
169+2.1. CS8900-based Adapter Configuration
170+---------------------------------------
171+
172+CS8900-based adapters shipped from Cirrus Logic have been configured
173+with the following "default" settings::
164174
165175 Operation Mode: Memory Mode
166176 IRQ: 10
@@ -169,15 +179,16 @@ with the following "default" settings: · 2 unmodified lines
169179 Optimization: DOS Client
170180 Transmission Mode: Half-duplex
171181 BootProm: None
172− Media Type: Autodetect (3-media cards) or
173− 10BASE-T (10BASE-T only adapter)
182+ Media Type: Autodetect (3-media cards) or
183+ 10BASE-T (10BASE-T only adapter)
174184
175−You should only change the default configuration settings if conflicts with
176−another adapter exists. To change the adapter's configuration, run the
177−CS8900/20 Setup Utility.
185+You should only change the default configuration settings if conflicts with
186+another adapter exists. To change the adapter's configuration, run the
187+CS8900/20 Setup Utility.
178188
179189
180−2.2 CS8920-BASED ADAPTER CONFIGURATION
190+2.2. CS8920-based Adapter Configuration
191+---------------------------------------
181192
182193 CS8920-based adapters are shipped from Cirrus Logic configured as Plug
183194 and Play (PnP) enabled. However, since the cs89x0 driver does NOT
@@ -185,82 +196,83 @@ support PnP, you must install the CS8920 adapter in a DOS-based PC and · 1 unmodified line
185196 run the CS8900/20 Setup Utility to disable PnP and configure the
186197 adapter before installation in the target Linux system. Failure to do
187198 this will leave the adapter inactive and the driver will be unable to
188−communicate with the adapter.
199+communicate with the adapter.
189200
201+::
190202
191− ****************************************************************
192− * CS8920-BASED ADAPTERS: *
193− * *
194− * CS8920-BASED ADAPTERS ARE PLUG and PLAY ENABLED BY DEFAULT. *
195− * THE CS89X0 DRIVER DOES NOT SUPPORT PnP. THEREFORE, YOU MUST *
196− * RUN THE CS8900/20 SETUP UTILITY TO DISABLE PnP SUPPORT AND *
197− * TO ACTIVATE THE ADAPTER. *
198− ****************************************************************
203+ ****************************************************************
204+ * CS8920-BASED ADAPTERS: *
205+ * *
206+ * CS8920-BASED ADAPTERS ARE PLUG and PLAY ENABLED BY DEFAULT. *
207+ * THE CS89X0 DRIVER DOES NOT SUPPORT PnP. THEREFORE, YOU MUST *
208+ * RUN THE CS8900/20 SETUP UTILITY TO DISABLE PnP SUPPORT AND *
209+ * TO ACTIVATE THE ADAPTER. *
210+ ****************************************************************
199211
200212
201213
202214
203−3.0 LOADING THE DRIVER AS A MODULE
204−===============================================================================
215+3. Loading the Driver as a Module
216+=================================
205217
206218 If the driver is compiled as a loadable module, you can load the driver module
207−with the 'modprobe' command. Many of the adapter's configuration parameters can
208−be specified as command-line arguments to the load command. This facility
209−provides a means to override the EEPROM's settings or for interface
219+with the 'modprobe' command. Many of the adapter's configuration parameters can
220+be specified as command-line arguments to the load command. This facility
221+provides a means to override the EEPROM's settings or for interface
210222 configuration when an EEPROM is not used.
211223
212−Example:
224+Example::
213225
214226 insmod cs89x0.o io=0x200 irq=0xA media=aui
215227
216228 This example loads the module and configures the adapter to use an IO port base
217229 address of 200h, interrupt 10, and use the AUI media connection. The following
218−configuration options are available on the command line:
219−
220−* io=### - specify IO address (200h-360h)
221−* irq=## - specify interrupt level
222−* use_dma=1 - Enable DMA
223−* dma=# - specify dma channel (Driver is compiled to support
224− Rx DMA only)
225−* dmasize=# (16 or 64) - DMA size 16K or 64K. Default value is set to 16.
226−* media=rj45 - specify media type
230+configuration options are available on the command line::
231+
232+ io=### - specify IO address (200h-360h)
233+ irq=## - specify interrupt level
234+ use_dma=1 - Enable DMA
235+ dma=# - specify dma channel (Driver is compiled to support
236+ Rx DMA only)
237+ dmasize=# (16 or 64) - DMA size 16K or 64K. Default value is set to 16.
238+ media=rj45 - specify media type
227239 or media=bnc
228240 or media=aui
229241 or media=auto
230−* duplex=full - specify forced half/full/autonegotiate duplex
242+ duplex=full - specify forced half/full/autonegotiate duplex
231243 or duplex=half
232244 or duplex=auto
233−* debug=# - debug level (only available if the driver was compiled
234− for debugging)
245+ debug=# - debug level (only available if the driver was compiled
246+ for debugging)
235247
236−NOTES:
248+**Notes:**
237249
238250 a) If an EEPROM is present, any specified command-line parameter
239251 will override the corresponding configuration value stored in
240252 EEPROM.
241253
242−b) The "io" parameter must be specified on the command-line.
254+b) The "io" parameter must be specified on the command-line.
243255
244256 c) The driver's hardware probe routine is designed to avoid
245257 writing to I/O space until it knows that there is a cs89x0
246258 card at the written addresses. This could cause problems
247259 with device probing. To avoid this behaviour, add one
248− to the `io=' module parameter. This doesn't actually change
260+ to the ``io=`` module parameter. This doesn't actually change
249261 the I/O address, but it is a flag to tell the driver
250262 to partially initialise the hardware before trying to
251263 identify the card. This could be dangerous if you are
252264 not sure that there is a cs89x0 card at the provided address.
253265
254266 For example, to scan for an adapter located at IO base 0x300,
255− specify an IO address of 0x301.
267+ specify an IO address of 0x301.
256268
257269 d) The "duplex=auto" parameter is only supported for the CS8920.
258270
259271 e) The minimum command-line configuration required if an EEPROM is
260272 not present is:
261273
262− io
263− irq
274+ io
275+ irq
264276 media type (no autodetect)
265277
266278 f) The following additional parameters are CS89XX defaults (values
@@ -282,13 +294,13 @@ h) Many Linux distributions use the 'modprobe' command to load · 15 unmodified lines
282294 module when it is loaded. All the configuration options which are
283295 described above may be placed within /etc/conf.modules.
284296
285− For example:
297+ For example::
286298
287− > cat /etc/conf.modules
288− ...
289− alias eth0 cs89x0
290− options cs89x0 io=0x0200 dma=5 use_dma=1
291− ...
299+ > cat /etc/conf.modules
300+ ...
301+ alias eth0 cs89x0
302+ options cs89x0 io=0x0200 dma=5 use_dma=1
303+ ...
292304
293305 In this example we are telling the module system that the
294306 ethernet driver for this machine should use the cs89x0 driver. We
@@ -305,9 +317,9 @@ j) The cs89x0 supports DMA for receiving only. DMA mode is · 10 unmodified lines
305317
306318 k) If your Linux kernel was compiled with inbuilt plug-and-play
307319 support you will be able to find information about the cs89x0 card
308− with the command
320+ with the command::
309321
310− cat /proc/isapnp
322+ cat /proc/isapnp
311323
312324 l) If during DMA operation you find erratic behavior or network data
313325 corruption you should use your PC's BIOS to slow the EISA bus clock.
@@ -321,11 +333,11 @@ n) If the cs89x0 driver is compiled directly into the kernel, DMA · 7 unmodified lines
321333 mode may be selected by providing the kernel with a boot option
322334 'cs89x0_dma=N' where 'N' is the desired DMA channel number (5, 6 or 7).
323335
324− Kernel boot options may be provided on the LILO command line:
336+ Kernel boot options may be provided on the LILO command line::
325337
326338 LILO boot: linux cs89x0_dma=5
327339
328− or they may be placed in /etc/lilo.conf:
340+ or they may be placed in /etc/lilo.conf::
329341
330342 image=/boot/bzImage-2.3.48
331343 append="cs89x0_dma=5"
@@ -337,237 +349,246 @@ n) If the cs89x0 driver is compiled directly into the kernel, DMA · 5 unmodified lines
337349 (64k mode is not available).
338350
339351
340−4.0 COMPILING THE DRIVER
341−===============================================================================
352+4. Compiling the Driver
353+=======================
342354
343355 The cs89x0 driver can be compiled directly into the kernel or compiled into
344356 a loadable device driver module.
345357
358+Just use the standard way to configure the driver and compile the Kernel.
346359
347−4.1 COMPILING THE DRIVER AS A LOADABLE MODULE
348−
349−To compile the driver into a loadable module, use the following command
350−(single command line, without quotes):
351−
352−"gcc -D__KERNEL__ -I/usr/src/linux/include -I/usr/src/linux/net/inet -Wall
353−-Wstrict-prototypes -O2 -fomit-frame-pointer -DMODULE -DCONFIG_MODVERSIONS
354−-c cs89x0.c"
355−
356−4.2 COMPILING THE DRIVER TO SUPPORT MEMORY MODE
357−
358−Support for memory mode was not carried over into the 2.3 series kernels.
359360
360−4.3 COMPILING THE DRIVER TO SUPPORT Rx DMA
361+4.1. Compiling the Driver to Support Rx DMA
362+-------------------------------------------
361363
362364 The compile-time optionality for DMA was removed in the 2.3 kernel
363365 series. DMA support is now unconditionally part of the driver. It is
364366 enabled by the 'use_dma=1' module option.
365367
366368
367−5.0 TESTING AND TROUBLESHOOTING
368−===============================================================================
369+5. Testing and Troubleshooting
370+==============================
369371
370−5.1 KNOWN DEFECTS and LIMITATIONS
372+5.1. Known Defects and Limitations
373+----------------------------------
371374
372−Refer to the RELEASE.TXT file distributed as part of this archive for a list of
375+Refer to the RELEASE.TXT file distributed as part of this archive for a list of
373376 known defects, driver limitations, and work arounds.
374377
375378
376−5.2 TESTING THE ADAPTER
379+5.2. Testing the Adapter
380+------------------------
377381
378−Once the adapter has been installed and configured, the diagnostic option of
379−the CS8900/20 Setup Utility can be used to test the functionality of the
382+Once the adapter has been installed and configured, the diagnostic option of
383+the CS8900/20 Setup Utility can be used to test the functionality of the
380384 adapter and its network connection. Use the diagnostics 'Self Test' option to
381385 test the functionality of the adapter with the hardware configuration you have
382386 assigned. You can use the diagnostics 'Network Test' to test the ability of the
383−adapter to communicate across the Ethernet with another PC equipped with a
384−CS8900/20-based adapter card (it must also be running the CS8900/20 Setup
387+adapter to communicate across the Ethernet with another PC equipped with a
388+CS8900/20-based adapter card (it must also be running the CS8900/20 Setup
385389 Utility).
386390
387− NOTE: The Setup Utility's diagnostics are designed to run in a
388− DOS-only operating system environment. DO NOT run the diagnostics
389− from a DOS or command prompt session under Windows 95, Windows NT,
390− OS/2, or other operating system.
391+.. note::
392+
393+ The Setup Utility's diagnostics are designed to run in a
394+ DOS-only operating system environment. DO NOT run the diagnostics
395+ from a DOS or command prompt session under Windows 95, Windows NT,
396+ OS/2, or other operating system.
391397
392398 To run the diagnostics tests on the CS8900/20 adapter:
393399
394− 1.) Boot DOS on the PC and start the CS8900/20 Setup Utility.
400+ 1. Boot DOS on the PC and start the CS8900/20 Setup Utility.
395401
396− 2.) The adapter's current configuration is displayed. Hit the ENTER key to
402+ 2. The adapter's current configuration is displayed. Hit the ENTER key to
397403 get to the main menu.
398404
399− 4.) Select 'Diagnostics' (ALT-G) from the main menu.
405+ 4. Select 'Diagnostics' (ALT-G) from the main menu.
400406 * Select 'Self-Test' to test the adapter's basic functionality.
401407 * Select 'Network Test' to test the network connection and cabling.
402408
403409
404−5.2.1 DIAGNOSTIC SELF-TEST
410+5.2.1. Diagnostic Self-test
411+^^^^^^^^^^^^^^^^^^^^^^^^^^^
405412
406−The diagnostic self-test checks the adapter's basic functionality as well as
407−its ability to communicate across the ISA bus based on the system resources
413+The diagnostic self-test checks the adapter's basic functionality as well as
414+its ability to communicate across the ISA bus based on the system resources
408415 assigned during hardware configuration. The following tests are performed:
409416
410417 * IO Register Read/Write Test
411− The IO Register Read/Write test insures that the CS8900/20 can be
418+
419+ The IO Register Read/Write test insures that the CS8900/20 can be
412420 accessed in IO mode, and that the IO base address is correct.
413421
414422 * Shared Memory Test
415− The Shared Memory test insures the CS8900/20 can be accessed in memory
416− mode and that the range of memory addresses assigned does not conflict
423+
424+ The Shared Memory test insures the CS8900/20 can be accessed in memory
425+ mode and that the range of memory addresses assigned does not conflict
417426 with other devices in the system.
418427
419428 * Interrupt Test
429+
420430 The Interrupt test insures there are no conflicts with the assigned IRQ
421431 signal.
422432
423433 * EEPROM Test
434+
424435 The EEPROM test insures the EEPROM can be read.
425436
426437 * Chip RAM Test
438+
427439 The Chip RAM test insures the 4K of memory internal to the CS8900/20 is
428440 working properly.
429441
430442 * Internal Loop-back Test
431− The Internal Loop Back test insures the adapter's transmitter and
432− receiver are operating properly. If this test fails, make sure the
433− adapter's cable is connected to the network (check for LED activity for
443+
444+ The Internal Loop Back test insures the adapter's transmitter and
445+ receiver are operating properly. If this test fails, make sure the
446+ adapter's cable is connected to the network (check for LED activity for
434447 example).
435448
436449 * Boot PROM Test
450+
437451 The Boot PROM test insures the Boot PROM is present, and can be read.
438452 Failure indicates the Boot PROM was not successfully read due to a
439453 hardware problem or due to a conflicts on the Boot PROM address
440454 assignment. (Test only applies if the adapter is configured to use the
441455 Boot PROM option.)
442456
443−Failure of a test item indicates a possible system resource conflict with
444−another device on the ISA bus. In this case, you should use the Manual Setup
457+Failure of a test item indicates a possible system resource conflict with
458+another device on the ISA bus. In this case, you should use the Manual Setup
445459 option to reconfigure the adapter by selecting a different value for the system
446460 resource that failed.
447461
448462
449−5.2.2 DIAGNOSTIC NETWORK TEST
463+5.2.2. Diagnostic Network Test
464+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
450465
451−The Diagnostic Network Test verifies a working network connection by
452−transferring data between two CS8900/20 adapters installed in different PCs
453−on the same network. (Note: the diagnostic network test should not be run
454−between two nodes across a router.)
466+The Diagnostic Network Test verifies a working network connection by
467+transferring data between two CS8900/20 adapters installed in different PCs
468+on the same network. (Note: the diagnostic network test should not be run
469+between two nodes across a router.)
455470
456471 This test requires that each of the two PCs have a CS8900/20-based adapter
457−installed and have the CS8900/20 Setup Utility running. The first PC is
458−configured as a Responder and the other PC is configured as an Initiator.
459−Once the Initiator is started, it sends data frames to the Responder which
472+installed and have the CS8900/20 Setup Utility running. The first PC is
473+configured as a Responder and the other PC is configured as an Initiator.
474+Once the Initiator is started, it sends data frames to the Responder which
460475 returns the frames to the Initiator.
461476
462−The total number of frames received and transmitted are displayed on the
463−Initiator's display, along with a count of the number of frames received and
464−transmitted OK or in error. The test can be terminated anytime by the user at
477+The total number of frames received and transmitted are displayed on the
478+Initiator's display, along with a count of the number of frames received and
479+transmitted OK or in error. The test can be terminated anytime by the user at
465480 either PC.
466481
467482 To setup the Diagnostic Network Test:
468483
469− 1.) Select a PC with a CS8900/20-based adapter and a known working network
470− connection to act as the Responder. Run the CS8900/20 Setup Utility
471− and select 'Diagnostics -> Network Test -> Responder' from the main
472− menu. Hit ENTER to start the Responder.
484+ 1. Select a PC with a CS8900/20-based adapter and a known working network
485+ connection to act as the Responder. Run the CS8900/20 Setup Utility
486+ and select 'Diagnostics -> Network Test -> Responder' from the main
487+ menu. Hit ENTER to start the Responder.
473488
474− 2.) Return to the PC with the CS8900/20-based adapter you want to test and
475− start the CS8900/20 Setup Utility.
489+ 2. Return to the PC with the CS8900/20-based adapter you want to test and
490+ start the CS8900/20 Setup Utility.
491+
492+ 3. From the main menu, Select 'Diagnostic -> Network Test -> Initiator'.
493+ Hit ENTER to start the test.
476494
477− 3.) From the main menu, Select 'Diagnostic -> Network Test -> Initiator'.
478− Hit ENTER to start the test.
479−
480495 You may stop the test on the Initiator at any time while allowing the Responder
481−to continue running. In this manner, you can move to additional PCs and test
482−them by starting the Initiator on another PC without having to stop/start the
496+to continue running. In this manner, you can move to additional PCs and test
497+them by starting the Initiator on another PC without having to stop/start the
483498 Responder.
484−
485499
486500
487−5.3 USING THE ADAPTER'S LEDs
488501
489−The 2 and 3-media adapters have two LEDs visible on the back end of the board
490−located near the 10Base-T connector.
502+5.3. Using the Adapter's LEDs
503+-----------------------------
504+
505+The 2 and 3-media adapters have two LEDs visible on the back end of the board
506+located near the 10Base-T connector.
491507
492−Link Integrity LED: A "steady" ON of the green LED indicates a valid 10Base-T
508+Link Integrity LED: A "steady" ON of the green LED indicates a valid 10Base-T
493509 connection. (Only applies to 10Base-T. The green LED has no significance for
494510 a 10Base-2 or AUI connection.)
495511
496−TX/RX LED: The yellow LED lights briefly each time the adapter transmits or
512+TX/RX LED: The yellow LED lights briefly each time the adapter transmits or
497513 receives data. (The yellow LED will appear to "flicker" on a typical network.)
498514
499515
500−5.4 RESOLVING I/O CONFLICTS
516+5.4. Resolving I/O Conflicts
517+----------------------------
501518
502−An IO conflict occurs when two or more adapter use the same ISA resource (IO
503−address, memory address or IRQ). You can usually detect an IO conflict in one
519+An IO conflict occurs when two or more adapter use the same ISA resource (IO
520+address, memory address or IRQ). You can usually detect an IO conflict in one
504521 of four ways after installing and or configuring the CS8900/20-based adapter:
505522
506− 1.) The system does not boot properly (or at all).
523+ 1. The system does not boot properly (or at all).
507524
508− 2.) The driver cannot communicate with the adapter, reporting an "Adapter
509− not found" error message.
525+ 2. The driver cannot communicate with the adapter, reporting an "Adapter
526+ not found" error message.
510527
511− 3.) You cannot connect to the network or the driver will not load.
528+ 3. You cannot connect to the network or the driver will not load.
512529
513− 4.) If you have configured the adapter to run in memory mode but the driver
514− reports it is using IO mode when loading, this is an indication of a
515− memory address conflict.
530+ 4. If you have configured the adapter to run in memory mode but the driver
531+ reports it is using IO mode when loading, this is an indication of a
532+ memory address conflict.
516533
517−If an IO conflict occurs, run the CS8900/20 Setup Utility and perform a
518−diagnostic self-test. Normally, the ISA resource in conflict will fail the
519−self-test. If so, reconfigure the adapter selecting another choice for the
520−resource in conflict. Run the diagnostics again to check for further IO
534+If an IO conflict occurs, run the CS8900/20 Setup Utility and perform a
535+diagnostic self-test. Normally, the ISA resource in conflict will fail the
536+self-test. If so, reconfigure the adapter selecting another choice for the
537+resource in conflict. Run the diagnostics again to check for further IO
521538 conflicts.
522539
523540 In some cases, such as when the PC will not boot, it may be necessary to remove
524−the adapter and reconfigure it by installing it in another PC to run the
525−CS8900/20 Setup Utility. Once reinstalled in the target system, run the
526−diagnostics self-test to ensure the new configuration is free of conflicts
541+the adapter and reconfigure it by installing it in another PC to run the
542+CS8900/20 Setup Utility. Once reinstalled in the target system, run the
543+diagnostics self-test to ensure the new configuration is free of conflicts
527544 before loading the driver again.
528545
529−When manually configuring the adapter, keep in mind the typical ISA system
546+When manually configuring the adapter, keep in mind the typical ISA system
530547 resource usage as indicated in the tables below.
531548
532−I/O Address Device IRQ Device
533−----------- -------- --- --------
534− 200-20F Game I/O adapter 3 COM2, Bus Mouse
535− 230-23F Bus Mouse 4 COM1
536− 270-27F LPT3: third parallel port 5 LPT2
537− 2F0-2FF COM2: second serial port 6 Floppy Disk controller
538− 320-32F Fixed disk controller 7 LPT1
539− 8 Real-time Clock
540− 9 EGA/VGA display adapter
541− 12 Mouse (PS/2)
542−Memory Address Device 13 Math Coprocessor
543−-------------- --------------------- 14 Hard Disk controller
544−A000-BFFF EGA Graphics Adapter
545−A000-C7FF VGA Graphics Adapter
546−B000-BFFF Mono Graphics Adapter
547−B800-BFFF Color Graphics Adapter
548−E000-FFFF AT BIOS
549+::
549550
551+ I/O Address Device IRQ Device
552+ ----------- -------- --- --------
553+ 200-20F Game I/O adapter 3 COM2, Bus Mouse
554+ 230-23F Bus Mouse 4 COM1
555+ 270-27F LPT3: third parallel port 5 LPT2
556+ 2F0-2FF COM2: second serial port 6 Floppy Disk controller
557+ 320-32F Fixed disk controller 7 LPT1
558+ 8 Real-time Clock
559+ 9 EGA/VGA display adapter
560+ 12 Mouse (PS/2)
561+ Memory Address Device 13 Math Coprocessor
562+ -------------- --------------------- 14 Hard Disk controller
563+ A000-BFFF EGA Graphics Adapter
564+ A000-C7FF VGA Graphics Adapter
565+ B000-BFFF Mono Graphics Adapter
566+ B800-BFFF Color Graphics Adapter
567+ E000-FFFF AT BIOS
550568
551569
552570
553−6.0 TECHNICAL SUPPORT
554−===============================================================================
555571
556−6.1 CONTACTING CIRRUS LOGIC'S TECHNICAL SUPPORT
572+6. Technical Support
573+====================
557574
558−Cirrus Logic's CS89XX Technical Application Support can be reached at:
575+6.1. Contacting Cirrus Logic's Technical Support
576+------------------------------------------------
559577
560−Telephone :(800) 888-5016 (from inside U.S. and Canada)
561− :(512) 442-7555 (from outside the U.S. and Canada)
562−Fax :(512) 912-3871
563−Email :ethernet@crystal.cirrus.com
564−WWW :http://www.cirrus.com
578+Cirrus Logic's CS89XX Technical Application Support can be reached at::
565579
580+ Telephone :(800) 888-5016 (from inside U.S. and Canada)
581+ :(512) 442-7555 (from outside the U.S. and Canada)
582+ Fax :(512) 912-3871
583+ Email :ethernet@crystal.cirrus.com
584+ WWW :http://www.cirrus.com
566585
567−6.2 INFORMATION REQUIRED BEFORE CONTACTING TECHNICAL SUPPORT
568586
569−Before contacting Cirrus Logic for technical support, be prepared to provide as
570−Much of the following information as possible.
587+6.2. Information Required before Contacting Technical Support
588+-------------------------------------------------------------
589+
590+Before contacting Cirrus Logic for technical support, be prepared to provide as
591+Much of the following information as possible.
571592
572593 1.) Adapter type (CRD8900, CDB8900, CDB8920, etc.)
573594
@@ -575,7 +596,7 @@ Much of the following information as possible. · 1 unmodified line
575596
576597 * IO Base, Memory Base, IO or memory mode enabled, IRQ, DMA channel
577598 * Plug and Play enabled/disabled (CS8920-based adapters only)
578− * Configured for media auto-detect or specific media type (which type).
599+ * Configured for media auto-detect or specific media type (which type).
579600
580601 3.) PC System's Configuration
581602
@@ -590,35 +611,37 @@ Much of the following information as possible. · 8 unmodified lines
590611
591612 * CS89XX driver and version
592613 * Your network operating system and version
593− * Your system's OS version
614+ * Your system's OS version
594615 * Version of all protocol support files
595616
596617 5.) Any Error Message displayed.
597618
598619
599620
600−6.3 OBTAINING THE LATEST DRIVER VERSION
621+6.3 Obtaining the Latest Driver Version
622+---------------------------------------
601623
602−You can obtain the latest CS89XX drivers and support software from Cirrus Logic's
624+You can obtain the latest CS89XX drivers and support software from Cirrus Logic's
603625 Web site. You can also contact Cirrus Logic's Technical Support (email:
604−ethernet@crystal.cirrus.com) and request that you be registered for automatic
626+ethernet@crystal.cirrus.com) and request that you be registered for automatic
605627 software-update notification.
606628
607629 Cirrus Logic maintains a web page at http://www.cirrus.com with the
608630 latest drivers and technical publications.
609631
610632
611−6.4 Current maintainer
633+6.4. Current maintainer
634+-----------------------
612635
613636 In February 2000 the maintenance of this driver was assumed by Andrew
614637 Morton.
615638
616639 6.5 Kernel module parameters
640+----------------------------
617641
618642 For use in embedded environments with no cs89x0 EEPROM, the kernel boot
619−parameter `cs89x0_media=' has been implemented. Usage is:
643+parameter ``cs89x0_media=`` has been implemented. Usage is::
620644
621645 cs89x0_media=rj45 or
622646 cs89x0_media=aui or
623647 cs89x0_media=bnc
624−
Documentation/networking/device_drivers/davicom/dm9000.rstrenamed from Documentation/networking/device_drivers/davicom/dm9000.txt+14−10
@@ -1,7 +1,11 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+=====================
14 DM9000 Network driver
25 =====================
36
47 Copyright 2008 Simtec Electronics,
8+
59 Ben Dooks <ben@simtec.co.uk> <ben-linux@fluff.org>
610
711
@@ -30,9 +34,9 @@ These resources should be specified in that order, as the ordering of the · 22 unmodified lines
3034 two address regions is important (the driver expects these to be address
3135 and then data).
3236
33−An example from arch/arm/mach-s3c2410/mach-bast.c is:
37+An example from arch/arm/mach-s3c2410/mach-bast.c is::
3438
35−static struct resource bast_dm9k_resource[] = {
39+ static struct resource bast_dm9k_resource[] = {
3640 [0] = {
3741 .start = S3C2410_CS5 + BAST_PA_DM9000,
3842 .end = S3C2410_CS5 + BAST_PA_DM9000 + 3,
@@ -48,14 +52,14 @@ static struct resource bast_dm9k_resource[] = { · 9 unmodified lines
4852 .end = IRQ_DM9000,
4953 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
5054 }
51−};
55+ };
5256
53−static struct platform_device bast_device_dm9k = {
57+ static struct platform_device bast_device_dm9k = {
5458 .name = "dm9000",
5559 .id = 0,
5660 .num_resources = ARRAY_SIZE(bast_dm9k_resource),
5761 .resource = bast_dm9k_resource,
58−};
62+ };
5963
6064 Note the setting of the IRQ trigger flag in bast_dm9k_resource[2].flags,
6165 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. · 2 unmodified lines
6468
6569 This shows a typical platform device, without the optional configuration
6670 platform data supplied. The next example uses the same resources, but adds
67−the optional platform data to pass extra configuration data:
71+the optional platform data to pass extra configuration data::
6872
69−static struct dm9000_plat_data bast_dm9k_platdata = {
73+ static struct dm9000_plat_data bast_dm9k_platdata = {
7074 .flags = DM9000_PLATF_16BITONLY,
71−};
75+ };
7276
73−static struct platform_device bast_device_dm9k = {
77+ static struct platform_device bast_device_dm9k = {
7478 .name = "dm9000",
7579 .id = 0,
7680 .num_resources = ARRAY_SIZE(bast_dm9k_resource),
@@ -78,7 +82,7 @@ static struct platform_device bast_device_dm9k = { · 1 unmodified line
7882 .dev = {
7983 .platform_data = &bast_dm9k_platdata,
8084 }
81−};
85+ };
8286
8387 The platform data is defined in include/linux/dm9000.h and described below.
8488
Documentation/networking/device_drivers/dec/de4x5.rstrenamed from Documentation/networking/device_drivers/dec/de4x5.txt+58−47
@@ -1,48 +1,54 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+===================================
4+DEC EtherWORKS Ethernet De4x5 cards
5+===================================
6+
17 Originally, this driver was written for the Digital Equipment
28 Corporation series of EtherWORKS Ethernet cards:
39
4− DE425 TP/COAX EISA
5− DE434 TP PCI
6− DE435 TP/COAX/AUI PCI
7− DE450 TP/COAX/AUI PCI
8− DE500 10/100 PCI Fasternet
10+ - DE425 TP/COAX EISA
11+ - DE434 TP PCI
12+ - DE435 TP/COAX/AUI PCI
13+ - DE450 TP/COAX/AUI PCI
14+ - DE500 10/100 PCI Fasternet
915
1016 but it will now attempt to support all cards which conform to the
1117 Digital Semiconductor SROM Specification. The driver currently
1218 recognises the following chips:
1319
14− DC21040 (no SROM)
15− DC21041[A]
16− DC21140[A]
17− DC21142
18− DC21143
20+ - DC21040 (no SROM)
21+ - DC21041[A]
22+ - DC21140[A]
23+ - DC21142
24+ - DC21143
1925
2026 So far the driver is known to work with the following cards:
2127
22− KINGSTON
23− Linksys
24− ZNYX342
25− SMC8432
26− SMC9332 (w/new SROM)
27− ZNYX31[45]
28− ZNYX346 10/100 4 port (can act as a 10/100 bridge!)
28+ - KINGSTON
29+ - Linksys
30+ - ZNYX342
31+ - SMC8432
32+ - SMC9332 (w/new SROM)
33+ - ZNYX31[45]
34+ - ZNYX346 10/100 4 port (can act as a 10/100 bridge!)
2935
3036 The driver has been tested on a relatively busy network using the DE425,
3137 DE434, DE435 and DE500 cards and benchmarked with 'ttcp': it transferred
32− 16M of data to a DECstation 5000/200 as follows:
38+ 16M of data to a DECstation 5000/200 as follows::
3339
34− TCP UDP
35− TX RX TX RX
36− DE425 1030k 997k 1170k 1128k
37− DE434 1063k 995k 1170k 1125k
38− DE435 1063k 995k 1170k 1125k
39− DE500 1063k 998k 1170k 1125k in 10Mb/s mode
40+ TCP UDP
41+ TX RX TX RX
42+ DE425 1030k 997k 1170k 1128k
43+ DE434 1063k 995k 1170k 1125k
44+ DE435 1063k 995k 1170k 1125k
45+ DE500 1063k 998k 1170k 1125k in 10Mb/s mode
4046
4147 All values are typical (in kBytes/sec) from a sample of 4 for each
4248 measurement. Their error is +/-20k on a quiet (private) network and also
4349 depend on what load the CPU has.
4450
45− =========================================================================
51+----------------------------------------------------------------------------
4652
4753 The ability to load this driver as a loadable module has been included
4854 and used extensively during the driver development (to save those long
@@ -55,31 +61,33 @@ · 6 unmodified lines
5561
5662 0) have a copy of the loadable modules code installed on your system.
5763 1) copy de4x5.c from the /linux/drivers/net directory to your favourite
58− temporary directory.
64+ temporary directory.
5965 2) for fixed autoprobes (not recommended), edit the source code near
60− line 5594 to reflect the I/O address you're using, or assign these when
61− loading by:
66+ line 5594 to reflect the I/O address you're using, or assign these when
67+ loading by::
6268
63− insmod de4x5 io=0xghh where g = bus number
64− hh = device number
69+ insmod de4x5 io=0xghh where g = bus number
70+ hh = device number
6571
66− NB: autoprobing for modules is now supported by default. You may just
67− use:
72+ .. note::
6873
69− insmod de4x5
74+ autoprobing for modules is now supported by default. You may just
75+ use::
7076
71− to load all available boards. For a specific board, still use
77+ insmod de4x5
78+
79+ to load all available boards. For a specific board, still use
7280 the 'io=?' above.
7381 3) compile de4x5.c, but include -DMODULE in the command line to ensure
74− that the correct bits are compiled (see end of source code).
82+ that the correct bits are compiled (see end of source code).
7583 4) if you are wanting to add a new card, goto 5. Otherwise, recompile a
76− kernel with the de4x5 configuration turned off and reboot.
84+ kernel with the de4x5 configuration turned off and reboot.
7785 5) insmod de4x5 [io=0xghh]
78− 6) run the net startup bits for your new eth?? interface(s) manually
79− (usually /etc/rc.inet[12] at boot time).
86+ 6) run the net startup bits for your new eth?? interface(s) manually
87+ (usually /etc/rc.inet[12] at boot time).
8088 7) enjoy!
8189
82− To unload a module, turn off the associated interface(s)
90+ To unload a module, turn off the associated interface(s)
8391 'ifconfig eth?? down' then 'rmmod de4x5'.
8492
8593 Automedia detection is included so that in principle you can disconnect
@@ -90,7 +98,7 @@ · 4 unmodified lines
9098 By default, the driver will now autodetect any DECchip based card.
9199 Should you have a need to restrict the driver to DIGITAL only cards, you
92100 can compile with a DEC_ONLY define, or if loading as a module, use the
93− 'dec_only=1' parameter.
101+ 'dec_only=1' parameter.
94102
95103 I've changed the timing routines to use the kernel timer and scheduling
96104 functions so that the hangs and other assorted problems that occurred
@@ -158,18 +166,21 @@ · 61 unmodified lines
158166 either at the end of the parameter list or with another board name. The
159167 following parameters are allowed:
160168
161− fdx for full duplex
162− autosense to set the media/speed; with the following
163− sub-parameters:
169+ ========= ===============================================
170+ fdx for full duplex
171+ autosense to set the media/speed; with the following
172+ sub-parameters:
164173 TP, TP_NW, BNC, AUI, BNC_AUI, 100Mb, 10Mb, AUTO
174+ ========= ===============================================
165175
166176 Case sensitivity is important for the sub-parameters. They *must* be
167− upper case. Examples:
177+ upper case. Examples::
178+
179+ insmod de4x5 args='eth1:fdx autosense=BNC eth0:autosense=100Mb'.
168180
169− insmod de4x5 args='eth1:fdx autosense=BNC eth0:autosense=100Mb'.
181+ For a compiled in driver, in linux/drivers/net/CONFIG, place e.g.::
170182
171− For a compiled in driver, in linux/drivers/net/CONFIG, place e.g.
172− DE4X5_OPTS = -DDE4X5_PARM='"eth0:fdx autosense=AUI eth2:autosense=TP"'
183+ DE4X5_OPTS = -DDE4X5_PARM='"eth0:fdx autosense=AUI eth2:autosense=TP"'
173184
174185 Yes, I know full duplex isn't permissible on BNC or AUI; they're just
175186 examples. By default, full duplex is turned off and AUTO is the default
Documentation/networking/device_drivers/dec/dmfe.rstrenamed from Documentation/networking/device_drivers/dec/dmfe.txt+20−15
@@ -1,6 +1,11 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+==============================================================
4+Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver for Linux
5+==============================================================
6+
17 Note: This driver doesn't have a maintainer.
28
3−Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver for Linux.
49
510 This program is free software; you can redistribute it and/or
611 modify it under the terms of the GNU General Public License
@@ -16,29 +21,29 @@ GNU General Public License for more details. · 9 unmodified lines
1621 This driver provides kernel support for Davicom DM9102(A)/DM9132/DM9801 ethernet cards ( CNET
1722 10/100 ethernet cards uses Davicom chipset too, so this driver supports CNET cards too ).If you
1823 didn't compile this driver as a module, it will automatically load itself on boot and print a
19−line similar to :
24+line similar to::
2025
2126 dmfe: Davicom DM9xxx net driver, version 1.36.4 (2002-01-17)
2227
23−If you compiled this driver as a module, you have to load it on boot.You can load it with command :
28+If you compiled this driver as a module, you have to load it on boot.You can load it with command::
2429
2530 insmod dmfe
2631
2732 This way it will autodetect the device mode.This is the suggested way to load the module.Or you can pass
28−a mode= setting to module while loading, like :
33+a mode= setting to module while loading, like::
2934
3035 insmod dmfe mode=0 # Force 10M Half Duplex
3136 insmod dmfe mode=1 # Force 100M Half Duplex
3237 insmod dmfe mode=4 # Force 10M Full Duplex
3338 insmod dmfe mode=5 # Force 100M Full Duplex
3439
35−Next you should configure your network interface with a command similar to :
40+Next you should configure your network interface with a command similar to::
3641
3742 ifconfig eth0 172.22.3.18
38− ^^^^^^^^^^^
43+ ^^^^^^^^^^^
3944 Your IP Address
4045
41−Then you may have to modify the default routing table with command :
46+Then you may have to modify the default routing table with command::
4247
4348 route add default eth0
4449
@@ -48,10 +53,10 @@ Now your ethernet card should be up and running. · 3 unmodified lines
4853
4954 TODO:
5055
51−Implement pci_driver::suspend() and pci_driver::resume() power management methods.
52−Check on 64 bit boxes.
53−Check and fix on big endian boxes.
54−Test and make sure PCI latency is now correct for all cases.
56+- Implement pci_driver::suspend() and pci_driver::resume() power management methods.
57+- Check on 64 bit boxes.
58+- Check and fix on big endian boxes.
59+- Test and make sure PCI latency is now correct for all cases.
5560
5661
5762 Authors:
@@ -60,7 +65,7 @@ Sten Wang <sten_wang@davicom.com.tw > : Original Author · 2 unmodified lines
6065
6166 Contributors:
6267
63−Marcelo Tosatti <marcelo@conectiva.com.br>
64−Alan Cox <alan@lxorguk.ukuu.org.uk>
65−Jeff Garzik <jgarzik@pobox.com>
66−Vojtech Pavlik <vojtech@suse.cz>
68+- Marcelo Tosatti <marcelo@conectiva.com.br>
69+- Alan Cox <alan@lxorguk.ukuu.org.uk>
70+- Jeff Garzik <jgarzik@pobox.com>
71+- Vojtech Pavlik <vojtech@suse.cz>
Documentation/networking/device_drivers/dlink/dl2k.rstrenamed from Documentation/networking/device_drivers/dlink/dl2k.txt+130−98
@@ -1,10 +1,13 @@
1+.. SPDX-License-Identifier: GPL-2.0
12
2− D-Link DL2000-based Gigabit Ethernet Adapter Installation
3− for Linux
4− May 23, 2002
3+=========================================================
4+D-Link DL2000-based Gigabit Ethernet Adapter Installation
5+=========================================================
6+
7+May 23, 2002
8+
9+.. Contents
510
6−Contents
7−========
811 - Compatibility List
912 - Quick Install
1013 - Compiling the Driver
@@ -15,12 +18,13 @@ Contents · 4 unmodified lines
1518
1619
1720 Compatibility List
18−=================
21+==================
22+
1923 Adapter Support:
2024
21−D-Link DGE-550T Gigabit Ethernet Adapter.
22−D-Link DGE-550SX Gigabit Ethernet Adapter.
23−D-Link DL2000-based Gigabit Ethernet Adapter.
25+- D-Link DGE-550T Gigabit Ethernet Adapter.
26+- D-Link DGE-550SX Gigabit Ethernet Adapter.
27+- D-Link DL2000-based Gigabit Ethernet Adapter.
2428
2529
2630 The driver support Linux kernel 2.4.7 later. We had tested it
@@ -34,28 +38,32 @@ on the environments below. · 7 unmodified lines
3438
3539 Quick Install
3640 =============
37−Install linux driver as following command:
41+Install linux driver as following command::
42+
43+ 1. make all
44+ 2. insmod dl2k.ko
45+ 3. ifconfig eth0 up 10.xxx.xxx.xxx netmask 255.0.0.0
46+ ^^^^^^^^^^^^^^^\ ^^^^^^^^\
47+ IP NETMASK
3848
39−1. make all
40−2. insmod dl2k.ko
41−3. ifconfig eth0 up 10.xxx.xxx.xxx netmask 255.0.0.0
42− ^^^^^^^^^^^^^^^\ ^^^^^^^^\
43− IP NETMASK
4449 Now eth0 should active, you can test it by "ping" or get more information by
4550 "ifconfig". If tested ok, continue the next step.
4651
47−4. cp dl2k.ko /lib/modules/`uname -r`/kernel/drivers/net
48−5. Add the following line to /etc/modprobe.d/dl2k.conf:
52+4. ``cp dl2k.ko /lib/modules/`uname -r`/kernel/drivers/net``
53+5. Add the following line to /etc/modprobe.d/dl2k.conf::
54+
4955 alias eth0 dl2k
50−6. Run depmod to updated module indexes.
51−7. Run "netconfig" or "netconf" to create configuration script ifcfg-eth0
56+
57+6. Run ``depmod`` to updated module indexes.
58+7. Run ``netconfig`` or ``netconf`` to create configuration script ifcfg-eth0
5259 located at /etc/sysconfig/network-scripts or create it manually.
60+
5361 [see - Configuration Script Sample]
5462 8. Driver will automatically load and configure at next boot time.
5563
5664 Compiling the Driver
5765 ====================
58− In Linux, NIC drivers are most commonly configured as loadable modules.
66+In Linux, NIC drivers are most commonly configured as loadable modules.
5967 The approach of building a monolithic kernel has become obsolete. The driver
6068 can be compiled as part of a monolithic kernel, but is strongly discouraged.
6169 The remainder of this section assumes the driver is built as a loadable module.
@@ -73,93 +81,108 @@ to compile and link the driver: · 11 unmodified lines
7381 CD-ROM drive
7482 ------------
7583
76−[root@XXX /] mkdir cdrom
77−[root@XXX /] mount -r -t iso9660 -o conv=auto /dev/cdrom /cdrom
78−[root@XXX /] cd root
79−[root@XXX /root] mkdir dl2k
80−[root@XXX /root] cd dl2k
81−[root@XXX dl2k] cp /cdrom/linux/dl2k.tgz /root/dl2k
82−[root@XXX dl2k] tar xfvz dl2k.tgz
83−[root@XXX dl2k] make all
84+::
85+
86+ [root@XXX /] mkdir cdrom
87+ [root@XXX /] mount -r -t iso9660 -o conv=auto /dev/cdrom /cdrom
88+ [root@XXX /] cd root
89+ [root@XXX /root] mkdir dl2k
90+ [root@XXX /root] cd dl2k
91+ [root@XXX dl2k] cp /cdrom/linux/dl2k.tgz /root/dl2k
92+ [root@XXX dl2k] tar xfvz dl2k.tgz
93+ [root@XXX dl2k] make all
8494
8595 Floppy disc drive
8696 -----------------
8797
88−[root@XXX /] cd root
89−[root@XXX /root] mkdir dl2k
90−[root@XXX /root] cd dl2k
91−[root@XXX dl2k] mcopy a:/linux/dl2k.tgz /root/dl2k
92−[root@XXX dl2k] tar xfvz dl2k.tgz
93−[root@XXX dl2k] make all
98+::
99+
100+ [root@XXX /] cd root
101+ [root@XXX /root] mkdir dl2k
102+ [root@XXX /root] cd dl2k
103+ [root@XXX dl2k] mcopy a:/linux/dl2k.tgz /root/dl2k
104+ [root@XXX dl2k] tar xfvz dl2k.tgz
105+ [root@XXX dl2k] make all
94106
95107 Installing the Driver
96108 =====================
97109
98− Manual Installation
99− -------------------
110+Manual Installation
111+-------------------
112+
100113 Once the driver has been compiled, it must be loaded, enabled, and bound
101114 to a protocol stack in order to establish network connectivity. To load a
102− module enter the command:
115+ module enter the command::
116+
117+ insmod dl2k.o
118+
119+ or::
120+
121+ insmod dl2k.o <optional parameter> ; add parameter
103122
104− insmod dl2k.o
123+---------------------------------------------------------
105124
106− or
125+ example::
107126
108− insmod dl2k.o <optional parameter> ; add parameter
127+ insmod dl2k.o media=100mbps_hd
109128
110− ===============================================================
111− example: insmod dl2k.o media=100mbps_hd
112− or insmod dl2k.o media=3
113− or insmod dl2k.o media=3,2 ; for 2 cards
114− ===============================================================
129+ or::
130+
131+ insmod dl2k.o media=3
132+
133+ or::
134+
135+ insmod dl2k.o media=3,2 ; for 2 cards
136+
137+---------------------------------------------------------
115138
116139 Please reference the list of the command line parameters supported by
117140 the Linux device driver below.
118141
119142 The insmod command only loads the driver and gives it a name of the form
120143 eth0, eth1, etc. To bring the NIC into an operational state,
121− it is necessary to issue the following command:
144+ it is necessary to issue the following command::
122145
123− ifconfig eth0 up
146+ ifconfig eth0 up
124147
125148 Finally, to bind the driver to the active protocol (e.g., TCP/IP with
126− Linux), enter the following command:
149+ Linux), enter the following command::
127150
128− ifup eth0
151+ ifup eth0
129152
130153 Note that this is meaningful only if the system can find a configuration
131154 script that contains the necessary network information. A sample will be
132155 given in the next paragraph.
133156
134− The commands to unload a driver are as follows:
157+ The commands to unload a driver are as follows::
135158
136− ifdown eth0
137− ifconfig eth0 down
138− rmmod dl2k.o
159+ ifdown eth0
160+ ifconfig eth0 down
161+ rmmod dl2k.o
139162
140163 The following are the commands to list the currently loaded modules and
141− to see the current network configuration.
164+ to see the current network configuration::
142165
143− lsmod
144− ifconfig
166+ lsmod
167+ ifconfig
145168
146169
147− Automated Installation
148− ----------------------
170+Automated Installation
171+----------------------
149172 This section describes how to install the driver such that it is
150173 automatically loaded and configured at boot time. The following description
151174 is based on a Red Hat 6.0/7.0 distribution, but it can easily be ported to
152175 other distributions as well.
153176
154− Red Hat v6.x/v7.x
155− -----------------
177+Red Hat v6.x/v7.x
178+-----------------
156179 1. Copy dl2k.o to the network modules directory, typically
157180 /lib/modules/2.x.x-xx/net or /lib/modules/2.x.x/kernel/drivers/net.
158181 2. Locate the boot module configuration file, most commonly in the
159− /etc/modprobe.d/ directory. Add the following lines:
182+ /etc/modprobe.d/ directory. Add the following lines::
160183
161− alias ethx dl2k
162− options dl2k <optional parameters>
184+ alias ethx dl2k
185+ options dl2k <optional parameters>
163186
164187 where ethx will be eth0 if the NIC is the only ethernet adapter, eth1 if
165188 one other ethernet adapter is installed, etc. Refer to the table in the
@@ -180,11 +203,15 @@ parameter. Below is a list of the command line parameters supported by the · 14 unmodified lines
180203 Linux device
181204 driver.
182205
183−mtu=packet_size - Specifies the maximum packet size. default
206+
207+=============================== ==============================================
208+mtu=packet_size Specifies the maximum packet size. default
184209 is 1500.
185210
186−media=media_type - Specifies the media type the NIC operates at.
211+media=media_type Specifies the media type the NIC operates at.
187212 autosense Autosensing active media.
213+
214+ =========== =========================
188215 10mbps_hd 10Mbps half duplex.
189216 10mbps_fd 10Mbps full duplex.
190217 100mbps_hd 100Mbps half duplex.
@@ -198,85 +225,90 @@ media=media_type - Specifies the media type the NIC operates at. · 7 unmodified lines
198225 4 100Mbps full duplex.
199226 5 1000Mbps half duplex.
200227 6 1000Mbps full duplex.
228+ =========== =========================
201229
202230 By default, the NIC operates at autosense.
203231 1000mbps_fd and 1000mbps_hd types are only
204232 available for fiber adapter.
205233
206−vlan=n - Specifies the VLAN ID. If vlan=0, the
234+vlan=n Specifies the VLAN ID. If vlan=0, the
207235 Virtual Local Area Network (VLAN) function is
208236 disable.
209237
210−jumbo=[0|1] - Specifies the jumbo frame support. If jumbo=1,
238+jumbo=[0|1] Specifies the jumbo frame support. If jumbo=1,
211239 the NIC accept jumbo frames. By default, this
212240 function is disabled.
213241 Jumbo frame usually improve the performance
214242 int gigabit.
215− This feature need jumbo frame compatible
243+ This feature need jumbo frame compatible
216244 remote.
217−
218−rx_coalesce=m - Number of rx frame handled each interrupt.
219−rx_timeout=n - Rx DMA wait time for an interrupt.
220− If set rx_coalesce > 0, hardware only assert
221− an interrupt for m frames. Hardware won't
245+
246+rx_coalesce=m Number of rx frame handled each interrupt.
247+rx_timeout=n Rx DMA wait time for an interrupt.
248+ If set rx_coalesce > 0, hardware only assert
249+ an interrupt for m frames. Hardware won't
222250 assert rx interrupt until m frames received or
223− reach timeout of n * 640 nano seconds.
224− Set proper rx_coalesce and rx_timeout can
251+ reach timeout of n * 640 nano seconds.
252+ Set proper rx_coalesce and rx_timeout can
225253 reduce congestion collapse and overload which
226254 has been a bottleneck for high speed network.
227−
255+
228256 For example, rx_coalesce=10 rx_timeout=800.
229− that is, hardware assert only 1 interrupt
230− for 10 frames received or timeout of 512 us.
257+ that is, hardware assert only 1 interrupt
258+ for 10 frames received or timeout of 512 us.
231259
232−tx_coalesce=n - Number of tx frame handled each interrupt.
233− Set n > 1 can reduce the interrupts
260+tx_coalesce=n Number of tx frame handled each interrupt.
261+ Set n > 1 can reduce the interrupts
234262 congestion usually lower performance of
235263 high speed network card. Default is 16.
236−
237−tx_flow=[1|0] - Specifies the Tx flow control. If tx_flow=0,
264+
265+tx_flow=[1|0] Specifies the Tx flow control. If tx_flow=0,
238266 the Tx flow control disable else driver
239267 autodetect.
240−rx_flow=[1|0] - Specifies the Rx flow control. If rx_flow=0,
268+rx_flow=[1|0] Specifies the Rx flow control. If rx_flow=0,
241269 the Rx flow control enable else driver
242270 autodetect.
271+=============================== ==============================================
243272
244273
245274 Configuration Script Sample
246275 ===========================
247−Here is a sample of a simple configuration script:
276+Here is a sample of a simple configuration script::
248277
249−DEVICE=eth0
250−USERCTL=no
251−ONBOOT=yes
252−POOTPROTO=none
253−BROADCAST=207.200.5.255
254−NETWORK=207.200.5.0
255−NETMASK=255.255.255.0
256−IPADDR=207.200.5.2
278+ DEVICE=eth0
279+ USERCTL=no
280+ ONBOOT=yes
281+ POOTPROTO=none
282+ BROADCAST=207.200.5.255
283+ NETWORK=207.200.5.0
284+ NETMASK=255.255.255.0
285+ IPADDR=207.200.5.2
257286
258287
259288 Troubleshooting
260289 ===============
261290 Q1. Source files contain ^ M behind every line.
262− Make sure all files are Unix file format (no LF). Try the following
263− shell command to convert files.
291+
292+ Make sure all files are Unix file format (no LF). Try the following
293+ shell command to convert files::
264294
265295 cat dl2k.c | col -b > dl2k.tmp
266296 mv dl2k.tmp dl2k.c
267297
268− OR
298+ OR::
269299
270300 cat dl2k.c | tr -d "\r" > dl2k.tmp
271301 mv dl2k.tmp dl2k.c
272302
273−Q2: Could not find header files (*.h) ?
274− To compile the driver, you need kernel header files. After
303+Q2: Could not find header files (``*.h``)?
304+
305+ To compile the driver, you need kernel header files. After
275306 installing the kernel source, the header files are usually located in
276307 /usr/src/linux/include, which is the default include directory configured
277308 in Makefile. For some distributions, there is a copy of header files in
278309 /usr/src/include/linux and /usr/src/include/asm, that you can change the
279310 INCLUDEDIR in Makefile to /usr/include without installing kernel source.
280− Note that RH 7.0 didn't provide correct header files in /usr/include,
311+
312+ Note that RH 7.0 didn't provide correct header files in /usr/include,
281313 including those files will make a wrong version driver.
282314
Documentation/networking/device_drivers/freescale/dpaa.rstrenamed from Documentation/networking/device_drivers/freescale/dpaa.txt+75−66
@@ -1,12 +1,14 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+==============================
14 The QorIQ DPAA Ethernet Driver
25 ==============================
36
47 Authors:
5−Madalin Bucur <madalin.bucur@nxp.com>
6−Camelia Groza <camelia.groza@nxp.com>
8+- Madalin Bucur <madalin.bucur@nxp.com>
9+- Camelia Groza <camelia.groza@nxp.com>
710
8−Contents
9−========
11+.. Contents
1012
1113 - DPAA Ethernet Overview
1214 - DPAA Ethernet Supported SoCs
@@ -34,7 +36,7 @@ following drivers in the Linux kernel: · 21 unmodified lines
3436 - Queue Manager (QMan), Buffer Manager (BMan)
3537 drivers/soc/fsl/qbman
3638
37−A simplified view of the dpaa_eth interfaces mapped to FMan MACs:
39+A simplified view of the dpaa_eth interfaces mapped to FMan MACs::
3840
3941 dpaa_eth /eth0\ ... /ethN\
4042 driver | | | |
@@ -42,89 +44,93 @@ A simplified view of the dpaa_eth interfaces mapped to FMan MACs: · 1 unmodified line
4244 -Ports / Tx Rx \ ... / Tx Rx \
4345 FMan | | | |
4446 -MACs | MAC0 | | MACN |
45− / dtsec0 \ ... / dtsecN \ (or tgec)
46− / \ / \(or memac)
47+ / dtsec0 \ ... / dtsecN \ (or tgec)
48+ / \ / \(or memac)
4749 --------- -------------- --- -------------- ---------
4850 FMan, FMan Port, FMan SP, FMan MURAM drivers
4951 ---------------------------------------------------------
5052 FMan HW blocks: MURAM, MACs, Ports, SP
5153 ---------------------------------------------------------
5254
53−The dpaa_eth relation to the QMan, BMan and FMan:
54− ________________________________
55+The dpaa_eth relation to the QMan, BMan and FMan::
56+
57+ ________________________________
5558 dpaa_eth / eth0 \
5659 driver / \
5760 --------- -^- -^- -^- --- ---------
5861 QMan driver / \ / \ / \ \ / | BMan |
59− |Rx | |Rx | |Tx | |Tx | | driver |
62+ |Rx | |Rx | |Tx | |Tx | | driver |
6063 --------- |Dfl| |Err| |Cnf| |FQs| | |
6164 QMan HW |FQ | |FQ | |FQs| | | | |
62− / \ / \ / \ \ / | |
65+ / \ / \ / \ \ / | |
6366 --------- --- --- --- -v- ---------
64− | FMan QMI | |
65− | FMan HW FMan BMI | BMan HW |
66− ----------------------- --------
67+ | FMan QMI | |
68+ | FMan HW FMan BMI | BMan HW |
69+ ----------------------- --------
6770
6871 where the acronyms used above (and in the code) are:
69−DPAA = Data Path Acceleration Architecture
70−FMan = DPAA Frame Manager
71−QMan = DPAA Queue Manager
72−BMan = DPAA Buffers Manager
73−QMI = QMan interface in FMan
74−BMI = BMan interface in FMan
75−FMan SP = FMan Storage Profiles
76−MURAM = Multi-user RAM in FMan
77−FQ = QMan Frame Queue
78−Rx Dfl FQ = default reception FQ
79−Rx Err FQ = Rx error frames FQ
80−Tx Cnf FQ = Tx confirmation FQs
81−Tx FQs = transmission frame queues
82−dtsec = datapath three speed Ethernet controller (10/100/1000 Mbps)
83−tgec = ten gigabit Ethernet controller (10 Gbps)
84−memac = multirate Ethernet MAC (10/100/1000/10000)
72+
73+=============== ===========================================================
74+DPAA Data Path Acceleration Architecture
75+FMan DPAA Frame Manager
76+QMan DPAA Queue Manager
77+BMan DPAA Buffers Manager
78+QMI QMan interface in FMan
79+BMI BMan interface in FMan
80+FMan SP FMan Storage Profiles
81+MURAM Multi-user RAM in FMan
82+FQ QMan Frame Queue
83+Rx Dfl FQ default reception FQ
84+Rx Err FQ Rx error frames FQ
85+Tx Cnf FQ Tx confirmation FQs
86+Tx FQs transmission frame queues
87+dtsec datapath three speed Ethernet controller (10/100/1000 Mbps)
88+tgec ten gigabit Ethernet controller (10 Gbps)
89+memac multirate Ethernet MAC (10/100/1000/10000)
90+=============== ===========================================================
8591
8692 DPAA Ethernet Supported SoCs
8793 ============================
8894
8995 The DPAA drivers enable the Ethernet controllers present on the following SoCs:
9096
91−# PPC
92−P1023
93−P2041
94−P3041
95−P4080
96−P5020
97−P5040
98−T1023
99−T1024
100−T1040
101−T1042
102−T2080
103−T4240
104−B4860
105−
106−# ARM
107−LS1043A
108−LS1046A
97+PPC
98+- P1023
99+- P2041
100+- P3041
101+- P4080
102+- P5020
103+- P5040
104+- T1023
105+- T1024
106+- T1040
107+- T1042
108+- T2080
109+- T4240
110+- B4860
111+
112+ARM
113+- LS1043A
114+- LS1046A
109115
110116 Configuring DPAA Ethernet in your kernel
111117 ========================================
112118
113−To enable the DPAA Ethernet driver, the following Kconfig options are required:
119+To enable the DPAA Ethernet driver, the following Kconfig options are required::
114120
115−# common for arch/arm64 and arch/powerpc platforms
116−CONFIG_FSL_DPAA=y
117−CONFIG_FSL_FMAN=y
118−CONFIG_FSL_DPAA_ETH=y
119−CONFIG_FSL_XGMAC_MDIO=y
121+ # common for arch/arm64 and arch/powerpc platforms
122+ CONFIG_FSL_DPAA=y
123+ CONFIG_FSL_FMAN=y
124+ CONFIG_FSL_DPAA_ETH=y
125+ CONFIG_FSL_XGMAC_MDIO=y
120126
121−# for arch/powerpc only
122−CONFIG_FSL_PAMU=y
127+ # for arch/powerpc only
128+ CONFIG_FSL_PAMU=y
123129
124−# common options needed for the PHYs used on the RDBs
125−CONFIG_VITESSE_PHY=y
126−CONFIG_REALTEK_PHY=y
127−CONFIG_AQUANTIA_PHY=y
130+ # common options needed for the PHYs used on the RDBs
131+ CONFIG_VITESSE_PHY=y
132+ CONFIG_REALTEK_PHY=y
133+ CONFIG_AQUANTIA_PHY=y
128134
129135 DPAA Ethernet Frame Processing
130136 ==============================
@@ -167,7 +173,9 @@ classes as follows: · 36 unmodified lines
167173 * priorities 8 to 11 - traffic class 2 (medium-high priority)
168174 * priorities 12 to 15 - traffic class 3 (high priority)
169175
170−tc qdisc add dev <int> root handle 1: \
176+::
177+
178+ tc qdisc add dev <int> root handle 1: \
171179 mqprio num_tc 4 map 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 hw 1
172180
173181 DPAA IRQ Affinity and Receive Side Scaling
@@ -201,11 +209,11 @@ of these frame queues will arrive at the same portal and will always · 27 unmodified lines
201209 be processed by the same CPU. This ensures intra-flow order preservation
202210 and workload distribution for multiple traffic flows.
203211
204−RSS can be turned off for a certain interface using ethtool, i.e.
212+RSS can be turned off for a certain interface using ethtool, i.e.::
205213
206214 # ethtool -N fm1-mac9 rx-flow-hash tcp4 ""
207215
208−To turn it back on, one needs to set rx-flow-hash for tcp4/6 or udp4/6:
216+To turn it back on, one needs to set rx-flow-hash for tcp4/6 or udp4/6::
209217
210218 # ethtool -N fm1-mac9 rx-flow-hash udp4 sfdn
211219
@@ -216,7 +224,7 @@ going to control the rx-flow-hashing for all protocols on that interface. · 4 unmodified lines
216224 Besides using the FMan Keygen computed hash for spreading traffic on the
217225 128 Rx FQs, the DPAA Ethernet driver also sets the skb hash value when
218226 the NETIF_F_RXHASH feature is on (active by default). This can be turned
219−on or off through ethtool, i.e.:
227+on or off through ethtool, i.e.::
220228
221229 # ethtool -K fm1-mac9 rx-hashing off
222230 # ethtool -k fm1-mac9 | grep hash
@@ -246,6 +254,7 @@ The following statistics are exported for each interface through ethtool: · 23 unmodified lines
246254 - Rx error count per CPU
247255 - Rx error count per type
248256 - congestion related statistics:
257+
249258 - congestion status
250259 - time spent in congestion
251260 - number of time the device entered congestion
@@ -254,7 +263,7 @@ The following statistics are exported for each interface through ethtool: · 2 unmodified lines
254263 The driver also exports the following information in sysfs:
255264
256265 - the FQ IDs for each FQ type
257− /sys/devices/platform/soc/<addr>.fman/<addr>.ethernet/dpaa-ethernet.<id>/net/fm<nr>-mac<nr>/fqids
266+ /sys/devices/platform/soc/<addr>.fman/<addr>.ethernet/dpaa-ethernet.<id>/net/fm<nr>-mac<nr>/fqids
258267
259268 - the ID of the buffer pool in use
260− /sys/devices/platform/soc/<addr>.fman/<addr>.ethernet/dpaa-ethernet.<id>/net/fm<nr>-mac<nr>/bpids
269+ /sys/devices/platform/soc/<addr>.fman/<addr>.ethernet/dpaa-ethernet.<id>/net/fm<nr>-mac<nr>/bpids
Documentation/networking/device_drivers/freescale/gianfar.rstrenamed from Documentation/networking/device_drivers/freescale/gianfar.txt+15−6
@@ -1,10 +1,15 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+===========================
14 The Gianfar Ethernet Driver
5+===========================
26
3−Author: Andy Fleming <afleming@freescale.com>
4−Updated: 2005-07-28
7+:Author: Andy Fleming <afleming@freescale.com>
8+:Updated: 2005-07-28
59
610
7−CHECKSUM OFFLOADING
11+Checksum Offloading
12+===================
813
914 The eTSEC controller (first included in parts from late 2005 like
1015 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 · 4 unmodified lines
1520 and TX.
1621
1722 VLAN
23+====
1824
1925 In order to use VLAN, please consult Linux documentation on
2026 configuring VLANs. The gianfar driver supports hardware insertion and
2127 extraction of VLAN headers, but not filtering. Filtering will be
2228 done by the kernel.
2329
24−MULTICASTING
30+Multicasting
31+============
2532
2633 The gianfar driver supports using the group hash table on the
2734 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 · 1 unmodified line
2936 before the hash tables. See Linux documentation on how to join
3037 multicast groups.
3138
32−PADDING
39+Padding
40+=======
3341
3442 The gianfar driver supports padding received frames with 2 bytes
3543 to align the IP header to a 16-byte boundary, when supported by
3644 hardware.
3745
38−ETHTOOL
46+Ethtool
47+=======
3948
4049 The gianfar driver supports the use of ethtool for many
4150 configuration options. You must run ethtool only on currently
Documentation/networking/device_drivers/index.rst+24−0
@@ -27,6 +27,30 @@ Contents: · 26 unmodified lines
2727 netronome/nfp
2828 pensando/ionic
2929 stmicro/stmmac
30+ 3com/3c509
31+ 3com/vortex
32+ amazon/ena
33+ aquantia/atlantic
34+ chelsio/cxgb
35+ cirrus/cs89x0
36+ davicom/dm9000
37+ dec/de4x5
38+ dec/dmfe
39+ dlink/dl2k
40+ freescale/dpaa
41+ freescale/gianfar
42+ intel/ipw2100
43+ intel/ipw2200
44+ microsoft/netvsc
45+ neterion/s2io
46+ neterion/vxge
47+ qualcomm/rmnet
48+ sb1000
49+ smsc/smc9
50+ ti/cpsw_switchdev
51+ ti/cpsw
52+ ti/tlan
53+ toshiba/spider_net
3054
3155 .. only:: subproject and html
3256
Documentation/networking/device_drivers/intel/e100.rst+1−1
@@ -33,7 +33,7 @@ The following features are now available in supported kernels: · 32 unmodified lines
3333 - SNMP
3434
3535 Channel Bonding documentation can be found in the Linux kernel source:
36−/Documentation/networking/bonding.txt
36+/Documentation/networking/bonding.rst
3737
3838
3939 Identifying Your Adapter
Documentation/networking/device_drivers/intel/ipw2100.rstrenamed from Documentation/networking/device_drivers/intel/ipw2100.txt+135−105
@@ -1,31 +1,37 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+.. include:: <isonum.txt>
13
2−Intel(R) PRO/Wireless 2100 Driver for Linux in support of:
4+===========================================
5+Intel(R) PRO/Wireless 2100 Driver for Linux
6+===========================================
37
4−Intel(R) PRO/Wireless 2100 Network Connection
8+Support for:
59
6−Copyright (C) 2003-2006, Intel Corporation
10+- Intel(R) PRO/Wireless 2100 Network Connection
11+
12+Copyright |copy| 2003-2006, Intel Corporation
713
814 README.ipw2100
915
10−Version: git-1.1.5
11−Date : January 25, 2006
16+:Version: git-1.1.5
17+:Date: January 25, 2006
1218
13−Index
14−-----------------------------------------------
15−0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
16−1. Introduction
17−2. Release git-1.1.5 Current Features
18−3. Command Line Parameters
19−4. Sysfs Helper Files
20−5. Radio Kill Switch
21−6. Dynamic Firmware
22−7. Power Management
23−8. Support
24−9. License
19+.. Index
20+
21+ 0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
22+ 1. Introduction
23+ 2. Release git-1.1.5 Current Features
24+ 3. Command Line Parameters
25+ 4. Sysfs Helper Files
26+ 5. Radio Kill Switch
27+ 6. Dynamic Firmware
28+ 7. Power Management
29+ 8. Support
30+ 9. License
2531
2632
27−0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
28−-----------------------------------------------
33+0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
34+=================================================
2935
3036 Important Notice FOR ALL USERS OR DISTRIBUTORS!!!!
3137
@@ -75,10 +81,10 @@ obtain a tested driver from Intel Customer Support at: · 43 unmodified lines
7581 http://www.intel.com/support/wireless/sb/CS-006408.htm
7682
7783 1. Introduction
78−-----------------------------------------------
84+===============
7985
80−This document provides a brief overview of the features supported by the
81−IPW2100 driver project. The main project website, where the latest
86+This document provides a brief overview of the features supported by the
87+IPW2100 driver project. The main project website, where the latest
8288 development version of the driver can be found, is:
8389
8490 http://ipw2100.sourceforge.net
@@ -89,10 +95,11 @@ for the driver project. · 4 unmodified lines
8995
9096
9197 2. Release git-1.1.5 Current Supported Features
92−-----------------------------------------------
98+===============================================
99+
93100 - Managed (BSS) and Ad-Hoc (IBSS)
94101 - WEP (shared key and open)
95−- Wireless Tools support
102+- Wireless Tools support
96103 - 802.1x (tested with XSupplicant 1.0.1)
97104
98105 Enabled (but not supported) features:
@@ -105,11 +112,11 @@ performed on a given feature. · 6 unmodified lines
105112
106113
107114 3. Command Line Parameters
108−-----------------------------------------------
115+==========================
109116
110117 If the driver is built as a module, the following optional parameters are used
111118 by entering them on the command line with the modprobe command using this
112−syntax:
119+syntax::
113120
114121 modprobe ipw2100 [<option>=<VAL1><,VAL2>...]
115122
@@ -119,61 +126,76 @@ For example, to disable the radio on driver loading, enter: · 3 unmodified lines
119126
120127 The ipw2100 driver supports the following module parameters:
121128
122−Name Value Example:
123−debug 0x0-0xffffffff debug=1024
124−mode 0,1,2 mode=1 /* AdHoc */
125−channel int channel=3 /* Only valid in AdHoc or Monitor */
126−associate boolean associate=0 /* Do NOT auto associate */
127−disable boolean disable=1 /* Do not power the HW */
129+========= ============== ============ ==============================
130+Name Value Example Meaning
131+========= ============== ============ ==============================
132+debug 0x0-0xffffffff debug=1024 Debug level set to 1024
133+mode 0,1,2 mode=1 AdHoc
134+channel int channel=3 Only valid in AdHoc or Monitor
135+associate boolean associate=0 Do NOT auto associate
136+disable boolean disable=1 Do not power the HW
137+========= ============== ============ ==============================
128138
129139
130140 4. Sysfs Helper Files
131−---------------------------
132−-----------------------------------------------
141+=====================
133142
134−There are several ways to control the behavior of the driver. Many of the
143+There are several ways to control the behavior of the driver. Many of the
135144 general capabilities are exposed through the Wireless Tools (iwconfig). There
136145 are a few capabilities that are exposed through entries in the Linux Sysfs.
137146
138147
139−----- Driver Level ------
148+**Driver Level**
149+
140150 For the driver level files, look in /sys/bus/pci/drivers/ipw2100/
141151
142− debug_level
143−
144− This controls the same global as the 'debug' module parameter. For
145− information on the various debugging levels available, run the 'dvals'
152+ debug_level
153+ This controls the same global as the 'debug' module parameter. For
154+ information on the various debugging levels available, run the 'dvals'
146155 script found in the driver source directory.
147156
148− NOTE: 'debug_level' is only enabled if CONFIG_IPW2100_DEBUG is turn
149− on.
157+ .. note::
158+
159+ 'debug_level' is only enabled if CONFIG_IPW2100_DEBUG is turn on.
160+
161+**Device Level**
162+
163+For the device level files look in::
150164
151−----- Device Level ------
152−For the device level files look in
153−
154165 /sys/bus/pci/drivers/ipw2100/{PCI-ID}/
155166
156−For example:
167+For example::
168+
157169 /sys/bus/pci/drivers/ipw2100/0000:02:01.0
158170
159171 For the device level files, see /sys/bus/pci/drivers/ipw2100:
160172
161173 rf_kill
162− read -
163− 0 = RF kill not enabled (radio on)
164− 1 = SW based RF kill active (radio off)
165− 2 = HW based RF kill active (radio off)
166− 3 = Both HW and SW RF kill active (radio off)
167− write -
168− 0 = If SW based RF kill active, turn the radio back on
169− 1 = If radio is on, activate SW based RF kill
174+ read
175+
176+ == =========================================
177+ 0 RF kill not enabled (radio on)
178+ 1 SW based RF kill active (radio off)
179+ 2 HW based RF kill active (radio off)
180+ 3 Both HW and SW RF kill active (radio off)
181+ == =========================================
182+
183+ write
184+
185+ == ==================================================
186+ 0 If SW based RF kill active, turn the radio back on
187+ 1 If radio is on, activate SW based RF kill
188+ == ==================================================
170189
171− NOTE: If you enable the SW based RF kill and then toggle the HW
172− based RF kill from ON -> OFF -> ON, the radio will NOT come back on
190+ .. note::
191+
192+ If you enable the SW based RF kill and then toggle the HW
193+ based RF kill from ON -> OFF -> ON, the radio will NOT come back on
173194
174195
175196 5. Radio Kill Switch
176−-----------------------------------------------
197+====================
198+
177199 Most laptops provide the ability for the user to physically disable the radio.
178200 Some vendors have implemented this as a physical switch that requires no
179201 software to turn the radio off and on. On other laptops, however, the switch
@@ -186,9 +208,10 @@ on your system. · 6 unmodified lines
186208
187209
188210 6. Dynamic Firmware
189−-----------------------------------------------
190−As the firmware is licensed under a restricted use license, it can not be
191−included within the kernel sources. To enable the IPW2100 you will need a
211+===================
212+
213+As the firmware is licensed under a restricted use license, it can not be
214+included within the kernel sources. To enable the IPW2100 you will need a
192215 firmware image to load into the wireless NIC's processors.
193216
194217 You can obtain these images from <http://ipw2100.sf.net/firmware.php>.
@@ -197,52 +220,57 @@ See INSTALL for instructions on installing the firmware. · 2 unmodified lines
197220
198221
199222 7. Power Management
200−-----------------------------------------------
201−The IPW2100 supports the configuration of the Power Save Protocol
202−through a private wireless extension interface. The IPW2100 supports
223+===================
224+
225+The IPW2100 supports the configuration of the Power Save Protocol
226+through a private wireless extension interface. The IPW2100 supports
203227 the following different modes:
204228
229+ === ===========================================================
205230 off No power management. Radio is always on.
206231 on Automatic power management
207− 1-5 Different levels of power management. The higher the
208− number the greater the power savings, but with an impact to
209− packet latencies.
210−
211−Power management works by powering down the radio after a certain
212−interval of time has passed where no packets are passed through the
213−radio. Once powered down, the radio remains in that state for a given
214−period of time. For higher power savings, the interval between last
232+ 1-5 Different levels of power management. The higher the
233+ number the greater the power savings, but with an impact to
234+ packet latencies.
235+ === ===========================================================
236+
237+Power management works by powering down the radio after a certain
238+interval of time has passed where no packets are passed through the
239+radio. Once powered down, the radio remains in that state for a given
240+period of time. For higher power savings, the interval between last
215241 packet processed to sleep is shorter and the sleep period is longer.
216242
217−When the radio is asleep, the access point sending data to the station
218−must buffer packets at the AP until the station wakes up and requests
219−any buffered packets. If you have an AP that does not correctly support
220−the PSP protocol you may experience packet loss or very poor performance
221−while power management is enabled. If this is the case, you will need
222−to try and find a firmware update for your AP, or disable power
223−management (via `iwconfig eth1 power off`)
243+When the radio is asleep, the access point sending data to the station
244+must buffer packets at the AP until the station wakes up and requests
245+any buffered packets. If you have an AP that does not correctly support
246+the PSP protocol you may experience packet loss or very poor performance
247+while power management is enabled. If this is the case, you will need
248+to try and find a firmware update for your AP, or disable power
249+management (via ``iwconfig eth1 power off``)
224250
225−To configure the power level on the IPW2100 you use a combination of
226−iwconfig and iwpriv. iwconfig is used to turn power management on, off,
251+To configure the power level on the IPW2100 you use a combination of
252+iwconfig and iwpriv. iwconfig is used to turn power management on, off,
227253 and set it to auto.
228254
255+ ========================= ====================================
229256 iwconfig eth1 power off Disables radio power down
230− iwconfig eth1 power on Enables radio power management to
257+ iwconfig eth1 power on Enables radio power management to
231258 last set level (defaults to AUTO)
232− iwpriv eth1 set_power 0 Sets power level to AUTO and enables
233− power management if not previously
259+ iwpriv eth1 set_power 0 Sets power level to AUTO and enables
260+ power management if not previously
234261 enabled.
235− iwpriv eth1 set_power 1-5 Set the power level as specified,
236− enabling power management if not
262+ iwpriv eth1 set_power 1-5 Set the power level as specified,
263+ enabling power management if not
237264 previously enabled.
265+ ========================= ====================================
266+
267+You can view the current power level setting via::
238268
239−You can view the current power level setting via:
240−
241269 iwpriv eth1 get_power
242270
243271 It will return the current period or timeout that is configured as a string
244272 in the form of xxxx/yyyy (z) where xxxx is the timeout interval (amount of
245−time after packet processing), yyyy is the period to sleep (amount of time to
273+time after packet processing), yyyy is the period to sleep (amount of time to
246274 wait before powering the radio and querying the access point for buffered
247275 packets), and z is the 'power level'. If power management is turned off the
248276 xxxx/yyyy will be replaced with 'off' -- the level reported will be the active
@@ -250,44 +278,46 @@ level if `iwconfig eth1 power on` is invoked. · 1 unmodified line
250278
251279
252280 8. Support
253−-----------------------------------------------
281+==========
254282
255283 For general development information and support,
256284 go to:
257−
285+
258286 http://ipw2100.sf.net/
259287
260−The ipw2100 1.1.0 driver and firmware can be downloaded from:
288+The ipw2100 1.1.0 driver and firmware can be downloaded from:
261289
262290 http://support.intel.com
263291
264−For installation support on the ipw2100 1.1.0 driver on Linux kernels
265−2.6.8 or greater, email support is available from:
292+For installation support on the ipw2100 1.1.0 driver on Linux kernels
293+2.6.8 or greater, email support is available from:
266294
267295 http://supportmail.intel.com
268296
269297 9. License
270−-----------------------------------------------
298+==========
271299
272− Copyright(c) 2003 - 2006 Intel Corporation. All rights reserved.
300+ Copyright |copy| 2003 - 2006 Intel Corporation. All rights reserved.
273301
274− This program is free software; you can redistribute it and/or modify it
275− under the terms of the GNU General Public License (version 2) as
302+ This program is free software; you can redistribute it and/or modify it
303+ under the terms of the GNU General Public License (version 2) as
276304 published by the Free Software Foundation.
277−
278− This program is distributed in the hope that it will be useful, but WITHOUT
279− ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
280− FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
305+
306+ This program is distributed in the hope that it will be useful, but WITHOUT
307+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
308+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
281309 more details.
282−
310+
283311 You should have received a copy of the GNU General Public License along with
284− this program; if not, write to the Free Software Foundation, Inc., 59
312+ this program; if not, write to the Free Software Foundation, Inc., 59
285313 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
286−
314+
287315 The full GNU General Public License is included in this distribution in the
288316 file called LICENSE.
289−
317+
290318 License Contact Information:
319+
291320 James P. Ketrenos <ipw2100-admin@linux.intel.com>
321+
292322 Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
293323
Documentation/networking/device_drivers/intel/ipw2200.rstrenamed from Documentation/networking/device_drivers/intel/ipw2200.txt+234−180
@@ -1,8 +1,15 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+.. include:: <isonum.txt>
13
2−Intel(R) PRO/Wireless 2915ABG Driver for Linux in support of:
4+==============================================
5+Intel(R) PRO/Wireless 2915ABG Driver for Linux
6+==============================================
37
4−Intel(R) PRO/Wireless 2200BG Network Connection
5−Intel(R) PRO/Wireless 2915ABG Network Connection
8+
9+Support for:
10+
11+- Intel(R) PRO/Wireless 2200BG Network Connection
12+- Intel(R) PRO/Wireless 2915ABG Network Connection
613
714 Note: The Intel(R) PRO/Wireless 2915ABG Driver for Linux and Intel(R)
815 PRO/Wireless 2200BG Driver for Linux is a unified driver that works on
@@ -10,37 +17,37 @@ both hardware adapters listed above. In this document the Intel(R) · 1 unmodified line
1017 PRO/Wireless 2915ABG Driver for Linux will be used to reference the
1118 unified driver.
1219
13−Copyright (C) 2004-2006, Intel Corporation
20+Copyright |copy| 2004-2006, Intel Corporation
1421
1522 README.ipw2200
1623
17−Version: 1.1.2
18−Date : March 30, 2006
24+:Version: 1.1.2
25+:Date: March 30, 2006
1926
2027
21−Index
22−-----------------------------------------------
23−0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
24−1. Introduction
25−1.1. Overview of features
26−1.2. Module parameters
27−1.3. Wireless Extension Private Methods
28−1.4. Sysfs Helper Files
29−1.5. Supported channels
30−2. Ad-Hoc Networking
31−3. Interacting with Wireless Tools
32−3.1. iwconfig mode
33−3.2. iwconfig sens
34−4. About the Version Numbers
35−5. Firmware installation
36−6. Support
37−7. License
28+.. Index
3829
30+ 0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
31+ 1. Introduction
32+ 1.1. Overview of features
33+ 1.2. Module parameters
34+ 1.3. Wireless Extension Private Methods
35+ 1.4. Sysfs Helper Files
36+ 1.5. Supported channels
37+ 2. Ad-Hoc Networking
38+ 3. Interacting with Wireless Tools
39+ 3.1. iwconfig mode
40+ 3.2. iwconfig sens
41+ 4. About the Version Numbers
42+ 5. Firmware installation
43+ 6. Support
44+ 7. License
3945
40−0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
41−-----------------------------------------------
4246
43−Important Notice FOR ALL USERS OR DISTRIBUTORS!!!!
47+0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
48+=================================================
49+
50+Important Notice FOR ALL USERS OR DISTRIBUTORS!!!!
4451
4552 Intel wireless LAN adapters are engineered, manufactured, tested, and
4653 quality checked to ensure that they meet all necessary local and
@@ -56,7 +63,7 @@ product is granted. Intel's wireless LAN's EEPROM, firmware, and · 9 unmodified lines
5663 software driver are designed to carefully control parameters that affect
5764 radio operation and to ensure electromagnetic compliance (EMC). These
5865 parameters include, without limitation, RF power, spectrum usage,
59−channel scanning, and human exposure.
66+channel scanning, and human exposure.
6067
6168 For these reasons Intel cannot permit any manipulation by third parties
6269 of the software provided in binary format with the wireless WLAN
@@ -70,7 +77,7 @@ no liability, under any theory of liability for any issues associated · 7 unmodified lines
7077 with the modified products, including without limitation, claims under
7178 the warranty and/or issues arising from regulatory non-compliance, and
7279 (iii) Intel will not provide or be required to assist in providing
73−support to any third parties for such modified products.
80+support to any third parties for such modified products.
7481
7582 Note: Many regulatory agencies consider Wireless LAN adapters to be
7683 modules, and accordingly, condition system-level regulatory approval
@@ -78,23 +85,24 @@ upon receipt and review of test data documenting that the antennas and · 1 unmodified line
7885 system configuration do not cause the EMC and radio operation to be
7986 non-compliant.
8087
81−The drivers available for download from SourceForge are provided as a
82−part of a development project. Conformance to local regulatory
83−requirements is the responsibility of the individual developer. As
84−such, if you are interested in deploying or shipping a driver as part of
85−solution intended to be used for purposes other than development, please
88+The drivers available for download from SourceForge are provided as a
89+part of a development project. Conformance to local regulatory
90+requirements is the responsibility of the individual developer. As
91+such, if you are interested in deploying or shipping a driver as part of
92+solution intended to be used for purposes other than development, please
8693 obtain a tested driver from Intel Customer Support at:
8794
8895 http://support.intel.com
8996
9097
91−1. Introduction
92−-----------------------------------------------
93−The following sections attempt to provide a brief introduction to using
98+1. Introduction
99+===============
100+
101+The following sections attempt to provide a brief introduction to using
94102 the Intel(R) PRO/Wireless 2915ABG Driver for Linux.
95103
96−This document is not meant to be a comprehensive manual on
97−understanding or using wireless technologies, but should be sufficient
104+This document is not meant to be a comprehensive manual on
105+understanding or using wireless technologies, but should be sufficient
98106 to get you moving without wires on Linux.
99107
100108 For information on building and installing the driver, see the INSTALL
@@ -102,14 +110,14 @@ file. · 1 unmodified line
102110
103111
104112 1.1. Overview of Features
105−-----------------------------------------------
113+-------------------------
106114 The current release (1.1.2) supports the following features:
107115
108116 + BSS mode (Infrastructure, Managed)
109117 + IBSS mode (Ad-Hoc)
110118 + WEP (OPEN and SHARED KEY mode)
111119 + 802.1x EAP via wpa_supplicant and xsupplicant
112−+ Wireless Extension support
120++ Wireless Extension support
113121 + Full B and G rate support (2200 and 2915)
114122 + Full A rate support (2915 only)
115123 + Transmit power control
@@ -122,102 +130,107 @@ supported: · 6 unmodified lines
122130 + long/short preamble support
123131 + Monitor mode (aka RFMon)
124132
125−The distinction between officially supported and enabled is a reflection
133+The distinction between officially supported and enabled is a reflection
126134 on the amount of validation and interoperability testing that has been
127−performed on a given feature.
135+performed on a given feature.
128136
129137
130138
131139 1.2. Command Line Parameters
132−-----------------------------------------------
140+----------------------------
133141
134142 Like many modules used in the Linux kernel, the Intel(R) PRO/Wireless
135−2915ABG Driver for Linux allows configuration options to be provided
136−as module parameters. The most common way to specify a module parameter
137−is via the command line.
143+2915ABG Driver for Linux allows configuration options to be provided
144+as module parameters. The most common way to specify a module parameter
145+is via the command line.
138146
139−The general form is:
147+The general form is::
140148
141−% modprobe ipw2200 parameter=value
149+ % modprobe ipw2200 parameter=value
142150
143151 Where the supported parameter are:
144152
145153 associate
146154 Set to 0 to disable the auto scan-and-associate functionality of the
147− driver. If disabled, the driver will not attempt to scan
148− for and associate to a network until it has been configured with
149− one or more properties for the target network, for example configuring
155+ driver. If disabled, the driver will not attempt to scan
156+ for and associate to a network until it has been configured with
157+ one or more properties for the target network, for example configuring
150158 the network SSID. Default is 0 (do not auto-associate)
151−
159+
152160 Example: % modprobe ipw2200 associate=0
153161
154162 auto_create
155− Set to 0 to disable the auto creation of an Ad-Hoc network
156− matching the channel and network name parameters provided.
163+ Set to 0 to disable the auto creation of an Ad-Hoc network
164+ matching the channel and network name parameters provided.
157165 Default is 1.
158166
159167 channel
160168 channel number for association. The normal method for setting
161− the channel would be to use the standard wireless tools
162− (i.e. `iwconfig eth1 channel 10`), but it is useful sometimes
169+ the channel would be to use the standard wireless tools
170+ (i.e. `iwconfig eth1 channel 10`), but it is useful sometimes
163171 to set this while debugging. Channel 0 means 'ANY'
164172
165173 debug
166174 If using a debug build, this is used to control the amount of debug
167175 info is logged. See the 'dvals' and 'load' script for more info on
168− how to use this (the dvals and load scripts are provided as part
169− of the ipw2200 development snapshot releases available from the
176+ how to use this (the dvals and load scripts are provided as part
177+ of the ipw2200 development snapshot releases available from the
170178 SourceForge project at http://ipw2200.sf.net)
171−
179+
172180 led
173181 Can be used to turn on experimental LED code.
174182 0 = Off, 1 = On. Default is 1.
175183
176184 mode
177− Can be used to set the default mode of the adapter.
185+ Can be used to set the default mode of the adapter.
178186 0 = Managed, 1 = Ad-Hoc, 2 = Monitor
179187
180188
181189 1.3. Wireless Extension Private Methods
182−-----------------------------------------------
190+---------------------------------------
183191
184−As an interface designed to handle generic hardware, there are certain
185−capabilities not exposed through the normal Wireless Tool interface. As
186−such, a provision is provided for a driver to declare custom, or
187−private, methods. The Intel(R) PRO/Wireless 2915ABG Driver for Linux
192+As an interface designed to handle generic hardware, there are certain
193+capabilities not exposed through the normal Wireless Tool interface. As
194+such, a provision is provided for a driver to declare custom, or
195+private, methods. The Intel(R) PRO/Wireless 2915ABG Driver for Linux
188196 defines several of these to configure various settings.
189197
190−The general form of using the private wireless methods is:
198+The general form of using the private wireless methods is::
191199
192200 % iwpriv $IFNAME method parameters
193201
194−Where $IFNAME is the interface name the device is registered with
202+Where $IFNAME is the interface name the device is registered with
195203 (typically eth1, customized via one of the various network interface
196204 name managers, such as ifrename)
197205
198206 The supported private methods are:
199207
200208 get_mode
201− Can be used to report out which IEEE mode the driver is
209+ Can be used to report out which IEEE mode the driver is
202210 configured to support. Example:
203−
211+
204212 % iwpriv eth1 get_mode
205213 eth1 get_mode:802.11bg (6)
206214
207215 set_mode
208− Can be used to configure which IEEE mode the driver will
209− support.
216+ Can be used to configure which IEEE mode the driver will
217+ support.
218+
219+ Usage::
220+
221+ % iwpriv eth1 set_mode {mode}
210222
211− Usage:
212− % iwpriv eth1 set_mode {mode}
213223 Where {mode} is a number in the range 1-7:
224+
225+ == =====================
214226 1 802.11a (2915 only)
215227 2 802.11b
216228 3 802.11ab (2915 only)
217− 4 802.11g
229+ 4 802.11g
218230 5 802.11ag (2915 only)
219231 6 802.11bg
220232 7 802.11abg (2915 only)
233+ == =====================
221234
222235 get_preamble
223236 Can be used to report configuration of preamble length.
@@ -225,99 +238,123 @@ The supported private methods are: · 1 unmodified line
225238 set_preamble
226239 Can be used to set the configuration of preamble length:
227240
228− Usage:
229− % iwpriv eth1 set_preamble {mode}
241+ Usage::
242+
243+ % iwpriv eth1 set_preamble {mode}
244+
230245 Where {mode} is one of:
246+
247+ == ========================================
231248 1 Long preamble only
232249 0 Auto (long or short based on connection)
233−
250+ == ========================================
251+
234252
235−1.4. Sysfs Helper Files:
236−-----------------------------------------------
253+1.4. Sysfs Helper Files
254+-----------------------
237255
238−The Linux kernel provides a pseudo file system that can be used to
256+The Linux kernel provides a pseudo file system that can be used to
239257 access various components of the operating system. The Intel(R)
240258 PRO/Wireless 2915ABG Driver for Linux exposes several configuration
241259 parameters through this mechanism.
242260
243−An entry in the sysfs can support reading and/or writing. You can
244−typically query the contents of a sysfs entry through the use of cat,
245−and can set the contents via echo. For example:
261+An entry in the sysfs can support reading and/or writing. You can
262+typically query the contents of a sysfs entry through the use of cat,
263+and can set the contents via echo. For example::
246264
247−% cat /sys/bus/pci/drivers/ipw2200/debug_level
265+ % cat /sys/bus/pci/drivers/ipw2200/debug_level
248266
249−Will report the current debug level of the driver's logging subsystem
267+Will report the current debug level of the driver's logging subsystem
250268 (only available if CONFIG_IPW2200_DEBUG was configured when the driver
251269 was built).
252270
253−You can set the debug level via:
271+You can set the debug level via::
254272
255−% echo $VALUE > /sys/bus/pci/drivers/ipw2200/debug_level
273+ % echo $VALUE > /sys/bus/pci/drivers/ipw2200/debug_level
256274
257−Where $VALUE would be a number in the case of this sysfs entry. The
258−input to sysfs files does not have to be a number. For example, the
259−firmware loader used by hotplug utilizes sysfs entries for transferring
275+Where $VALUE would be a number in the case of this sysfs entry. The
276+input to sysfs files does not have to be a number. For example, the
277+firmware loader used by hotplug utilizes sysfs entries for transferring
260278 the firmware image from user space into the driver.
261279
262−The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries
263−at two levels -- driver level, which apply to all instances of the driver
264−(in the event that there are more than one device installed) and device
280+The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries
281+at two levels -- driver level, which apply to all instances of the driver
282+(in the event that there are more than one device installed) and device
265283 level, which applies only to the single specific instance.
266284
267285
268286 1.4.1 Driver Level Sysfs Helper Files
269−-----------------------------------------------
287+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
270288
271289 For the driver level files, look in /sys/bus/pci/drivers/ipw2200/
272290
273− debug_level
274−
291+ debug_level
275292 This controls the same global as the 'debug' module parameter
276293
277294
278295
279296 1.4.2 Device Level Sysfs Helper Files
280−-----------------------------------------------
297+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
298+
299+For the device level files, look in::
281300
282−For the device level files, look in
283−
284301 /sys/bus/pci/drivers/ipw2200/{PCI-ID}/
285302
286−For example:
303+For example:::
304+
287305 /sys/bus/pci/drivers/ipw2200/0000:02:01.0
288306
289307 For the device level files, see /sys/bus/pci/drivers/ipw2200:
290308
291309 rf_kill
292− read -
293− 0 = RF kill not enabled (radio on)
294− 1 = SW based RF kill active (radio off)
295− 2 = HW based RF kill active (radio off)
296− 3 = Both HW and SW RF kill active (radio off)
310+ read -
311+
312+ == =========================================
313+ 0 RF kill not enabled (radio on)
314+ 1 SW based RF kill active (radio off)
315+ 2 HW based RF kill active (radio off)
316+ 3 Both HW and SW RF kill active (radio off)
317+ == =========================================
318+
297319 write -
298− 0 = If SW based RF kill active, turn the radio back on
299− 1 = If radio is on, activate SW based RF kill
300320
301− NOTE: If you enable the SW based RF kill and then toggle the HW
302− based RF kill from ON -> OFF -> ON, the radio will NOT come back on
303−
304− ucode
321+ == ==================================================
322+ 0 If SW based RF kill active, turn the radio back on
323+ 1 If radio is on, activate SW based RF kill
324+ == ==================================================
325+
326+ .. note::
327+
328+ If you enable the SW based RF kill and then toggle the HW
329+ based RF kill from ON -> OFF -> ON, the radio will NOT come back on
330+
331+ ucode
305332 read-only access to the ucode version number
306333
307334 led
308335 read -
309− 0 = LED code disabled
310− 1 = LED code enabled
336+
337+ == =================
338+ 0 LED code disabled
339+ 1 LED code enabled
340+ == =================
341+
311342 write -
312− 0 = Disable LED code
313− 1 = Enable LED code
314343
315− NOTE: The LED code has been reported to hang some systems when
316− running ifconfig and is therefore disabled by default.
344+ == ================
345+ 0 Disable LED code
346+ 1 Enable LED code
347+ == ================
348+
349+
350+ .. note::
351+
352+ The LED code has been reported to hang some systems when
353+ running ifconfig and is therefore disabled by default.
317354
318355
319356 1.5. Supported channels
320−-----------------------------------------------
357+-----------------------
321358
322359 Upon loading the Intel(R) PRO/Wireless 2915ABG Driver for Linux, a
323360 message stating the detected geography code and the number of 802.11
@@ -326,44 +363,59 @@ channels supported by the card will be displayed in the log. · 2 unmodified lines
326363 The geography code corresponds to a regulatory domain as shown in the
327364 table below.
328365
329− Supported channels
330−Code Geography 802.11bg 802.11a
331−
332−--- Restricted 11 0
333−ZZF Custom US/Canada 11 8
334−ZZD Rest of World 13 0
335−ZZA Custom USA & Europe & High 11 13
336−ZZB Custom NA & Europe 11 13
337−ZZC Custom Japan 11 4
338−ZZM Custom 11 0
339−ZZE Europe 13 19
340−ZZJ Custom Japan 14 4
341−ZZR Rest of World 14 0
342−ZZH High Band 13 4
343−ZZG Custom Europe 13 4
344−ZZK Europe 13 24
345−ZZL Europe 11 13
346−
347−
348−2. Ad-Hoc Networking
349−-----------------------------------------------
350−
351−When using a device in an Ad-Hoc network, it is useful to understand the
352−sequence and requirements for the driver to be able to create, join, or
366+ +------+----------------------------+--------------------+
367+ | | | Supported channels |
368+ | Code | Geography +----------+---------+
369+ | | | 802.11bg | 802.11a |
370+ +======+============================+==========+=========+
371+ | --- | Restricted | 11 | 0 |
372+ +------+----------------------------+----------+---------+
373+ | ZZF | Custom US/Canada | 11 | 8 |
374+ +------+----------------------------+----------+---------+
375+ | ZZD | Rest of World | 13 | 0 |
376+ +------+----------------------------+----------+---------+
377+ | ZZA | Custom USA & Europe & High | 11 | 13 |
378+ +------+----------------------------+----------+---------+
379+ | ZZB | Custom NA & Europe | 11 | 13 |
380+ +------+----------------------------+----------+---------+
381+ | ZZC | Custom Japan | 11 | 4 |
382+ +------+----------------------------+----------+---------+
383+ | ZZM | Custom | 11 | 0 |
384+ +------+----------------------------+----------+---------+
385+ | ZZE | Europe | 13 | 19 |
386+ +------+----------------------------+----------+---------+
387+ | ZZJ | Custom Japan | 14 | 4 |
388+ +------+----------------------------+----------+---------+
389+ | ZZR | Rest of World | 14 | 0 |
390+ +------+----------------------------+----------+---------+
391+ | ZZH | High Band | 13 | 4 |
392+ +------+----------------------------+----------+---------+
393+ | ZZG | Custom Europe | 13 | 4 |
394+ +------+----------------------------+----------+---------+
395+ | ZZK | Europe | 13 | 24 |
396+ +------+----------------------------+----------+---------+
397+ | ZZL | Europe | 11 | 13 |
398+ +------+----------------------------+----------+---------+
399+
400+2. Ad-Hoc Networking
401+=====================
402+
403+When using a device in an Ad-Hoc network, it is useful to understand the
404+sequence and requirements for the driver to be able to create, join, or
353405 merge networks.
354406
355−The following attempts to provide enough information so that you can
356−have a consistent experience while using the driver as a member of an
407+The following attempts to provide enough information so that you can
408+have a consistent experience while using the driver as a member of an
357409 Ad-Hoc network.
358410
359411 2.1. Joining an Ad-Hoc Network
360−-----------------------------------------------
412+------------------------------
361413
362−The easiest way to get onto an Ad-Hoc network is to join one that
414+The easiest way to get onto an Ad-Hoc network is to join one that
363415 already exists.
364416
365417 2.2. Creating an Ad-Hoc Network
366−-----------------------------------------------
418+-------------------------------
367419
368420 An Ad-Hoc networks is created using the syntax of the Wireless tool.
369421
@@ -371,21 +423,21 @@ For Example: · 1 unmodified line
371423 iwconfig eth1 mode ad-hoc essid testing channel 2
372424
373425 2.3. Merging Ad-Hoc Networks
374−-----------------------------------------------
426+----------------------------
375427
376428
377−3. Interaction with Wireless Tools
378−-----------------------------------------------
429+3. Interaction with Wireless Tools
430+==================================
379431
380432 3.1 iwconfig mode
381−-----------------------------------------------
433+-----------------
382434
383435 When configuring the mode of the adapter, all run-time configured parameters
384436 are reset to the value used when the module was loaded. This includes
385437 channels, rates, ESSID, etc.
386438
387439 3.2 iwconfig sens
388−-----------------------------------------------
440+-----------------
389441
390442 The 'iwconfig ethX sens XX' command will not set the signal sensitivity
391443 threshold, as described in iwconfig documentation, but rather the number
@@ -394,35 +446,35 @@ to another access point. At the same time, it will set the disassociation · 2 unmodified lines
394446 threshold to 3 times the given value.
395447
396448
397−4. About the Version Numbers
398−-----------------------------------------------
449+4. About the Version Numbers
450+=============================
399451
400−Due to the nature of open source development projects, there are
401−frequently changes being incorporated that have not gone through
402−a complete validation process. These changes are incorporated into
452+Due to the nature of open source development projects, there are
453+frequently changes being incorporated that have not gone through
454+a complete validation process. These changes are incorporated into
403455 development snapshot releases.
404456
405−Releases are numbered with a three level scheme:
457+Releases are numbered with a three level scheme:
406458
407459 major.minor.development
408460
409461 Any version where the 'development' portion is 0 (for example
410−1.0.0, 1.1.0, etc.) indicates a stable version that will be made
462+1.0.0, 1.1.0, etc.) indicates a stable version that will be made
411463 available for kernel inclusion.
412464
413465 Any version where the 'development' portion is not a 0 (for
414466 example 1.0.1, 1.1.5, etc.) indicates a development version that is
415−being made available for testing and cutting edge users. The stability
467+being made available for testing and cutting edge users. The stability
416468 and functionality of the development releases are not know. We make
417469 efforts to try and keep all snapshots reasonably stable, but due to the
418−frequency of their release, and the desire to get those releases
470+frequency of their release, and the desire to get those releases
419471 available as quickly as possible, unknown anomalies should be expected.
420472
421473 The major version number will be incremented when significant changes
422474 are made to the driver. Currently, there are no major changes planned.
423475
424−5. Firmware installation
425−----------------------------------------------
476+5. Firmware installation
477+========================
426478
427479 The driver requires a firmware image, download it and extract the
428480 files under /lib/firmware (or wherever your hotplug's firmware.agent
@@ -433,40 +485,42 @@ The firmware can be downloaded from the following URL: · 4 unmodified lines
433485 http://ipw2200.sf.net/
434486
435487
436−6. Support
437−-----------------------------------------------
488+6. Support
489+==========
438490
439−For direct support of the 1.0.0 version, you can contact
491+For direct support of the 1.0.0 version, you can contact
440492 http://supportmail.intel.com, or you can use the open source project
441493 support.
442494
443495 For general information and support, go to:
444−
496+
445497 http://ipw2200.sf.net/
446498
447499
448−7. License
449−-----------------------------------------------
500+7. License
501+==========
450502
451− Copyright(c) 2003 - 2006 Intel Corporation. All rights reserved.
503+ Copyright |copy| 2003 - 2006 Intel Corporation. All rights reserved.
452504
453− This program is free software; you can redistribute it and/or modify it
454− under the terms of the GNU General Public License version 2 as
505+ This program is free software; you can redistribute it and/or modify it
506+ under the terms of the GNU General Public License version 2 as
455507 published by the Free Software Foundation.
456−
457− This program is distributed in the hope that it will be useful, but WITHOUT
458− ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
459− FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
508+
509+ This program is distributed in the hope that it will be useful, but WITHOUT
510+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
511+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
460512 more details.
461−
513+
462514 You should have received a copy of the GNU General Public License along with
463− this program; if not, write to the Free Software Foundation, Inc., 59
515+ this program; if not, write to the Free Software Foundation, Inc., 59
464516 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
465−
517+
466518 The full GNU General Public License is included in this distribution in the
467519 file called LICENSE.
468−
520+
469521 Contact Information:
522+
470523 James P. Ketrenos <ipw2100-admin@linux.intel.com>
524+
471525 Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
472526
Documentation/networking/device_drivers/intel/ixgb.rst+1−1
@@ -37,7 +37,7 @@ The following features are available in this kernel: · 36 unmodified lines
3737 - SNMP
3838
3939 Channel Bonding documentation can be found in the Linux kernel source:
40−/Documentation/networking/bonding.txt
40+/Documentation/networking/bonding.rst
4141
4242 The driver information previously displayed in the /proc filesystem is not
4343 supported in this release. Alternatively, you can use ethtool (version 1.6
Documentation/networking/device_drivers/microsoft/netvsc.rstrenamed from Documentation/networking/device_drivers/microsoft/netvsc.txt+34−23
@@ -1,3 +1,6 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+======================
14 Hyper-V network driver
25 ======================
36
@@ -10,15 +13,15 @@ Windows 10. · 6 unmodified lines
1013 Features
1114 ========
1215
13− Checksum offload
14− ----------------
16+Checksum offload
17+----------------
1518 The netvsc driver supports checksum offload as long as the
1619 Hyper-V host version does. Windows Server 2016 and Azure
1720 support checksum offload for TCP and UDP for both IPv4 and
1821 IPv6. Windows Server 2012 only supports checksum offload for TCP.
1922
20− Receive Side Scaling
21− --------------------
23+Receive Side Scaling
24+--------------------
2225 Hyper-V supports receive side scaling. For TCP & UDP, packets can
2326 be distributed among available queues based on IP address and port
2427 number.
@@ -32,30 +35,37 @@ Features · 7 unmodified lines
3235 hashing. Using L3 hashing is recommended in this case.
3336
3437 For example, for UDP over IPv4 on eth0:
35− To include UDP port numbers in hashing:
36− ethtool -N eth0 rx-flow-hash udp4 sdfn
37− To exclude UDP port numbers in hashing:
38− ethtool -N eth0 rx-flow-hash udp4 sd
39− To show UDP hash level:
40− ethtool -n eth0 rx-flow-hash udp4
41−
42− Generic Receive Offload, aka GRO
43− --------------------------------
38+
39+ To include UDP port numbers in hashing::
40+
41+ ethtool -N eth0 rx-flow-hash udp4 sdfn
42+
43+ To exclude UDP port numbers in hashing::
44+
45+ ethtool -N eth0 rx-flow-hash udp4 sd
46+
47+ To show UDP hash level::
48+
49+ ethtool -n eth0 rx-flow-hash udp4
50+
51+Generic Receive Offload, aka GRO
52+--------------------------------
4453 The driver supports GRO and it is enabled by default. GRO coalesces
4554 like packets and significantly reduces CPU usage under heavy Rx
4655 load.
4756
48− Large Receive Offload (LRO), or Receive Side Coalescing (RSC)
49− -------------------------------------------------------------
57+Large Receive Offload (LRO), or Receive Side Coalescing (RSC)
58+-------------------------------------------------------------
5059 The driver supports LRO/RSC in the vSwitch feature. It reduces the per packet
5160 processing overhead by coalescing multiple TCP segments when possible. The
5261 feature is enabled by default on VMs running on Windows Server 2019 and
53− later. It may be changed by ethtool command:
62+ later. It may be changed by ethtool command::
63+
5464 ethtool -K eth0 lro on
5565 ethtool -K eth0 lro off
5666
57− SR-IOV support
58− --------------
67+SR-IOV support
68+--------------
5969 Hyper-V supports SR-IOV as a hardware acceleration option. If SR-IOV
6070 is enabled in both the vSwitch and the guest configuration, then the
6171 Virtual Function (VF) device is passed to the guest as a PCI
@@ -70,8 +80,8 @@ Features · 8 unmodified lines
7080 flow direction is desired, these should be applied directly to the
7181 VF slave device.
7282
73− Receive Buffer
74− --------------
83+Receive Buffer
84+--------------
7585 Packets are received into a receive area which is created when device
7686 is probed. The receive area is broken into MTU sized chunks and each may
7787 contain one or more packets. The number of receive sections may be changed
@@ -83,8 +93,8 @@ Features · 5 unmodified lines
8393 will use slower method to handle very large packets or if the send buffer
8494 area is exhausted.
8595
86− XDP support
87− -----------
96+XDP support
97+-----------
8898 XDP (eXpress Data Path) is a feature that runs eBPF bytecode at the early
8999 stage when packets arrive at a NIC card. The goal is to increase performance
90100 for packet processing, reducing the overhead of SKB allocation and other
@@ -99,7 +109,8 @@ Features · 8 unmodified lines
99109 overwritten by setting of synthetic NIC.
100110
101111 XDP program cannot run with LRO (RSC) enabled, so you need to disable LRO
102− before running XDP:
112+ before running XDP::
113+
103114 ethtool -K eth0 lro off
104115
105116 XDP_REDIRECT action is not yet supported.
Documentation/networking/device_drivers/neterion/s2io.rst+196−0
@@ -0,0 +1,196 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+=========================================================
4+Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver
5+=========================================================
6+
7+Release notes for Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver.
8+
9+.. Contents
10+ - 1. Introduction
11+ - 2. Identifying the adapter/interface
12+ - 3. Features supported
13+ - 4. Command line parameters
14+ - 5. Performance suggestions
15+ - 6. Available Downloads
16+
17+
18+1. Introduction
19+===============
20+This Linux driver supports Neterion's Xframe I PCI-X 1.0 and
21+Xframe II PCI-X 2.0 adapters. It supports several features
22+such as jumbo frames, MSI/MSI-X, checksum offloads, TSO, UFO and so on.
23+See below for complete list of features.
24+
25+All features are supported for both IPv4 and IPv6.
26+
27+2. Identifying the adapter/interface
28+====================================
29+
30+a. Insert the adapter(s) in your system.
31+b. Build and load driver::
32+
33+ # insmod s2io.ko
34+
35+c. View log messages::
36+
37+ # dmesg | tail -40
38+
39+You will see messages similar to::
40+
41+ eth3: Neterion Xframe I 10GbE adapter (rev 3), Version 2.0.9.1, Intr type INTA
42+ eth4: Neterion Xframe II 10GbE adapter (rev 2), Version 2.0.9.1, Intr type INTA
43+ eth4: Device is on 64 bit 133MHz PCIX(M1) bus
44+
45+The above messages identify the adapter type(Xframe I/II), adapter revision,
46+driver version, interface name(eth3, eth4), Interrupt type(INTA, MSI, MSI-X).
47+In case of Xframe II, the PCI/PCI-X bus width and frequency are displayed
48+as well.
49+
50+To associate an interface with a physical adapter use "ethtool -p <ethX>".
51+The corresponding adapter's LED will blink multiple times.
52+
53+3. Features supported
54+=====================
55+a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes,
56+ modifiable using ip command.
57+
58+b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit
59+ and receive, TSO.
60+
61+c. Multi-buffer receive mode. Scattering of packet across multiple
62+ buffers. Currently driver supports 2-buffer mode which yields
63+ significant performance improvement on certain platforms(SGI Altix,
64+ IBM xSeries).
65+
66+d. MSI/MSI-X. Can be enabled on platforms which support this feature
67+ (IA64, Xeon) resulting in noticeable performance improvement(up to 7%
68+ on certain platforms).
69+
70+e. Statistics. Comprehensive MAC-level and software statistics displayed
71+ using "ethtool -S" option.
72+
73+f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings,
74+ with multiple steering options.
75+
76+4. Command line parameters
77+==========================
78+
79+a. tx_fifo_num
80+ Number of transmit queues
81+
82+Valid range: 1-8
83+
84+Default: 1
85+
86+b. rx_ring_num
87+ Number of receive rings
88+
89+Valid range: 1-8
90+
91+Default: 1
92+
93+c. tx_fifo_len
94+ Size of each transmit queue
95+
96+Valid range: Total length of all queues should not exceed 8192
97+
98+Default: 4096
99+
100+d. rx_ring_sz
101+ Size of each receive ring(in 4K blocks)
102+
103+Valid range: Limited by memory on system
104+
105+Default: 30
106+
107+e. intr_type
108+ Specifies interrupt type. Possible values 0(INTA), 2(MSI-X)
109+
110+Valid values: 0, 2
111+
112+Default: 2
113+
114+5. Performance suggestions
115+==========================
116+
117+General:
118+
119+a. Set MTU to maximum(9000 for switch setup, 9600 in back-to-back configuration)
120+b. Set TCP windows size to optimal value.
121+
122+For instance, for MTU=1500 a value of 210K has been observed to result in
123+good performance::
124+
125+ # sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
126+ # sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"
127+
128+For MTU=9000, TCP window size of 10 MB is recommended::
129+
130+ # sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
131+ # sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"
132+
133+Transmit performance:
134+
135+a. By default, the driver respects BIOS settings for PCI bus parameters.
136+ However, you may want to experiment with PCI bus parameters
137+ max-split-transactions(MOST) and MMRBC (use setpci command).
138+
139+ A MOST value of 2 has been found optimal for Opterons and 3 for Itanium.
140+
141+ It could be different for your hardware.
142+
143+ Set MMRBC to 4K**.
144+
145+ For example you can set
146+
147+ For opteron::
148+
149+ #setpci -d 17d5:* 62=1d
150+
151+ For Itanium::
152+
153+ #setpci -d 17d5:* 62=3d
154+
155+ For detailed description of the PCI registers, please see Xframe User Guide.
156+
157+b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this
158+ parameter.
159+
160+c. Turn on TSO(using "ethtool -K")::
161+
162+ # ethtool -K <ethX> tso on
163+
164+Receive performance:
165+
166+a. By default, the driver respects BIOS settings for PCI bus parameters.
167+ However, you may want to set PCI latency timer to 248::
168+
169+ #setpci -d 17d5:* LATENCY_TIMER=f8
170+
171+ For detailed description of the PCI registers, please see Xframe User Guide.
172+
173+b. Use 2-buffer mode. This results in large performance boost on
174+ certain platforms(eg. SGI Altix, IBM xSeries).
175+
176+c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to
177+ set/verify this option.
178+
179+d. Enable NAPI feature(in kernel configuration Device Drivers ---> Network
180+ device support ---> Ethernet (10000 Mbit) ---> S2IO 10Gbe Xframe NIC) to
181+ bring down CPU utilization.
182+
183+.. note::
184+
185+ For AMD opteron platforms with 8131 chipset, MMRBC=1 and MOST=1 are
186+ recommended as safe parameters.
187+
188+For more information, please review the AMD8131 errata at
189+http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/
190+26310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf
191+
192+6. Support
193+==========
194+
195+For further support please contact either your 10GbE Xframe NIC vendor (IBM,
196+HP, SGI etc.)
Documentation/networking/device_drivers/neterion/s2io.txt+0−141
@@ -1,141 +0,0 @@
1−Release notes for Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver.
2−
3−Contents
4−=======
5−- 1. Introduction
6−- 2. Identifying the adapter/interface
7−- 3. Features supported
8−- 4. Command line parameters
9−- 5. Performance suggestions
10−- 6. Available Downloads
11−
12−
13−1. Introduction:
14−This Linux driver supports Neterion's Xframe I PCI-X 1.0 and
15−Xframe II PCI-X 2.0 adapters. It supports several features
16−such as jumbo frames, MSI/MSI-X, checksum offloads, TSO, UFO and so on.
17−See below for complete list of features.
18−All features are supported for both IPv4 and IPv6.
19−
20−2. Identifying the adapter/interface:
21−a. Insert the adapter(s) in your system.
22−b. Build and load driver
23−# insmod s2io.ko
24−c. View log messages
25−# dmesg | tail -40
26−You will see messages similar to:
27−eth3: Neterion Xframe I 10GbE adapter (rev 3), Version 2.0.9.1, Intr type INTA
28−eth4: Neterion Xframe II 10GbE adapter (rev 2), Version 2.0.9.1, Intr type INTA
29−eth4: Device is on 64 bit 133MHz PCIX(M1) bus
30−
31−The above messages identify the adapter type(Xframe I/II), adapter revision,
32−driver version, interface name(eth3, eth4), Interrupt type(INTA, MSI, MSI-X).
33−In case of Xframe II, the PCI/PCI-X bus width and frequency are displayed
34−as well.
35−
36−To associate an interface with a physical adapter use "ethtool -p <ethX>".
37−The corresponding adapter's LED will blink multiple times.
38−
39−3. Features supported:
40−a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes,
41−modifiable using ip command.
42−
43−b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit
44−and receive, TSO.
45−
46−c. Multi-buffer receive mode. Scattering of packet across multiple
47−buffers. Currently driver supports 2-buffer mode which yields
48−significant performance improvement on certain platforms(SGI Altix,
49−IBM xSeries).
50−
51−d. MSI/MSI-X. Can be enabled on platforms which support this feature
52−(IA64, Xeon) resulting in noticeable performance improvement(up to 7%
53−on certain platforms).
54−
55−e. Statistics. Comprehensive MAC-level and software statistics displayed
56−using "ethtool -S" option.
57−
58−f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings,
59−with multiple steering options.
60−
61−4. Command line parameters
62−a. tx_fifo_num
63−Number of transmit queues
64−Valid range: 1-8
65−Default: 1
66−
67−b. rx_ring_num
68−Number of receive rings
69−Valid range: 1-8
70−Default: 1
71−
72−c. tx_fifo_len
73−Size of each transmit queue
74−Valid range: Total length of all queues should not exceed 8192
75−Default: 4096
76−
77−d. rx_ring_sz
78−Size of each receive ring(in 4K blocks)
79−Valid range: Limited by memory on system
80−Default: 30
81−
82−e. intr_type
83−Specifies interrupt type. Possible values 0(INTA), 2(MSI-X)
84−Valid values: 0, 2
85−Default: 2
86−
87−5. Performance suggestions
88−General:
89−a. Set MTU to maximum(9000 for switch setup, 9600 in back-to-back configuration)
90−b. Set TCP windows size to optimal value.
91−For instance, for MTU=1500 a value of 210K has been observed to result in
92−good performance.
93−# sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
94−# sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"
95−For MTU=9000, TCP window size of 10 MB is recommended.
96−# sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
97−# sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"
98−
99−Transmit performance:
100−a. By default, the driver respects BIOS settings for PCI bus parameters.
101−However, you may want to experiment with PCI bus parameters
102−max-split-transactions(MOST) and MMRBC (use setpci command).
103−A MOST value of 2 has been found optimal for Opterons and 3 for Itanium.
104−It could be different for your hardware.
105−Set MMRBC to 4K**.
106−
107−For example you can set
108−For opteron
109−#setpci -d 17d5:* 62=1d
110−For Itanium
111−#setpci -d 17d5:* 62=3d
112−
113−For detailed description of the PCI registers, please see Xframe User Guide.
114−
115−b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this
116−parameter.
117−c. Turn on TSO(using "ethtool -K")
118−# ethtool -K <ethX> tso on
119−
120−Receive performance:
121−a. By default, the driver respects BIOS settings for PCI bus parameters.
122−However, you may want to set PCI latency timer to 248.
123−#setpci -d 17d5:* LATENCY_TIMER=f8
124−For detailed description of the PCI registers, please see Xframe User Guide.
125−b. Use 2-buffer mode. This results in large performance boost on
126−certain platforms(eg. SGI Altix, IBM xSeries).
127−c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to
128−set/verify this option.
129−d. Enable NAPI feature(in kernel configuration Device Drivers ---> Network
130−device support ---> Ethernet (10000 Mbit) ---> S2IO 10Gbe Xframe NIC) to
131−bring down CPU utilization.
132−
133−** For AMD opteron platforms with 8131 chipset, MMRBC=1 and MOST=1 are
134−recommended as safe parameters.
135−For more information, please review the AMD8131 errata at
136−http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/
137−26310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf
138−
139−6. Support
140−For further support please contact either your 10GbE Xframe NIC vendor (IBM,
141−HP, SGI etc.)
Documentation/networking/device_drivers/neterion/vxge.rstrenamed from Documentation/networking/device_drivers/neterion/vxge.txt+41−19
@@ -1,24 +1,30 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+==============================================================================
14 Neterion's (Formerly S2io) X3100 Series 10GbE PCIe Server Adapter Linux driver
25 ==============================================================================
36
4−Contents
5−--------
7+.. Contents
8+
9+ 1) Introduction
10+ 2) Features supported
11+ 3) Configurable driver parameters
12+ 4) Troubleshooting
613
7−1) Introduction
8−2) Features supported
9−3) Configurable driver parameters
10−4) Troubleshooting
14+1. Introduction
15+===============
1116
12−1) Introduction:
13−----------------
1417 This Linux driver supports all Neterion's X3100 series 10 GbE PCIe I/O
1518 Virtualized Server adapters.
19+
1620 The X3100 series supports four modes of operation, configurable via
17−firmware -
18− Single function mode
19− Multi function mode
20− SRIOV mode
21− MRIOV mode
21+firmware:
22+
23+ - Single function mode
24+ - Multi function mode
25+ - SRIOV mode
26+ - MRIOV mode
27+
2228 The functions share a 10GbE link and the pci-e bus, but hardly anything else
2329 inside the ASIC. Features like independent hw reset, statistics, bandwidth/
2430 priority allocation and guarantees, GRO, TSO, interrupt moderation etc are
@@ -26,41 +32,49 @@ supported independently on each function. · 1 unmodified line
2632
2733 (See below for a complete list of features supported for both IPv4 and IPv6)
2834
29−2) Features supported:
30−----------------------
35+2. Features supported
36+=====================
3137
3238 i) Single function mode (up to 17 queues)
3339
3440 ii) Multi function mode (up to 17 functions)
3541
3642 iii) PCI-SIG's I/O Virtualization
43+
3744 - Single Root mode: v1.0 (up to 17 functions)
3845 - Multi-Root mode: v1.0 (up to 17 functions)
3946
4047 iv) Jumbo frames
48+
4149 X3100 Series supports MTU up to 9600 bytes, modifiable using
4250 ip command.
4351
4452 v) Offloads supported: (Enabled by default)
45− Checksum offload (TCP/UDP/IP) on transmit and receive paths
46− TCP Segmentation Offload (TSO) on transmit path
47− Generic Receive Offload (GRO) on receive path
53+
54+ - Checksum offload (TCP/UDP/IP) on transmit and receive paths
55+ - TCP Segmentation Offload (TSO) on transmit path
56+ - Generic Receive Offload (GRO) on receive path
4857
4958 vi) MSI-X: (Enabled by default)
59+
5060 Resulting in noticeable performance improvement (up to 7% on certain
5161 platforms).
5262
5363 vii) NAPI: (Enabled by default)
64+
5465 For better Rx interrupt moderation.
5566
5667 viii)RTH (Receive Traffic Hash): (Enabled by default)
68+
5769 Receive side steering for better scaling.
5870
5971 ix) Statistics
72+
6073 Comprehensive MAC-level and software statistics displayed using
6174 "ethtool -S" option.
6275
6376 x) Multiple hardware queues: (Enabled by default)
77+
6478 Up to 17 hardware based transmit and receive data channels, with
6579 multiple steering options (transmit multiqueue enabled by default).
6680
@@ -69,25 +83,33 @@ x) Multiple hardware queues: (Enabled by default) · 2 unmodified lines
6983
7084 i) max_config_dev
7185 Specifies maximum device functions to be enabled.
86+
7287 Valid range: 1-8
7388
7489 ii) max_config_port
7590 Specifies number of ports to be enabled.
91+
7692 Valid range: 1,2
93+
7794 Default: 1
7895
79−iii)max_config_vpath
96+iii) max_config_vpath
8097 Specifies maximum VPATH(s) configured for each device function.
98+
8199 Valid range: 1-17
82100
83101 iv) vlan_tag_strip
84102 Enables/disables vlan tag stripping from all received tagged frames that
85103 are not replicated at the internal L2 switch.
104+
86105 Valid range: 0,1 (disabled, enabled respectively)
106+
87107 Default: 1
88108
89109 v) addr_learn_en
90110 Enable learning the mac address of the guest OS interface in
91111 virtualization environment.
112+
92113 Valid range: 0,1 (disabled, enabled respectively)
114+
93115 Default: 0
Documentation/networking/device_drivers/pensando/ionic.rst+230−1
@@ -11,6 +11,9 @@ Contents · 10 unmodified lines
1111 ========
1212
1313 - Identifying the Adapter
14+- Enabling the driver
15+- Configuring the driver
16+- Statistics
1417 - Support
1518
1619 Identifying the Adapter
@@ -28,12 +31,238 @@ and configure them for use. There should be log entries in the kernel · 11 unmodified lines
2831 messages such as these::
2932
3033 $ dmesg | grep ionic
31− ionic Pensando Ethernet NIC Driver, ver 0.15.0-k
34+ ionic 0000:b5:00.0: 126.016 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x16 link)
3235 ionic 0000:b5:00.0 enp181s0: renamed from eth0
36+ ionic 0000:b5:00.0 enp181s0: Link up - 100 Gbps
37+ ionic 0000:b6:00.0: 126.016 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x16 link)
3338 ionic 0000:b6:00.0 enp182s0: renamed from eth0
39+ ionic 0000:b6:00.0 enp182s0: Link up - 100 Gbps
40+
41+Driver and firmware version information can be gathered with either of
42+ethtool or devlink tools::
43+
44+ $ ethtool -i enp181s0
45+ driver: ionic
46+ version: 5.7.0
47+ firmware-version: 1.8.0-28
48+ ...
49+
50+ $ devlink dev info pci/0000:b5:00.0
51+ pci/0000:b5:00.0:
52+ driver ionic
53+ serial_number FLM18420073
54+ versions:
55+ fixed:
56+ asic.id 0x0
57+ asic.rev 0x0
58+ running:
59+ fw 1.8.0-28
60+
61+See Documentation/networking/devlink/ionic.rst for more information
62+on the devlink dev info data.
63+
64+Enabling the driver
65+===================
66+
67+The driver is enabled via the standard kernel configuration system,
68+using the make command::
69+
70+ make oldconfig/menuconfig/etc.
71+
72+The driver is located in the menu structure at:
73+
74+ -> Device Drivers
75+ -> Network device support (NETDEVICES [=y])
76+ -> Ethernet driver support
77+ -> Pensando devices
78+ -> Pensando Ethernet IONIC Support
79+
80+Configuring the Driver
81+======================
82+
83+MTU
84+---
85+
86+Jumbo frame support is available with a maximim size of 9194 bytes.
87+
88+Interrupt coalescing
89+--------------------
90+
91+Interrupt coalescing can be configured by changing the rx-usecs value with
92+the "ethtool -C" command. The rx-usecs range is 0-190. The tx-usecs value
93+reflects the rx-usecs value as they are tied together on the same interrupt.
94+
95+SR-IOV
96+------
97+
98+Minimal SR-IOV support is currently offered and can be enabled by setting
99+the sysfs 'sriov_numvfs' value, if supported by your particular firmware
100+configuration.
101+
102+Statistics
103+==========
104+
105+Basic hardware stats
106+--------------------
107+
108+The commands ``netstat -i``, ``ip -s link show``, and ``ifconfig`` show
109+a limited set of statistics taken directly from firmware. For example::
110+
111+ $ ip -s link show enp181s0
112+ 7: enp181s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
113+ link/ether 00:ae:cd:00:07:68 brd ff:ff:ff:ff:ff:ff
114+ RX: bytes packets errors dropped overrun mcast
115+ 414 5 0 0 0 0
116+ TX: bytes packets errors dropped carrier collsns
117+ 1384 18 0 0 0 0
118+
119+ethtool -S
120+----------
121+
122+The statistics shown from the ``ethtool -S`` command includes a combination of
123+driver counters and firmware counters, including port and queue specific values.
124+The driver values are counters computed by the driver, and the firmware values
125+are gathered by the firmware from the port hardware and passed through the
126+driver with no further interpretation.
127+
128+Driver port specific::
129+
130+ tx_packets: 12
131+ tx_bytes: 964
132+ rx_packets: 5
133+ rx_bytes: 414
134+ tx_tso: 0
135+ tx_tso_bytes: 0
136+ tx_csum_none: 12
137+ tx_csum: 0
138+ rx_csum_none: 0
139+ rx_csum_complete: 3
140+ rx_csum_error: 0
141+
142+Driver queue specific::
143+
144+ tx_0_pkts: 3
145+ tx_0_bytes: 294
146+ tx_0_clean: 3
147+ tx_0_dma_map_err: 0
148+ tx_0_linearize: 0
149+ tx_0_frags: 0
150+ tx_0_tso: 0
151+ tx_0_tso_bytes: 0
152+ tx_0_csum_none: 3
153+ tx_0_csum: 0
154+ tx_0_vlan_inserted: 0
155+ rx_0_pkts: 2
156+ rx_0_bytes: 120
157+ rx_0_dma_map_err: 0
158+ rx_0_alloc_err: 0
159+ rx_0_csum_none: 0
160+ rx_0_csum_complete: 0
161+ rx_0_csum_error: 0
162+ rx_0_dropped: 0
163+ rx_0_vlan_stripped: 0
164+
165+Firmware port specific::
166+
167+ hw_tx_dropped: 0
168+ hw_rx_dropped: 0
169+ hw_rx_over_errors: 0
170+ hw_rx_missed_errors: 0
171+ hw_tx_aborted_errors: 0
172+ frames_rx_ok: 15
173+ frames_rx_all: 15
174+ frames_rx_bad_fcs: 0
175+ frames_rx_bad_all: 0
176+ octets_rx_ok: 1290
177+ octets_rx_all: 1290
178+ frames_rx_unicast: 10
179+ frames_rx_multicast: 5
180+ frames_rx_broadcast: 0
181+ frames_rx_pause: 0
182+ frames_rx_bad_length: 0
183+ frames_rx_undersized: 0
184+ frames_rx_oversized: 0
185+ frames_rx_fragments: 0
186+ frames_rx_jabber: 0
187+ frames_rx_pripause: 0
188+ frames_rx_stomped_crc: 0
189+ frames_rx_too_long: 0
190+ frames_rx_vlan_good: 3
191+ frames_rx_dropped: 0
192+ frames_rx_less_than_64b: 0
193+ frames_rx_64b: 4
194+ frames_rx_65b_127b: 11
195+ frames_rx_128b_255b: 0
196+ frames_rx_256b_511b: 0
197+ frames_rx_512b_1023b: 0
198+ frames_rx_1024b_1518b: 0
199+ frames_rx_1519b_2047b: 0
200+ frames_rx_2048b_4095b: 0
201+ frames_rx_4096b_8191b: 0
202+ frames_rx_8192b_9215b: 0
203+ frames_rx_other: 0
204+ frames_tx_ok: 31
205+ frames_tx_all: 31
206+ frames_tx_bad: 0
207+ octets_tx_ok: 2614
208+ octets_tx_total: 2614
209+ frames_tx_unicast: 8
210+ frames_tx_multicast: 21
211+ frames_tx_broadcast: 2
212+ frames_tx_pause: 0
213+ frames_tx_pripause: 0
214+ frames_tx_vlan: 0
215+ frames_tx_less_than_64b: 0
216+ frames_tx_64b: 4
217+ frames_tx_65b_127b: 27
218+ frames_tx_128b_255b: 0
219+ frames_tx_256b_511b: 0
220+ frames_tx_512b_1023b: 0
221+ frames_tx_1024b_1518b: 0
222+ frames_tx_1519b_2047b: 0
223+ frames_tx_2048b_4095b: 0
224+ frames_tx_4096b_8191b: 0
225+ frames_tx_8192b_9215b: 0
226+ frames_tx_other: 0
227+ frames_tx_pri_0: 0
228+ frames_tx_pri_1: 0
229+ frames_tx_pri_2: 0
230+ frames_tx_pri_3: 0
231+ frames_tx_pri_4: 0
232+ frames_tx_pri_5: 0
233+ frames_tx_pri_6: 0
234+ frames_tx_pri_7: 0
235+ frames_rx_pri_0: 0
236+ frames_rx_pri_1: 0
237+ frames_rx_pri_2: 0
238+ frames_rx_pri_3: 0
239+ frames_rx_pri_4: 0
240+ frames_rx_pri_5: 0
241+ frames_rx_pri_6: 0
242+ frames_rx_pri_7: 0
243+ tx_pripause_0_1us_count: 0
244+ tx_pripause_1_1us_count: 0
245+ tx_pripause_2_1us_count: 0
246+ tx_pripause_3_1us_count: 0
247+ tx_pripause_4_1us_count: 0
248+ tx_pripause_5_1us_count: 0
249+ tx_pripause_6_1us_count: 0
250+ tx_pripause_7_1us_count: 0
251+ rx_pripause_0_1us_count: 0
252+ rx_pripause_1_1us_count: 0
253+ rx_pripause_2_1us_count: 0
254+ rx_pripause_3_1us_count: 0
255+ rx_pripause_4_1us_count: 0
256+ rx_pripause_5_1us_count: 0
257+ rx_pripause_6_1us_count: 0
258+ rx_pripause_7_1us_count: 0
259+ rx_pause_1us_count: 0
260+ frames_tx_truncated: 0
261+
34262
35263 Support
36264 =======
265+
37266 For general Linux networking support, please use the netdev mailing
38267 list, which is monitored by Pensando personnel::
39268
Documentation/networking/device_drivers/qualcomm/rmnet.rstrenamed from Documentation/networking/device_drivers/qualcomm/rmnet.txt+28−15
@@ -1,4 +1,11 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+============
4+Rmnet Driver
5+============
6+
17 1. Introduction
8+===============
29
310 rmnet driver is used for supporting the Multiplexing and aggregation
411 Protocol (MAP). This protocol is used by all recent chipsets using Qualcomm
@@ -18,17 +25,18 @@ sending aggregated bunch of MAP frames. rmnet driver will de-aggregate · 13 unmodified lines
1825 these MAP frames and send them to appropriate PDN's.
1926
2027 2. Packet format
28+================
2129
2230 a. MAP packet (data / control)
2331
2432 MAP header has the same endianness of the IP packet.
2533
26−Packet format -
34+Packet format::
2735
28−Bit 0 1 2-7 8 - 15 16 - 31
29−Function Command / Data Reserved Pad Multiplexer ID Payload length
30−Bit 32 - x
31−Function Raw Bytes
36+ Bit 0 1 2-7 8 - 15 16 - 31
37+ Function Command / Data Reserved Pad Multiplexer ID Payload length
38+ Bit 32 - x
39+ Function Raw Bytes
3240
3341 Command (1)/ Data (0) bit value is to indicate if the packet is a MAP command
3442 or data packet. Control packet is used for transport level flow control. Data
@@ -44,24 +52,27 @@ Multiplexer ID is to indicate the PDN on which data has to be sent. · 9 unmodified lines
4452 Payload length includes the padding length but does not include MAP header
4553 length.
4654
47−b. MAP packet (command specific)
55+b. MAP packet (command specific)::
4856
49−Bit 0 1 2-7 8 - 15 16 - 31
50−Function Command Reserved Pad Multiplexer ID Payload length
51−Bit 32 - 39 40 - 45 46 - 47 48 - 63
52−Function Command name Reserved Command Type Reserved
53−Bit 64 - 95
54−Function Transaction ID
55−Bit 96 - 127
56−Function Command data
57+ Bit 0 1 2-7 8 - 15 16 - 31
58+ Function Command Reserved Pad Multiplexer ID Payload length
59+ Bit 32 - 39 40 - 45 46 - 47 48 - 63
60+ Function Command name Reserved Command Type Reserved
61+ Bit 64 - 95
62+ Function Transaction ID
63+ Bit 96 - 127
64+ Function Command data
5765
5866 Command 1 indicates disabling flow while 2 is enabling flow
5967
60−Command types -
68+Command types
69+
70+= ==========================================
6171 0 for MAP command request
6272 1 is to acknowledge the receipt of a command
6373 2 is for unsupported commands
6474 3 is for error during processing of commands
75+= ==========================================
6576
6677 c. Aggregation
6778
@@ -71,9 +82,11 @@ packets and either ACK the MAP command or deliver the IP packet to the · 3 unmodified lines
7182 network stack as needed
7283
7384 MAP header|IP Packet|Optional padding|MAP header|IP Packet|Optional padding....
85+
7486 MAP header|IP Packet|Optional padding|MAP header|Command Packet|Optional pad...
7587
7688 3. Userspace configuration
89+==========================
7790
7891 rmnet userspace configuration is done through netlink library librmnetctl
7992 and command line utility rmnetcli. Utility is hosted in codeaurora forum git.
Documentation/networking/device_drivers/sb1000.rst+222−0
@@ -0,0 +1,222 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+===================
4+SB100 device driver
5+===================
6+
7+sb1000 is a module network device driver for the General Instrument (also known
8+as NextLevel) SURFboard1000 internal cable modem board. This is an ISA card
9+which is used by a number of cable TV companies to provide cable modem access.
10+It's a one-way downstream-only cable modem, meaning that your upstream net link
11+is provided by your regular phone modem.
12+
13+This driver was written by Franco Venturi <fventuri@mediaone.net>. He deserves
14+a great deal of thanks for this wonderful piece of code!
15+
16+Needed tools
17+============
18+
19+Support for this device is now a part of the standard Linux kernel. The
20+driver source code file is drivers/net/sb1000.c. In addition to this
21+you will need:
22+
23+1. The "cmconfig" program. This is a utility which supplements "ifconfig"
24+ to configure the cable modem and network interface (usually called "cm0");
25+
26+2. Several PPP scripts which live in /etc/ppp to make connecting via your
27+ cable modem easy.
28+
29+ These utilities can be obtained from:
30+
31+ http://www.jacksonville.net/~fventuri/
32+
33+ in Franco's original source code distribution .tar.gz file. Support for
34+ the sb1000 driver can be found at:
35+
36+ - http://web.archive.org/web/%2E/http://home.adelphia.net/~siglercm/sb1000.html
37+ - http://web.archive.org/web/%2E/http://linuxpower.cx/~cable/
38+
39+ along with these utilities.
40+
41+3. The standard isapnp tools. These are necessary to configure your SB1000
42+ card at boot time (or afterwards by hand) since it's a PnP card.
43+
44+ If you don't have these installed as a standard part of your Linux
45+ distribution, you can find them at:
46+
47+ http://www.roestock.demon.co.uk/isapnptools/
48+
49+ or check your Linux distribution binary CD or their web site. For help with
50+ isapnp, pnpdump, or /etc/isapnp.conf, go to:
51+
52+ http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html
53+
54+Using the driver
55+================
56+
57+To make the SB1000 card work, follow these steps:
58+
59+1. Run ``make config``, or ``make menuconfig``, or ``make xconfig``, whichever
60+ you prefer, in the top kernel tree directory to set up your kernel
61+ configuration. Make sure to say "Y" to "Prompt for development drivers"
62+ and to say "M" to the sb1000 driver. Also say "Y" or "M" to all the standard
63+ networking questions to get TCP/IP and PPP networking support.
64+
65+2. **BEFORE** you build the kernel, edit drivers/net/sb1000.c. Make sure
66+ to redefine the value of READ_DATA_PORT to match the I/O address used
67+ by isapnp to access your PnP cards. This is the value of READPORT in
68+ /etc/isapnp.conf or given by the output of pnpdump.
69+
70+3. Build and install the kernel and modules as usual.
71+
72+4. Boot your new kernel following the usual procedures.
73+
74+5. Set up to configure the new SB1000 PnP card by capturing the output
75+ of "pnpdump" to a file and editing this file to set the correct I/O ports,
76+ IRQ, and DMA settings for all your PnP cards. Make sure none of the settings
77+ conflict with one another. Then test this configuration by running the
78+ "isapnp" command with your new config file as the input. Check for
79+ errors and fix as necessary. (As an aside, I use I/O ports 0x110 and
80+ 0x310 and IRQ 11 for my SB1000 card and these work well for me. YMMV.)
81+ Then save the finished config file as /etc/isapnp.conf for proper
82+ configuration on subsequent reboots.
83+
84+6. Download the original file sb1000-1.1.2.tar.gz from Franco's site or one of
85+ the others referenced above. As root, unpack it into a temporary directory
86+ and do a ``make cmconfig`` and then ``install -c cmconfig /usr/local/sbin``.
87+ Don't do ``make install`` because it expects to find all the utilities built
88+ and ready for installation, not just cmconfig.
89+
90+7. As root, copy all the files under the ppp/ subdirectory in Franco's
91+ tar file into /etc/ppp, being careful not to overwrite any files that are
92+ already in there. Then modify ppp@gi-on to set the correct login name,
93+ phone number, and frequency for the cable modem. Also edit pap-secrets
94+ to specify your login name and password and any site-specific information
95+ you need.
96+
97+8. Be sure to modify /etc/ppp/firewall to use ipchains instead of
98+ the older ipfwadm commands from the 2.0.x kernels. There's a neat utility to
99+ convert ipfwadm commands to ipchains commands:
100+
101+ http://users.dhp.com/~whisper/ipfwadm2ipchains/
102+
103+ You may also wish to modify the firewall script to implement a different
104+ firewalling scheme.
105+
106+9. Start the PPP connection via the script /etc/ppp/ppp@gi-on. You must be
107+ root to do this. It's better to use a utility like sudo to execute
108+ frequently used commands like this with root permissions if possible. If you
109+ connect successfully the cable modem interface will come up and you'll see a
110+ driver message like this at the console::
111+
112+ cm0: sb1000 at (0x110,0x310), csn 1, S/N 0x2a0d16d8, IRQ 11.
113+ sb1000.c:v1.1.2 6/01/98 (fventuri@mediaone.net)
114+
115+ The "ifconfig" command should show two new interfaces, ppp0 and cm0.
116+
117+ The command "cmconfig cm0" will give you information about the cable modem
118+ interface.
119+
120+10. Try pinging a site via ``ping -c 5 www.yahoo.com``, for example. You should
121+ see packets received.
122+
123+11. If you can't get site names (like www.yahoo.com) to resolve into
124+ IP addresses (like 204.71.200.67), be sure your /etc/resolv.conf file
125+ has no syntax errors and has the right nameserver IP addresses in it.
126+ If this doesn't help, try something like ``ping -c 5 204.71.200.67`` to
127+ see if the networking is running but the DNS resolution is where the
128+ problem lies.
129+
130+12. If you still have problems, go to the support web sites mentioned above
131+ and read the information and documentation there.
132+
133+Common problems
134+===============
135+
136+1. Packets go out on the ppp0 interface but don't come back on the cm0
137+ interface. It looks like I'm connected but I can't even ping any
138+ numerical IP addresses. (This happens predominantly on Debian systems due
139+ to a default boot-time configuration script.)
140+
141+Solution
142+ As root ``echo 0 > /proc/sys/net/ipv4/conf/cm0/rp_filter`` so it
143+ can share the same IP address as the ppp0 interface. Note that this
144+ command should probably be added to the /etc/ppp/cablemodem script
145+ *right*between* the "/sbin/ifconfig" and "/sbin/cmconfig" commands.
146+ You may need to do this to /proc/sys/net/ipv4/conf/ppp0/rp_filter as well.
147+ If you do this to /proc/sys/net/ipv4/conf/default/rp_filter on each reboot
148+ (in rc.local or some such) then any interfaces can share the same IP
149+ addresses.
150+
151+2. I get "unresolved symbol" error messages on executing ``insmod sb1000.o``.
152+
153+Solution
154+ You probably have a non-matching kernel source tree and
155+ /usr/include/linux and /usr/include/asm header files. Make sure you
156+ install the correct versions of the header files in these two directories.
157+ Then rebuild and reinstall the kernel.
158+
159+3. When isapnp runs it reports an error, and my SB1000 card isn't working.
160+
161+Solution
162+ There's a problem with later versions of isapnp using the "(CHECK)"
163+ option in the lines that allocate the two I/O addresses for the SB1000 card.
164+ This first popped up on RH 6.0. Delete "(CHECK)" for the SB1000 I/O addresses.
165+ Make sure they don't conflict with any other pieces of hardware first! Then
166+ rerun isapnp and go from there.
167+
168+4. I can't execute the /etc/ppp/ppp@gi-on file.
169+
170+Solution
171+ As root do ``chmod ug+x /etc/ppp/ppp@gi-on``.
172+
173+5. The firewall script isn't working (with 2.2.x and higher kernels).
174+
175+Solution
176+ Use the ipfwadm2ipchains script referenced above to convert the
177+ /etc/ppp/firewall script from the deprecated ipfwadm commands to ipchains.
178+
179+6. I'm getting *tons* of firewall deny messages in the /var/kern.log,
180+ /var/messages, and/or /var/syslog files, and they're filling up my /var
181+ partition!!!
182+
183+Solution
184+ First, tell your ISP that you're receiving DoS (Denial of Service)
185+ and/or portscanning (UDP connection attempts) attacks! Look over the deny
186+ messages to figure out what the attack is and where it's coming from. Next,
187+ edit /etc/ppp/cablemodem and make sure the ",nobroadcast" option is turned on
188+ to the "cmconfig" command (uncomment that line). If you're not receiving these
189+ denied packets on your broadcast interface (IP address xxx.yyy.zzz.255
190+ typically), then someone is attacking your machine in particular. Be careful
191+ out there....
192+
193+7. Everything seems to work fine but my computer locks up after a while
194+ (and typically during a lengthy download through the cable modem)!
195+
196+Solution
197+ You may need to add a short delay in the driver to 'slow down' the
198+ SURFboard because your PC might not be able to keep up with the transfer rate
199+ of the SB1000. To do this, it's probably best to download Franco's
200+ sb1000-1.1.2.tar.gz archive and build and install sb1000.o manually. You'll
201+ want to edit the 'Makefile' and look for the 'SB1000_DELAY'
202+ define. Uncomment those 'CFLAGS' lines (and comment out the default ones)
203+ and try setting the delay to something like 60 microseconds with:
204+ '-DSB1000_DELAY=60'. Then do ``make`` and as root ``make install`` and try
205+ it out. If it still doesn't work or you like playing with the driver, you may
206+ try other numbers. Remember though that the higher the delay, the slower the
207+ driver (which slows down the rest of the PC too when it is actively
208+ used). Thanks to Ed Daiga for this tip!
209+
210+Credits
211+=======
212+
213+This README came from Franco Venturi's original README file which is
214+still supplied with his driver .tar.gz archive. I and all other sb1000 users
215+owe Franco a tremendous "Thank you!" Additional thanks goes to Carl Patten
216+and Ralph Bonnell who are now managing the Linux SB1000 web site, and to
217+the SB1000 users who reported and helped debug the common problems listed
218+above.
219+
220+
221+ Clemmitt Sigler
222+ csigler@vt.edu
Documentation/networking/device_drivers/sb1000.txt+0−207
@@ -1,207 +0,0 @@
1−sb1000 is a module network device driver for the General Instrument (also known
2−as NextLevel) SURFboard1000 internal cable modem board. This is an ISA card
3−which is used by a number of cable TV companies to provide cable modem access.
4−It's a one-way downstream-only cable modem, meaning that your upstream net link
5−is provided by your regular phone modem.
6−
7−This driver was written by Franco Venturi <fventuri@mediaone.net>. He deserves
8−a great deal of thanks for this wonderful piece of code!
9−
10−-----------------------------------------------------------------------------
11−
12−Support for this device is now a part of the standard Linux kernel. The
13−driver source code file is drivers/net/sb1000.c. In addition to this
14−you will need:
15−
16−1.) The "cmconfig" program. This is a utility which supplements "ifconfig"
17−to configure the cable modem and network interface (usually called "cm0");
18−and
19−
20−2.) Several PPP scripts which live in /etc/ppp to make connecting via your
21−cable modem easy.
22−
23− These utilities can be obtained from:
24−
25− http://www.jacksonville.net/~fventuri/
26−
27− in Franco's original source code distribution .tar.gz file. Support for
28− the sb1000 driver can be found at:
29−
30− http://web.archive.org/web/*/http://home.adelphia.net/~siglercm/sb1000.html
31− http://web.archive.org/web/*/http://linuxpower.cx/~cable/
32−
33− along with these utilities.
34−
35−3.) The standard isapnp tools. These are necessary to configure your SB1000
36−card at boot time (or afterwards by hand) since it's a PnP card.
37−
38− If you don't have these installed as a standard part of your Linux
39− distribution, you can find them at:
40−
41− http://www.roestock.demon.co.uk/isapnptools/
42−
43− or check your Linux distribution binary CD or their web site. For help with
44− isapnp, pnpdump, or /etc/isapnp.conf, go to:
45−
46− http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html
47−
48−-----------------------------------------------------------------------------
49−
50−To make the SB1000 card work, follow these steps:
51−
52−1.) Run `make config', or `make menuconfig', or `make xconfig', whichever
53−you prefer, in the top kernel tree directory to set up your kernel
54−configuration. Make sure to say "Y" to "Prompt for development drivers"
55−and to say "M" to the sb1000 driver. Also say "Y" or "M" to all the standard
56−networking questions to get TCP/IP and PPP networking support.
57−
58−2.) *BEFORE* you build the kernel, edit drivers/net/sb1000.c. Make sure
59−to redefine the value of READ_DATA_PORT to match the I/O address used
60−by isapnp to access your PnP cards. This is the value of READPORT in
61−/etc/isapnp.conf or given by the output of pnpdump.
62−
63−3.) Build and install the kernel and modules as usual.
64−
65−4.) Boot your new kernel following the usual procedures.
66−
67−5.) Set up to configure the new SB1000 PnP card by capturing the output
68−of "pnpdump" to a file and editing this file to set the correct I/O ports,
69−IRQ, and DMA settings for all your PnP cards. Make sure none of the settings
70−conflict with one another. Then test this configuration by running the
71−"isapnp" command with your new config file as the input. Check for
72−errors and fix as necessary. (As an aside, I use I/O ports 0x110 and
73−0x310 and IRQ 11 for my SB1000 card and these work well for me. YMMV.)
74−Then save the finished config file as /etc/isapnp.conf for proper configuration
75−on subsequent reboots.
76−
77−6.) Download the original file sb1000-1.1.2.tar.gz from Franco's site or one of
78−the others referenced above. As root, unpack it into a temporary directory and
79−do a `make cmconfig' and then `install -c cmconfig /usr/local/sbin'. Don't do
80−`make install' because it expects to find all the utilities built and ready for
81−installation, not just cmconfig.
82−
83−7.) As root, copy all the files under the ppp/ subdirectory in Franco's
84−tar file into /etc/ppp, being careful not to overwrite any files that are
85−already in there. Then modify ppp@gi-on to set the correct login name,
86−phone number, and frequency for the cable modem. Also edit pap-secrets
87−to specify your login name and password and any site-specific information
88−you need.
89−
90−8.) Be sure to modify /etc/ppp/firewall to use ipchains instead of
91−the older ipfwadm commands from the 2.0.x kernels. There's a neat utility to
92−convert ipfwadm commands to ipchains commands:
93−
94− http://users.dhp.com/~whisper/ipfwadm2ipchains/
95−
96−You may also wish to modify the firewall script to implement a different
97−firewalling scheme.
98−
99−9.) Start the PPP connection via the script /etc/ppp/ppp@gi-on. You must be
100−root to do this. It's better to use a utility like sudo to execute
101−frequently used commands like this with root permissions if possible. If you
102−connect successfully the cable modem interface will come up and you'll see a
103−driver message like this at the console:
104−
105− cm0: sb1000 at (0x110,0x310), csn 1, S/N 0x2a0d16d8, IRQ 11.
106− sb1000.c:v1.1.2 6/01/98 (fventuri@mediaone.net)
107−
108−The "ifconfig" command should show two new interfaces, ppp0 and cm0.
109−The command "cmconfig cm0" will give you information about the cable modem
110−interface.
111−
112−10.) Try pinging a site via `ping -c 5 www.yahoo.com', for example. You should
113−see packets received.
114−
115−11.) If you can't get site names (like www.yahoo.com) to resolve into
116−IP addresses (like 204.71.200.67), be sure your /etc/resolv.conf file
117−has no syntax errors and has the right nameserver IP addresses in it.
118−If this doesn't help, try something like `ping -c 5 204.71.200.67' to
119−see if the networking is running but the DNS resolution is where the
120−problem lies.
121−
122−12.) If you still have problems, go to the support web sites mentioned above
123−and read the information and documentation there.
124−
125−-----------------------------------------------------------------------------
126−
127−Common problems:
128−
129−1.) Packets go out on the ppp0 interface but don't come back on the cm0
130−interface. It looks like I'm connected but I can't even ping any
131−numerical IP addresses. (This happens predominantly on Debian systems due
132−to a default boot-time configuration script.)
133−
134−Solution -- As root `echo 0 > /proc/sys/net/ipv4/conf/cm0/rp_filter' so it
135−can share the same IP address as the ppp0 interface. Note that this
136−command should probably be added to the /etc/ppp/cablemodem script
137−*right*between* the "/sbin/ifconfig" and "/sbin/cmconfig" commands.
138−You may need to do this to /proc/sys/net/ipv4/conf/ppp0/rp_filter as well.
139−If you do this to /proc/sys/net/ipv4/conf/default/rp_filter on each reboot
140−(in rc.local or some such) then any interfaces can share the same IP
141−addresses.
142−
143−2.) I get "unresolved symbol" error messages on executing `insmod sb1000.o'.
144−
145−Solution -- You probably have a non-matching kernel source tree and
146−/usr/include/linux and /usr/include/asm header files. Make sure you
147−install the correct versions of the header files in these two directories.
148−Then rebuild and reinstall the kernel.
149−
150−3.) When isapnp runs it reports an error, and my SB1000 card isn't working.
151−
152−Solution -- There's a problem with later versions of isapnp using the "(CHECK)"
153−option in the lines that allocate the two I/O addresses for the SB1000 card.
154−This first popped up on RH 6.0. Delete "(CHECK)" for the SB1000 I/O addresses.
155−Make sure they don't conflict with any other pieces of hardware first! Then
156−rerun isapnp and go from there.
157−
158−4.) I can't execute the /etc/ppp/ppp@gi-on file.
159−
160−Solution -- As root do `chmod ug+x /etc/ppp/ppp@gi-on'.
161−
162−5.) The firewall script isn't working (with 2.2.x and higher kernels).
163−
164−Solution -- Use the ipfwadm2ipchains script referenced above to convert the
165−/etc/ppp/firewall script from the deprecated ipfwadm commands to ipchains.
166−
167−6.) I'm getting *tons* of firewall deny messages in the /var/kern.log,
168−/var/messages, and/or /var/syslog files, and they're filling up my /var
169−partition!!!
170−
171−Solution -- First, tell your ISP that you're receiving DoS (Denial of Service)
172−and/or portscanning (UDP connection attempts) attacks! Look over the deny
173−messages to figure out what the attack is and where it's coming from. Next,
174−edit /etc/ppp/cablemodem and make sure the ",nobroadcast" option is turned on
175−to the "cmconfig" command (uncomment that line). If you're not receiving these
176−denied packets on your broadcast interface (IP address xxx.yyy.zzz.255
177−typically), then someone is attacking your machine in particular. Be careful
178−out there....
179−
180−7.) Everything seems to work fine but my computer locks up after a while
181−(and typically during a lengthy download through the cable modem)!
182−
183−Solution -- You may need to add a short delay in the driver to 'slow down' the
184−SURFboard because your PC might not be able to keep up with the transfer rate
185−of the SB1000. To do this, it's probably best to download Franco's
186−sb1000-1.1.2.tar.gz archive and build and install sb1000.o manually. You'll
187−want to edit the 'Makefile' and look for the 'SB1000_DELAY'
188−define. Uncomment those 'CFLAGS' lines (and comment out the default ones)
189−and try setting the delay to something like 60 microseconds with:
190−'-DSB1000_DELAY=60'. Then do `make' and as root `make install' and try
191−it out. If it still doesn't work or you like playing with the driver, you may
192−try other numbers. Remember though that the higher the delay, the slower the
193−driver (which slows down the rest of the PC too when it is actively
194−used). Thanks to Ed Daiga for this tip!
195−
196−-----------------------------------------------------------------------------
197−
198−Credits: This README came from Franco Venturi's original README file which is
199−still supplied with his driver .tar.gz archive. I and all other sb1000 users
200−owe Franco a tremendous "Thank you!" Additional thanks goes to Carl Patten
201−and Ralph Bonnell who are now managing the Linux SB1000 web site, and to
202−the SB1000 users who reported and helped debug the common problems listed
203−above.
204−
205−
206− Clemmitt Sigler
207− csigler@vt.edu
Documentation/networking/device_drivers/smsc/smc9.rst+48−0
@@ -0,0 +1,48 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+================
4+SMC 9xxxx Driver
5+================
6+
7+Revision 0.12
8+
9+3/5/96
10+
11+Copyright 1996 Erik Stahlman
12+
13+Released under terms of the GNU General Public License.
14+
15+This file contains the instructions and caveats for my SMC9xxx driver. You
16+should not be using the driver without reading this file.
17+
18+Things to note about installation:
19+
20+ 1. The driver should work on all kernels from 1.2.13 until 1.3.71.
21+ (A kernel patch is supplied for 1.3.71 )
22+
23+ 2. If you include this into the kernel, you might need to change some
24+ options, such as for forcing IRQ.
25+
26+
27+ 3. To compile as a module, run 'make'.
28+ Make will give you the appropriate options for various kernel support.
29+
30+ 4. Loading the driver as a module::
31+
32+ use: insmod smc9194.o
33+ optional parameters:
34+ io=xxxx : your base address
35+ irq=xx : your irq
36+ ifport=x : 0 for whatever is default
37+ 1 for twisted pair
38+ 2 for AUI ( or BNC on some cards )
39+
40+How to obtain the latest version?
41+
42+FTP:
43+ ftp://fenris.campus.vt.edu/smc9/smc9-12.tar.gz
44+ ftp://sfbox.vt.edu/filebox/F/fenris/smc9/smc9-12.tar.gz
45+
46+
47+Contacting me:
48+ erik@mail.vt.edu
Documentation/networking/device_drivers/smsc/smc9.txt+0−42
@@ -1,42 +0,0 @@
1−
2−SMC 9xxxx Driver
3−Revision 0.12
4−3/5/96
5−Copyright 1996 Erik Stahlman
6−Released under terms of the GNU General Public License.
7−
8−This file contains the instructions and caveats for my SMC9xxx driver. You
9−should not be using the driver without reading this file.
10−
11−Things to note about installation:
12−
13− 1. The driver should work on all kernels from 1.2.13 until 1.3.71.
14− (A kernel patch is supplied for 1.3.71 )
15−
16− 2. If you include this into the kernel, you might need to change some
17− options, such as for forcing IRQ.
18−
19−
20− 3. To compile as a module, run 'make' .
21− Make will give you the appropriate options for various kernel support.
22−
23− 4. Loading the driver as a module :
24−
25− use: insmod smc9194.o
26− optional parameters:
27− io=xxxx : your base address
28− irq=xx : your irq
29− ifport=x : 0 for whatever is default
30− 1 for twisted pair
31− 2 for AUI ( or BNC on some cards )
32−
33−How to obtain the latest version?
34−
35−FTP:
36− ftp://fenris.campus.vt.edu/smc9/smc9-12.tar.gz
37− ftp://sfbox.vt.edu/filebox/F/fenris/smc9/smc9-12.tar.gz
38−
39−
40−Contacting me:
41− erik@mail.vt.edu
42−
Documentation/networking/device_drivers/ti/cpsw.rst+587−0
@@ -0,0 +1,587 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+======================================
4+Texas Instruments CPSW ethernet driver
5+======================================
6+
7+Multiqueue & CBS & MQPRIO
8+=========================
9+
10+
11+The cpsw has 3 CBS shapers for each external ports. This document
12+describes MQPRIO and CBS Qdisc offload configuration for cpsw driver
13+based on examples. It potentially can be used in audio video bridging
14+(AVB) and time sensitive networking (TSN).
15+
16+The following examples were tested on AM572x EVM and BBB boards.
17+
18+Test setup
19+==========
20+
21+Under consideration two examples with AM572x EVM running cpsw driver
22+in dual_emac mode.
23+
24+Several prerequisites:
25+
26+- TX queues must be rated starting from txq0 that has highest priority
27+- Traffic classes are used starting from 0, that has highest priority
28+- CBS shapers should be used with rated queues
29+- The bandwidth for CBS shapers has to be set a little bit more then
30+ potential incoming rate, thus, rate of all incoming tx queues has
31+ to be a little less
32+- Real rates can differ, due to discreetness
33+- Map skb-priority to txq is not enough, also skb-priority to l2 prio
34+ map has to be created with ip or vconfig tool
35+- Any l2/socket prio (0 - 7) for classes can be used, but for
36+ simplicity default values are used: 3 and 2
37+- only 2 classes tested: A and B, but checked and can work with more,
38+ maximum allowed 4, but only for 3 rate can be set.
39+
40+Test setup for examples
41+=======================
42+
43+::
44+
45+ +-------------------------------+
46+ |--+ |
47+ | | Workstation0 |
48+ |E | MAC 18:03:73:66:87:42 |
49+ +-----------------------------+ +--|t | |
50+ | | 1 | E | | |h |./tsn_listener -d \ |
51+ | Target board: | 0 | t |--+ |0 | 18:03:73:66:87:42 -i eth0 \|
52+ | AM572x EVM | 0 | h | | | -s 1500 |
53+ | | 0 | 0 | |--+ |
54+ | Only 2 classes: |Mb +---| +-------------------------------+
55+ | class A, class B | |
56+ | | +---| +-------------------------------+
57+ | | 1 | E | |--+ |
58+ | | 0 | t | | | Workstation1 |
59+ | | 0 | h |--+ |E | MAC 20:cf:30:85:7d:fd |
60+ | |Mb | 1 | +--|t | |
61+ +-----------------------------+ |h |./tsn_listener -d \ |
62+ |0 | 20:cf:30:85:7d:fd -i eth0 \|
63+ | | -s 1500 |
64+ |--+ |
65+ +-------------------------------+
66+
67+
68+Example 1: One port tx AVB configuration scheme for target board
69+----------------------------------------------------------------
70+
71+(prints and scheme for AM572x evm, applicable for single port boards)
72+
73+- tc - traffic class
74+- txq - transmit queue
75+- p - priority
76+- f - fifo (cpsw fifo)
77+- S - shaper configured
78+
79+::
80+
81+ +------------------------------------------------------------------+ u
82+ | +---------------+ +---------------+ +------+ +------+ | s
83+ | | | | | | | | | | e
84+ | | App 1 | | App 2 | | Apps | | Apps | | r
85+ | | Class A | | Class B | | Rest | | Rest | |
86+ | | Eth0 | | Eth0 | | Eth0 | | Eth1 | | s
87+ | | VLAN100 | | VLAN100 | | | | | | | | p
88+ | | 40 Mb/s | | 20 Mb/s | | | | | | | | a
89+ | | SO_PRIORITY=3 | | SO_PRIORITY=2 | | | | | | | | c
90+ | | | | | | | | | | | | | | e
91+ | +---|-----------+ +---|-----------+ +---|--+ +---|--+ |
92+ +-----|------------------|------------------|--------|-------------+
93+ +-+ +------------+ | |
94+ | | +-----------------+ +--+
95+ | | | |
96+ +---|-------|-------------|-----------------------|----------------+
97+ | +----+ +----+ +----+ +----+ +----+ |
98+ | | p3 | | p2 | | p1 | | p0 | | p0 | | k
99+ | \ / \ / \ / \ / \ / | e
100+ | \ / \ / \ / \ / \ / | r
101+ | \/ \/ \/ \/ \/ | n
102+ | | | | | | e
103+ | | | +-----+ | | l
104+ | | | | | |
105+ | +----+ +----+ +----+ +----+ | s
106+ | |tc0 | |tc1 | |tc2 | |tc0 | | p
107+ | \ / \ / \ / \ / | a
108+ | \ / \ / \ / \ / | c
109+ | \/ \/ \/ \/ | e
110+ | | | +-----+ | |
111+ | | | | | | |
112+ | | | | | | |
113+ | | | | | | |
114+ | +----+ +----+ +----+ +----+ +----+ |
115+ | |txq0| |txq1| |txq2| |txq3| |txq4| |
116+ | \ / \ / \ / \ / \ / |
117+ | \ / \ / \ / \ / \ / |
118+ | \/ \/ \/ \/ \/ |
119+ | +-|------|------|------|--+ +--|--------------+ |
120+ | | | | | | | Eth0.100 | | Eth1 | |
121+ +---|------|------|------|------------------------|----------------+
122+ | | | | |
123+ p p p p |
124+ 3 2 0-1, 4-7 <- L2 priority |
125+ | | | | |
126+ | | | | |
127+ +---|------|------|------|------------------------|----------------+
128+ | | | | | |----------+ |
129+ | +----+ +----+ +----+ +----+ +----+ |
130+ | |dma7| |dma6| |dma5| |dma4| |dma3| |
131+ | \ / \ / \ / \ / \ / | c
132+ | \S / \S / \ / \ / \ / | p
133+ | \/ \/ \/ \/ \/ | s
134+ | | | | +----- | | w
135+ | | | | | | |
136+ | | | | | | | d
137+ | +----+ +----+ +----+p p+----+ | r
138+ | | | | | | |o o| | | i
139+ | | f3 | | f2 | | f0 |r r| f0 | | v
140+ | |tc0 | |tc1 | |tc2 |t t|tc0 | | e
141+ | \CBS / \CBS / \CBS /1 2\CBS / | r
142+ | \S / \S / \ / \ / |
143+ | \/ \/ \/ \/ |
144+ +------------------------------------------------------------------+
145+
146+
147+1) ::
148+
149+
150+ // Add 4 tx queues, for interface Eth0, and 1 tx queue for Eth1
151+ $ ethtool -L eth0 rx 1 tx 5
152+ rx unmodified, ignoring
153+
154+2) ::
155+
156+ // Check if num of queues is set correctly:
157+ $ ethtool -l eth0
158+ Channel parameters for eth0:
159+ Pre-set maximums:
160+ RX: 8
161+ TX: 8
162+ Other: 0
163+ Combined: 0
164+ Current hardware settings:
165+ RX: 1
166+ TX: 5
167+ Other: 0
168+ Combined: 0
169+
170+3) ::
171+
172+ // TX queues must be rated starting from 0, so set bws for tx0 and tx1
173+ // Set rates 40 and 20 Mb/s appropriately.
174+ // Pay attention, real speed can differ a bit due to discreetness.
175+ // Leave last 2 tx queues not rated.
176+ $ echo 40 > /sys/class/net/eth0/queues/tx-0/tx_maxrate
177+ $ echo 20 > /sys/class/net/eth0/queues/tx-1/tx_maxrate
178+
179+4) ::
180+
181+ // Check maximum rate of tx (cpdma) queues:
182+ $ cat /sys/class/net/eth0/queues/tx-*/tx_maxrate
183+ 40
184+ 20
185+ 0
186+ 0
187+ 0
188+
189+5) ::
190+
191+ // Map skb->priority to traffic class:
192+ // 3pri -> tc0, 2pri -> tc1, (0,1,4-7)pri -> tc2
193+ // Map traffic class to transmit queue:
194+ // tc0 -> txq0, tc1 -> txq1, tc2 -> (txq2, txq3)
195+ $ tc qdisc replace dev eth0 handle 100: parent root mqprio num_tc 3 \
196+ map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@1 2@2 hw 1
197+
198+5a) ::
199+
200+ // As two interface sharing same set of tx queues, assign all traffic
201+ // coming to interface Eth1 to separate queue in order to not mix it
202+ // with traffic from interface Eth0, so use separate txq to send
203+ // packets to Eth1, so all prio -> tc0 and tc0 -> txq4
204+ // Here hw 0, so here still default configuration for eth1 in hw
205+ $ tc qdisc replace dev eth1 handle 100: parent root mqprio num_tc 1 \
206+ map 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 queues 1@4 hw 0
207+
208+6) ::
209+
210+ // Check classes settings
211+ $ tc -g class show dev eth0
212+ +---(100:ffe2) mqprio
213+ | +---(100:3) mqprio
214+ | +---(100:4) mqprio
215+ |
216+ +---(100:ffe1) mqprio
217+ | +---(100:2) mqprio
218+ |
219+ +---(100:ffe0) mqprio
220+ +---(100:1) mqprio
221+
222+ $ tc -g class show dev eth1
223+ +---(100:ffe0) mqprio
224+ +---(100:5) mqprio
225+
226+7) ::
227+
228+ // Set rate for class A - 41 Mbit (tc0, txq0) using CBS Qdisc
229+ // Set it +1 Mb for reserve (important!)
230+ // here only idle slope is important, others arg are ignored
231+ // Pay attention, real speed can differ a bit due to discreetness
232+ $ tc qdisc add dev eth0 parent 100:1 cbs locredit -1438 \
233+ hicredit 62 sendslope -959000 idleslope 41000 offload 1
234+ net eth0: set FIFO3 bw = 50
235+
236+8) ::
237+
238+ // Set rate for class B - 21 Mbit (tc1, txq1) using CBS Qdisc:
239+ // Set it +1 Mb for reserve (important!)
240+ $ tc qdisc add dev eth0 parent 100:2 cbs locredit -1468 \
241+ hicredit 65 sendslope -979000 idleslope 21000 offload 1
242+ net eth0: set FIFO2 bw = 30
243+
244+9) ::
245+
246+ // Create vlan 100 to map sk->priority to vlan qos
247+ $ ip link add link eth0 name eth0.100 type vlan id 100
248+ 8021q: 802.1Q VLAN Support v1.8
249+ 8021q: adding VLAN 0 to HW filter on device eth0
250+ 8021q: adding VLAN 0 to HW filter on device eth1
251+ net eth0: Adding vlanid 100 to vlan filter
252+
253+10) ::
254+
255+ // Map skb->priority to L2 prio, 1 to 1
256+ $ ip link set eth0.100 type vlan \
257+ egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
258+
259+11) ::
260+
261+ // Check egress map for vlan 100
262+ $ cat /proc/net/vlan/eth0.100
263+ [...]
264+ INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0
265+ EGRESS priority mappings: 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
266+
267+12) ::
268+
269+ // Run your appropriate tools with socket option "SO_PRIORITY"
270+ // to 3 for class A and/or to 2 for class B
271+ // (I took at https://www.spinics.net/lists/netdev/msg460869.html)
272+ ./tsn_talker -d 18:03:73:66:87:42 -i eth0.100 -p3 -s 1500&
273+ ./tsn_talker -d 18:03:73:66:87:42 -i eth0.100 -p2 -s 1500&
274+
275+13) ::
276+
277+ // run your listener on workstation (should be in same vlan)
278+ // (I took at https://www.spinics.net/lists/netdev/msg460869.html)
279+ ./tsn_listener -d 18:03:73:66:87:42 -i enp5s0 -s 1500
280+ Receiving data rate: 39012 kbps
281+ Receiving data rate: 39012 kbps
282+ Receiving data rate: 39012 kbps
283+ Receiving data rate: 39012 kbps
284+ Receiving data rate: 39012 kbps
285+ Receiving data rate: 39012 kbps
286+ Receiving data rate: 39012 kbps
287+ Receiving data rate: 39012 kbps
288+ Receiving data rate: 39012 kbps
289+ Receiving data rate: 39012 kbps
290+ Receiving data rate: 39012 kbps
291+ Receiving data rate: 39012 kbps
292+ Receiving data rate: 39000 kbps
293+
294+14) ::
295+
296+ // Restore default configuration if needed
297+ $ ip link del eth0.100
298+ $ tc qdisc del dev eth1 root
299+ $ tc qdisc del dev eth0 root
300+ net eth0: Prev FIFO2 is shaped
301+ net eth0: set FIFO3 bw = 0
302+ net eth0: set FIFO2 bw = 0
303+ $ ethtool -L eth0 rx 1 tx 1
304+
305+Example 2: Two port tx AVB configuration scheme for target board
306+----------------------------------------------------------------
307+
308+(prints and scheme for AM572x evm, for dual emac boards only)
309+
310+::
311+
312+ +------------------------------------------------------------------+ u
313+ | +----------+ +----------+ +------+ +----------+ +----------+ | s
314+ | | | | | | | | | | | | e
315+ | | App 1 | | App 2 | | Apps | | App 3 | | App 4 | | r
316+ | | Class A | | Class B | | Rest | | Class B | | Class A | |
317+ | | Eth0 | | Eth0 | | | | | Eth1 | | Eth1 | | s
318+ | | VLAN100 | | VLAN100 | | | | | VLAN100 | | VLAN100 | | p
319+ | | 40 Mb/s | | 20 Mb/s | | | | | 10 Mb/s | | 30 Mb/s | | a
320+ | | SO_PRI=3 | | SO_PRI=2 | | | | | SO_PRI=3 | | SO_PRI=2 | | c
321+ | | | | | | | | | | | | | | | | | e
322+ | +---|------+ +---|------+ +---|--+ +---|------+ +---|------+ |
323+ +-----|-------------|-------------|---------|-------------|--------+
324+ +-+ +-------+ | +----------+ +----+
325+ | | +-------+------+ | |
326+ | | | | | |
327+ +---|-------|-------------|--------------|-------------|-------|---+
328+ | +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ |
329+ | | p3 | | p2 | | p1 | | p0 | | p0 | | p1 | | p2 | | p3 | | k
330+ | \ / \ / \ / \ / \ / \ / \ / \ / | e
331+ | \ / \ / \ / \ / \ / \ / \ / \ / | r
332+ | \/ \/ \/ \/ \/ \/ \/ \/ | n
333+ | | | | | | | | e
334+ | | | +----+ +----+ | | | l
335+ | | | | | | | |
336+ | +----+ +----+ +----+ +----+ +----+ +----+ | s
337+ | |tc0 | |tc1 | |tc2 | |tc2 | |tc1 | |tc0 | | p
338+ | \ / \ / \ / \ / \ / \ / | a
339+ | \ / \ / \ / \ / \ / \ / | c
340+ | \/ \/ \/ \/ \/ \/ | e
341+ | | | +-----+ +-----+ | | |
342+ | | | | | | | | | |
343+ | | | | | | | | | |
344+ | | | | | E E | | | | |
345+ | +----+ +----+ +----+ +----+ t t +----+ +----+ +----+ +----+ |
346+ | |txq0| |txq1| |txq4| |txq5| h h |txq6| |txq7| |txq3| |txq2| |
347+ | \ / \ / \ / \ / 0 1 \ / \ / \ / \ / |
348+ | \ / \ / \ / \ / . . \ / \ / \ / \ / |
349+ | \/ \/ \/ \/ 1 1 \/ \/ \/ \/ |
350+ | +-|------|------|------|--+ 0 0 +-|------|------|------|--+ |
351+ | | | | | | | 0 0 | | | | | | |
352+ +---|------|------|------|---------------|------|------|------|----+
353+ | | | | | | | |
354+ p p p p p p p p
355+ 3 2 0-1, 4-7 <-L2 pri-> 0-1, 4-7 2 3
356+ | | | | | | | |
357+ | | | | | | | |
358+ +---|------|------|------|---------------|------|------|------|----+
359+ | | | | | | | | | |
360+ | +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ |
361+ | |dma7| |dma6| |dma3| |dma2| |dma1| |dma0| |dma4| |dma5| |
362+ | \ / \ / \ / \ / \ / \ / \ / \ / | c
363+ | \S / \S / \ / \ / \ / \ / \S / \S / | p
364+ | \/ \/ \/ \/ \/ \/ \/ \/ | s
365+ | | | | +----- | | | | | w
366+ | | | | | +----+ | | | |
367+ | | | | | | | | | | d
368+ | +----+ +----+ +----+p p+----+ +----+ +----+ | r
369+ | | | | | | |o o| | | | | | | i
370+ | | f3 | | f2 | | f0 |r CPSW r| f3 | | f2 | | f0 | | v
371+ | |tc0 | |tc1 | |tc2 |t t|tc0 | |tc1 | |tc2 | | e
372+ | \CBS / \CBS / \CBS /1 2\CBS / \CBS / \CBS / | r
373+ | \S / \S / \ / \S / \S / \ / |
374+ | \/ \/ \/ \/ \/ \/ |
375+ +------------------------------------------------------------------+
376+ ========================================Eth==========================>
377+
378+1) ::
379+
380+ // Add 8 tx queues, for interface Eth0, but they are common, so are accessed
381+ // by two interfaces Eth0 and Eth1.
382+ $ ethtool -L eth1 rx 1 tx 8
383+ rx unmodified, ignoring
384+
385+2) ::
386+
387+ // Check if num of queues is set correctly:
388+ $ ethtool -l eth0
389+ Channel parameters for eth0:
390+ Pre-set maximums:
391+ RX: 8
392+ TX: 8
393+ Other: 0
394+ Combined: 0
395+ Current hardware settings:
396+ RX: 1
397+ TX: 8
398+ Other: 0
399+ Combined: 0
400+
401+3) ::
402+
403+ // TX queues must be rated starting from 0, so set bws for tx0 and tx1 for Eth0
404+ // and for tx2 and tx3 for Eth1. That is, rates 40 and 20 Mb/s appropriately
405+ // for Eth0 and 30 and 10 Mb/s for Eth1.
406+ // Real speed can differ a bit due to discreetness
407+ // Leave last 4 tx queues as not rated
408+ $ echo 40 > /sys/class/net/eth0/queues/tx-0/tx_maxrate
409+ $ echo 20 > /sys/class/net/eth0/queues/tx-1/tx_maxrate
410+ $ echo 30 > /sys/class/net/eth1/queues/tx-2/tx_maxrate
411+ $ echo 10 > /sys/class/net/eth1/queues/tx-3/tx_maxrate
412+
413+4) ::
414+
415+ // Check maximum rate of tx (cpdma) queues:
416+ $ cat /sys/class/net/eth0/queues/tx-*/tx_maxrate
417+ 40
418+ 20
419+ 30
420+ 10
421+ 0
422+ 0
423+ 0
424+ 0
425+
426+5) ::
427+
428+ // Map skb->priority to traffic class for Eth0:
429+ // 3pri -> tc0, 2pri -> tc1, (0,1,4-7)pri -> tc2
430+ // Map traffic class to transmit queue:
431+ // tc0 -> txq0, tc1 -> txq1, tc2 -> (txq4, txq5)
432+ $ tc qdisc replace dev eth0 handle 100: parent root mqprio num_tc 3 \
433+ map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@1 2@4 hw 1
434+
435+6) ::
436+
437+ // Check classes settings
438+ $ tc -g class show dev eth0
439+ +---(100:ffe2) mqprio
440+ | +---(100:5) mqprio
441+ | +---(100:6) mqprio
442+ |
443+ +---(100:ffe1) mqprio
444+ | +---(100:2) mqprio
445+ |
446+ +---(100:ffe0) mqprio
447+ +---(100:1) mqprio
448+
449+7) ::
450+
451+ // Set rate for class A - 41 Mbit (tc0, txq0) using CBS Qdisc for Eth0
452+ // here only idle slope is important, others ignored
453+ // Real speed can differ a bit due to discreetness
454+ $ tc qdisc add dev eth0 parent 100:1 cbs locredit -1470 \
455+ hicredit 62 sendslope -959000 idleslope 41000 offload 1
456+ net eth0: set FIFO3 bw = 50
457+
458+8) ::
459+
460+ // Set rate for class B - 21 Mbit (tc1, txq1) using CBS Qdisc for Eth0
461+ $ tc qdisc add dev eth0 parent 100:2 cbs locredit -1470 \
462+ hicredit 65 sendslope -979000 idleslope 21000 offload 1
463+ net eth0: set FIFO2 bw = 30
464+
465+9) ::
466+
467+ // Create vlan 100 to map sk->priority to vlan qos for Eth0
468+ $ ip link add link eth0 name eth0.100 type vlan id 100
469+ net eth0: Adding vlanid 100 to vlan filter
470+
471+10) ::
472+
473+ // Map skb->priority to L2 prio for Eth0.100, one to one
474+ $ ip link set eth0.100 type vlan \
475+ egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
476+
477+11) ::
478+
479+ // Check egress map for vlan 100
480+ $ cat /proc/net/vlan/eth0.100
481+ [...]
482+ INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0
483+ EGRESS priority mappings: 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
484+
485+12) ::
486+
487+ // Map skb->priority to traffic class for Eth1:
488+ // 3pri -> tc0, 2pri -> tc1, (0,1,4-7)pri -> tc2
489+ // Map traffic class to transmit queue:
490+ // tc0 -> txq2, tc1 -> txq3, tc2 -> (txq6, txq7)
491+ $ tc qdisc replace dev eth1 handle 100: parent root mqprio num_tc 3 \
492+ map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@2 1@3 2@6 hw 1
493+
494+13) ::
495+
496+ // Check classes settings
497+ $ tc -g class show dev eth1
498+ +---(100:ffe2) mqprio
499+ | +---(100:7) mqprio
500+ | +---(100:8) mqprio
501+ |
502+ +---(100:ffe1) mqprio
503+ | +---(100:4) mqprio
504+ |
505+ +---(100:ffe0) mqprio
506+ +---(100:3) mqprio
507+
508+14) ::
509+
510+ // Set rate for class A - 31 Mbit (tc0, txq2) using CBS Qdisc for Eth1
511+ // here only idle slope is important, others ignored, but calculated
512+ // for interface speed - 100Mb for eth1 port.
513+ // Set it +1 Mb for reserve (important!)
514+ $ tc qdisc add dev eth1 parent 100:3 cbs locredit -1035 \
515+ hicredit 465 sendslope -69000 idleslope 31000 offload 1
516+ net eth1: set FIFO3 bw = 31
517+
518+15) ::
519+
520+ // Set rate for class B - 11 Mbit (tc1, txq3) using CBS Qdisc for Eth1
521+ // Set it +1 Mb for reserve (important!)
522+ $ tc qdisc add dev eth1 parent 100:4 cbs locredit -1335 \
523+ hicredit 405 sendslope -89000 idleslope 11000 offload 1
524+ net eth1: set FIFO2 bw = 11
525+
526+16) ::
527+
528+ // Create vlan 100 to map sk->priority to vlan qos for Eth1
529+ $ ip link add link eth1 name eth1.100 type vlan id 100
530+ net eth1: Adding vlanid 100 to vlan filter
531+
532+17) ::
533+
534+ // Map skb->priority to L2 prio for Eth1.100, one to one
535+ $ ip link set eth1.100 type vlan \
536+ egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
537+
538+18) ::
539+
540+ // Check egress map for vlan 100
541+ $ cat /proc/net/vlan/eth1.100
542+ [...]
543+ INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0
544+ EGRESS priority mappings: 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
545+
546+19) ::
547+
548+ // Run appropriate tools with socket option "SO_PRIORITY" to 3
549+ // for class A and to 2 for class B. For both interfaces
550+ ./tsn_talker -d 18:03:73:66:87:42 -i eth0.100 -p2 -s 1500&
551+ ./tsn_talker -d 18:03:73:66:87:42 -i eth0.100 -p3 -s 1500&
552+ ./tsn_talker -d 20:cf:30:85:7d:fd -i eth1.100 -p2 -s 1500&
553+ ./tsn_talker -d 20:cf:30:85:7d:fd -i eth1.100 -p3 -s 1500&
554+
555+20) ::
556+
557+ // run your listener on workstation (should be in same vlan)
558+ // (I took at https://www.spinics.net/lists/netdev/msg460869.html)
559+ ./tsn_listener -d 18:03:73:66:87:42 -i enp5s0 -s 1500
560+ Receiving data rate: 39012 kbps
561+ Receiving data rate: 39012 kbps
562+ Receiving data rate: 39012 kbps
563+ Receiving data rate: 39012 kbps
564+ Receiving data rate: 39012 kbps
565+ Receiving data rate: 39012 kbps
566+ Receiving data rate: 39012 kbps
567+ Receiving data rate: 39012 kbps
568+ Receiving data rate: 39012 kbps
569+ Receiving data rate: 39012 kbps
570+ Receiving data rate: 39012 kbps
571+ Receiving data rate: 39012 kbps
572+ Receiving data rate: 39000 kbps
573+
574+21) ::
575+
576+ // Restore default configuration if needed
577+ $ ip link del eth1.100
578+ $ ip link del eth0.100
579+ $ tc qdisc del dev eth1 root
580+ net eth1: Prev FIFO2 is shaped
581+ net eth1: set FIFO3 bw = 0
582+ net eth1: set FIFO2 bw = 0
583+ $ tc qdisc del dev eth0 root
584+ net eth0: Prev FIFO2 is shaped
585+ net eth0: set FIFO3 bw = 0
586+ net eth0: set FIFO2 bw = 0
587+ $ ethtool -L eth0 rx 1 tx 1
Documentation/networking/device_drivers/ti/cpsw.txt+0−541
@@ -1,541 +0,0 @@
1−* Texas Instruments CPSW ethernet driver
2−
3−Multiqueue & CBS & MQPRIO
4−=====================================================================
5−=====================================================================
6−
7−The cpsw has 3 CBS shapers for each external ports. This document
8−describes MQPRIO and CBS Qdisc offload configuration for cpsw driver
9−based on examples. It potentially can be used in audio video bridging
10−(AVB) and time sensitive networking (TSN).
11−
12−The following examples were tested on AM572x EVM and BBB boards.
13−
14−Test setup
15−==========
16−
17−Under consideration two examples with AM572x EVM running cpsw driver
18−in dual_emac mode.
19−
20−Several prerequisites:
21−- TX queues must be rated starting from txq0 that has highest priority
22−- Traffic classes are used starting from 0, that has highest priority
23−- CBS shapers should be used with rated queues
24−- The bandwidth for CBS shapers has to be set a little bit more then
25− potential incoming rate, thus, rate of all incoming tx queues has
26− to be a little less
27−- Real rates can differ, due to discreetness
28−- Map skb-priority to txq is not enough, also skb-priority to l2 prio
29− map has to be created with ip or vconfig tool
30−- Any l2/socket prio (0 - 7) for classes can be used, but for
31− simplicity default values are used: 3 and 2
32−- only 2 classes tested: A and B, but checked and can work with more,
33− maximum allowed 4, but only for 3 rate can be set.
34−
35−Test setup for examples
36−=======================
37− +-------------------------------+
38− |--+ |
39− | | Workstation0 |
40− |E | MAC 18:03:73:66:87:42 |
41−+-----------------------------+ +--|t | |
42−| | 1 | E | | |h |./tsn_listener -d \ |
43−| Target board: | 0 | t |--+ |0 | 18:03:73:66:87:42 -i eth0 \|
44−| AM572x EVM | 0 | h | | | -s 1500 |
45−| | 0 | 0 | |--+ |
46−| Only 2 classes: |Mb +---| +-------------------------------+
47−| class A, class B | |
48−| | +---| +-------------------------------+
49−| | 1 | E | |--+ |
50−| | 0 | t | | | Workstation1 |
51−| | 0 | h |--+ |E | MAC 20:cf:30:85:7d:fd |
52−| |Mb | 1 | +--|t | |
53−+-----------------------------+ |h |./tsn_listener -d \ |
54− |0 | 20:cf:30:85:7d:fd -i eth0 \|
55− | | -s 1500 |
56− |--+ |
57− +-------------------------------+
58−
59−*********************************************************************
60−*********************************************************************
61−*********************************************************************
62−Example 1: One port tx AVB configuration scheme for target board
63−----------------------------------------------------------------------
64−(prints and scheme for AM572x evm, applicable for single port boards)
65−
66−tc - traffic class
67−txq - transmit queue
68−p - priority
69−f - fifo (cpsw fifo)
70−S - shaper configured
71−
72−+------------------------------------------------------------------+ u
73−| +---------------+ +---------------+ +------+ +------+ | s
74−| | | | | | | | | | e
75−| | App 1 | | App 2 | | Apps | | Apps | | r
76−| | Class A | | Class B | | Rest | | Rest | |
77−| | Eth0 | | Eth0 | | Eth0 | | Eth1 | | s
78−| | VLAN100 | | VLAN100 | | | | | | | | p
79−| | 40 Mb/s | | 20 Mb/s | | | | | | | | a
80−| | SO_PRIORITY=3 | | SO_PRIORITY=2 | | | | | | | | c
81−| | | | | | | | | | | | | | e
82−| +---|-----------+ +---|-----------+ +---|--+ +---|--+ |
83−+-----|------------------|------------------|--------|-------------+
84− +-+ +------------+ | |
85− | | +-----------------+ +--+
86− | | | |
87−+---|-------|-------------|-----------------------|----------------+
88−| +----+ +----+ +----+ +----+ +----+ |
89−| | p3 | | p2 | | p1 | | p0 | | p0 | | k
90−| \ / \ / \ / \ / \ / | e
91−| \ / \ / \ / \ / \ / | r
92−| \/ \/ \/ \/ \/ | n
93−| | | | | | e
94−| | | +-----+ | | l
95−| | | | | |
96−| +----+ +----+ +----+ +----+ | s
97−| |tc0 | |tc1 | |tc2 | |tc0 | | p
98−| \ / \ / \ / \ / | a
99−| \ / \ / \ / \ / | c
100−| \/ \/ \/ \/ | e
101−| | | +-----+ | |
102−| | | | | | |
103−| | | | | | |
104−| | | | | | |
105−| +----+ +----+ +----+ +----+ +----+ |
106−| |txq0| |txq1| |txq2| |txq3| |txq4| |
107−| \ / \ / \ / \ / \ / |
108−| \ / \ / \ / \ / \ / |
109−| \/ \/ \/ \/ \/ |
110−| +-|------|------|------|--+ +--|--------------+ |
111−| | | | | | | Eth0.100 | | Eth1 | |
112−+---|------|------|------|------------------------|----------------+
113− | | | | |
114− p p p p |
115− 3 2 0-1, 4-7 <- L2 priority |
116− | | | | |
117− | | | | |
118−+---|------|------|------|------------------------|----------------+
119−| | | | | |----------+ |
120−| +----+ +----+ +----+ +----+ +----+ |
121−| |dma7| |dma6| |dma5| |dma4| |dma3| |
122−| \ / \ / \ / \ / \ / | c
123−| \S / \S / \ / \ / \ / | p
124−| \/ \/ \/ \/ \/ | s
125−| | | | +----- | | w
126−| | | | | | |
127−| | | | | | | d
128−| +----+ +----+ +----+p p+----+ | r
129−| | | | | | |o o| | | i
130−| | f3 | | f2 | | f0 |r r| f0 | | v
131−| |tc0 | |tc1 | |tc2 |t t|tc0 | | e
132−| \CBS / \CBS / \CBS /1 2\CBS / | r
133−| \S / \S / \ / \ / |
134−| \/ \/ \/ \/ |
135−+------------------------------------------------------------------+
136−========================================Eth==========================>
137−
138−1)
139−// Add 4 tx queues, for interface Eth0, and 1 tx queue for Eth1
140−$ ethtool -L eth0 rx 1 tx 5
141−rx unmodified, ignoring
142−
143−2)
144−// Check if num of queues is set correctly:
145−$ ethtool -l eth0
146−Channel parameters for eth0:
147−Pre-set maximums:
148−RX: 8
149−TX: 8
150−Other: 0
151−Combined: 0
152−Current hardware settings:
153−RX: 1
154−TX: 5
155−Other: 0
156−Combined: 0
157−
158−3)
159−// TX queues must be rated starting from 0, so set bws for tx0 and tx1
160−// Set rates 40 and 20 Mb/s appropriately.
161−// Pay attention, real speed can differ a bit due to discreetness.
162−// Leave last 2 tx queues not rated.
163−$ echo 40 > /sys/class/net/eth0/queues/tx-0/tx_maxrate
164−$ echo 20 > /sys/class/net/eth0/queues/tx-1/tx_maxrate
165−
166−4)
167−// Check maximum rate of tx (cpdma) queues:
168−$ cat /sys/class/net/eth0/queues/tx-*/tx_maxrate
169−40
170−20
171−0
172−0
173−0
174−
175−5)
176−// Map skb->priority to traffic class:
177−// 3pri -> tc0, 2pri -> tc1, (0,1,4-7)pri -> tc2
178−// Map traffic class to transmit queue:
179−// tc0 -> txq0, tc1 -> txq1, tc2 -> (txq2, txq3)
180−$ tc qdisc replace dev eth0 handle 100: parent root mqprio num_tc 3 \
181−map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@1 2@2 hw 1
182−
183−5a)
184−// As two interface sharing same set of tx queues, assign all traffic
185−// coming to interface Eth1 to separate queue in order to not mix it
186−// with traffic from interface Eth0, so use separate txq to send
187−// packets to Eth1, so all prio -> tc0 and tc0 -> txq4
188−// Here hw 0, so here still default configuration for eth1 in hw
189−$ tc qdisc replace dev eth1 handle 100: parent root mqprio num_tc 1 \
190−map 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 queues 1@4 hw 0
191−
192−6)
193−// Check classes settings
194−$ tc -g class show dev eth0
195−+---(100:ffe2) mqprio
196−| +---(100:3) mqprio
197−| +---(100:4) mqprio
198−|
199−+---(100:ffe1) mqprio
200−| +---(100:2) mqprio
201−|
202−+---(100:ffe0) mqprio
203− +---(100:1) mqprio
204−
205−$ tc -g class show dev eth1
206−+---(100:ffe0) mqprio
207− +---(100:5) mqprio
208−
209−7)
210−// Set rate for class A - 41 Mbit (tc0, txq0) using CBS Qdisc
211−// Set it +1 Mb for reserve (important!)
212−// here only idle slope is important, others arg are ignored
213−// Pay attention, real speed can differ a bit due to discreetness
214−$ tc qdisc add dev eth0 parent 100:1 cbs locredit -1438 \
215−hicredit 62 sendslope -959000 idleslope 41000 offload 1
216−net eth0: set FIFO3 bw = 50
217−
218−8)
219−// Set rate for class B - 21 Mbit (tc1, txq1) using CBS Qdisc:
220−// Set it +1 Mb for reserve (important!)
221−$ tc qdisc add dev eth0 parent 100:2 cbs locredit -1468 \
222−hicredit 65 sendslope -979000 idleslope 21000 offload 1
223−net eth0: set FIFO2 bw = 30
224−
225−9)
226−// Create vlan 100 to map sk->priority to vlan qos
227−$ ip link add link eth0 name eth0.100 type vlan id 100
228−8021q: 802.1Q VLAN Support v1.8
229−8021q: adding VLAN 0 to HW filter on device eth0
230−8021q: adding VLAN 0 to HW filter on device eth1
231−net eth0: Adding vlanid 100 to vlan filter
232−
233−10)
234−// Map skb->priority to L2 prio, 1 to 1
235−$ ip link set eth0.100 type vlan \
236−egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
237−
238−11)
239−// Check egress map for vlan 100
240−$ cat /proc/net/vlan/eth0.100
241−[...]
242−INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0
243−EGRESS priority mappings: 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
244−
245−12)
246−// Run your appropriate tools with socket option "SO_PRIORITY"
247−// to 3 for class A and/or to 2 for class B
248−// (I took at https://www.spinics.net/lists/netdev/msg460869.html)
249−./tsn_talker -d 18:03:73:66:87:42 -i eth0.100 -p3 -s 1500&
250−./tsn_talker -d 18:03:73:66:87:42 -i eth0.100 -p2 -s 1500&
251−
252−13)
253−// run your listener on workstation (should be in same vlan)
254−// (I took at https://www.spinics.net/lists/netdev/msg460869.html)
255−./tsn_listener -d 18:03:73:66:87:42 -i enp5s0 -s 1500
256−Receiving data rate: 39012 kbps
257−Receiving data rate: 39012 kbps
258−Receiving data rate: 39012 kbps
259−Receiving data rate: 39012 kbps
260−Receiving data rate: 39012 kbps
261−Receiving data rate: 39012 kbps
262−Receiving data rate: 39012 kbps
263−Receiving data rate: 39012 kbps
264−Receiving data rate: 39012 kbps
265−Receiving data rate: 39012 kbps
266−Receiving data rate: 39012 kbps
267−Receiving data rate: 39012 kbps
268−Receiving data rate: 39000 kbps
269−
270−14)
271−// Restore default configuration if needed
272−$ ip link del eth0.100
273−$ tc qdisc del dev eth1 root
274−$ tc qdisc del dev eth0 root
275−net eth0: Prev FIFO2 is shaped
276−net eth0: set FIFO3 bw = 0
277−net eth0: set FIFO2 bw = 0
278−$ ethtool -L eth0 rx 1 tx 1
279−
280−*********************************************************************
281−*********************************************************************
282−*********************************************************************
283−Example 2: Two port tx AVB configuration scheme for target board
284−----------------------------------------------------------------------
285−(prints and scheme for AM572x evm, for dual emac boards only)
286−
287−+------------------------------------------------------------------+ u
288−| +----------+ +----------+ +------+ +----------+ +----------+ | s
289−| | | | | | | | | | | | e
290−| | App 1 | | App 2 | | Apps | | App 3 | | App 4 | | r
291−| | Class A | | Class B | | Rest | | Class B | | Class A | |
292−| | Eth0 | | Eth0 | | | | | Eth1 | | Eth1 | | s
293−| | VLAN100 | | VLAN100 | | | | | VLAN100 | | VLAN100 | | p
294−| | 40 Mb/s | | 20 Mb/s | | | | | 10 Mb/s | | 30 Mb/s | | a
295−| | SO_PRI=3 | | SO_PRI=2 | | | | | SO_PRI=3 | | SO_PRI=2 | | c
296−| | | | | | | | | | | | | | | | | e
297−| +---|------+ +---|------+ +---|--+ +---|------+ +---|------+ |
298−+-----|-------------|-------------|---------|-------------|--------+
299− +-+ +-------+ | +----------+ +----+
300− | | +-------+------+ | |
301− | | | | | |
302−+---|-------|-------------|--------------|-------------|-------|---+
303−| +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ |
304−| | p3 | | p2 | | p1 | | p0 | | p0 | | p1 | | p2 | | p3 | | k
305−| \ / \ / \ / \ / \ / \ / \ / \ / | e
306−| \ / \ / \ / \ / \ / \ / \ / \ / | r
307−| \/ \/ \/ \/ \/ \/ \/ \/ | n
308−| | | | | | | | e
309−| | | +----+ +----+ | | | l
310−| | | | | | | |
311−| +----+ +----+ +----+ +----+ +----+ +----+ | s
312−| |tc0 | |tc1 | |tc2 | |tc2 | |tc1 | |tc0 | | p
313−| \ / \ / \ / \ / \ / \ / | a
314−| \ / \ / \ / \ / \ / \ / | c
315−| \/ \/ \/ \/ \/ \/ | e
316−| | | +-----+ +-----+ | | |
317−| | | | | | | | | |
318−| | | | | | | | | |
319−| | | | | E E | | | | |
320−| +----+ +----+ +----+ +----+ t t +----+ +----+ +----+ +----+ |
321−| |txq0| |txq1| |txq4| |txq5| h h |txq6| |txq7| |txq3| |txq2| |
322−| \ / \ / \ / \ / 0 1 \ / \ / \ / \ / |
323−| \ / \ / \ / \ / . . \ / \ / \ / \ / |
324−| \/ \/ \/ \/ 1 1 \/ \/ \/ \/ |
325−| +-|------|------|------|--+ 0 0 +-|------|------|------|--+ |
326−| | | | | | | 0 0 | | | | | | |
327−+---|------|------|------|---------------|------|------|------|----+
328− | | | | | | | |
329− p p p p p p p p
330− 3 2 0-1, 4-7 <-L2 pri-> 0-1, 4-7 2 3
331− | | | | | | | |
332− | | | | | | | |
333−+---|------|------|------|---------------|------|------|------|----+
334−| | | | | | | | | |
335−| +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ |
336−| |dma7| |dma6| |dma3| |dma2| |dma1| |dma0| |dma4| |dma5| |
337−| \ / \ / \ / \ / \ / \ / \ / \ / | c
338−| \S / \S / \ / \ / \ / \ / \S / \S / | p
339−| \/ \/ \/ \/ \/ \/ \/ \/ | s
340−| | | | +----- | | | | | w
341−| | | | | +----+ | | | |
342−| | | | | | | | | | d
343−| +----+ +----+ +----+p p+----+ +----+ +----+ | r
344−| | | | | | |o o| | | | | | | i
345−| | f3 | | f2 | | f0 |r CPSW r| f3 | | f2 | | f0 | | v
346−| |tc0 | |tc1 | |tc2 |t t|tc0 | |tc1 | |tc2 | | e
347−| \CBS / \CBS / \CBS /1 2\CBS / \CBS / \CBS / | r
348−| \S / \S / \ / \S / \S / \ / |
349−| \/ \/ \/ \/ \/ \/ |
350−+------------------------------------------------------------------+
351−========================================Eth==========================>
352−
353−1)
354−// Add 8 tx queues, for interface Eth0, but they are common, so are accessed
355−// by two interfaces Eth0 and Eth1.
356−$ ethtool -L eth1 rx 1 tx 8
357−rx unmodified, ignoring
358−
359−2)
360−// Check if num of queues is set correctly:
361−$ ethtool -l eth0
362−Channel parameters for eth0:
363−Pre-set maximums:
364−RX: 8
365−TX: 8
366−Other: 0
367−Combined: 0
368−Current hardware settings:
369−RX: 1
370−TX: 8
371−Other: 0
372−Combined: 0
373−
374−3)
375−// TX queues must be rated starting from 0, so set bws for tx0 and tx1 for Eth0
376−// and for tx2 and tx3 for Eth1. That is, rates 40 and 20 Mb/s appropriately
377−// for Eth0 and 30 and 10 Mb/s for Eth1.
378−// Real speed can differ a bit due to discreetness
379−// Leave last 4 tx queues as not rated
380−$ echo 40 > /sys/class/net/eth0/queues/tx-0/tx_maxrate
381−$ echo 20 > /sys/class/net/eth0/queues/tx-1/tx_maxrate
382−$ echo 30 > /sys/class/net/eth1/queues/tx-2/tx_maxrate
383−$ echo 10 > /sys/class/net/eth1/queues/tx-3/tx_maxrate
384−
385−4)
386−// Check maximum rate of tx (cpdma) queues:
387−$ cat /sys/class/net/eth0/queues/tx-*/tx_maxrate
388−40
389−20
390−30
391−10
392−0
393−0
394−0
395−0
396−
397−5)
398−// Map skb->priority to traffic class for Eth0:
399−// 3pri -> tc0, 2pri -> tc1, (0,1,4-7)pri -> tc2
400−// Map traffic class to transmit queue:
401−// tc0 -> txq0, tc1 -> txq1, tc2 -> (txq4, txq5)
402−$ tc qdisc replace dev eth0 handle 100: parent root mqprio num_tc 3 \
403−map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@1 2@4 hw 1
404−
405−6)
406−// Check classes settings
407−$ tc -g class show dev eth0
408−+---(100:ffe2) mqprio
409−| +---(100:5) mqprio
410−| +---(100:6) mqprio
411−|
412−+---(100:ffe1) mqprio
413−| +---(100:2) mqprio
414−|
415−+---(100:ffe0) mqprio
416− +---(100:1) mqprio
417−
418−7)
419−// Set rate for class A - 41 Mbit (tc0, txq0) using CBS Qdisc for Eth0
420−// here only idle slope is important, others ignored
421−// Real speed can differ a bit due to discreetness
422−$ tc qdisc add dev eth0 parent 100:1 cbs locredit -1470 \
423−hicredit 62 sendslope -959000 idleslope 41000 offload 1
424−net eth0: set FIFO3 bw = 50
425−
426−8)
427−// Set rate for class B - 21 Mbit (tc1, txq1) using CBS Qdisc for Eth0
428−$ tc qdisc add dev eth0 parent 100:2 cbs locredit -1470 \
429−hicredit 65 sendslope -979000 idleslope 21000 offload 1
430−net eth0: set FIFO2 bw = 30
431−
432−9)
433−// Create vlan 100 to map sk->priority to vlan qos for Eth0
434−$ ip link add link eth0 name eth0.100 type vlan id 100
435−net eth0: Adding vlanid 100 to vlan filter
436−
437−10)
438−// Map skb->priority to L2 prio for Eth0.100, one to one
439−$ ip link set eth0.100 type vlan \
440−egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
441−
442−11)
443−// Check egress map for vlan 100
444−$ cat /proc/net/vlan/eth0.100
445−[...]
446−INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0
447−EGRESS priority mappings: 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
448−
449−12)
450−// Map skb->priority to traffic class for Eth1:
451−// 3pri -> tc0, 2pri -> tc1, (0,1,4-7)pri -> tc2
452−// Map traffic class to transmit queue:
453−// tc0 -> txq2, tc1 -> txq3, tc2 -> (txq6, txq7)
454−$ tc qdisc replace dev eth1 handle 100: parent root mqprio num_tc 3 \
455−map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@2 1@3 2@6 hw 1
456−
457−13)
458−// Check classes settings
459−$ tc -g class show dev eth1
460−+---(100:ffe2) mqprio
461−| +---(100:7) mqprio
462−| +---(100:8) mqprio
463−|
464−+---(100:ffe1) mqprio
465−| +---(100:4) mqprio
466−|
467−+---(100:ffe0) mqprio
468− +---(100:3) mqprio
469−
470−14)
471−// Set rate for class A - 31 Mbit (tc0, txq2) using CBS Qdisc for Eth1
472−// here only idle slope is important, others ignored, but calculated
473−// for interface speed - 100Mb for eth1 port.
474−// Set it +1 Mb for reserve (important!)
475−$ tc qdisc add dev eth1 parent 100:3 cbs locredit -1035 \
476−hicredit 465 sendslope -69000 idleslope 31000 offload 1
477−net eth1: set FIFO3 bw = 31
478−
479−15)
480−// Set rate for class B - 11 Mbit (tc1, txq3) using CBS Qdisc for Eth1
481−// Set it +1 Mb for reserve (important!)
482−$ tc qdisc add dev eth1 parent 100:4 cbs locredit -1335 \
483−hicredit 405 sendslope -89000 idleslope 11000 offload 1
484−net eth1: set FIFO2 bw = 11
485−
486−16)
487−// Create vlan 100 to map sk->priority to vlan qos for Eth1
488−$ ip link add link eth1 name eth1.100 type vlan id 100
489−net eth1: Adding vlanid 100 to vlan filter
490−
491−17)
492−// Map skb->priority to L2 prio for Eth1.100, one to one
493−$ ip link set eth1.100 type vlan \
494−egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
495−
496−18)
497−// Check egress map for vlan 100
498−$ cat /proc/net/vlan/eth1.100
499−[...]
500−INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0
501−EGRESS priority mappings: 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
502−
503−19)
504−// Run appropriate tools with socket option "SO_PRIORITY" to 3
505−// for class A and to 2 for class B. For both interfaces
506−./tsn_talker -d 18:03:73:66:87:42 -i eth0.100 -p2 -s 1500&
507−./tsn_talker -d 18:03:73:66:87:42 -i eth0.100 -p3 -s 1500&
508−./tsn_talker -d 20:cf:30:85:7d:fd -i eth1.100 -p2 -s 1500&
509−./tsn_talker -d 20:cf:30:85:7d:fd -i eth1.100 -p3 -s 1500&
510−
511−20)
512−// run your listener on workstation (should be in same vlan)
513−// (I took at https://www.spinics.net/lists/netdev/msg460869.html)
514−./tsn_listener -d 18:03:73:66:87:42 -i enp5s0 -s 1500
515−Receiving data rate: 39012 kbps
516−Receiving data rate: 39012 kbps
517−Receiving data rate: 39012 kbps
518−Receiving data rate: 39012 kbps
519−Receiving data rate: 39012 kbps
520−Receiving data rate: 39012 kbps
521−Receiving data rate: 39012 kbps
522−Receiving data rate: 39012 kbps
523−Receiving data rate: 39012 kbps
524−Receiving data rate: 39012 kbps
525−Receiving data rate: 39012 kbps
526−Receiving data rate: 39012 kbps
527−Receiving data rate: 39000 kbps
528−
529−21)
530−// Restore default configuration if needed
531−$ ip link del eth1.100
532−$ ip link del eth0.100
533−$ tc qdisc del dev eth1 root
534−net eth1: Prev FIFO2 is shaped
535−net eth1: set FIFO3 bw = 0
536−net eth1: set FIFO2 bw = 0
537−$ tc qdisc del dev eth0 root
538−net eth0: Prev FIFO2 is shaped
539−net eth0: set FIFO3 bw = 0
540−net eth0: set FIFO2 bw = 0
541−$ ethtool -L eth0 rx 1 tx 1
Documentation/networking/device_drivers/ti/cpsw_switchdev.rstrenamed from Documentation/networking/device_drivers/ti/cpsw_switchdev.txt+138−105
@@ -1,30 +1,44 @@
1−* Texas Instruments CPSW switchdev based ethernet driver 2.0
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+======================================================
4+Texas Instruments CPSW switchdev based ethernet driver
5+======================================================
6+
7+:Version: 2.0
8+
9+Port renaming
10+=============
211
3−- Port renaming
412 On older udev versions renaming of ethX to swXpY will not be automatically
513 supported
6−In order to rename via udev:
7−ip -d link show dev sw0p1 | grep switchid
814
9−SUBSYSTEM=="net", ACTION=="add", ATTR{phys_switch_id}==<switchid>, \
10− ATTR{phys_port_name}!="", NAME="sw0$attr{phys_port_name}"
15+In order to rename via udev::
16+
17+ ip -d link show dev sw0p1 | grep switchid
18+
19+ SUBSYSTEM=="net", ACTION=="add", ATTR{phys_switch_id}==<switchid>, \
20+ ATTR{phys_port_name}!="", NAME="sw0$attr{phys_port_name}"
21+
1122
23+Dual mac mode
24+=============
1225
13−====================
14−# Dual mac mode
15−====================
1626 - The new (cpsw_new.c) driver is operating in dual-emac mode by default, thus
17−working as 2 individual network interfaces. Main differences from legacy CPSW
18−driver are:
27+ working as 2 individual network interfaces. Main differences from legacy CPSW
28+ driver are:
29+
1930 - optimized promiscuous mode: The P0_UNI_FLOOD (both ports) is enabled in
20−addition to ALLMULTI (current port) instead of ALE_BYPASS.
21−So, Ports in promiscuous mode will keep possibility of mcast and vlan filtering,
22−which is provides significant benefits when ports are joined to the same bridge,
23−but without enabling "switch" mode, or to different bridges.
31+ addition to ALLMULTI (current port) instead of ALE_BYPASS.
32+ So, Ports in promiscuous mode will keep possibility of mcast and vlan
33+ filtering, which is provides significant benefits when ports are joined
34+ to the same bridge, but without enabling "switch" mode, or to different
35+ bridges.
2436 - learning disabled on ports as it make not too much sense for
2537 segregated ports - no forwarding in HW.
2638 - enabled basic support for devlink.
2739
40+ ::
41+
2842 devlink dev show
2943 platform/48484000.switch
3044
@@ -38,22 +52,25 @@ but without enabling "switch" mode, or to different bridges. · 7 unmodified lines
3852 cmode runtime value false
3953
4054 Devlink configuration parameters
41−====================
55+================================
56+
4257 See Documentation/networking/devlink/ti-cpsw-switch.rst
4358
44−====================
45−# Bridging in dual mac mode
46−====================
59+Bridging in dual mac mode
60+=========================
61+
4762 The dual_mac mode requires two vids to be reserved for internal purposes,
4863 which, by default, equal CPSW Port numbers. As result, bridge has to be
49−configured in vlan unaware mode or default_pvid has to be adjusted.
64+configured in vlan unaware mode or default_pvid has to be adjusted::
5065
5166 ip link add name br0 type bridge
5267 ip link set dev br0 type bridge vlan_filtering 0
5368 echo 0 > /sys/class/net/br0/bridge/default_pvid
5469 ip link set dev sw0p1 master br0
5570 ip link set dev sw0p2 master br0
56− - or -
71+
72+or::
73+
5774 ip link add name br0 type bridge
5875 ip link set dev br0 type bridge vlan_filtering 0
5976 echo 100 > /sys/class/net/br0/bridge/default_pvid
@@ -61,11 +78,12 @@ configured in vlan unaware mode or default_pvid has to be adjusted. · 1 unmodified line
6178 ip link set dev sw0p1 master br0
6279 ip link set dev sw0p2 master br0
6380
64−====================
65−# Enabling "switch"
66−====================
81+Enabling "switch"
82+=================
83+
6784 The Switch mode can be enabled by configuring devlink driver parameter
68−"switch_mode" to 1/true:
85+"switch_mode" to 1/true::
86+
6987 devlink dev param set platform/48484000.switch \
7088 name switch_mode value 1 cmode runtime
7189
@@ -79,9 +97,11 @@ marking packets with offload_fwd_mark flag unless "ale_bypass=0" · 7 unmodified lines
7997
8098 All configuration is implemented via switchdev API.
8199
82−====================
83−# Bridge setup
84−====================
100+Bridge setup
101+============
102+
103+::
104+
85105 devlink dev param set platform/48484000.switch \
86106 name switch_mode value 1 cmode runtime
87107
@@ -91,56 +111,65 @@ All configuration is implemented via switchdev API. · 3 unmodified lines
91111 ip link set dev sw0p2 up
92112 ip link set dev sw0p1 master br0
93113 ip link set dev sw0p2 master br0
114+
94115 [*] bridge vlan add dev br0 vid 1 pvid untagged self
95116
96−[*] if vlan_filtering=1. where default_pvid=1
117+ [*] if vlan_filtering=1. where default_pvid=1
97118
98−=================
99−# On/off STP
100−=================
101−ip link set dev BRDEV type bridge stp_state 1/0
119+ Note. Steps [*] are mandatory.
120+
121+
122+On/off STP
123+==========
102124
103−Note. Steps [*] are mandatory.
125+::
104126
105−====================
106−# VLAN configuration
107−====================
108−bridge vlan add dev br0 vid 1 pvid untagged self <---- add cpu port to VLAN 1
127+ ip link set dev BRDEV type bridge stp_state 1/0
128+
129+VLAN configuration
130+==================
131+
132+::
133+
134+ bridge vlan add dev br0 vid 1 pvid untagged self <---- add cpu port to VLAN 1
109135
110136 Note. This step is mandatory for bridge/default_pvid.
111137
112−=================
113−# Add extra VLANs
114−=================
115− 1. untagged:
116− bridge vlan add dev sw0p1 vid 100 pvid untagged master
117− bridge vlan add dev sw0p2 vid 100 pvid untagged master
118− bridge vlan add dev br0 vid 100 pvid untagged self <---- Add cpu port to VLAN100
138+Add extra VLANs
139+===============
119140
120− 2. tagged:
121− bridge vlan add dev sw0p1 vid 100 master
122− bridge vlan add dev sw0p2 vid 100 master
123− bridge vlan add dev br0 vid 100 pvid tagged self <---- Add cpu port to VLAN100
141+ 1. untagged::
142+
143+ bridge vlan add dev sw0p1 vid 100 pvid untagged master
144+ bridge vlan add dev sw0p2 vid 100 pvid untagged master
145+ bridge vlan add dev br0 vid 100 pvid untagged self <---- Add cpu port to VLAN100
146+
147+ 2. tagged::
148+
149+ bridge vlan add dev sw0p1 vid 100 master
150+ bridge vlan add dev sw0p2 vid 100 master
151+ bridge vlan add dev br0 vid 100 pvid tagged self <---- Add cpu port to VLAN100
124152
125−====
126153 FDBs
127−====
154+----
155+
128156 FDBs are automatically added on the appropriate switch port upon detection
129157
130−Manually adding FDBs:
131−bridge fdb add aa:bb:cc:dd:ee:ff dev sw0p1 master vlan 100
132−bridge fdb add aa:bb:cc:dd:ee:fe dev sw0p2 master <---- Add on all VLANs
158+Manually adding FDBs::
159+
160+ bridge fdb add aa:bb:cc:dd:ee:ff dev sw0p1 master vlan 100
161+ bridge fdb add aa:bb:cc:dd:ee:fe dev sw0p2 master <---- Add on all VLANs
133162
134−====
135163 MDBs
136−====
164+----
165+
137166 MDBs are automatically added on the appropriate switch port upon detection
138167
139−Manually adding MDBs:
140−bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent vid 100
141−bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent <---- Add on all VLANs
168+Manually adding MDBs::
169+
170+ bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent vid 100
171+ bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent <---- Add on all VLANs
142172
143−==================
144173 Multicast flooding
145174 ==================
146175 CPU port mcast_flooding is always on
@@ -148,9 +177,11 @@ CPU port mcast_flooding is always on · 1 unmodified line
148177 Turning flooding on/off on swithch ports:
149178 bridge link set dev sw0p1 mcast_flood on/off
150179
151−==================
152180 Access and Trunk port
153−==================
181+=====================
182+
183+::
184+
154185 bridge vlan add dev sw0p1 vid 100 pvid untagged master
155186 bridge vlan add dev sw0p2 vid 100 master
156187
@@ -158,52 +189,54 @@ Access and Trunk port · 1 unmodified line
158189 bridge vlan add dev br0 vid 100 self
159190 ip link add link br0 name br0.100 type vlan id 100
160191
161− Note. Setting PVID on Bridge device itself working only for
162− default VLAN (default_pvid).
192+Note. Setting PVID on Bridge device itself working only for
193+default VLAN (default_pvid).
194+
195+NFS
196+===
163197
164−=====================
165− NFS
166−=====================
167198 The only way for NFS to work is by chrooting to a minimal environment when
168199 switch configuration that will affect connectivity is needed.
169200 Assuming you are booting NFS with eth1 interface(the script is hacky and
170201 it's just there to prove NFS is doable).
171202
172−setup.sh:
173−#!/bin/sh
174−mkdir proc
175−mount -t proc none /proc
176−ifconfig br0 > /dev/null
177−if [ $? -ne 0 ]; then
178− echo "Setting up bridge"
179− ip link add name br0 type bridge
180− ip link set dev br0 type bridge ageing_time 1000
181− ip link set dev br0 type bridge vlan_filtering 1
182−
183− ip link set eth1 down
184− ip link set eth1 name sw0p1
185− ip link set dev sw0p1 up
186− ip link set dev sw0p2 up
187− ip link set dev sw0p2 master br0
188− ip link set dev sw0p1 master br0
189− bridge vlan add dev br0 vid 1 pvid untagged self
190− ifconfig sw0p1 0.0.0.0
191− udhchc -i br0
192−fi
193−umount /proc
194−
195−run_nfs.sh:
196−#!/bin/sh
197−mkdir /tmp/root/bin -p
198−mkdir /tmp/root/lib -p
199−
200−cp -r /lib/ /tmp/root/
201−cp -r /bin/ /tmp/root/
202−cp /sbin/ip /tmp/root/bin
203−cp /sbin/bridge /tmp/root/bin
204−cp /sbin/ifconfig /tmp/root/bin
205−cp /sbin/udhcpc /tmp/root/bin
206−cp /path/to/setup.sh /tmp/root/bin
207−chroot /tmp/root/ busybox sh /bin/setup.sh
208−
209−run ./run_nfs.sh
203+setup.sh::
204+
205+ #!/bin/sh
206+ mkdir proc
207+ mount -t proc none /proc
208+ ifconfig br0 > /dev/null
209+ if [ $? -ne 0 ]; then
210+ echo "Setting up bridge"
211+ ip link add name br0 type bridge
212+ ip link set dev br0 type bridge ageing_time 1000
213+ ip link set dev br0 type bridge vlan_filtering 1
214+
215+ ip link set eth1 down
216+ ip link set eth1 name sw0p1
217+ ip link set dev sw0p1 up
218+ ip link set dev sw0p2 up
219+ ip link set dev sw0p2 master br0
220+ ip link set dev sw0p1 master br0
221+ bridge vlan add dev br0 vid 1 pvid untagged self
222+ ifconfig sw0p1 0.0.0.0
223+ udhchc -i br0
224+ fi
225+ umount /proc
226+
227+run_nfs.sh:::
228+
229+ #!/bin/sh
230+ mkdir /tmp/root/bin -p
231+ mkdir /tmp/root/lib -p
232+
233+ cp -r /lib/ /tmp/root/
234+ cp -r /bin/ /tmp/root/
235+ cp /sbin/ip /tmp/root/bin
236+ cp /sbin/bridge /tmp/root/bin
237+ cp /sbin/ifconfig /tmp/root/bin
238+ cp /sbin/udhcpc /tmp/root/bin
239+ cp /path/to/setup.sh /tmp/root/bin
240+ chroot /tmp/root/ busybox sh /bin/setup.sh
241+
242+ run ./run_nfs.sh
Documentation/networking/device_drivers/ti/tlan.rstrenamed from Documentation/networking/device_drivers/ti/tlan.txt+48−25
@@ -1,20 +1,33 @@
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+=====================
4+TLAN driver for Linux
5+=====================
6+
7+:Version: 1.14a
8+
19 (C) 1997-1998 Caldera, Inc.
10+
211 (C) 1998 James Banks
12+
313 (C) 1999-2001 Torben Mathiasen <tmm@image.dk, torben.mathiasen@compaq.com>
414
515 For driver information/updates visit http://www.compaq.com
616
717
8−TLAN driver for Linux, version 1.14a
9−README
1018
1119
12−I. Supported Devices.
20+
21+I. Supported Devices
22+====================
1323
1424 Only PCI devices will work with this driver.
1525
1626 Supported:
27+
28+ ========= ========= ===========================================
1729 Vendor ID Device ID Name
30+ ========= ========= ===========================================
1831 0e11 ae32 Compaq Netelligent 10/100 TX PCI UTP
1932 0e11 ae34 Compaq Netelligent 10 T PCI UTP
2033 0e11 ae35 Compaq Integrated NetFlex 3/P
@@ -25,13 +38,14 @@ I. Supported Devices. · 4 unmodified lines
2538 0e11 b030 Compaq Netelligent 10/100 TX UTP
2639 0e11 f130 Compaq NetFlex 3/P
2740 0e11 f150 Compaq NetFlex 3/P
28− 108d 0012 Olicom OC-2325
41+ 108d 0012 Olicom OC-2325
2942 108d 0013 Olicom OC-2183
30− 108d 0014 Olicom OC-2326
43+ 108d 0014 Olicom OC-2326
44+ ========= ========= ===========================================
3145
3246
3347 Caveats:
34−
48+
3549 I am not sure if 100BaseTX daughterboards (for those cards which
3650 support such things) will work. I haven't had any solid evidence
3751 either way.
@@ -41,21 +55,25 @@ I. Supported Devices. · 3 unmodified lines
4155
4256 The "Netelligent 10 T/2 PCI UTP/Coax" (b012) device is untested,
4357 but I do not expect any problems.
44−
4558
46−II. Driver Options
59+
60+II. Driver Options
61+==================
62+
4763 1. You can append debug=x to the end of the insmod line to get
48− debug messages, where x is a bit field where the bits mean
64+ debug messages, where x is a bit field where the bits mean
4965 the following:
50−
66+
67+ ==== =====================================
5168 0x01 Turn on general debugging messages.
5269 0x02 Turn on receive debugging messages.
5370 0x04 Turn on transmit debugging messages.
5471 0x08 Turn on list debugging messages.
72+ ==== =====================================
5573
5674 2. You can append aui=1 to the end of the insmod line to cause
57− the adapter to use the AUI interface instead of the 10 Base T
58− interface. This is also what to do if you want to use the BNC
75+ the adapter to use the AUI interface instead of the 10 Base T
76+ interface. This is also what to do if you want to use the BNC
5977 connector on a TLAN based device. (Setting this option on a
6078 device that does not have an AUI/BNC connector will probably
6179 cause it to not function correctly.)
@@ -70,41 +88,45 @@ II. Driver Options · 8 unmodified lines
7088
7189 5. You have to use speed=X duplex=Y together now. If you just
7290 do "insmod tlan.o speed=100" the driver will do Auto-Neg.
73− To force a 10Mbps Half-Duplex link do "insmod tlan.o speed=10
91+ To force a 10Mbps Half-Duplex link do "insmod tlan.o speed=10
7492 duplex=1".
7593
7694 6. If the driver is built into the kernel, you can use the 3rd
7795 and 4th parameters to set aui and debug respectively. For
78− example:
96+ example::
7997
80− ether=0,0,0x1,0x7,eth0
98+ ether=0,0,0x1,0x7,eth0
8199
82100 This sets aui to 0x1 and debug to 0x7, assuming eth0 is a
83101 supported TLAN device.
84102
85103 The bits in the third byte are assigned as follows:
86104
87− 0x01 = aui
88− 0x02 = use half duplex
89− 0x04 = use full duplex
90− 0x08 = use 10BaseT
91− 0x10 = use 100BaseTx
105+ ==== ===============
106+ 0x01 aui
107+ 0x02 use half duplex
108+ 0x04 use full duplex
109+ 0x08 use 10BaseT
110+ 0x10 use 100BaseTx
111+ ==== ===============
92112
93113 You also need to set both speed and duplex settings when forcing
94− speeds with kernel-parameters.
114+ speeds with kernel-parameters.
95115 ether=0,0,0x12,0,eth0 will force link to 100Mbps Half-Duplex.
96116
97117 7. If you have more than one tlan adapter in your system, you can
98118 use the above options on a per adapter basis. To force a 100Mbit/HD
99− link with your eth1 adapter use:
100−
101− insmod tlan speed=0,100 duplex=0,1
119+ link with your eth1 adapter use::
120+
121+ insmod tlan speed=0,100 duplex=0,1
102122
103123 Now eth0 will use auto-neg and eth1 will be forced to 100Mbit/HD.
104124 Note that the tlan driver supports a maximum of 8 adapters.
105125
106126
107−III. Things to try if you have problems.
127+III. Things to try if you have problems
128+=======================================
129+
108130 1. Make sure your card's PCI id is among those listed in
109131 section I, above.
110132 2. Make sure routing is correct.
@@ -113,5 +135,6 @@ III. Things to try if you have problems. · 2 unmodified lines
113135
114136 There is also a tlan mailing list which you can join by sending "subscribe tlan"
115137 in the body of an email to majordomo@vuser.vu.union.edu.
138+
116139 There is also a tlan website at http://www.compaq.com
117140
Documentation/networking/device_drivers/toshiba/spider_net.rstrenamed from Documentation/networking/device_drivers/toshiba/spider_net.txt+29−31
@@ -1,6 +1,8 @@
1+.. SPDX-License-Identifier: GPL-2.0
12
2− The Spidernet Device Driver
3− ===========================
3+===========================
4+The Spidernet Device Driver
5+===========================
46
57 Written by Linas Vepstas <linas@austin.ibm.com>
68
@@ -78,15 +80,15 @@ GDACTDPA, tail and head pointers. It will also summarize the contents · 71 unmodified lines
7880 of the ring, starting at the tail pointer, and listing the status
7981 of the descrs that follow.
8082
81−A typical example of the output, for a nearly idle system, might be
83+A typical example of the output, for a nearly idle system, might be::
8284
83−net eth1: Total number of descrs=256
84−net eth1: Chain tail located at descr=20
85−net eth1: Chain head is at 20
86−net eth1: HW curr desc (GDACTDPA) is at 21
87−net eth1: Have 1 descrs with stat=x40800101
88−net eth1: HW next desc (GDACNEXTDA) is at 22
89−net eth1: Last 255 descrs with stat=xa0800000
85+ net eth1: Total number of descrs=256
86+ net eth1: Chain tail located at descr=20
87+ net eth1: Chain head is at 20
88+ net eth1: HW curr desc (GDACTDPA) is at 21
89+ net eth1: Have 1 descrs with stat=x40800101
90+ net eth1: HW next desc (GDACNEXTDA) is at 22
91+ net eth1: Last 255 descrs with stat=xa0800000
9092
9193 In the above, the hardware has filled in one descr, number 20. Both
9294 head and tail are pointing at 20, because it has not yet been emptied.
@@ -101,11 +103,11 @@ The status x4... corresponds to "full" and status xa... corresponds · 8 unmodified lines
101103 to "empty". The actual value printed is RXCOMST_A.
102104
103105 In the device driver source code, a different set of names are
104−used for these same concepts, so that
106+used for these same concepts, so that::
105107
106−"empty" == SPIDER_NET_DESCR_CARDOWNED == 0xa
107−"full" == SPIDER_NET_DESCR_FRAME_END == 0x4
108−"not in use" == SPIDER_NET_DESCR_NOT_IN_USE == 0xf
108+ "empty" == SPIDER_NET_DESCR_CARDOWNED == 0xa
109+ "full" == SPIDER_NET_DESCR_FRAME_END == 0x4
110+ "not in use" == SPIDER_NET_DESCR_NOT_IN_USE == 0xf
109111
110112
111113 The RX RAM full bug/feature
@@ -137,19 +139,19 @@ while the hardware is waiting for a different set of descrs to become · 25 unmodified lines
137139 empty.
138140
139141 A call to show_rx_chain() at this point indicates the nature of the
140−problem. A typical print when the network is hung shows the following:
141−
142−net eth1: Spider RX RAM full, incoming packets might be discarded!
143−net eth1: Total number of descrs=256
144−net eth1: Chain tail located at descr=255
145−net eth1: Chain head is at 255
146−net eth1: HW curr desc (GDACTDPA) is at 0
147−net eth1: Have 1 descrs with stat=xa0800000
148−net eth1: HW next desc (GDACNEXTDA) is at 1
149−net eth1: Have 127 descrs with stat=x40800101
150−net eth1: Have 1 descrs with stat=x40800001
151−net eth1: Have 126 descrs with stat=x40800101
152−net eth1: Last 1 descrs with stat=xa0800000
142+problem. A typical print when the network is hung shows the following::
143+
144+ net eth1: Spider RX RAM full, incoming packets might be discarded!
145+ net eth1: Total number of descrs=256
146+ net eth1: Chain tail located at descr=255
147+ net eth1: Chain head is at 255
148+ net eth1: HW curr desc (GDACTDPA) is at 0
149+ net eth1: Have 1 descrs with stat=xa0800000
150+ net eth1: HW next desc (GDACNEXTDA) is at 1
151+ net eth1: Have 127 descrs with stat=x40800101
152+ net eth1: Have 1 descrs with stat=x40800001
153+ net eth1: Have 126 descrs with stat=x40800101
154+ net eth1: Last 1 descrs with stat=xa0800000
153155
154156 Both the tail and head pointers are pointing at descr 255, which is
155157 marked xa... which is "empty". Thus, from the OS point of view, there
@@ -198,7 +200,3 @@ For large packets, this mechanism generates a relatively small number · 42 unmodified lines
198200 of interrupts, about 1K/sec. For smaller packets, this will drop to zero
199201 interrupts, as the hardware can empty the queue faster than the kernel
200202 can fill it.
201−
202−
203− ======= END OF DOCUMENT ========
204−
Documentation/networking/devlink-params-sja1105.txt+27−0
@@ -0,0 +1,27 @@
1+best_effort_vlan_filtering
2+ [DEVICE, DRIVER-SPECIFIC]
3+ Allow plain ETH_P_8021Q headers to be used as DSA tags.
4+ Benefits:
5+ - Can terminate untagged traffic over switch net
6+ devices even when enslaved to a bridge with
7+ vlan_filtering=1.
8+ - Can terminate VLAN-tagged traffic over switch net
9+ devices even when enslaved to a bridge with
10+ vlan_filtering=1, with some constraints (no more than
11+ 7 non-pvid VLANs per user port).
12+ - Can do QoS based on VLAN PCP and VLAN membership
13+ admission control for autonomously forwarded frames
14+ (regardless of whether they can be terminated on the
15+ CPU or not).
16+ Drawbacks:
17+ - User cannot use VLANs in range 1024-3071. If the
18+ switch receives frames with such VIDs, it will
19+ misinterpret them as DSA tags.
20+ - Switch uses Shared VLAN Learning (FDB lookup uses
21+ only DMAC as key).
22+ - When VLANs span cross-chip topologies, the total
23+ number of permitted VLANs may be less than 7 per
24+ port, due to a maximum number of 32 VLAN retagging
25+ rules per switch.
26+ Configuration mode: runtime
27+ Type: bool.
Documentation/networking/devlink/devlink-region.rst+9−2
@@ -14,6 +14,10 @@ Region snapshots are collected by the driver, and can be accessed via read · 13 unmodified lines
1414 or dump commands. This allows future analysis on the created snapshots.
1515 Regions may optionally support triggering snapshots on demand.
1616
17+Snapshot identifiers are scoped to the devlink instance, not a region.
18+All snapshots with the same snapshot id within a devlink instance
19+correspond to the same event.
20+
1721 The major benefit to creating a region is to provide access to internal
1822 address regions that are otherwise inaccessible to the user.
1923
@@ -23,7 +27,9 @@ states, but see also :doc:`devlink-health` · 3 unmodified lines
2327 Regions may optionally support capturing a snapshot on demand via the
2428 ``DEVLINK_CMD_REGION_NEW`` netlink message. A driver wishing to allow
2529 requested snapshots must implement the ``.snapshot`` callback for the region
26−in its ``devlink_region_ops`` structure.
30+in its ``devlink_region_ops`` structure. If snapshot id is not set in
31+the ``DEVLINK_CMD_REGION_NEW`` request kernel will allocate one and send
32+the snapshot information to user space.
2733
2834 example usage
2935 -------------
@@ -45,7 +51,8 @@ example usage · 15 unmodified lines
4551 $ devlink region del pci/0000:00:05.0/cr-space snapshot 1
4652
4753 # Request an immediate snapshot, if supported by the region
48− $ devlink region new pci/0000:00:05.0/cr-space snapshot 5
54+ $ devlink region new pci/0000:00:05.0/cr-space
55+ pci/0000:00:05.0/cr-space: snapshot 5
4956
5057 # Dump a snapshot:
5158 $ devlink region dump pci/0000:00:05.0/fw-health snapshot 1
Documentation/networking/devlink/devlink-trap.rst+216−3
@@ -55,7 +55,7 @@ The following diagram provides a general overview of ``devlink-trap``:: · 54 unmodified lines
5555 | |
5656 +-------^--------+
5757 |
58− |
58+ | Non-control traps
5959 |
6060 +----+----+
6161 | | Kernel's Rx path
@@ -97,6 +97,12 @@ The ``devlink-trap`` mechanism supports the following packet trap types: · 35 unmodified lines
9797 processed by ``devlink`` and injected to the kernel's Rx path. Changing the
9898 action of such traps is not allowed, as it can easily break the control
9999 plane.
100+ * ``control``: Trapped packets were trapped by the device because these are
101+ control packets required for the correct functioning of the control plane.
102+ For example, ARP request and IGMP query packets. Packets are injected to
103+ the kernel's Rx path, but not reported to the kernel's drop monitor.
104+ Changing the action of such traps is not allowed, as it can easily break
105+ the control plane.
100106
101107 .. _Trap-Actions:
102108
@@ -108,6 +114,8 @@ The ``devlink-trap`` mechanism supports the following packet trap actions: · 5 unmodified lines
108114 * ``trap``: The sole copy of the packet is sent to the CPU.
109115 * ``drop``: The packet is dropped by the underlying device and a copy is not
110116 sent to the CPU.
117+ * ``mirror``: The packet is forwarded by the underlying device and a copy is
118+ sent to the CPU.
111119
112120 Generic Packet Traps
113121 ====================
@@ -244,6 +252,159 @@ be added to the following table: · 130 unmodified lines
244252 * - ``egress_flow_action_drop``
245253 - ``drop``
246254 - Traps packets dropped during processing of egress flow action drop
255+ * - ``stp``
256+ - ``control``
257+ - Traps STP packets
258+ * - ``lacp``
259+ - ``control``
260+ - Traps LACP packets
261+ * - ``lldp``
262+ - ``control``
263+ - Traps LLDP packets
264+ * - ``igmp_query``
265+ - ``control``
266+ - Traps IGMP Membership Query packets
267+ * - ``igmp_v1_report``
268+ - ``control``
269+ - Traps IGMP Version 1 Membership Report packets
270+ * - ``igmp_v2_report``
271+ - ``control``
272+ - Traps IGMP Version 2 Membership Report packets
273+ * - ``igmp_v3_report``
274+ - ``control``
275+ - Traps IGMP Version 3 Membership Report packets
276+ * - ``igmp_v2_leave``
277+ - ``control``
278+ - Traps IGMP Version 2 Leave Group packets
279+ * - ``mld_query``
280+ - ``control``
281+ - Traps MLD Multicast Listener Query packets
282+ * - ``mld_v1_report``
283+ - ``control``
284+ - Traps MLD Version 1 Multicast Listener Report packets
285+ * - ``mld_v2_report``
286+ - ``control``
287+ - Traps MLD Version 2 Multicast Listener Report packets
288+ * - ``mld_v1_done``
289+ - ``control``
290+ - Traps MLD Version 1 Multicast Listener Done packets
291+ * - ``ipv4_dhcp``
292+ - ``control``
293+ - Traps IPv4 DHCP packets
294+ * - ``ipv6_dhcp``
295+ - ``control``
296+ - Traps IPv6 DHCP packets
297+ * - ``arp_request``
298+ - ``control``
299+ - Traps ARP request packets
300+ * - ``arp_response``
301+ - ``control``
302+ - Traps ARP response packets
303+ * - ``arp_overlay``
304+ - ``control``
305+ - Traps NVE-decapsulated ARP packets that reached the overlay network.
306+ This is required, for example, when the address that needs to be
307+ resolved is a local address
308+ * - ``ipv6_neigh_solicit``
309+ - ``control``
310+ - Traps IPv6 Neighbour Solicitation packets
311+ * - ``ipv6_neigh_advert``
312+ - ``control``
313+ - Traps IPv6 Neighbour Advertisement packets
314+ * - ``ipv4_bfd``
315+ - ``control``
316+ - Traps IPv4 BFD packets
317+ * - ``ipv6_bfd``
318+ - ``control``
319+ - Traps IPv6 BFD packets
320+ * - ``ipv4_ospf``
321+ - ``control``
322+ - Traps IPv4 OSPF packets
323+ * - ``ipv6_ospf``
324+ - ``control``
325+ - Traps IPv6 OSPF packets
326+ * - ``ipv4_bgp``
327+ - ``control``
328+ - Traps IPv4 BGP packets
329+ * - ``ipv6_bgp``
330+ - ``control``
331+ - Traps IPv6 BGP packets
332+ * - ``ipv4_vrrp``
333+ - ``control``
334+ - Traps IPv4 VRRP packets
335+ * - ``ipv6_vrrp``
336+ - ``control``
337+ - Traps IPv6 VRRP packets
338+ * - ``ipv4_pim``
339+ - ``control``
340+ - Traps IPv4 PIM packets
341+ * - ``ipv6_pim``
342+ - ``control``
343+ - Traps IPv6 PIM packets
344+ * - ``uc_loopback``
345+ - ``control``
346+ - Traps unicast packets that need to be routed through the same layer 3
347+ interface from which they were received. Such packets are routed by the
348+ kernel, but also cause it to potentially generate ICMP redirect packets
349+ * - ``local_route``
350+ - ``control``
351+ - Traps unicast packets that hit a local route and need to be locally
352+ delivered
353+ * - ``external_route``
354+ - ``control``
355+ - Traps packets that should be routed through an external interface (e.g.,
356+ management interface) that does not belong to the same device (e.g.,
357+ switch ASIC) as the ingress interface
358+ * - ``ipv6_uc_dip_link_local_scope``
359+ - ``control``
360+ - Traps unicast IPv6 packets that need to be routed and have a destination
361+ IP address with a link-local scope (i.e., fe80::/10). The trap allows
362+ device drivers to avoid programming link-local routes, but still receive
363+ packets for local delivery
364+ * - ``ipv6_dip_all_nodes``
365+ - ``control``
366+ - Traps IPv6 packets that their destination IP address is the "All Nodes
367+ Address" (i.e., ff02::1)
368+ * - ``ipv6_dip_all_routers``
369+ - ``control``
370+ - Traps IPv6 packets that their destination IP address is the "All Routers
371+ Address" (i.e., ff02::2)
372+ * - ``ipv6_router_solicit``
373+ - ``control``
374+ - Traps IPv6 Router Solicitation packets
375+ * - ``ipv6_router_advert``
376+ - ``control``
377+ - Traps IPv6 Router Advertisement packets
378+ * - ``ipv6_redirect``
379+ - ``control``
380+ - Traps IPv6 Redirect Message packets
381+ * - ``ipv4_router_alert``
382+ - ``control``
383+ - Traps IPv4 packets that need to be routed and include the Router Alert
384+ option. Such packets need to be locally delivered to raw sockets that
385+ have the IP_ROUTER_ALERT socket option set
386+ * - ``ipv6_router_alert``
387+ - ``control``
388+ - Traps IPv6 packets that need to be routed and include the Router Alert
389+ option in their Hop-by-Hop extension header. Such packets need to be
390+ locally delivered to raw sockets that have the IPV6_ROUTER_ALERT socket
391+ option set
392+ * - ``ptp_event``
393+ - ``control``
394+ - Traps PTP time-critical event messages (Sync, Delay_req, Pdelay_Req and
395+ Pdelay_Resp)
396+ * - ``ptp_general``
397+ - ``control``
398+ - Traps PTP general messages (Announce, Follow_Up, Delay_Resp,
399+ Pdelay_Resp_Follow_Up, management and signaling)
400+ * - ``flow_action_sample``
401+ - ``control``
402+ - Traps packets sampled during processing of flow action sample (e.g., via
403+ tc's sample action)
404+ * - ``flow_action_trap``
405+ - ``control``
406+ - Traps packets logged during processing of flow action trap (e.g., via
407+ tc's trap action)
247408
248409 Driver-specific Packet Traps
249410 ============================
@@ -277,8 +438,11 @@ narrow. The description of these groups must be added to the following table: · 27 unmodified lines
277438 - Contains packet traps for packets that were dropped by the device during
278439 layer 2 forwarding (i.e., bridge)
279440 * - ``l3_drops``
280− - Contains packet traps for packets that were dropped by the device or hit
281− an exception (e.g., TTL error) during layer 3 forwarding
441+ - Contains packet traps for packets that were dropped by the device during
442+ layer 3 forwarding
443+ * - ``l3_exceptions``
444+ - Contains packet traps for packets that hit an exception (e.g., TTL
445+ error) during layer 3 forwarding
282446 * - ``buffer_drops``
283447 - Contains packet traps for packets that were dropped by the device due to
284448 an enqueue decision
@@ -288,6 +452,55 @@ narrow. The description of these groups must be added to the following table: · 3 unmodified lines
288452 * - ``acl_drops``
289453 - Contains packet traps for packets that were dropped by the device during
290454 ACL processing
455+ * - ``stp``
456+ - Contains packet traps for STP packets
457+ * - ``lacp``
458+ - Contains packet traps for LACP packets
459+ * - ``lldp``
460+ - Contains packet traps for LLDP packets
461+ * - ``mc_snooping``
462+ - Contains packet traps for IGMP and MLD packets required for multicast
463+ snooping
464+ * - ``dhcp``
465+ - Contains packet traps for DHCP packets
466+ * - ``neigh_discovery``
467+ - Contains packet traps for neighbour discovery packets (e.g., ARP, IPv6
468+ ND)
469+ * - ``bfd``
470+ - Contains packet traps for BFD packets
471+ * - ``ospf``
472+ - Contains packet traps for OSPF packets
473+ * - ``bgp``
474+ - Contains packet traps for BGP packets
475+ * - ``vrrp``
476+ - Contains packet traps for VRRP packets
477+ * - ``pim``
478+ - Contains packet traps for PIM packets
479+ * - ``uc_loopback``
480+ - Contains a packet trap for unicast loopback packets (i.e.,
481+ ``uc_loopback``). This trap is singled-out because in cases such as
482+ one-armed router it will be constantly triggered. To limit the impact on
483+ the CPU usage, a packet trap policer with a low rate can be bound to the
484+ group without affecting other traps
485+ * - ``local_delivery``
486+ - Contains packet traps for packets that should be locally delivered after
487+ routing, but do not match more specific packet traps (e.g.,
488+ ``ipv4_bgp``)
489+ * - ``ipv6``
490+ - Contains packet traps for various IPv6 control packets (e.g., Router
491+ Advertisements)
492+ * - ``ptp_event``
493+ - Contains packet traps for PTP time-critical event messages (Sync,
494+ Delay_req, Pdelay_Req and Pdelay_Resp)
495+ * - ``ptp_general``
496+ - Contains packet traps for PTP general messages (Announce, Follow_Up,
497+ Delay_Resp, Pdelay_Resp_Follow_Up, management and signaling)
498+ * - ``acl_sample``
499+ - Contains packet traps for packets that were sampled by the device during
500+ ACL processing
501+ * - ``acl_trap``
502+ - Contains packet traps for packets that were trapped (logged) by the
503+ device during ACL processing
291504
292505 Packet Trap Policers
293506 ====================
Documentation/networking/devlink/ice.rst+11−0
@@ -69,6 +69,17 @@ The ``ice`` driver reports the following versions · 68 unmodified lines
6969 - The version of the DDP package that is active in the device. Note
7070 that both the name (as reported by ``fw.app.name``) and version are
7171 required to uniquely identify the package.
72+ * - ``fw.netlist``
73+ - running
74+ - 1.1.2000-6.7.0
75+ - The version of the netlist module. This module defines the device's
76+ Ethernet capabilities and default settings, and is used by the
77+ management firmware as part of managing link and device
78+ connectivity.
79+ * - ``fw.netlist.build``
80+ - running
81+ - 0xee16ced7
82+ - The first 4 bytes of the hash of the netlist module contents.
7283
7384 Regions
7485 =======
Documentation/networking/dns_resolver.rstrenamed from Documentation/networking/dns_resolver.txt+25−27
@@ -1,8 +1,10 @@
1− ===================
2− DNS Resolver Module
3− ===================
1+.. SPDX-License-Identifier: GPL-2.0
42
5−Contents:
3+===================
4+DNS Resolver Module
5+===================
6+
7+.. Contents:
68
79 - Overview.
810 - Compilation.
@@ -12,8 +14,7 @@ Contents: · 3 unmodified lines
1214 - Debugging.
1315
1416
15−========
16−OVERVIEW
17+Overview
1718 ========
1819
1920 The DNS resolver module provides a way for kernel services to make DNS queries
@@ -33,50 +34,50 @@ It does not yet support the following AFS features: · 13 unmodified lines
3334 This code is extracted from the CIFS filesystem.
3435
3536
36−===========
37−COMPILATION
37+Compilation
3838 ===========
3939
40−The module should be enabled by turning on the kernel configuration options:
40+The module should be enabled by turning on the kernel configuration options::
4141
4242 CONFIG_DNS_RESOLVER - tristate "DNS Resolver support"
4343
4444
45−==========
46−SETTING UP
45+Setting up
4746 ==========
4847
4948 To set up this facility, the /etc/request-key.conf file must be altered so that
5049 /sbin/request-key can appropriately direct the upcalls. For example, to handle
5150 basic dname to IPv4/IPv6 address resolution, the following line should be
52−added:
51+added::
52+
5353
5454 #OP TYPE DESC CO-INFO PROGRAM ARG1 ARG2 ARG3 ...
5555 #====== ============ ======= ======= ==========================
5656 create dns_resolver * * /usr/sbin/cifs.upcall %k
5757
5858 To direct a query for query type 'foo', a line of the following should be added
59−before the more general line given above as the first match is the one taken.
59+before the more general line given above as the first match is the one taken::
6060
6161 create dns_resolver foo:* * /usr/sbin/dns.foo %k
6262
6363
64−=====
65−USAGE
64+Usage
6665 =====
6766
6867 To make use of this facility, one of the following functions that are
69−implemented in the module can be called after doing:
68+implemented in the module can be called after doing::
7069
7170 #include <linux/dns_resolver.h>
7271
73− (1) int dns_query(const char *type, const char *name, size_t namelen,
74− const char *options, char **_result, time_t *_expiry);
72+ ::
73+
74+ int dns_query(const char *type, const char *name, size_t namelen,
75+ const char *options, char **_result, time_t *_expiry);
7576
7677 This is the basic access function. It looks for a cached DNS query and if
7778 it doesn't find it, it upcalls to userspace to make a new DNS query, which
7879 may then be cached. The key description is constructed as a string of the
79− form:
80+ form::
8081
8182 [<type>:]<name>
8283
@@ -107,16 +108,14 @@ This can be cleared by any process that has the CAP_SYS_ADMIN capability by · 24 unmodified lines
107108 the use of KEYCTL_KEYRING_CLEAR on the keyring ID.
108109
109110
110−===============================
111−READING DNS KEYS FROM USERSPACE
111+Reading DNS Keys from Userspace
112112 ===============================
113113
114114 Keys of dns_resolver type can be read from userspace using keyctl_read() or
115115 "keyctl read/print/pipe".
116116
117117
118−=========
119−MECHANISM
118+Mechanism
120119 =========
121120
122121 The dnsresolver module registers a key type called "dns_resolver". Keys of
@@ -147,11 +146,10 @@ See <file:Documentation/security/keys/request-key.rst> for further · 24 unmodified lines
147146 information about request-key function.
148147
149148
150−=========
151−DEBUGGING
149+Debugging
152150 =========
153151
154152 Debugging messages can be turned on dynamically by writing a 1 into the
155−following file:
153+following file::
156154
157− /sys/module/dnsresolver/parameters/debug
155+ /sys/module/dnsresolver/parameters/debug
Documentation/networking/driver.rstrenamed from Documentation/networking/driver.txt+13−9
@@ -1,4 +1,8 @@
1−Document about softnet driver issues
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+=====================
4+Softnet Driver Issues
5+=====================
26
37 Transmit path guidelines:
48
@@ -8,7 +12,7 @@ Transmit path guidelines: · 3 unmodified lines
812 transmit function will become busy.
913
1014 Instead it must maintain the queue properly. For example,
11− for a driver implementing scatter-gather this means:
15+ for a driver implementing scatter-gather this means::
1216
1317 static netdev_tx_t drv_hard_start_xmit(struct sk_buff *skb,
1418 struct net_device *dev)
@@ -38,25 +42,25 @@ Transmit path guidelines: · 23 unmodified lines
3842 return NETDEV_TX_OK;
3943 }
4044
41− And then at the end of your TX reclamation event handling:
45+ And then at the end of your TX reclamation event handling::
4246
4347 if (netif_queue_stopped(dp->dev) &&
44− TX_BUFFS_AVAIL(dp) > (MAX_SKB_FRAGS + 1))
48+ TX_BUFFS_AVAIL(dp) > (MAX_SKB_FRAGS + 1))
4549 netif_wake_queue(dp->dev);
4650
47− For a non-scatter-gather supporting card, the three tests simply become:
51+ For a non-scatter-gather supporting card, the three tests simply become::
4852
4953 /* This is a hard error log it. */
5054 if (TX_BUFFS_AVAIL(dp) <= 0)
5155
52− and:
56+ and::
5357
5458 if (TX_BUFFS_AVAIL(dp) == 0)
5559
56− and:
60+ and::
5761
5862 if (netif_queue_stopped(dp->dev) &&
59− TX_BUFFS_AVAIL(dp) > 0)
63+ TX_BUFFS_AVAIL(dp) > 0)
6064 netif_wake_queue(dp->dev);
6165
6266 2) An ndo_start_xmit method must not modify the shared parts of a
@@ -86,7 +90,7 @@ Close/stop guidelines: · 23 unmodified lines
8690
8791 1) After the ndo_stop routine has been called, the hardware must
8892 not receive or transmit any data. All in flight packets must
89− be aborted. If necessary, poll or wait for completion of
93+ be aborted. If necessary, poll or wait for completion of
9094 any reset commands.
9195
9296 2) The ndo_stop routine will be called by unregister_netdevice
Documentation/networking/dsa/sja1105.rst+301−26
@@ -66,34 +66,193 @@ reprogrammed with the updated static configuration. · 65 unmodified lines
6666 Traffic support
6767 ===============
6868
69−The switches do not support switch tagging in hardware. But they do support
70−customizing the TPID by which VLAN traffic is identified as such. The switch
71−driver is leveraging ``CONFIG_NET_DSA_TAG_8021Q`` by requesting that special
72−VLANs (with a custom TPID of ``ETH_P_EDSA`` instead of ``ETH_P_8021Q``) are
73−installed on its ports when not in ``vlan_filtering`` mode. This does not
74−interfere with the reception and transmission of real 802.1Q-tagged traffic,
75−because the switch does no longer parse those packets as VLAN after the TPID
76−change.
77−The TPID is restored when ``vlan_filtering`` is requested by the user through
78−the bridge layer, and general IP termination becomes no longer possible through
79−the switch netdevices in this mode.
80−
81−The switches have two programmable filters for link-local destination MACs.
69+The switches do not have hardware support for DSA tags, except for "slow
70+protocols" for switch control as STP and PTP. For these, the switches have two
71+programmable filters for link-local destination MACs.
8272 These are used to trap BPDUs and PTP traffic to the master netdevice, and are
8373 further used to support STP and 1588 ordinary clock/boundary clock
84−functionality.
85−
86−The following traffic modes are supported over the switch netdevices:
87−
88−+--------------------+------------+------------------+------------------+
89−| | Standalone | Bridged with | Bridged with |
90−| | ports | vlan_filtering 0 | vlan_filtering 1 |
91−+====================+============+==================+==================+
92−| Regular traffic | Yes | Yes | No (use master) |
93−+--------------------+------------+------------------+------------------+
94−| Management traffic | Yes | Yes | Yes |
95−| (BPDU, PTP) | | | |
96−+--------------------+------------+------------------+------------------+
74+functionality. For frames trapped to the CPU, source port and switch ID
75+information is encoded by the hardware into the frames.
76+
77+But by leveraging ``CONFIG_NET_DSA_TAG_8021Q`` (a software-defined DSA tagging
78+format based on VLANs), general-purpose traffic termination through the network
79+stack can be supported under certain circumstances.
80+
81+Depending on VLAN awareness state, the following operating modes are possible
82+with the switch:
83+
84+- Mode 1 (VLAN-unaware): a port is in this mode when it is used as a standalone
85+ net device, or when it is enslaved to a bridge with ``vlan_filtering=0``.
86+- Mode 2 (fully VLAN-aware): a port is in this mode when it is enslaved to a
87+ bridge with ``vlan_filtering=1``. Access to the entire VLAN range is given to
88+ the user through ``bridge vlan`` commands, but general-purpose (anything
89+ other than STP, PTP etc) traffic termination is not possible through the
90+ switch net devices. The other packets can be still by user space processed
91+ through the DSA master interface (similar to ``DSA_TAG_PROTO_NONE``).
92+- Mode 3 (best-effort VLAN-aware): a port is in this mode when enslaved to a
93+ bridge with ``vlan_filtering=1``, and the devlink property of its parent
94+ switch named ``best_effort_vlan_filtering`` is set to ``true``. When
95+ configured like this, the range of usable VIDs is reduced (0 to 1023 and 3072
96+ to 4094), so is the number of usable VIDs (maximum of 7 non-pvid VLANs per
97+ port*), and shared VLAN learning is performed (FDB lookup is done only by
98+ DMAC, not also by VID).
99+
100+To summarize, in each mode, the following types of traffic are supported over
101+the switch net devices:
102+
103++-------------+-----------+--------------+------------+
104+| | Mode 1 | Mode 2 | Mode 3 |
105++=============+===========+==============+============+
106+| Regular | Yes | No | Yes |
107+| traffic | | (use master) | |
108++-------------+-----------+--------------+------------+
109+| Management | Yes | Yes | Yes |
110+| traffic | | | |
111+| (BPDU, PTP) | | | |
112++-------------+-----------+--------------+------------+
113+
114+To configure the switch to operate in Mode 3, the following steps can be
115+followed::
116+
117+ ip link add dev br0 type bridge
118+ # swp2 operates in Mode 1 now
119+ ip link set dev swp2 master br0
120+ # swp2 temporarily moves to Mode 2
121+ ip link set dev br0 type bridge vlan_filtering 1
122+ [ 61.204770] sja1105 spi0.1: Reset switch and programmed static config. Reason: VLAN filtering
123+ [ 61.239944] sja1105 spi0.1: Disabled switch tagging
124+ # swp3 now operates in Mode 3
125+ devlink dev param set spi/spi0.1 name best_effort_vlan_filtering value true cmode runtime
126+ [ 64.682927] sja1105 spi0.1: Reset switch and programmed static config. Reason: VLAN filtering
127+ [ 64.711925] sja1105 spi0.1: Enabled switch tagging
128+ # Cannot use VLANs in range 1024-3071 while in Mode 3.
129+ bridge vlan add dev swp2 vid 1025 untagged pvid
130+ RTNETLINK answers: Operation not permitted
131+ bridge vlan add dev swp2 vid 100
132+ bridge vlan add dev swp2 vid 101 untagged
133+ bridge vlan
134+ port vlan ids
135+ swp5 1 PVID Egress Untagged
136+
137+ swp2 1 PVID Egress Untagged
138+ 100
139+ 101 Egress Untagged
140+
141+ swp3 1 PVID Egress Untagged
142+
143+ swp4 1 PVID Egress Untagged
144+
145+ br0 1 PVID Egress Untagged
146+ bridge vlan add dev swp2 vid 102
147+ bridge vlan add dev swp2 vid 103
148+ bridge vlan add dev swp2 vid 104
149+ bridge vlan add dev swp2 vid 105
150+ bridge vlan add dev swp2 vid 106
151+ bridge vlan add dev swp2 vid 107
152+ # Cannot use mode than 7 VLANs per port while in Mode 3.
153+ [ 3885.216832] sja1105 spi0.1: No more free subvlans
154+
155+\* "maximum of 7 non-pvid VLANs per port": Decoding VLAN-tagged packets on the
156+CPU in mode 3 is possible through VLAN retagging of packets that go from the
157+switch to the CPU. In cross-chip topologies, the port that goes to the CPU
158+might also go to other switches. In that case, those other switches will see
159+only a retagged packet (which only has meaning for the CPU). So if they are
160+interested in this VLAN, they need to apply retagging in the reverse direction,
161+to recover the original value from it. This consumes extra hardware resources
162+for this switch. There is a maximum of 32 entries in the Retagging Table of
163+each switch device.
164+
165+As an example, consider this cross-chip topology::
166+
167+ +-------------------------------------------------+
168+ | Host SoC |
169+ | +-------------------------+ |
170+ | | DSA master for embedded | |
171+ | | switch (non-sja1105) | |
172+ | +--------+-------------------------+--------+ |
173+ | | embedded L2 switch | |
174+ | | | |
175+ | | +--------------+ +--------------+ | |
176+ | | |DSA master for| |DSA master for| | |
177+ | | | SJA1105 1 | | SJA1105 2 | | |
178+ +--+---+--------------+-----+--------------+---+--+
179+
180+ +-----------------------+ +-----------------------+
181+ | SJA1105 switch 1 | | SJA1105 switch 2 |
182+ +-----+-----+-----+-----+ +-----+-----+-----+-----+
183+ |sw1p0|sw1p1|sw1p2|sw1p3| |sw2p0|sw2p1|sw2p2|sw2p3|
184+ +-----+-----+-----+-----+ +-----+-----+-----+-----+
185+
186+To reach the CPU, SJA1105 switch 1 (spi/spi2.1) uses the same port as is uses
187+to reach SJA1105 switch 2 (spi/spi2.2), which would be port 4 (not drawn).
188+Similarly for SJA1105 switch 2.
189+
190+Also consider the following commands, that add VLAN 100 to every sja1105 user
191+port::
192+
193+ devlink dev param set spi/spi2.1 name best_effort_vlan_filtering value true cmode runtime
194+ devlink dev param set spi/spi2.2 name best_effort_vlan_filtering value true cmode runtime
195+ ip link add dev br0 type bridge
196+ for port in sw1p0 sw1p1 sw1p2 sw1p3 \
197+ sw2p0 sw2p1 sw2p2 sw2p3; do
198+ ip link set dev $port master br0
199+ done
200+ ip link set dev br0 type bridge vlan_filtering 1
201+ for port in sw1p0 sw1p1 sw1p2 sw1p3 \
202+ sw2p0 sw2p1 sw2p2; do
203+ bridge vlan add dev $port vid 100
204+ done
205+ ip link add link br0 name br0.100 type vlan id 100 && ip link set dev br0.100 up
206+ ip addr add 192.168.100.3/24 dev br0.100
207+ bridge vlan add dev br0 vid 100 self
208+
209+ bridge vlan
210+ port vlan ids
211+ sw1p0 1 PVID Egress Untagged
212+ 100
213+
214+ sw1p1 1 PVID Egress Untagged
215+ 100
216+
217+ sw1p2 1 PVID Egress Untagged
218+ 100
219+
220+ sw1p3 1 PVID Egress Untagged
221+ 100
222+
223+ sw2p0 1 PVID Egress Untagged
224+ 100
225+
226+ sw2p1 1 PVID Egress Untagged
227+ 100
228+
229+ sw2p2 1 PVID Egress Untagged
230+ 100
231+
232+ sw2p3 1 PVID Egress Untagged
233+
234+ br0 1 PVID Egress Untagged
235+ 100
236+
237+SJA1105 switch 1 consumes 1 retagging entry for each VLAN on each user port
238+towards the CPU. It also consumes 1 retagging entry for each non-pvid VLAN that
239+it is also interested in, which is configured on any port of any neighbor
240+switch.
241+
242+In this case, SJA1105 switch 1 consumes a total of 11 retagging entries, as
243+follows:
244+- 8 retagging entries for VLANs 1 and 100 installed on its user ports
245+ (``sw1p0`` - ``sw1p3``)
246+- 3 retagging entries for VLAN 100 installed on the user ports of SJA1105
247+ switch 2 (``sw2p0`` - ``sw2p2``), because it also has ports that are
248+ interested in it. The VLAN 1 is a pvid on SJA1105 switch 2 and does not need
249+ reverse retagging.
250+
251+SJA1105 switch 2 also consumes 11 retagging entries, but organized as follows:
252+- 7 retagging entries for the bridge VLANs on its user ports (``sw2p0`` -
253+ ``sw2p3``).
254+- 4 retagging entries for VLAN 100 installed on the user ports of SJA1105
255+ switch 1 (``sw1p0`` - ``sw1p3``).
97256
98257 Switching features
99258 ==================
@@ -230,6 +389,122 @@ simultaneously on two ports. The driver checks the consistency of the schedules · 130 unmodified lines
230389 against this restriction and errors out when appropriate. Schedule analysis is
231390 needed to avoid this, which is outside the scope of the document.
232391
392+Routing actions (redirect, trap, drop)
393+--------------------------------------
394+
395+The switch is able to offload flow-based redirection of packets to a set of
396+destination ports specified by the user. Internally, this is implemented by
397+making use of Virtual Links, a TTEthernet concept.
398+
399+The driver supports 2 types of keys for Virtual Links:
400+
401+- VLAN-aware virtual links: these match on destination MAC address, VLAN ID and
402+ VLAN PCP.
403+- VLAN-unaware virtual links: these match on destination MAC address only.
404+
405+The VLAN awareness state of the bridge (vlan_filtering) cannot be changed while
406+there are virtual link rules installed.
407+
408+Composing multiple actions inside the same rule is supported. When only routing
409+actions are requested, the driver creates a "non-critical" virtual link. When
410+the action list also contains tc-gate (more details below), the virtual link
411+becomes "time-critical" (draws frame buffers from a reserved memory partition,
412+etc).
413+
414+The 3 routing actions that are supported are "trap", "drop" and "redirect".
415+
416+Example 1: send frames received on swp2 with a DA of 42:be:24:9b:76:20 to the
417+CPU and to swp3. This type of key (DA only) when the port's VLAN awareness
418+state is off::
419+
420+ tc qdisc add dev swp2 clsact
421+ tc filter add dev swp2 ingress flower skip_sw dst_mac 42:be:24:9b:76:20 \
422+ action mirred egress redirect dev swp3 \
423+ action trap
424+
425+Example 2: drop frames received on swp2 with a DA of 42:be:24:9b:76:20, a VID
426+of 100 and a PCP of 0::
427+
428+ tc filter add dev swp2 ingress protocol 802.1Q flower skip_sw \
429+ dst_mac 42:be:24:9b:76:20 vlan_id 100 vlan_prio 0 action drop
430+
431+Time-based ingress policing
432+---------------------------
433+
434+The TTEthernet hardware abilities of the switch can be constrained to act
435+similarly to the Per-Stream Filtering and Policing (PSFP) clause specified in
436+IEEE 802.1Q-2018 (formerly 802.1Qci). This means it can be used to perform
437+tight timing-based admission control for up to 1024 flows (identified by a
438+tuple composed of destination MAC address, VLAN ID and VLAN PCP). Packets which
439+are received outside their expected reception window are dropped.
440+
441+This capability can be managed through the offload of the tc-gate action. As
442+routing actions are intrinsic to virtual links in TTEthernet (which performs
443+explicit routing of time-critical traffic and does not leave that in the hands
444+of the FDB, flooding etc), the tc-gate action may never appear alone when
445+asking sja1105 to offload it. One (or more) redirect or trap actions must also
446+follow along.
447+
448+Example: create a tc-taprio schedule that is phase-aligned with a tc-gate
449+schedule (the clocks must be synchronized by a 1588 application stack, which is
450+outside the scope of this document). No packet delivered by the sender will be
451+dropped. Note that the reception window is larger than the transmission window
452+(and much more so, in this example) to compensate for the packet propagation
453+delay of the link (which can be determined by the 1588 application stack).
454+
455+Receiver (sja1105)::
456+
457+ tc qdisc add dev swp2 clsact
458+ now=$(phc_ctl /dev/ptp1 get | awk '/clock time is/ {print $5}') && \
459+ sec=$(echo $now | awk -F. '{print $1}') && \
460+ base_time="$(((sec + 2) * 1000000000))" && \
461+ echo "base time ${base_time}"
462+ tc filter add dev swp2 ingress flower skip_sw \
463+ dst_mac 42:be:24:9b:76:20 \
464+ action gate base-time ${base_time} \
465+ sched-entry OPEN 60000 -1 -1 \
466+ sched-entry CLOSE 40000 -1 -1 \
467+ action trap
468+
469+Sender::
470+
471+ now=$(phc_ctl /dev/ptp0 get | awk '/clock time is/ {print $5}') && \
472+ sec=$(echo $now | awk -F. '{print $1}') && \
473+ base_time="$(((sec + 2) * 1000000000))" && \
474+ echo "base time ${base_time}"
475+ tc qdisc add dev eno0 parent root taprio \
476+ num_tc 8 \
477+ map 0 1 2 3 4 5 6 7 \
478+ queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 \
479+ base-time ${base_time} \
480+ sched-entry S 01 50000 \
481+ sched-entry S 00 50000 \
482+ flags 2
483+
484+The engine used to schedule the ingress gate operations is the same that the
485+one used for the tc-taprio offload. Therefore, the restrictions regarding the
486+fact that no two gate actions (either tc-gate or tc-taprio gates) may fire at
487+the same time (during the same 200 ns slot) still apply.
488+
489+To come in handy, it is possible to share time-triggered virtual links across
490+more than 1 ingress port, via flow blocks. In this case, the restriction of
491+firing at the same time does not apply because there is a single schedule in
492+the system, that of the shared virtual link::
493+
494+ tc qdisc add dev swp2 ingress_block 1 clsact
495+ tc qdisc add dev swp3 ingress_block 1 clsact
496+ tc filter add block 1 flower skip_sw dst_mac 42:be:24:9b:76:20 \
497+ action gate index 2 \
498+ base-time 0 \
499+ sched-entry OPEN 50000000 -1 -1 \
500+ sched-entry CLOSE 50000000 -1 -1 \
501+ action trap
502+
503+Hardware statistics for each flow are also available ("pkts" counts the number
504+of dropped frames, which is a sum of frames dropped due to timing violations,
505+lack of destination ports and MTU enforcement checks). Byte-level counters are
506+not available.
507+
233508 Device Tree bindings and board design
234509 =====================================
235510
Documentation/networking/eql.rstrenamed from Documentation/networking/eql.txt+144−299
@@ -1,5 +1,11 @@
1− EQL Driver: Serial IP Load Balancing HOWTO
1+.. SPDX-License-Identifier: GPL-2.0
2+
3+==========================================
4+EQL Driver: Serial IP Load Balancing HOWTO
5+==========================================
6+
27 Simon "Guru Aleph-Null" Janes, simon@ncm.com
8+
39 v1.1, February 27, 1995
410
511 This is the manual for the EQL device driver. EQL is a software device
@@ -12,7 +18,8 @@ · 6 unmodified lines
1218 which was only created to patch cleanly in the very latest kernel
1319 source trees. (Yes, it worked fine.)
1420
15− 1. Introduction
21+1. Introduction
22+===============
1623
1724 Which is worse? A huge fee for a 56K leased line or two phone lines?
1825 It's probably the former. If you find yourself craving more bandwidth,
@@ -41,47 +48,40 @@ · 22 unmodified lines
4148 Hey, we can all dream you know...
4249
4350
44− 2. Kernel Configuration
51+2. Kernel Configuration
52+=======================
4553
4654 Here I describe the general steps of getting a kernel up and working
4755 with the eql driver. From patching, building, to installing.
4856
4957
50− 2.1. Patching The Kernel
58+2.1. Patching The Kernel
59+------------------------
5160
5261 If you do not have or cannot get a copy of the kernel with the eql
5362 driver folded into it, get your copy of the driver from
5463 ftp://slaughter.ncm.com/pub/Linux/LOAD_BALANCING/eql-1.1.tar.gz.
5564 Unpack this archive someplace obvious like /usr/local/src/. It will
56− create the following files:
57−
58−
65+ create the following files::
5966
60− ______________________________________________________________________
6167 -rw-r--r-- guru/ncm 198 Jan 19 18:53 1995 eql-1.1/NO-WARRANTY
6268 -rw-r--r-- guru/ncm 30620 Feb 27 21:40 1995 eql-1.1/eql-1.1.patch
6369 -rwxr-xr-x guru/ncm 16111 Jan 12 22:29 1995 eql-1.1/eql_enslave
6470 -rw-r--r-- guru/ncm 2195 Jan 10 21:48 1995 eql-1.1/eql_enslave.c
65− ______________________________________________________________________
6671
6772 Unpack a recent kernel (something after 1.1.92) someplace convenient
6873 like say /usr/src/linux-1.1.92.eql. Use symbolic links to point
6974 /usr/src/linux to this development directory.
7075
7176
72− Apply the patch by running the commands:
77+ Apply the patch by running the commands::
7378
74−
75− ______________________________________________________________________
7679 cd /usr/src
7780 patch </usr/local/src/eql-1.1/eql-1.1.patch
78− ______________________________________________________________________
79−
80−
8181
8282
83−
84− 2.2. Building The Kernel
83+2.2. Building The Kernel
84+------------------------
8585
8686 After patching the kernel, run make config and configure the kernel
8787 for your hardware.
@@ -90,7 +90,8 @@ · 2 unmodified lines
9090 After configuration, make and install according to your habit.
9191
9292
93− 3. Network Configuration
93+3. Network Configuration
94+========================
9495
9596 So far, I have only used the eql device with the DSLIP SLIP connection
9697 manager by Matt Dillon (-- "The man who sold his soul to code so much
@@ -100,37 +101,27 @@ · 3 unmodified lines
100101 connection.
101102
102103
103− 3.1. /etc/rc.d/rc.inet1
104+3.1. /etc/rc.d/rc.inet1
105+-----------------------
104106
105107 In rc.inet1, ifconfig the eql device to the IP address you usually use
106108 for your machine, and the MTU you prefer for your SLIP lines. One
107109 could argue that MTU should be roughly half the usual size for two
108110 modems, one-third for three, one-fourth for four, etc... But going
109111 too far below 296 is probably overkill. Here is an example ifconfig
110− command that sets up the eql device:
111−
112+ command that sets up the eql device::
112113
113−
114− ______________________________________________________________________
115114 ifconfig eql 198.67.33.239 mtu 1006
116− ______________________________________________________________________
117−
118−
119−
120−
121115
122116 Once the eql device is up and running, add a static default route to
123117 it in the routing table using the cool new route syntax that makes
124− life so much easier:
118+ life so much easier::
125119
126−
127−
128− ______________________________________________________________________
129120 route add default eql
130− ______________________________________________________________________
131121
132122
133− 3.2. Enslaving Devices By Hand
123+3.2. Enslaving Devices By Hand
124+------------------------------
134125
135126 Enslaving devices by hand requires two utility programs: eql_enslave
136127 and eql_emancipate (-- eql_emancipate hasn't been written because when
@@ -140,87 +131,56 @@ · 3 unmodified lines
140131
141132
142133 The syntax for enslaving a device is "eql_enslave <master-name>
143− <slave-name> <estimated-bps>". Here are some example enslavings:
144−
134+ <slave-name> <estimated-bps>". Here are some example enslavings::
145135
146−
147− ______________________________________________________________________
148136 eql_enslave eql sl0 28800
149137 eql_enslave eql ppp0 14400
150138 eql_enslave eql sl1 57600
151− ______________________________________________________________________
152−
153−
154−
155−
156139
157140 When you want to free a device from its life of slavery, you can
158141 either down the device with ifconfig (eql will automatically bury the
159142 dead slave and remove it from its queue) or use eql_emancipate to free
160143 it. (-- Or just ifconfig it down, and the eql driver will take it out
161− for you.--)
162−
163−
144+ for you.--)::
164145
165− ______________________________________________________________________
166146 eql_emancipate eql sl0
167147 eql_emancipate eql ppp0
168148 eql_emancipate eql sl1
169− ______________________________________________________________________
170149
171150
172−
173−
174−
175− 3.3. DSLIP Configuration for the eql Device
151+3.3. DSLIP Configuration for the eql Device
152+-------------------------------------------
176153
177154 The general idea is to bring up and keep up as many SLIP connections
178155 as you need, automatically.
179156
180157
181− 3.3.1. /etc/slip/runslip.conf
182−
183− Here is an example runslip.conf:
184−
185−
186−
187−
188−
189−
190−
191−
192−
193−
194−
158+3.3.1. /etc/slip/runslip.conf
159+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
195160
161+ Here is an example runslip.conf::
196162
163+ name sl-line-1
164+ enabled
165+ baud 38400
166+ mtu 576
167+ ducmd -e /etc/slip/dialout/cua2-288.xp -t 9
168+ command eql_enslave eql $interface 28800
169+ address 198.67.33.239
170+ line /dev/cua2
197171
172+ name sl-line-2
173+ enabled
174+ baud 38400
175+ mtu 576
176+ ducmd -e /etc/slip/dialout/cua3-288.xp -t 9
177+ command eql_enslave eql $interface 28800
178+ address 198.67.33.239
179+ line /dev/cua3
198180
199− ______________________________________________________________________
200− name sl-line-1
201− enabled
202− baud 38400
203− mtu 576
204− ducmd -e /etc/slip/dialout/cua2-288.xp -t 9
205− command eql_enslave eql $interface 28800
206− address 198.67.33.239
207− line /dev/cua2
208181
209− name sl-line-2
210− enabled
211− baud 38400
212− mtu 576
213− ducmd -e /etc/slip/dialout/cua3-288.xp -t 9
214− command eql_enslave eql $interface 28800
215− address 198.67.33.239
216− line /dev/cua3
217− ______________________________________________________________________

359 more lines aren’t shown here.

Documentation/networking/ethtool-netlink.rst+176−19

This diff is large: its 250 lines aren’t shown here.

Documentation/networking/fib_trie.rstrenamed from Documentation/networking/fib_trie.txt+10−6

This diff is large: its 44 lines aren’t shown here.

Documentation/networking/filter.rstrenamed from Documentation/networking/filter.txt+487−381

This diff is large: its 1501 lines aren’t shown here.

Documentation/networking/fore200e.rstrenamed from Documentation/networking/fore200e.txt+5−3

This diff is large: its 21 lines aren’t shown here.

Documentation/networking/framerelay.rstrenamed from Documentation/networking/framerelay.txt+13−8

This diff is large: its 46 lines aren’t shown here.

Documentation/networking/gen_stats.rstrenamed from Documentation/networking/gen_stats.txt+54−44

This diff is large: its 155 lines aren’t shown here.

Documentation/networking/generic-hdlc.rstrenamed from Documentation/networking/generic-hdlc.txt+62−24

This diff is large: its 171 lines aren’t shown here.

Documentation/networking/generic_netlink.rstrenamed from Documentation/networking/generic_netlink.txt+6−0

This diff is large: its 10 lines aren’t shown here.

Documentation/networking/gtp.rstrenamed from Documentation/networking/gtp.txt+59−38

This diff is large: its 199 lines aren’t shown here.

Documentation/networking/hinic.rstrenamed from Documentation/networking/hinic.txt+4−1

This diff is large: its 16 lines aren’t shown here.

Documentation/networking/ila.rstrenamed from Documentation/networking/ila.txt+50−39

This diff is large: its 173 lines aren’t shown here.

Documentation/networking/index.rst+87−0

This diff is large: its 108 lines aren’t shown here.

Documentation/networking/ip-sysctl.rstrenamed from Documentation/networking/ip-sysctl.txt+575−280

This diff is large: its 2048 lines aren’t shown here.

Documentation/networking/ip_dynaddr.rstrenamed from Documentation/networking/ip_dynaddr.txt+20−9

This diff is large: its 50 lines aren’t shown here.

Documentation/networking/ipddp.rstrenamed from Documentation/networking/ipddp.txt+9−4

This diff is large: its 25 lines aren’t shown here.

Documentation/networking/iphase.rstrenamed from Documentation/networking/iphase.txt+111−76

This diff is large: its 268 lines aren’t shown here.

Documentation/networking/ipsec.rstrenamed from Documentation/networking/ipsec.txt+11−3

This diff is large: its 24 lines aren’t shown here.

Documentation/networking/ipv6.rstrenamed from Documentation/networking/ipv6.txt+7−1

This diff is large: its 17 lines aren’t shown here.

Documentation/networking/ipvlan.rstrenamed from Documentation/networking/ipvlan.txt+101−58

This diff is large: its 238 lines aren’t shown here.

Documentation/networking/ipvs-sysctl.rstrenamed from Documentation/networking/ipvs-sysctl.txt+98−90

This diff is large: its 275 lines aren’t shown here.

Documentation/networking/kcm.rstrenamed from Documentation/networking/kcm.txt+45−40

This diff is large: its 190 lines aren’t shown here.

Documentation/networking/l2tp.rstrenamed from Documentation/networking/l2tp.txt+86−73

This diff is large: its 217 lines aren’t shown here.

Documentation/networking/lapb-module.rstrenamed from Documentation/networking/lapb-module.txt+82−40

This diff is large: its 295 lines aren’t shown here.

Documentation/networking/ltpc.rstrenamed from Documentation/networking/ltpc.txt+30−17

This diff is large: its 130 lines aren’t shown here.

Documentation/networking/mac80211-injection.rstrenamed from Documentation/networking/mac80211-injection.txt+25−16

This diff is large: its 104 lines aren’t shown here.

Documentation/networking/mpls-sysctl.rstrenamed from Documentation/networking/mpls-sysctl.txt+13−4

This diff is large: its 47 lines aren’t shown here.

Documentation/networking/multiqueue.rstrenamed from Documentation/networking/multiqueue.txt+20−21

This diff is large: its 82 lines aren’t shown here.

Documentation/networking/netconsole.rstrenamed from Documentation/networking/netconsole.txt+77−48

This diff is large: its 235 lines aren’t shown here.

Documentation/networking/netdev-features.rstrenamed from Documentation/networking/netdev-features.txt+11−8

This diff is large: its 51 lines aren’t shown here.

Documentation/networking/netdevices.rstrenamed from Documentation/networking/netdevices.txt+14−7

This diff is large: its 43 lines aren’t shown here.

Documentation/networking/netfilter-sysctl.rstrenamed from Documentation/networking/netfilter-sysctl.txt+9−2

This diff is large: its 18 lines aren’t shown here.

Documentation/networking/netif-msg.rst+95−0

This diff is large: its 96 lines aren’t shown here.

Documentation/networking/netif-msg.txt+0−79

This diff is large: its 80 lines aren’t shown here.

Documentation/networking/nf_conntrack-sysctl.rstrenamed from Documentation/networking/nf_conntrack-sysctl.txt+29−22

This diff is large: its 105 lines aren’t shown here.

Documentation/networking/nf_flowtable.rstrenamed from Documentation/networking/nf_flowtable.txt+30−25

This diff is large: its 90 lines aren’t shown here.

Documentation/networking/openvswitch.rstrenamed from Documentation/networking/openvswitch.txt+13−10

This diff is large: its 83 lines aren’t shown here.

Documentation/networking/operstates.rstrenamed from Documentation/networking/operstates.txt+33−12

This diff is large: its 123 lines aren’t shown here.

Documentation/networking/packet_mmap.rst+1084−0

This diff is large: its 1085 lines aren’t shown here.

Documentation/networking/packet_mmap.txt+0−1061

This diff is large: its 1062 lines aren’t shown here.

Documentation/networking/phonet.rstrenamed from Documentation/networking/phonet.txt+36−20

This diff is large: its 140 lines aren’t shown here.

Documentation/networking/pktgen.rstrenamed from Documentation/networking/pktgen.txt+166−154

This diff is large: its 491 lines aren’t shown here.

Documentation/networking/plip.rstrenamed from Documentation/networking/PLIP.txt+25−18

This diff is large: its 114 lines aren’t shown here.

Documentation/networking/ppp_generic.rstrenamed from Documentation/networking/ppp_generic.txt+32−20

This diff is large: its 155 lines aren’t shown here.

Documentation/networking/proc_net_tcp.rstrenamed from Documentation/networking/proc_net_tcp.txt+16−7

This diff is large: its 58 lines aren’t shown here.

Documentation/networking/radiotap-headers.rstrenamed from Documentation/networking/radiotap-headers.txt+53−46

This diff is large: its 146 lines aren’t shown here.

Documentation/networking/ray_cs.rstrenamed from Documentation/networking/ray_cs.txt+60−45

This diff is large: its 178 lines aren’t shown here.

Documentation/networking/rds.rstrenamed from Documentation/networking/rds.txt+165−140

This diff is large: its 411 lines aren’t shown here.

Documentation/networking/regulatory.rstrenamed from Documentation/networking/regulatory.txt+17−12

This diff is large: its 85 lines aren’t shown here.

Documentation/networking/rxrpc.rstrenamed from Documentation/networking/rxrpc.txt+171−148

This diff is large: its 954 lines aren’t shown here.

Documentation/networking/sctp.rstrenamed from Documentation/networking/sctp.txt+22−15

This diff is large: its 58 lines aren’t shown here.

Documentation/networking/secid.rstrenamed from Documentation/networking/secid.txt+6−0

This diff is large: its 10 lines aren’t shown here.

Documentation/networking/seg6-sysctl.rst+26−0

This diff is large: its 27 lines aren’t shown here.

Documentation/networking/seg6-sysctl.txt+0−18

This diff is large: its 19 lines aren’t shown here.

Documentation/networking/skfp.rstrenamed from Documentation/networking/skfp.txt+93−60

This diff is large: its 308 lines aren’t shown here.

Documentation/networking/snmp_counter.rst+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/networking/strparser.rstrenamed from Documentation/networking/strparser.txt+59−26

This diff is large: its 188 lines aren’t shown here.

Documentation/networking/switchdev.rstrenamed from Documentation/networking/switchdev.txt+65−51

This diff is large: its 208 lines aren’t shown here.

Documentation/networking/tc-actions-env-rules.rst+29−0

This diff is large: its 30 lines aren’t shown here.

Documentation/networking/tc-actions-env-rules.txt+0−24

This diff is large: its 25 lines aren’t shown here.

Documentation/networking/tcp-thin.rstrenamed from Documentation/networking/tcp-thin.txt+5−0

This diff is large: its 18 lines aren’t shown here.

Documentation/networking/team.rstrenamed from Documentation/networking/team.txt+6−0

This diff is large: its 9 lines aren’t shown here.

Documentation/networking/timestamping.rstrenamed from Documentation/networking/timestamping.txt+93−73

This diff is large: its 397 lines aren’t shown here.

Documentation/networking/tproxy.rstrenamed from Documentation/networking/tproxy.txt+31−26

This diff is large: its 97 lines aren’t shown here.

Documentation/networking/tuntap.rstrenamed from Documentation/networking/tuntap.txt+116−84

This diff is large: its 318 lines aren’t shown here.

Documentation/networking/udplite.rstrenamed from Documentation/networking/udplite.txt+94−81

This diff is large: its 305 lines aren’t shown here.

Documentation/networking/vrf.rst+451−0

This diff is large: its 452 lines aren’t shown here.

Documentation/networking/vrf.txt+0−418

This diff is large: its 419 lines aren’t shown here.

Documentation/networking/vxlan.rstrenamed from Documentation/networking/vxlan.txt+21−12

This diff is large: its 55 lines aren’t shown here.

Documentation/networking/x25-iface.rstrenamed from Documentation/networking/x25-iface.txt+8−2

This diff is large: its 21 lines aren’t shown here.

Documentation/networking/x25.rstrenamed from Documentation/networking/x25.txt+4−0

This diff is large: its 9 lines aren’t shown here.

Documentation/networking/xfrm_device.rstrenamed from Documentation/networking/xfrm_device.txt+22−11

This diff is large: its 111 lines aren’t shown here.

Documentation/networking/xfrm_proc.rstrenamed from Documentation/networking/xfrm_proc.txt+31−0

This diff is large: its 107 lines aren’t shown here.

Documentation/networking/xfrm_sync.rstrenamed from Documentation/networking/xfrm_sync.txt+43−23

This diff is large: its 147 lines aren’t shown here.

Documentation/networking/xfrm_sysctl.rstrenamed from Documentation/networking/xfrm_sysctl.txt+7−0

This diff is large: its 12 lines aren’t shown here.

Documentation/networking/z8530drv.rstrenamed from Documentation/networking/z8530drv.txt+329−300

This diff is large: its 882 lines aren’t shown here.

Documentation/timers/timers-howto.rst+3−0

This diff is large: its 7 lines aren’t shown here.

MAINTAINERS+34−30

This diff is large: its 256 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-sabresd.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx6sx.dtsi+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/imx6ul.dtsi+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/imx7d.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/imx7s.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/qcom-ipq4019.dtsi+28−0

This diff is large: its 34 lines aren’t shown here.

arch/arm/net/bpf_jit_32.c+9−5

This diff is large: its 44 lines aren’t shown here.

arch/arm/net/bpf_jit_32.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm64/boot/dts/mediatek/mt8516.dtsi+17−0

This diff is large: its 31 lines aren’t shown here.

arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi+34−0

This diff is large: its 53 lines aren’t shown here.

arch/arm64/boot/dts/qcom/sdm845.dtsi+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm64/boot/dts/ti/k3-am65-main.dtsi+22−0

This diff is large: its 29 lines aren’t shown here.

arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi+21−0

This diff is large: its 27 lines aren’t shown here.

arch/arm64/boot/dts/ti/k3-j721e-main.dtsi+12−0

This diff is large: its 19 lines aren’t shown here.

arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi+11−0

This diff is large: its 17 lines aren’t shown here.

arch/arm64/kernel/armv8_deprecated.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kernel/fpsimd.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/riscv/net/bpf_jit_comp32.c+68−35

This diff is large: its 169 lines aren’t shown here.

arch/riscv/net/bpf_jit_comp64.c+44−20

This diff is large: its 115 lines aren’t shown here.

arch/s390/appldata/appldata_base.c+5−6

This diff is large: its 40 lines aren’t shown here.

arch/s390/include/asm/ccwgroup.h+0−10

This diff is large: its 24 lines aren’t shown here.

arch/s390/kernel/debug.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/kernel/topology.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/s390/mm/cmm.c+5−7

This diff is large: its 47 lines aren’t shown here.

arch/s390/net/bpf_jit_comp.c+12−10

This diff is large: its 94 lines aren’t shown here.

arch/x86/kernel/itmt.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/x86/net/bpf_jit_comp32.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/atm/Kconfig+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/block/drbd/drbd_int.h+0−28

This diff is large: its 35 lines aren’t shown here.

drivers/block/drbd/drbd_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/drbd/drbd_receiver.c+6−7

This diff is large: its 48 lines aren’t shown here.

drivers/block/drbd/drbd_worker.c+3−3

This diff is large: its 21 lines aren’t shown here.

drivers/bluetooth/btbcm.c+81−61

This diff is large: its 239 lines aren’t shown here.

drivers/bluetooth/btbcm.h+4−6

This diff is large: its 28 lines aren’t shown here.

drivers/bluetooth/btmtkuart.c+9−8

This diff is large: its 52 lines aren’t shown here.

drivers/bluetooth/btqca.c+22−10

This diff is large: its 91 lines aren’t shown here.

drivers/bluetooth/btqca.h+2−1

This diff is large: its 11 lines aren’t shown here.

drivers/bluetooth/btrtl.c+9−1

This diff is large: its 29 lines aren’t shown here.

drivers/bluetooth/btusb.c+158−47

This diff is large: its 323 lines aren’t shown here.

drivers/bluetooth/hci_bcm.c+16−19

This diff is large: its 91 lines aren’t shown here.

drivers/bluetooth/hci_h5.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/bluetooth/hci_qca.c+145−33

This diff is large: its 382 lines aren’t shown here.

drivers/bluetooth/hci_serdev.c+1−3

This diff is large: its 18 lines aren’t shown here.

drivers/cdrom/cdrom.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/char/random.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/chelsio/chcr_algo.c+72−28

This diff is large: its 268 lines aren’t shown here.

drivers/crypto/chelsio/chcr_core.c+10−13

This diff is large: its 57 lines aren’t shown here.

drivers/crypto/chelsio/chcr_core.h+8−2

This diff is large: its 26 lines aren’t shown here.

drivers/crypto/chelsio/chcr_crypto.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/crypto/chelsio/chcr_ipsec.c+1−4

This diff is large: its 19 lines aren’t shown here.

drivers/crypto/chelsio/chcr_ktls.c+48−59

This diff is large: its 205 lines aren’t shown here.

drivers/crypto/chelsio/chcr_ktls.h+7−2

This diff is large: its 18 lines aren’t shown here.

drivers/crypto/chelsio/chtls/chtls_cm.c+155−40

This diff is large: its 331 lines aren’t shown here.

drivers/crypto/chelsio/chtls/chtls_cm.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/crypto/chelsio/chtls/chtls_main.c+11−3

This diff is large: its 42 lines aren’t shown here.

drivers/infiniband/hw/mlx5/Makefile+21−7

This diff is large: its 33 lines aren’t shown here.

drivers/infiniband/hw/mlx5/cmd.c+0−17

This diff is large: its 24 lines aren’t shown here.

drivers/infiniband/hw/mlx5/cmd.h+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/infiniband/hw/mlx5/cq.c+6−5

This diff is large: its 50 lines aren’t shown here.

drivers/infiniband/hw/mlx5/devx.c+5−5

This diff is large: its 38 lines aren’t shown here.

drivers/infiniband/hw/mlx5/flow.c+6−3

This diff is large: its 30 lines aren’t shown here.

drivers/infiniband/hw/mlx5/ib_virt.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/infiniband/hw/mlx5/mad.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/infiniband/hw/mlx5/main.c+70−73

This diff is large: its 285 lines aren’t shown here.

drivers/infiniband/hw/mlx5/mlx5_ib.h+2−1

This diff is large: its 24 lines aren’t shown here.

drivers/infiniband/hw/mlx5/odp.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/infiniband/hw/mlx5/qp.c+37−42

This diff is large: its 294 lines aren’t shown here.

drivers/infiniband/hw/mlx5/qp.h+46−0

This diff is large: its 47 lines aren’t shown here.

drivers/infiniband/hw/mlx5/qpc.crenamed from drivers/net/ethernet/mellanox/mlx5/core/qp.c+86−218

This diff is large: its 591 lines aren’t shown here.

drivers/infiniband/hw/mlx5/srq_cmd.c+1−1

This diff is large: its 11 lines aren’t shown here.

drivers/infiniband/sw/siw/siw_cm.c+9−33

This diff is large: its 83 lines aren’t shown here.

drivers/macintosh/mac_hid.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/media/rc/bpf-lirc.c+3−1

This diff is large: its 16 lines aren’t shown here.

drivers/net/Kconfig+6−6

This diff is large: its 54 lines aren’t shown here.

drivers/net/appletalk/Kconfig+4−4

This diff is large: its 33 lines aren’t shown here.

drivers/net/arcnet/Kconfig+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/net/bonding/bond_alb.c+30−16

This diff is large: its 100 lines aren’t shown here.

drivers/net/bonding/bond_main.c+201−99

This diff is large: its 503 lines aren’t shown here.

drivers/net/bonding/bonding_priv.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/caif/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/dsa/b53/b53_common.c+51−31

This diff is large: its 282 lines aren’t shown here.

drivers/net/dsa/b53/b53_priv.h+7−1

This diff is large: its 22 lines aren’t shown here.

drivers/net/dsa/b53/b53_srab.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/dsa/mt7530.c+9−15

This diff is large: its 53 lines aren’t shown here.

drivers/net/dsa/mt7530.h+6−0

This diff is large: its 13 lines aren’t shown here.

drivers/net/dsa/mv88e6xxx/chip.c+12−4

This diff is large: its 39 lines aren’t shown here.

drivers/net/dsa/mv88e6xxx/serdes.c+47−8

This diff is large: its 85 lines aren’t shown here.

drivers/net/dsa/mv88e6xxx/serdes.h+2−5

This diff is large: its 14 lines aren’t shown here.

drivers/net/dsa/ocelot/felix.c+85−0

This diff is large: its 177 lines aren’t shown here.

drivers/net/dsa/ocelot/felix.h+6−0

This diff is large: its 27 lines aren’t shown here.

drivers/net/dsa/ocelot/felix_vsc9959.c+191−1

This diff is large: its 242 lines aren’t shown here.

drivers/net/dsa/sja1105/Kconfig+9−0

This diff is large: its 13 lines aren’t shown here.

drivers/net/dsa/sja1105/Makefile+4−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105.h+88−15

This diff is large: its 207 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_clocking.c+51−7

This diff is large: its 113 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_dynamic_config.c+199−9

This diff is large: its 304 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_ethtool.c+74−70

This diff is large: its 167 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_flower.c+188−27

This diff is large: its 313 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_main.c+1142−93

This diff is large: its 1504 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_ptp.h+13−0

This diff is large: its 20 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_spi.c+16−0

This diff is large: its 92 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_static_config.c+266−8

This diff is large: its 473 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_static_config.h+118−0

This diff is large: its 220 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_tas.c+112−15

This diff is large: its 199 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_tas.h+36−0

This diff is large: its 66 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_vl.c+782−0

This diff is large: its 783 lines aren’t shown here.

drivers/net/dsa/sja1105/sja1105_vl.h+74−0

This diff is large: its 75 lines aren’t shown here.

drivers/net/dsa/vitesse-vsc73xx-platform.c+1−9

This diff is large: its 24 lines aren’t shown here.

drivers/net/ethernet/3com/3c509.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/3com/3c515.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/3com/3c59x.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/3com/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/8390/ne2k-pci.c+182−163

This diff is large: its 692 lines aren’t shown here.

drivers/net/ethernet/adaptec/starfire.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/agere/et131x.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/allwinner/sun4i-emac.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/altera/altera_tse_main.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_admin_defs.h+15−4

This diff is large: its 58 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_com.c+67−57

This diff is large: its 320 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_com.h+41−39

This diff is large: its 218 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_common_defs.h+1−1

This diff is large: its 6 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_eth_com.c+16−10

This diff is large: its 49 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_eth_com.h+4−3

This diff is large: its 35 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h+4−2

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_ethtool.c+47−38

This diff is large: its 191 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_netdev.c+37−18

This diff is large: its 263 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_netdev.h+7−10

This diff is large: its 59 lines aren’t shown here.

drivers/net/ethernet/amazon/ena/ena_regs_defs.h+1−1

This diff is large: its 6 lines aren’t shown here.

drivers/net/ethernet/amd/7990.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/amd/7990.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/amd/atarilance.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/Makefile+4−0

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_cfg.h+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_common.h+25−15

This diff is large: its 56 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c+44−35

This diff is large: its 171 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_filters.c+7−4

This diff is large: its 44 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_hw.h+36−6

This diff is large: its 117 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_hw_utils.c+26−0

This diff is large: its 30 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_hw_utils.h+2−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_macsec.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_main.c+71−1

This diff is large: its 105 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_nic.c+268−67

This diff is large: its 640 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_nic.h+24−3

This diff is large: its 62 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c+35−7

This diff is large: its 123 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_ptp.c+13−14

This diff is large: its 52 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_ring.c+14−5

This diff is large: its 40 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_vec.c+46−26

This diff is large: its 147 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/aq_vec.h+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c+16−14

This diff is large: its 91 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c+226−122

This diff is large: its 621 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h+41−3

This diff is large: its 54 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0_internal.h+5−1

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c+66−17

This diff is large: its 160 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h+32−10

This diff is large: its 86 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h+88−13

This diff is large: its 122 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c+28−32

This diff is large: its 142 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.h+10−16

This diff is large: its 66 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c+7−28

This diff is large: its 75 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c+841−0

This diff is large: its 842 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.h+14−0

This diff is large: its 15 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_internal.h+127−0

This diff is large: its 128 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.c+234−0

This diff is large: its 235 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.h+102−0

This diff is large: its 103 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh_internal.h+391−0

This diff is large: its 392 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_utils.c+131−0

This diff is large: its 132 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_utils.h+606−0

This diff is large: its 607 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_utils_fw.c+320−0

This diff is large: its 321 lines aren’t shown here.

drivers/net/ethernet/aquantia/atlantic/macsec/macsec_api.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/net/ethernet/atheros/ag71xx.c+38−5

This diff is large: its 66 lines aren’t shown here.

drivers/net/ethernet/atheros/atl1c/atl1c_main.c+1−7

This diff is large: its 22 lines aren’t shown here.

drivers/net/ethernet/atheros/atlx/atl1.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c+3−4

This diff is large: its 28 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c+15−11

This diff is large: its 57 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c+0−21

This diff is large: its 28 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt.c+68−32

This diff is large: its 221 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt.h+21−4

This diff is large: its 67 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c+188−73

This diff is large: its 415 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h+6−2

This diff is large: its 15 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h+184−32

This diff is large: its 396 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c+12−39

This diff is large: its 83 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c+9−1

This diff is large: its 24 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h+8−0

This diff is large: its 15 lines aren’t shown here.

drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/broadcom/cnic.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/broadcom/genet/bcmgenet.c+703−87

This diff is large: its 979 lines aren’t shown here.

drivers/net/ethernet/broadcom/genet/bcmgenet.h+22−1

This diff is large: its 71 lines aren’t shown here.

drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c+66−30

This diff is large: its 175 lines aren’t shown here.

drivers/net/ethernet/broadcom/tg3.c+3−5

This diff is large: its 21 lines aren’t shown here.

drivers/net/ethernet/cavium/liquidio/lio_core.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/cavium/liquidio/octeon_device.h+0−12

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/cavium/octeon/octeon_mgmt.c+5−0

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/cavium/thunder/nicvf_main.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/chelsio/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/cxgb4.h+28−16

This diff is large: its 93 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c+124−42

This diff is large: its 286 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c+89−7

This diff is large: its 145 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c+17−0

This diff is large: its 80 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c+135−69

This diff is large: its 260 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h+14−0

This diff is large: its 57 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/sched.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/sge.c+26−14

This diff is large: its 104 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/t4_hw.c+5−3

This diff is large: its 22 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h+8−2

This diff is large: its 31 lines aren’t shown here.

drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/cirrus/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/cortina/gemini.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/dec/tulip/Kconfig+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/dec/tulip/de4x5.c+4−6

This diff is large: its 36 lines aren’t shown here.

drivers/net/ethernet/dlink/dl2k.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/dnet.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/faraday/ftmac100.c+0−3

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa/dpaa_eth.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa2/Kconfig+10−0

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa2/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-dcb.c+150−0

This diff is large: its 151 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-debugfs.c+10−6

This diff is large: its 46 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c+374−117

This diff is large: its 800 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h+71−14

This diff is large: its 172 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c+16−10

This diff is large: its 54 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h+59−0

This diff is large: its 71 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa2/dpni.c+177−0

This diff is large: its 188 lines aren’t shown here.

drivers/net/ethernet/freescale/dpaa2/dpni.h+97−0

This diff is large: its 125 lines aren’t shown here.

drivers/net/ethernet/freescale/enetc/enetc.c+33−1

This diff is large: its 63 lines aren’t shown here.

drivers/net/ethernet/freescale/enetc/enetc.h+86−0

This diff is large: its 123 lines aren’t shown here.

drivers/net/ethernet/freescale/enetc/enetc_hw.h+159−0

This diff is large: its 198 lines aren’t shown here.

drivers/net/ethernet/freescale/enetc/enetc_pf.c+22−28

This diff is large: its 115 lines aren’t shown here.

drivers/net/ethernet/freescale/enetc/enetc_qos.c+1103−0

This diff is large: its 1114 lines aren’t shown here.

drivers/net/ethernet/freescale/fec.h+1−3

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/freescale/fec_main.c+77−50

This diff is large: its 320 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h+6−1

This diff is large: its 28 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hnae3.h+8−17

This diff is large: its 102 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3_enet.c+26−140

This diff is large: its 300 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3_enet.h+1−52

This diff is large: its 101 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c+82−6

This diff is large: its 138 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3pf/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h+19−29

This diff is large: its 86 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c+182−13

This diff is large: its 267 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c+1199−559

This diff is large: its 2448 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h+24−16

This diff is large: its 108 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c+47−32

This diff is large: its 163 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h+87−0

This diff is large: its 88 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3vf/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c+0−3

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.h+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c+343−45

This diff is large: its 569 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h+28−4

This diff is large: its 74 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c+7−0

This diff is large: its 28 lines aren’t shown here.

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h+87−0

This diff is large: its 88 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_dev.h+5−0

This diff is large: its 33 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_ethtool.c+518−20

This diff is large: its 609 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c+37−10

This diff is large: its 98 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_csr.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c+106−99

This diff is large: its 445 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h+89−1

This diff is large: its 170 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.c+82−16

This diff is large: its 173 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.h+4−3

This diff is large: its 29 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_if.c+69−9

This diff is large: its 158 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_if.h+23−3

This diff is large: its 91 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_io.c+51−2

This diff is large: its 116 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_io.h+25−1

This diff is large: its 56 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c+1210−0

This diff is large: its 1211 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.h+154−0

This diff is large: its 155 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c+14−3

This diff is large: its 45 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.h+10−2

This diff is large: its 34 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_qp.c+7−1

This diff is large: its 22 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_qp.h+5−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_wq.c+6−3

This diff is large: its 30 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_hw_wq.h+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_main.c+125−17

This diff is large: its 322 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_port.c+170−37

This diff is large: its 410 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_port.h+157−2

This diff is large: its 193 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_rx.c+9−6

This diff is large: its 29 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_sriov.c+1294−0

This diff is large: its 1295 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_sriov.h+109−0

This diff is large: its 110 lines aren’t shown here.

drivers/net/ethernet/huawei/hinic/hinic_tx.c+10−7

This diff is large: its 31 lines aren’t shown here.

drivers/net/ethernet/intel/e1000/e1000_hw.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/intel/e1000/e1000_main.c+17−5

This diff is large: its 53 lines aren’t shown here.

drivers/net/ethernet/intel/e1000e/e1000.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/intel/e1000e/ich8lan.c+5−1

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/intel/e1000e/netdev.c+106−9

This diff is large: its 189 lines aren’t shown here.

drivers/net/ethernet/intel/e1000e/regs.h+3−0

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_adminq.c+1−5

This diff is large: its 21 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_main.c+30−22

This diff is large: its 105 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_prototype.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_txrx.c+80−86

This diff is large: its 355 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_txrx.h+5−12

This diff is large: its 45 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_txrx_common.h+34−6

This diff is large: its 55 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_type.h+4−1

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_xsk.c+56−325

This diff is large: its 553 lines aren’t shown here.

drivers/net/ethernet/intel/i40e/i40e_xsk.h+2−1

This diff is large: its 15 lines aren’t shown here.

drivers/net/ethernet/intel/ice/Makefile+4−0

This diff is large: its 15 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice.h+66−6

This diff is large: its 182 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_adminq_cmd.h+67−9

This diff is large: its 164 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_arfs.c+663−0

This diff is large: its 664 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_arfs.h+82−0

This diff is large: its 83 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_base.c+62−55

This diff is large: its 290 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_common.c+137−9

This diff is large: its 260 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_common.h+4−1

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_controlq.c+102−78

This diff is large: its 282 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_controlq.h+3−0

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_dcb_lib.c+80−25

This diff is large: its 144 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_dcb_lib.h+24−1

This diff is large: its 52 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_dcb_nl.c+5−6

This diff is large: its 46 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_devlink.c+23−0

This diff is large: its 37 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_ethtool.c+79−55

This diff is large: its 346 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c+1697−0

This diff is large: its 1698 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_fdir.c+840−0

This diff is large: its 841 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_fdir.h+166−0

This diff is large: its 167 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_flex_pipe.c+886−33

This diff is large: its 1079 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_flex_pipe.h+8−0

This diff is large: its 15 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_flex_type.h+37−4

This diff is large: its 77 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_flow.c+348−7

This diff is large: its 482 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_flow.h+46−1

This diff is large: its 90 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_fltr.c+397−0

This diff is large: its 398 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_fltr.h+39−0

This diff is large: its 40 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_hw_autogen.h+26−3

This diff is large: its 85 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h+127−1

This diff is large: its 176 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_lib.c+318−287

This diff is large: its 1126 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_lib.h+7−7

This diff is large: its 42 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_main.c+608−125

This diff is large: its 1344 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_nvm.c+89−2

This diff is large: its 119 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_nvm.h+0−4

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_protocol_type.h+3−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_sched.c+5−9

This diff is large: its 49 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_status.h+3−0

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_switch.c+84−12

This diff is large: its 146 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_switch.h+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_txrx.c+350−65

This diff is large: its 598 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_txrx.h+19−9

This diff is large: its 72 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_txrx_lib.c+25−13

This diff is large: its 90 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_txrx_lib.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_type.h+77−3

This diff is large: its 168 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c+885−390

This diff is large: its 1778 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_virtchnl_pf.h+13−2

This diff is large: its 52 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_xsk.c+43−337

This diff is large: its 555 lines aren’t shown here.

drivers/net/ethernet/intel/ice/ice_xsk.h+3−10

This diff is large: its 37 lines aren’t shown here.

drivers/net/ethernet/intel/igb/e1000_mac.c+3−6

This diff is large: its 38 lines aren’t shown here.

drivers/net/ethernet/intel/igb/igb_ethtool.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/intel/igc/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc.h+217−232

This diff is large: its 536 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_base.c+6−3

This diff is large: its 37 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_defines.h+23−28

This diff is large: its 138 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_diag.c+186−0

This diff is large: its 187 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_diag.h+30−0

This diff is large: its 31 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_dump.c+54−59

This diff is large: its 212 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_ethtool.c+344−439

This diff is large: its 1189 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_hw.h+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_mac.c+2−7

This diff is large: its 39 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_mac.h+0−4

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_main.c+699−342

This diff is large: its 1522 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_ptp.c+5−19

This diff is large: its 81 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_regs.h+17−27

This diff is large: its 122 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_tsn.c+157−0

This diff is large: its 158 lines aren’t shown here.

drivers/net/ethernet/intel/igc/igc_tsn.h+9−0

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbe/ixgbe.h+4−5

This diff is large: its 30 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbe/ixgbe_common.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c+33−46

This diff is large: its 150 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c+53−256

This diff is large: its 485 lines aren’t shown here.

drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c+27−7

This diff is large: its 62 lines aren’t shown here.

drivers/net/ethernet/lantiq_xrx200.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/marvell/mv643xx_eth.c+0−5

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/marvell/mvneta.c+18−12

This diff is large: its 84 lines aren’t shown here.

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c+22−30

This diff is large: its 107 lines aren’t shown here.

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h+2−15

This diff is large: its 38 lines aren’t shown here.

drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c+6−2

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.h+0−4

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/mediatek/Kconfig+8−1

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/mediatek/Makefile+2−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/mediatek/mtk_eth_soc.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/mediatek/mtk_star_emac.c+1651−0

This diff is large: its 1652 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx4/crdump.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx4/en_ethtool.c+2−4

This diff is large: its 34 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx4/en_netdev.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx4/en_rx.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx4/en_tx.c+10−10

This diff is large: its 58 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx4/mlx4_en.h+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/Kconfig+16−1

This diff is large: its 26 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/Makefile+12−5

This diff is large: its 38 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/accel/accel.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec.c+14−5

This diff is large: its 27 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec.h+2−6

This diff is large: its 22 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/accel/tls.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/accel/tls.h+4−4

This diff is large: its 22 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/cmd.c+19−6

This diff is large: its 76 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/cq.c+9−14

This diff is large: its 84 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/debugfs.c+29−39

This diff is large: its 172 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/diag/fs_tracepoint.c+43−42

This diff is large: its 102 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/ecpf.c+6−24

This diff is large: its 50 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en.h+11−90

This diff is large: its 212 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/dcbnl.h+54−0

This diff is large: its 55 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/health.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/monitor_stats.c+14−32

This diff is large: its 91 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/params.c+7−6

This diff is large: its 23 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c+350−0

This diff is large: its 351 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c+368−0

This diff is large: its 369 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.h+34−0

This diff is large: its 35 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c+646−0

This diff is large: its 647 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.h+77−0

This diff is large: its 78 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c+293−34

This diff is large: its 474 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c+20−11

This diff is large: its 75 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.h+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_mplsoudp.c+134−0

This diff is large: its 135 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h+127−26

This diff is large: its 201 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c+56−45

This diff is large: its 200 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/xdp.h+5−32

This diff is large: its 65 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c+21−92

This diff is large: its 176 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.h+18−7

This diff is large: its 42 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.c+4−5

This diff is large: its 25 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en/xsk/umem.c+7−44

This diff is large: its 89 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h+34−16

This diff is large: its 75 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c+35−52

This diff is large: its 159 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.h+0−25

This diff is large: its 39 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c+7−8

This diff is large: its 44 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.h+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_stats.c+51−37

This diff is large: its 120 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c+13−0

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h+18−10

This diff is large: its 63 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c+25−56

This diff is large: its 179 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c+15−1

This diff is large: its 27 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.h+7−0

This diff is large: its 21 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c+35−33

This diff is large: its 125 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h+8−5

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_common.c+13−7

This diff is large: its 53 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c+28−2

This diff is large: its 65 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_main.c+130−139

This diff is large: its 624 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_rep.c+42−893

This diff is large: its 1070 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_rep.h+29−10

This diff is large: its 83 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_rx.c+69−47

This diff is large: its 288 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_stats.c+32−47

This diff is large: its 139 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_stats.h+2−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c+430−205

This diff is large: its 1044 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_tc.h+54−8

This diff is large: its 102 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_tx.c+24−42

This diff is large: its 147 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c+5−2

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/eq.c+2−4

This diff is large: its 23 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c+170−0

This diff is large: its 171 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_ofld.c+235−0

This diff is large: its 236 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c+160−0

This diff is large: its 161 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.h+26−0

This diff is large: its 27 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c+279−0

This diff is large: its 280 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c+322−0

This diff is large: its 323 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/esw/acl/lgcy.h+17−0

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ofld.h+29−0

This diff is large: its 30 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/esw/chains.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/esw/chains.h+19−0

This diff is large: its 31 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/eswitch.c+26−574

This diff is large: its 741 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/eswitch.h+23−27

This diff is large: its 107 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c+92−335

This diff is large: its 539 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/fpga/cmd.c+13−16

This diff is large: its 96 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c+45−91

This diff is large: its 259 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c+27−4

This diff is large: its 101 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.h+16−2

This diff is large: its 37 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.h+2−2

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c+36−50

This diff is large: its 308 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/fs_core.c+95−40

This diff is large: its 216 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/fs_core.h+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/fw.c+13−21

This diff is large: its 105 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/health.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c+88−73

This diff is large: its 302 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h+9−15

This diff is large: its 53 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c+9−12

This diff is large: its 71 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/lag.c+62−56

This diff is large: its 286 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c+21−0

This diff is large: its 35 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c+10−5

This diff is large: its 37 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/lib/eq.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/lib/gid.c+2−3

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c+4−6

This diff is large: its 31 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/lib/port_tun.c+2−3

This diff is large: its 22 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c+4−6

This diff is large: its 29 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/main.c+99−104

This diff is large: its 445 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/mcg.c+4−7

This diff is large: its 39 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h+0−3

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/mr.c+9−12

This diff is large: its 73 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c+71−28

This diff is large: its 229 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/pd.c+5−7

This diff is large: its 35 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/port.c+5−6

This diff is large: its 30 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/rl.c+9−13

This diff is large: its 82 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_cmd.c+14−19

This diff is large: its 153 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c+8−6

This diff is large: its 48 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c+25−28

This diff is large: its 103 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_matcher.c+5−5

This diff is large: its 42 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c+14−17

This diff is large: its 89 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c+36−34

This diff is large: its 195 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_ste.c+2−3

This diff is large: its 26 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_table.c+6−6

This diff is large: its 54 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h+26−4

This diff is large: its 72 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/steering/fs_dr.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/transobj.c+40−73

This diff is large: its 297 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/uar.c+5−7

This diff is large: its 36 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlx5/core/vport.c+67−75

This diff is large: its 423 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/reg.h+12−15

This diff is large: its 61 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum.c+24−588

This diff is large: its 751 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum.h+121−64

This diff is large: its 274 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum2_mr_tcam.c+7−7

This diff is large: its 56 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c+34−186

This diff is large: its 357 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_flex_actions.c+19−12

This diff is large: its 48 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c+34−5

This diff is large: its 107 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_flow.c+305−0

This diff is large: its 306 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c+68−16

This diff is large: its 187 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c+378−0

This diff is large: its 379 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c+11−5

This diff is large: its 48 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c+396−225

This diff is large: its 837 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_span.h+30−24

This diff is large: its 97 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c+1072−252

This diff is large: its 1556 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.h+10−8

This diff is large: its 28 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/switchx2.c+5−0

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/mellanox/mlxsw/trap.h+5−2

This diff is large: its 22 lines aren’t shown here.

drivers/net/ethernet/micrel/Kconfig+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/micrel/Makefile+2−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/micrel/ks8851.h+150−1

This diff is large: its 169 lines aren’t shown here.

drivers/net/ethernet/micrel/ks8851_common.crenamed from drivers/net/ethernet/micrel/ks8851.c+139−559

This diff is large: its 1143 lines aren’t shown here.

drivers/net/ethernet/micrel/ks8851_mll.c+0−1393

This diff is large: its 1394 lines aren’t shown here.

drivers/net/ethernet/micrel/ks8851_par.c+357−0

This diff is large: its 358 lines aren’t shown here.

drivers/net/ethernet/micrel/ks8851_spi.c+485−0

This diff is large: its 486 lines aren’t shown here.

drivers/net/ethernet/microchip/encx24j600-regmap.c+0−5

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/microchip/encx24j600.c+2−10

This diff is large: its 34 lines aren’t shown here.

drivers/net/ethernet/microchip/lan743x_ethtool.c+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/microchip/lan743x_main.c+71−10

This diff is large: its 124 lines aren’t shown here.

drivers/net/ethernet/microchip/lan743x_main.h+6−0

This diff is large: its 31 lines aren’t shown here.

drivers/net/ethernet/microchip/lan743x_ptp.c+1−1

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/moxa/moxart_ether.c+3−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/mscc/Makefile+1−1

This diff is large: its 7 lines aren’t shown here.

drivers/net/ethernet/mscc/ocelot.c+18−217

This diff is large: its 278 lines aren’t shown here.

drivers/net/ethernet/mscc/ocelot.h+1−2

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/mscc/ocelot_ace.c+112−1

This diff is large: its 126 lines aren’t shown here.

drivers/net/ethernet/mscc/ocelot_ace.h+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/mscc/ocelot_board.c+29−1

This diff is large: its 58 lines aren’t shown here.

drivers/net/ethernet/mscc/ocelot_flower.c+20−9

This diff is large: its 102 lines aren’t shown here.

drivers/net/ethernet/mscc/ocelot_ptp.c+324−0

This diff is large: its 325 lines aren’t shown here.

drivers/net/ethernet/mscc/ocelot_regs.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/mscc/ocelot_tc.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/net/ethernet/myricom/myri10ge/myri10ge.c+0−12

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/neterion/Kconfig+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/flower/action.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/flower/cmsg.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/flower/main.c+87−38

This diff is large: its 180 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/flower/main.h+21−6

This diff is large: its 62 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/flower/match.c+31−11

This diff is large: its 73 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/flower/offload.c+6−29

This diff is large: its 56 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/nfp_main.c+0−3

This diff is large: its 21 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/nfp_net_common.c+6−0

This diff is large: its 24 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c+1−4

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/netronome/nfp/nfp_net_repr.c+16−0

This diff is large: its 30 lines aren’t shown here.

drivers/net/ethernet/ni/nixge.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/nxp/lpc_eth.c+4−2

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/pensando/ionic/ionic_dev.c+14−0

This diff is large: its 28 lines aren’t shown here.

drivers/net/ethernet/pensando/ionic/ionic_dev.h+11−6

This diff is large: its 56 lines aren’t shown here.

drivers/net/ethernet/pensando/ionic/ionic_ethtool.c+12−8

This diff is large: its 79 lines aren’t shown here.

drivers/net/ethernet/pensando/ionic/ionic_if.h+672−417

This diff is large: its 1997 lines aren’t shown here.

drivers/net/ethernet/pensando/ionic/ionic_lif.c+145−13

This diff is large: its 353 lines aren’t shown here.

drivers/net/ethernet/pensando/ionic/ionic_lif.h+26−2

This diff is large: its 83 lines aren’t shown here.

drivers/net/ethernet/pensando/ionic/ionic_main.c+5−2

This diff is large: its 35 lines aren’t shown here.

drivers/net/ethernet/pensando/ionic/ionic_stats.c+134−2

This diff is large: its 217 lines aren’t shown here.

drivers/net/ethernet/pensando/ionic/ionic_stats.h+6−0

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/pensando/ionic/ionic_txrx.c+33−16

This diff is large: its 129 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed.h+8−8

This diff is large: its 53 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_cxt.c+50−10

This diff is large: its 131 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_cxt.h+8−2

This diff is large: its 36 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_debug.c+13−13

This diff is large: its 110 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_dev.c+10−4

This diff is large: its 49 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_hsi.h+47−2

This diff is large: its 96 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_hw.c+39−3

This diff is large: its 56 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_hw.h+15−0

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_int.c+33−7

This diff is large: its 78 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_int.h+11−0

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_ll2.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_main.c+43−0

This diff is large: its 78 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_mcp.c+253−0

This diff is large: its 278 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_mcp.h+28−0

This diff is large: its 49 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_rdma.c+129−19

This diff is large: its 304 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_rdma.h+20−0

This diff is large: its 72 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_roce.c+40−9

This diff is large: its 133 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_spq.c+10−6

This diff is large: its 23 lines aren’t shown here.

drivers/net/ethernet/qlogic/qed/qed_sriov.h+7−3

This diff is large: its 24 lines aren’t shown here.

drivers/net/ethernet/qlogic/qede/qede.h+15−2

This diff is large: its 55 lines aren’t shown here.

drivers/net/ethernet/qlogic/qede/qede_ethtool.c+24−0

This diff is large: its 54 lines aren’t shown here.

drivers/net/ethernet/qlogic/qede/qede_fp.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/qlogic/qede/qede_main.c+225−7

This diff is large: its 352 lines aren’t shown here.

drivers/net/ethernet/qlogic/qlcnic/qlcnic.h+0−6

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/qualcomm/emac/emac-mac.c+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/qualcomm/emac/emac-mac.h+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/net/ethernet/qualcomm/emac/emac.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/realtek/8139cp.c+8−17

This diff is large: its 71 lines aren’t shown here.

drivers/net/ethernet/realtek/8139too.c+7−19

This diff is large: its 64 lines aren’t shown here.

drivers/net/ethernet/realtek/r8169_main.c+448−553

This diff is large: its 2088 lines aren’t shown here.

drivers/net/ethernet/renesas/ravb_main.c+8−2

This diff is large: its 24 lines aren’t shown here.

drivers/net/ethernet/renesas/sh_eth.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/seeq/ether3.c+1−4

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/sfc/ef10.c+134−83

This diff is large: its 378 lines aren’t shown here.

drivers/net/ethernet/sfc/ef10_sriov.c+13−14

This diff is large: its 76 lines aren’t shown here.

drivers/net/ethernet/sfc/mcdi.c+9−16

This diff is large: its 33 lines aren’t shown here.

drivers/net/ethernet/sfc/mcdi.h+12−0

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/sfc/mcdi_filters.c+34−48

This diff is large: its 283 lines aren’t shown here.

drivers/net/ethernet/sfc/mcdi_filters.h+16−1

This diff is large: its 38 lines aren’t shown here.

drivers/net/ethernet/sfc/mcdi_functions.c+2−6

This diff is large: its 40 lines aren’t shown here.

drivers/net/ethernet/sfc/mcdi_port.c+2−5

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/sfc/net_driver.h+10−0

This diff is large: its 51 lines aren’t shown here.

drivers/net/ethernet/sfc/nic.h+0−11

This diff is large: its 52 lines aren’t shown here.

drivers/net/ethernet/sfc/ptp.c+1−6

This diff is large: its 14 lines aren’t shown here.

drivers/net/ethernet/sfc/rx.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/net/ethernet/sfc/siena.c+8−0

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/smsc/Kconfig+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/ethernet/socionext/netsec.c+19−13

This diff is large: its 97 lines aren’t shown here.

drivers/net/ethernet/socionext/sni_ave.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/Kconfig+13−0

This diff is large: its 20 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/Makefile+3−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/common.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c+315−0

This diff is large: its 316 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c+63−97

This diff is large: its 351 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c+114−32

This diff is large: its 216 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c+44−30

This diff is large: its 156 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/dwmac4.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c+67−0

This diff is large: its 105 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c+0−9

This diff is large: its 16 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c+0−5

This diff is large: its 16 lines aren’t shown here.

drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/sun/cassini.c+1−13

This diff is large: its 35 lines aren’t shown here.

drivers/net/ethernet/tehuti/tehuti.c+0−12

This diff is large: its 19 lines aren’t shown here.

drivers/net/ethernet/ti/Kconfig+24−1

This diff is large: its 46 lines aren’t shown here.

drivers/net/ethernet/ti/Makefile+2−1

This diff is large: its 7 lines aren’t shown here.

drivers/net/ethernet/ti/am65-cpsw-ethtool.c+33−3

This diff is large: its 65 lines aren’t shown here.

drivers/net/ethernet/ti/am65-cpsw-nuss.c+199−6

This diff is large: its 332 lines aren’t shown here.

drivers/net/ethernet/ti/am65-cpsw-nuss.h+12−1

This diff is large: its 44 lines aren’t shown here.

drivers/net/ethernet/ti/am65-cpsw-qos.c+626−0

This diff is large: its 627 lines aren’t shown here.

drivers/net/ethernet/ti/am65-cpsw-qos.h+29−0

This diff is large: its 30 lines aren’t shown here.

drivers/net/ethernet/ti/am65-cpts.c+1086−0

This diff is large: its 1087 lines aren’t shown here.

drivers/net/ethernet/ti/am65-cpts.h+74−0

This diff is large: its 75 lines aren’t shown here.

drivers/net/ethernet/ti/cpmac.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/ti/cpsw.c+22−0

This diff is large: its 43 lines aren’t shown here.

drivers/net/ethernet/ti/cpsw_new.c+23−2

This diff is large: its 60 lines aren’t shown here.

drivers/net/ethernet/ti/cpsw_priv.c+17−2

This diff is large: its 47 lines aren’t shown here.

drivers/net/ethernet/ti/cpsw_priv.h+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/ethernet/ti/cpts.c+278−144

This diff is large: its 647 lines aren’t shown here.

drivers/net/ethernet/ti/cpts.h+24−3

This diff is large: its 77 lines aren’t shown here.

drivers/net/ethernet/ti/davinci_mdio.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/ti/k3-cppi-desc-pool.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ethernet/ti/netcp_ethss.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/ethernet/ti/tlan.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/toshiba/ps3_gelic_net.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/toshiba/spider_net.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ethernet/via/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/ethernet/xilinx/ll_temac_main.c+4−4

This diff is large: its 25 lines aren’t shown here.

drivers/net/fddi/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/hamradio/Kconfig+7−7

This diff is large: its 63 lines aren’t shown here.

drivers/net/hamradio/bpqether.c+20−0

This diff is large: its 34 lines aren’t shown here.

drivers/net/hamradio/scc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/hyperv/netvsc_bpf.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/hyperv/netvsc_drv.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/net/ipa/gsi.c+70−57

This diff is large: its 341 lines aren’t shown here.

drivers/net/ipa/gsi.h+7−8

This diff is large: its 47 lines aren’t shown here.

drivers/net/ipa/ipa.h+10−0

This diff is large: its 24 lines aren’t shown here.

drivers/net/ipa/ipa_clock.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/ipa/ipa_cmd.c+0−59

This diff is large: its 80 lines aren’t shown here.

drivers/net/ipa/ipa_cmd.h+0−11

This diff is large: its 25 lines aren’t shown here.

drivers/net/ipa/ipa_data-sc7180.c+11−3

This diff is large: its 32 lines aren’t shown here.

drivers/net/ipa/ipa_data-sdm845.c+11−4

This diff is large: its 40 lines aren’t shown here.

drivers/net/ipa/ipa_data.h+14−15

This diff is large: its 58 lines aren’t shown here.

drivers/net/ipa/ipa_endpoint.c+62−114

This diff is large: its 329 lines aren’t shown here.

drivers/net/ipa/ipa_endpoint.h+0−3

This diff is large: its 17 lines aren’t shown here.

drivers/net/ipa/ipa_main.c+4−4

This diff is large: its 29 lines aren’t shown here.

drivers/net/ipa/ipa_mem.c+205−5

This diff is large: its 256 lines aren’t shown here.

drivers/net/ipa/ipa_mem.h+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/net/ipvlan/ipvlan_main.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/macsec.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/macvlan.c+10−4

This diff is large: its 45 lines aren’t shown here.

drivers/net/net_failover.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/netdevsim/dev.c+9−1

This diff is large: its 38 lines aren’t shown here.

drivers/net/phy/Kconfig+20−1

This diff is large: its 42 lines aren’t shown here.

drivers/net/phy/Makefile+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/phy/at803x.c+301−9

This diff is large: its 392 lines aren’t shown here.

drivers/net/phy/bcm-phy-lib.c+330−7

This diff is large: its 390 lines aren’t shown here.

drivers/net/phy/bcm-phy-lib.h+19−0

This diff is large: its 40 lines aren’t shown here.

drivers/net/phy/bcm54140.c+860−0

This diff is large: its 861 lines aren’t shown here.

drivers/net/phy/bcm87xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/phy/broadcom.c+60−4

This diff is large: its 120 lines aren’t shown here.

drivers/net/phy/cortina.c+1−3

This diff is large: its 18 lines aren’t shown here.

drivers/net/phy/dp83867.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/phy/dp83869.c+32−4

This diff is large: its 73 lines aren’t shown here.

drivers/net/phy/marvell.c+484−0

This diff is large: its 575 lines aren’t shown here.

drivers/net/phy/marvell10g.c+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/net/phy/mdio-bcm-iproc.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/phy/mdio-ipq4019.c+160−0

This diff is large: its 161 lines aren’t shown here.

drivers/net/phy/mdio-moxart.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/phy/mdio-mscc-miim.c+26−7

This diff is large: its 67 lines aren’t shown here.

drivers/net/phy/mdio_bus.c+16−9

This diff is large: its 70 lines aren’t shown here.

drivers/net/phy/micrel.c+123−5

This diff is large: its 184 lines aren’t shown here.

drivers/net/phy/mscc/mscc.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/phy/mscc/mscc_main.c+37−73

This diff is large: its 229 lines aren’t shown here.

drivers/net/phy/nxp-tja11xx.c+406−6

This diff is large: its 548 lines aren’t shown here.

drivers/net/phy/phy-c45.c+0−1

This diff is large: its 7 lines aren’t shown here.

drivers/net/phy/phy-core.c+4−7

This diff is large: its 25 lines aren’t shown here.

drivers/net/phy/phy.c+180−8

This diff is large: its 301 lines aren’t shown here.

drivers/net/phy/phy_device.c+259−21

This diff is large: its 379 lines aren’t shown here.

drivers/net/phy/phylink.c+21−39

This diff is large: its 138 lines aren’t shown here.

drivers/net/phy/realtek.c+13−2

This diff is large: its 43 lines aren’t shown here.

drivers/net/phy/teranetics.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/net/plip/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/ppp/ppp_generic.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/rionet.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/team/team.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/tun.c+13−5

This diff is large: its 54 lines aren’t shown here.

drivers/net/usb/ax88179_178a.c+78−1

This diff is large: its 107 lines aren’t shown here.

drivers/net/usb/huawei_cdc_ncm.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/usb/qmi_wwan.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/usb/r8152.c+13−9

This diff is large: its 29 lines aren’t shown here.

drivers/net/usb/sierra_net.c+0−5

This diff is large: its 12 lines aren’t shown here.

drivers/net/veth.c+17−17

This diff is large: its 118 lines aren’t shown here.

drivers/net/virtio_net.c+14−5

This diff is large: its 77 lines aren’t shown here.

drivers/net/vmxnet3/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/vmxnet3/upt1_defs.h+4−1

This diff is large: its 18 lines aren’t shown here.

drivers/net/vmxnet3/vmxnet3_defs.h+23−8

This diff is large: its 102 lines aren’t shown here.

drivers/net/vmxnet3/vmxnet3_drv.c+163−28

This diff is large: its 315 lines aren’t shown here.

drivers/net/vmxnet3/vmxnet3_ethtool.c+273−4

This diff is large: its 336 lines aren’t shown here.

drivers/net/vmxnet3/vmxnet3_int.h+19−6

This diff is large: its 78 lines aren’t shown here.

drivers/net/vrf.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/vxlan.c+311−63

This diff is large: its 707 lines aren’t shown here.

drivers/net/wan/Kconfig+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/Kconfig+3−4

This diff is large: its 23 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/bmi.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/ce.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/core.c+19−12

This diff is large: its 92 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/core.h+36−2

This diff is large: its 86 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/coredump.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/debug.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/debug.h+9−1

This diff is large: its 31 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/hif.h+15−5

This diff is large: its 42 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/htc.c+367−32

This diff is large: its 483 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/htc.h+36−4

This diff is large: its 93 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/htt.c+13−0

This diff is large: its 41 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/htt.h+44−22

This diff is large: its 246 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/htt_rx.c+41−1

This diff is large: its 71 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/htt_tx.c+49−2

This diff is large: its 91 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/hw.h+5−2

This diff is large: its 28 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/mac.c+300−29

This diff is large: its 457 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/pci.c+55−16

This diff is large: its 212 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/pci.h+6−1

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/qmi.c+20−54

This diff is large: its 129 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/qmi.h+6−4

This diff is large: its 38 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/sdio.c+139−52

This diff is large: its 342 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/sdio.h+18−1

This diff is large: its 40 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/snoc.c+176−10

This diff is large: its 254 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/snoc.h+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/txrx.c+2−0

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/usb.c+0−12

This diff is large: its 26 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/wmi-ops.h+40−0

This diff is large: its 68 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/wmi-tlv.c+139−3

This diff is large: its 215 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/wmi-tlv.h+113−3

This diff is large: its 172 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/wmi.c+38−14

This diff is large: its 107 lines aren’t shown here.

drivers/net/wireless/ath/ath10k/wmi.h+37−24

This diff is large: its 242 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/ahb.c+42−19

This diff is large: its 166 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/ahb.h+0−22

This diff is large: its 27 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/core.c+14−33

This diff is large: its 136 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/core.h+23−2

This diff is large: its 70 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/debug.c+7−2

This diff is large: its 37 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/debug.h+20−2

This diff is large: its 59 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/debug_htt_stats.c+38−10

This diff is large: its 94 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/debug_htt_stats.h+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/debugfs_sta.c+297−0

This diff is large: its 330 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/dp.c+6−1

This diff is large: its 29 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/dp.h+11−3

This diff is large: its 42 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/dp_rx.c+43−17

This diff is large: its 188 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/dp_tx.c+57−12

This diff is large: its 142 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/hal.c+44−43

This diff is large: its 292 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/hal.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/hal_desc.h+4−2

This diff is large: its 27 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/hal_rx.c+11−11

This diff is large: its 59 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/hal_rx.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/hal_tx.c+7−6

This diff is large: its 45 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/hal_tx.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/hif.h+65−0

This diff is large: its 66 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/htc.c+2−2

This diff is large: its 19 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/hw.h+6−1

This diff is large: its 21 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/mac.c+82−20

This diff is large: its 240 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/peer.c+33−2

This diff is large: its 63 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/peer.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/thermal.c+4−2

This diff is large: its 22 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/trace.h+8−4

This diff is large: its 38 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/wmi.c+158−12

This diff is large: its 219 lines aren’t shown here.

drivers/net/wireless/ath/ath11k/wmi.h+86−2

This diff is large: its 137 lines aren’t shown here.

drivers/net/wireless/ath/ath5k/ani.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/ath6kl/cfg80211.c+12−14

This diff is large: its 43 lines aren’t shown here.

drivers/net/wireless/ath/ath6kl/core.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/ath/ath6kl/debug.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/ath6kl/hif.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/ar9002_calib.c+39−10

This diff is large: its 99 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/calib.c+10−6

This diff is large: its 32 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/hif_usb.c+45−13

This diff is large: its 178 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/hif_usb.h+6−0

This diff is large: its 19 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/htc_drv_init.c+9−3

This diff is large: its 41 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/htc_drv_main.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/htc_drv_txrx.c+5−4

This diff is large: its 23 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/htc_hst.c+3−3

This diff is large: its 34 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/hw.h+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/init.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/main.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/recv.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/wmi.c+4−2

This diff is large: its 27 lines aren’t shown here.

drivers/net/wireless/ath/ath9k/wmi.h+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/net/wireless/ath/carl9170/fw.c+1−3

This diff is large: its 11 lines aren’t shown here.

drivers/net/wireless/ath/carl9170/fwcmd.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/carl9170/hw.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/carl9170/main.c+4−17

This diff is large: its 35 lines aren’t shown here.

drivers/net/wireless/ath/wcn36xx/hal.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/ath/wcn36xx/main.c+4−2

This diff is large: its 27 lines aren’t shown here.

drivers/net/wireless/ath/wcn36xx/testmode.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/wil6210/fw.h+8−8

This diff is large: its 72 lines aren’t shown here.

drivers/net/wireless/ath/wil6210/wmi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/ath/wil6210/wmi.h+29−29

This diff is large: its 261 lines aren’t shown here.

drivers/net/wireless/atmel/atmel.c+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/net/wireless/broadcom/b43/main.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/broadcom/b43/phy_n.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/broadcom/b43/pio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/broadcom/b43/xmit.c+0−13

This diff is large: its 20 lines aren’t shown here.

drivers/net/wireless/broadcom/b43legacy/main.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/broadcom/b43legacy/xmit.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c+20−4

This diff is large: its 50 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c+250−51

This diff is large: its 430 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h+28−0

This diff is large: its 69 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h+4−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/commonring.c+1−7

This diff is large: its 16 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c+0−3

This diff is large: its 10 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c+3−6

This diff is large: its 17 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h+5−7

This diff is large: its 26 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c+2−1

This diff is large: its 16 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c+4−24

This diff is large: its 50 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h+23−0

This diff is large: its 30 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c+135−16

This diff is large: its 295 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.h+6−3

This diff is large: its 28 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c+58−17

This diff is large: its 121 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c+2−5

This diff is large: its 28 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c+2−5

This diff is large: its 29 lines aren’t shown here.

drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/cisco/airo.c+12−0

This diff is large: its 33 lines aren’t shown here.

drivers/net/wireless/intel/ipw2x00/Kconfig+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/intel/ipw2x00/ipw2100.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/intel/ipw2x00/ipw2200.c+8−21

This diff is large: its 92 lines aren’t shown here.

drivers/net/wireless/intel/ipw2x00/ipw2200.h+6−6

This diff is large: its 54 lines aren’t shown here.

drivers/net/wireless/intel/ipw2x00/libipw.h+14−14

This diff is large: its 126 lines aren’t shown here.

drivers/net/wireless/intel/iwlegacy/commands.h+11−11

This diff is large: its 99 lines aren’t shown here.

drivers/net/wireless/intel/iwlegacy/iwl-spectrum.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/Makefile+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/cfg/22000.c+106−67

This diff is large: its 351 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/dvm/dev.h+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/dvm/main.c+2−9

This diff is large: its 33 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/dvm/rs.c+1−10

This diff is large: its 25 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/acpi.c+164−11

This diff is large: its 216 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/acpi.h+39−0

This diff is large: its 93 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/api/config.h+36−3

This diff is large: its 69 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/api/d3.h+38−1

This diff is large: its 53 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h+3−2

This diff is large: its 26 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/api/debug.h+8−6

This diff is large: its 46 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/api/location.h+101−9

This diff is large: its 196 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/api/nvm-reg.h+47−2

This diff is large: its 81 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/api/rx.h+6−8

This diff is large: its 48 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/api/scan.h+0−26

This diff is large: its 40 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/api/soc.h+8−4

This diff is large: its 37 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/api/sta.h+0−26

This diff is large: its 33 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/dbg.c+155−65

This diff is large: its 395 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/dbg.h+0−11

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/debugfs.c+100−4

This diff is large: its 141 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/error-dump.h+11−2

This diff is large: its 34 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/file.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/img.c+99−0

This diff is large: its 100 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/img.h+2−17

This diff is large: its 25 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/init.c+53−2

This diff is large: its 80 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/runtime.h+14−6

This diff is large: its 61 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/fw/smem.c+10−4

This diff is large: its 46 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/iwl-config.h+27−11

This diff is large: its 124 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/iwl-context-info-gen3.h+10−2

This diff is large: its 40 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c+25−17

This diff is large: its 70 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/iwl-drv.c+3−15

This diff is large: its 64 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/iwl-drv.h+3−4

This diff is large: its 28 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/iwl-fh.h+3−4

This diff is large: its 28 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/iwl-modparams.h+2−8

This diff is large: its 43 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c+6−2

This diff is large: its 36 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/iwl-prph.h+5−6

This diff is large: its 34 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/iwl-trans.h+128−0

This diff is large: its 149 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/coex.c+3−4

This diff is large: its 28 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/constants.h+4−0

This diff is large: its 10 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/d3.c+35−28

This diff is large: its 144 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c+7−4

This diff is large: its 36 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c+90−15

This diff is large: its 175 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/fw.c+137−38

This diff is large: its 247 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c+29−33

This diff is large: its 118 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/mvm.h+4−8

This diff is large: its 48 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/ops.c+6−32

This diff is large: its 98 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c+8−7

This diff is large: its 23 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/rs.c+5−4

This diff is large: its 36 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/scan.c+4−40

This diff is large: its 79 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/sta.c+45−24

This diff is large: its 129 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/sta.h+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/tx.c+4−7

This diff is large: its 32 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/mvm/utils.c+23−6

This diff is large: its 68 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c+34−23

This diff is large: its 101 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c+18−3

This diff is large: its 49 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/pcie/drv.c+56−83

This diff is large: its 274 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/pcie/internal.h+6−136

This diff is large: its 208 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/pcie/rx.c+30−8

This diff is large: its 86 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c+6−5

This diff is large: its 39 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/pcie/trans.c+124−71

This diff is large: its 334 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c+60−51

This diff is large: its 356 lines aren’t shown here.

drivers/net/wireless/intel/iwlwifi/pcie/tx.c+65−67

This diff is large: its 480 lines aren’t shown here.

drivers/net/wireless/intersil/hostap/hostap_hw.c+22−0

This diff is large: its 36 lines aren’t shown here.

drivers/net/wireless/intersil/hostap/hostap_proc.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/wireless/intersil/orinoco/spectrum_cs.c+1−2

This diff is large: its 14 lines aren’t shown here.

drivers/net/wireless/intersil/p54/p54usb.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/intersil/prism54/isl_oid.h+4−4

This diff is large: its 33 lines aren’t shown here.

drivers/net/wireless/intersil/prism54/islpci_mgt.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/mac80211_hwsim.c+64−0

This diff is large: its 148 lines aren’t shown here.

drivers/net/wireless/mac80211_hwsim.h+8−0

This diff is large: its 22 lines aren’t shown here.

drivers/net/wireless/marvell/libertas/cmd.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/marvell/libertas/cmdresp.c+1−4

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/marvell/libertas/mesh.c+1−5

This diff is large: its 21 lines aren’t shown here.

drivers/net/wireless/marvell/libertas/mesh.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/marvell/libertas/rx.c+1−4

This diff is large: its 19 lines aren’t shown here.

drivers/net/wireless/marvell/libertas_tf/if_usb.c+3−3

This diff is large: its 14 lines aren’t shown here.

drivers/net/wireless/marvell/mwifiex/cfg80211.c+17−18

This diff is large: its 72 lines aren’t shown here.

drivers/net/wireless/marvell/mwifiex/cmdevt.c+27−2

This diff is large: its 50 lines aren’t shown here.

drivers/net/wireless/marvell/mwifiex/fw.h+10−0

This diff is large: its 29 lines aren’t shown here.

drivers/net/wireless/marvell/mwifiex/main.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/marvell/mwifiex/sta_cmd.c+16−23

This diff is large: its 60 lines aren’t shown here.

drivers/net/wireless/marvell/mwl8k.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/Kconfig+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/Makefile+2−1

This diff is large: its 7 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/agg-rx.c+6−6

This diff is large: its 44 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/debugfs.c+21−0

This diff is large: its 35 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/dma.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mac80211.c+18−15

This diff is large: its 116 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mcu.c+5−4

This diff is large: its 24 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mmio.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76.h+54−14

This diff is large: its 200 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7603/debugfs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7603/eeprom.c+5−0

This diff is large: its 22 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7603/init.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7603/mac.c+13−6

This diff is large: its 77 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7603/mcu.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7603/mcu.h+0−7

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7603/soc.c+1−3

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/Kconfig+18−2

This diff is large: its 30 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/Makefile+8−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/debugfs.c+38−9

This diff is large: its 102 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/dma.c+46−41

This diff is large: its 131 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c+77−17

This diff is large: its 198 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/eeprom.h+32−1

This diff is large: its 63 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/init.c+112−179

This diff is large: its 452 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/mac.c+372−393

This diff is large: its 1239 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/mac.h+39−0

This diff is large: its 67 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/main.c+338−51

This diff is large: its 552 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/mcu.c+1419−160

This diff is large: its 2147 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/mcu.h+306−8

This diff is large: its 365 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/mmio.c+64−9

This diff is large: its 158 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h+166−24

This diff is large: its 365 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/pci.c+132−3

This diff is large: its 172 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c+174−0

This diff is large: its 175 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/pci_mac.c+184−0

This diff is large: its 185 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/regs.h+94−14

This diff is large: its 232 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/soc.c+1−3

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/usb.c+447−0

This diff is large: its 448 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/usb_init.c+145−0

This diff is large: its 146 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7615/usb_mcu.c+93−0

This diff is large: its 94 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x0/init.c+5−21

This diff is large: its 40 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x0/pci.c+3−0

This diff is large: its 24 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x02.h+5−1

This diff is large: its 34 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x02_mac.c+6−3

This diff is large: its 31 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x02_mcu.c+4−1

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x02_mcu.h+0−6

This diff is large: its 13 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c+19−2

This diff is large: its 52 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x02_util.c+5−1

This diff is large: its 27 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c+5−0

This diff is large: its 26 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x2/pci_main.c+7−14

This diff is large: its 82 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt76x2/usb.c+2−0

This diff is large: its 11 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/Kconfig+13−0

This diff is large: its 14 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/Makefile+6−0

This diff is large: its 7 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c+463−0

This diff is large: its 464 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/dma.c+285−0

This diff is large: its 286 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c+243−0

This diff is large: its 244 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/eeprom.h+125−0

This diff is large: its 126 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/init.c+702−0

This diff is large: its 703 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/mac.c+1477−0

This diff is large: its 1478 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/mac.h+346−0

This diff is large: its 347 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/main.c+838−0

This diff is large: its 839 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/mcu.c+3182−0

This diff is large: its 3183 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/mcu.h+1034−0

This diff is large: its 1035 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h+469−0

This diff is large: its 470 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/pci.c+191−0

This diff is large: its 192 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/mt7915/regs.h+375−0

This diff is large: its 376 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/tx.c+1−3

This diff is large: its 21 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/usb.c+13−2

This diff is large: its 22 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/util.c+6−6

This diff is large: its 38 lines aren’t shown here.

drivers/net/wireless/mediatek/mt76/util.h+7−7

This diff is large: its 32 lines aren’t shown here.

drivers/net/wireless/quantenna/qtnfmac/bus.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/quantenna/qtnfmac/cfg80211.c+43−40

This diff is large: its 107 lines aren’t shown here.

drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/quantenna/qtnfmac/qlink.h+27−27

This diff is large: its 243 lines aren’t shown here.

drivers/net/wireless/ralink/rt2x00/rt2800lib.c+1−3

This diff is large: its 11 lines aren’t shown here.

drivers/net/wireless/ralink/rt2x00/rt2x00mac.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/net/wireless/ray_cs.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c+0−4

This diff is large: its 11 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/base.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/rtl8188ee/rf.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c+6−8

This diff is large: its 21 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hal_btc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c+5−5

This diff is large: its 36 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c+2−2

This diff is large: its 12 lines aren’t shown here.

drivers/net/wireless/realtek/rtlwifi/usb.c+2−6

This diff is large: its 30 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/Kconfig+24−2

This diff is large: its 51 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/Makefile+22−6

This diff is large: its 39 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/bf.c+10−4

This diff is large: its 88 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/bf.h+22−0

This diff is large: its 27 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/coex.c+19−5

This diff is large: its 60 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/debug.c+5−4

This diff is large: its 28 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/efuse.c+27−0

This diff is large: its 50 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/efuse.h+3−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/fw.c+41−14

This diff is large: its 155 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/fw.h+30−2

This diff is large: its 48 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/mac.c+339−98

This diff is large: its 582 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/mac.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/mac80211.c+36−7

This diff is large: its 83 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/main.c+69−13

This diff is large: its 179 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/main.h+95−6

This diff is large: its 269 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/pci.c+47−35

This diff is large: its 159 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/pci.h+0−4

This diff is large: its 11 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/phy.c+89−5

This diff is large: its 312 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/phy.h+7−0

This diff is large: its 26 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/reg.h+108−0

This diff is large: its 293 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8723d.c+2753−0

This diff is large: its 2754 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8723d.h+283−0

This diff is large: its 284 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8723d_table.c+1196−0

This diff is large: its 1197 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8723d_table.h+15−0

This diff is large: its 16 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8723de.c+30−0

This diff is large: its 31 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8723de.h+14−0

This diff is large: its 15 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8822b.c+45−7

This diff is large: its 129 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8822be.c+30−0

This diff is large: its 31 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8822be.h+14−0

This diff is large: its 15 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8822c.c+181−2

This diff is large: its 286 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8822c.h+28−0

This diff is large: its 33 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8822c_table.c+15542−1328

This diff is large: its 21342 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8822c_table.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8822ce.c+30−0

This diff is large: its 31 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rtw8822ce.h+14−0

This diff is large: its 15 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/rx.c+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/sec.c+5−1

This diff is large: its 20 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/tx.c+8−3

This diff is large: its 25 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/tx.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/realtek/rtw88/util.c+14−6

This diff is large: its 47 lines aren’t shown here.

drivers/net/wireless/rndis_wlan.c+12−20

This diff is large: its 88 lines aren’t shown here.

drivers/net/wireless/rsi/rsi_91x_mac80211.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/net/wireless/st/cw1200/cw1200_sdio.c+1−8

This diff is large: its 23 lines aren’t shown here.

drivers/net/wireless/st/cw1200/cw1200_spi.c+1−5

This diff is large: its 17 lines aren’t shown here.

drivers/net/wireless/ti/wlcore/cmd.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/net/wireless/ti/wlcore/main.c+23−14

This diff is large: its 139 lines aren’t shown here.

drivers/net/wireless/ti/wlcore/tx.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/nvme/host/tcp.c+8−45

This diff is large: its 78 lines aren’t shown here.

drivers/nvme/target/tcp.c+10−44

This diff is large: its 85 lines aren’t shown here.

drivers/of/of_mdio.c+42−31

This diff is large: its 103 lines aren’t shown here.

drivers/parport/procfs.c+18−21

This diff is large: its 105 lines aren’t shown here.

drivers/power/supply/test_power.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/ptp/ptp_chardev.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/ptp/ptp_clock.c+9−0

This diff is large: its 16 lines aren’t shown here.

drivers/ptp/ptp_clockmatrix.c+93−1

This diff is large: its 150 lines aren’t shown here.

drivers/ptp/ptp_clockmatrix.h+6−2

This diff is large: its 29 lines aren’t shown here.

drivers/ptp/ptp_idt82p33.c+3−3

This diff is large: its 24 lines aren’t shown here.

drivers/ptp/ptp_ines.c+1−7

This diff is large: its 18 lines aren’t shown here.

drivers/ptp/ptp_kvm.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/s390/net/Kconfig+3−6

This diff is large: its 16 lines aren’t shown here.

drivers/s390/net/ctcm_main.c+0−40

This diff is large: its 54 lines aren’t shown here.

drivers/s390/net/lcs.c+0−59

This diff is large: its 73 lines aren’t shown here.

drivers/s390/net/netiucv.c+1−103

This diff is large: its 146 lines aren’t shown here.

drivers/s390/net/qeth_core.h+41−8

This diff is large: its 123 lines aren’t shown here.

drivers/s390/net/qeth_core_main.c+400−96

This diff is large: its 718 lines aren’t shown here.

drivers/s390/net/qeth_core_mpc.h+25−0

This diff is large: its 39 lines aren’t shown here.

drivers/s390/net/qeth_core_sys.c+9−6

This diff is large: its 27 lines aren’t shown here.

drivers/s390/net/qeth_l2_main.c+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/s390/net/qeth_l3_main.c+6−13

This diff is large: its 41 lines aren’t shown here.

drivers/s390/net/smsgiucv.c+0−65

This diff is large: its 102 lines aren’t shown here.

drivers/soc/fsl/dpio/qbman-portal.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/ssb/scan.c+4−2

This diff is large: its 20 lines aren’t shown here.

drivers/ssb/sprom.c+8−4

This diff is large: its 34 lines aren’t shown here.

drivers/staging/fsl-dpaa2/ethsw/README+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c+0−24

This diff is large: its 38 lines aren’t shown here.

drivers/staging/wilc1000/cfg80211.c+17−19

This diff is large: its 59 lines aren’t shown here.

drivers/staging/wilc1000/cfg80211.h+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/staging/wilc1000/netdev.c+9−12

This diff is large: its 44 lines aren’t shown here.

drivers/staging/wilc1000/netdev.h+1−8

This diff is large: its 30 lines aren’t shown here.

drivers/target/iscsi/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/target/iscsi/iscsi_target_login.c+6−29

This diff is large: its 56 lines aren’t shown here.

drivers/vhost/net.c+1−0

This diff is large: its 8 lines aren’t shown here.

fs/afs/rxrpc.c+2−4

This diff is large: its 20 lines aren’t shown here.

fs/cifs/connect.c+2−8

This diff is large: its 17 lines aren’t shown here.

fs/cifs/transport.c+2−6

This diff is large: its 29 lines aren’t shown here.

fs/dcache.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/dlm/lowcomms.c+15−162

This diff is large: its 292 lines aren’t shown here.

fs/drop_caches.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/file_table.c+2−2

This diff is large: its 17 lines aren’t shown here.

fs/fscache/main.c+1−2

This diff is large: its 10 lines aren’t shown here.

fs/inode.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/ocfs2/cluster/tcp.c+4−38

This diff is large: its 63 lines aren’t shown here.

fs/proc/proc_net.c+19−0

This diff is large: its 26 lines aren’t shown here.

fs/proc/proc_sysctl.c+29−18

This diff is large: its 71 lines aren’t shown here.

fs/quota/dquot.c+1−1

This diff is large: its 9 lines aren’t shown here.

fs/xfs/xfs_sysctl.c+2−2

This diff is large: its 18 lines aren’t shown here.

include/linux/avf/virtchnl.h+5−0

This diff is large: its 40 lines aren’t shown here.

include/linux/bpf-cgroup.h+5−19

This diff is large: its 91 lines aren’t shown here.

include/linux/bpf-netns.h+64−0

This diff is large: its 65 lines aren’t shown here.

include/linux/bpf.h+116−6

This diff is large: its 289 lines aren’t shown here.

include/linux/bpf_types.h+11−0

This diff is large: its 15 lines aren’t shown here.

include/linux/bpf_verifier.h+7−0

This diff is large: its 28 lines aren’t shown here.

include/linux/brcmphy.h+58−0

This diff is large: its 85 lines aren’t shown here.

include/linux/capability.h+5−0

This diff is large: its 12 lines aren’t shown here.

include/linux/compaction.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/coredump.h+4−0

This diff is large: its 9 lines aren’t shown here.

include/linux/delay.h+11−0

This diff is large: its 16 lines aren’t shown here.

include/linux/dsa/8021q.h+57−0

This diff is large: its 101 lines aren’t shown here.

include/linux/dsa/sja1105.h+3−0

This diff is large: its 23 lines aren’t shown here.

include/linux/etherdevice.h+12−0

This diff is large: its 26 lines aren’t shown here.

include/linux/ethtool_netlink.h+54−0

This diff is large: its 59 lines aren’t shown here.

include/linux/file.h+2−0

This diff is large: its 7 lines aren’t shown here.

include/linux/filter.h+2−6

This diff is large: its 22 lines aren’t shown here.

include/linux/fs.h+3−3

This diff is large: its 15 lines aren’t shown here.

include/linux/fsl/ptp_qoriq.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/ftrace.h+1−2

This diff is large: its 10 lines aren’t shown here.

include/linux/hugetlb.h+7−8

This diff is large: its 22 lines aren’t shown here.

include/linux/ieee80211.h+359−8

This diff is large: its 563 lines aren’t shown here.

include/linux/if_bridge.h+2−0

This diff is large: its 9 lines aren’t shown here.

include/linux/if_team.h+2−5

This diff is large: its 21 lines aren’t shown here.

include/linux/igmp.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/inet_diag.h+5−1

This diff is large: its 13 lines aren’t shown here.

include/linux/iopoll.h+43−19

This diff is large: its 76 lines aren’t shown here.

include/linux/kprobes.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/latencytop.h+2−2

This diff is large: its 11 lines aren’t shown here.

include/linux/mdio.h+31−0

This diff is large: its 45 lines aren’t shown here.

include/linux/mlx4/qp.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/mlx5/accel.h+13−1

This diff is large: its 28 lines aren’t shown here.

include/linux/mlx5/cmd.h+0−51

This diff is large: its 52 lines aren’t shown here.

include/linux/mlx5/cq.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/mlx5/device.h+41−3

This diff is large: its 118 lines aren’t shown here.

include/linux/mlx5/driver.h+20−15

This diff is large: its 105 lines aren’t shown here.

include/linux/mlx5/fs.h+1−0

This diff is large: its 8 lines aren’t shown here.

include/linux/mlx5/mlx5_ifc.h+166−58

This diff is large: its 639 lines aren’t shown here.

include/linux/mlx5/qp.h+7−50

This diff is large: its 87 lines aren’t shown here.

include/linux/mlx5/transobj.h+6−13

This diff is large: its 34 lines aren’t shown here.

include/linux/mlx5/vport.h+1−2

This diff is large: its 10 lines aren’t shown here.

include/linux/mm.h+8−6

This diff is large: its 34 lines aren’t shown here.

include/linux/mmzone.h+13−14

This diff is large: its 38 lines aren’t shown here.

include/linux/net.h+0−4

This diff is large: its 11 lines aren’t shown here.

include/linux/netdev_features.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/netdevice.h+82−8

This diff is large: its 191 lines aren’t shown here.

include/linux/netpoll.h+1−9

This diff is large: its 17 lines aren’t shown here.

include/linux/nmi.h+5−10

This diff is large: its 22 lines aren’t shown here.

include/linux/of_mdio.h+10−1

This diff is large: its 25 lines aren’t shown here.

include/linux/perf_event.h+5−8

This diff is large: its 21 lines aren’t shown here.

include/linux/phy.h+182−11

This diff is large: its 340 lines aren’t shown here.

include/linux/phylink.h+3−3

This diff is large: its 20 lines aren’t shown here.

include/linux/pid.h+3−0

This diff is large: its 10 lines aren’t shown here.

include/linux/printk.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/proc_fs.h+3−0

This diff is large: its 10 lines aren’t shown here.

include/linux/ptp_clock_kernel.h+5−1

This diff is large: its 27 lines aren’t shown here.

include/linux/qed/qed_if.h+23−3

This diff is large: its 48 lines aren’t shown here.

include/linux/qed/qed_rdma_if.h+22−0

This diff is large: its 63 lines aren’t shown here.

include/linux/sched/sysctl.h+15−29

This diff is large: its 68 lines aren’t shown here.

include/linux/security.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/linux/skbuff.h+9−27

This diff is large: its 57 lines aren’t shown here.

include/linux/skmsg.h+8−0

This diff is large: its 13 lines aren’t shown here.

include/linux/socket.h+15−2

This diff is large: its 31 lines aren’t shown here.

include/linux/sysctl.h+30−31

This diff is large: its 82 lines aren’t shown here.

include/linux/tcp.h+13−0

This diff is large: its 32 lines aren’t shown here.

include/linux/timer.h+1−2

This diff is large: its 10 lines aren’t shown here.

include/linux/vermagic.h+4−0

This diff is large: its 11 lines aren’t shown here.

include/linux/vmstat.h+4−4

This diff is large: its 22 lines aren’t shown here.

include/linux/writeback.h+11−17

This diff is large: its 36 lines aren’t shown here.

include/net/act_api.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/net/addrconf.h+0−2

This diff is large: its 9 lines aren’t shown here.

include/net/af_rxrpc.h+2−0

This diff is large: its 7 lines aren’t shown here.

include/net/bareudp.h+7−0

This diff is large: its 19 lines aren’t shown here.

include/net/bluetooth/bluetooth.h+19−0

This diff is large: its 40 lines aren’t shown here.

include/net/bluetooth/hci.h+24−3

This diff is large: its 79 lines aren’t shown here.

include/net/bluetooth/hci_core.h+37−3

This diff is large: its 98 lines aren’t shown here.

include/net/bluetooth/l2cap.h+3−3

This diff is large: its 25 lines aren’t shown here.

include/net/bluetooth/mgmt.h+54−20

This diff is large: its 218 lines aren’t shown here.

include/net/bond_alb.h+4−0

This diff is large: its 11 lines aren’t shown here.

include/net/bonding.h+10−10

This diff is large: its 64 lines aren’t shown here.

include/net/cfg80211.h+263−42

This diff is large: its 600 lines aren’t shown here.

include/net/compat.h+41−6

This diff is large: its 60 lines aren’t shown here.

include/net/devlink.h+189−0

This diff is large: its 224 lines aren’t shown here.

include/net/dsa.h+16−5

This diff is large: its 56 lines aren’t shown here.

include/net/dst_ops.h+3−1

This diff is large: its 13 lines aren’t shown here.

include/net/erspan.h+17−2

This diff is large: its 40 lines aren’t shown here.

include/net/flow_dissector.h+19−1

This diff is large: its 45 lines aren’t shown here.

include/net/flow_offload.h+36−13

This diff is large: its 114 lines aren’t shown here.

include/net/if_inet6.h+1−2

This diff is large: its 17 lines aren’t shown here.

include/net/inet_common.h+7−1

This diff is large: its 16 lines aren’t shown here.

include/net/inet_connection_sock.h+8−0

This diff is large: its 15 lines aren’t shown here.

include/net/ip.h+6−0

This diff is large: its 11 lines aren’t shown here.

include/net/ip6_fib.h+8−0

This diff is large: its 22 lines aren’t shown here.

include/net/ip6_route.h+3−2

This diff is large: its 16 lines aren’t shown here.

include/net/ip_tunnels.h+2−1

This diff is large: its 10 lines aren’t shown here.

include/net/ipv6.h+97−3

This diff is large: its 127 lines aren’t shown here.

include/net/ipv6_stubs.h+8−2

This diff is large: its 31 lines aren’t shown here.

include/net/iucv/af_iucv.h+0−8

This diff is large: its 13 lines aren’t shown here.

include/net/mac80211.h+38−11

This diff is large: its 200 lines aren’t shown here.

include/net/mpls.h+17−0

This diff is large: its 29 lines aren’t shown here.

include/net/mptcp.h+16−8

This diff is large: its 59 lines aren’t shown here.

include/net/net_namespace.h+3−1

This diff is large: its 18 lines aren’t shown here.

include/net/netfilter/nf_conntrack_l4proto.h+4−2

This diff is large: its 20 lines aren’t shown here.

include/net/netfilter/nf_flow_table.h+2−0

This diff is large: its 9 lines aren’t shown here.

include/net/netfilter/nf_tables.h+11−0

This diff is large: its 36 lines aren’t shown here.

include/net/netlink.h+99−36

This diff is large: its 241 lines aren’t shown here.

include/net/netns/bpf.h+18−0

This diff is large: its 19 lines aren’t shown here.

include/net/netns/ipv4.h+3−0

This diff is large: its 17 lines aren’t shown here.

include/net/netns/nexthop.h+1−0

This diff is large: its 7 lines aren’t shown here.

include/net/nexthop.h+44−0

This diff is large: its 91 lines aren’t shown here.

include/net/pkt_cls.h+1−0

This diff is large: its 8 lines aren’t shown here.

include/net/regulatory.h+0−7

This diff is large: its 14 lines aren’t shown here.

include/net/sch_generic.h+4−5

This diff is large: its 23 lines aren’t shown here.

include/net/sctp/sctp.h+7−0

This diff is large: its 12 lines aren’t shown here.

include/net/sctp/ulpevent.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/net/sock.h+15−1

This diff is large: its 28 lines aren’t shown here.

include/net/switchdev.h+63−0

This diff is large: its 91 lines aren’t shown here.

include/net/tc_act/tc_gate.h+146−0

This diff is large: its 147 lines aren’t shown here.

include/net/tcp.h+10−14

This diff is large: its 68 lines aren’t shown here.

include/net/tls.h+20−1

This diff is large: its 40 lines aren’t shown here.

include/net/vxlan.h+25−0

This diff is large: its 37 lines aren’t shown here.

include/net/xdp.h+46−9

This diff is large: its 130 lines aren’t shown here.

include/net/xdp_sock.h+8−273

This diff is large: its 340 lines aren’t shown here.

include/net/xdp_sock_drv.h+232−0

This diff is large: its 233 lines aren’t shown here.

include/net/xfrm.h+22−9

This diff is large: its 88 lines aren’t shown here.

include/net/xsk_buff_pool.h+140−0

This diff is large: its 141 lines aren’t shown here.

include/soc/mscc/ocelot.h+10−5

This diff is large: its 50 lines aren’t shown here.

include/soc/mscc/ocelot_ptp.hrenamed from drivers/net/ethernet/mscc/ocelot_ptp.h+17−0

This diff is large: its 38 lines aren’t shown here.

include/trace/events/qdisc.h+75−0

This diff is large: its 89 lines aren’t shown here.

include/trace/events/qrtr.h+115−0

This diff is large: its 116 lines aren’t shown here.

include/trace/events/xdp.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/uapi/linux/bpf.h+343−45

This diff is large: its 675 lines aren’t shown here.

include/uapi/linux/capability.h+33−1

This diff is large: its 48 lines aren’t shown here.

include/uapi/linux/devlink.h+9−0

This diff is large: its 31 lines aren’t shown here.

include/uapi/linux/errqueue.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/uapi/linux/ethtool.h+15−1

This diff is large: its 30 lines aren’t shown here.

include/uapi/linux/ethtool_netlink.h+151−0

This diff is large: its 186 lines aren’t shown here.

include/uapi/linux/genetlink.h+2−0

This diff is large: its 16 lines aren’t shown here.

include/uapi/linux/if.h+1−0

This diff is large: its 8 lines aren’t shown here.

include/uapi/linux/if_bridge.h+96−0

This diff is large: its 110 lines aren’t shown here.

include/uapi/linux/if_ether.h+1−0

This diff is large: its 8 lines aren’t shown here.

include/uapi/linux/if_link.h+1−0

This diff is large: its 8 lines aren’t shown here.

include/uapi/linux/if_x25.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/uapi/linux/inet_diag.h+2−0

This diff is large: its 16 lines aren’t shown here.

include/uapi/linux/mii.h+2−0

This diff is large: its 14 lines aren’t shown here.

include/uapi/linux/mrp_bridge.h+122−0

This diff is large: its 123 lines aren’t shown here.

include/uapi/linux/neighbour.h+1−0

This diff is large: its 8 lines aren’t shown here.

include/uapi/linux/netfilter/nf_conntrack_common.h+6−2

This diff is large: its 22 lines aren’t shown here.

include/uapi/linux/netfilter/nf_nat.h+3−1

This diff is large: its 18 lines aren’t shown here.

include/uapi/linux/netfilter/nfnetlink_conntrack.h+9−0

This diff is large: its 21 lines aren’t shown here.

include/uapi/linux/netlink.h+103−0

This diff is large: its 108 lines aren’t shown here.

include/uapi/linux/nexthop.h+3−0

This diff is large: its 10 lines aren’t shown here.

include/uapi/linux/nl80211.h+122−25

This diff is large: its 346 lines aren’t shown here.

include/uapi/linux/pkt_cls.h+24−0

This diff is large: its 45 lines aren’t shown here.

include/uapi/linux/pkt_sched.h+6−0

This diff is large: its 20 lines aren’t shown here.

include/uapi/linux/psample.h+22−0

This diff is large: its 36 lines aren’t shown here.

include/uapi/linux/ptp_clock.h+3−1

This diff is large: its 11 lines aren’t shown here.

include/uapi/linux/rtnetlink.h+6−0

This diff is large: its 18 lines aren’t shown here.

include/uapi/linux/tc_act/tc_gate.h+47−0

This diff is large: its 48 lines aren’t shown here.

include/uapi/linux/wireless.h+5−1

This diff is large: its 13 lines aren’t shown here.

ipc/ipc_sysctl.c+5−5

This diff is large: its 45 lines aren’t shown here.

ipc/mq_sysctl.c+2−2

This diff is large: its 18 lines aren’t shown here.

kernel/bpf/Makefile+3−5

This diff is large: its 24 lines aren’t shown here.

kernel/bpf/arraymap.c+5−5

This diff is large: its 45 lines aren’t shown here.

kernel/bpf/bpf_iter.c+539−0

This diff is large: its 540 lines aren’t shown here.

kernel/bpf/bpf_lsm.c+1−1

This diff is large: its 8 lines aren’t shown here.

kernel/bpf/bpf_struct_ops.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/bpf/btf.c+48−1

This diff is large: its 92 lines aren’t shown here.

kernel/bpf/cgroup.c+90−56

This diff is large: its 283 lines aren’t shown here.

kernel/bpf/core.c+8−2

This diff is large: its 38 lines aren’t shown here.

kernel/bpf/cpumap.c+5−20

This diff is large: its 47 lines aren’t shown here.

kernel/bpf/devmap.c+113−20

This diff is large: its 283 lines aren’t shown here.

kernel/bpf/hashtab.c+2−2

This diff is large: its 12 lines aren’t shown here.

kernel/bpf/helpers.c+124−1

This diff is large: its 136 lines aren’t shown here.

kernel/bpf/inode.c+4−1

This diff is large: its 13 lines aren’t shown here.

kernel/bpf/lpm_trie.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/bpf/map_in_map.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/bpf/map_iter.c+102−0

This diff is large: its 103 lines aren’t shown here.

kernel/bpf/net_namespace.c+373−0

This diff is large: its 374 lines aren’t shown here.

kernel/bpf/queue_stack_maps.c+2−2

This diff is large: its 18 lines aren’t shown here.

kernel/bpf/reuseport_array.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/bpf/ringbuf.c+501−0

This diff is large: its 502 lines aren’t shown here.

kernel/bpf/stackmap.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/bpf/syscall.c+503−94

This diff is large: its 1006 lines aren’t shown here.

kernel/bpf/task_iter.c+353−0

This diff is large: its 354 lines aren’t shown here.

kernel/bpf/verifier.c+299−88

This diff is large: its 883 lines aren’t shown here.

kernel/cgroup/cgroup.c+0−27

This diff is large: its 34 lines aren’t shown here.

kernel/events/callchain.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/events/core.c+2−4

This diff is large: its 20 lines aren’t shown here.

kernel/kprobes.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/latencytop.c+2−2

This diff is large: its 11 lines aren’t shown here.

kernel/module.c+3−0

This diff is large: its 10 lines aren’t shown here.

kernel/pid_namespace.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/printk/printk.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/sched/core.c+4−5

This diff is large: its 30 lines aren’t shown here.

kernel/sched/fair.c+1−2

This diff is large: its 10 lines aren’t shown here.

kernel/sched/rt.c+4−6

This diff is large: its 24 lines aren’t shown here.

kernel/sched/topology.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/seccomp.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/sysctl.c+1891−1990

This diff is large: its 4310 lines aren’t shown here.

kernel/time/timer.c+1−2

This diff is large: its 10 lines aren’t shown here.

kernel/trace/bpf_trace.c+235−6

This diff is large: its 318 lines aren’t shown here.

kernel/trace/trace.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/umh.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/utsname_sysctl.c+1−1

This diff is large: its 9 lines aren’t shown here.

kernel/watchdog.c+6−6

This diff is large: its 54 lines aren’t shown here.

lib/nlattr.c+200−48

This diff is large: its 402 lines aren’t shown here.

mm/compaction.c+1−1

This diff is large: its 9 lines aren’t shown here.

mm/hugetlb.c+4−5

This diff is large: its 37 lines aren’t shown here.

mm/page-writeback.c+6−10

This diff is large: its 51 lines aren’t shown here.

mm/page_alloc.c+10−32

This diff is large: its 93 lines aren’t shown here.

mm/util.c+4−6

This diff is large: its 24 lines aren’t shown here.

mm/vmstat.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/8021q/vlan_dev.c+23−3

This diff is large: its 50 lines aren’t shown here.

net/Kconfig+3−2

This diff is large: its 26 lines aren’t shown here.

net/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

net/appletalk/ddp.c+64−18

This diff is large: its 119 lines aren’t shown here.

net/atm/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

net/atm/ioctl.c+52−44

This diff is large: its 129 lines aren’t shown here.

net/atm/resources.c+34−74

This diff is large: its 123 lines aren’t shown here.

net/atm/resources.h+3−2

This diff is large: its 12 lines aren’t shown here.

net/ax25/Kconfig+3−3

This diff is large: its 27 lines aren’t shown here.

net/batman-adv/bat_iv_ogm.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/batman-adv/bat_v_elp.c+2−15

This diff is large: its 31 lines aren’t shown here.

net/batman-adv/bat_v_ogm.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/batman-adv/distributed-arp-table.h+0−5

This diff is large: its 12 lines aren’t shown here.

net/batman-adv/gateway_client.c+2−2

This diff is large: its 11 lines aren’t shown here.

net/batman-adv/hard-interface.c+2−2

This diff is large: its 11 lines aren’t shown here.

net/batman-adv/icmp_socket.c+0−3

This diff is large: its 10 lines aren’t shown here.

net/batman-adv/main.h+1−1

This diff is large: its 9 lines aren’t shown here.

net/batman-adv/routing.c+2−2

This diff is large: its 16 lines aren’t shown here.

net/batman-adv/soft-interface.c+31−0

This diff is large: its 52 lines aren’t shown here.

net/batman-adv/trace.h+0−1

This diff is large: its 8 lines aren’t shown here.

net/batman-adv/types.h+1−1

This diff is large: its 9 lines aren’t shown here.

net/bluetooth/6lowpan.c+8−0

This diff is large: its 16 lines aren’t shown here.

net/bluetooth/Kconfig+20−6

This diff is large: its 40 lines aren’t shown here.

net/bluetooth/Makefile+1−0

This diff is large: its 7 lines aren’t shown here.

net/bluetooth/hci_conn.c+21−6

This diff is large: its 48 lines aren’t shown here.

net/bluetooth/hci_core.c+79−60

This diff is large: its 226 lines aren’t shown here.

net/bluetooth/hci_debugfs.c+46−0

This diff is large: its 60 lines aren’t shown here.

net/bluetooth/hci_event.c+75−31

This diff is large: its 216 lines aren’t shown here.

net/bluetooth/hci_request.c+9−7

This diff is large: its 72 lines aren’t shown here.

net/bluetooth/hci_sock.c+7−5

This diff is large: its 19 lines aren’t shown here.

net/bluetooth/l2cap_core.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/bluetooth/l2cap_sock.c+156−12

This diff is large: its 260 lines aren’t shown here.

net/bluetooth/lib.c+33−0

This diff is large: its 40 lines aren’t shown here.

net/bluetooth/mgmt.c+310−112

This diff is large: its 1213 lines aren’t shown here.

net/bluetooth/msft.c+141−0

This diff is large: its 142 lines aren’t shown here.

net/bluetooth/msft.h+18−0

This diff is large: its 19 lines aren’t shown here.

net/bluetooth/rfcomm/sock.c+2−5

This diff is large: its 27 lines aren’t shown here.

net/bluetooth/smp.c+32−13

This diff is large: its 117 lines aren’t shown here.

net/bpf/test_run.c+15−5

This diff is large: its 67 lines aren’t shown here.

net/bridge/Kconfig+12−0

This diff is large: its 16 lines aren’t shown here.

net/bridge/Makefile+2−0

This diff is large: its 6 lines aren’t shown here.

net/bridge/br_arp_nd_proxy.c+4−0

This diff is large: its 11 lines aren’t shown here.

net/bridge/br_device.c+3−0

This diff is large: its 10 lines aren’t shown here.

net/bridge/br_if.c+25−9

This diff is large: its 59 lines aren’t shown here.

net/bridge/br_input.c+25−1

This diff is large: its 51 lines aren’t shown here.

net/bridge/br_ioctl.c+1−2

This diff is large: its 10 lines aren’t shown here.

net/bridge/br_mrp.c+677−0

This diff is large: its 678 lines aren’t shown here.

net/bridge/br_mrp_netlink.c+327−0

This diff is large: its 328 lines aren’t shown here.

net/bridge/br_mrp_switchdev.c+143−0

This diff is large: its 144 lines aren’t shown here.

net/bridge/br_netfilter_hooks.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/bridge/br_netlink.c+11−1

This diff is large: its 40 lines aren’t shown here.

net/bridge/br_private.h+41−8

This diff is large: its 91 lines aren’t shown here.

net/bridge/br_private_mrp.h+66−0

This diff is large: its 67 lines aren’t shown here.

net/bridge/br_stp.c+6−0

This diff is large: its 13 lines aren’t shown here.

net/bridge/br_stp_if.c+10−1

This diff is large: its 28 lines aren’t shown here.

net/bridge/br_sysfs_br.c+1−3

This diff is large: its 11 lines aren’t shown here.

net/caif/caif_dev.c+4−4

This diff is large: its 36 lines aren’t shown here.

net/caif/chnl_net.c+2−1

This diff is large: its 10 lines aren’t shown here.

net/ceph/Kconfig+1−1

This diff is large: its 8 lines aren’t shown here.

net/ceph/messenger.c+2−9

This diff is large: its 18 lines aren’t shown here.

net/compat.c+11−203

This diff is large: its 249 lines aren’t shown here.

net/core/bpf_sk_storage.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/core/dev.c+142−36

This diff is large: its 291 lines aren’t shown here.

net/core/devlink.c+160−50

This diff is large: its 352 lines aren’t shown here.

net/core/dst.c+4−4

This diff is large: its 16 lines aren’t shown here.

net/core/filter.c+332−132

This diff is large: its 786 lines aren’t shown here.

net/core/flow_dissector.c+53−120

This diff is large: its 271 lines aren’t shown here.

net/core/flow_offload.c+115−190

This diff is large: its 370 lines aren’t shown here.

net/core/gen_stats.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/core/link_watch.c+10−2

This diff is large: its 37 lines aren’t shown here.

net/core/neighbour.c+15−15

This diff is large: its 100 lines aren’t shown here.

net/core/net-sysfs.c+38−7

This diff is large: its 95 lines aren’t shown here.

net/core/netpoll.c+29−9

This diff is large: its 70 lines aren’t shown here.

net/core/pktgen.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/core/rtnetlink.c+9−2

This diff is large: its 30 lines aren’t shown here.

net/core/scm.c+78−63

This diff is large: its 198 lines aren’t shown here.

net/core/skbuff.c+6−6

This diff is large: its 52 lines aren’t shown here.

net/core/skmsg.c+74−24

This diff is large: its 131 lines aren’t shown here.

net/core/sock.c+158−61

This diff is large: its 293 lines aren’t shown here.

net/core/sock_map.c+16−2

This diff is large: its 32 lines aren’t shown here.

net/core/sysctl_net_core.c+13−18

This diff is large: its 121 lines aren’t shown here.

net/core/xdp.c+19−40

This diff is large: its 133 lines aren’t shown here.

net/dccp/dccp.h+0−5

This diff is large: its 12 lines aren’t shown here.

net/dccp/ipv6.c+1−0

This diff is large: its 8 lines aren’t shown here.

net/decnet/Kconfig+2−2

This diff is large: its 15 lines aren’t shown here.

net/decnet/dn_dev.c+3−4

This diff is large: its 21 lines aren’t shown here.

net/decnet/sysctl_net_decnet.c+8−19

This diff is large: its 69 lines aren’t shown here.

net/devres.c+95−0

This diff is large: its 96 lines aren’t shown here.

net/dns_resolver/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

net/dns_resolver/dns_key.c+1−1

This diff is large: its 8 lines aren’t shown here.

net/dns_resolver/dns_query.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/dsa/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

net/dsa/dsa.c+10−1

This diff is large: its 25 lines aren’t shown here.

net/dsa/dsa2.c+21−0

This diff is large: its 28 lines aren’t shown here.

net/dsa/dsa_priv.h+5−0

This diff is large: its 33 lines aren’t shown here.

net/dsa/port.c+35−2

This diff is large: its 79 lines aren’t shown here.

net/dsa/slave.c+41−20

This diff is large: its 183 lines aren’t shown here.

net/dsa/switch.c+15−6

This diff is large: its 41 lines aren’t shown here.

net/dsa/tag_8021q.c+190−62

This diff is large: its 325 lines aren’t shown here.

net/dsa/tag_ocelot.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/dsa/tag_sja1105.c+41−12

This diff is large: its 116 lines aren’t shown here.

net/ethernet/eth.c+0−28

This diff is large: its 35 lines aren’t shown here.

net/ethtool/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

net/ethtool/cabletest.c+431−0

This diff is large: its 432 lines aren’t shown here.

net/ethtool/channels.c+19−3

This diff is large: its 55 lines aren’t shown here.

net/ethtool/ioctl.c+25−4

This diff is large: its 92 lines aren’t shown here.

net/ethtool/linkmodes.c+53−0

This diff is large: its 110 lines aren’t shown here.

net/ethtool/linkstate.c+74−1

This diff is large: its 120 lines aren’t shown here.

net/ethtool/netlink.c+12−2

This diff is large: its 33 lines aren’t shown here.

net/ethtool/netlink.h+4−0

This diff is large: its 17 lines aren’t shown here.

net/hsr/hsr_device.c+1−3

This diff is large: its 15 lines aren’t shown here.

net/hsr/hsr_forward.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/hsr/hsr_main.c+20−2

This diff is large: its 42 lines aren’t shown here.

net/hsr/hsr_main.h+0−19

This diff is large: its 33 lines aren’t shown here.

net/ieee802154/6lowpan/core.c+8−0

This diff is large: its 22 lines aren’t shown here.

net/ieee802154/6lowpan/rx.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/ipv4/Kconfig+2−1

This diff is large: its 17 lines aren’t shown here.

net/ipv4/af_inet.c+51−18

This diff is large: its 157 lines aren’t shown here.

net/ipv4/devinet.c+21−11

This diff is large: its 60 lines aren’t shown here.

net/ipv4/fib_semantics.c+3−0

This diff is large: its 17 lines aren’t shown here.

net/ipv4/icmp.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/ipv4/igmp.c+5−13

This diff is large: its 53 lines aren’t shown here.

net/ipv4/inet_connection_sock.c+1−5

This diff is large: its 13 lines aren’t shown here.

net/ipv4/inet_diag.c+39−0

This diff is large: its 81 lines aren’t shown here.

net/ipv4/ip_gre.c+58−36

This diff is large: its 189 lines aren’t shown here.

net/ipv4/ip_sockglue.c+304−93

This diff is large: its 488 lines aren’t shown here.

net/ipv4/ip_tunnel.c+15−1

This diff is large: its 30 lines aren’t shown here.

net/ipv4/ip_vti.c+13−19

This diff is large: its 63 lines aren’t shown here.

net/ipv4/ipip.c+9−21

This diff is large: its 51 lines aren’t shown here.

net/ipv4/ipmr.c+43−79

This diff is large: its 148 lines aren’t shown here.

net/ipv4/nexthop.c+139−29

This diff is large: its 391 lines aren’t shown here.

net/ipv4/route.c+1−2

This diff is large: its 10 lines aren’t shown here.

net/ipv4/sysctl_net_ipv4.c+31−23

This diff is large: its 159 lines aren’t shown here.

net/ipv4/tcp.c+163−63

This diff is large: its 264 lines aren’t shown here.

net/ipv4/tcp_input.c+50−39

This diff is large: its 185 lines aren’t shown here.

net/ipv4/tcp_ipv4.c+57−48

This diff is large: its 164 lines aren’t shown here.

net/ipv4/tcp_minisocks.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/ipv4/tcp_output.c+21−15

This diff is large: its 96 lines aren’t shown here.

net/ipv4/tcp_timer.c+7−1

This diff is large: its 16 lines aren’t shown here.

net/ipv4/udp.c+9−1

This diff is large: its 24 lines aren’t shown here.

net/ipv4/udp_tunnel.c+1−3

This diff is large: its 11 lines aren’t shown here.

net/ipv4/xfrm4_input.c+0−5

This diff is large: its 12 lines aren’t shown here.

net/ipv4/xfrm4_output.c+2−61

This diff is large: its 80 lines aren’t shown here.

net/ipv4/xfrm4_state.c+0−24

This diff is large: its 37 lines aren’t shown here.

net/ipv6/Kconfig+13−1

This diff is large: its 28 lines aren’t shown here.

net/ipv6/addrconf.c+120−151

This diff is large: its 489 lines aren’t shown here.

net/ipv6/addrconf_core.c+2−1

This diff is large: its 10 lines aren’t shown here.

net/ipv6/af_inet6.c+87−19

This diff is large: its 215 lines aren’t shown here.

net/ipv6/ah6.c+1−0

This diff is large: its 8 lines aren’t shown here.

net/ipv6/anycast.c+2−2

This diff is large: its 18 lines aren’t shown here.

net/ipv6/esp6.c+388−26

This diff is large: its 624 lines aren’t shown here.

net/ipv6/esp6_offload.c+3−4

This diff is large: its 25 lines aren’t shown here.

net/ipv6/ila/ila.h+0−5

This diff is large: its 12 lines aren’t shown here.

net/ipv6/ila/ila_xlat.c+0−2

This diff is large: its 9 lines aren’t shown here.

net/ipv6/ip6_fib.c+58−2

This diff is large: its 81 lines aren’t shown here.

net/ipv6/ip6_tunnel.c+143−104

This diff is large: its 389 lines aren’t shown here.

net/ipv6/ip6_udp_tunnel.c+2−7

This diff is large: its 20 lines aren’t shown here.

net/ipv6/ip6_vti.c+16−2

This diff is large: its 60 lines aren’t shown here.

net/ipv6/ipcomp6.c+1−0

This diff is large: its 8 lines aren’t shown here.

net/ipv6/ipv6_sockglue.c+202−104

This diff is large: its 389 lines aren’t shown here.

net/ipv6/mcast.c+7−10

This diff is large: its 57 lines aren’t shown here.

net/ipv6/ndisc.c+3−2

This diff is large: its 19 lines aren’t shown here.

net/ipv6/raw.c+1−0

This diff is large: its 8 lines aren’t shown here.

net/ipv6/route.c+78−37

This diff is large: its 207 lines aren’t shown here.

net/ipv6/sit.c+205−158

This diff is large: its 435 lines aren’t shown here.

net/ipv6/sysctl_net_ipv6.c+1−2

This diff is large: its 10 lines aren’t shown here.

net/ipv6/tcp_ipv6.c+12−0

This diff is large: its 33 lines aren’t shown here.

net/ipv6/tunnel6.c+83−4

This diff is large: its 152 lines aren’t shown here.

net/ipv6/xfrm6_input.c+101−10

This diff is large: its 137 lines aren’t shown here.

net/ipv6/xfrm6_output.c+4−92

This diff is large: its 126 lines aren’t shown here.

net/ipv6/xfrm6_protocol.c+48−0

This diff is large: its 62 lines aren’t shown here.

net/ipv6/xfrm6_state.c+0−26

This diff is large: its 38 lines aren’t shown here.

net/iucv/af_iucv.c+54−199

This diff is large: its 351 lines aren’t shown here.

net/iucv/iucv.c+0−188

This diff is large: its 212 lines aren’t shown here.

net/l2tp/l2tp_eth.c+1−0

This diff is large: its 8 lines aren’t shown here.

net/l2tp/l2tp_ip6.c+1−0

This diff is large: its 8 lines aren’t shown here.

net/lapb/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

net/mac80211/agg-rx.c+3−2

This diff is large: its 19 lines aren’t shown here.

net/mac80211/agg-tx.c+52−30

This diff is large: its 131 lines aren’t shown here.

net/mac80211/cfg.c+71−35

This diff is large: its 204 lines aren’t shown here.

net/mac80211/chan.c+1−0

This diff is large: its 8 lines aren’t shown here.

net/mac80211/debugfs_netdev.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/mac80211/driver-ops.h+2−2

This diff is large: its 15 lines aren’t shown here.

net/mac80211/he.c+53−8

This diff is large: its 86 lines aren’t shown here.

net/mac80211/ibss.c+14−2

This diff is large: its 55 lines aren’t shown here.

net/mac80211/ieee80211_i.h+25−9

This diff is large: its 135 lines aren’t shown here.

net/mac80211/iface.c+5−0

This diff is large: its 12 lines aren’t shown here.

net/mac80211/main.c+12−3

This diff is large: its 40 lines aren’t shown here.

net/mac80211/mesh.c+49−6

This diff is large: its 160 lines aren’t shown here.

net/mac80211/mesh.h+2−0

This diff is large: its 9 lines aren’t shown here.

net/mac80211/mesh_plink.c+7−2

This diff is large: its 30 lines aren’t shown here.

net/mac80211/mlme.c+132−50

This diff is large: its 514 lines aren’t shown here.

net/mac80211/offchannel.c+4−0

This diff is large: its 11 lines aren’t shown here.

net/mac80211/rc80211_minstrel_ht.c+2−1

This diff is large: its 17 lines aren’t shown here.

net/mac80211/rx.c+95−27

This diff is large: its 212 lines aren’t shown here.

net/mac80211/scan.c+18−9

This diff is large: its 93 lines aren’t shown here.

net/mac80211/spectmgmt.c+3−1

This diff is large: its 25 lines aren’t shown here.

net/mac80211/sta_info.h+4−0

This diff is large: its 25 lines aren’t shown here.

net/mac80211/status.c+8−1

This diff is large: its 19 lines aren’t shown here.

net/mac80211/tdls.c+6−3

This diff is large: its 34 lines aren’t shown here.

net/mac80211/trace.h+33−8

This diff is large: its 130 lines aren’t shown here.

net/mac80211/tx.c+51−23

This diff is large: its 200 lines aren’t shown here.

net/mac80211/util.c+286−12

This diff is large: its 411 lines aren’t shown here.

net/mac80211/vht.c+8−2

This diff is large: its 32 lines aren’t shown here.

net/mpls/af_mpls.c+4−4

This diff is large: its 29 lines aren’t shown here.

net/mpls/internal.h+0−11

This diff is large: its 18 lines aren’t shown here.

net/mptcp/options.c+24−9

This diff is large: its 61 lines aren’t shown here.

net/mptcp/protocol.c+123−45

This diff is large: its 307 lines aren’t shown here.

net/mptcp/protocol.h+1−0

This diff is large: its 8 lines aren’t shown here.

net/mptcp/subflow.c+48−10

This diff is large: its 117 lines aren’t shown here.

net/netfilter/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

net/netfilter/ipvs/ip_vs_ctl.c+3−3

This diff is large: its 27 lines aren’t shown here.

net/netfilter/nf_conntrack_core.c+14−5

This diff is large: its 28 lines aren’t shown here.

net/netfilter/nf_conntrack_netlink.c+295−39

This diff is large: its 533 lines aren’t shown here.

net/netfilter/nf_conntrack_proto_icmp.c+27−13

This diff is large: its 55 lines aren’t shown here.

net/netfilter/nf_conntrack_proto_icmpv6.c+28−14

This diff is large: its 57 lines aren’t shown here.

net/netfilter/nf_conntrack_standalone.c+4−2

This diff is large: its 20 lines aren’t shown here.

net/netfilter/nf_flow_table_core.c+3−3

This diff is large: its 20 lines aren’t shown here.

net/netfilter/nf_flow_table_offload.c+17−71

This diff is large: its 134 lines aren’t shown here.

net/netfilter/nf_internals.h+17−0

This diff is large: its 24 lines aren’t shown here.

net/netfilter/nf_log.c+1−1

This diff is large: its 9 lines aren’t shown here.

net/netfilter/nf_tables_api.c+295−76

This diff is large: its 653 lines aren’t shown here.

net/netfilter/nf_tables_offload.c+19−50

This diff is large: its 116 lines aren’t shown here.

net/netfilter/nft_nat.c+84−26

This diff is large: its 153 lines aren’t shown here.

net/netlink/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

net/netlink/af_netlink.c+90−2

This diff is large: its 127 lines aren’t shown here.

net/netlink/genetlink.c+78−0

This diff is large: its 92 lines aren’t shown here.

This diff is larger than a page shows: the files after these aren’t listed. Clone the repository to see all of it.