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
124 authentication is performed (e.g: 802.1x). 'link_mode' attribute124 authentication is performed (e.g: 802.1x). 'link_mode' attribute
125 will also reflect the dormant state.125 will also reflect the dormant state.
126 126
127What: /sys/class/net/<iface>/testing
128Date: April 2002
129KernelVersion: 5.8
130Contact: netdev@vger.kernel.org
131Description:
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
127What: /sys/clas/net/<iface>/duplex140What: /sys/clas/net/<iface>/duplex
128Date: October 2009141Date: October 2009
129KernelVersion: 2.6.33142KernelVersion: 2.6.33
Documentation/admin-guide/kernel-parameters.txt+6−6
@@ -356,7 +356,7 @@ · 355 unmodified lines
356 shot down by NMI356 shot down by NMI
357 357
358 autoconf= [IPV6]358 autoconf= [IPV6]
359 See Documentation/networking/ipv6.txt.359 See Documentation/networking/ipv6.rst.
360 360
361 show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller361 show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller
362 Limit apic dumping. The parameter defines the maximal362 Limit apic dumping. The parameter defines the maximal
@@ -638,7 +638,7 @@ · 275 unmodified lines
638 638
639 See Documentation/admin-guide/serial-console.rst for more639 See Documentation/admin-guide/serial-console.rst for more
640 information. See640 information. See
641 Documentation/networking/netconsole.txt for an641 Documentation/networking/netconsole.rst for an
642 alternative.642 alternative.
643 643
644 uart[8250],io,<addr>[,options]644 uart[8250],io,<addr>[,options]
@@ -831,7 +831,7 @@ · 186 unmodified lines
831 831
832 decnet.addr= [HW,NET]832 decnet.addr= [HW,NET]
833 Format: <area>[,<node>]833 Format: <area>[,<node>]
834 See also Documentation/networking/decnet.txt.834 See also Documentation/networking/decnet.rst.
835 835
836 default_hugepagesz=836 default_hugepagesz=
837 [same as hugepagesz=] The size of the default837 [same as hugepagesz=] The size of the default
@@ -872,7 +872,7 @@ · 34 unmodified lines
872 miss to occur.872 miss to occur.
873 873
874 disable= [IPV6]874 disable= [IPV6]
875 See Documentation/networking/ipv6.txt.875 See Documentation/networking/ipv6.rst.
876 876
877 hardened_usercopy=877 hardened_usercopy=
878 [KNL] Under CONFIG_HARDENED_USERCOPY, whether878 [KNL] Under CONFIG_HARDENED_USERCOPY, whether
@@ -912,7 +912,7 @@ · 33 unmodified lines
912 to workaround buggy firmware.912 to workaround buggy firmware.
913 913
914 disable_ipv6= [IPV6]914 disable_ipv6= [IPV6]
915 See Documentation/networking/ipv6.txt.915 See Documentation/networking/ipv6.rst.
916 916
917 disable_mtrr_cleanup [X86]917 disable_mtrr_cleanup [X86]
918 The kernel tries to adjust MTRR layout from continuous918 The kernel tries to adjust MTRR layout from continuous
@@ -4956,7 +4956,7 @@ · 4037 unmodified lines
4956 Set the number of tcp_metrics_hash slots.4956 Set the number of tcp_metrics_hash slots.
4957 Default value is 8192 or 16384 depending on total4957 Default value is 8192 or 16384 depending on total
4958 ram pages. This is used to specify the TCP metrics4958 ram pages. This is used to specify the TCP metrics
4959 cache size. See Documentation/networking/ip-sysctl.txt4959 cache size. See Documentation/networking/ip-sysctl.rst
4960 "tcp_no_metrics_save" section for more details.4960 "tcp_no_metrics_save" section for more details.
4961 4961
4962 tdfx= [HW,DRM]4962 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
54``/dev/console`` is now character device 5,1.54``/dev/console`` is now character device 5,1.
55 55
56(You can also use a network device as a console. See56(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.)
58 58
59Here's an example that will use ``/dev/ttyS1`` (COM2) as the console.59Here's an example that will use ``/dev/ttyS1`` (COM2) as the console.
60Replace the sample values as needed.60Replace 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
339 339
340If set to 1, both IPv4 and IPv6 settings are forced to inherit from340If set to 1, both IPv4 and IPv6 settings are forced to inherit from
341current ones in init_net. If set to 2, both IPv4 and IPv6 settings are341current ones in init_net. If set to 2, both IPv4 and IPv6 settings are
342forced to reset to their default values.342forced to reset to their default values. If set to 3, both IPv4 and IPv6
343settings are forced to inherit from current ones in the netns where this
344new netns has been created.
343 345
344Default : 0 (for compatibility reasons)346Default : 0 (for compatibility reasons)
345 347
@@ -353,8 +355,8 @@ socket's buffer. It will not take effect unless PF_UNIX flag is specified. · 7 unmodified lines
353 355
3543. /proc/sys/net/ipv4 - IPV4 settings3563. /proc/sys/net/ipv4 - IPV4 settings
355-------------------------------------357-------------------------------------
356Please see: Documentation/networking/ip-sysctl.txt and ipvs-sysctl.txt for358Please see: Documentation/networking/ip-sysctl.rst and
357descriptions of these entries.359Documentation/admin-guide/sysctl/net.rst for descriptions of these entries.
358 360
359 361
3604. Appletalk3624. Appletalk
Documentation/bpf/bpf_devel_QA.rst+15−0
@@ -437,6 +437,21 @@ needed:: · 436 unmodified lines
437See the kernels selftest `Documentation/dev-tools/kselftest.rst`_437See the kernels selftest `Documentation/dev-tools/kselftest.rst`_
438document for further documentation.438document for further documentation.
439 439
440To maximize the number of tests passing, the .config of the kernel
441under test should match the config file fragment in
442tools/testing/selftests/bpf as closely as possible.
443
444Finally to ensure support for latest BPF Type Format features -
445discussed in `Documentation/bpf/btf.rst`_ - pahole version 1.16
446is required for kernels built with CONFIG_DEBUG_INFO_BTF=y.
447pahole is delivered in the dwarves package or can be built
448from source at
449
450https://github.com/acmel/dwarves
451
452Some distros have pahole version 1.16 packaged already, e.g.
453Fedora, Gentoo.
454
440Q: Which BPF kernel selftests version should I run my kernel against?455Q: Which BPF kernel selftests version should I run my kernel against?
441---------------------------------------------------------------------456---------------------------------------------------------------------
442A: If you run a kernel ``xyz``, then always run the BPF kernel selftests457A: 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
7 7
8This kernel side documentation is still work in progress. The main8This kernel side documentation is still work in progress. The main
9textual documentation is (for historical reasons) described in9textual documentation is (for historical reasons) described in
10`Documentation/networking/filter.txt`_, which describe both classical10`Documentation/networking/filter.rst`_, which describe both classical
11and extended BPF instruction-set.11and extended BPF instruction-set.
12The Cilium project also maintains a `BPF and XDP Reference Guide`_12The Cilium project also maintains a `BPF and XDP Reference Guide`_
13that goes into great technical depth about the BPF Architecture.13that goes into great technical depth about the BPF Architecture.
@@ -59,7 +59,7 @@ Testing and debugging BPF · 45 unmodified lines
59 59
60 60
61.. Links:61.. Links:
62.. _Documentation/networking/filter.txt: ../networking/filter.txt62.. _Documentation/networking/filter.rst: ../networking/filter.txt
63.. _man-pages: https://www.kernel.org/doc/man-pages/63.. _man-pages: https://www.kernel.org/doc/man-pages/
64.. _bpf(2): http://man7.org/linux/man-pages/man2/bpf.2.html64.. _bpf(2): http://man7.org/linux/man-pages/man2/bpf.2.html
65.. _BPF and XDP Reference Guide: http://cilium.readthedocs.io/en/latest/bpf/65.. _BPF and XDP Reference Guide: http://cilium.readthedocs.io/en/latest/bpf/
Documentation/bpf/ringbuf.rst+209−0
@@ -0,0 +1,209 @@
1===============
2BPF ring buffer
3===============
4
5This document describes BPF ring buffer design, API, and implementation details.
6
7.. contents::
8 :local:
9 :depth: 2
10
11Motivation
12----------
13
14There are two distinctive motivators for this work, which are not satisfied by
15existing perf buffer, which prompted creation of a new ring buffer
16implementation.
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
22These two problems are independent, but perf buffer fails to satisfy both.
23Both are a result of a choice to have per-CPU perf ring buffer. Both can be
24also solved by having an MPSC implementation of ring buffer. The ordering
25problem could technically be solved for perf buffer with some in-kernel
26counting, but given the first one requires an MPSC buffer, the same solution
27would solve the second problem automatically.
28
29Semantics and APIs
30------------------
31
32Single ring buffer is presented to BPF programs as an instance of BPF map of
33type ``BPF_MAP_TYPE_RINGBUF``. Two other alternatives considered, but
34ultimately rejected.
35
36One 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
38enforce "same CPU only" rule. This would be more familiar interface compatible
39with existing perf buffer use in BPF, but would fail if application needed more
40advanced logic to lookup ring buffer by arbitrary key.
41``BPF_MAP_TYPE_HASH_OF_MAPS`` addresses this with current approach.
42Additionally, given the performance of BPF ringbuf, many use cases would just
43opt into a simple single ring buffer shared among all CPUs, for which current
44approach would be an overkill.
45
46Another approach could introduce a new concept, alongside BPF map, to represent
47generic "container" object, which doesn't necessarily have key/value interface
48with lookup/update/delete operations. This approach would add a lot of extra
49infrastructure that has to be built for observability and verifier support. It
50would also add another concept that BPF developers would have to familiarize
51themselves with, new syntax in libbpf, etc. But then would really provide no
52additional benefits over the approach of using a map. ``BPF_MAP_TYPE_RINGBUF``
53doesn't support lookup/update/delete operations, but so doesn't few other map
54types (e.g., queue and stack; array doesn't support delete, etc).
55
56The approach chosen has an advantage of re-using existing BPF map
57infrastructure (introspection APIs in kernel, libbpf support, etc), being
58familiar concept (no need to teach users a new type of object in BPF program),
59and utilizing existing tooling (bpftool). For common scenario of using a single
60ring buffer for all CPUs, it's as simple and straightforward, as would be with
61a dedicated "container" object. On the other hand, by being a map, it can be
62combined with ``ARRAY_OF_MAPS`` and ``HASH_OF_MAPS`` map-in-maps to implement
63a wide variety of topologies, from one ring buffer for each CPU (e.g., as
64a replacement for perf buffer use cases), to a complicated application
65hashing/sharding of ring buffers (e.g., having a small pool of ring buffers
66with hashed task's tgid being a look up key to preserve order, but reduce
67contention).
68
69Key and value sizes are enforced to be zero. ``max_entries`` is used to specify
70the size of ring buffer and has to be a power of 2 value.
71
72There 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
84BPF 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,
97because record has to be prepared in some other place first. But it allows to
98submit records of the length that's not known to verifier beforehand. It also
99closely matches ``bpf_perf_event_output()``, so will simplify migration
100significantly.
101
102``bpf_ringbuf_reserve()`` avoids the extra copy of memory by providing a memory
103pointer directly to ring buffer memory. In a lot of cases records are larger
104than BPF stack space allows, so many programs have use extra per-CPU array as
105a temporary heap for preparing sample. bpf_ringbuf_reserve() avoid this needs
106completely. But in exchange, it only allows a known constant size of memory to
107be reserved, such that verifier can verify that BPF program can't access memory
108outside its reserved record space. bpf_ringbuf_output(), while slightly slower
109due to extra memory copy, covers some use cases that are not suitable for
110``bpf_ringbuf_reserve()``.
111
112The difference between commit and discard is very small. Discard just marks
113a record as discarded, and such records are supposed to be ignored by consumer
114code. Discard is useful for some advanced use-cases, such as ensuring
115all-or-nothing multi-record submission, or emulating temporary
116``malloc()``/``free()`` within single BPF program invocation.
117
118Each reserved record is tracked by verifier through existing
119reference-tracking logic, similar to socket ref-tracking. It is thus
120impossible to reserve a record, but forget to submit (or discard) it.
121
122``bpf_ringbuf_query()`` helper allows to query various properties of ring
123buffer. 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
130Returned values are momentarily snapshots of ring buffer state and could be
131off by the time helper returns, so this should be used only for
132debugging/reporting reasons or for implementing various heuristics, that take
133into account highly-changeable nature of some of those characteristics.
134
135One such heuristic might involve more fine-grained control over poll/epoll
136notifications about new data availability in ring buffer. Together with
137``BPF_RB_NO_WAKEUP``/``BPF_RB_FORCE_WAKEUP`` flags for output/commit/discard
138helpers, it allows BPF program a high degree of control and, e.g., more
139efficient batched notifications. Default self-balancing strategy, though,
140should be adequate for most applications and will work reliable and efficiently
141already.
142
143Design and Implementation
144-------------------------
145
146This reserve/commit schema allows a natural way for multiple producers, either
147on different CPUs or even on the same CPU/in the same BPF program, to reserve
148independent records and work with them without blocking other producers. This
149means that if BPF program was interruped by another BPF program sharing the
150same ring buffer, they will both get a record reserved (provided there is
151enough space left) and can work with it and submit it independently. This
152applies to NMI context as well, except that due to using a spinlock during
153reservation, in NMI context, ``bpf_ringbuf_reserve()`` might fail to get
154a lock, in which case reservation will fail even if ring buffer is not full.
155
156The ring buffer itself internally is implemented as a power-of-2 sized
157circular buffer, with two logical and ever-increasing counters (which might
158wrap 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
164Each time a record is reserved, producer that "owns" the record will
165successfully advance producer counter. At that point, data is still not yet
166ready to be consumed, though. Each record has 8 byte header, which contains the
167length of reserved record, as well as two extra bits: busy bit to denote that
168record is still being worked on, and discard bit, which might be set at commit
169time if record is discarded. In the latter case, consumer is supposed to skip
170the record and move on to the next one. Record header also encodes record's
171relative offset from the beginning of ring buffer data area (in pages). This
172allows ``bpf_ringbuf_commit()``/``bpf_ringbuf_discard()`` to accept only the
173pointer to the record itself, without requiring also the pointer to ring buffer
174itself. Ring buffer memory location will be restored from record metadata
175header. This significantly simplifies verifier, as well as improving API
176usability.
177
178Producer counter increments are serialized under spinlock, so there is
179a strict ordering between reservations. Commits, on the other hand, are
180completely lockless and independent. All records become available to consumer
181in the order of reservations, but only after all previous records where
182already committed. It is thus possible for slow producers to temporarily hold
183off submitted records, that were reserved later.
184
185Reservation/commit/consumer protocol is verified by litmus tests in
186Documentation/litmus_tests/bpf-rb/_.
187
188One interesting implementation bit, that significantly simplifies (and thus
189speeds up as well) implementation of both producers and consumers is how data
190area is mapped twice contiguously back-to-back in the virtual memory. This
191allows to not take any special measures for samples that have to wrap around
192at the end of the circular buffer data area, because the next page after the
193last data page would be first data page again, and thus the sample will still
194appear completely contiguous in virtual memory. See comment and a simple ASCII
195diagram showing this visually in ``bpf_ringbuf_area_alloc()``.
196
197Another feature that distinguishes BPF ringbuf from perf ring buffer is
198a self-pacing notifications of new data being availability.
199``bpf_ringbuf_commit()`` implementation will send a notification of new record
200being available after commit only if consumer has already caught up right up to
201the record being committed. If not, consumer still has to catch up and thus
202will see new data anyways without needing an extra poll notification.
203Benchmarks (see tools/testing/selftests/bpf/benchs/bench_ringbuf.c_) show that
204this allows to achieve a very high throughput without having to resort to
205tricks like "notify only every Nth sample", which are necessary with perf
206buffer. For extreme cases, when BPF program wants more manual control of
207notifications, commit/discard/output helpers accept ``BPF_RB_NO_WAKEUP`` and
208``BPF_RB_FORCE_WAKEUP`` flags, which give full control over notifications of
209data 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
301 301
302.. kernel-doc:: tools/testing/selftests/kselftest_harness.h302.. kernel-doc:: tools/testing/selftests/kselftest_harness.h
303 :functions: TH_LOG TEST TEST_SIGNAL FIXTURE FIXTURE_DATA FIXTURE_SETUP303 :functions: TH_LOG TEST TEST_SIGNAL FIXTURE FIXTURE_DATA FIXTURE_SETUP
304 FIXTURE_TEARDOWN TEST_F TEST_HARNESS_MAIN304 FIXTURE_TEARDOWN TEST_F TEST_HARNESS_MAIN FIXTURE_VARIANT
305 FIXTURE_VARIANT_ADD
305 306
306Operators307Operators
307---------308---------
Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt+0−36
@@ -1,36 +0,0 @@
1Mediatek pericfg controller
2===========================
3
4The Mediatek pericfg controller provides various clocks and reset
5outputs to the system.
6
7Required 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
21The pericfg controller uses the common clk binding from
22Documentation/devicetree/bindings/clock/clock-bindings.txt
23The available clocks are defined in dt-bindings/clock/mt*-clk.h.
24Also it uses the common reset controller binding from
25Documentation/devicetree/bindings/reset/reset.txt.
26The available reset outputs are defined in
27dt-bindings/reset/mt*-resets.h
28
29Example:
30
31pericfg: 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
7title: MediaTek Peripheral Configuration Controller
8
9maintainers:
10 - Bartosz Golaszewski <bgolaszewski@baylibre.com>
11
12description:
13 The Mediatek pericfg controller provides various clocks and reset outputs
14 to the system.
15
16properties:
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
45required:
46 - compatible
47 - reg
48
49examples:
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
40 then:40 then:
41 properties:41 properties:
42 clocks:42 clocks:
43 minItems: 3
44 maxItems: 4
43 items:45 items:
44 - description: GMAC main clock46 - description: GMAC main clock
45 - description: First parent clock of the internal mux47 - description: First parent clock of the internal mux
46 - description: Second parent clock of the internal mux48 - description: Second parent clock of the internal mux
49 - description: The clock which drives the timing adjustment logic
47 50
48 clock-names:51 clock-names:
49 minItems: 352 minItems: 3
50 maxItems: 353 maxItems: 4
51 items:54 items:
52 - const: stmmaceth55 - const: stmmaceth
53 - const: clkin056 - const: clkin0
54 - const: clkin157 - const: clkin1
58 - const: timing-adjustment
55 59
56 amlogic,tx-delay-ns:60 amlogic,tx-delay-ns:
57 $ref: /schemas/types.yaml#definitions/uint3261 $ref: /schemas/types.yaml#definitions/uint32
@@ -67,6 +71,19 @@ allOf: · 9 unmodified lines
67 PHY and MAC are adding a delay).71 PHY and MAC are adding a delay).
68 Any configuration is ignored when the phy-mode is set to "rmii".72 Any configuration is ignored when the phy-mode is set to "rmii".
69 73
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
70properties:87properties:
71 compatible:88 compatible:
72 additionalItems: true89 additionalItems: true
@@ -107,7 +124,7 @@ examples: · 34 unmodified lines
107 reg = <0xc9410000 0x10000>, <0xc8834540 0x8>;124 reg = <0xc9410000 0x10000>, <0xc8834540 0x8>;
108 interrupts = <8>;125 interrupts = <8>;
109 interrupt-names = "macirq";126 interrupt-names = "macirq";
110 clocks = <&clk_eth>, <&clkc_fclk_div2>, <&clk_mpll2>;127 clocks = <&clk_eth>, <&clk_fclk_div2>, <&clk_mpll2>, <&clk_fclk_div2>;
111 clock-names = "stmmaceth", "clkin0", "clkin1";128 clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment";
112 phy-mode = "rgmii";129 phy-mode = "rgmii";
113 };130 };
Documentation/devicetree/bindings/net/ethernet-phy.yaml+2−1
@@ -81,7 +81,8 @@ properties: · 80 unmodified lines
81 $ref: /schemas/types.yaml#definitions/flag81 $ref: /schemas/types.yaml#definitions/flag
82 description:82 description:
83 If set, indicates the PHY device does not correctly release83 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.
85 86
86 enet-phy-lane-swap:87 enet-phy-lane-swap:
87 $ref: /schemas/types.yaml#definitions/flag88 $ref: /schemas/types.yaml#definitions/flag
Documentation/devicetree/bindings/net/fsl-fec.txt+6−2
@@ -22,8 +22,11 @@ Optional properties: · 21 unmodified lines
22- fsl,err006687-workaround-present: If present indicates that the system has22- fsl,err006687-workaround-present: If present indicates that the system has
23 the hardware workaround for ERR006687 applied and does not need a software23 the hardware workaround for ERR006687 applied and does not need a software
24 workaround.24 workaround.
25- gpr: phandle of SoC general purpose register mode. Required for wake on LAN25- fsl,stop-mode: register bits of stop mode control, the format is
26 on some SoCs26 <&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.
27 -interrupt-names: names of the interrupts listed in interrupts property in30 -interrupt-names: names of the interrupts listed in interrupts property in
28 the same order. The defaults if not specified are31 the same order. The defaults if not specified are
29 __Number of interrupts__ __Default__32 __Number of interrupts__ __Default__
@@ -82,6 +85,7 @@ ethernet@83fec000 { · 52 unmodified lines
82 phy-supply = <&reg_fec_supply>;85 phy-supply = <&reg_fec_supply>;
83 phy-handle = <&ethphy>;86 phy-handle = <&ethphy>;
84 mdio {87 mdio {
88 clock-frequency = <5000000>;
85 ethphy: ethernet-phy@6 {89 ethphy: ethernet-phy@6 {
86 compatible = "ethernet-phy-ieee802.3-c22";90 compatible = "ethernet-phy-ieee802.3-c22";
87 reg = <6>;91 reg = <6>;
Documentation/devicetree/bindings/net/imx-dwmac.txt+56−0
@@ -0,0 +1,56 @@
1IMX8 glue layer controller, NXP imx8 families support Synopsys MAC 5.10a IP.
2
3This file documents platform glue layer for IMX.
4Please see stmmac.txt for the other unchanged properties.
5
6The device node has following properties.
7
8Required 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
28Optional properties:
29- intf_mode: is optional for imx8dxl platform.
30- snps,rmii_refclk_ext: to select RMII reference clock from external.
31
32Example:
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
31 maxItems: 131 maxItems: 1
32 description:32 description:
33 The phandle and specifier for the GPIO that controls the RESET33 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.
35 35
36 reset-delay-us:36 reset-delay-us:
37 description:37 description:
38 RESET pulse width in microseconds. It applies to all PHY devices38 RESET pulse width in microseconds. It applies to all MDIO devices
39 and must therefore be appropriately determined based on all PHY39 and must therefore be appropriately determined based on all devices
40 requirements (maximum value of all per-PHY RESET pulse widths).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
41 53
42patternProperties:54patternProperties:
43 "^ethernet-phy@[0-9a-f]+$":55 "^ethernet-phy@[0-9a-f]+$":
@@ -48,7 +60,35 @@ patternProperties: · 4 unmodified lines
48 minimum: 060 minimum: 0
49 maximum: 3161 maximum: 31
50 description:62 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.
52 92
53 required:93 required:
54 - reg94 - 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
7title: MediaTek STAR Ethernet MAC Controller
8
9maintainers:
10 - Bartosz Golaszewski <bgolaszewski@baylibre.com>
11
12description:
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
17allOf:
18 - $ref: "ethernet-controller.yaml#"
19
20properties:
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
55required:
56 - compatible
57 - reg
58 - interrupts
59 - clocks
60 - clock-names
61 - mediatek,pericfg
62 - phy-handle
63
64examples:
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
7title: NXP TJA11xx PHY
8
9maintainers:
10 - Andrew Lunn <andrew@lunn.ch>
11 - Florian Fainelli <f.fainelli@gmail.com>
12 - Heiner Kallweit <hkallweit1@gmail.com>
13
14description:
15 Bindings for NXP TJA11xx automotive PHYs
16
17allOf:
18 - $ref: ethernet-phy.yaml#
19
20patternProperties:
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
37examples:
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 @@
1Required 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
24Optional 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
29Optional subnodes:
30- mdio : specifies the mdio bus, used as a container for phy nodes
31 according to phy.txt in the same directory
32
33Example:
34
35ethernet@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
7title: QCA AR71XX MAC
8
9allOf:
10 - $ref: ethernet-controller.yaml#
11
12maintainers:
13 - Oleksij Rempel <o.rempel@pengutronix.de>
14
15properties:
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
65required:
66 - compatible
67 - reg
68 - interrupts
69 - phy-mode
70 - clocks
71 - clock-names
72 - resets
73 - reset-names
74
75examples:
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
20 The GSI is an integral part of the IPA, but it is logically isolated20 The GSI is an integral part of the IPA, but it is logically isolated
21 and has a distinct interrupt and a separately-defined address space.21 and has a distinct interrupt and a separately-defined address space.
22 22
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
24 27
25 - |28 - |
26 -------- ---------29 -------- ---------
@@ -54,6 +57,9 @@ properties: · 27 unmodified lines
54 - const: ipa-shared57 - const: ipa-shared
55 - const: gsi58 - const: gsi
56 59
60 iommus:
61 maxItems: 1
62
57 clocks:63 clocks:
58 maxItems: 164 maxItems: 1
59 65
@@ -126,6 +132,7 @@ properties: · 66 unmodified lines
126 132
127required:133required:
128 - compatible134 - compatible
135 - iommus
129 - reg136 - reg
130 - clocks137 - clocks
131 - interrupts138 - interrupts
@@ -164,6 +171,7 @@ examples: · 32 unmodified lines
164 modem-init;171 modem-init;
165 modem-remoteproc = <&mss_pil>;172 modem-remoteproc = <&mss_pil>;
166 173
174 iommus = <&apps_smmu 0x720 0x3>;
167 reg = <0 0x1e40000 0 0x7000>,175 reg = <0 0x1e40000 0 0x7000>,
168 <0 0x1e47000 0 0x2000>,176 <0 0x1e47000 0 0x2000>,
169 <0 0x1e04000 0 0x2c000>;177 <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
7title: Qualcomm IPQ40xx MDIO Controller Device Tree Bindings
8
9maintainers:
10 - Robert Marko <robert.marko@sartura.hr>
11
12allOf:
13 - $ref: "mdio.yaml#"
14
15properties:
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
28required:
29 - compatible
30 - reg
31 - "#address-cells"
32 - "#size-cells"
33
34examples:
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
10Required properties:10Required properties:
11 - compatible: should contain one of the following:11 - compatible: should contain one of the following:
12 * "qcom,qca6174-bt"12 * "qcom,qca6174-bt"
13 * "qcom,qca9377-bt"
13 * "qcom,wcn3990-bt"14 * "qcom,wcn3990-bt"
14 * "qcom,wcn3991-bt"15 * "qcom,wcn3991-bt"
15 * "qcom,wcn3998-bt"16 * "qcom,wcn3998-bt"
17 * "qcom,qca6390-bt"
16 18
17Optional properties for compatible string qcom,qca6174-bt:19Optional properties for compatible string qcom,qca6174-bt:
18 20
@@ -20,6 +22,10 @@ Optional properties for compatible string qcom,qca6174-bt: · 1 unmodified line
20 - clocks: clock provided to the controller (SUSCLK_32KHZ)22 - clocks: clock provided to the controller (SUSCLK_32KHZ)
21 - firmware-name: specify the name of nvm firmware to load23 - firmware-name: specify the name of nvm firmware to load
22 24
25Optional properties for compatible string qcom,qca9377-bt:
26
27 - max-speed: see Documentation/devicetree/bindings/serial/serial.yaml
28
23Required properties for compatible string qcom,wcn399x-bt:29Required properties for compatible string qcom,wcn399x-bt:
24 30
25 - vddio-supply: VDD_IO supply regulator handle.31 - 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
7title: RTL8723BS/RTL8723CS/RTL8822CS Bluetooth Device Tree Bindings
8
9maintainers:
10 - Vasily Khoruzhick <anarsoul@gmail.com>
11 - Alistair Francis <alistair@alistair23.me>
12
13description:
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
18properties:
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
37required:
38 - compatible
39
40examples:
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
3This describes the devicetree bindings for AVE ethernet controller
4implemented on Socionext UniPhier SoCs.
5
6Required 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
34The MAC address will be determined using the optional properties
35defined in ethernet.txt.
36
37Required subnode:
38 - mdio: A container for child nodes representing phy nodes.
39 See phy.txt in the same directory.
40
41Example:
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
7title: Socionext AVE ethernet controller
8
9maintainers:
10 - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
11
12description: |
13 This describes the devicetree bindings for AVE ethernet controller
14 implemented on Socionext UniPhier SoCs.
15
16allOf:
17 - $ref: ethernet-controller.yaml#
18
19properties:
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
75required:
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
87additionalProperties: false
88
89examples:
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
3Required 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
12Note: 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
20Optional 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
51Note: 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
55Default child nodes are standard Ethernet PHY device
56nodes as described in Documentation/devicetree/bindings/net/phy.txt
57
58Example:
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
67Datasheet can be found:
68http://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
8title: TI DP83867 ethernet PHY
9
10allOf:
11 - $ref: "ethernet-controller.yaml#"
12
13maintainers:
14 - Dan Murphy <dmurphy@ti.com>
15
16description: |
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
30properties:
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
109required:
110 - reg
111
112examples:
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.01# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
2# Copyright (C) 2019 Texas Instruments Incorporated2# Copyright (C) 2019 Texas Instruments Incorporated
3%YAML 1.23%YAML 1.2
4---4---
Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml+20−0
@@ -144,6 +144,13 @@ patternProperties: · 143 unmodified lines
144 description:144 description:
145 CPSW MDIO bus.145 CPSW MDIO bus.
146 146
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
147required:154required:
148 - compatible155 - compatible
149 - reg156 - reg
@@ -164,6 +171,8 @@ examples: · 14 unmodified lines
164 #include <dt-bindings/pinctrl/k3.h>171 #include <dt-bindings/pinctrl/k3.h>
165 #include <dt-bindings/soc/ti,sci_pm_domain.h>172 #include <dt-bindings/soc/ti,sci_pm_domain.h>
166 #include <dt-bindings/net/ti-dp83867.h>173 #include <dt-bindings/net/ti-dp83867.h>
174 #include <dt-bindings/interrupt-controller/irq.h>
175 #include <dt-bindings/interrupt-controller/arm-gic.h>
167 176
168 mcu_cpsw: ethernet@46000000 {177 mcu_cpsw: ethernet@46000000 {
169 compatible = "ti,am654-cpsw-nuss";178 compatible = "ti,am654-cpsw-nuss";
@@ -222,4 +231,15 @@ examples: · 52 unmodified lines
222 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;231 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
223 };232 };
224 };233 };
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 };
225 };245 };
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
7title: The TI AM654x/J721E Common Platform Time Sync (CPTS) module Device Tree Bindings
8
9maintainers:
10 - Grygorii Strashko <grygorii.strashko@ti.com>
11 - Sekhar Nori <nsekhar@ti.com>
12
13description: |+
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
43properties:
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
109required:
110 - compatible
111 - reg
112 - clocks
113 - clock-names
114 - interrupts
115 - interrupt-names
116
117additionalProperties: false
118
119examples:
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
25- mediatek,mtd-eeprom: Specify a MTD partition + offset containing EEPROM data25- mediatek,mtd-eeprom: Specify a MTD partition + offset containing EEPROM data
26- big-endian: if the radio eeprom partition is written in big-endian, specify26- big-endian: if the radio eeprom partition is written in big-endian, specify
27 this property27 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
28 31
29The MAC address can as well be set with corresponding optional properties32The MAC address can as well be set with corresponding optional properties
30defined in net/ethernet.txt.33defined in net/ethernet.txt.
Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt+14−0
@@ -96,6 +96,17 @@ Optional properties: · 95 unmodified lines
96- qcom,coexist-gpio-pin : gpio pin number information to support coex96- qcom,coexist-gpio-pin : gpio pin number information to support coex
97 which will be used by wifi firmware.97 which will be used by wifi firmware.
98 98
99* Subnodes
100The ath10k wifi node can contain one optional firmware subnode.
101Firmware subnode is needed when the platform does not have TustZone.
102The 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
99Example (to supply PCI based wifi block details):110Example (to supply PCI based wifi block details):
100 111
101In this example, the node is defined as child node of the PCI controller.112In this example, the node is defined as child node of the PCI controller.
@@ -196,4 +207,7 @@ wifi@18000000 { · 94 unmodified lines
196 memory-region = <&wifi_msa_mem>;207 memory-region = <&wifi_msa_mem>;
197 iommus = <&apps_smmu 0x0040 0x1>;208 iommus = <&apps_smmu 0x0040 0x1>;
198 qcom,msa-fixed-perm;209 qcom,msa-fixed-perm;
210 wifi-firmware {
211 iommus = <&apps_iommu 0xc22 0x1>;
212 };
199};213};
Documentation/driver-api/driver-model/devres.rst+5−0
@@ -372,6 +372,11 @@ MUX · 371 unmodified lines
372 devm_mux_chip_register()372 devm_mux_chip_register()
373 devm_mux_control_get()373 devm_mux_control_get()
374 374
375NET
376 devm_alloc_etherdev()
377 devm_alloc_etherdev_mqs()
378 devm_register_netdev()
379
375PER-CPU MEM380PER-CPU MEM
376 devm_alloc_percpu()381 devm_alloc_percpu()
377 devm_free_percpu()382 devm_free_percpu()
Documentation/filesystems/afs.rst+1−1
@@ -70,7 +70,7 @@ list of volume location server IP addresses:: · 69 unmodified lines
70The first module is the AF_RXRPC network protocol driver. This provides the70The first module is the AF_RXRPC network protocol driver. This provides the
71RxRPC remote operation protocol and may also be accessed from userspace. See:71RxRPC remote operation protocol and may also be accessed from userspace. See:
72 72
73 Documentation/networking/rxrpc.txt73 Documentation/networking/rxrpc.rst
74 74
75The second module is the kerberos RxRPC security driver, and the third module75The second module is the kerberos RxRPC security driver, and the third module
76is the actual filesystem driver for the AFS filesystem.76is 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
3Broadcom BCM54140 Quad SGMII/QSGMII PHY
4=======================================
5
6Supported chips:
7
8 * Broadcom BCM54140
9
10 Datasheet: not public
11
12Author: Michael Walle <michael@walle.cc>
13
14Description
15-----------
16
17The Broadcom BCM54140 is a Quad SGMII/QSGMII PHY which supports monitoring
18its die temperature as well as two analog voltages.
19
20The AVDDL is a 1.0V analogue voltage, the AVDDH is a 3.3V analogue voltage.
21Both voltages and the temperature are measured in a round-robin fashion.
22
23Sysfs entries
24-------------
25
26The following attributes are supported.
27
28======================= ========================================================
29in0_label "AVDDL"
30in0_input Measured AVDDL voltage.
31in0_min Minimum AVDDL voltage.
32in0_max Maximum AVDDL voltage.
33in0_alarm AVDDL voltage alarm.
34
35in1_label "AVDDH"
36in1_input Measured AVDDH voltage.
37in1_min Minimum AVDDH voltage.
38in1_max Maximum AVDDH voltage.
39in1_alarm AVDDH voltage alarm.
40
41temp1_input Die temperature.
42temp1_min Minimum die temperature.
43temp1_max Maximum die temperature.
44temp1_alarm Die temperature alarm.
45======================= ========================================================
Documentation/hwmon/index.rst+1−0
@@ -43,6 +43,7 @@ Hardware Monitoring Kernel Drivers · 42 unmodified lines
43 asb10043 asb100
44 asc762144 asc7621
45 aspeed-pwm-tacho45 aspeed-pwm-tacho
46 bcm54140
46 bel-pfe47 bel-pfe
47 bt1-pvt48 bt1-pvt
48 coretemp49 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==============
46pack Protocol
5==============
6
1This is the 6pack-mini-HOWTO, written by7This is the 6pack-mini-HOWTO, written by
2 8
3Andreas Könsgen DG3KQ9Andreas Könsgen DG3KQ
4Internet: ajk@comnets.uni-bremen.de10
5AMPR-net: dg3kq@db0pra.ampr.org11:Internet: ajk@comnets.uni-bremen.de
6AX.25: dg3kq@db0ach.#nrw.deu.eu12:AMPR-net: dg3kq@db0pra.ampr.org
13:AX.25: dg3kq@db0ach.#nrw.deu.eu
7 14
8Last update: April 7, 199815Last update: April 7, 1998
9 16
101. What is 6pack, and what are the advantages to KISS?171. What is 6pack, and what are the advantages to KISS?
18======================================================
11 19
126pack is a transmission protocol for data exchange between the PC and206pack is a transmission protocol for data exchange between the PC and
13the TNC over a serial line. It can be used as an alternative to KISS.21the TNC over a serial line. It can be used as an alternative to KISS.
14 22
156pack has two major advantages:236pack has two major advantages:
24
16- The PC is given full control over the radio25- The PC is given full control over the radio
17 channel. Special control data is exchanged between the PC and the TNC so26 channel. Special control data is exchanged between the PC and the TNC so
18 that the PC knows at any time if the TNC is receiving data, if a TNC27 that the PC knows at any time if the TNC is receiving data, if a TNC
19 buffer underrun or overrun has occurred, if the PTT is28 buffer underrun or overrun has occurred, if the PTT is
20 set and so on. This control data is processed at a higher priority than29 set and so on. This control data is processed at a higher priority than
21 normal data, so a data stream can be interrupted at any time to issue an30 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 31 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 32 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 33 to experiment with something completely different from the known CSMA and
25 DAMA channel access methods.34 DAMA channel access methods.
26 This kind of real-time control is especially important to supply several35 This kind of real-time control is especially important to supply several
27 TNCs that are connected between each other and the PC by a daisy chain36 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
36in the doc directory of the AX.25 utilities package.45in the doc directory of the AX.25 utilities package.
37 46
382. Who has developed the 6pack protocol?472. Who has developed the 6pack protocol?
48========================================
39 49
40The 6pack protocol has been developed by Ekki Plicht DF4OR, Henning Rech50The 6pack protocol has been developed by Ekki Plicht DF4OR, Henning Rech
41DF9IC and Gunter Jost DK7WJ. A driver for 6pack, written by Gunter Jost and51DF9IC 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
44protocol (see section 4 below).54protocol (see section 4 below).
45 55
463. Where can I get the latest version of 6pack for LinuX?563. Where can I get the latest version of 6pack for LinuX?
57=========================================================
47 58
48At the moment, the 6pack stuff can obtained via anonymous ftp from59At the moment, the 6pack stuff can obtained via anonymous ftp from
49db0bm.automation.fh-aachen.de. In the directory /incoming/dg3kq,60db0bm.automation.fh-aachen.de. In the directory /incoming/dg3kq,
50there is a file named 6pack.tgz.61there is a file named 6pack.tgz.
51 62
524. Preparing the TNC for 6pack operation634. Preparing the TNC for 6pack operation
64========================================
53 65
54To be able to use 6pack, a special firmware for the TNC is needed. The EPROM66To be able to use 6pack, a special firmware for the TNC is needed. The EPROM
55of a newly bought TNC does not contain 6pack, so you will have to67of 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
75the TNC correctly.87the TNC correctly.
76 88
775. Building and installing the 6pack driver895. Building and installing the 6pack driver
90===========================================
78 91
79The driver has been tested with kernel version 2.1.90. Use with older92The driver has been tested with kernel version 2.1.90. Use with older
80kernels may lead to a compilation error because the interface to a kernel93kernels may lead to a compilation error because the interface to a kernel
81function has been changed in the 2.1.8x kernels.94function has been changed in the 2.1.8x kernels.
82 95
83How to turn on 6pack support:96How to turn on 6pack support:
97=============================
84 98
85- In the linux kernel configuration program, select the code maturity level99- In the linux kernel configuration program, select the code maturity level
86 options menu and turn on the prompting for development drivers.100 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
94has to be modified.108has to be modified.
95 109
96- Do a cd to the directory that holds the kissattach sources. Edit the110- 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
98 116
99 #ifndef N_6PACK117 Then find the line:
100 #define N_6PACK (N_AX25+1)
101 #endif
102 118
103 Then find the line119 int disc = N_AX25;
104
105 int disc = N_AX25;
106 120
107 and replace N_AX25 by N_6PACK.121 and replace N_AX25 by N_6PACK.
108 122
109- Recompile kissattach. Rename it to spattach to avoid confusions.123- Recompile kissattach. Rename it to spattach to avoid confusions.
110 124
111Installing the driver:125Installing the driver:
126----------------------
112 127
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
114 module has printed its initialization message.129 module has printed its initialization message.
115 130
116- Do a spattach as you would launch kissattach when starting a KISS port.131- 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'.
118 133
119- From here, everything should work as if you were setting up a KISS port.134- From here, everything should work as if you were setting up a KISS port.
120 The only difference is that the network device that represents135 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
138sent to the PC.153sent to the PC.
139 154
1406. Known problems1556. Known problems
156=================
141 157
142When testing the driver with 2.0.3x kernels and158When testing the driver with 2.0.3x kernels and
143operating with data rates on the radio channel of 9600 Baud or higher,159operating 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 driver1.. SPDX-License-Identifier: GPL-2.0
2 2
3Copyright (C) 2008-2014 Altera Corporation3.. include:: <isonum.txt>
4
5=======================================
6Altera Triple-Speed Ethernet MAC driver
7=======================================
8
9Copyright |copy| 2008-2014 Altera Corporation
4 10
5This is the driver for the Altera Triple-Speed Ethernet (TSE) controllers11This is the driver for the Altera Triple-Speed Ethernet (TSE) controllers
6using the SGDMA and MSGDMA soft DMA IP components. The driver uses the12using 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
46The driver limits PHY operations to 10/100Mbps, and has not yet been fully52The driver limits PHY operations to 10/100Mbps, and has not yet been fully
47tested for 1Gbps. This support will be added in a future maintenance update.53tested for 1Gbps. This support will be added in a future maintenance update.
48 54
491) Kernel Configuration551. Kernel Configuration
56=======================
57
50The kernel configuration option is ALTERA_TSE:58The kernel configuration option is ALTERA_TSE:
59
51 Device Drivers ---> Network device support ---> Ethernet driver support --->60 Device Drivers ---> Network device support ---> Ethernet driver support --->
52 Altera Triple-Speed Ethernet MAC support (ALTERA_TSE)61 Altera Triple-Speed Ethernet MAC support (ALTERA_TSE)
53 62
542) Driver parameters list:632. Driver parameters list
55 debug: message level (0: no output, 16: all);64=========================
56 dma_rx_num: Number of descriptors in the RX list (default is 64);65
57 dma_tx_num: Number of descriptors in the TX list (default is 64).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
703. Command line options
71=======================
72
73Driver parameters can be also passed in command line by using::
58 74
593) Command line options
60Driver parameters can be also passed in command line by using:
61 altera_tse=dma_rx_num:128,dma_tx_num:51275 altera_tse=dma_rx_num:128,dma_tx_num:512
62 76
634) Driver information and notes774. Driver information and notes
78===============================
64 79
654.1) Transmit process804.1. Transmit process
81---------------------
66When the driver's transmit routine is called by the kernel, it sets up a82When the driver's transmit routine is called by the kernel, it sets up a
67transmit descriptor by calling the underlying DMA transmit routine (SGDMA or83transmit descriptor by calling the underlying DMA transmit routine (SGDMA or
68MSGDMA), and initiates a transmit operation. Once the transmit is complete, an84MSGDMA), 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
70completion in the context of the interrupt handling chain by recycling86completion in the context of the interrupt handling chain by recycling
71resource required to send and track the requested transmit operation.87resource required to send and track the requested transmit operation.
72 88
734.2) Receive process894.2. Receive process
90--------------------
74The driver will post receive buffers to the receive DMA logic during driver91The driver will post receive buffers to the receive DMA logic during driver
75initialization. Receive buffers may or may not be queued depending upon the92initialization. Receive buffers may or may not be queued depending upon the
76underlying DMA logic (MSGDMA is able queue receive buffers, SGDMA is not able93underlying 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
79interrupt by obtaining the DMA receive logic status, reaping receive96interrupt by obtaining the DMA receive logic status, reaping receive
80completions until no more receive completions are available.97completions until no more receive completions are available.
81 98
824.3) Interrupt Mitigation994.3. Interrupt Mitigation
100-------------------------
83The driver is able to mitigate the number of its DMA interrupts101The driver is able to mitigate the number of its DMA interrupts
84using NAPI for receive operations. Interrupt mitigation is not yet supported102using NAPI for receive operations. Interrupt mitigation is not yet supported
85for transmit operations, but will be added in a future maintenance release.103for transmit operations, but will be added in a future maintenance release.
86 104
874.4) Ethtool support1054.4) Ethtool support
106--------------------
88Ethtool is supported. Driver statistics and internal errors can be taken using:107Ethtool is supported. Driver statistics and internal errors can be taken using:
89ethtool -S ethX command. It is possible to dump registers etc.108ethtool -S ethX command. It is possible to dump registers etc.
90 109
914.5) PHY Support1104.5) PHY Support
111----------------
92The driver is compatible with PAL to work with PHY and GPHY devices.112The driver is compatible with PAL to work with PHY and GPHY devices.
93 113
944.7) List of source files:1144.7) List of source files:
95 o Kconfig115--------------------------
96 o Makefile116 - Kconfig
97 o altera_tse_main.c: main network device driver117 - Makefile
98 o altera_tse_ethtool.c: ethtool support118 - altera_tse_main.c: main network device driver
99 o altera_tse.h: private driver structure and common definitions119 - altera_tse_ethtool.c: ethtool support
100 o altera_msgdma.h: MSGDMA implementation function definitions120 - altera_tse.h: private driver structure and common definitions
101 o altera_sgdma.h: SGDMA implementation function definitions121 - altera_msgdma.h: MSGDMA implementation function definitions
102 o altera_msgdma.c: MSGDMA implementation122 - altera_sgdma.h: SGDMA implementation function definitions
103 o altera_sgdma.c: SGDMA implementation123 - altera_msgdma.c: MSGDMA implementation
104 o altera_sgdmahw.h: SGDMA register and descriptor definitions124 - altera_sgdma.c: SGDMA implementation
105 o altera_msgdmahw.h: MSGDMA register and descriptor definitions125 - altera_sgdmahw.h: SGDMA register and descriptor definitions
106 o altera_utils.c: Driver utility functions126 - altera_msgdmahw.h: MSGDMA register and descriptor definitions
107 o altera_utils.h: Driver utility function definitions127 - altera_utils.c: Driver utility functions
108 128 - altera_utils.h: Driver utility function definitions
1095) Debug Information129
1305. Debug Information
131====================
110 132
111The driver exports debug information such as internal statistics,133The driver exports debug information such as internal statistics,
112debug information, MAC and DMA registers etc.134debug information, MAC and DMA registers etc.
@@ -118,17 +140,18 @@ or sees the MAC registers: e.g. using: ethtool -d ethX · 5 unmodified lines
118The developer can also use the "debug" module parameter to get140The developer can also use the "debug" module parameter to get
119further debug information.141further debug information.
120 142
1216) Statistics Support1436. Statistics Support
144=====================
122 145
123The controller and driver support a mix of IEEE standard defined statistics,146The controller and driver support a mix of IEEE standard defined statistics,
124RFC defined statistics, and driver or Altera defined statistics. The four147RFC defined statistics, and driver or Altera defined statistics. The four
125specifications containing the standard definitions for these statistics are148specifications containing the standard definitions for these statistics are
126as follows:149as follows:
127 150
128 o IEEE 802.3-2012 - IEEE Standard for Ethernet.151 - IEEE 802.3-2012 - IEEE Standard for Ethernet.
129 o RFC 2863 found at http://www.rfc-editor.org/rfc/rfc2863.txt.152 - 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.153 - 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.com154 - Altera Triple Speed Ethernet User Guide, found at http://www.altera.com
132 155
133The statistics supported by the TSE and the device driver are as follows:156The statistics supported by the TSE and the device driver are as follows:
134 157
Documentation/networking/arcnet-hardware.rstrenamed from Documentation/networking/arcnet-hardware.txt+1164−1063
@@ -1,11 +1,15 @@
1 1.. SPDX-License-Identifier: GPL-2.0
2-----------------------------------------------------------------------------2
31) This file is a supplement to arcnet.txt. Please read that for general3===============
4 driver configuration help.4ARCnet Hardware
5-----------------------------------------------------------------------------5===============
62) This file is no longer Linux-specific. It should probably be moved out of6
7 the kernel sources. Ideas?7.. note::
8-----------------------------------------------------------------------------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?
9 13
10Because so many people (myself included) seem to have obtained ARCnet cards14Because so many people (myself included) seem to have obtained ARCnet cards
11without manuals, this file contains a quick introduction to ARCnet hardware,15without 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
14or any other information you have!18or any other information you have!
15 19
16 20
17INTRODUCTION TO ARCNET21Introduction to ARCnet
18----------------------22======================
19 23
20ARCnet is a network type which works in a way similar to popular Ethernet24ARCnet is a network type which works in a way similar to popular Ethernet
21networks but which is also different in some very important ways.25networks 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
30your 100 Mbps card. Stop complaining. :)34your 100 Mbps card. Stop complaining. :)
31 35
32You also cannot connect an ARCnet card to any kind of Ethernet card and36You also cannot connect an ARCnet card to any kind of Ethernet card and
33expect it to work. 37expect it to work.
34 38
35There are two "types" of ARCnet - STAR topology and BUS topology. This39There are two "types" of ARCnet - STAR topology and BUS topology. This
36refers to how the cards are meant to be wired together. According to most40refers 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
71For more information on the advantages and disadvantages (mostly the75For more information on the advantages and disadvantages (mostly the
72advantages) of ARCnet networks, you might try the "ARCnet Trade Association"76advantages) of ARCnet networks, you might try the "ARCnet Trade Association"
73WWW page:77WWW page:
78
74 http://www.arcnet.com79 http://www.arcnet.com
75 80
76 81
77CABLING ARCNET NETWORKS82Cabling ARCnet Networks
78-----------------------83=======================
84
85This section was rewritten by
86
87 Vojtech Pavlik <vojtech@suse.cz>
79 88
80This section was rewritten by
81 Vojtech Pavlik <vojtech@suse.cz>
82using information from several people, including:89using information from several people, including:
83 Avery Pennraun <apenwarr@worldvisions.ca>90
84 Stephen A. Wood <saw@hallc1.cebaf.gov>91 - Avery Pennraun <apenwarr@worldvisions.ca>
85 John Paul Morrison <jmorriso@bogomips.ee.ubc.ca>92 - Stephen A. Wood <saw@hallc1.cebaf.gov>
86 Joachim Koenig <jojo@repas.de>93 - John Paul Morrison <jmorriso@bogomips.ee.ubc.ca>
94 - Joachim Koenig <jojo@repas.de>
95
87and Avery touched it up a bit, at Vojtech's request.96and Avery touched it up a bit, at Vojtech's request.
88 97
89ARCnet (the classic 2.5 Mbps version) can be connected by two different98ARCnet (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
103 112
104Usually, the ARCnet networks are built up from STAR cards and hubs. There113Usually, the ARCnet networks are built up from STAR cards and hubs. There
105are two types of hubs - active and passive. Passive hubs are small boxes114are two types of hubs - active and passive. Passive hubs are small boxes
106with four BNC connectors containing four 47 Ohm resistors:115with four BNC connectors containing four 47 Ohm resistors::
107 116
108 | | wires117 | | wires
109 R + junction118 R + junction
110-R-+-R- R 47 Ohm resistors119 -R-+-R- R 47 Ohm resistors
111 R120 R
112 |121 |
113 122
114The shielding is connected together. Active hubs are much more complicated;123The shielding is connected together. Active hubs are much more complicated;
115they are powered and contain electronics to amplify the signal and send it124they 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
1272. A card to a passive hub. Remember that all unused connectors on the hub1362. A card to a passive hub. Remember that all unused connectors on the hub
128 must be properly terminated with 93 Ohm (or something else if you don't137 must be properly terminated with 93 Ohm (or something else if you don't
129 have the right ones) terminators.138 have the right ones) terminators.
130 (Avery's note: oops, I didn't know that. Mine (TV cable) works139
140 (Avery's note: oops, I didn't know that. Mine (TV cable) works
131 anyway, though.)141 anyway, though.)
132 142
1333. A card to an active hub. Here is no need to terminate the unused1433. A card to an active hub. Here is no need to terminate the unused
134 connectors except some kind of aesthetic feeling. But, there may not be144 connectors except some kind of aesthetic feeling. But, there may not be
135 more than eleven active hubs between any two computers. That of course145 more than eleven active hubs between any two computers. That of course
136 doesn't limit the number of active hubs on the network.146 doesn't limit the number of active hubs on the network.
137 147
1384. An active hub to another.1484. An active hub to another.
139 149
1405. An active hub to passive hub.1505. An active hub to passive hub.
@@ -142,22 +152,22 @@ And now to the cabling. What you can connect together: · 1 unmodified line
142Remember that you cannot connect two passive hubs together. The power loss152Remember that you cannot connect two passive hubs together. The power loss
143implied by such a connection is too high for the net to operate reliably.153implied by such a connection is too high for the net to operate reliably.
144 154
145An example of a typical ARCnet network:155An example of a typical ARCnet network::
146 156
147 R S - STAR type card 157 R S - STAR type card
148 S------H--------A-------S R - Terminator158 S------H--------A-------S R - Terminator
149 | | H - Hub 159 | | H - Hub
150 | | A - Active hub 160 | | A - Active hub
151 | S----H----S 161 | S----H----S
152 S | 162 S |
153 | 163 |
154 S 164 S
155 165
156The BUS topology is very similar to the one used by Ethernet. The only166The BUS topology is very similar to the one used by Ethernet. The only
157difference is in cable and terminators: they should be 93 Ohm. Ethernet167difference is in cable and terminators: they should be 93 Ohm. Ethernet
158uses 50 Ohm impedance. You use T connectors to put the computers on a single168uses 50 Ohm impedance. You use T connectors to put the computers on a single
159line of cable, the bus. You have to put terminators at both ends of the169line of cable, the bus. You have to put terminators at both ends of the
160cable. A typical BUS ARCnet network looks like:170cable. A typical BUS ARCnet network looks like::
161 171
162 RT----T------T------T------T------TR172 RT----T------T------T------T------TR
163 B B B B B B173 B B B B B B
@@ -168,63 +178,63 @@ cable. A typical BUS ARCnet network looks like: · 4 unmodified lines
168 178
169But that is not all! The two types can be connected together. According to179But that is not all! The two types can be connected together. According to
170the official documentation the only way of connecting them is using an active180the official documentation the only way of connecting them is using an active
171hub:181hub::
172 182
173 A------T------T------TR183 A------T------T------TR
174 | B B B184 | B B B
175 S---H---S185 S---H---S
176 |186 |
177 S187 S
178 188
179The official docs also state that you can use STAR cards at the ends of189The official docs also state that you can use STAR cards at the ends of
180BUS network in place of a BUS card and a terminator:190BUS network in place of a BUS card and a terminator::
181 191
182 S------T------T------S192 S------T------T------S
183 B B193 B B
184 194
185But, according to my own experiments, you can simply hang a BUS type card195But, according to my own experiments, you can simply hang a BUS type card
186anywhere in middle of a cable in a STAR topology network. And more - you196anywhere in middle of a cable in a STAR topology network. And more - you
187can use the bus card in place of any star card if you use a terminator. Then197can use the bus card in place of any star card if you use a terminator. Then
188you can build very complicated networks fulfilling all your needs! An198you can build very complicated networks fulfilling all your needs! An
189example:199example::
190 200
191 S201 S
192 |202 |
193 RT------T-------T------H------S203 RT------T-------T------H------S
194 B B B |204 B B B |
195 | R205 | R
196 S------A------T-------T-------A-------H------TR 206 S------A------T-------T-------A-------H------TR
197 | B B | | B 207 | B B | | B
198 | S BT | 208 | S BT |
199 | | | S----A-----S209 | | | S----A-----S
200 S------H---A----S | | 210 S------H---A----S | |
201 | | S------T----H---S |211 | | S------T----H---S |
202 S S B R S 212 S S B R S
203 213
204A basically different cabling scheme is used with Twisted Pair cabling. Each214A basically different cabling scheme is used with Twisted Pair cabling. Each
205of the TP cards has two RJ (phone-cord style) connectors. The cards are215of the TP cards has two RJ (phone-cord style) connectors. The cards are
206then daisy-chained together using a cable connecting every two neighboring216then daisy-chained together using a cable connecting every two neighboring
207cards. The ends are terminated with RJ 93 Ohm terminators which plug into217cards. The ends are terminated with RJ 93 Ohm terminators which plug into
208the empty connectors of cards on the ends of the chain. An example:218the empty connectors of cards on the ends of the chain. An example::
209 219
210 ___________ ___________220 ___________ ___________
211 _R_|_ _|_|_ _|_R_ 221 _R_|_ _|_|_ _|_R_
212 | | | | | | 222 | | | | | |
213 |Card | |Card | |Card | 223 |Card | |Card | |Card |
214 |_____| |_____| |_____| 224 |_____| |_____| |_____|
215 225
216 226
217There are also hubs for the TP topology. There is nothing difficult227There are also hubs for the TP topology. There is nothing difficult
218involved in using them; you just connect a TP chain to a hub on any end or228involved in using them; you just connect a TP chain to a hub on any end or
219even at both. This way you can create almost any network configuration. 229even at both. This way you can create almost any network configuration.
220The maximum of 11 hubs between any two computers on the net applies here as230The maximum of 11 hubs between any two computers on the net applies here as
221well. An example:231well. An example::
222 232
223 RP-------P--------P--------H-----P------P-----PR233 RP-------P--------P--------H-----P------P-----PR
224 |234 |
225 RP-----H--------P--------H-----P------PR235 RP-----H--------P--------H-----P------PR
226 | |236 | |
227 PR PR237 PR PR
228 238
229 R - RJ Terminator239 R - RJ Terminator
230 P - TP Card240 P - TP Card
@@ -234,11 +244,13 @@ Like any network, ARCnet has a limited cable length. These are the maximum · 3 unmodified lines
234cable lengths between two active ends (an active end being an active hub or244cable lengths between two active ends (an active end being an active hub or
235a STAR card).245a STAR card).
236 246
247 ========== ======= ===========
237 RG-62 93 Ohm up to 650 m248 RG-62 93 Ohm up to 650 m
238 RG-59/U 75 Ohm up to 457 m249 RG-59/U 75 Ohm up to 457 m
239 RG-11/U 75 Ohm up to 533 m250 RG-11/U 75 Ohm up to 533 m
240 IBM Type 1 150 Ohm up to 200 m251 IBM Type 1 150 Ohm up to 200 m
241 IBM Type 3 100 Ohm up to 100 m252 IBM Type 3 100 Ohm up to 100 m
253 ========== ======= ===========
242 254
243The maximum length of all cables connected to a passive hub is limited to 65255The maximum length of all cables connected to a passive hub is limited to 65
244meters for RG-62 cabling; less for others. You can see that using passive256meters 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
248of a TP cable between two cards/hubs is 650 meters.260of a TP cable between two cards/hubs is 650 meters.
249 261
250 262
251SETTING THE JUMPERS263Setting the Jumpers
252-------------------264===================
253 265
254All ARCnet cards should have a total of four or five different settings:266All ARCnet cards should have a total of four or five different settings:
255 267
@@ -261,43 +273,51 @@ All ARCnet cards should have a total of four or five different settings: · 5 unmodified lines
261 eating net connections on my system (at least) otherwise. My guess is273 eating net connections on my system (at least) otherwise. My guess is
262 this may be because, if your card is at 0x2E0, probing for a serial port274 this may be because, if your card is at 0x2E0, probing for a serial port
263 at 0x2E8 will reset the card and probably mess things up royally.275 at 0x2E8 will reset the card and probably mess things up royally.
276
264 - Avery's favourite: 0x300.277 - Avery's favourite: 0x300.
265 278
266 - the IRQ: on 8-bit cards, it might be 2 (9), 3, 4, 5, or 7.279 - 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.280 on 16-bit cards, it might be 2 (9), 3, 4, 5, 7, or 10-15.
268 281
269 Make sure this is different from any other card on your system. Note282 Make sure this is different from any other card on your system. Note
270 that IRQ2 is the same as IRQ9, as far as Linux is concerned. You can283 that IRQ2 is the same as IRQ9, as far as Linux is concerned. You can
271 "cat /proc/interrupts" for a somewhat complete list of which ones are in284 "cat /proc/interrupts" for a somewhat complete list of which ones are in
272 use at any given time. Here is a list of common usages from Vojtech285 use at any given time. Here is a list of common usages from Vojtech
273 Pavlik <vojtech@suse.cz>:286 Pavlik <vojtech@suse.cz>:
274 ("Not on bus" means there is no way for a card to generate this287
288 ("Not on bus" means there is no way for a card to generate this
275 interrupt)289 interrupt)
276 IRQ 0 - Timer 0 (Not on bus)290
277 IRQ 1 - Keyboard (Not on bus)291 ====== =========================================================
278 IRQ 2 - IRQ Controller 2 (Not on bus, nor does interrupt the CPU)292 IRQ 0 Timer 0 (Not on bus)
279 IRQ 3 - COM2293 IRQ 1 Keyboard (Not on bus)
280 IRQ 4 - COM1294 IRQ 2 IRQ Controller 2 (Not on bus, nor does interrupt the CPU)
281 IRQ 5 - FREE (LPT2 if you have it; sometimes COM3; maybe PLIP)295 IRQ 3 COM2
282 IRQ 6 - Floppy disk controller296 IRQ 4 COM1
283 IRQ 7 - FREE (LPT1 if you don't use the polling driver; PLIP) 297 IRQ 5 FREE (LPT2 if you have it; sometimes COM3; maybe PLIP)
284 IRQ 8 - Realtime Clock Interrupt (Not on bus)298 IRQ 6 Floppy disk controller
285 IRQ 9 - FREE (VGA vertical sync interrupt if enabled)299 IRQ 7 FREE (LPT1 if you don't use the polling driver; PLIP)
286 IRQ 10 - FREE300 IRQ 8 Realtime Clock Interrupt (Not on bus)
287 IRQ 11 - FREE301 IRQ 9 FREE (VGA vertical sync interrupt if enabled)
288 IRQ 12 - FREE302 IRQ 10 FREE
289 IRQ 13 - Numeric Coprocessor (Not on bus)303 IRQ 11 FREE
290 IRQ 14 - Fixed Disk Controller304 IRQ 12 FREE
291 IRQ 15 - FREE (Fixed Disk Controller 2 if you have it) 305 IRQ 13 Numeric Coprocessor (Not on bus)
292 306 IRQ 14 Fixed Disk Controller
293 Note: IRQ 9 is used on some video cards for the "vertical retrace"307 IRQ 15 FREE (Fixed Disk Controller 2 if you have it)
294 interrupt. This interrupt would have been handy for things like308 ====== =========================================================
295 video games, as it occurs exactly once per screen refresh, but309
296 unfortunately IBM cancelled this feature starting with the original310
297 VGA and thus many VGA/SVGA cards do not support it. For this311 .. note::
298 reason, no modern software uses this interrupt and it can almost312
299 always be safely disabled, if your video card supports it at all.313 IRQ 9 is used on some video cards for the "vertical retrace"
300 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
301 If your card for some reason CANNOT disable this IRQ (usually there321 If your card for some reason CANNOT disable this IRQ (usually there
302 is a jumper), one solution would be to clip the printed circuit322 is a jumper), one solution would be to clip the printed circuit
303 contact on the board: it's the fourth contact from the left on the323 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
308 - the memory address: Unlike most cards, ARCnets use "shared memory" for328 - the memory address: Unlike most cards, ARCnets use "shared memory" for
309 copying buffers around. Make SURE it doesn't conflict with any other329 copying buffers around. Make SURE it doesn't conflict with any other
310 used memory in your system!330 used memory in your system!
331
332 ::
333
311 A0000 - VGA graphics memory (ok if you don't have VGA)334 A0000 - VGA graphics memory (ok if you don't have VGA)
312 B0000 - Monochrome text mode335 B0000 - Monochrome text mode
313 C0000 \ One of these is your VGA BIOS - usually C0000.336 C0000 \ One of these is your VGA BIOS - usually C0000.
314 E0000 /337 E0000 /
315 F0000 - System BIOS338 F0000 - System BIOS
316 339
317 Anything less than 0xA0000 is, well, a BAD idea since it isn't above340 Anything less than 0xA0000 is, well, a BAD idea since it isn't above
318 640k.341 640k.
342
319 - Avery's favourite: 0xD0000343 - Avery's favourite: 0xD0000
320 344
321 - the station address: Every ARCnet card has its own "unique" network345 - 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
326 neat stuff will probably happen if you DO use them). By the way, if you350 neat stuff will probably happen if you DO use them). By the way, if you
327 haven't already guessed, don't set this the same as any other ARCnet on351 haven't already guessed, don't set this the same as any other ARCnet on
328 your network!352 your network!
353
329 - Avery's favourite: 3 and 4. Not that it matters.354 - Avery's favourite: 3 and 4. Not that it matters.
330 355
331 - There may be ETS1 and ETS2 settings. These may or may not make a356 - 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
336 requirement here is that all cards on the network with ETS1 and ETS2361 requirement here is that all cards on the network with ETS1 and ETS2
337 jumpers have them in the same position. Chris Hindy <chrish@io.org>362 jumpers have them in the same position. Chris Hindy <chrish@io.org>
338 sent in a chart with actual values for this:363 sent in a chart with actual values for this:
364
365 ======= ======= =============== ====================
339 ET1 ET2 Response Time Reconfiguration Time366 ET1 ET2 Response Time Reconfiguration Time
340 --- --- ------------- --------------------367 ======= ======= =============== ====================
341 open open 74.7us 840us368 open open 74.7us 840us
342 open closed 283.4us 1680us369 open closed 283.4us 1680us
343 closed open 561.8us 1680us370 closed open 561.8us 1680us
344 closed closed 1118.6us 1680us371 closed closed 1118.6us 1680us
345 372 ======= ======= =============== ====================
373
346 Make sure you set ETS1 and ETS2 to the SAME VALUE for all cards on your374 Make sure you set ETS1 and ETS2 to the SAME VALUE for all cards on your
347 network.375 network.
348 376
349Also, on many cards (not mine, though) there are red and green LED's. 377Also, on many cards (not mine, though) there are red and green LED's.
350Vojtech Pavlik <vojtech@suse.cz> tells me this is what they mean:378Vojtech Pavlik <vojtech@suse.cz> tells me this is what they mean:
379
380 =============== =============== =====================================
351 GREEN RED Status381 GREEN RED Status
352 ----- --- ------382 =============== =============== =====================================
353 OFF OFF Power off383 OFF OFF Power off
354 OFF Short flashes Cabling problems (broken cable or not384 OFF Short flashes Cabling problems (broken cable or not
355 terminated)385 terminated)
356 OFF (short) ON Card init386 OFF (short) ON Card init
357 ON ON Normal state - everything OK, nothing387 ON ON Normal state - everything OK, nothing
358 happens388 happens
359 ON Long flashes Data transfer389 ON Long flashes Data transfer
360 ON OFF Never happens (maybe when wrong ID)390 ON OFF Never happens (maybe when wrong ID)
391 =============== =============== =====================================
361 392
362 393
363The following is all the specific information people have sent me about394The 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
366want to, PLEASE DO! Just send me a 'diff -u' of all your changes.397want to, PLEASE DO! Just send me a 'diff -u' of all your changes.
367 398
368The model # is listed right above specifics for that card, so you should be399The model # is listed right above specifics for that card, so you should be
369able to use your text viewer's "search" function to find the entry you want. 400able to use your text viewer's "search" function to find the entry you want.
370If you don't KNOW what kind of card you have, try looking through the401If you don't KNOW what kind of card you have, try looking through the
371various diagrams to see if you can tell.402various diagrams to see if you can tell.
372 403
@@ -378,8 +409,9 @@ model that is, please e-mail me to say so. · 5 unmodified lines
378 409
379Cards Listed in this file (in this order, mostly):410Cards Listed in this file (in this order, mostly):
380 411
412 =============== ======================= ====
381 Manufacturer Model # Bits413 Manufacturer Model # Bits
382 ------------ ------- ----414 =============== ======================= ====
383 SMC PC100 8415 SMC PC100 8
384 SMC PC110 8416 SMC PC110 8
385 SMC PC120 8417 SMC PC120 8
@@ -404,17 +436,19 @@ Cards Listed in this file (in this order, mostly): · 18 unmodified lines
404 No Name Taiwan R.O.C? 8436 No Name Taiwan R.O.C? 8
405 No Name Model 9058 8437 No Name Model 9058 8
406 Tiara Tiara Lancard? 8438 Tiara Tiara Lancard? 8
407 439 =============== ======================= ====
408 440
409** SMC = Standard Microsystems Corp.
410** CNet Tech = CNet Technology, Inc.
411 441
442* SMC = Standard Microsystems Corp.
443* CNet Tech = CNet Technology, Inc.
412 444
413Unclassified Stuff445Unclassified Stuff
414------------------446==================
447
415 - Please send any other information you can find.448 - Please send any other information you can find.
416 449
417 - And some other stuff (more info is welcome!):450 - And some other stuff (more info is welcome!)::
451
418 From: root@ultraworld.xs4all.nl (Timo Hilbrink)452 From: root@ultraworld.xs4all.nl (Timo Hilbrink)
419 To: apenwarr@foxnet.net (Avery Pennarun)453 To: apenwarr@foxnet.net (Avery Pennarun)
420 Date: Wed, 26 Oct 1994 02:10:32 +0000 (GMT)454 Date: Wed, 26 Oct 1994 02:10:32 +0000 (GMT)
@@ -423,7 +457,7 @@ Unclassified Stuff · 2 unmodified lines
423 [...parts deleted...]457 [...parts deleted...]
424 458
425 About the jumpers: On my PC130 there is one more jumper, located near the459 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;
427 closed: star - open: bus461 closed: star - open: bus
428 On the PC500 are some more jumper-pins, one block labeled with RX,PDN,TXI462 On the PC500 are some more jumper-pins, one block labeled with RX,PDN,TXI
429 and another with ALE,LA17,LA18,LA19 these are undocumented..463 and another with ALE,LA17,LA18,LA19 these are undocumented..
@@ -432,136 +466,130 @@ Unclassified Stuff · 2 unmodified lines
432 466
433 --- CUT ---467 --- CUT ---
434 468
469Standard Microsystems Corp (SMC)
470================================
471
472PC100, PC110, PC120, PC130 (8-bit cards) and PC500, PC600 (16-bit cards)
473------------------------------------------------------------------------
435 474
436** Standard Microsystems Corp (SMC) **
437PC100, PC110, PC120, PC130 (8-bit cards)
438PC500, PC600 (16-bit cards)
439---------------------------------
440 - mainly from Avery Pennarun <apenwarr@worldvisions.ca>. Values depicted475 - mainly from Avery Pennarun <apenwarr@worldvisions.ca>. Values depicted
441 are from Avery's setup.476 are from Avery's setup.
442 - special thanks to Timo Hilbrink <timoh@xs4all.nl> for noting that PC120,477 - 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.
444 PC500/600 have several extra, undocumented pins though. (?)479 PC500/600 have several extra, undocumented pins though. (?)
445 - PC110 settings were verified by Stephen A. Wood <saw@cebaf.gov>480 - PC110 settings were verified by Stephen A. Wood <saw@cebaf.gov>
446 - Also, the JP- and S-numbers probably don't match your card exactly. Try481 - Also, the JP- and S-numbers probably don't match your card exactly. Try
447 to find jumpers/switches with the same number of settings - it's482 to find jumpers/switches with the same number of settings - it's
448 probably more reliable.483 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)!
526 484
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)!
527 562
528*****************************************************************************
529 563
530** Standard Microsystems Corp (SMC) **
531PC130E/PC270E (8-bit cards)564PC130E/PC270E (8-bit cards)
532---------------------------565---------------------------
533 - from Juergen Seifert <seifert@htwm.de>
534
535 566
536STANDARD MICROSYSTEMS CORPORATION (SMC) ARCNET(R)-PC130E/PC270E567 - from Juergen Seifert <seifert@htwm.de>
537===============================================================
538 568
539This description has been written by Juergen Seifert <seifert@htwm.de>569This description has been written by Juergen Seifert <seifert@htwm.de>
540using information from the following Original SMC Manual 570using information from the following Original SMC Manual
541 571
542 "Configuration Guide for572 "Configuration Guide for ARCNET(R)-PC130E/PC270 Network
543 ARCNET(R)-PC130E/PC270573 Controller Boards Pub. # 900.044A June, 1989"
544 Network Controller Boards
545 Pub. # 900.044A
546 June, 1989"
547 574
548ARCNET is a registered trademark of the Datapoint Corporation575ARCNET is a registered trademark of the Datapoint Corporation
549SMC is a registered trademark of the Standard Microsystems Corporation 576SMC is a registered trademark of the Standard Microsystems Corporation
550 577
551The PC130E is an enhanced version of the PC130 board, is equipped with a 578The PC130E is an enhanced version of the PC130 board, is equipped with a
552standard BNC female connector for connection to RG-62/U coax cable.579standard BNC female connector for connection to RG-62/U coax cable.
553Since this board is designed both for point-to-point connection in star580Since this board is designed both for point-to-point connection in star
554networks and for connection to bus networks, it is downwardly compatible 581networks and for connection to bus networks, it is downwardly compatible
555with all the other standard boards designed for coax networks (that is,582with all the other standard boards designed for coax networks (that is,
556the PC120, PC110 and PC100 star topology boards and the PC220, PC210 and 583the PC120, PC110 and PC100 star topology boards and the PC220, PC210 and
557PC200 bus topology boards).584PC200 bus topology boards).
558 585
559The PC270E is an enhanced version of the PC260 board, is equipped with two 586The PC270E is an enhanced version of the PC260 board, is equipped with two
560modular RJ11-type jacks for connection to twisted pair wiring.587modular RJ11-type jacks for connection to twisted pair wiring.
561It can be used in a star or a daisy-chained network.588It can be used in a star or a daisy-chained network.
562 589
590::
563 591
564 8 7 6 5 4 3 2 1592 8 7 6 5 4 3 2 1
565 ________________________________________________________________593 ________________________________________________________________
566 | | S1 | |594 | | S1 | |
567 | |_________________| |595 | |_________________| |
@@ -587,27 +615,27 @@ It can be used in a star or a daisy-chained network. · 19 unmodified lines
587 | |615 | |
588 |_____________________________________________|616 |_____________________________________________|
589 617
590Legend:618Legend::
591 619
592SMC 90C63 ARCNET Controller / Transceiver /Logic620 SMC 90C63 ARCNET Controller / Transceiver /Logic
593S1 1-3: I/O Base Address Select621 S1 1-3: I/O Base Address Select
594 4-6: Memory Base Address Select622 4-6: Memory Base Address Select
595 7-8: RAM Offset Select623 7-8: RAM Offset Select
596S2 1-8: Node ID Select624 S2 1-8: Node ID Select
597EXT Extended Timeout Select625 EXT Extended Timeout Select
598ROM ROM Enable Select626 ROM ROM Enable Select
599STAR Selected - Star Topology (PC130E only)627 STAR Selected - Star Topology (PC130E only)
600 Deselected - Bus Topology (PC130E only)628 Deselected - Bus Topology (PC130E only)
601CR3/CR4 Diagnostic LEDs629 CR3/CR4 Diagnostic LEDs
602J1 BNC RG62/U Connector (PC130E only)630 J1 BNC RG62/U Connector (PC130E only)
603J1 6-position Telephone Jack (PC270E only)631 J1 6-position Telephone Jack (PC270E only)
604J2 6-position Telephone Jack (PC270E only)632 J2 6-position Telephone Jack (PC270E only)
605 633
606Setting one of the switches to Off/Open means "1", On/Closed means "0".634Setting one of the switches to Off/Open means "1", On/Closed means "0".
607 635
608 636
609Setting the Node ID637Setting the Node ID
610-------------------638^^^^^^^^^^^^^^^^^^^
611 639
612The eight switches in group S2 are used to set the node ID.640The eight switches in group S2 are used to set the node ID.
613These switches work in a way similar to the PC100-series cards; see that641These switches work in a way similar to the PC100-series cards; see that
@@ -615,10 +643,10 @@ entry for more information. · 1 unmodified line
615 643
616 644
617Setting the I/O Base Address645Setting the I/O Base Address
618----------------------------646^^^^^^^^^^^^^^^^^^^^^^^^^^^^
619 647
620The first three switches in switch group S1 are used to select one648The first three switches in switch group S1 are used to select one
621of eight possible I/O Base addresses using the following table649of eight possible I/O Base addresses using the following table::
622 650
623 651
624 Switch | Hex I/O652 Switch | Hex I/O
@@ -635,14 +663,16 @@ of eight possible I/O Base addresses using the following table · 10 unmodified lines
635 663
636 664
637Setting the Base Memory (RAM) buffer Address665Setting the Base Memory (RAM) buffer Address
638--------------------------------------------666^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
639 667
640The memory buffer requires 2K of a 16K block of RAM. The base of this668The memory buffer requires 2K of a 16K block of RAM. The base of this
64116K block can be located in any of eight positions.66916K block can be located in any of eight positions.
642Switches 4-6 of switch group S1 select the Base of the 16K block.670Switches 4-6 of switch group S1 select the Base of the 16K block.
643Within that 16K address space, the buffer may be assigned any one of four 671Within that 16K address space, the buffer may be assigned any one of four
644positions, determined by the offset, switches 7 and 8 of group S1.672positions, determined by the offset, switches 7 and 8 of group S1.
645 673
674::
675
646 Switch | Hex RAM | Hex ROM676 Switch | Hex RAM | Hex ROM
647 4 5 6 7 8 | Address | Address *)677 4 5 6 7 8 | Address | Address *)
648 -----------|---------|-----------678 -----------|---------|-----------
@@ -650,115 +680,111 @@ positions, determined by the offset, switches 7 and 8 of group S1. · 1 unmodified line
650 0 0 0 0 1 | C0800 | C2000680 0 0 0 0 1 | C0800 | C2000
651 0 0 0 1 0 | C1000 | C2000681 0 0 0 1 0 | C1000 | C2000
652 0 0 0 1 1 | C1800 | C2000682 0 0 0 1 1 | C1800 | C2000
653 | |683 | |
654 0 0 1 0 0 | C4000 | C6000684 0 0 1 0 0 | C4000 | C6000
655 0 0 1 0 1 | C4800 | C6000685 0 0 1 0 1 | C4800 | C6000
656 0 0 1 1 0 | C5000 | C6000686 0 0 1 1 0 | C5000 | C6000
657 0 0 1 1 1 | C5800 | C6000687 0 0 1 1 1 | C5800 | C6000
658 | |688 | |
659 0 1 0 0 0 | CC000 | CE000689 0 1 0 0 0 | CC000 | CE000
660 0 1 0 0 1 | CC800 | CE000690 0 1 0 0 1 | CC800 | CE000
661 0 1 0 1 0 | CD000 | CE000691 0 1 0 1 0 | CD000 | CE000
662 0 1 0 1 1 | CD800 | CE000692 0 1 0 1 1 | CD800 | CE000
663 | |693 | |
664 0 1 1 0 0 | D0000 | D2000 (Manufacturer's default)694 0 1 1 0 0 | D0000 | D2000 (Manufacturer's default)
665 0 1 1 0 1 | D0800 | D2000695 0 1 1 0 1 | D0800 | D2000
666 0 1 1 1 0 | D1000 | D2000696 0 1 1 1 0 | D1000 | D2000
667 0 1 1 1 1 | D1800 | D2000697 0 1 1 1 1 | D1800 | D2000
668 | |698 | |
669 1 0 0 0 0 | D4000 | D6000699 1 0 0 0 0 | D4000 | D6000
670 1 0 0 0 1 | D4800 | D6000700 1 0 0 0 1 | D4800 | D6000
671 1 0 0 1 0 | D5000 | D6000701 1 0 0 1 0 | D5000 | D6000
672 1 0 0 1 1 | D5800 | D6000702 1 0 0 1 1 | D5800 | D6000
673 | |703 | |
674 1 0 1 0 0 | D8000 | DA000704 1 0 1 0 0 | D8000 | DA000
675 1 0 1 0 1 | D8800 | DA000705 1 0 1 0 1 | D8800 | DA000
676 1 0 1 1 0 | D9000 | DA000706 1 0 1 1 0 | D9000 | DA000
677 1 0 1 1 1 | D9800 | DA000707 1 0 1 1 1 | D9800 | DA000
678 | |708 | |
679 1 1 0 0 0 | DC000 | DE000709 1 1 0 0 0 | DC000 | DE000
680 1 1 0 0 1 | DC800 | DE000710 1 1 0 0 1 | DC800 | DE000
681 1 1 0 1 0 | DD000 | DE000711 1 1 0 1 0 | DD000 | DE000
682 1 1 0 1 1 | DD800 | DE000712 1 1 0 1 1 | DD800 | DE000
683 | |713 | |
684 1 1 1 0 0 | E0000 | E2000714 1 1 1 0 0 | E0000 | E2000
685 1 1 1 0 1 | E0800 | E2000715 1 1 1 0 1 | E0800 | E2000
686 1 1 1 1 0 | E1000 | E2000716 1 1 1 1 0 | E1000 | E2000
687 1 1 1 1 1 | E1800 | E2000717 1 1 1 1 1 | E1800 | E2000
688 718
689*) To enable the 8K Boot PROM install the jumper ROM.719 *) To enable the 8K Boot PROM install the jumper ROM.
690 The default is jumper ROM not installed.720 The default is jumper ROM not installed.
691 721
692 722
693Setting the Timeouts and Interrupt723Setting the Timeouts and Interrupt
694----------------------------------724^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
695 725
696The jumpers labeled EXT1 and EXT2 are used to determine the timeout 726The jumpers labeled EXT1 and EXT2 are used to determine the timeout
697parameters. These two jumpers are normally left open.727parameters. These two jumpers are normally left open.
698 728
699To select a hardware interrupt level set one (only one!) of the jumpers729To select a hardware interrupt level set one (only one!) of the jumpers
700IRQ2, IRQ3, IRQ4, IRQ5, IRQ7. The Manufacturer's default is IRQ2.730IRQ2, IRQ3, IRQ4, IRQ5, IRQ7. The Manufacturer's default is IRQ2.
701 731
702 732
703Configuring the PC130E for Star or Bus Topology733Configuring the PC130E for Star or Bus Topology
704-----------------------------------------------734^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
705 735
706The single jumper labeled STAR is used to configure the PC130E board for 736The single jumper labeled STAR is used to configure the PC130E board for
707star or bus topology.737star or bus topology.
708When the jumper is installed, the board may be used in a star network, when 738When the jumper is installed, the board may be used in a star network, when
709it is removed, the board can be used in a bus topology.739it is removed, the board can be used in a bus topology.
710 740
711 741
712Diagnostic LEDs742Diagnostic LEDs
713---------------743^^^^^^^^^^^^^^^
714 744
715Two diagnostic LEDs are visible on the rear bracket of the board.745Two diagnostic LEDs are visible on the rear bracket of the board.
716The green LED monitors the network activity: the red one shows the746The green LED monitors the network activity: the red one shows the
717board activity:747board activity::
718 748
719 Green | Status Red | Status749 Green | Status Red | Status
720 -------|------------------- ---------|-------------------750 -------|------------------- ---------|-------------------
721 on | normal activity flash/on | data transfer751 on | normal activity flash/on | data transfer
722 blink | reconfiguration off | no data transfer;752 blink | reconfiguration off | no data transfer;
723 off | defective board or | incorrect memory or753 off | defective board or | incorrect memory or
724 | node ID is zero | I/O address754 | node ID is zero | I/O address
725 755
726 756
727*****************************************************************************
728
729** Standard Microsystems Corp (SMC) **
730PC500/PC550 Longboard (16-bit cards)757PC500/PC550 Longboard (16-bit cards)
731-------------------------------------758------------------------------------
759
732 - from Juergen Seifert <seifert@htwm.de>760 - from Juergen Seifert <seifert@htwm.de>
733 761
734 762
735STANDARD MICROSYSTEMS CORPORATION (SMC) ARCNET-PC500/PC550 Long Board763 .. note::
736=====================================================================
737 764
738Note: There is another Version of the PC500 called Short Version, which 765 There is another Version of the PC500 called Short Version, which
739 is different in hard- and software! The most important differences766 is different in hard- and software! The most important differences
740 are:767 are:
768
741 - The long board has no Shared memory.769 - The long board has no Shared memory.
742 - On the long board the selection of the interrupt is done by binary770 - On the long board the selection of the interrupt is done by binary
743 coded switch, on the short board directly by jumper.771 coded switch, on the short board directly by jumper.
744 772
745[Avery's note: pay special attention to that: the long board HAS NO SHARED773[Avery's note: pay special attention to that: the long board HAS NO SHARED
746MEMORY. This means the current Linux-ARCnet driver can't use these cards. 774MEMORY. This means the current Linux-ARCnet driver can't use these cards.
747I have obtained a PC500Longboard and will be doing some experiments on it in775I have obtained a PC500Longboard and will be doing some experiments on it in
748the future, but don't hold your breath. Thanks again to Juergen Seifert for776the future, but don't hold your breath. Thanks again to Juergen Seifert for
749his advice about this!]777his advice about this!]
750 778
751This description has been written by Juergen Seifert <seifert@htwm.de>779This description has been written by Juergen Seifert <seifert@htwm.de>
752using information from the following Original SMC Manual 780using information from the following Original SMC Manual
753 781
754 "Configuration Guide for782 "Configuration Guide for SMC ARCNET-PC500/PC550
755 SMC ARCNET-PC500/PC550783 Series Network Controller Boards Pub. # 900.033 Rev. A
756 Series Network Controller Boards784 November, 1989"
757 Pub. # 900.033 Rev. A
758 November, 1989"
759 785
760ARCNET is a registered trademark of the Datapoint Corporation786ARCNET is a registered trademark of the Datapoint Corporation
761SMC is a registered trademark of the Standard Microsystems Corporation 787SMC is a registered trademark of the Standard Microsystems Corporation
762 788
763The PC500 is equipped with a standard BNC female connector for connection789The PC500 is equipped with a standard BNC female connector for connection
764to RG-62/U coax cable.790to RG-62/U coax cable.
@@ -769,7 +795,9 @@ The PC550 is equipped with two modular RJ11-type jacks for connection · 4 unmodified lines
769to twisted pair wiring.795to twisted pair wiring.
770It can be used in a star or a daisy-chained (BUS) network.796It can be used in a star or a daisy-chained (BUS) network.
771 797
772 1 798::
799
800 1
773 0 9 8 7 6 5 4 3 2 1 6 5 4 3 2 1801 0 9 8 7 6 5 4 3 2 1 6 5 4 3 2 1
774 ____________________________________________________________________802 ____________________________________________________________________
775 < | SW1 | | SW2 | |803 < | SW1 | | SW2 | |
@@ -796,34 +824,34 @@ It can be used in a star or a daisy-chained (BUS) network. · 20 unmodified lines
796 > | | |824 > | | |
797 <____| |_____________________________________________|825 <____| |_____________________________________________|
798 826
799Legend:827Legend::
800 828
801SW1 1-6: I/O Base Address Select829 SW1 1-6: I/O Base Address Select
802 7-10: Interrupt Select830 7-10: Interrupt Select
803SW2 1-6: Reserved for Future Use831 SW2 1-6: Reserved for Future Use
804SW3 1-8: Node ID Select832 SW3 1-8: Node ID Select
805JP2 1-4: Extended Timeout Select833 JP2 1-4: Extended Timeout Select
806JP6 Selected - Star Topology (PC500 only)834 JP6 Selected - Star Topology (PC500 only)
807 Deselected - Bus Topology (PC500 only)835 Deselected - Bus Topology (PC500 only)
808CR3 Green Monitors Network Activity836 CR3 Green Monitors Network Activity
809CR4 Red Monitors Board Activity837 CR4 Red Monitors Board Activity
810J1 BNC RG62/U Connector (PC500 only)838 J1 BNC RG62/U Connector (PC500 only)
811J1 6-position Telephone Jack (PC550 only)839 J1 6-position Telephone Jack (PC550 only)
812J2 6-position Telephone Jack (PC550 only)840 J2 6-position Telephone Jack (PC550 only)
813 841
814Setting one of the switches to Off/Open means "1", On/Closed means "0".842Setting one of the switches to Off/Open means "1", On/Closed means "0".
815 843
816 844
817Setting the Node ID845Setting the Node ID
818-------------------846^^^^^^^^^^^^^^^^^^^
819 847
820The eight switches in group SW3 are used to set the node ID. Each node848The eight switches in group SW3 are used to set the node ID. Each node
821attached to the network must have an unique node ID which must be 849attached to the network must have an unique node ID which must be
822different from 0.850different from 0.
823Switch 1 serves as the least significant bit (LSB).851Switch 1 serves as the least significant bit (LSB).
824 852
825The node ID is the sum of the values of all switches set to "1" 853The node ID is the sum of the values of all switches set to "1"
826These values are:854These values are::
827 855
828 Switch | Value856 Switch | Value
829 -------|-------857 -------|-------
@@ -836,30 +864,30 @@ These values are: · 6 unmodified lines
836 7 | 64864 7 | 64
837 8 | 128865 8 | 128
838 866
839Some Examples:867Some Examples::
840 868
841 Switch | Hex | Decimal 869 Switch | Hex | Decimal
842 8 7 6 5 4 3 2 1 | Node ID | Node ID870 8 7 6 5 4 3 2 1 | Node ID | Node ID
843 ----------------|---------|---------871 ----------------|---------|---------
844 0 0 0 0 0 0 0 0 | not allowed872 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
846 0 0 0 0 0 0 1 0 | 2 | 2874 0 0 0 0 0 0 1 0 | 2 | 2
847 0 0 0 0 0 0 1 1 | 3 | 3875 0 0 0 0 0 0 1 1 | 3 | 3
848 . . . | |876 . . . | |
849 0 1 0 1 0 1 0 1 | 55 | 85877 0 1 0 1 0 1 0 1 | 55 | 85
850 . . . | |878 . . . | |
851 1 0 1 0 1 0 1 0 | AA | 170879 1 0 1 0 1 0 1 0 | AA | 170
852 . . . | | 880 . . . | |
853 1 1 1 1 1 1 0 1 | FD | 253881 1 1 1 1 1 1 0 1 | FD | 253
854 1 1 1 1 1 1 1 0 | FE | 254882 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
856 884
857 885
858Setting the I/O Base Address886Setting the I/O Base Address
859----------------------------887^^^^^^^^^^^^^^^^^^^^^^^^^^^^
860 888
861The first six switches in switch group SW1 are used to select one889The first six switches in switch group SW1 are used to select one
862of 32 possible I/O Base addresses using the following table890of 32 possible I/O Base addresses using the following table::
863 891
864 Switch | Hex I/O892 Switch | Hex I/O
865 6 5 4 3 2 1 | Address893 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
899 927
900 928
901Setting the Interrupt929Setting the Interrupt
902---------------------930^^^^^^^^^^^^^^^^^^^^^
903 931
904Switches seven through ten of switch group SW1 are used to select the 932Switches seven through ten of switch group SW1 are used to select the
905interrupt level. The interrupt level is binary coded, so selections 933interrupt level. The interrupt level is binary coded, so selections
906from 0 to 15 would be possible, but only the following eight values will934from 0 to 15 would be possible, but only the following eight values will
907be supported: 3, 4, 5, 7, 9, 10, 11, 12.935be supported: 3, 4, 5, 7, 9, 10, 11, 12.
908 936
937::
938
909 Switch | IRQ939 Switch | IRQ
910 10 9 8 7 | 940 10 9 8 7 |
911 ---------|-------- 941 ---------|--------
912 0 0 1 1 | 3942 0 0 1 1 | 3
913 0 1 0 0 | 4943 0 1 0 0 | 4
914 0 1 0 1 | 5944 0 1 0 1 | 5
@@ -919,52 +949,50 @@ be supported: 3, 4, 5, 7, 9, 10, 11, 12. · 4 unmodified lines
919 1 1 0 0 | 12949 1 1 0 0 | 12
920 950
921 951
922Setting the Timeouts 952Setting the Timeouts
923--------------------953^^^^^^^^^^^^^^^^^^^^
924 954
925The two jumpers JP2 (1-4) are used to determine the timeout parameters. 955The two jumpers JP2 (1-4) are used to determine the timeout parameters.
926These two jumpers are normally left open.956These two jumpers are normally left open.
927Refer to the COM9026 Data Sheet for alternate configurations.957Refer to the COM9026 Data Sheet for alternate configurations.
928 958
929 959
930Configuring the PC500 for Star or Bus Topology960Configuring the PC500 for Star or Bus Topology
931----------------------------------------------961^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
932 962
933The single jumper labeled JP6 is used to configure the PC500 board for 963The single jumper labeled JP6 is used to configure the PC500 board for
934star or bus topology.964star or bus topology.
935When the jumper is installed, the board may be used in a star network, when 965When the jumper is installed, the board may be used in a star network, when
936it is removed, the board can be used in a bus topology.966it is removed, the board can be used in a bus topology.
937 967
938 968
939Diagnostic LEDs969Diagnostic LEDs
940---------------970^^^^^^^^^^^^^^^
941 971
942Two diagnostic LEDs are visible on the rear bracket of the board.972Two diagnostic LEDs are visible on the rear bracket of the board.
943The green LED monitors the network activity: the red one shows the973The green LED monitors the network activity: the red one shows the
944board activity:974board activity::
945 975
946 Green | Status Red | Status976 Green | Status Red | Status
947 -------|------------------- ---------|-------------------977 -------|------------------- ---------|-------------------
948 on | normal activity flash/on | data transfer978 on | normal activity flash/on | data transfer
949 blink | reconfiguration off | no data transfer;979 blink | reconfiguration off | no data transfer;
950 off | defective board or | incorrect memory or980 off | defective board or | incorrect memory or
951 | node ID is zero | I/O address981 | node ID is zero | I/O address
952 982
953 983
954*****************************************************************************
955
956** SMC **
957PC710 (8-bit card)984PC710 (8-bit card)
958------------------985------------------
986
959 - from J.S. van Oosten <jvoosten@compiler.tdcnet.nl>987 - from J.S. van Oosten <jvoosten@compiler.tdcnet.nl>
960 988
961Note: this data is gathered by experimenting and looking at info of other989Note: this data is gathered by experimenting and looking at info of other
962cards. However, I'm sure I got 99% of the settings right.990cards. However, I'm sure I got 99% of the settings right.
963 991
964The SMC710 card resembles the PC270 card, but is much more basic (i.e. no992The SMC710 card resembles the PC270 card, but is much more basic (i.e. no
965LEDs, RJ11 jacks, etc.) and 8 bit. Here's a little drawing:993LEDs, RJ11 jacks, etc.) and 8 bit. Here's a little drawing::
966 994
967 _______________________________________ 995 _______________________________________
968 | +---------+ +---------+ |____996 | +---------+ +---------+ |____
969 | | S2 | | S1 | |997 | | S2 | | S1 | |
970 | +---------+ +---------+ |998 | +---------+ +---------+ |
@@ -976,12 +1004,12 @@ LEDs, RJ11 jacks, etc.) and 8 bit. Here's a little drawing: · 5 unmodified lines
976 | +===+ |1004 | +===+ |
977 | |1005 | |
978 | .. JP1 +----------+ |1006 | .. JP1 +----------+ |
979 | .. | big chip | | 1007 | .. | big chip | |
980 | .. | 90C63 | |1008 | .. | 90C63 | |
981 | .. | | |1009 | .. | | |
982 | .. +----------+ |1010 | .. +----------+ |
983 ------- -----------1011 ------- -----------
984 |||||||||||||||||||||1012 |||||||||||||||||||||
985 1013
986The row of jumpers at JP1 actually consists of 8 jumpers, (sometimes1014The row of jumpers at JP1 actually consists of 8 jumpers, (sometimes
987labelled) the same as on the PC270, from top to bottom: EXT2, EXT1, ROM,1015labelled) 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
992 1020
993I know it works when connected to a PC110 type ARCnet board.1021I know it works when connected to a PC110 type ARCnet board.
994 1022
995 1023
996*****************************************************************************1024*****************************************************************************
997 1025
998** Possibly SMC **1026Possibly SMC
1027============
1028
999LCS-8830(-T) (8 and 16-bit cards)1029LCS-8830(-T) (8 and 16-bit cards)
1000---------------------------------1030---------------------------------
1031
1001 - from Mathias Katzer <mkatzer@HRZ.Uni-Bielefeld.DE>1032 - from Mathias Katzer <mkatzer@HRZ.Uni-Bielefeld.DE>
1002 - Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> says the1033 - Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> says the
1003 LCS-8830 is slightly different from LCS-8830-T. These are 8 bit, BUS1034 LCS-8830 is slightly different from LCS-8830-T. These are 8 bit, BUS
1004 only (the JP0 jumper is hardwired), and BNC only.1035 only (the JP0 jumper is hardwired), and BNC only.
1005 1036
1006This is a LCS-8830-T made by SMC, I think ('SMC' only appears on one PLCC,1037This is a LCS-8830-T made by SMC, I think ('SMC' only appears on one PLCC,
1007nowhere else, not even on the few Xeroxed sheets from the manual).1038nowhere else, not even on the few Xeroxed sheets from the manual).
1008 1039
1009SMC ARCnet Board Type LCS-8830-T1040SMC ARCnet Board Type LCS-8830-T::
1010 1041
1011 ------------------------------------1042 ------------------------------------
1012 | |1043 | |
1013 | JP3 88 8 JP2 |1044 | JP3 88 8 JP2 |
1014 | ##### | \ |1045 | ##### | \ |
1015 | ##### ET1 ET2 ###|1046 | ##### ET1 ET2 ###|
1016 | 8 ###|1047 | 8 ###|
1017 | U3 SW 1 JP0 ###| Phone Jacks1048 | U3 SW 1 JP0 ###| Phone Jacks
1018 | -- ###|1049 | -- ###|
1019 | | | |1050 | | | |
1020 | | | SW2 |1051 | | | SW2 |
1021 | | | |1052 | | | |
1022 | | | ##### |1053 | | | ##### |
1023 | -- ##### #### BNC Connector 1054 | -- ##### #### BNC Connector
1024 | ####1055 | ####
1025 | 888888 JP1 |1056 | 888888 JP1 |
1026 | 234567 |1057 | 234567 |
1027 -- -------1058 -- -------
1028 |||||||||||||||||||||||||||1059 |||||||||||||||||||||||||||
1029 --------------------------1060 --------------------------
1030 1061
1031 1062
1032SW1: DIP-Switches for Station Address1063 SW1: DIP-Switches for Station Address
1033SW2: DIP-Switches for Memory Base and I/O Base addresses1064 SW2: DIP-Switches for Memory Base and I/O Base addresses
1034 1065
1035JP0: If closed, internal termination on (default open)1066 JP0: If closed, internal termination on (default open)
1036JP1: IRQ Jumpers1067 JP1: IRQ Jumpers
1037JP2: Boot-ROM enabled if closed1068 JP2: Boot-ROM enabled if closed
1038JP3: Jumpers for response timeout1069 JP3: Jumpers for response timeout
1039 1070
1040U3: Boot-ROM Socket 1071 U3: Boot-ROM Socket
1041 1072
1042 1073
1043ET1 ET2 Response Time Idle Time Reconfiguration Time1074 ET1 ET2 Response Time Idle Time Reconfiguration Time
1044 1075
1045 78 86 8401076 78 86 840
1046 X 285 316 16801077 X 285 316 1680
1047 X 563 624 16801078 X 563 624 1680
1048 X X 1130 1237 16801079 X X 1130 1237 1680
1049 1080
1050(X means closed jumper)1081 (X means closed jumper)
1051 1082
1052(DIP-Switch downwards means "0")1083 (DIP-Switch downwards means "0")
1053 1084
1054The station address is binary-coded with SW1.1085The station address is binary-coded with SW1.
1055 1086
1056The I/O base address is coded with DIP-Switches 6,7 and 8 of SW2:1087The I/O base address is coded with DIP-Switches 6,7 and 8 of SW2:
1057 1088
1089======== ========
1058Switches Base1090Switches Base
1059678 Address1091678 Address
1092======== ========
1060000 260-26f1093000 260-26f
1061100 290-29f1094100 290-29f
1062010 2e0-2ef1095010 2e0-2ef
@@ -1065,19 +1098,22 @@ Switches Base · 2 unmodified lines
1065101 350-35f1098101 350-35f
1066011 380-38f1099011 380-38f
1067111 3e0-3ef1100111 3e0-3ef
1101======== ========
1068 1102
1069 1103
1070DIP Switches 1-5 of SW2 encode the RAM and ROM Address Range:1104DIP Switches 1-5 of SW2 encode the RAM and ROM Address Range:
1071 1105
1106======== ============= ================
1072Switches RAM ROM1107Switches RAM ROM
107312345 Address Range Address Range110812345 Address Range Address Range
1109======== ============= ================
107400000 C:0000-C:07ff C:2000-C:3fff111000000 C:0000-C:07ff C:2000-C:3fff
107510000 C:0800-C:0fff111110000 C:0800-C:0fff
107601000 C:1000-C:17ff111201000 C:1000-C:17ff
107711000 C:1800-C:1fff111311000 C:1800-C:1fff
107800100 C:4000-C:47ff C:6000-C:7fff111400100 C:4000-C:47ff C:6000-C:7fff
107910100 C:4800-C:4fff111510100 C:4800-C:4fff
108001100 C:5000-C:57ff 111601100 C:5000-C:57ff
108111100 C:5800-C:5fff111711100 C:5800-C:5fff
108200010 C:C000-C:C7ff C:E000-C:ffff111800010 C:C000-C:C7ff C:E000-C:ffff
108310010 C:C800-C:Cfff111910010 C:C800-C:Cfff
@@ -1094,7 +1130,7 @@ Switches RAM ROM · 10 unmodified lines
109400101 D:8000-D:87ff D:A000-D:bfff113000101 D:8000-D:87ff D:A000-D:bfff
109510101 D:8800-D:8fff113110101 D:8800-D:8fff
109601101 D:9000-D:97ff113201101 D:9000-D:97ff
109711101 D:9800-D:9fff 113311101 D:9800-D:9fff
109800011 D:C000-D:c7ff D:E000-D:ffff113400011 D:C000-D:c7ff D:E000-D:ffff
109910011 D:C800-D:cfff113510011 D:C800-D:cfff
110001011 D:D000-D:d7ff113601011 D:D000-D:d7ff
@@ -1103,34 +1139,37 @@ Switches RAM ROM · 2 unmodified lines
110310111 E:0800-E:0fff113910111 E:0800-E:0fff
110401111 E:1000-E:17ff114001111 E:1000-E:17ff
110511111 E:1800-E:1fff114111111 E:1800-E:1fff
1142======== ============= ================
1106 1143
1107 1144
1108*****************************************************************************1145PureData Corp
1146=============
1109 1147
1110** PureData Corp **
1111PDI507 (8-bit card)1148PDI507 (8-bit card)
1112--------------------1149--------------------
1150
1113 - from Mark Rejhon <mdrejhon@magi.com> (slight modifications by Avery)1151 - from Mark Rejhon <mdrejhon@magi.com> (slight modifications by Avery)
1114 - Avery's note: I think PDI508 cards (but definitely NOT PDI508Plus cards)1152 - Avery's note: I think PDI508 cards (but definitely NOT PDI508Plus cards)
1115 are mostly the same as this. PDI508Plus cards appear to be mainly1153 are mostly the same as this. PDI508Plus cards appear to be mainly
1116 software-configured.1154 software-configured.
1117 1155
1118Jumpers:1156Jumpers:
1157
1119 There is a jumper array at the bottom of the card, near the edge1158 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 and1159 connector. This array is labelled J1. They control the IRQs and
1121 something else. Put only one jumper on the IRQ pins.1160 something else. Put only one jumper on the IRQ pins.
1122 1161
1123 ETS1, ETS2 are for timing on very long distance networks. See the1162 ETS1, ETS2 are for timing on very long distance networks. See the
1124 more general information near the top of this file.1163 more general information near the top of this file.
1125 1164
1126 There is a J2 jumper on two pins. A jumper should be put on them,1165 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 what1166 since it was already there when I got the card. I don't know what
1128 this jumper is for though.1167 this jumper is for though.
1129 1168
1130 There is a two-jumper array for J3. I don't know what it is for,1169 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's1170 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 were1171 a six pin grid in a two-by-three fashion. The jumpers were
1133 configured as follows:1172 configured as follows::
1134 1173
1135 .-------.1174 .-------.
1136 o | o o |1175 o | o o |
@@ -1140,28 +1179,28 @@ Jumpers: · 3 unmodified lines
1140 1179
1141Carl de Billy <CARL@carainfo.com> explains J3 and J4:1180Carl de Billy <CARL@carainfo.com> explains J3 and J4:
1142 1181
1143 J3 Diagram:1182 J3 Diagram::
1144 1183
1145 .-------.1184 .-------.
1146 o | o o |1185 o | o o |
1147 :-------: TWIST Technology1186 :-------: TWIST Technology
1148 o | o o |1187 o | o o |
1149 `-------'1188 `-------'
1150 .-------.1189 .-------.
1151 | o o | o1190 | o o | o
1152 :-------: COAX Technology1191 :-------: COAX Technology
1153 | o o | o1192 | o o | o
1154 `-------'1193 `-------'
1155 1194
1156 - If using coax cable in a bus topology the J4 jumper must be removed;1195 - If using coax cable in a bus topology the J4 jumper must be removed;
1157 place it on one pin.1196 place it on one pin.
1158 1197
1159 - If using bus topology with twisted pair wiring move the J3 1198 - If using bus topology with twisted pair wiring move the J3
1160 jumpers so they connect the middle pin and the pins closest to the RJ111199 jumpers so they connect the middle pin and the pins closest to the RJ11
1161 Connectors. Also the J4 jumper must be removed; place it on one pin of1200 Connectors. Also the J4 jumper must be removed; place it on one pin of
1162 J4 jumper for storage.1201 J4 jumper for storage.
1163 1202
1164 - If using star topology with twisted pair wiring move the J3 1203 - If using star topology with twisted pair wiring move the J3
1165 jumpers so they connect the middle pin and the pins closest to the RJ111204 jumpers so they connect the middle pin and the pins closest to the RJ11
1166 connectors.1205 connectors.
1167 1206
@@ -1169,40 +1208,43 @@ Carl de Billy <CARL@carainfo.com> explains J3 and J4: · 1 unmodified line
1169DIP Switches:1208DIP Switches:
1170 1209
1171 The DIP switches accessible on the accessible end of the card while1210 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 81211 it is installed, is used to set the ARCnet address. There are 8
1173 switches. Use an address from 1 to 254.1212 switches. Use an address from 1 to 254
1174 1213
1175 Switch No.1214 ========== =========================
1176 12345678 ARCnet address1215 Switch No. ARCnet address
1177 -----------------------------------------1216 12345678
1217 ========== =========================
1178 00000000 FF (Don't use this!)1218 00000000 FF (Don't use this!)
1179 00000001 FE1219 00000001 FE
1180 00000010 FD1220 00000010 FD
1181 ....1221 ...
1182 11111101 2 1222 11111101 2
1183 11111110 11223 11111110 1
1184 11111111 0 (Don't use this!)1224 11111111 0 (Don't use this!)
1225 ========== =========================
1185 1226
1186 There is another array of eight DIP switches at the top of the1227 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 the1228 card. There are five labelled MS0-MS4 which seem to control the
1188 memory address, and another three labelled IO0-IO2 which seem to1229 memory address, and another three labelled IO0-IO2 which seem to
1189 control the base I/O address of the card.1230 control the base I/O address of the card.
1190 1231
1191 This was difficult to test by trial and error, and the I/O addresses1232 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,1233 are in a weird order. This was tested by setting the DIP switches,
1193 rebooting the computer, and attempting to load ARCETHER at various1234 rebooting the computer, and attempting to load ARCETHER at various
1194 addresses (mostly between 0x200 and 0x400). The address that caused1235 addresses (mostly between 0x200 and 0x400). The address that caused
1195 the red transmit LED to blink, is the one that I thought works.1236 the red transmit LED to blink, is the one that I thought works.
1196 1237
1197 Also, the address 0x3D0 seem to have a special meaning, since the1238 Also, the address 0x3D0 seem to have a special meaning, since the
1198 ARCETHER packet driver loaded fine, but without the red LED1239 ARCETHER packet driver loaded fine, but without the red LED
1199 blinking. I don't know what 0x3D0 is for though. I recommend using1240 blinking. I don't know what 0x3D0 is for though. I recommend using
1200 an address of 0x300 since Windows may not like addresses below1241 an address of 0x300 since Windows may not like addresses below
1201 0x300.1242 0x300.
1202 1243
1203 IO Switch No.1244 ============= ===========
1204 210 I/O address1245 IO Switch No. I/O address
1205 -------------------------------1246 210
1247 ============= ===========
1206 111 0x2601248 111 0x260
1207 110 0x2901249 110 0x290
1208 101 0x2E01250 101 0x2E0
@@ -1211,29 +1253,31 @@ DIP Switches: · 2 unmodified lines
1211 010 0x3501253 010 0x350
1212 001 0x3801254 001 0x380
1213 000 0x3E01255 000 0x3E0
1256 ============= ===========
1214 1257
1215 The memory switches set a reserved address space of 0x1000 bytes1258 The memory switches set a reserved address space of 0x1000 bytes
1216 (0x100 segment units, or 4k). For example if I set an address of1259 (0x100 segment units, or 4k). For example if I set an address of
1217 0xD000, it will use up addresses 0xD000 to 0xD100.1260 0xD000, it will use up addresses 0xD000 to 0xD100.
1218 1261
1219 The memory switches were tested by booting using QEMM386 stealth,1262 The memory switches were tested by booting using QEMM386 stealth,
1220 and using LOADHI to see what address automatically became excluded1263 and using LOADHI to see what address automatically became excluded
1221 from the upper memory regions, and then attempting to load ARCETHER1264 from the upper memory regions, and then attempting to load ARCETHER
1222 using these addresses.1265 using these addresses.
1223 1266
1224 I recommend using an ARCnet memory address of 0xD000, and putting1267 I recommend using an ARCnet memory address of 0xD000, and putting
1225 the EMS page frame at 0xC000 while using QEMM stealth mode. That1268 the EMS page frame at 0xC000 while using QEMM stealth mode. That
1226 way, you get contiguous high memory from 0xD100 almost all the way1269 way, you get contiguous high memory from 0xD100 almost all the way
1227 the end of the megabyte.1270 the end of the megabyte.
1228 1271
1229 Memory Switch 0 (MS0) didn't seem to work properly when set to OFF1272 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 with1273 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 a1274 it ON first, and if it doesn't work, set it to OFF. (It may be a
1232 modifier for the 0x200 bit?)1275 modifier for the 0x200 bit?)
1233 1276
1277 ============= ============================================
1234 MS Switch No.1278 MS Switch No.
1235 43210 Memory address1279 43210 Memory address
1236 --------------------------------1280 ============= ============================================
1237 00001 0xE100 (guessed - was not detected by QEMM)1281 00001 0xE100 (guessed - was not detected by QEMM)
1238 00011 0xE000 (guessed - was not detected by QEMM)1282 00011 0xE000 (guessed - was not detected by QEMM)
1239 00101 0xDD001283 00101 0xDD00
@@ -1250,40 +1294,36 @@ DIP Switches: · 10 unmodified lines
1250 11011 0xC800 (guessed - crashes tested system)1294 11011 0xC800 (guessed - crashes tested system)
1251 11101 0xC500 (guessed - crashes tested system)1295 11101 0xC500 (guessed - crashes tested system)
1252 11111 0xC400 (guessed - crashes tested system)1296 11111 0xC400 (guessed - crashes tested system)
1253 1297 ============= ============================================
1254 1298
1255*****************************************************************************1299CNet Technology Inc. (8-bit cards)
1300==================================
1256 1301
1257** CNet Technology Inc. **
1258120 Series (8-bit cards)1302120 Series (8-bit cards)
1259------------------------1303------------------------
1260 - from Juergen Seifert <seifert@htwm.de>1304 - from Juergen Seifert <seifert@htwm.de>
1261 1305
1262
1263CNET TECHNOLOGY INC. (CNet) ARCNET 120A SERIES
1264==============================================
1265
1266This description has been written by Juergen Seifert <seifert@htwm.de>1306This description has been written by Juergen Seifert <seifert@htwm.de>
1267using information from the following Original CNet Manual 1307using information from the following Original CNet Manual
1268 1308
1269 "ARCNET1309 "ARCNET USER'S MANUAL for
1270 USER'S MANUAL 1310 CN120A
1271 for1311 CN120AB
1272 CN120A1312 CN120TP
1273 CN120AB1313 CN120ST
1274 CN120TP1314 CN120SBT
1275 CN120ST1315 P/N:12-01-0007
1276 CN120SBT1316 Revision 3.00"
1277 P/N:12-01-0007
1278 Revision 3.00"
1279 1317
1280ARCNET is a registered trademark of the Datapoint Corporation1318ARCNET is a registered trademark of the Datapoint Corporation
1281 1319
1282P/N 120A ARCNET 8 bit XT/AT Star1320- P/N 120A ARCNET 8 bit XT/AT Star
1283P/N 120AB ARCNET 8 bit XT/AT Bus1321- P/N 120AB ARCNET 8 bit XT/AT Bus
1284P/N 120TP ARCNET 8 bit XT/AT Twisted Pair1322- P/N 120TP ARCNET 8 bit XT/AT Twisted Pair
1285P/N 120ST ARCNET 8 bit XT/AT Star, Twisted Pair1323- P/N 120ST ARCNET 8 bit XT/AT Star, Twisted Pair
1286P/N 120SBT ARCNET 8 bit XT/AT Star, Bus, Twisted Pair1324- P/N 120SBT ARCNET 8 bit XT/AT Star, Bus, Twisted Pair
1325
1326::
1287 1327
1288 __________________________________________________________________1328 __________________________________________________________________
1289 | |1329 | |
@@ -1307,75 +1347,77 @@ P/N 120SBT ARCNET 8 bit XT/AT Star, Bus, Twisted Pair · 17 unmodified lines
1307 | > SOCKET | JP 6 5 4 3 2 |o|o|o| | J1 |1347 | > SOCKET | JP 6 5 4 3 2 |o|o|o| | J1 |
1308 | |______________| |o|o|o|o|o| |o|o|o| |_____|1348 | |______________| |o|o|o|o|o| |o|o|o| |_____|
1309 |_____ |o|o|o|o|o| ______________|1349 |_____ |o|o|o|o|o| ______________|
1310 | |1350 | |
1311 |_____________________________________________|1351 |_____________________________________________|
1312 1352
1313Legend:1353Legend::
1314 1354
131590C65 ARCNET Probe1355 90C65 ARCNET Probe
1316S1 1-5: Base Memory Address Select1356 S1 1-5: Base Memory Address Select
1317 6-8: Base I/O Address Select1357 6-8: Base I/O Address Select
1318S2 1-8: Node ID Select (ID0-ID7)1358 S2 1-8: Node ID Select (ID0-ID7)
1319JP1 ROM Enable Select1359 JP1 ROM Enable Select
1320JP2 IRQ21360 JP2 IRQ2
1321JP3 IRQ31361 JP3 IRQ3
1322JP4 IRQ41362 JP4 IRQ4
1323JP5 IRQ51363 JP5 IRQ5
1324JP6 IRQ71364 JP6 IRQ7
1325JP7/JP8 ET1, ET2 Timeout Parameters1365 JP7/JP8 ET1, ET2 Timeout Parameters
1326JP10/JP11 Coax / Twisted Pair Select (CN120ST/SBT only)1366 JP10/JP11 Coax / Twisted Pair Select (CN120ST/SBT only)
1327JP12 Terminator Select (CN120AB/ST/SBT only)1367 JP12 Terminator Select (CN120AB/ST/SBT only)
1328J1 BNC RG62/U Connector (all except CN120TP)1368 J1 BNC RG62/U Connector (all except CN120TP)
1329J2 Two 6-position Telephone Jack (CN120TP/ST/SBT only)1369 J2 Two 6-position Telephone Jack (CN120TP/ST/SBT only)
1330 1370
1331Setting one of the switches to Off means "1", On means "0".1371Setting one of the switches to Off means "1", On means "0".
1332 1372
1333 1373
1334Setting the Node ID1374Setting the Node ID
1335-------------------1375^^^^^^^^^^^^^^^^^^^
1336 1376
1337The eight switches in SW2 are used to set the node ID. Each node attached1377The eight switches in SW2 are used to set the node ID. Each node attached
1338to the network must have an unique node ID which must be different from 0.1378to the network must have an unique node ID which must be different from 0.
1339Switch 1 (ID0) serves as the least significant bit (LSB).1379Switch 1 (ID0) serves as the least significant bit (LSB).
1340 1380
1341The node ID is the sum of the values of all switches set to "1" 1381The node ID is the sum of the values of all switches set to "1"
1342These values are:1382These values are:
1343 1383
1344 Switch | Label | Value1384 ======= ====== =====
1345 -------|-------|-------1385 Switch Label Value
1346 1 | ID0 | 11386 ======= ====== =====
1347 2 | ID1 | 21387 1 ID0 1
1348 3 | ID2 | 41388 2 ID1 2
1349 4 | ID3 | 81389 3 ID2 4
1350 5 | ID4 | 161390 4 ID3 8
1351 6 | ID5 | 321391 5 ID4 16
1352 7 | ID6 | 641392 6 ID5 32
1353 8 | ID7 | 1281393 7 ID6 64
1354 1394 8 ID7 128
1355Some Examples:1395 ======= ====== =====
1356 1396
1357 Switch | Hex | Decimal 1397Some Examples::
1398
1399 Switch | Hex | Decimal
1358 8 7 6 5 4 3 2 1 | Node ID | Node ID1400 8 7 6 5 4 3 2 1 | Node ID | Node ID
1359 ----------------|---------|---------1401 ----------------|---------|---------
1360 0 0 0 0 0 0 0 0 | not allowed1402 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
1362 0 0 0 0 0 0 1 0 | 2 | 21404 0 0 0 0 0 0 1 0 | 2 | 2
1363 0 0 0 0 0 0 1 1 | 3 | 31405 0 0 0 0 0 0 1 1 | 3 | 3
1364 . . . | |1406 . . . | |
1365 0 1 0 1 0 1 0 1 | 55 | 851407 0 1 0 1 0 1 0 1 | 55 | 85
1366 . . . | |1408 . . . | |
1367 1 0 1 0 1 0 1 0 | AA | 1701409 1 0 1 0 1 0 1 0 | AA | 170
1368 . . . | | 1410 . . . | |
1369 1 1 1 1 1 1 0 1 | FD | 2531411 1 1 1 1 1 1 0 1 | FD | 253
1370 1 1 1 1 1 1 1 0 | FE | 2541412 1 1 1 1 1 1 1 0 | FE | 254
1371 1 1 1 1 1 1 1 1 | FF | 2551413 1 1 1 1 1 1 1 1 | FF | 255
1372 1414
1373 1415
1374Setting the I/O Base Address1416Setting the I/O Base Address
1375----------------------------1417^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1376 1418
1377The last three switches in switch block SW1 are used to select one1419The last three switches in switch block SW1 are used to select one
1378of eight possible I/O Base addresses using the following table1420of eight possible I/O Base addresses using the following table::
1379 1421
1380 1422
1381 Switch | Hex I/O1423 Switch | Hex I/O
@@ -1392,13 +1434,15 @@ of eight possible I/O Base addresses using the following table · 10 unmodified lines
1392 1434
1393 1435
1394Setting the Base Memory (RAM) buffer Address1436Setting the Base Memory (RAM) buffer Address
1395--------------------------------------------1437^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1396 1438
1397The memory buffer (RAM) requires 2K. The base of this buffer can be 1439The memory buffer (RAM) requires 2K. The base of this buffer can be
1398located in any of eight positions. The address of the Boot Prom is1440located in any of eight positions. The address of the Boot Prom is
1399memory base + 8K or memory base + 0x2000.1441memory base + 8K or memory base + 0x2000.
1400Switches 1-5 of switch block SW1 select the Memory Base address.1442Switches 1-5 of switch block SW1 select the Memory Base address.
1401 1443
1444::
1445
1402 Switch | Hex RAM | Hex ROM1446 Switch | Hex RAM | Hex ROM
1403 1 2 3 4 5 | Address | Address *)1447 1 2 3 4 5 | Address | Address *)
1404 --------------------|---------|-----------1448 --------------------|---------|-----------
@@ -1410,22 +1454,24 @@ Switches 1-5 of switch block SW1 select the Memory Base address. · 5 unmodified lines
1410 ON ON OFF ON OFF | D8000 | DA0001454 ON ON OFF ON OFF | D8000 | DA000
1411 ON ON ON OFF OFF | DC000 | DE0001455 ON ON ON OFF OFF | DC000 | DE000
1412 ON ON OFF OFF OFF | E0000 | E20001456 ON ON OFF OFF OFF | E0000 | E2000
1413
1414*) To enable the Boot ROM install the jumper JP1
1415 1457
1416Note: Since the switches 1 and 2 are always set to ON it may be possible1458 *) 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
1417 that they can be used to add an offset of 2K, 4K or 6K to the base1463 that they can be used to add an offset of 2K, 4K or 6K to the base
1418 address, but this feature is not documented in the manual and I1464 address, but this feature is not documented in the manual and I
1419 haven't tested it yet.1465 haven't tested it yet.
1420 1466
1421 1467
1422Setting the Interrupt Line1468Setting the Interrupt Line
1423--------------------------1469^^^^^^^^^^^^^^^^^^^^^^^^^^
1424 1470
1425To select a hardware interrupt level install one (only one!) of the jumpers1471To select a hardware interrupt level install one (only one!) of the jumpers
1426JP2, JP3, JP4, JP5, JP6. JP2 is the default.1472JP2, JP3, JP4, JP5, JP6. JP2 is the default::
1427 1473
1428 Jumper | IRQ 1474 Jumper | IRQ
1429 -------|-----1475 -------|-----
1430 2 | 21476 2 | 2
1431 3 | 31477 3 | 3
@@ -1435,71 +1481,66 @@ JP2, JP3, JP4, JP5, JP6. JP2 is the default. · 3 unmodified lines
1435 1481
1436 1482
1437Setting the Internal Terminator on CN120AB/TP/SBT1483Setting the Internal Terminator on CN120AB/TP/SBT
1438--------------------------------------------------1484^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1439 1485
1440The jumper JP12 is used to enable the internal terminator. 1486The jumper JP12 is used to enable the internal terminator::
1441 1487
1442 -----1488 -----
1443 0 | 0 | 1489 0 | 0 |
1444 ----- ON | | ON1490 ----- ON | | ON
1445 | 0 | | 0 |1491 | 0 | | 0 |
1446 | | OFF ----- OFF1492 | | OFF ----- OFF
1447 | 0 | 01493 | 0 | 0
1448 -----1494 -----
1449 Terminator Terminator 1495 Terminator Terminator
1450 disabled enabled1496 disabled enabled
1451 1497
1452 1498
1453Selecting the Connector Type on CN120ST/SBT1499Selecting the Connector Type on CN120ST/SBT
1454-------------------------------------------1500^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1501
1502::
1455 1503
1456 JP10 JP11 JP10 JP111504 JP10 JP11 JP10 JP11
1457 ----- -----1505 ----- -----
1458 0 0 | 0 | | 0 | 1506 0 0 | 0 | | 0 |
1459 ----- ----- | | | |1507 ----- ----- | | | |
1460 | 0 | | 0 | | 0 | | 0 |1508 | 0 | | 0 | | 0 | | 0 |
1461 | | | | ----- -----1509 | | | | ----- -----
1462 | 0 | | 0 | 0 0 1510 | 0 | | 0 | 0 0
1463 ----- -----1511 ----- -----
1464 Coaxial Cable Twisted Pair Cable 1512 Coaxial Cable Twisted Pair Cable
1465 (Default)1513 (Default)
1466 1514
1467 1515
1468Setting the Timeout Parameters1516Setting the Timeout Parameters
1469------------------------------1517^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1470 1518
1471The jumpers labeled EXT1 and EXT2 are used to determine the timeout 1519The jumpers labeled EXT1 and EXT2 are used to determine the timeout
1472parameters. These two jumpers are normally left open.1520parameters. These two jumpers are normally left open.
1473 1521
1474 1522
1523CNet Technology Inc. (16-bit cards)
1524===================================
1475 1525
1476*****************************************************************************
1477
1478** CNet Technology Inc. **
1479160 Series (16-bit cards)1526160 Series (16-bit cards)
1480-------------------------1527-------------------------
1481 - from Juergen Seifert <seifert@htwm.de>1528 - from Juergen Seifert <seifert@htwm.de>
1482 1529
1483CNET TECHNOLOGY INC. (CNet) ARCNET 160A SERIES
1484==============================================
1485
1486This description has been written by Juergen Seifert <seifert@htwm.de>1530This description has been written by Juergen Seifert <seifert@htwm.de>
1487using information from the following Original CNet Manual 1531using information from the following Original CNet Manual
1488 1532
1489 "ARCNET1533 "ARCNET USER'S MANUAL for
1490 USER'S MANUAL 1534 CN160A CN160AB CN160TP
1491 for1535 P/N:12-01-0006 Revision 3.00"
1492 CN160A
1493 CN160AB
1494 CN160TP
1495 P/N:12-01-0006
1496 Revision 3.00"
1497 1536
1498ARCNET is a registered trademark of the Datapoint Corporation1537ARCNET is a registered trademark of the Datapoint Corporation
1499 1538
1500P/N 160A ARCNET 16 bit XT/AT Star1539- P/N 160A ARCNET 16 bit XT/AT Star
1501P/N 160AB ARCNET 16 bit XT/AT Bus1540- P/N 160AB ARCNET 16 bit XT/AT Bus
1502P/N 160TP ARCNET 16 bit XT/AT Twisted Pair1541- P/N 160TP ARCNET 16 bit XT/AT Twisted Pair
1542
1543::
1503 1544
1504 ___________________________________________________________________1545 ___________________________________________________________________
1505 < _________________________ ___|1546 < _________________________ ___|
@@ -1526,30 +1567,30 @@ P/N 160TP ARCNET 16 bit XT/AT Twisted Pair · 20 unmodified lines
1526 > | | |1567 > | | |
1527 <____________| |_______________________________________|1568 <____________| |_______________________________________|
1528 1569
1529Legend:1570Legend::
1530 1571
15319026 ARCNET Probe1572 9026 ARCNET Probe
1532SW1 1-6: Base I/O Address Select1573 SW1 1-6: Base I/O Address Select
1533 7-10: Base Memory Address Select1574 7-10: Base Memory Address Select
1534SW2 1-8: Node ID Select (ID0-ID7)1575 SW2 1-8: Node ID Select (ID0-ID7)
1535JP1/JP2 ET1, ET2 Timeout Parameters1576 JP1/JP2 ET1, ET2 Timeout Parameters
1536JP3-JP13 Interrupt Select1577 JP3-JP13 Interrupt Select
1537J1 BNC RG62/U Connector (CN160A/AB only)1578 J1 BNC RG62/U Connector (CN160A/AB only)
1538J1 Two 6-position Telephone Jack (CN160TP only)1579 J1 Two 6-position Telephone Jack (CN160TP only)
1539LED1580 LED
1540 1581
1541Setting one of the switches to Off means "1", On means "0".1582Setting one of the switches to Off means "1", On means "0".
1542 1583
1543 1584
1544Setting the Node ID1585Setting the Node ID
1545-------------------1586^^^^^^^^^^^^^^^^^^^
1546 1587
1547The eight switches in SW2 are used to set the node ID. Each node attached1588The eight switches in SW2 are used to set the node ID. Each node attached
1548to the network must have an unique node ID which must be different from 0.1589to the network must have an unique node ID which must be different from 0.
1549Switch 1 (ID0) serves as the least significant bit (LSB).1590Switch 1 (ID0) serves as the least significant bit (LSB).
1550 1591
1551The node ID is the sum of the values of all switches set to "1" 1592The node ID is the sum of the values of all switches set to "1"
1552These values are:1593These values are::
1553 1594
1554 Switch | Label | Value1595 Switch | Label | Value
1555 -------|-------|-------1596 -------|-------|-------
@@ -1562,32 +1603,32 @@ These values are: · 6 unmodified lines
1562 7 | ID6 | 641603 7 | ID6 | 64
1563 8 | ID7 | 1281604 8 | ID7 | 128
1564 1605
1565Some Examples:1606Some Examples::
1566 1607
1567 Switch | Hex | Decimal 1608 Switch | Hex | Decimal
1568 8 7 6 5 4 3 2 1 | Node ID | Node ID1609 8 7 6 5 4 3 2 1 | Node ID | Node ID
1569 ----------------|---------|---------1610 ----------------|---------|---------
1570 0 0 0 0 0 0 0 0 | not allowed1611 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
1572 0 0 0 0 0 0 1 0 | 2 | 21613 0 0 0 0 0 0 1 0 | 2 | 2
1573 0 0 0 0 0 0 1 1 | 3 | 31614 0 0 0 0 0 0 1 1 | 3 | 3
1574 . . . | |1615 . . . | |
1575 0 1 0 1 0 1 0 1 | 55 | 851616 0 1 0 1 0 1 0 1 | 55 | 85
1576 . . . | |1617 . . . | |
1577 1 0 1 0 1 0 1 0 | AA | 1701618 1 0 1 0 1 0 1 0 | AA | 170
1578 . . . | | 1619 . . . | |
1579 1 1 1 1 1 1 0 1 | FD | 2531620 1 1 1 1 1 1 0 1 | FD | 253
1580 1 1 1 1 1 1 1 0 | FE | 2541621 1 1 1 1 1 1 1 0 | FE | 254
1581 1 1 1 1 1 1 1 1 | FF | 2551622 1 1 1 1 1 1 1 1 | FF | 255
1582 1623
1583 1624
1584Setting the I/O Base Address1625Setting the I/O Base Address
1585----------------------------1626^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1586 1627
1587The first six switches in switch block SW1 are used to select the I/O Base1628The first six switches in switch block SW1 are used to select the I/O Base
1588address using the following table:1629address using the following table::
1589 1630
1590 Switch | Hex I/O1631 Switch | Hex I/O
1591 1 2 3 4 5 6 | Address1632 1 2 3 4 5 6 | Address
1592 ------------------------|--------1633 ------------------------|--------
1593 OFF ON ON OFF OFF ON | 2601634 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
1604 1645
1605 1646
1606Setting the Base Memory (RAM) buffer Address1647Setting the Base Memory (RAM) buffer Address
1607--------------------------------------------1648^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1608 1649
1609The switches 7-10 of switch block SW1 are used to select the Memory1650The switches 7-10 of switch block SW1 are used to select the Memory
1610Base address of the RAM (2K) and the PROM.1651Base address of the RAM (2K) and the PROM::
1611 1652
1612 Switch | Hex RAM | Hex ROM1653 Switch | Hex RAM | Hex ROM
1613 7 8 9 10 | Address | Address1654 7 8 9 10 | Address | Address
@@ -1616,17 +1657,19 @@ Base address of the RAM (2K) and the PROM. · 2 unmodified lines
1616 OFF OFF ON OFF | D0000 | D8000 (Default)1657 OFF OFF ON OFF | D0000 | D8000 (Default)
1617 OFF OFF OFF ON | E0000 | E80001658 OFF OFF OFF ON | E0000 | E8000
1618 1659
1619Note: Other MEM-Base addresses seem to be selectable, but only the above1660.. note::
1661
1662 Other MEM-Base addresses seem to be selectable, but only the above
1620 combinations are documented.1663 combinations are documented.
1621 1664
1622 1665
1623Setting the Interrupt Line1666Setting the Interrupt Line
1624--------------------------1667^^^^^^^^^^^^^^^^^^^^^^^^^^
1625 1668
1626To select a hardware interrupt level install one (only one!) of the jumpers1669To select a hardware interrupt level install one (only one!) of the jumpers
1627JP3 through JP13 using the following table:1670JP3 through JP13 using the following table::
1628 1671
1629 Jumper | IRQ 1672 Jumper | IRQ
1630 -------|-----------------1673 -------|-----------------
1631 3 | 141674 3 | 14
1632 4 | 151675 4 | 15
@@ -1640,10 +1683,12 @@ JP3 through JP13 using the following table: · 7 unmodified lines
1640 12 | 71683 12 | 7
1641 13 | 2 (=9) Default!1684 13 | 2 (=9) Default!
1642 1685
1643Note: - Do not use JP11=IRQ6, it may conflict with your Floppy Disk1686.. note::
1644 Controller1687
1688 - Do not use JP11=IRQ6, it may conflict with your Floppy Disk
1689 Controller
1645 - Use JP3=IRQ14 only, if you don't have an IDE-, MFM-, or RLL-1690 - Use JP3=IRQ14 only, if you don't have an IDE-, MFM-, or RLL-
1646 Hard Disk, it may conflict with their controllers1691 Hard Disk, it may conflict with their controllers
1647 1692
1648 1693
1649Setting the Timeout Parameters1694Setting the Timeout Parameters
@@ -1653,14 +1698,16 @@ The jumpers labeled JP1 and JP2 are used to determine the timeout · 3 unmodified lines
1653parameters. These two jumpers are normally left open.1698parameters. These two jumpers are normally left open.
1654 1699
1655 1700
1656*****************************************************************************1701Lantech
1702=======
1657 1703
1658** Lantech **
16598-bit card, unknown model17048-bit card, unknown model
1660-------------------------1705-------------------------
1661 - from Vlad Lungu <vlungu@ugal.ro> - his e-mail address seemed broken at1706 - from Vlad Lungu <vlungu@ugal.ro> - his e-mail address seemed broken at
1662 the time I tried to reach him. Sorry Vlad, if you didn't get my reply.1707 the time I tried to reach him. Sorry Vlad, if you didn't get my reply.
1663 1708
1709::
1710
1664 ________________________________________________________________1711 ________________________________________________________________
1665 | 1 8 |1712 | 1 8 |
1666 | ___________ __|1713 | ___________ __|
@@ -1683,25 +1730,27 @@ parameters. These two jumpers are normally left open. · 16 unmodified lines
1683 | | PROM | |ooooo| JP6 |1730 | | PROM | |ooooo| JP6 |
1684 | |____________| |ooooo| |1731 | |____________| |ooooo| |
1685 |_____________ _ _|1732 |_____________ _ _|
1686 |____________________________________________| |__|1733 |____________________________________________| |__|
1687 1734
1688 1735
1689UM9065L : ARCnet Controller1736UM9065L : ARCnet Controller
1690 1737
1691SW 1 : Shared Memory Address and I/O Base1738SW 1 : Shared Memory Address and I/O Base
1692 1739
1693 ON=01740::
1694 1741
1695 12345|Memory Address1742 ON=0
1696 -----|--------------1743
1697 00001| D40001744 12345|Memory Address
1698 00010| CC0001745 -----|--------------
1699 00110| D00001746 00001| D4000
1700 01110| D10001747 00010| CC000
1701 01101| D90001748 00110| D0000
1702 10010| CC8001749 01110| D1000
1703 10011| DC8001750 01101| D9000
1704 11110| D18001751 10010| CC800
1752 10011| DC800
1753 11110| D1800
1705 1754
1706It seems that the bits are considered in reverse order. Also, you must1755It seems that the bits are considered in reverse order. Also, you must
1707observe that some of those addresses are unusual and I didn't probe them; I1756observe 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
1710video card (an S3 GENDAC). I leave the full decoding of those addresses to1759video card (an S3 GENDAC). I leave the full decoding of those addresses to
1711you.1760you.
1712 1761
1713 678| I/O Address1762::
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
1723 1763
1724SW 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
1725 1774
1726JP 4 : Boot PROM enable CLOSE - enabled1775 SW 2 : Node ID (binary coded)
1727 OPEN - disabled
1728 1776
1729JP 6 : IRQ set (ONLY ONE jumper on 1-5 for IRQ 2-6)1777 JP 4 : Boot PROM enable CLOSE - enabled
1778 OPEN - disabled
1730 1779
1780 JP 6 : IRQ set (ONLY ONE jumper on 1-5 for IRQ 2-6)
1731 1781
1732*****************************************************************************
1733 1782
1734** Acer **1783Acer
1784====
1785
17358-bit card, Model 5210-00317868-bit card, Model 5210-003
1736--------------------------1787--------------------------
1788
1737 - from Vojtech Pavlik <vojtech@suse.cz> using portions of the existing1789 - from Vojtech Pavlik <vojtech@suse.cz> using portions of the existing
1738 arcnet-hardware file.1790 arcnet-hardware file.
1739 1791
1740This is a 90C26 based card. Its configuration seems similar to the SMC1792This is a 90C26 based card. Its configuration seems similar to the SMC
1741PC100, but has some additional jumpers I don't know the meaning of.1793PC100, but has some additional jumpers I don't know the meaning of.
1742 1794
1743 __1795::
1744 | |1796
1797 __
1798 | |
1745 ___________|__|_________________________1799 ___________|__|_________________________
1746 | | | |1800 | | | |
1747 | | BNC | |1801 | | BNC | |
1748 | |______| ___|1802 | |______| ___|
1749 | _____________________ |___ 1803 | _____________________ |___
1750 | | | |1804 | | | |
1751 | | Hybrid IC | |1805 | | Hybrid IC | |
1752 | | | o|o J1 |1806 | | | o|o J1 |
@@ -1762,51 +1816,51 @@ PC100, but has some additional jumpers I don't know the meaning of. · 9 unmodified lines
1762 | _____ |1816 | _____ |
1763 | | | _____ |1817 | | | _____ |
1764 | | | | | ___|1818 | | | | | ___|
1765 | | | | | | 1819 | | | | | |
1766 | _____ | ROM | | UFS | | 1820 | _____ | ROM | | UFS | |
1767 | | | | | | | | 1821 | | | | | | | |
1768 | | | ___ | | | | | 1822 | | | ___ | | | | |
1769 | | | | | |__.__| |__.__| | 1823 | | | | | |__.__| |__.__| |
1770 | | NCR | |XTL| _____ _____ | 1824 | | NCR | |XTL| _____ _____ |
1771 | | | |___| | | | | | 1825 | | | |___| | | | | |
1772 | |90C26| | | | | | 1826 | |90C26| | | | | |
1773 | | | | RAM | | UFS | | 1827 | | | | RAM | | UFS | |
1774 | | | J17 o|o | | | | | 1828 | | | J17 o|o | | | | |
1775 | | | J16 o|o | | | | | 1829 | | | J16 o|o | | | | |
1776 | |__.__| |__.__| |__.__| | 1830 | |__.__| |__.__| |__.__| |
1777 | ___ | 1831 | ___ |
1778 | | |8 | 1832 | | |8 |
1779 | |SW2| | 1833 | |SW2| |
1780 | | | | 1834 | | | |
1781 | |___|1 | 1835 | |___|1 |
1782 | ___ | 1836 | ___ |
1783 | | |10 J18 o|o | 1837 | | |10 J18 o|o |
1784 | | | o|o | 1838 | | | o|o |
1785 | |SW1| o|o | 1839 | |SW1| o|o |
1786 | | | J21 o|o | 1840 | | | J21 o|o |
1787 | |___|1 | 1841 | |___|1 |
1788 | | 1842 | |
1789 |____________________________________| 1843 |____________________________________|
1790 1844
1791 1845
1792Legend:1846Legend::
1793 1847
179490C26 ARCNET Chip1848 90C26 ARCNET Chip
1795XTL 20 MHz Crystal1849 XTL 20 MHz Crystal
1796SW1 1-6 Base I/O Address Select1850 SW1 1-6 Base I/O Address Select
1797 7-10 Memory Address Select1851 7-10 Memory Address Select
1798SW2 1-8 Node ID Select (ID0-ID7)1852 SW2 1-8 Node ID Select (ID0-ID7)
1799J1-J5 IRQ Select1853 J1-J5 IRQ Select
1800J6-J21 Unknown (Probably extra timeouts & ROM enable ...)1854 J6-J21 Unknown (Probably extra timeouts & ROM enable ...)
1801LED1 Activity LED 1855 LED1 Activity LED
1802BNC Coax connector (STAR ARCnet)1856 BNC Coax connector (STAR ARCnet)
1803RAM 2k of SRAM1857 RAM 2k of SRAM
1804ROM Boot ROM socket1858 ROM Boot ROM socket
1805UFS Unidentified Flying Sockets1859 UFS Unidentified Flying Sockets
1806 1860
1807 1861
1808Setting the Node ID1862Setting the Node ID
1809-------------------1863^^^^^^^^^^^^^^^^^^^
1810 1864
1811The eight switches in SW2 are used to set the node ID. Each node attached1865The eight switches in SW2 are used to set the node ID. Each node attached
1812to the network must have an unique node ID which must not be 0.1866to 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
1815Setting one of the switches to OFF means "1", ON means "0".1869Setting one of the switches to OFF means "1", ON means "0".
1816 1870
1817The node ID is the sum of the values of all switches set to "1"1871The node ID is the sum of the values of all switches set to "1"
1818These values are:1872These values are::
1819 1873
1820 Switch | Value1874 Switch | Value
1821 -------|-------1875 -------|-------
@@ -1832,40 +1886,40 @@ Don't set this to 0 or 255; these values are reserved. · 10 unmodified lines
1832 1886
1833 1887
1834Setting the I/O Base Address1888Setting the I/O Base Address
1835----------------------------1889^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1836 1890
1837The switches 1 to 6 of switch block SW1 are used to select one1891The switches 1 to 6 of switch block SW1 are used to select one
1838of 32 possible I/O Base addresses using the following tables1892of 32 possible I/O Base addresses using the following tables::
1839 1893
1840 | Hex1894 | Hex
1841 Switch | Value1895 Switch | Value
1842 -------|-------1896 -------|-------
1843 1 | 200 1897 1 | 200
1844 2 | 100 1898 2 | 100
1845 3 | 80 1899 3 | 80
1846 4 | 40 1900 4 | 40
1847 5 | 20 1901 5 | 20
1848 6 | 10 1902 6 | 10
1849 1903
1850The I/O address is sum of all switches set to "1". Remember that1904The I/O address is sum of all switches set to "1". Remember that
1851the I/O address space bellow 0x200 is RESERVED for mainboard, so1905the I/O address space bellow 0x200 is RESERVED for mainboard, so
1852switch 1 should be ALWAYS SET TO OFF. 1906switch 1 should be ALWAYS SET TO OFF.
1853 1907
1854 1908
1855Setting the Base Memory (RAM) buffer Address1909Setting the Base Memory (RAM) buffer Address
1856--------------------------------------------1910^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1857 1911
1858The memory buffer (RAM) requires 2K. The base of this buffer can be1912The memory buffer (RAM) requires 2K. The base of this buffer can be
1859located in any of sixteen positions. However, the addresses below1913located in any of sixteen positions. However, the addresses below
1860A0000 are likely to cause system hang because there's main RAM.1914A0000 are likely to cause system hang because there's main RAM.
1861 1915
1862Jumpers 7-10 of switch block SW1 select the Memory Base address.1916Jumpers 7-10 of switch block SW1 select the Memory Base address::
1863 1917
1864 Switch | Hex RAM1918 Switch | Hex RAM
1865 7 8 9 10 | Address1919 7 8 9 10 | Address
1866 ----------------|---------1920 ----------------|---------
1867 OFF OFF OFF OFF | F0000 (conflicts with main BIOS)1921 OFF OFF OFF OFF | F0000 (conflicts with main BIOS)
1868 OFF OFF OFF ON | E0000 1922 OFF OFF OFF ON | E0000
1869 OFF OFF ON OFF | D00001923 OFF OFF ON OFF | D0000
1870 OFF OFF ON ON | C0000 (conflicts with video BIOS)1924 OFF OFF ON ON | C0000 (conflicts with video BIOS)
1871 OFF ON OFF OFF | B0000 (conflicts with mono video)1925 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
1873 1927
1874 1928
1875Setting the Interrupt Line1929Setting the Interrupt Line
1876--------------------------1930^^^^^^^^^^^^^^^^^^^^^^^^^^
1877 1931
1878Jumpers 1-5 of the jumper block J1 control the IRQ level. ON means 1932Jumpers 1-5 of the jumper block J1 control the IRQ level. ON means
1879shorted, OFF means open.1933shorted, OFF means open::
1880 1934
1881 Jumper | IRQ1935 Jumper | IRQ
1882 1 2 3 4 5 |1936 1 2 3 4 5 |
@@ -1889,65 +1943,67 @@ shorted, OFF means open. · 6 unmodified lines
1889 1943
1890 1944
1891Unknown jumpers & sockets1945Unknown jumpers & sockets
1892-------------------------1946^^^^^^^^^^^^^^^^^^^^^^^^^
1893 1947
1894I know nothing about these. I just guess that J16&J17 are timeout1948I know nothing about these. I just guess that J16&J17 are timeout
1895jumpers and maybe one of J18-J21 selects ROM. Also J6-J10 and1949jumpers and maybe one of J18-J21 selects ROM. Also J6-J10 and
1896J11-J15 are connecting IRQ2-7 to some pins on the UFSs. I can't1950J11-J15 are connecting IRQ2-7 to some pins on the UFSs. I can't
1897guess the purpose.1951guess the purpose.
1898 1952
1953Datapoint?
1954==========
1899 1955
1900*****************************************************************************
1901
1902** Datapoint? **
1903LAN-ARC-8, an 8-bit card1956LAN-ARC-8, an 8-bit card
1904------------------------1957------------------------
1958
1905 - from Vojtech Pavlik <vojtech@suse.cz>1959 - from Vojtech Pavlik <vojtech@suse.cz>
1906 1960
1907This is another SMC 90C65-based ARCnet card. I couldn't identify the1961This is another SMC 90C65-based ARCnet card. I couldn't identify the
1908manufacturer, but it might be DataPoint, because the card has the1962manufacturer, but it might be DataPoint, because the card has the
1909original arcNet logo in its upper right corner.1963original arcNet logo in its upper right corner.
1910 1964
1911 _______________________________________________________1965::
1912 | _________ |1966
1913 | | SW2 | ON arcNet |1967 _______________________________________________________
1914 | |_________| OFF ___|1968 | _________ |
1915 | _____________ 1 ______ 8 | | 8 1969 | | SW2 | ON arcNet |
1916 | | | SW1 | XTAL | ____________ | S | 1970 | |_________| OFF ___|
1917 | > RAM (2k) | |______|| | | W | 1971 | _____________ 1 ______ 8 | | 8
1918 | |_____________| | H | | 3 | 1972 | | | SW1 | XTAL | ____________ | S |
1919 | _________|_____ y | |___| 1 1973 | > RAM (2k) | |______|| | | W |
1920 | _________ | | |b | | 1974 | |_____________| | H | | 3 |
1921 | |_________| | | |r | | 1975 | _________|_____ y | |___| 1
1922 | | SMC | |i | | 1976 | _________ | | |b | |
1923 | | 90C65| |d | | 1977 | |_________| | | |r | |
1924 | _________ | | | | |1978 | | SMC | |i | |
1925 | | SW1 | ON | | |I | |1979 | | 90C65| |d | |
1926 | |_________| OFF |_________|_____/C | _____|1980 | _________ | | | | |
1927 | 1 8 | | | |___1981 | | SW1 | ON | | |I | |
1928 | ______________ | | | BNC |___|1982 | |_________| OFF |_________|_____/C | _____|
1929 | | | |____________| |_____|1983 | 1 8 | | | |___
1930 | > EPROM SOCKET | _____________ |1984 | ______________ | | | BNC |___|
1931 | |______________| |_____________| |1985 | | | |____________| |_____|
1932 | ______________|1986 | > EPROM SOCKET | _____________ |
1933 | | 1987 | |______________| |_____________| |
1934 |________________________________________|1988 | ______________|
1935 1989 | |
1936Legend:1990 |________________________________________|
1937 1991
193890C65 ARCNET Chip 1992Legend::
1939SW1 1-5: Base Memory Address Select1993
1940 6-8: Base I/O Address Select1994 90C65 ARCNET Chip
1941SW2 1-8: Node ID Select1995 SW1 1-5: Base Memory Address Select
1942SW3 1-5: IRQ Select 1996 6-8: Base I/O Address Select
1943 6-7: Extra Timeout1997 SW2 1-8: Node ID Select
1944 8 : ROM Enable 1998 SW3 1-5: IRQ Select
1945BNC Coax connector1999 6-7: Extra Timeout
1946XTAL 20 MHz Crystal2000 8 : ROM Enable
2001 BNC Coax connector
2002 XTAL 20 MHz Crystal
1947 2003
1948 2004
1949Setting the Node ID2005Setting the Node ID
1950-------------------2006^^^^^^^^^^^^^^^^^^^
1951 2007
1952The eight switches in SW3 are used to set the node ID. Each node attached2008The eight switches in SW3 are used to set the node ID. Each node attached
1953to the network must have an unique node ID which must not be 0.2009to 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
1955 2011
1956Setting one of the switches to Off means "1", On means "0".2012Setting one of the switches to Off means "1", On means "0".
1957 2013
1958The node ID is the sum of the values of all switches set to "1" 2014The node ID is the sum of the values of all switches set to "1"
1959These values are:2015These values are::
1960 2016
1961 Switch | Value2017 Switch | Value
1962 -------|-------2018 -------|-------
@@ -1971,10 +2027,10 @@ These values are: · 8 unmodified lines
1971 2027
1972 2028
1973Setting the I/O Base Address2029Setting the I/O Base Address
1974----------------------------2030^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1975 2031
1976The last three switches in switch block SW1 are used to select one2032The last three switches in switch block SW1 are used to select one
1977of eight possible I/O Base addresses using the following table2033of eight possible I/O Base addresses using the following table::
1978 2034
1979 2035
1980 Switch | Hex I/O2036 Switch | Hex I/O
@@ -1991,13 +2047,16 @@ of eight possible I/O Base addresses using the following table · 10 unmodified lines
1991 2047
1992 2048
1993Setting the Base Memory (RAM) buffer Address2049Setting the Base Memory (RAM) buffer Address
1994--------------------------------------------2050^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1995 2051
1996The memory buffer (RAM) requires 2K. The base of this buffer can be 2052The memory buffer (RAM) requires 2K. The base of this buffer can be
1997located in any of eight positions. The address of the Boot Prom is2053located in any of eight positions. The address of the Boot Prom is
1998memory base + 0x2000.2054memory base + 0x2000.
2055
1999Jumpers 3-5 of switch block SW1 select the Memory Base address.2056Jumpers 3-5 of switch block SW1 select the Memory Base address.
2000 2057
2058::
2059
2001 Switch | Hex RAM | Hex ROM2060 Switch | Hex RAM | Hex ROM
2002 1 2 3 4 5 | Address | Address *)2061 1 2 3 4 5 | Address | Address *)
2003 --------------------|---------|-----------2062 --------------------|---------|-----------
@@ -2009,16 +2068,16 @@ Jumpers 3-5 of switch block SW1 select the Memory Base address. · 5 unmodified lines
2009 ON ON OFF ON OFF | D8000 | DA0002068 ON ON OFF ON OFF | D8000 | DA000
2010 ON ON ON OFF OFF | DC000 | DE0002069 ON ON ON OFF OFF | DC000 | DE000
2011 ON ON OFF OFF OFF | E0000 | E20002070 ON ON OFF OFF OFF | E0000 | E2000
2012 2071
2013*) To enable the Boot ROM set the switch 8 of switch block SW3 to position ON.2072 *) To enable the Boot ROM set the switch 8 of switch block SW3 to position ON.
2014 2073
2015The switches 1 and 2 probably add 0x0800 and 0x1000 to RAM base address.2074The switches 1 and 2 probably add 0x0800 and 0x1000 to RAM base address.
2016 2075
2017 2076
2018Setting the Interrupt Line2077Setting the Interrupt Line
2019--------------------------2078^^^^^^^^^^^^^^^^^^^^^^^^^^
2020 2079
2021Switches 1-5 of the switch block SW3 control the IRQ level.2080Switches 1-5 of the switch block SW3 control the IRQ level::
2022 2081
2023 Jumper | IRQ2082 Jumper | IRQ
2024 1 2 3 4 5 |2083 1 2 3 4 5 |
@@ -2031,64 +2090,67 @@ Switches 1-5 of the switch block SW3 control the IRQ level. · 6 unmodified lines
2031 2090
2032 2091
2033Setting the Timeout Parameters2092Setting the Timeout Parameters
2034------------------------------2093^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2035 2094
2036The switches 6-7 of the switch block SW3 are used to determine the timeout2095The switches 6-7 of the switch block SW3 are used to determine the timeout
2037parameters. These two switches are normally left in the OFF position.2096parameters. These two switches are normally left in the OFF position.
2038 2097
2039 2098
2040*****************************************************************************2099Topware
2100=======
2041 2101
2042** Topware **
20438-bit card, TA-ARC/1021028-bit card, TA-ARC/10
2044-------------------------2103---------------------
2104
2045 - from Vojtech Pavlik <vojtech@suse.cz>2105 - from Vojtech Pavlik <vojtech@suse.cz>
2046 2106
2047This is another very similar 90C65 card. Most of the switches and jumpers2107This is another very similar 90C65 card. Most of the switches and jumpers
2048are the same as on other clones.2108are the same as on other clones.
2049 2109
2050 _____________________________________________________________________2110::
2051| ___________ | | ______ |2111
2052| |SW2 NODE ID| | | | XTAL | |2112 _____________________________________________________________________
2053| |___________| | Hybrid IC | |______| |2113 | ___________ | | ______ |
2054| ___________ | | __| 2114 | |SW2 NODE ID| | | | XTAL | |
2055| |SW1 MEM+I/O| |_________________________| LED1|__|) 2115 | |___________| | Hybrid IC | |______| |
2056| |___________| 1 2 | 2116 | ___________ | | __|
2057| J3 |o|o| TIMEOUT ______| 2117 | |SW1 MEM+I/O| |_________________________| LED1|__|)
2058| ______________ |o|o| | | 2118 | |___________| 1 2 |
2059| | | ___________________ | RJ | 2119 | J3 |o|o| TIMEOUT ______|
2060| > EPROM SOCKET | | \ |------| 2120 | ______________ |o|o| | |
2061|J2 |______________| | | | | 2121 | | | ___________________ | RJ |
2062||o| | | |______|2122 | > EPROM SOCKET | | \ |------|
2063||o| ROM ENABLE | SMC | _________ |2123 |J2 |______________| | | | |
2064| _____________ | 90C65 | |_________| _____| 2124 ||o| | | |______|
2065| | | | | | |___ 2125 ||o| ROM ENABLE | SMC | _________ |
2066| > RAM (2k) | | | | BNC |___|2126 | _____________ | 90C65 | |_________| _____|
2067| |_____________| | | |_____| 2127 | | | | | | |___
2068| |____________________| | 2128 | > RAM (2k) | | | | BNC |___|
2069| ________ IRQ 2 3 4 5 7 ___________ |2129 | |_____________| | | |_____|
2070||________| |o|o|o|o|o| |___________| |2130 | |____________________| |
2071|________ J1|o|o|o|o|o| ______________|2131 | ________ IRQ 2 3 4 5 7 ___________ |
2072 | |2132 ||________| |o|o|o|o|o| |___________| |
2073 |_____________________________________________|2133 |________ J1|o|o|o|o|o| ______________|
2074 2134 | |
2075Legend:2135 |_____________________________________________|
2076 2136
207790C65 ARCNET Chip2137Legend::
2078XTAL 20 MHz Crystal2138
2079SW1 1-5 Base Memory Address Select2139 90C65 ARCNET Chip
2080 6-8 Base I/O Address Select2140 XTAL 20 MHz Crystal
2081SW2 1-8 Node ID Select (ID0-ID7)2141 SW1 1-5 Base Memory Address Select
2082J1 IRQ Select2142 6-8 Base I/O Address Select
2083J2 ROM Enable2143 SW2 1-8 Node ID Select (ID0-ID7)
2084J3 Extra Timeout2144 J1 IRQ Select
2085LED1 Activity LED 2145 J2 ROM Enable
2086BNC Coax connector (BUS ARCnet)2146 J3 Extra Timeout
2087RJ Twisted Pair Connector (daisy chain)2147 LED1 Activity LED
2148 BNC Coax connector (BUS ARCnet)
2149 RJ Twisted Pair Connector (daisy chain)
2088 2150
2089 2151
2090Setting the Node ID2152Setting the Node ID
2091-------------------2153^^^^^^^^^^^^^^^^^^^
2092 2154
2093The eight switches in SW2 are used to set the node ID. Each node attached to2155The eight switches in SW2 are used to set the node ID. Each node attached to
2094the network must have an unique node ID which must not be 0. Switch 1 (ID0)2156the 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
2097Setting one of the switches to Off means "1", On means "0".2159Setting one of the switches to Off means "1", On means "0".
2098 2160
2099The node ID is the sum of the values of all switches set to "1"2161The node ID is the sum of the values of all switches set to "1"
2100These values are:2162These values are::
2101 2163
2102 Switch | Label | Value2164 Switch | Label | Value
2103 -------|-------|-------2165 -------|-------|-------
@@ -2111,10 +2173,10 @@ These values are: · 7 unmodified lines
2111 8 | ID7 | 1282173 8 | ID7 | 128
2112 2174
2113Setting the I/O Base Address2175Setting the I/O Base Address
2114----------------------------2176^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2115 2177
2116The last three switches in switch block SW1 are used to select one2178The last three switches in switch block SW1 are used to select one
2117of eight possible I/O Base addresses using the following table:2179of eight possible I/O Base addresses using the following table::
2118 2180
2119 2181
2120 Switch | Hex I/O2182 Switch | Hex I/O
@@ -2122,7 +2184,7 @@ of eight possible I/O Base addresses using the following table: · 1 unmodified line
2122 ------------|--------2184 ------------|--------
2123 ON ON ON | 260 (Manufacturer's default)2185 ON ON ON | 260 (Manufacturer's default)
2124 OFF ON ON | 2902186 OFF ON ON | 290
2125 ON OFF ON | 2E0 2187 ON OFF ON | 2E0
2126 OFF OFF ON | 2F02188 OFF OFF ON | 2F0
2127 ON ON OFF | 3002189 ON ON OFF | 300
2128 OFF ON OFF | 3502190 OFF ON OFF | 350
@@ -2131,35 +2193,38 @@ of eight possible I/O Base addresses using the following table: · 2 unmodified lines
2131 2193
2132 2194
2133Setting the Base Memory (RAM) buffer Address2195Setting the Base Memory (RAM) buffer Address
2134--------------------------------------------2196^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2135 2197
2136The memory buffer (RAM) requires 2K. The base of this buffer can be2198The memory buffer (RAM) requires 2K. The base of this buffer can be
2137located in any of eight positions. The address of the Boot Prom is2199located in any of eight positions. The address of the Boot Prom is
2138memory base + 0x2000.2200memory base + 0x2000.
2201
2139Jumpers 3-5 of switch block SW1 select the Memory Base address.2202Jumpers 3-5 of switch block SW1 select the Memory Base address.
2140 2203
2204::
2205
2141 Switch | Hex RAM | Hex ROM2206 Switch | Hex RAM | Hex ROM
2142 1 2 3 4 5 | Address | Address *)2207 1 2 3 4 5 | Address | Address *)
2143 --------------------|---------|-----------2208 --------------------|---------|-----------
2144 ON ON ON ON ON | C0000 | C20002209 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)
2146 ON ON ON OFF ON | CC000 | CE0002211 ON ON ON OFF ON | CC000 | CE000
2147 ON ON OFF OFF ON | D0000 | D2000 2212 ON ON OFF OFF ON | D0000 | D2000
2148 ON ON ON ON OFF | D4000 | D60002213 ON ON ON ON OFF | D4000 | D6000
2149 ON ON OFF ON OFF | D8000 | DA0002214 ON ON OFF ON OFF | D8000 | DA000
2150 ON ON ON OFF OFF | DC000 | DE0002215 ON ON ON OFF OFF | DC000 | DE000
2151 ON ON OFF OFF OFF | E0000 | E20002216 ON ON OFF OFF OFF | E0000 | E2000
2152 2217
2153*) To enable the Boot ROM short the jumper J2.2218 *) To enable the Boot ROM short the jumper J2.
2154 2219
2155The jumpers 1 and 2 probably add 0x0800 and 0x1000 to RAM address.2220The jumpers 1 and 2 probably add 0x0800 and 0x1000 to RAM address.
2156 2221
2157 2222
2158Setting the Interrupt Line2223Setting the Interrupt Line
2159--------------------------2224^^^^^^^^^^^^^^^^^^^^^^^^^^
2160 2225
2161Jumpers 1-5 of the jumper block J1 control the IRQ level. ON means2226Jumpers 1-5 of the jumper block J1 control the IRQ level. ON means
2162shorted, OFF means open.2227shorted, OFF means open::
2163 2228
2164 Jumper | IRQ2229 Jumper | IRQ
2165 1 2 3 4 5 |2230 1 2 3 4 5 |
@@ -2172,19 +2237,21 @@ shorted, OFF means open. · 6 unmodified lines
2172 2237
2173 2238
2174Setting the Timeout Parameters2239Setting the Timeout Parameters
2175------------------------------2240^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2176 2241
2177The jumpers J3 are used to set the timeout parameters. These two 2242The jumpers J3 are used to set the timeout parameters. These two
2178jumpers are normally left open.2243jumpers are normally left open.
2179 2244
2180 2245Thomas-Conrad
2181*****************************************************************************2246=============
2182 2247
2183** Thomas-Conrad **
2184Model #500-6242-0097 REV A (8-bit card)2248Model #500-6242-0097 REV A (8-bit card)
2185---------------------------------------2249---------------------------------------
2250
2186 - from Lars Karlsson <100617.3473@compuserve.com>2251 - from Lars Karlsson <100617.3473@compuserve.com>
2187 2252
2253::
2254
2188 ________________________________________________________2255 ________________________________________________________
2189 | ________ ________ |_____2256 | ________ ________ |_____
2190 | |........| |........| |2257 | |........| |........| |
@@ -2194,11 +2261,11 @@ Model #500-6242-0097 REV A (8-bit card) · 3 unmodified lines
2194 | address | |2261 | address | |
2195 | ______ switch | |2262 | ______ switch | |
2196 | | | | |2263 | | | | |
2197 | | | |___| 2264 | | | |___|
2198 | | | ______ |___._2265 | | | ______ |___._
2199 | |______| |______| ____| BNC2266 | |______| |______| ____| BNC
2200 | Jumper- _____| Connector2267 | Jumper- _____| Connector
2201 | Main chip block _ __| ' 2268 | Main chip block _ __| '
2202 | | | | RJ Connector2269 | | | | RJ Connector
2203 | |_| | with 110 Ohm2270 | |_| | with 110 Ohm
2204 | |__ Terminator2271 | |__ Terminator
@@ -2208,46 +2275,49 @@ Model #500-6242-0097 REV A (8-bit card) · 3 unmodified lines
2208 | |___________| |_____| |__2275 | |___________| |_____| |__
2209 | Boot PROM socket IRQ-jumpers |_ Diagnostic2276 | Boot PROM socket IRQ-jumpers |_ Diagnostic
2210 |________ __ _| LED (red)2277 |________ __ _| LED (red)
2211 | | | | | | | | | | | | | | | | | | | | | |2278 | | | | | | | | | | | | | | | | | | | | | |
2212 | | | | | | | | | | | | | | | | | | | | |________|2279 | | | | | | | | | | | | | | | | | | | | |________|
2213 |2280 |
2214 |2281 |
2215 2282
2216And here are the settings for some of the switches and jumpers on the cards.2283And here are the settings for some of the switches and jumpers on the cards.
2217 2284
2285::
2218 2286
2219 I/O2287 I/O
2220 2288
2221 1 2 3 4 5 6 7 82289 1 2 3 4 5 6 7 8
2222 2290
22232E0----- 0 0 0 1 0 0 0 12291 2E0----- 0 0 0 1 0 0 0 1
22242F0----- 0 0 0 1 0 0 0 02292 2F0----- 0 0 0 1 0 0 0 0
2225300----- 0 0 0 0 1 1 1 12293 300----- 0 0 0 0 1 1 1 1
2226350----- 0 0 0 0 1 1 1 02294 350----- 0 0 0 0 1 1 1 0
2227 2295
2228"0" in the above example means switch is off "1" means that it is on.2296"0" in the above example means switch is off "1" means that it is on.
2229 2297
2298::
2230 2299
2231 ShMem address.2300 ShMem address.
2232 2301
2233 1 2 3 4 5 6 7 82302 1 2 3 4 5 6 7 8
2234 2303
2235CX00--0 0 1 1 | | |2304 CX00--0 0 1 1 | | |
2236DX00--0 0 1 0 |2305 DX00--0 0 1 0 |
2237X000--------- 1 1 |2306 X000--------- 1 1 |
2238X400--------- 1 0 |2307 X400--------- 1 0 |
2239X800--------- 0 1 |2308 X800--------- 0 1 |
2240XC00--------- 0 0 2309 XC00--------- 0 0
2241ENHANCED----------- 12310 ENHANCED----------- 1
2242COMPATIBLE--------- 02311 COMPATIBLE--------- 0
2243 2312
2313::
2244 2314
2245 IRQ2315 IRQ
2246 2316
2247 2317
2248 3 4 5 7 22318 3 4 5 7 2
2249 . . . . .2319 . . . . .
2250 . . . . .2320 . . . . .
2251 2321
2252 2322
2253There is a DIP-switch with 8 switches, used to set the shared memory address2323There 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
2266enhance anything. Send me more detailed information about this mode, or2336enhance anything. Send me more detailed information about this mode, or
2267just use "compatible" mode instead.]2337just use "compatible" mode instead.]
2268 2338
2339Waterloo Microsystems Inc. ??
2340=============================
2269 2341
2270*****************************************************************************
2271
2272** Waterloo Microsystems Inc. ?? **
22738-bit card (C) 198523428-bit card (C) 1985
2274-------------------2343-------------------
2275 - from Robert Michael Best <rmb117@cs.usask.ca>2344 - from Robert Michael Best <rmb117@cs.usask.ca>
@@ -2283,103 +2352,104 @@ e-mail me.] · 7 unmodified lines
2283 2352
2284The probe has not been able to detect the card on any of the J2 settings,2353The probe has not been able to detect the card on any of the J2 settings,
2285and I tried them again with the "Waterloo" chip removed.2354and I tried them again with the "Waterloo" chip removed.
2286 2355
2287 _____________________________________________________________________2356::
2288| \/ \/ ___ __ __ |2357
2289| C4 C4 |^| | M || ^ ||^| |2358 _____________________________________________________________________
2290| -- -- |_| | 5 || || | C3 |2359 | \/ \/ ___ __ __ |
2291| \/ \/ C10 |___|| ||_| | 2360 | C4 C4 |^| | M || ^ ||^| |
2292| C4 C4 _ _ | | ?? | 2361 | -- -- |_| | 5 || || | C3 |
2293| -- -- | \/ || | | 2362 | \/ \/ C10 |___|| ||_| |
2294| | || | | 2363 | C4 C4 _ _ | | ?? |
2295| | || C1 | | 2364 | -- -- | \/ || | |
2296| | || | \/ _____| 2365 | | || | |
2297| | C6 || | C9 | |___ 2366 | | || C1 | |
2298| | || | -- | BNC |___| 2367 | | || | \/ _____|
2299| | || | >C7| |_____|2368 | | C6 || | C9 | |___
2300| | || | |2369 | | || | -- | BNC |___|
2301| __ __ |____||_____| 1 2 3 6 |2370 | | || | >C7| |_____|
2302|| ^ | >C4| |o|o|o|o|o|o| J2 >C4| |2371 | | || | |
2303|| | |o|o|o|o|o|o| |2372 | __ __ |____||_____| 1 2 3 6 |
2304|| C2 | >C4| >C4| |2373 || ^ | >C4| |o|o|o|o|o|o| J2 >C4| |
2305|| | >C8| |2374 || | |o|o|o|o|o|o| |
2306|| | 2 3 4 5 6 7 IRQ >C4| |2375 || C2 | >C4| >C4| |
2307||_____| |o|o|o|o|o|o| J3 |2376 || | >C8| |
2308|_______ |o|o|o|o|o|o| _______________|2377 || | 2 3 4 5 6 7 IRQ >C4| |
2309 | |2378 ||_____| |o|o|o|o|o|o| J3 |
2310 |_____________________________________________|2379 |_______ |o|o|o|o|o|o| _______________|
2311 2380 | |
2312C1 -- "COM90262381 |_____________________________________________|
2313 SMC 8638"2382
2314 In a chip socket.2383 C1 -- "COM9026
2315 2384 SMC 8638"
2316C2 -- "@Copyright2385 In a chip socket.
2317 Waterloo Microsystems Inc.2386
2318 1985"2387 C2 -- "@Copyright
2319 In a chip Socket with info printed on a label covering a round window2388 Waterloo Microsystems Inc.
2320 showing the circuit inside. (The window indicates it is an EPROM chip.)2389 1985"
2321 2390 In a chip Socket with info printed on a label covering a round window
2322C3 -- "COM90322391 showing the circuit inside. (The window indicates it is an EPROM chip.)
2323 SMC 8643"2392
2324 In a chip socket.2393 C3 -- "COM9032
2325 2394 SMC 8643"
2326C4 -- "74LS"2395 In a chip socket.
2327 9 total no sockets.2396
2328 2397 C4 -- "74LS"
2329M5 -- "50006-1362398 9 total no sockets.
2330 20.000000 MHZ2399
2331 MTQ-T1-S32400 M5 -- "50006-136
2332 0 M-TRON 86-40"2401 20.000000 MHZ
2333 Metallic case with 4 pins, no socket.2402 MTQ-T1-S3
2334 2403 0 M-TRON 86-40"
2335C6 -- "MOSTEK@TC86432404 Metallic case with 4 pins, no socket.
2336 MK6116N-202405
2337 MALAYSIA"2406 C6 -- "MOSTEK@TC8643
2338 No socket.2407 MK6116N-20
2339 2408 MALAYSIA"
2340C7 -- No stamp or label but in a 20 pin chip socket.2409 No socket.
2341 2410
2342C8 -- "PAL10L8CN2411 C7 -- No stamp or label but in a 20 pin chip socket.
2343 8623"2412
2344 In a 20 pin socket.2413 C8 -- "PAL10L8CN
2345 2414 8623"
2346C9 -- "PAl16R4A-2CN2415 In a 20 pin socket.
2347 8641"2416
2348 In a 20 pin socket.2417 C9 -- "PAl16R4A-2CN
2349 2418 8641"
2350C10 -- "M86402419 In a 20 pin socket.
2351 NMC2420
2352 9306N"2421 C10 -- "M8640
2353 In an 8 pin socket.2422 NMC
2354 2423 9306N"
2355?? -- Some components on a smaller board and attached with 20 pins all 2424 In an 8 pin socket.
2356 along the side closest to the BNC connector. The are coated in a dark 2425
2357 resin.2426 ?? -- Some components on a smaller board and attached with 20 pins all
2358 2427 along the side closest to the BNC connector. The are coated in a dark
2359On the board there are two jumper banks labeled J2 and J3. The 2428 resin.
2360manufacturer didn't put a J1 on the board. The two boards I have both 2429
2430On the board there are two jumper banks labeled J2 and J3. The
2431manufacturer didn't put a J1 on the board. The two boards I have both
2361came with a jumper box for each bank.2432came with a jumper box for each bank.
2362 2433
2363J2 -- Numbered 1 2 3 4 5 6. 2434::
2364 4 and 5 are not stamped due to solder points.2435
2365 2436 J2 -- Numbered 1 2 3 4 5 6.
2366J3 -- IRQ 2 3 4 5 6 72437 4 and 5 are not stamped due to solder points.
2438
2439 J3 -- IRQ 2 3 4 5 6 7
2367 2440
2368The board itself has a maple leaf stamped just above the irq jumpers 2441The board itself has a maple leaf stamped just above the irq jumpers
2369and "-2 46-86" beside C2. Between C1 and C6 "ASS 'Y 300163" and "@1986 2442and "-2 46-86" beside C2. Between C1 and C6 "ASS 'Y 300163" and "@1986
2370CORMAN CUSTOM ELECTRONICS CORP." stamped just below the BNC connector.2443CORMAN CUSTOM ELECTRONICS CORP." stamped just below the BNC connector.
2371Below that "MADE IN CANADA"2444Below that "MADE IN CANADA"
2372 2445
2373 2446No Name
2374*****************************************************************************2447=======
2375 2448
2376** No Name **
23778-bit cards, 16-bit cards24498-bit cards, 16-bit cards
2378-------------------------2450-------------------------
2451
2379 - from Juergen Seifert <seifert@htwm.de>2452 - from Juergen Seifert <seifert@htwm.de>
2380
2381NONAME 8-BIT ARCNET
2382===================
2383 2453
2384I have named this ARCnet card "NONAME", since there is no name of any2454I have named this ARCnet card "NONAME", since there is no name of any
2385manufacturer on the Installation manual nor on the shipping box. The only2455manufacturer on the Installation manual nor on the shipping box. The only
@@ -2388,8 +2458,10 @@ it is "Made in Taiwan" · 2 unmodified lines
2388 2458
2389This description has been written by Juergen Seifert <seifert@htwm.de>2459This description has been written by Juergen Seifert <seifert@htwm.de>
2390using information from the Original2460using information from the Original
2391 "ARCnet Installation Manual"
2392 2461
2462 "ARCnet Installation Manual"
2463
2464::
2393 2465
2394 ________________________________________________________________2466 ________________________________________________________________
2395 | |STAR| BUS| T/P| |2467 | |STAR| BUS| T/P| |
@@ -2416,32 +2488,32 @@ using information from the Original · 20 unmodified lines
2416 | \ IRQ / T T O |2488 | \ IRQ / T T O |
2417 |__________________1_2_M______________________|2489 |__________________1_2_M______________________|
2418 2490
2419Legend:2491Legend::
2420 2492
2421COM90C65: ARCnet Probe2493 COM90C65: ARCnet Probe
2422S1 1-8: Node ID Select2494 S1 1-8: Node ID Select
2423S2 1-3: I/O Base Address Select2495 S2 1-3: I/O Base Address Select
2424 4-6: Memory Base Address Select2496 4-6: Memory Base Address Select
2425 7-8: RAM Offset Select2497 7-8: RAM Offset Select
2426ET1, ET2 Extended Timeout Select2498 ET1, ET2 Extended Timeout Select
2427ROM ROM Enable Select2499 ROM ROM Enable Select
2428CN RG62 Coax Connector2500 CN RG62 Coax Connector
2429STAR| BUS | T/P Three fields for placing a sign (colored circle)2501 STAR| BUS | T/P Three fields for placing a sign (colored circle)
2430 indicating the topology of the card2502 indicating the topology of the card
2431 2503
2432Setting one of the switches to Off means "1", On means "0".2504Setting one of the switches to Off means "1", On means "0".
2433 2505
2434 2506
2435Setting the Node ID2507Setting the Node ID
2436-------------------2508^^^^^^^^^^^^^^^^^^^
2437 2509
2438The eight switches in group SW1 are used to set the node ID.2510The eight switches in group SW1 are used to set the node ID.
2439Each node attached to the network must have an unique node ID which2511Each node attached to the network must have an unique node ID which
2440must be different from 0.2512must be different from 0.
2441Switch 8 serves as the least significant bit (LSB).2513Switch 8 serves as the least significant bit (LSB).
2442 2514
2443The node ID is the sum of the values of all switches set to "1" 2515The node ID is the sum of the values of all switches set to "1"
2444These values are:2516These values are::
2445 2517
2446 Switch | Value2518 Switch | Value
2447 -------|-------2519 -------|-------
@@ -2454,30 +2526,30 @@ These values are: · 6 unmodified lines
2454 2 | 642526 2 | 64
2455 1 | 1282527 1 | 128
2456 2528
2457Some Examples:2529Some Examples::
2458 2530
2459 Switch | Hex | Decimal 2531 Switch | Hex | Decimal
2460 1 2 3 4 5 6 7 8 | Node ID | Node ID2532 1 2 3 4 5 6 7 8 | Node ID | Node ID
2461 ----------------|---------|---------2533 ----------------|---------|---------
2462 0 0 0 0 0 0 0 0 | not allowed2534 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
2464 0 0 0 0 0 0 1 0 | 2 | 22536 0 0 0 0 0 0 1 0 | 2 | 2
2465 0 0 0 0 0 0 1 1 | 3 | 32537 0 0 0 0 0 0 1 1 | 3 | 3
2466 . . . | |2538 . . . | |
2467 0 1 0 1 0 1 0 1 | 55 | 852539 0 1 0 1 0 1 0 1 | 55 | 85
2468 . . . | |2540 . . . | |
2469 1 0 1 0 1 0 1 0 | AA | 1702541 1 0 1 0 1 0 1 0 | AA | 170
2470 . . . | | 2542 . . . | |
2471 1 1 1 1 1 1 0 1 | FD | 2532543 1 1 1 1 1 1 0 1 | FD | 253
2472 1 1 1 1 1 1 1 0 | FE | 2542544 1 1 1 1 1 1 1 0 | FE | 254
2473 1 1 1 1 1 1 1 1 | FF | 2552545 1 1 1 1 1 1 1 1 | FF | 255
2474 2546
2475 2547
2476Setting the I/O Base Address2548Setting the I/O Base Address
2477----------------------------2549^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2478 2550
2479The first three switches in switch group SW2 are used to select one2551The first three switches in switch group SW2 are used to select one
2480of eight possible I/O Base addresses using the following table2552of eight possible I/O Base addresses using the following table::
2481 2553
2482 Switch | Hex I/O2554 Switch | Hex I/O
2483 1 2 3 | Address2555 1 2 3 | Address
@@ -2493,7 +2565,7 @@ of eight possible I/O Base addresses using the following table · 9 unmodified lines
2493 2565
2494 2566
2495Setting the Base Memory (RAM) buffer Address2567Setting the Base Memory (RAM) buffer Address
2496--------------------------------------------2568^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2497 2569
2498The memory buffer requires 2K of a 16K block of RAM. The base of this2570The memory buffer requires 2K of a 16K block of RAM. The base of this
249916K block can be located in any of eight positions.257116K 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
2501Within that 16K address space, the buffer may be assigned any one of four2573Within that 16K address space, the buffer may be assigned any one of four
2502positions, determined by the offset, switches 7 and 8 of group SW2.2574positions, determined by the offset, switches 7 and 8 of group SW2.
2503 2575
2576::
2577
2504 Switch | Hex RAM | Hex ROM2578 Switch | Hex RAM | Hex ROM
2505 4 5 6 7 8 | Address | Address *)2579 4 5 6 7 8 | Address | Address *)
2506 -----------|---------|-----------2580 -----------|---------|-----------
@@ -2508,60 +2582,62 @@ positions, determined by the offset, switches 7 and 8 of group SW2. · 1 unmodified line
2508 0 0 0 0 1 | C0800 | C20002582 0 0 0 0 1 | C0800 | C2000
2509 0 0 0 1 0 | C1000 | C20002583 0 0 0 1 0 | C1000 | C2000
2510 0 0 0 1 1 | C1800 | C20002584 0 0 0 1 1 | C1800 | C2000
2511 | |2585 | |
2512 0 0 1 0 0 | C4000 | C60002586 0 0 1 0 0 | C4000 | C6000
2513 0 0 1 0 1 | C4800 | C60002587 0 0 1 0 1 | C4800 | C6000
2514 0 0 1 1 0 | C5000 | C60002588 0 0 1 1 0 | C5000 | C6000
2515 0 0 1 1 1 | C5800 | C60002589 0 0 1 1 1 | C5800 | C6000
2516 | |2590 | |
2517 0 1 0 0 0 | CC000 | CE0002591 0 1 0 0 0 | CC000 | CE000
2518 0 1 0 0 1 | CC800 | CE0002592 0 1 0 0 1 | CC800 | CE000
2519 0 1 0 1 0 | CD000 | CE0002593 0 1 0 1 0 | CD000 | CE000
2520 0 1 0 1 1 | CD800 | CE0002594 0 1 0 1 1 | CD800 | CE000
2521 | |2595 | |
2522 0 1 1 0 0 | D0000 | D2000 (Manufacturer's default)2596 0 1 1 0 0 | D0000 | D2000 (Manufacturer's default)
2523 0 1 1 0 1 | D0800 | D20002597 0 1 1 0 1 | D0800 | D2000
2524 0 1 1 1 0 | D1000 | D20002598 0 1 1 1 0 | D1000 | D2000
2525 0 1 1 1 1 | D1800 | D20002599 0 1 1 1 1 | D1800 | D2000
2526 | |2600 | |
2527 1 0 0 0 0 | D4000 | D60002601 1 0 0 0 0 | D4000 | D6000
2528 1 0 0 0 1 | D4800 | D60002602 1 0 0 0 1 | D4800 | D6000
2529 1 0 0 1 0 | D5000 | D60002603 1 0 0 1 0 | D5000 | D6000
2530 1 0 0 1 1 | D5800 | D60002604 1 0 0 1 1 | D5800 | D6000
2531 | |2605 | |
2532 1 0 1 0 0 | D8000 | DA0002606 1 0 1 0 0 | D8000 | DA000
2533 1 0 1 0 1 | D8800 | DA0002607 1 0 1 0 1 | D8800 | DA000
2534 1 0 1 1 0 | D9000 | DA0002608 1 0 1 1 0 | D9000 | DA000
2535 1 0 1 1 1 | D9800 | DA0002609 1 0 1 1 1 | D9800 | DA000
2536 | |2610 | |
2537 1 1 0 0 0 | DC000 | DE0002611 1 1 0 0 0 | DC000 | DE000
2538 1 1 0 0 1 | DC800 | DE0002612 1 1 0 0 1 | DC800 | DE000
2539 1 1 0 1 0 | DD000 | DE0002613 1 1 0 1 0 | DD000 | DE000
2540 1 1 0 1 1 | DD800 | DE0002614 1 1 0 1 1 | DD800 | DE000
2541 | |2615 | |
2542 1 1 1 0 0 | E0000 | E20002616 1 1 1 0 0 | E0000 | E2000
2543 1 1 1 0 1 | E0800 | E20002617 1 1 1 0 1 | E0800 | E2000
2544 1 1 1 1 0 | E1000 | E20002618 1 1 1 1 0 | E1000 | E2000
2545 1 1 1 1 1 | E1800 | E20002619 1 1 1 1 1 | E1800 | E2000
2546 2620
2547*) To enable the 8K Boot PROM install the jumper ROM.2621 *) To enable the 8K Boot PROM install the jumper ROM.
2548 The default is jumper ROM not installed.2622 The default is jumper ROM not installed.
2549 2623
2550 2624
2551Setting Interrupt Request Lines (IRQ)2625Setting Interrupt Request Lines (IRQ)
2552-------------------------------------2626^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2553 2627
2554To select a hardware interrupt level set one (only one!) of the jumpers2628To select a hardware interrupt level set one (only one!) of the jumpers
2555IRQ2, IRQ3, IRQ4, IRQ5 or IRQ7. The manufacturer's default is IRQ2.2629IRQ2, IRQ3, IRQ4, IRQ5 or IRQ7. The manufacturer's default is IRQ2.
2556 2630
2557 2631
2558Setting the Timeouts2632Setting the Timeouts
2559--------------------2633^^^^^^^^^^^^^^^^^^^^
2560 2634
2561The two jumpers labeled ET1 and ET2 are used to determine the timeout2635The two jumpers labeled ET1 and ET2 are used to determine the timeout
2562parameters (response and reconfiguration time). Every node in a network2636parameters (response and reconfiguration time). Every node in a network
2563must be set to the same timeout values.2637must be set to the same timeout values.
2564 2638
2639::
2640
2565 ET1 ET2 | Response Time (us) | Reconfiguration Time (ms)2641 ET1 ET2 | Response Time (us) | Reconfiguration Time (ms)
2566 --------|--------------------|--------------------------2642 --------|--------------------|--------------------------
2567 Off Off | 78 | 840 (Default)2643 Off Off | 78 | 840 (Default)
@@ -2572,8 +2648,8 @@ must be set to the same timeout values. · 4 unmodified lines
2572On means jumper installed, Off means jumper not installed2648On means jumper installed, Off means jumper not installed
2573 2649
2574 2650
2575NONAME 16-BIT ARCNET265116-BIT ARCNET
2576====================2652-------------
2577 2653
2578The manual of my 8-Bit NONAME ARCnet Card contains another description2654The manual of my 8-Bit NONAME ARCnet Card contains another description
2579of a 16-Bit Coax / Twisted Pair Card. This description is incomplete,2655of 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
2584Also the picture of the board layout is not as good as the picture of2660Also the picture of the board layout is not as good as the picture of
25858-Bit card, because there isn't any letter like "SW1" written to the26618-Bit card, because there isn't any letter like "SW1" written to the
2586picture.2662picture.
2663
2587Should somebody have such a board, please feel free to complete this2664Should somebody have such a board, please feel free to complete this
2588description or to send a mail to me!2665description or to send a mail to me!
2589 2666
2590This description has been written by Juergen Seifert <seifert@htwm.de>2667This description has been written by Juergen Seifert <seifert@htwm.de>
2591using information from the Original2668using information from the Original
2592 "ARCnet Installation Manual"
2593 2669
2670 "ARCnet Installation Manual"
2671
2672::
2594 2673
2595 ___________________________________________________________________2674 ___________________________________________________________________
2596 < _________________ _________________ |2675 < _________________ _________________ |
@@ -2622,15 +2701,15 @@ Setting one of the switches to Off means "1", On means "0". · 25 unmodified lines
2622 2701
2623 2702
2624Setting the Node ID2703Setting the Node ID
2625-------------------2704^^^^^^^^^^^^^^^^^^^
2626 2705
2627The eight switches in group SW2 are used to set the node ID.2706The eight switches in group SW2 are used to set the node ID.
2628Each node attached to the network must have an unique node ID which2707Each node attached to the network must have an unique node ID which
2629must be different from 0.2708must be different from 0.
2630Switch 8 serves as the least significant bit (LSB).2709Switch 8 serves as the least significant bit (LSB).
2631 2710
2632The node ID is the sum of the values of all switches set to "1" 2711The node ID is the sum of the values of all switches set to "1"
2633These values are:2712These values are::
2634 2713
2635 Switch | Value2714 Switch | Value
2636 -------|-------2715 -------|-------
@@ -2643,30 +2722,30 @@ These values are: · 6 unmodified lines
2643 2 | 642722 2 | 64
2644 1 | 1282723 1 | 128
2645 2724
2646Some Examples:2725Some Examples::
2647 2726
2648 Switch | Hex | Decimal 2727 Switch | Hex | Decimal
2649 1 2 3 4 5 6 7 8 | Node ID | Node ID2728 1 2 3 4 5 6 7 8 | Node ID | Node ID
2650 ----------------|---------|---------2729 ----------------|---------|---------
2651 0 0 0 0 0 0 0 0 | not allowed2730 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
2653 0 0 0 0 0 0 1 0 | 2 | 22732 0 0 0 0 0 0 1 0 | 2 | 2
2654 0 0 0 0 0 0 1 1 | 3 | 32733 0 0 0 0 0 0 1 1 | 3 | 3
2655 . . . | |2734 . . . | |
2656 0 1 0 1 0 1 0 1 | 55 | 852735 0 1 0 1 0 1 0 1 | 55 | 85
2657 . . . | |2736 . . . | |
2658 1 0 1 0 1 0 1 0 | AA | 1702737 1 0 1 0 1 0 1 0 | AA | 170
2659 . . . | | 2738 . . . | |
2660 1 1 1 1 1 1 0 1 | FD | 2532739 1 1 1 1 1 1 0 1 | FD | 253
2661 1 1 1 1 1 1 1 0 | FE | 2542740 1 1 1 1 1 1 1 0 | FE | 254
2662 1 1 1 1 1 1 1 1 | FF | 2552741 1 1 1 1 1 1 1 1 | FF | 255
2663 2742
2664 2743
2665Setting the I/O Base Address2744Setting the I/O Base Address
2666----------------------------2745^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2667 2746
2668The first three switches in switch group SW1 are used to select one2747The first three switches in switch group SW1 are used to select one
2669of eight possible I/O Base addresses using the following table2748of eight possible I/O Base addresses using the following table::
2670 2749
2671 Switch | Hex I/O2750 Switch | Hex I/O
2672 3 2 1 | Address2751 3 2 1 | Address
@@ -2682,13 +2761,13 @@ of eight possible I/O Base addresses using the following table · 9 unmodified lines
2682 2761
2683 2762
2684Setting the Base Memory (RAM) buffer Address2763Setting the Base Memory (RAM) buffer Address
2685--------------------------------------------2764^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2686 2765
2687The memory buffer requires 2K of a 16K block of RAM. The base of this2766The memory buffer requires 2K of a 16K block of RAM. The base of this
268816K block can be located in any of eight positions.276716K block can be located in any of eight positions.
2689Switches 6-8 of switch group SW1 select the Base of the 16K block.2768Switches 6-8 of switch group SW1 select the Base of the 16K block.
2690Within that 16K address space, the buffer may be assigned any one of four2769Within that 16K address space, the buffer may be assigned any one of four
2691positions, determined by the offset, switches 4 and 5 of group SW1.2770positions, determined by the offset, switches 4 and 5 of group SW1::
2692 2771
2693 Switch | Hex RAM | Hex ROM2772 Switch | Hex RAM | Hex ROM
2694 8 7 6 5 4 | Address | Address2773 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
2697 0 0 0 0 1 | C0800 | C20002776 0 0 0 0 1 | C0800 | C2000
2698 0 0 0 1 0 | C1000 | C20002777 0 0 0 1 0 | C1000 | C2000
2699 0 0 0 1 1 | C1800 | C20002778 0 0 0 1 1 | C1800 | C2000
2700 | |2779 | |
2701 0 0 1 0 0 | C4000 | C60002780 0 0 1 0 0 | C4000 | C6000
2702 0 0 1 0 1 | C4800 | C60002781 0 0 1 0 1 | C4800 | C6000
2703 0 0 1 1 0 | C5000 | C60002782 0 0 1 1 0 | C5000 | C6000
2704 0 0 1 1 1 | C5800 | C60002783 0 0 1 1 1 | C5800 | C6000
2705 | |2784 | |
2706 0 1 0 0 0 | CC000 | CE0002785 0 1 0 0 0 | CC000 | CE000
2707 0 1 0 0 1 | CC800 | CE0002786 0 1 0 0 1 | CC800 | CE000
2708 0 1 0 1 0 | CD000 | CE0002787 0 1 0 1 0 | CD000 | CE000
2709 0 1 0 1 1 | CD800 | CE0002788 0 1 0 1 1 | CD800 | CE000
2710 | |2789 | |
2711 0 1 1 0 0 | D0000 | D2000 (Manufacturer's default)2790 0 1 1 0 0 | D0000 | D2000 (Manufacturer's default)
2712 0 1 1 0 1 | D0800 | D20002791 0 1 1 0 1 | D0800 | D2000
2713 0 1 1 1 0 | D1000 | D20002792 0 1 1 1 0 | D1000 | D2000
2714 0 1 1 1 1 | D1800 | D20002793 0 1 1 1 1 | D1800 | D2000
2715 | |2794 | |
2716 1 0 0 0 0 | D4000 | D60002795 1 0 0 0 0 | D4000 | D6000
2717 1 0 0 0 1 | D4800 | D60002796 1 0 0 0 1 | D4800 | D6000
2718 1 0 0 1 0 | D5000 | D60002797 1 0 0 1 0 | D5000 | D6000
2719 1 0 0 1 1 | D5800 | D60002798 1 0 0 1 1 | D5800 | D6000
2720 | |2799 | |
2721 1 0 1 0 0 | D8000 | DA0002800 1 0 1 0 0 | D8000 | DA000
2722 1 0 1 0 1 | D8800 | DA0002801 1 0 1 0 1 | D8800 | DA000
2723 1 0 1 1 0 | D9000 | DA0002802 1 0 1 1 0 | D9000 | DA000
2724 1 0 1 1 1 | D9800 | DA0002803 1 0 1 1 1 | D9800 | DA000
2725 | |2804 | |
2726 1 1 0 0 0 | DC000 | DE0002805 1 1 0 0 0 | DC000 | DE000
2727 1 1 0 0 1 | DC800 | DE0002806 1 1 0 0 1 | DC800 | DE000
2728 1 1 0 1 0 | DD000 | DE0002807 1 1 0 1 0 | DD000 | DE000
2729 1 1 0 1 1 | DD800 | DE0002808 1 1 0 1 1 | DD800 | DE000
2730 | |2809 | |
2731 1 1 1 0 0 | E0000 | E20002810 1 1 1 0 0 | E0000 | E2000
2732 1 1 1 0 1 | E0800 | E20002811 1 1 1 0 1 | E0800 | E2000
2733 1 1 1 1 0 | E1000 | E20002812 1 1 1 1 0 | E1000 | E2000
2734 1 1 1 1 1 | E1800 | E20002813 1 1 1 1 1 | E1800 | E2000
2735 2814
2736 2815
2737Setting Interrupt Request Lines (IRQ)2816Setting Interrupt Request Lines (IRQ)
2738-------------------------------------2817^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2739 2818
2740??????????????????????????????????????2819??????????????????????????????????????
2741 2820
2742 2821
2743Setting the Timeouts2822Setting the Timeouts
2744--------------------2823^^^^^^^^^^^^^^^^^^^^
2745 2824
2746??????????????????????????????????????2825??????????????????????????????????????
2747 2826
2748 2827
2749*****************************************************************************
2750
2751** No Name **
27528-bit cards ("Made in Taiwan R.O.C.")28288-bit cards ("Made in Taiwan R.O.C.")
2753-----------2829-------------------------------------
2830
2754 - from Vojtech Pavlik <vojtech@suse.cz>2831 - from Vojtech Pavlik <vojtech@suse.cz>
2755 2832
2756I have named this ARCnet card "NONAME", since I got only the card with2833I have named this ARCnet card "NONAME", since I got only the card with
2757no manual at all and the only text identifying the manufacturer is 2834no manual at all and the only text identifying the manufacturer is
2758"MADE IN TAIWAN R.O.C" printed on the card.2835"MADE IN TAIWAN R.O.C" printed on the card.
2759 2836
2760 ____________________________________________________________2837::
2761 | 1 2 3 4 5 6 7 8 |2838
2762 | |o|o| JP1 o|o|o|o|o|o|o|o| ON |2839 ____________________________________________________________
2763 | + o|o|o|o|o|o|o|o| ___|2840 | 1 2 3 4 5 6 7 8 |
2764 | _____________ o|o|o|o|o|o|o|o| OFF _____ | | ID72841 | |o|o| JP1 o|o|o|o|o|o|o|o| ON |
2765 | | | SW1 | | | | ID62842 | + o|o|o|o|o|o|o|o| ___|
2766 | > RAM (2k) | ____________________ | H | | S | ID52843 | _____________ o|o|o|o|o|o|o|o| OFF _____ | | ID7
2767 | |_____________| | || y | | W | ID42844 | | | SW1 | | | | ID6
2768 | | || b | | 2 | ID32845 | > RAM (2k) | ____________________ | H | | S | ID5
2769 | | || r | | | ID22846 | |_____________| | || y | | W | ID4
2770 | | || i | | | ID12847 | | || b | | 2 | ID3
2771 | | 90C65 || d | |___| ID02848 | | || r | | | ID2
2772 | SW3 | || | | 2849 | | || i | | | ID1
2773 | |o|o|o|o|o|o|o|o| ON | || I | |2850 | | 90C65 || d | |___| ID0
2774 | |o|o|o|o|o|o|o|o| | || C | |2851 | SW3 | || | |
2775 | |o|o|o|o|o|o|o|o| OFF |____________________|| | _____|2852 | |o|o|o|o|o|o|o|o| ON | || I | |
2776 | 1 2 3 4 5 6 7 8 | | | |___2853 | |o|o|o|o|o|o|o|o| | || C | |
2777 | ______________ | | | BNC |___|2854 | |o|o|o|o|o|o|o|o| OFF |____________________|| | _____|
2778 | | | |_____| |_____|2855 | 1 2 3 4 5 6 7 8 | | | |___
2779 | > EPROM SOCKET | |2856 | ______________ | | | BNC |___|
2780 | |______________| |2857 | | | |_____| |_____|
2781 | ______________|2858 | > EPROM SOCKET | |
2782 | |2859 | |______________| |
2783 |_____________________________________________|2860 | ______________|
2784 2861 | |
2785Legend:2862 |_____________________________________________|
2786 2863
278790C65 ARCNET Chip 2864Legend::
2788SW1 1-5: Base Memory Address Select2865
2789 6-8: Base I/O Address Select2866 90C65 ARCNET Chip
2790SW2 1-8: Node ID Select (ID0-ID7)2867 SW1 1-5: Base Memory Address Select
2791SW3 1-5: IRQ Select 2868 6-8: Base I/O Address Select
2792 6-7: Extra Timeout2869 SW2 1-8: Node ID Select (ID0-ID7)
2793 8 : ROM Enable 2870 SW3 1-5: IRQ Select
2794JP1 Led connector2871 6-7: Extra Timeout
2795BNC Coax connector2872 8 : ROM Enable
2796 2873 JP1 Led connector
2797Although the jumpers SW1 and SW3 are marked SW, not JP, they are jumpers, not 2874 BNC Coax connector
2875
2876Although the jumpers SW1 and SW3 are marked SW, not JP, they are jumpers, not
2798switches.2877switches.
2799 2878
2800Setting the jumpers to ON means connecting the upper two pins, off the bottom 2879Setting the jumpers to ON means connecting the upper two pins, off the bottom
2801two - or - in case of IRQ setting, connecting none of them at all.2880two - or - in case of IRQ setting, connecting none of them at all.
2802 2881
2803Setting the Node ID2882Setting the Node ID
2804-------------------2883^^^^^^^^^^^^^^^^^^^
2805 2884
2806The eight switches in SW2 are used to set the node ID. Each node attached2885The eight switches in SW2 are used to set the node ID. Each node attached
2807to the network must have an unique node ID which must not be 0.2886to 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
2809 2888
2810Setting one of the switches to Off means "1", On means "0".2889Setting one of the switches to Off means "1", On means "0".
2811 2890
2812The node ID is the sum of the values of all switches set to "1" 2891The node ID is the sum of the values of all switches set to "1"
2813These values are:2892These values are::
2814 2893
2815 Switch | Label | Value2894 Switch | Label | Value
2816 -------|-------|-------2895 -------|-------|-------
@@ -2823,30 +2902,30 @@ These values are: · 6 unmodified lines
2823 7 | ID6 | 642902 7 | ID6 | 64
2824 8 | ID7 | 1282903 8 | ID7 | 128
2825 2904
2826Some Examples:2905Some Examples::
2827 2906
2828 Switch | Hex | Decimal 2907 Switch | Hex | Decimal
2829 8 7 6 5 4 3 2 1 | Node ID | Node ID2908 8 7 6 5 4 3 2 1 | Node ID | Node ID
2830 ----------------|---------|---------2909 ----------------|---------|---------
2831 0 0 0 0 0 0 0 0 | not allowed2910 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
2833 0 0 0 0 0 0 1 0 | 2 | 22912 0 0 0 0 0 0 1 0 | 2 | 2
2834 0 0 0 0 0 0 1 1 | 3 | 32913 0 0 0 0 0 0 1 1 | 3 | 3
2835 . . . | |2914 . . . | |
2836 0 1 0 1 0 1 0 1 | 55 | 852915 0 1 0 1 0 1 0 1 | 55 | 85
2837 . . . | |2916 . . . | |
2838 1 0 1 0 1 0 1 0 | AA | 1702917 1 0 1 0 1 0 1 0 | AA | 170
2839 . . . | | 2918 . . . | |
2840 1 1 1 1 1 1 0 1 | FD | 2532919 1 1 1 1 1 1 0 1 | FD | 253
2841 1 1 1 1 1 1 1 0 | FE | 2542920 1 1 1 1 1 1 1 0 | FE | 254
2842 1 1 1 1 1 1 1 1 | FF | 2552921 1 1 1 1 1 1 1 1 | FF | 255
2843 2922
2844 2923
2845Setting the I/O Base Address2924Setting the I/O Base Address
2846----------------------------2925^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2847 2926
2848The last three switches in switch block SW1 are used to select one2927The last three switches in switch block SW1 are used to select one
2849of eight possible I/O Base addresses using the following table2928of eight possible I/O Base addresses using the following table::
2850 2929
2851 2930
2852 Switch | Hex I/O2931 Switch | Hex I/O
@@ -2863,13 +2942,16 @@ of eight possible I/O Base addresses using the following table · 10 unmodified lines
2863 2942
2864 2943
2865Setting the Base Memory (RAM) buffer Address2944Setting the Base Memory (RAM) buffer Address
2866--------------------------------------------2945^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2867 2946
2868The memory buffer (RAM) requires 2K. The base of this buffer can be 2947The memory buffer (RAM) requires 2K. The base of this buffer can be
2869located in any of eight positions. The address of the Boot Prom is2948located in any of eight positions. The address of the Boot Prom is
2870memory base + 0x2000.2949memory base + 0x2000.
2950
2871Jumpers 3-5 of jumper block SW1 select the Memory Base address.2951Jumpers 3-5 of jumper block SW1 select the Memory Base address.
2872 2952
2953::
2954
2873 Switch | Hex RAM | Hex ROM2955 Switch | Hex RAM | Hex ROM
2874 1 2 3 4 5 | Address | Address *)2956 1 2 3 4 5 | Address | Address *)
2875 --------------------|---------|-----------2957 --------------------|---------|-----------
@@ -2881,15 +2963,15 @@ Jumpers 3-5 of jumper block SW1 select the Memory Base address. · 5 unmodified lines
2881 ON ON OFF ON OFF | D8000 | DA0002963 ON ON OFF ON OFF | D8000 | DA000
2882 ON ON ON OFF OFF | DC000 | DE0002964 ON ON ON OFF OFF | DC000 | DE000
2883 ON ON OFF OFF OFF | E0000 | E20002965 ON ON OFF OFF OFF | E0000 | E2000
2884 2966
2885*) To enable the Boot ROM set the jumper 8 of jumper block SW3 to position ON.2967 *) To enable the Boot ROM set the jumper 8 of jumper block SW3 to position ON.
2886 2968
2887The jumpers 1 and 2 probably add 0x0800, 0x1000 and 0x1800 to RAM adders.2969The jumpers 1 and 2 probably add 0x0800, 0x1000 and 0x1800 to RAM adders.
2888 2970
2889Setting the Interrupt Line2971Setting the Interrupt Line
2890--------------------------2972^^^^^^^^^^^^^^^^^^^^^^^^^^
2891 2973
2892Jumpers 1-5 of the jumper block SW3 control the IRQ level.2974Jumpers 1-5 of the jumper block SW3 control the IRQ level::
2893 2975
2894 Jumper | IRQ2976 Jumper | IRQ
2895 1 2 3 4 5 |2977 1 2 3 4 5 |
@@ -2902,23 +2984,24 @@ Jumpers 1-5 of the jumper block SW3 control the IRQ level. · 6 unmodified lines
2902 2984
2903 2985
2904Setting the Timeout Parameters2986Setting the Timeout Parameters
2905------------------------------2987^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2906 2988
2907The jumpers 6-7 of the jumper block SW3 are used to determine the timeout 2989The jumpers 6-7 of the jumper block SW3 are used to determine the timeout
2908parameters. These two jumpers are normally left in the OFF position.2990parameters. These two jumpers are normally left in the OFF position.
2909 2991
2910 2992
2911*****************************************************************************
2912 2993
2913** No Name **
2914(Generic Model 9058)2994(Generic Model 9058)
2915--------------------2995--------------------
2916 - from Andrew J. Kroll <ag784@freenet.buffalo.edu>2996 - from Andrew J. Kroll <ag784@freenet.buffalo.edu>
2917 - Sorry this sat in my to-do box for so long, Andrew! (yikes - over a2997 - Sorry this sat in my to-do box for so long, Andrew! (yikes - over a
2918 year!)2998 year!)
2919 _____2999
2920 | <3000::
2921 | .---'3001
3002 _____
3003 | <
3004 | .---'
2922 ________________________________________________________________ | |3005 ________________________________________________________________ | |
2923 | | SW2 | | |3006 | | SW2 | | |
2924 | ___________ |_____________| | |3007 | ___________ |_____________| | |
@@ -2936,7 +3019,7 @@ parameters. These two jumpers are normally left in the OFF position. · 11 unmodified lines
2936 | |________________| | | : B |- | |3019 | |________________| | | : B |- | |
2937 | 1 2 3 4 5 6 7 8 | | : O |- | |3020 | 1 2 3 4 5 6 7 8 | | : O |- | |
2938 | |_________o____|..../ A |- _______| |3021 | |_________o____|..../ A |- _______| |
2939 | ____________________ | R |- | |------, 3022 | ____________________ | R |- | |------,
2940 | | | | D |- | BNC | # |3023 | | | | D |- | BNC | # |
2941 | > 2764 PROM SOCKET | |__________|- |_______|------'3024 | > 2764 PROM SOCKET | |__________|- |_______|------'
2942 | |____________________| _________ | |3025 | |____________________| _________ | |
@@ -2945,23 +3028,24 @@ parameters. These two jumpers are normally left in the OFF position. · 2 unmodified lines
2945 |___ ______________| |3028 |___ ______________| |
2946 |H H H H H H H H H H H H H H H H H H H H H H H| | |3029 |H H H H H H H H H H H H H H H H H H H H H H H| | |
2947 |U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U| | |3030 |U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U_U| | |
2948 \|3031 \|
2949Legend:3032
3033Legend::
2950 3034
2951SL90C65 ARCNET Controller / Transceiver /Logic3035 SL90C65 ARCNET Controller / Transceiver /Logic
2952SW1 1-5: IRQ Select3036 SW1 1-5: IRQ Select
2953 6: ET13037 6: ET1
2954 7: ET23038 7: ET2
2955 8: ROM ENABLE 3039 8: ROM ENABLE
2956SW2 1-3: Memory Buffer/PROM Address3040 SW2 1-3: Memory Buffer/PROM Address
2957 3-6: I/O Address Map3041 3-6: I/O Address Map
2958SW3 1-8: Node ID Select3042 SW3 1-8: Node ID Select
2959BNC BNC RG62/U Connection 3043 BNC BNC RG62/U Connection
2960 *I* have had success using RG59B/U with *NO* terminators!3044 *I* have had success using RG59B/U with *NO* terminators!
2961 What gives?!3045 What gives?!
2962 3046
2963SW1: Timeouts, Interrupt and ROM3047SW1: Timeouts, Interrupt and ROM
2964---------------------------------3048^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2965 3049
2966To select a hardware interrupt level set one (only one!) of the dip switches3050To select a hardware interrupt level set one (only one!) of the dip switches
2967up (on) SW1...(switches 1-5)3051up (on) SW1...(switches 1-5)
@@ -2976,10 +3060,10 @@ are normally left off (down). · 8 unmodified lines
2976 3060
2977 3061
2978Setting the I/O Base Address3062Setting the I/O Base Address
2979----------------------------3063^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2980 3064
2981The last three switches in switch group SW2 are used to select one3065The last three switches in switch group SW2 are used to select one
2982of eight possible I/O Base addresses using the following table3066of eight possible I/O Base addresses using the following table::
2983 3067
2984 3068
2985 Switch | Hex I/O3069 Switch | Hex I/O
@@ -2996,7 +3080,7 @@ of eight possible I/O Base addresses using the following table · 10 unmodified lines
2996 3080
2997 3081
2998Setting the Base Memory Address (RAM & ROM)3082Setting the Base Memory Address (RAM & ROM)
2999-------------------------------------------3083^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3000 3084
3001The memory buffer requires 2K of a 16K block of RAM. The base of this3085The memory buffer requires 2K of a 16K block of RAM. The base of this
300216K block can be located in any of eight positions.308616K 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
3004(0 = DOWN, 1 = UP)3088(0 = DOWN, 1 = UP)
3005I could, however, only verify two settings...3089I could, however, only verify two settings...
3006 3090
3091
3092::
3093
3007 Switch| Hex RAM | Hex ROM3094 Switch| Hex RAM | Hex ROM
3008 1 2 3 | Address | Address3095 1 2 3 | Address | Address
3009 ------|---------|-----------3096 ------|---------|-----------
3010 0 0 0 | E0000 | E20003097 0 0 0 | E0000 | E2000
3011 0 0 1 | D0000 | D2000 (Manufacturer's default)3098 0 0 1 | D0000 | D2000 (Manufacturer's default)
3012 0 1 0 | ????? | ?????3099 0 1 0 | ????? | ?????
3013 0 1 1 | ????? | ????? 3100 0 1 1 | ????? | ?????
3014 1 0 0 | ????? | ?????3101 1 0 0 | ????? | ?????
3015 1 0 1 | ????? | ?????3102 1 0 1 | ????? | ?????
3016 1 1 0 | ????? | ?????3103 1 1 0 | ????? | ?????
@@ -3018,7 +3105,7 @@ I could, however, only verify two settings... · 1 unmodified line
3018 3105
3019 3106
3020Setting the Node ID3107Setting the Node ID
3021-------------------3108^^^^^^^^^^^^^^^^^^^
3022 3109
3023The eight switches in group SW3 are used to set the node ID.3110The eight switches in group SW3 are used to set the node ID.
3024Each node attached to the network must have an unique node ID which3111Each node attached to the network must have an unique node ID which
@@ -3026,8 +3113,9 @@ must be different from 0. · 1 unmodified line
3026Switch 1 serves as the least significant bit (LSB).3113Switch 1 serves as the least significant bit (LSB).
3027switches in the DOWN position are OFF (0) and in the UP position are ON (1)3114switches in the DOWN position are OFF (0) and in the UP position are ON (1)
3028 3115
3029The node ID is the sum of the values of all switches set to "1" 3116The node ID is the sum of the values of all switches set to "1"
3030These values are:3117These values are::
3118
3031 Switch | Value3119 Switch | Value
3032 -------|-------3120 -------|-------
3033 1 | 13121 1 | 1
@@ -3039,70 +3127,80 @@ These values are: · 5 unmodified lines
3039 7 | 643127 7 | 64
3040 8 | 1283128 8 | 128
3041 3129
3042Some Examples:3130Some Examples::
3043
3044 Switch# | Hex | Decimal
30458 7 6 5 4 3 2 1 | Node ID | Node ID
3046----------------|---------|---------
30470 0 0 0 0 0 0 0 | not allowed <-.
30480 0 0 0 0 0 0 1 | 1 | 1 |
30490 0 0 0 0 0 1 0 | 2 | 2 |
30500 0 0 0 0 0 1 1 | 3 | 3 |
3051 . . . | | |
30520 1 0 1 0 1 0 1 | 55 | 85 |
3053 . . . | | + Don't use 0 or 255!
30541 0 1 0 1 0 1 0 | AA | 170 |
3055 . . . | | |
30561 1 1 1 1 1 0 1 | FD | 253 |
30571 1 1 1 1 1 1 0 | FE | 254 |
30581 1 1 1 1 1 1 1 | FF | 255 <-'
3059
3060 3131
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
3149Tiara
3150=====
3062 3151
3063** Tiara **
3064(model unknown)3152(model unknown)
3065-------------------------3153---------------
3154
3066 - from Christoph Lameter <christoph@lameter.com>3155 - from Christoph Lameter <christoph@lameter.com>
3067 3156
3068 3157
3069Here is information about my card as far as I could figure it out:3158Here is information about my card as far as I could figure it out::
3070----------------------------------------------- tiara3159
3071Tiara LanCard of Tiara Computer Systems.3160
3072 3161 ----------------------------------------------- tiara
3073+----------------------------------------------+3162 Tiara LanCard of Tiara Computer Systems.
3074! ! Transmitter Unit ! !3163
3075! +------------------+ -------3164 +----------------------------------------------+
3076! MEM Coax Connector3165 ! ! Transmitter Unit ! !
3077! ROM 7654321 <- I/O -------3166 ! +------------------+ -------
3078! : : +--------+ !3167 ! MEM Coax Connector
3079! : : ! 90C66LJ! +++3168 ! ROM 7654321 <- I/O -------
3080! : : ! ! !D Switch to set3169 ! : : +--------+ !
3081! : : ! ! !I the Nodenumber3170 ! : : ! 90C66LJ! +++
3082! : : +--------+ !P3171 ! : : ! ! !D Switch to set
3083! !++3172 ! : : ! ! !I the Nodenumber
3084! 234567 <- IRQ !3173 ! : : +--------+ !P
3085+------------!!!!!!!!!!!!!!!!!!!!!!!!--------+3174 ! !++
3086 !!!!!!!!!!!!!!!!!!!!!!!!3175 ! 234567 <- IRQ !
3087 3176 +------------!!!!!!!!!!!!!!!!!!!!!!!!--------+
30880 = Jumper Installed3177 !!!!!!!!!!!!!!!!!!!!!!!!
30891 = Open3178
3179- 0 = Jumper Installed
3180- 1 = Open
3090 3181
3091Top Jumper line Bit 7 = ROM Enable 654=Memory location 321=I/O3182Top Jumper line Bit 7 = ROM Enable 654=Memory location 321=I/O
3092 3183
3093Settings for Memory Location (Top Jumper Line)3184Settings for Memory Location (Top Jumper Line)
3185
3186=== ================
3094456 Address selected3187456 Address selected
3188=== ================
3095000 C00003189000 C0000
3096001 C40003190001 C4000
3097010 CC0003191010 CC000
3098011 D00003192011 D0000
3099100 D40003193100 D4000
3100101 D80003194101 D8000
3101110 DC000 3195110 DC000
3102111 E00003196111 E0000
3197=== ================
3103 3198
3104Settings for I/O Address (Top Jumper Line)3199Settings for I/O Address (Top Jumper Line)
3200
3201=== ====
3105123 Port3202123 Port
3203=== ====
3106000 2603204000 260
3107001 2903205001 290
3108010 2E03206010 2E0
@@ -3111,23 +3209,26 @@ Settings for I/O Address (Top Jumper Line) · 2 unmodified lines
3111101 3503209101 350
3112110 3803210110 380
3113111 3E03211111 3E0
3212=== ====
3114 3213
3115Settings for IRQ Selection (Lower Jumper Line)3214Settings for IRQ Selection (Lower Jumper Line)
3215
3216====== =====
31162345673217234567
3218====== =====
3117011111 IRQ 23219011111 IRQ 2
3118101111 IRQ 33220101111 IRQ 3
3119110111 IRQ 43221110111 IRQ 4
3120111011 IRQ 53222111011 IRQ 5
3121111110 IRQ 73223111110 IRQ 7
3122 3224====== =====
3123*****************************************************************************
3124
3125 3225
3126Other Cards3226Other Cards
3127-----------3227===========
3128 3228
3129I have no information on other models of ARCnet cards at the moment. Please3229I have no information on other models of ARCnet cards at the moment. Please
3130send any and all info to:3230send any and all info to:
3231
3131 apenwarr@worldvisions.ca3232 apenwarr@worldvisions.ca
3132 3233
3133Thanks.3234Thanks.
Documentation/networking/arcnet.rstrenamed from Documentation/networking/arcnet.txt+193−155
@@ -1,11 +1,18 @@
1----------------------------------------------------------------------------1.. SPDX-License-Identifier: GPL-2.0
2NOTE: See also arcnet-hardware.txt in this directory for jumper-setting2
3and cabling information if you're like many of us and didn't happen to get a3======
4manual with your ARCnet card.4ARCnet
5----------------------------------------------------------------------------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.
6 12
7Since no one seems to listen to me otherwise, perhaps a poem will get your13Since no one seems to listen to me otherwise, perhaps a poem will get your
8attention:14attention::
15
9 This driver's getting fat and beefy,16 This driver's getting fat and beefy,
10 But my cat is still named Fifi.17 But my cat is still named Fifi.
11 18
@@ -24,28 +31,21 @@ Come on, be a sport! Send me a success report! · 12 unmodified lines
24(hey, that was even better than my original poem... this is getting bad!)31(hey, that was even better than my original poem... this is getting bad!)
25 32
26 33
27--------34.. warning::
28WARNING:
29--------
30
31If you don't e-mail me about your success/failure soon, I may be forced to
32start SINGING. And we don't want that, do we?
33 35
34(You know, it might be argued that I'm pushing this point a little too much. 36 If you don't e-mail me about your success/failure soon, I may be forced to
35If you think so, why not flame me in a quick little e-mail? Please also37 start SINGING. And we don't want that, do we?
36include the type of card(s) you're using, software, size of network, and
37whether it's working or not.)
38 38
39My e-mail address is: apenwarr@worldvisions.ca39 (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.)
40 43
44 My e-mail address is: apenwarr@worldvisions.ca
41 45
42---------------------------------------------------------------------------
43
44
45These are the ARCnet drivers for Linux.46These are the ARCnet drivers for Linux.
46 47
47 48This new release (2.91) has been put together by David Woodhouse
48This new release (2.91) has been put together by David Woodhouse
49<dwmw2@infradead.org>, in an attempt to tidy up the driver after adding support49<dwmw2@infradead.org>, in an attempt to tidy up the driver after adding support
50for yet another chipset. Now the generic support has been separated from the50for yet another chipset. Now the generic support has been separated from the
51individual chipset drivers, and the source files aren't quite so packed with51individual 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
62Where do I discuss these drivers?62Where do I discuss these drivers?
63---------------------------------63---------------------------------
64 64
65Tomasz has been so kind as to set up a new and improved mailing list. 65Tomasz has been so kind as to set up a new and improved mailing list.
66Subscribe by sending a message with the BODY "subscribe linux-arcnet YOUR66Subscribe by sending a message with the BODY "subscribe linux-arcnet YOUR
67REAL NAME" to listserv@tichy.ch.uj.edu.pl. Then, to submit messages to the67REAL NAME" to listserv@tichy.ch.uj.edu.pl. Then, to submit messages to the
68list, mail to linux-arcnet@tichy.ch.uj.edu.pl.68list, mail to linux-arcnet@tichy.ch.uj.edu.pl.
69 69
70There are archives of the mailing list at:70There are archives of the mailing list at:
71
71 http://epistolary.org/mailman/listinfo.cgi/arcnet72 http://epistolary.org/mailman/listinfo.cgi/arcnet
72 73
73The people on linux-net@vger.kernel.org (now defunct, replaced by74The people on linux-net@vger.kernel.org (now defunct, replaced by
@@ -80,17 +81,20 @@ Other Drivers and Info · 6 unmodified lines
80----------------------81----------------------
81 82
82You can try my ARCNET page on the World Wide Web at:83You 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/
84 86
85Also, SMC (one of the companies that makes ARCnet cards) has a WWW site you87Also, SMC (one of the companies that makes ARCnet cards) has a WWW site you
86might be interested in, which includes several drivers for various cards88might be interested in, which includes several drivers for various cards
87including ARCnet. Try:89including ARCnet. Try:
90
88 http://www.smc.com/91 http://www.smc.com/
89 92
90Performance Technologies makes various network software that supports93Performance Technologies makes various network software that supports
91ARCnet:94ARCnet:
95
92 http://www.perftech.com/ or ftp to ftp.perftech.com.96 http://www.perftech.com/ or ftp to ftp.perftech.com.
93 97
94Novell makes a networking stack for DOS which includes ARCnet drivers. Try98Novell makes a networking stack for DOS which includes ARCnet drivers. Try
95FTPing to ftp.novell.com.99FTPing to ftp.novell.com.
96 100
@@ -99,19 +103,20 @@ one you'll want to use with ARCnet cards) from · 2 unmodified lines
99oak.oakland.edu:/simtel/msdos/pktdrvr. It won't work perfectly on a 386+103oak.oakland.edu:/simtel/msdos/pktdrvr. It won't work perfectly on a 386+
100without patches, though, and also doesn't like several cards. Fixed104without patches, though, and also doesn't like several cards. Fixed
101versions are available on my WWW page, or via e-mail if you don't have WWW105versions are available on my WWW page, or via e-mail if you don't have WWW
102access. 106access.
103 107
104 108
105Installing the Driver109Installing the Driver
106---------------------110---------------------
107 111
108All you will need to do in order to install the driver is:112All you will need to do in order to install the driver is::
113
109 make config114 make config
110 (be sure to choose ARCnet in the network devices 115 (be sure to choose ARCnet in the network devices
111 and at least one chipset driver.)116 and at least one chipset driver.)
112 make clean117 make clean
113 make zImage118 make zImage
114 119
115If you obtained this ARCnet package as an upgrade to the ARCnet driver in120If you obtained this ARCnet package as an upgrade to the ARCnet driver in
116your current kernel, you will need to first copy arcnet.c over the one in121your current kernel, you will need to first copy arcnet.c over the one in
117the linux/drivers/net directory.122the linux/drivers/net directory.
@@ -125,10 +130,12 @@ There are four chipset options: · 7 unmodified lines
125 130
126This is the normal ARCnet card, which you've probably got. This is the only131This is the normal ARCnet card, which you've probably got. This is the only
127chipset driver which will autoprobe if not told where the card is.132chipset driver which will autoprobe if not told where the card is.
128It following options on the command line:133It following options on the command line::
134
129 com90xx=[<io>[,<irq>[,<shmem>]]][,<name>] | <name>135 com90xx=[<io>[,<irq>[,<shmem>]]][,<name>] | <name>
130 136
131If you load the chipset support as a module, the options are:137If you load the chipset support as a module, the options are::
138
132 io=<io> irq=<irq> shmem=<shmem> device=<name>139 io=<io> irq=<irq> shmem=<shmem> device=<name>
133 140
134To disable the autoprobe, just specify "com90xx=" on the kernel command line.141To 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
136 143
137 2. ARCnet COM20020 chipset.144 2. ARCnet COM20020 chipset.
138 145
139This is the new chipset from SMC with support for promiscuous mode (packet 146This is the new chipset from SMC with support for promiscuous mode (packet
140sniffing), extra diagnostic information, etc. Unfortunately, there is no147sniffing), extra diagnostic information, etc. Unfortunately, there is no
141sensible method of autoprobing for these cards. You must specify the I/O148sensible method of autoprobing for these cards. You must specify the I/O
142address on the kernel command line.149address on the kernel command line.
143The command line options are:150
151The command line options are::
152
144 com20020=<io>[,<irq>[,<node_ID>[,backplane[,CKP[,timeout]]]]][,name]153 com20020=<io>[,<irq>[,<node_ID>[,backplane[,CKP[,timeout]]]]][,name]
145 154
146If you load the chipset support as a module, the options are:155If you load the chipset support as a module, the options are::
156
147 io=<io> irq=<irq> node=<node_ID> backplane=<backplane> clock=<CKP>157 io=<io> irq=<irq> node=<node_ID> backplane=<backplane> clock=<CKP>
148 timeout=<timeout> device=<name>158 timeout=<timeout> device=<name>
149 159
@@ -160,8 +170,10 @@ you have a card which doesn't support shared memory, or (strangely) in case · 10 unmodified lines
160you have so many ARCnet cards in your machine that you run out of shmem slots.170you have so many ARCnet cards in your machine that you run out of shmem slots.
161If you don't give the IO address on the kernel command line, then the driver171If you don't give the IO address on the kernel command line, then the driver
162will not find the card.172will not find the card.
163The command line options are:173
164 com90io=<io>[,<irq>][,<name>] 174The command line options are::
175
176 com90io=<io>[,<irq>][,<name>]
165 177
166If you load the chipset support as a module, the options are:178If you load the chipset support as a module, the options are:
167 io=<io> irq=<irq> device=<name>179 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
169 4. ARCnet RIM I cards.181 4. ARCnet RIM I cards.
170 182
171These are COM90xx chips which are _completely_ memory mapped. The support for183These are COM90xx chips which are _completely_ memory mapped. The support for
172these is not tested. If you have one, please mail the author with a success 184these is not tested. If you have one, please mail the author with a success
173report. All options must be specified, except the device name.185report. All options must be specified, except the device name.
174Command line options:186Command line options::
187
175 arcrimi=<shmem>,<irq>,<node_ID>[,<name>]188 arcrimi=<shmem>,<irq>,<node_ID>[,<name>]
176 189
177If you load the chipset support as a module, the options are:190If you load the chipset support as a module, the options are::
191
178 shmem=<shmem> irq=<irq> node=<node_ID> device=<name>192 shmem=<shmem> irq=<irq> node=<node_ID> device=<name>
179 193
180 194
181Loadable Module Support195Loadable Module Support
182-----------------------196-----------------------
183 197
184Configure and rebuild Linux. When asked, answer 'm' to "Generic ARCnet 198Configure and rebuild Linux. When asked, answer 'm' to "Generic ARCnet
185support" and to support for your ARCnet chipset if you want to use the199support" and to support for your ARCnet chipset if you want to use the
186loadable module. You can also say 'y' to "Generic ARCnet support" and 'm' 200loadable module. You can also say 'y' to "Generic ARCnet support" and 'm'
187to the chipset support if you wish.201to the chipset support if you wish.
188 202
203::
204
189 make config205 make config
190 make clean 206 make clean
191 make zImage207 make zImage
192 make modules208 make modules
193 209
194If you're using a loadable module, you need to use insmod to load it, and210If you're using a loadable module, you need to use insmod to load it, and
195you can specify various characteristics of your card on the command211you can specify various characteristics of your card on the command
196line. (In recent versions of the driver, autoprobing is much more reliable212line. (In recent versions of the driver, autoprobing is much more reliable
197and works as a module, so most of this is now unnecessary.)213and works as a module, so most of this is now unnecessary.)
198 214
199For example:215For example::
216
200 cd /usr/src/linux/modules217 cd /usr/src/linux/modules
201 insmod arcnet.o218 insmod arcnet.o
202 insmod com90xx.o219 insmod com90xx.o
203 insmod com20020.o io=0x2e0 device=eth1220 insmod com20020.o io=0x2e0 device=eth1
204 221
205 222
206Using the Driver223Using the Driver
207----------------224----------------
208 225
209If you build your kernel with ARCnet COM90xx support included, it should 226If you build your kernel with ARCnet COM90xx support included, it should
210probe for your card automatically when you boot. If you use a different227probe for your card automatically when you boot. If you use a different
211chipset driver complied into the kernel, you must give the necessary options228chipset driver complied into the kernel, you must give the necessary options
212on the kernel command line, as detailed above.229on the kernel command line, as detailed above.
@@ -224,69 +241,78 @@ Multiple Cards in One Computer · 11 unmodified lines
224------------------------------241------------------------------
225 242
226Linux has pretty good support for this now, but since I've been busy, the243Linux has pretty good support for this now, but since I've been busy, the
227ARCnet driver has somewhat suffered in this respect. COM90xx support, if 244ARCnet driver has somewhat suffered in this respect. COM90xx support, if
228compiled into the kernel, will (try to) autodetect all the installed cards. 245compiled into the kernel, will (try to) autodetect all the installed cards.
246
247If you have other cards, with support compiled into the kernel, then you can
248just repeat the options on the kernel command line, e.g.::
249
250 LILO: linux com20020=0x2e0 com20020=0x380 com90io=0x260
229 251
230If you have other cards, with support compiled into the kernel, then you can 252If you have the chipset support built as a loadable module, then you need to
231just repeat the options on the kernel command line, e.g.:253do something like this::
232LILO: linux com20020=0x2e0 com20020=0x380 com90io=0x260
233 254
234If you have the chipset support built as a loadable module, then you need to
235do something like this:
236 insmod -o arc0 com90xx255 insmod -o arc0 com90xx
237 insmod -o arc1 com20020 io=0x2e0256 insmod -o arc1 com20020 io=0x2e0
238 insmod -o arc2 com90xx257 insmod -o arc2 com90xx
258
239The ARCnet drivers will now sort out their names automatically.259The ARCnet drivers will now sort out their names automatically.
240 260
241 261
242How do I get it to work with...?262How do I get it to work with...?
243--------------------------------263--------------------------------
244 264
245NFS: Should be fine linux->linux, just pretend you're using Ethernet cards. 265NFS:
246 oak.oakland.edu:/simtel/msdos/nfs has some nice DOS clients. There266 Should be fine linux->linux, just pretend you're using Ethernet cards.
247 is also a DOS-based NFS server called SOSS. It doesn't multitask267 oak.oakland.edu:/simtel/msdos/nfs has some nice DOS clients. There
248 quite the way Linux does (actually, it doesn't multitask AT ALL) but268 is also a DOS-based NFS server called SOSS. It doesn't multitask
249 you never know what you might need.269 quite the way Linux does (actually, it doesn't multitask AT ALL) but
250 270 you never know what you might need.
251 With AmiTCP (and possibly others), you may need to set the following271
252 options in your Amiga nfstab: MD 1024 MR 1024 MW 1024272 With AmiTCP (and possibly others), you may need to set the following
253 (Thanks to Christian Gottschling <ferksy@indigo.tng.oche.de>273 options in your Amiga nfstab: MD 1024 MR 1024 MW 1024
274 (Thanks to Christian Gottschling <ferksy@indigo.tng.oche.de>
254 for this.)275 for this.)
255 276
256 Probably these refer to maximum NFS data/read/write block sizes. I277 Probably these refer to maximum NFS data/read/write block sizes. I
257 don't know why the defaults on the Amiga didn't work; write to me if278 don't know why the defaults on the Amiga didn't work; write to me if
258 you know more.279 you know more.
259 280
260DOS: If you're using the freeware arcether.com, you might want to install281DOS:
261 the driver patch from my web page. It helps with PC/TCP, and also282 If you're using the freeware arcether.com, you might want to install
262 can get arcether to load if it timed out too quickly during283 the driver patch from my web page. It helps with PC/TCP, and also
263 initialization. In fact, if you use it on a 386+ you REALLY need284 can get arcether to load if it timed out too quickly during
264 the patch, really.285 initialization. In fact, if you use it on a 386+ you REALLY need
265 286 the patch, really.
266Windows: See DOS :) Trumpet Winsock works fine with either the Novell or287
288Windows:
289 See DOS :) Trumpet Winsock works fine with either the Novell or
267 Arcether client, assuming you remember to load winpkt of course.290 Arcether client, assuming you remember to load winpkt of course.
268 291
269LAN Manager and Windows for Workgroups: These programs use protocols that292LAN Manager and Windows for Workgroups:
270 are incompatible with the Internet standard. They try to pretend293 These programs use protocols that
271 the cards are Ethernet, and confuse everyone else on the network. 294 are incompatible with the Internet standard. They try to pretend
272 295 the cards are Ethernet, and confuse everyone else on the network.
273 However, v2.00 and higher of the Linux ARCnet driver supports this296
274 protocol via the 'arc0e' device. See the section on "Multiprotocol297 However, v2.00 and higher of the Linux ARCnet driver supports this
275 Support" for more information.298 protocol via the 'arc0e' device. See the section on "Multiprotocol
299 Support" for more information.
276 300
277 Using the freeware Samba server and clients for Linux, you can now301 Using the freeware Samba server and clients for Linux, you can now
278 interface quite nicely with TCP/IP-based WfWg or Lan Manager302 interface quite nicely with TCP/IP-based WfWg or Lan Manager
279 networks.303 networks.
280 304
281Windows 95: Tools are included with Win95 that let you use either the LANMAN305Windows 95:
306 Tools are included with Win95 that let you use either the LANMAN
282 style network drivers (NDIS) or Novell drivers (ODI) to handle your307 style network drivers (NDIS) or Novell drivers (ODI) to handle your
283 ARCnet packets. If you use ODI, you'll need to use the 'arc0'308 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.
285 See the "Multiprotocol Support" section below if you need arc0e,310 See the "Multiprotocol Support" section below if you need arc0e,
286 you're completely insane, and/or you need to build some kind of311 you're completely insane, and/or you need to build some kind of
287 hybrid network that uses both encapsulation types.312 hybrid network that uses both encapsulation types.
288 313
289OS/2: I've been told it works under Warp Connect with an ARCnet driver from314OS/2:
315 I've been told it works under Warp Connect with an ARCnet driver from
290 SMC. You need to use the 'arc0e' interface for this. If you get316 SMC. You need to use the 'arc0e' interface for this. If you get
291 the SMC driver to work with the TCP/IP stuff included in the317 the SMC driver to work with the TCP/IP stuff included in the
292 "normal" Warp Bonus Pack, let me know.318 "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
295 which should use the same protocol as WfWg does. I had no luck321 which should use the same protocol as WfWg does. I had no luck
296 installing it under Warp, however. Please mail me with any results.322 installing it under Warp, however. Please mail me with any results.
297 323
298NetBSD/AmiTCP: These use an old version of the Internet standard ARCnet324NetBSD/AmiTCP:
325 These use an old version of the Internet standard ARCnet
299 protocol (RFC1051) which is compatible with the Linux driver v2.10326 protocol (RFC1051) which is compatible with the Linux driver v2.10
300 ALPHA and above using the arc0s device. (See "Multiprotocol ARCnet"327 ALPHA and above using the arc0s device. (See "Multiprotocol ARCnet"
301 below.) ** Newer versions of NetBSD apparently support RFC1201.328 below.) ** Newer versions of NetBSD apparently support RFC1201.
@@ -307,16 +334,17 @@ Using Multiprotocol ARCnet · 5 unmodified lines
307The ARCnet driver v2.10 ALPHA supports three protocols, each on its own334The ARCnet driver v2.10 ALPHA supports three protocols, each on its own
308"virtual network device":335"virtual network device":
309 336
310 arc0 - RFC1201 protocol, the official Internet standard which just337 ====== ===============================================================
311 happens to be 100% compatible with Novell's TRXNET driver. 338 arc0 RFC1201 protocol, the official Internet standard which just
339 happens to be 100% compatible with Novell's TRXNET driver.
312 Version 1.00 of the ARCnet driver supported _only_ this340 Version 1.00 of the ARCnet driver supported _only_ this
313 protocol. arc0 is the fastest of the three protocols (for341 protocol. arc0 is the fastest of the three protocols (for
314 whatever reason), and allows larger packets to be used342 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.
316 Unless you have a specific need to use a different protocol,344 Unless you have a specific need to use a different protocol,
317 I strongly suggest that you stick with this one.345 I strongly suggest that you stick with this one.
318 346
319 arc0e - "Ethernet-Encapsulation" which sends packets over ARCnet347 arc0e "Ethernet-Encapsulation" which sends packets over ARCnet
320 that are actually a lot like Ethernet packets, including the348 that are actually a lot like Ethernet packets, including the
321 6-byte hardware addresses. This protocol is compatible with349 6-byte hardware addresses. This protocol is compatible with
322 Microsoft's NDIS ARCnet driver, like the one in WfWg and350 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
328 fit. arc0e also works slightly more slowly than arc0, for356 fit. arc0e also works slightly more slowly than arc0, for
329 reasons yet to be determined. (Probably it's the smaller357 reasons yet to be determined. (Probably it's the smaller
330 MTU that does it.)358 MTU that does it.)
331 359
332 arc0s - The "[s]imple" RFC1051 protocol is the "previous" Internet360 arc0s The "[s]imple" RFC1051 protocol is the "previous" Internet
333 standard that is completely incompatible with the new361 standard that is completely incompatible with the new
334 standard. Some software today, however, continues to362 standard. Some software today, however, continues to
335 support the old standard (and only the old standard)363 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
338 smaller than the Internet "requirement," so it's quite366 smaller than the Internet "requirement," so it's quite
339 possible that you may run into problems. It's also slower367 possible that you may run into problems. It's also slower
340 than RFC1201 by about 25%, for the same reason as arc0e.368 than RFC1201 by about 25%, for the same reason as arc0e.
341 369
342 The arc0s support was contributed by Tomasz Motylewski370 The arc0s support was contributed by Tomasz Motylewski
343 and modified somewhat by me. Bugs are probably my fault.371 and modified somewhat by me. Bugs are probably my fault.
372 ====== ===============================================================
344 373
345You can choose not to compile arc0e and arc0s into the driver if you want -374You can choose not to compile arc0e and arc0s into the driver if you want -
346this will save you a bit of memory and avoid confusion when eg. trying to375this 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
358 two available protocols. As mentioned above, it's a good idea to use387 two available protocols. As mentioned above, it's a good idea to use
359 only arc0 unless you have a good reason (like some other software, ie.388 only arc0 unless you have a good reason (like some other software, ie.
360 WfWg, that only works with arc0e).389 WfWg, that only works with arc0e).
361 390
362 If you need only arc0, then the following commands should get you going:391 If you need only arc0, then the following commands should get you going::
363 ifconfig arc0 MY.IP.ADD.RESS392
364 route add MY.IP.ADD.RESS arc0393 ifconfig arc0 MY.IP.ADD.RESS
365 route add -net SUB.NET.ADD.RESS arc0394 route add MY.IP.ADD.RESS arc0
366 [add other local routes here]395 route add -net SUB.NET.ADD.RESS arc0
367 396 [add other local routes here]
368 If you need arc0e (and only arc0e), it's a little different:397
369 ifconfig arc0 MY.IP.ADD.RESS398 If you need arc0e (and only arc0e), it's a little different::
370 ifconfig arc0e MY.IP.ADD.RESS399
371 route add MY.IP.ADD.RESS arc0e400 ifconfig arc0 MY.IP.ADD.RESS
372 route add -net SUB.NET.ADD.RESS arc0e401 ifconfig arc0e MY.IP.ADD.RESS
373 402 route add MY.IP.ADD.RESS arc0e
403 route add -net SUB.NET.ADD.RESS arc0e
404
374 arc0s works much the same way as arc0e.405 arc0s works much the same way as arc0e.
375 406
376 407
@@ -391,29 +422,32 @@ can set up your network then: · 14 unmodified lines
391 XT (patience), however, does not have its own Internet IP address and so422 XT (patience), however, does not have its own Internet IP address and so
392 I assigned it one on a "private subnet" (as defined by RFC1597).423 I assigned it one on a "private subnet" (as defined by RFC1597).
393 424
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.
395 Insight needs to:426 Insight needs to:
396 - talk to freedom via RFC1201 (arc0) protocol, because I like it427
428 - talk to freedom via RFC1201 (arc0) protocol, because I like it
397 more and it's faster.429 more and it's faster.
398 - use freedom as its Internet gateway.430 - use freedom as its Internet gateway.
399 431
400 That's pretty easy to do. Set up insight like this:432 That's pretty easy to do. Set up insight like this::
401 ifconfig arc0 insight433
402 route add insight arc0434 ifconfig arc0 insight
403 route add freedom arc0 /* I would use the subnet here (like I said435 route add insight arc0
436 route add freedom arc0 /* I would use the subnet here (like I said
404 to to in "single protocol" above),437 to to in "single protocol" above),
405 but the rest of the subnet438 but the rest of the subnet
406 unfortunately lies across the PPP439 unfortunately lies across the PPP
407 link on freedom, which confuses440 link on freedom, which confuses
408 things. */441 things. */
409 route add default gw freedom442 route add default gw freedom
410 443
411 And freedom gets configured like so:444 And freedom gets configured like so::
412 ifconfig arc0 freedom445
413 route add freedom arc0446 ifconfig arc0 freedom
414 route add insight arc0447 route add freedom arc0
415 /* and default gateway is configured by pppd */448 route add insight arc0
416 449 /* and default gateway is configured by pppd */
450
417 Great, now insight talks to freedom directly on arc0, and sends packets451 Great, now insight talks to freedom directly on arc0, and sends packets
418 to the Internet through freedom. If you didn't know how to do the above,452 to the Internet through freedom. If you didn't know how to do the above,
419 you should probably stop reading this section now because it only gets453 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
425 Internet. (Recall that patience has a "private IP address" which won't459 Internet. (Recall that patience has a "private IP address" which won't
426 work on the Internet; that's okay, I configured Linux IP masquerading on460 work on the Internet; that's okay, I configured Linux IP masquerading on
427 freedom for this subnet).461 freedom for this subnet).
428 462
429 So patience (necessarily; I don't have another IP number from my463 So patience (necessarily; I don't have another IP number from my
430 provider) has an IP address on a different subnet than freedom and464 provider) has an IP address on a different subnet than freedom and
431 insight, but needs to use freedom as an Internet gateway. Worse, most465 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
435 insight, patience WILL send through its default gateway, regardless of469 insight, patience WILL send through its default gateway, regardless of
436 the fact that both freedom and insight (courtesy of the arc0e device)470 the fact that both freedom and insight (courtesy of the arc0e device)
437 could understand a direct transmission.471 could understand a direct transmission.
438 472
439 I compensate by giving freedom an extra IP address - aliased 'gatekeeper'473 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. I474 that is on my private subnet, the same subnet that patience is on. I
441 then define gatekeeper to be the default gateway for patience.475 then define gatekeeper to be the default gateway for patience.
442 476
443 To configure freedom (in addition to the commands above):477 To configure freedom (in addition to the commands above)::
444 ifconfig arc0e gatekeeper478
445 route add gatekeeper arc0e479 ifconfig arc0e gatekeeper
446 route add patience arc0e480 route add gatekeeper arc0e
447 481 route add patience arc0e
482
448 This way, freedom will send all packets for patience through arc0e,483 This way, freedom will send all packets for patience through arc0e,
449 giving its IP address as gatekeeper (on the private subnet). When it484 giving its IP address as gatekeeper (on the private subnet). When it
450 talks to insight or the Internet, it will use its "freedom" Internet IP485 talks to insight or the Internet, it will use its "freedom" Internet IP
451 address.486 address.
452 487
453 You will notice that we haven't configured the arc0e device on insight. 488 You will notice that we haven't configured the arc0e device on insight.
454 This would work, but is not really necessary, and would require me to489 This would work, but is not really necessary, and would require me to
455 assign insight another special IP number from my private subnet. Since490 assign insight another special IP number from my private subnet. Since
456 both insight and patience are using freedom as their default gateway, the491 both insight and patience are using freedom as their default gateway, the
457 two can already talk to each other.492 two can already talk to each other.
458 493
459 It's quite fortunate that I set things up like this the first time (cough494 It's quite fortunate that I set things up like this the first time (cough
460 cough) because it's really handy when I boot insight into DOS. There, it495 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.
462 In this mode it would be impossible for insight to communicate directly497 In this mode it would be impossible for insight to communicate directly
463 with patience, since the Novell stack is incompatible with Microsoft's498 with patience, since the Novell stack is incompatible with Microsoft's
464 Ethernet-Encap. Without changing any settings on freedom or patience, I499 Ethernet-Encap. Without changing any settings on freedom or patience, I
465 simply set freedom as the default gateway for insight (now in DOS,500 simply set freedom as the default gateway for insight (now in DOS,
466 remember) and all the forwarding happens "automagically" between the two501 remember) and all the forwarding happens "automagically" between the two
467 hosts that would normally not be able to communicate at all.502 hosts that would normally not be able to communicate at all.
468 503
469 For those who like diagrams, I have created two "virtual subnets" on the504 For those who like diagrams, I have created two "virtual subnets" on the
470 same physical ARCnet wire. You can picture it like this:505 same physical ARCnet wire. You can picture it like this::
471 506
472 507
473 [RFC1201 NETWORK] [ETHER-ENCAP NETWORK]508 [RFC1201 NETWORK] [ETHER-ENCAP NETWORK]
474 (registered Internet subnet) (RFC1597 private subnet)509 (registered Internet subnet) (RFC1597 private subnet)
475 510
476 (IP Masquerade)511 (IP Masquerade)
477 /---------------\ * /---------------\512 /---------------\ * /---------------\
478 | | * | |513 | | * | |
479 | +-Freedom-*-Gatekeeper-+ |514 | +-Freedom-*-Gatekeeper-+ |
480 | | | * | |515 | | | * | |
481 \-------+-------/ | * \-------+-------/516 \-------+-------/ | * \-------+-------/
482 | | |517 | | |
483 Insight | Patience518 Insight | Patience
484 (Internet)519 (Internet)
485 520
486 521
487 522
@@ -491,6 +526,7 @@ It works: what now? · 3 unmodified lines
491Send mail describing your setup, preferably including driver version, kernel526Send mail describing your setup, preferably including driver version, kernel
492version, ARCnet card model, CPU type, number of systems on your network, and527version, ARCnet card model, CPU type, number of systems on your network, and
493list of software in use to me at the following address:528list of software in use to me at the following address:
529
494 apenwarr@worldvisions.ca530 apenwarr@worldvisions.ca
495 531
496I do send (sometimes automated) replies to all messages I receive. My email532I 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
525arcnet.c). arcdump assumes your card is at 0xD0000. If it isn't, edit the561arcnet.c). arcdump assumes your card is at 0xD0000. If it isn't, edit the
526script.562script.
527 563
528Buffers 0 and 1 are used for receiving, and Buffers 2 and 3 are for sending. 564Buffers 0 and 1 are used for receiving, and Buffers 2 and 3 are for sending.
529Ping-pong buffers are implemented both ways.565Ping-pong buffers are implemented both ways.
530 566
531If your debug level includes D_DURING and you did NOT define SLOW_XMIT_COPY,567If 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
535buffer will be cleared to 0x42 as well. This is to make it easier to figure571buffer will be cleared to 0x42 as well. This is to make it easier to figure
536out which bytes are being used by a packet.572out which bytes are being used by a packet.
537 573
538You can change the debug level without recompiling the kernel by typing:574You can change the debug level without recompiling the kernel by typing::
575
539 ifconfig arc0 down metric 1xxx576 ifconfig arc0 down metric 1xxx
540 /etc/rc.d/rc.inet1577 /etc/rc.d/rc.inet1
578
541where "xxx" is the debug level you want. For example, "metric 1015" would put579where "xxx" is the debug level you want. For example, "metric 1015" would put
542you at debug level 15. Debug level 7 is currently the default.580you at debug level 15. Debug level 7 is currently the default.
543 581
@@ -546,7 +584,7 @@ combination of different debug flags; so debug level 7 is really 1+2+4 or · 2 unmodified lines
546D_NORMAL+D_EXTRA+D_INIT. To include D_DURING, you would add 16 to this,584D_NORMAL+D_EXTRA+D_INIT. To include D_DURING, you would add 16 to this,
547resulting in debug level 23.585resulting in debug level 23.
548 586
549If you don't understand that, you probably don't want to know anyway. 587If you don't understand that, you probably don't want to know anyway.
550E-mail me about your problem.588E-mail me about your problem.
551 589
552 590
Documentation/networking/atm.rstrenamed from Documentation/networking/atm.txt+6−0
@@ -1,3 +1,9 @@
1.. SPDX-License-Identifier: GPL-2.0
2
3===
4ATM
5===
6
1In order to use anything but the most primitive functions of ATM,7In order to use anything but the most primitive functions of ATM,
2several user-mode programs are required to assist the kernel. These8several user-mode programs are required to assist the kernel. These
3programs and related material can be found via the ATM on Linux Web9programs 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=====
4AX.25
5=====
6
1To use the amateur radio protocols within Linux you will need to get a7To use the amateur radio protocols within Linux you will need to get a
2suitable copy of the AX.25 Utilities. More detailed information about8suitable copy of the AX.25 Utilities. More detailed information about
3AX.25, NET/ROM and ROSE, associated programs and and utilities can be9AX.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 MODEMS1.. SPDX-License-Identifier: GPL-2.0
2 2
3 Thomas M. Sailer, HB9JNX/AE4WA, <sailer@ife.ee.ethz.ch>3===============================
4Linux Drivers for Baycom Modems
5===============================
4 6
5!!NEW!! (04/98) The drivers for the baycom modems have been split into7Thomas M. Sailer, HB9JNX/AE4WA, <sailer@ife.ee.ethz.ch>
8
9The drivers for the baycom modems have been split into
6separate drivers as they did not share any code, and the driver10separate drivers as they did not share any code, and the driver
7and device names have changed.11and device names have changed.
8 12
9This document describes the Linux Kernel Drivers for simple Baycom style13This document describes the Linux Kernel Drivers for simple Baycom style
10amateur radio modems. 14amateur radio modems.
11 15
12The following drivers are available:16The following drivers are available:
17====================================
13 18
14baycom_ser_fdx:19baycom_ser_fdx:
15 This driver supports the SER12 modems either full or half duplex.20 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,
17 therefore it supports just about every bit bang modem on a22 therefore it supports just about every bit bang modem on a
18 serial port. Its devices are called bcsf0 through bcsf3.23 serial port. Its devices are called bcsf0 through bcsf3.
19 This is the recommended driver for SER12 type modems,24 This is the recommended driver for SER12 type modems,
20 however if you have a broken UART clone that does not have working25 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.
22 27
23baycom_ser_hdx: 28baycom_ser_hdx:
24 This is an alternative driver for SER12 type modems.29 This is an alternative driver for SER12 type modems.
25 It only supports half duplex, and only 1200 baud. Its devices30 It only supports half duplex, and only 1200 baud. Its devices
26 are called bcsh0 through bcsh3. Use this driver only if baycom_ser_fdx31 are called bcsh0 through bcsh3. Use this driver only if baycom_ser_fdx
@@ -37,45 +42,48 @@ baycom_epp: · 10 unmodified lines
37 42
38The following modems are supported:43The following modems are supported:
39 44
40ser12: This is a very simple 1200 baud AFSK modem. The modem consists only45======= ========================================================================
41 of a modulator/demodulator chip, usually a TI TCM3105. The computer46ser12 This is a very simple 1200 baud AFSK modem. The modem consists only
42 is responsible for regenerating the receiver bit clock, as well as47 of a modulator/demodulator chip, usually a TI TCM3105. The computer
43 for handling the HDLC protocol. The modem connects to a serial port,48 is responsible for regenerating the receiver bit clock, as well as
44 hence the name. Since the serial port is not used as an async serial49 for handling the HDLC protocol. The modem connects to a serial port,
45 port, the kernel driver for serial ports cannot be used, and this50 hence the name. Since the serial port is not used as an async serial
46 driver only supports standard serial hardware (8250, 16450, 16550)51 port, the kernel driver for serial ports cannot be used, and this
47 52 driver only supports standard serial hardware (8250, 16450, 16550)
48par96: This is a modem for 9600 baud FSK compatible to the G3RUH standard.53
49 The modem does all the filtering and regenerates the receiver clock.54par96 This is a modem for 9600 baud FSK compatible to the G3RUH standard.
50 Data is transferred from and to the PC via a shift register.55 The modem does all the filtering and regenerates the receiver clock.
51 The shift register is filled with 16 bits and an interrupt is signalled.56 Data is transferred from and to the PC via a shift register.
52 The PC then empties the shift register in a burst. This modem connects57 The shift register is filled with 16 bits and an interrupt is signalled.
53 to the parallel port, hence the name. The modem leaves the 58 The PC then empties the shift register in a burst. This modem connects
54 implementation of the HDLC protocol and the scrambler polynomial to59 to the parallel port, hence the name. The modem leaves the
55 the PC.60 implementation of the HDLC protocol and the scrambler polynomial to
56 61 the PC.
57picpar: This is a redesign of the par96 modem by Henning Rech, DF9IC. The modem62
58 is protocol compatible to par96, but uses only three low power ICs63picpar This is a redesign of the par96 modem by Henning Rech, DF9IC. The modem
59 and can therefore be fed from the parallel port and does not require64 is protocol compatible to par96, but uses only three low power ICs
60 an additional power supply. Furthermore, it incorporates a carrier65 and can therefore be fed from the parallel port and does not require
61 detect circuitry.66 an additional power supply. Furthermore, it incorporates a carrier
62 67 detect circuitry.
63EPP: This is a high-speed modem adaptor that connects to an enhanced parallel port.68
64 Its target audience is users working over a high speed hub (76.8kbit/s).69EPP This is a high-speed modem adaptor that connects to an enhanced parallel
65 70 port.
66eppfpga: This is a redesign of the EPP adaptor.71
67 72 Its target audience is users working over a high speed hub (76.8kbit/s).
68 73
74eppfpga This is a redesign of the EPP adaptor.
75======= ========================================================================
69 76
70All of the above modems only support half duplex communications. However,77All of the above modems only support half duplex communications. However,
71the driver supports the KISS (see below) fullduplex command. It then simply78the driver supports the KISS (see below) fullduplex command. It then simply
72starts to send as soon as there's a packet to transmit and does not care79starts to send as soon as there's a packet to transmit and does not care
73about DCD, i.e. it starts to send even if there's someone else on the channel.80about DCD, i.e. it starts to send even if there's someone else on the channel.
74This command is required by some implementations of the DAMA channel 81This command is required by some implementations of the DAMA channel
75access protocol.82access protocol.
76 83
77 84
78The Interface of the drivers85The Interface of the drivers
86============================
79 87
80Unlike previous drivers, these drivers are no longer character devices,88Unlike previous drivers, these drivers are no longer character devices,
81but they are now true kernel network interfaces. Installation is therefore89but 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
88 96
89 97
90Configuring the driver98Configuring the driver
99======================
91 100
92Every time a driver is inserted into the kernel, it has to know which101Every time a driver is inserted into the kernel, it has to know which
93modems it should access at which ports. This can be done with the setbaycom102modems it should access at which ports. This can be done with the setbaycom
94utility. If you are only using one modem, you can also configure the103utility. If you are only using one modem, you can also configure the
95driver from the insmod command line (or by means of an option line in104driver from the insmod command line (or by means of an option line in
96/etc/modprobe.d/*.conf).105``/etc/modprobe.d/*.conf``).
106
107Examples::
97 108
98Examples:
99 modprobe baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4109 modprobe baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4
100 sethdlc -i bcsf0 -p mode "ser12*" io 0x3f8 irq 4110 sethdlc -i bcsf0 -p mode "ser12*" io 0x3f8 irq 4
101 111
102Both lines configure the first port to drive a ser12 modem at the first112Both lines configure the first port to drive a ser12 modem at the first
103serial port (COM1 under DOS). The * in the mode parameter instructs the driver to use113serial port (COM1 under DOS). The * in the mode parameter instructs the driver
104the software DCD algorithm (see below).114to use the software DCD algorithm (see below)::
105 115
106 insmod baycom_par mode="picpar" iobase=0x378116 insmod baycom_par mode="picpar" iobase=0x378
107 sethdlc -i bcp0 -p mode "picpar" io 0x378117 sethdlc -i bcp0 -p mode "picpar" io 0x378
@@ -115,29 +125,33 @@ Note that both utilities interpret the values slightly differently. · 7 unmodified lines
115 125
116 126
117Hardware DCD versus Software DCD127Hardware DCD versus Software DCD
128================================
118 129
119To avoid collisions on the air, the driver must know when the channel is130To avoid collisions on the air, the driver must know when the channel is
120busy. This is the task of the DCD circuitry/software. The driver may either131busy. This is the task of the DCD circuitry/software. The driver may either
121utilise a software DCD algorithm (options=1) or use a DCD signal from132utilise a software DCD algorithm (options=1) or use a DCD signal from
122the hardware (options=0).133the hardware (options=0).
123 134
124ser12: if software DCD is utilised, the radio's squelch should always be135======= =================================================================
125 open. It is highly recommended to use the software DCD algorithm,136ser12 if software DCD is utilised, the radio's squelch should always be
126 as it is much faster than most hardware squelch circuitry. The137 open. It is highly recommended to use the software DCD algorithm,
127 disadvantage is a slightly higher load on the system.138 as it is much faster than most hardware squelch circuitry. The
139 disadvantage is a slightly higher load on the system.
128 140
129par96: the software DCD algorithm for this type of modem is rather poor.141par96 the software DCD algorithm for this type of modem is rather poor.
130 The modem simply does not provide enough information to implement142 The modem simply does not provide enough information to implement
131 a reasonable DCD algorithm in software. Therefore, if your radio143 a reasonable DCD algorithm in software. Therefore, if your radio
132 feeds the DCD input of the PAR96 modem, the use of the hardware144 feeds the DCD input of the PAR96 modem, the use of the hardware
133 DCD circuitry is recommended.145 DCD circuitry is recommended.
134 146
135picpar: the picpar modem features a builtin DCD hardware, which is highly147picpar the picpar modem features a builtin DCD hardware, which is highly
136 recommended.148 recommended.
149======= =================================================================
137 150
138 151
139 152
140Compatibility with the rest of the Linux kernel153Compatibility with the rest of the Linux kernel
154===============================================
141 155
142The serial driver and the baycom serial drivers compete156The serial driver and the baycom serial drivers compete
143for the same hardware resources. Of course only one driver can access a given157for 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
154to arbitrate the ports between different client drivers.168to arbitrate the ports between different client drivers.
155 169
156vy 73s de170vy 73s de
171
157Tom Sailer, sailer@ife.ee.ethz.ch172Tom Sailer, sailer@ife.ee.ethz.ch
173
158hb9jnx @ hb9w.ampr.org174hb9jnx @ 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
1 2
2 Linux Ethernet Bonding Driver HOWTO3===================================
4Linux Ethernet Bonding Driver HOWTO
5===================================
3 6
4 Latest update: 27 April 20117Latest update: 27 April 2011
8
9Initial release: Thomas Davis <tadavis at lbl.gov>
10
11Corrections, HA extensions: 2000/10/03-15:
5 12
6Initial release : Thomas Davis <tadavis at lbl.gov>
7Corrections, HA extensions : 2000/10/03-15 :
8 - Willy Tarreau <willy at meta-x.org>13 - Willy Tarreau <willy at meta-x.org>
9 - Constantine Gavrilov <const-g at xpert.com>14 - Constantine Gavrilov <const-g at xpert.com>
10 - Chad N. Tindel <ctindel at ieee dot org>15 - Chad N. Tindel <ctindel at ieee dot org>
@@ -13,98 +18,98 @@ Corrections, HA extensions : 2000/10/03-15 : · 2 unmodified lines
13 18
14Reorganized and updated Feb 2005 by Jay Vosburgh19Reorganized and updated Feb 2005 by Jay Vosburgh
15Added Sysfs information: 2006/04/2420Added Sysfs information: 2006/04/24
21
16 - Mitch Williams <mitch.a.williams at intel.com>22 - Mitch Williams <mitch.a.williams at intel.com>
17 23
18Introduction24Introduction
19============25============
20 26
21 The Linux bonding driver provides a method for aggregating27The Linux bonding driver provides a method for aggregating
22multiple network interfaces into a single logical "bonded" interface.28multiple network interfaces into a single logical "bonded" interface.
23The behavior of the bonded interfaces depends upon the mode; generally29The behavior of the bonded interfaces depends upon the mode; generally
24speaking, modes provide either hot standby or load balancing services.30speaking, modes provide either hot standby or load balancing services.
25Additionally, link integrity monitoring may be performed.31Additionally, link integrity monitoring may be performed.
26 32
27 The bonding driver originally came from Donald Becker's33The bonding driver originally came from Donald Becker's
28beowulf patches for kernel 2.0. It has changed quite a bit since, and34beowulf patches for kernel 2.0. It has changed quite a bit since, and
29the original tools from extreme-linux and beowulf sites will not work35the original tools from extreme-linux and beowulf sites will not work
30with this version of the driver.36with this version of the driver.
31 37
32 For new versions of the driver, updated userspace tools, and38For new versions of the driver, updated userspace tools, and
33who to ask for help, please follow the links at the end of this file.39who to ask for help, please follow the links at the end of this file.
34 40
35Table of Contents41.. Table of Contents
36=================
37 42
381. Bonding Driver Installation43 1. Bonding Driver Installation
39 44
402. Bonding Driver Options45 2. Bonding Driver Options
41 46
423. Configuring Bonding Devices47 3. Configuring Bonding Devices
433.1 Configuration with Sysconfig Support48 3.1 Configuration with Sysconfig Support
443.1.1 Using DHCP with Sysconfig49 3.1.1 Using DHCP with Sysconfig
453.1.2 Configuring Multiple Bonds with Sysconfig50 3.1.2 Configuring Multiple Bonds with Sysconfig
463.2 Configuration with Initscripts Support51 3.2 Configuration with Initscripts Support
473.2.1 Using DHCP with Initscripts52 3.2.1 Using DHCP with Initscripts
483.2.2 Configuring Multiple Bonds with Initscripts53 3.2.2 Configuring Multiple Bonds with Initscripts
493.3 Configuring Bonding Manually with Ifenslave54 3.3 Configuring Bonding Manually with Ifenslave
503.3.1 Configuring Multiple Bonds Manually55 3.3.1 Configuring Multiple Bonds Manually
513.4 Configuring Bonding Manually via Sysfs56 3.4 Configuring Bonding Manually via Sysfs
523.5 Configuration with Interfaces Support57 3.5 Configuration with Interfaces Support
533.6 Overriding Configuration for Special Cases58 3.6 Overriding Configuration for Special Cases
543.7 Configuring LACP for 802.3ad mode in a more secure way59 3.7 Configuring LACP for 802.3ad mode in a more secure way
55 60
564. Querying Bonding Configuration61 4. Querying Bonding Configuration
574.1 Bonding Configuration62 4.1 Bonding Configuration
584.2 Network Configuration63 4.2 Network Configuration
59 64
605. Switch Configuration65 5. Switch Configuration
61 66
626. 802.1q VLAN Support67 6. 802.1q VLAN Support
63 68
647. Link Monitoring69 7. Link Monitoring
657.1 ARP Monitor Operation70 7.1 ARP Monitor Operation
667.2 Configuring Multiple ARP Targets71 7.2 Configuring Multiple ARP Targets
677.3 MII Monitor Operation72 7.3 MII Monitor Operation
68 73
698. Potential Trouble Sources74 8. Potential Trouble Sources
708.1 Adventures in Routing75 8.1 Adventures in Routing
718.2 Ethernet Device Renaming76 8.2 Ethernet Device Renaming
728.3 Painfully Slow Or No Failed Link Detection By Miimon77 8.3 Painfully Slow Or No Failed Link Detection By Miimon
73 78
749. SNMP agents79 9. SNMP agents
75 80
7610. Promiscuous mode81 10. Promiscuous mode
77 82
7811. Configuring Bonding for High Availability83 11. Configuring Bonding for High Availability
7911.1 High Availability in a Single Switch Topology84 11.1 High Availability in a Single Switch Topology
8011.2 High Availability in a Multiple Switch Topology85 11.2 High Availability in a Multiple Switch Topology
8111.2.1 HA Bonding Mode Selection for Multiple Switch Topology86 11.2.1 HA Bonding Mode Selection for Multiple Switch Topology
8211.2.2 HA Link Monitoring for Multiple Switch Topology87 11.2.2 HA Link Monitoring for Multiple Switch Topology
83 88
8412. Configuring Bonding for Maximum Throughput89 12. Configuring Bonding for Maximum Throughput
8512.1 Maximum Throughput in a Single Switch Topology90 12.1 Maximum Throughput in a Single Switch Topology
8612.1.1 MT Bonding Mode Selection for Single Switch Topology91 12.1.1 MT Bonding Mode Selection for Single Switch Topology
8712.1.2 MT Link Monitoring for Single Switch Topology92 12.1.2 MT Link Monitoring for Single Switch Topology
8812.2 Maximum Throughput in a Multiple Switch Topology93 12.2 Maximum Throughput in a Multiple Switch Topology
8912.2.1 MT Bonding Mode Selection for Multiple Switch Topology94 12.2.1 MT Bonding Mode Selection for Multiple Switch Topology
9012.2.2 MT Link Monitoring for Multiple Switch Topology95 12.2.2 MT Link Monitoring for Multiple Switch Topology
91 96
9213. Switch Behavior Issues97 13. Switch Behavior Issues
9313.1 Link Establishment and Failover Delays98 13.1 Link Establishment and Failover Delays
9413.2 Duplicated Incoming Packets99 13.2 Duplicated Incoming Packets
95 100
9614. Hardware Specific Considerations101 14. Hardware Specific Considerations
9714.1 IBM BladeCenter102 14.1 IBM BladeCenter
98 103
9915. Frequently Asked Questions104 15. Frequently Asked Questions
100 105
10116. Resources and Links106 16. Resources and Links
102 107
103 108
1041. Bonding Driver Installation1091. Bonding Driver Installation
105==============================110==============================
106 111
107 Most popular distro kernels ship with the bonding driver112Most popular distro kernels ship with the bonding driver
108already available as a module. If your distro does not, or you113already available as a module. If your distro does not, or you
109have need to compile bonding from source (e.g., configuring and114have need to compile bonding from source (e.g., configuring and
110installing a mainline kernel from kernel.org), you'll need to perform115installing a mainline kernel from kernel.org), you'll need to perform
@@ -113,54 +118,54 @@ the following steps: · 2 unmodified lines
1131.1 Configure and build the kernel with bonding1181.1 Configure and build the kernel with bonding
114-----------------------------------------------119-----------------------------------------------
115 120
116 The current version of the bonding driver is available in the121The current version of the bonding driver is available in the
117drivers/net/bonding subdirectory of the most recent kernel source122drivers/net/bonding subdirectory of the most recent kernel source
118(which is available on http://kernel.org). Most users "rolling their123(which is available on http://kernel.org). Most users "rolling their
119own" will want to use the most recent kernel from kernel.org.124own" will want to use the most recent kernel from kernel.org.
120 125
121 Configure kernel with "make menuconfig" (or "make xconfig" or126Configure kernel with "make menuconfig" (or "make xconfig" or
122"make config"), then select "Bonding driver support" in the "Network127"make config"), then select "Bonding driver support" in the "Network
123device support" section. It is recommended that you configure the128device support" section. It is recommended that you configure the
124driver as module since it is currently the only way to pass parameters129driver as module since it is currently the only way to pass parameters
125to the driver or configure more than one bonding device.130to the driver or configure more than one bonding device.
126 131
127 Build and install the new kernel and modules.132Build and install the new kernel and modules.
128 133
1291.2 Bonding Control Utility1341.2 Bonding Control Utility
130-------------------------------------135---------------------------
131 136
132 It is recommended to configure bonding via iproute2 (netlink)137It is recommended to configure bonding via iproute2 (netlink)
133or sysfs, the old ifenslave control utility is obsolete.138or sysfs, the old ifenslave control utility is obsolete.
134 139
1352. Bonding Driver Options1402. Bonding Driver Options
136=========================141=========================
137 142
138 Options for the bonding driver are supplied as parameters to the143Options for the bonding driver are supplied as parameters to the
139bonding module at load time, or are specified via sysfs.144bonding module at load time, or are specified via sysfs.
140 145
141 Module options may be given as command line arguments to the146Module options may be given as command line arguments to the
142insmod or modprobe command, but are usually specified in either the147insmod or modprobe command, but are usually specified in either the
143/etc/modprobe.d/*.conf configuration files, or in a distro-specific148``/etc/modprobe.d/*.conf`` configuration files, or in a distro-specific
144configuration file (some of which are detailed in the next section).149configuration file (some of which are detailed in the next section).
145 150
146 Details on bonding support for sysfs is provided in the151Details on bonding support for sysfs is provided in the
147"Configuring Bonding Manually via Sysfs" section, below.152"Configuring Bonding Manually via Sysfs" section, below.
148 153
149 The available bonding driver parameters are listed below. If a154The available bonding driver parameters are listed below. If a
150parameter is not specified the default value is used. When initially155parameter is not specified the default value is used. When initially
151configuring a bond, it is recommended "tail -f /var/log/messages" be156configuring a bond, it is recommended "tail -f /var/log/messages" be
152run in a separate window to watch for bonding driver error messages.157run in a separate window to watch for bonding driver error messages.
153 158
154 It is critical that either the miimon or arp_interval and159It is critical that either the miimon or arp_interval and
155arp_ip_target parameters be specified, otherwise serious network160arp_ip_target parameters be specified, otherwise serious network
156degradation will occur during link failures. Very few devices do not161degradation will occur during link failures. Very few devices do not
157support at least miimon, so there is really no reason not to use it.162support at least miimon, so there is really no reason not to use it.
158 163
159 Options with textual values will accept either the text name164Options with textual values will accept either the text name
160or, for backwards compatibility, the option value. E.g.,165or, for backwards compatibility, the option value. E.g.,
161"mode=802.3ad" and "mode=4" set the same mode.166"mode=802.3ad" and "mode=4" set the same mode.
162 167
163 The parameters are as follows:168The parameters are as follows:
164 169
165active_slave170active_slave
166 171
@@ -246,10 +251,13 @@ ad_user_port_key · 79 unmodified lines
246 251
247 In an AD system, the port-key has three parts as shown below -252 In an AD system, the port-key has three parts as shown below -
248 253
254 ===== ============
249 Bits Use255 Bits Use
256 ===== ============
250 00 Duplex257 00 Duplex
251 01-05 Speed258 01-05 Speed
252 06-15 User-defined259 06-15 User-defined
260 ===== ============
253 261
254 This defines the upper 10 bits of the port key. The values can be262 This defines the upper 10 bits of the port key. The values can be
255 from 0 - 1023. If not given, the system defaults to 0.263 from 0 - 1023. If not given, the system defaults to 0.
@@ -699,7 +707,7 @@ mode · 443 unmodified lines
699 swapped with the new curr_active_slave that was707 swapped with the new curr_active_slave that was
700 chosen.708 chosen.
701 709
702num_grat_arp710num_grat_arp,
703num_unsol_na711num_unsol_na
704 712
705 Specify the number of peer notifications (gratuitous ARPs and713 Specify the number of peer notifications (gratuitous ARPs and
@@ -729,13 +737,13 @@ packets_per_slave · 23 unmodified lines
729 737
730peer_notif_delay738peer_notif_delay
731 739
732 Specify the delay, in milliseconds, between each peer740 Specify the delay, in milliseconds, between each peer
733 notification (gratuitous ARP and unsolicited IPv6 Neighbor741 notification (gratuitous ARP and unsolicited IPv6 Neighbor
734 Advertisement) when they are issued after a failover event.742 Advertisement) when they are issued after a failover event.
735 This delay should be a multiple of the link monitor interval743 This delay should be a multiple of the link monitor interval
736 (arp_interval or miimon, whichever is active). The default744 (arp_interval or miimon, whichever is active). The default
737 value is 0 which means to match the value of the link monitor745 value is 0 which means to match the value of the link monitor
738 interval.746 interval.
739 747
740primary748primary
741 749
@@ -977,88 +985,88 @@ lp_interval · 235 unmodified lines
9773. Configuring Bonding Devices9853. Configuring Bonding Devices
978==============================986==============================
979 987
980 You can configure bonding using either your distro's network988You can configure bonding using either your distro's network
981initialization scripts, or manually using either iproute2 or the989initialization scripts, or manually using either iproute2 or the
982sysfs interface. Distros generally use one of three packages for the990sysfs interface. Distros generally use one of three packages for the
983network initialization scripts: initscripts, sysconfig or interfaces.991network initialization scripts: initscripts, sysconfig or interfaces.
984Recent versions of these packages have support for bonding, while older992Recent versions of these packages have support for bonding, while older
985versions do not.993versions do not.
986 994
987 We will first describe the options for configuring bonding for995We will first describe the options for configuring bonding for
988distros using versions of initscripts, sysconfig and interfaces with full996distros using versions of initscripts, sysconfig and interfaces with full
989or partial support for bonding, then provide information on enabling997or partial support for bonding, then provide information on enabling
990bonding without support from the network initialization scripts (i.e.,998bonding without support from the network initialization scripts (i.e.,
991older versions of initscripts or sysconfig).999older versions of initscripts or sysconfig).
992 1000
993 If you're unsure whether your distro uses sysconfig,1001If you're unsure whether your distro uses sysconfig,
994initscripts or interfaces, or don't know if it's new enough, have no fear.1002initscripts or interfaces, or don't know if it's new enough, have no fear.
995Determining this is fairly straightforward.1003Determining this is fairly straightforward.
996 1004
997 First, look for a file called interfaces in /etc/network directory.1005First, look for a file called interfaces in /etc/network directory.
998If this file is present in your system, then your system use interfaces. See1006If this file is present in your system, then your system use interfaces. See
999Configuration with Interfaces Support.1007Configuration with Interfaces Support.
1000 1008
1001 Else, issue the command:1009Else, issue the command::
1002 1010
1003$ rpm -qf /sbin/ifup1011 $ rpm -qf /sbin/ifup
1004 1012
1005 It will respond with a line of text starting with either1013It will respond with a line of text starting with either
1006"initscripts" or "sysconfig," followed by some numbers. This is the1014"initscripts" or "sysconfig," followed by some numbers. This is the
1007package that provides your network initialization scripts.1015package that provides your network initialization scripts.
1008 1016
1009 Next, to determine if your installation supports bonding,1017Next, to determine if your installation supports bonding,
1010issue the command:1018issue the command::
1011 1019
1012$ grep ifenslave /sbin/ifup1020 $ grep ifenslave /sbin/ifup
1013 1021
1014 If this returns any matches, then your initscripts or1022If this returns any matches, then your initscripts or
1015sysconfig has support for bonding.1023sysconfig has support for bonding.
1016 1024
10173.1 Configuration with Sysconfig Support10253.1 Configuration with Sysconfig Support
1018----------------------------------------1026----------------------------------------
1019 1027
1020 This section applies to distros using a version of sysconfig1028This section applies to distros using a version of sysconfig
1021with bonding support, for example, SuSE Linux Enterprise Server 9.1029with bonding support, for example, SuSE Linux Enterprise Server 9.
1022 1030
1023 SuSE SLES 9's networking configuration system does support1031SuSE SLES 9's networking configuration system does support
1024bonding, however, at this writing, the YaST system configuration1032bonding, however, at this writing, the YaST system configuration
1025front end does not provide any means to work with bonding devices.1033front end does not provide any means to work with bonding devices.
1026Bonding devices can be managed by hand, however, as follows.1034Bonding devices can be managed by hand, however, as follows.
1027 1035
1028 First, if they have not already been configured, configure the1036First, if they have not already been configured, configure the
1029slave devices. On SLES 9, this is most easily done by running the1037slave devices. On SLES 9, this is most easily done by running the
1030yast2 sysconfig configuration utility. The goal is for to create an1038yast2 sysconfig configuration utility. The goal is for to create an
1031ifcfg-id file for each slave device. The simplest way to accomplish1039ifcfg-id file for each slave device. The simplest way to accomplish
1032this is to configure the devices for DHCP (this is only to get the1040this is to configure the devices for DHCP (this is only to get the
1033file ifcfg-id file created; see below for some issues with DHCP). The1041file ifcfg-id file created; see below for some issues with DHCP). The
1034name of the configuration file for each device will be of the form:1042name of the configuration file for each device will be of the form::
1035 1043
1036ifcfg-id-xx:xx:xx:xx:xx:xx1044 ifcfg-id-xx:xx:xx:xx:xx:xx
1037 1045
1038 Where the "xx" portion will be replaced with the digits from1046Where the "xx" portion will be replaced with the digits from
1039the device's permanent MAC address.1047the device's permanent MAC address.
1040 1048
1041 Once the set of ifcfg-id-xx:xx:xx:xx:xx:xx files has been1049Once the set of ifcfg-id-xx:xx:xx:xx:xx:xx files has been
1042created, it is necessary to edit the configuration files for the slave1050created, it is necessary to edit the configuration files for the slave
1043devices (the MAC addresses correspond to those of the slave devices).1051devices (the MAC addresses correspond to those of the slave devices).
1044Before editing, the file will contain multiple lines, and will look1052Before editing, the file will contain multiple lines, and will look
1045something like this:1053something like this::
1046 1054
1047BOOTPROTO='dhcp'1055 BOOTPROTO='dhcp'
1048STARTMODE='on'1056 STARTMODE='on'
1049USERCTL='no'1057 USERCTL='no'
1050UNIQUE='XNzu.WeZGOGF+4wE'1058 UNIQUE='XNzu.WeZGOGF+4wE'
1051_nm_name='bus-pci-0001:61:01.0'1059 _nm_name='bus-pci-0001:61:01.0'
1052 1060
1053 Change the BOOTPROTO and STARTMODE lines to the following:1061Change the BOOTPROTO and STARTMODE lines to the following::
1054 1062
1055BOOTPROTO='none'1063 BOOTPROTO='none'
1056STARTMODE='off'1064 STARTMODE='off'
1057 1065
1058 Do not alter the UNIQUE or _nm_name lines. Remove any other1066Do not alter the UNIQUE or _nm_name lines. Remove any other
1059lines (USERCTL, etc).1067lines (USERCTL, etc).
1060 1068
1061 Once the ifcfg-id-xx:xx:xx:xx:xx:xx files have been modified,1069Once the ifcfg-id-xx:xx:xx:xx:xx:xx files have been modified,
1062it's time to create the configuration file for the bonding device1070it's time to create the configuration file for the bonding device
1063itself. This file is named ifcfg-bondX, where X is the number of the1071itself. This file is named ifcfg-bondX, where X is the number of the
1064bonding device to create, starting at 0. The first such file is1072bonding 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
1066network configuration system will correctly start multiple instances1074network configuration system will correctly start multiple instances
1067of bonding.1075of bonding.
1068 1076
1069 The contents of the ifcfg-bondX file is as follows:1077The contents of the ifcfg-bondX file is as follows::
1070 1078
1071BOOTPROTO="static"1079 BOOTPROTO="static"
1072BROADCAST="10.0.2.255"1080 BROADCAST="10.0.2.255"
1073IPADDR="10.0.2.10"1081 IPADDR="10.0.2.10"
1074NETMASK="255.255.0.0"1082 NETMASK="255.255.0.0"
1075NETWORK="10.0.2.0"1083 NETWORK="10.0.2.0"
1076REMOTE_IPADDR=""1084 REMOTE_IPADDR=""
1077STARTMODE="onboot"1085 STARTMODE="onboot"
1078BONDING_MASTER="yes"1086 BONDING_MASTER="yes"
1079BONDING_MODULE_OPTS="mode=active-backup miimon=100"1087 BONDING_MODULE_OPTS="mode=active-backup miimon=100"
1080BONDING_SLAVE0="eth0"1088 BONDING_SLAVE0="eth0"
1081BONDING_SLAVE1="bus-pci-0000:06:08.1"1089 BONDING_SLAVE1="bus-pci-0000:06:08.1"
1082 1090
1083 Replace the sample BROADCAST, IPADDR, NETMASK and NETWORK1091Replace the sample BROADCAST, IPADDR, NETMASK and NETWORK
1084values with the appropriate values for your network.1092values with the appropriate values for your network.
1085 1093
1086 The STARTMODE specifies when the device is brought online.1094The STARTMODE specifies when the device is brought online.
1087The possible values are:1095The possible values are:
1088 1096
1089 onboot: The device is started at boot time. If you're not1097 ======== ======================================================
1098 onboot The device is started at boot time. If you're not
1090 sure, this is probably what you want.1099 sure, this is probably what you want.
1091 1100
1092 manual: The device is started only when ifup is called1101 manual The device is started only when ifup is called
1093 manually. Bonding devices may be configured this1102 manually. Bonding devices may be configured this
1094 way if you do not wish them to start automatically1103 way if you do not wish them to start automatically
1095 at boot for some reason.1104 at boot for some reason.
1096 1105
1097 hotplug: The device is started by a hotplug event. This is not1106 hotplug The device is started by a hotplug event. This is not
1098 a valid choice for a bonding device.1107 a valid choice for a bonding device.
1099 1108
1100 off or ignore: The device configuration is ignored.1109 off or The device configuration is ignored.
1110 ignore
1111 ======== ======================================================
1101 1112
1102 The line BONDING_MASTER='yes' indicates that the device is a1113The line BONDING_MASTER='yes' indicates that the device is a
1103bonding master device. The only useful value is "yes."1114bonding master device. The only useful value is "yes."
1104 1115
1105 The contents of BONDING_MODULE_OPTS are supplied to the1116The contents of BONDING_MODULE_OPTS are supplied to the
1106instance of the bonding module for this device. Specify the options1117instance of the bonding module for this device. Specify the options
1107for the bonding mode, link monitoring, and so on here. Do not include1118for the bonding mode, link monitoring, and so on here. Do not include
1108the max_bonds bonding parameter; this will confuse the configuration1119the max_bonds bonding parameter; this will confuse the configuration
1109system if you have multiple bonding devices.1120system if you have multiple bonding devices.
1110 1121
1111 Finally, supply one BONDING_SLAVEn="slave device" for each1122Finally, supply one BONDING_SLAVEn="slave device" for each
1112slave. where "n" is an increasing value, one for each slave. The1123slave. where "n" is an increasing value, one for each slave. The
1113"slave device" is either an interface name, e.g., "eth0", or a device1124"slave device" is either an interface name, e.g., "eth0", or a device
1114specifier for the network device. The interface name is easier to1125specifier 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
1120example above uses one of each type for demonstration purposes; most1131example above uses one of each type for demonstration purposes; most
1121configurations will choose one or the other for all slave devices.1132configurations will choose one or the other for all slave devices.
1122 1133
1123 When all configuration files have been modified or created,1134When all configuration files have been modified or created,
1124networking must be restarted for the configuration changes to take1135networking must be restarted for the configuration changes to take
1125effect. This can be accomplished via the following:1136effect. This can be accomplished via the following::
1126 1137
1127# /etc/init.d/network restart1138 # /etc/init.d/network restart
1128 1139
1129 Note that the network control script (/sbin/ifdown) will1140Note that the network control script (/sbin/ifdown) will
1130remove the bonding module as part of the network shutdown processing,1141remove the bonding module as part of the network shutdown processing,
1131so it is not necessary to remove the module by hand if, e.g., the1142so it is not necessary to remove the module by hand if, e.g., the
1132module parameters have changed.1143module parameters have changed.
1133 1144
1134 Also, at this writing, YaST/YaST2 will not manage bonding1145Also, at this writing, YaST/YaST2 will not manage bonding
1135devices (they do not show bonding interfaces on its list of network1146devices (they do not show bonding interfaces on its list of network
1136devices). It is necessary to edit the configuration file by hand to1147devices). It is necessary to edit the configuration file by hand to
1137change the bonding configuration.1148change the bonding configuration.
1138 1149
1139 Additional general options and details of the ifcfg file1150Additional general options and details of the ifcfg file
1140format can be found in an example ifcfg template file:1151format can be found in an example ifcfg template file::
1141 1152
1142/etc/sysconfig/network/ifcfg.template1153 /etc/sysconfig/network/ifcfg.template
1143 1154
1144 Note that the template does not document the various BONDING_1155Note that the template does not document the various ``BONDING_*``
1145settings described above, but does describe many of the other options.1156settings described above, but does describe many of the other options.
1146 1157
11473.1.1 Using DHCP with Sysconfig11583.1.1 Using DHCP with Sysconfig
1148-------------------------------1159-------------------------------
1149 1160
1150 Under sysconfig, configuring a device with BOOTPROTO='dhcp'1161Under sysconfig, configuring a device with BOOTPROTO='dhcp'
1151will cause it to query DHCP for its IP address information. At this1162will cause it to query DHCP for its IP address information. At this
1152writing, this does not function for bonding devices; the scripts1163writing, this does not function for bonding devices; the scripts
1153attempt to obtain the device address from DHCP prior to adding any of1164attempt to obtain the device address from DHCP prior to adding any of
@@ -1157,7 +1168,7 @@ sent to the network. · 3 unmodified lines
11573.1.2 Configuring Multiple Bonds with Sysconfig11683.1.2 Configuring Multiple Bonds with Sysconfig
1158-----------------------------------------------1169-----------------------------------------------
1159 1170
1160 The sysconfig network initialization system is capable of1171The sysconfig network initialization system is capable of
1161handling multiple bonding devices. All that is necessary is for each1172handling multiple bonding devices. All that is necessary is for each
1162bonding instance to have an appropriately configured ifcfg-bondX file1173bonding instance to have an appropriately configured ifcfg-bondX file
1163(as described above). Do not specify the "max_bonds" parameter to any1174(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
1165multiple bonding devices with identical parameters, create multiple1176multiple bonding devices with identical parameters, create multiple
1166ifcfg-bondX files.1177ifcfg-bondX files.
1167 1178
1168 Because the sysconfig scripts supply the bonding module1179Because the sysconfig scripts supply the bonding module
1169options in the ifcfg-bondX file, it is not necessary to add them to1180options in the ifcfg-bondX file, it is not necessary to add them to
1170the system /etc/modules.d/*.conf configuration files.1181the system ``/etc/modules.d/*.conf`` configuration files.
1171 1182
11723.2 Configuration with Initscripts Support11833.2 Configuration with Initscripts Support
1173------------------------------------------1184------------------------------------------
1174 1185
1175 This section applies to distros using a recent version of1186This section applies to distros using a recent version of
1176initscripts with bonding support, for example, Red Hat Enterprise Linux1187initscripts with bonding support, for example, Red Hat Enterprise Linux
1177version 3 or later, Fedora, etc. On these systems, the network1188version 3 or later, Fedora, etc. On these systems, the network
1178initialization scripts have knowledge of bonding, and can be configured to1189initialization 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
1180package have lower levels of support for bonding; this will be noted where1191package have lower levels of support for bonding; this will be noted where
1181applicable.1192applicable.
1182 1193
1183 These distros will not automatically load the network adapter1194These distros will not automatically load the network adapter
1184driver unless the ethX device is configured with an IP address.1195driver unless the ethX device is configured with an IP address.
1185Because of this constraint, users must manually configure a1196Because of this constraint, users must manually configure a
1186network-script file for all physical adapters that will be members of1197network-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
1188 1199
1189/etc/sysconfig/network-scripts1200/etc/sysconfig/network-scripts
1190 1201
1191 The file name must be prefixed with "ifcfg-eth" and suffixed1202The file name must be prefixed with "ifcfg-eth" and suffixed
1192with the adapter's physical adapter number. For example, the script1203with the adapter's physical adapter number. For example, the script
1193for eth0 would be named /etc/sysconfig/network-scripts/ifcfg-eth0.1204for eth0 would be named /etc/sysconfig/network-scripts/ifcfg-eth0.
1194Place the following text in the file:1205Place the following text in the file::
1195 1206
1196DEVICE=eth01207 DEVICE=eth0
1197USERCTL=no1208 USERCTL=no
1198ONBOOT=yes1209 ONBOOT=yes
1199MASTER=bond01210 MASTER=bond0
1200SLAVE=yes1211 SLAVE=yes
1201BOOTPROTO=none1212 BOOTPROTO=none
1202 1213
1203 The DEVICE= line will be different for every ethX device and1214The DEVICE= line will be different for every ethX device and
1204must correspond with the name of the file, i.e., ifcfg-eth1 must have1215must correspond with the name of the file, i.e., ifcfg-eth1 must have
1205a device line of DEVICE=eth1. The setting of the MASTER= line will1216a device line of DEVICE=eth1. The setting of the MASTER= line will
1206also depend on the final bonding interface name chosen for your bond.1217also 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
1208one for each device, i.e., the first bonding instance is bond0, the1219one for each device, i.e., the first bonding instance is bond0, the
1209second is bond1, and so on.1220second is bond1, and so on.
1210 1221
1211 Next, create a bond network script. The file name for this1222Next, create a bond network script. The file name for this
1212script will be /etc/sysconfig/network-scripts/ifcfg-bondX where X is1223script will be /etc/sysconfig/network-scripts/ifcfg-bondX where X is
1213the number of the bond. For bond0 the file is named "ifcfg-bond0",1224the number of the bond. For bond0 the file is named "ifcfg-bond0",
1214for bond1 it is named "ifcfg-bond1", and so on. Within that file,1225for bond1 it is named "ifcfg-bond1", and so on. Within that file,
1215place the following text:1226place the following text::
1216 1227
1217DEVICE=bond01228 DEVICE=bond0
1218IPADDR=192.168.1.11229 IPADDR=192.168.1.1
1219NETMASK=255.255.255.01230 NETMASK=255.255.255.0
1220NETWORK=192.168.1.01231 NETWORK=192.168.1.0
1221BROADCAST=192.168.1.2551232 BROADCAST=192.168.1.255
1222ONBOOT=yes1233 ONBOOT=yes
1223BOOTPROTO=none1234 BOOTPROTO=none
1224USERCTL=no1235 USERCTL=no
1225 1236
1226 Be sure to change the networking specific lines (IPADDR,1237Be sure to change the networking specific lines (IPADDR,
1227NETMASK, NETWORK and BROADCAST) to match your network configuration.1238NETMASK, NETWORK and BROADCAST) to match your network configuration.
1228 1239
1229 For later versions of initscripts, such as that found with Fedora1240For later versions of initscripts, such as that found with Fedora
12307 (or later) and Red Hat Enterprise Linux version 5 (or later), it is possible,12417 (or later) and Red Hat Enterprise Linux version 5 (or later), it is possible,
1231and, indeed, preferable, to specify the bonding options in the ifcfg-bond01242and, indeed, preferable, to specify the bonding options in the ifcfg-bond0
1232file, e.g. a line of the format:1243file, e.g. a line of the format::
1233 1244
1234BONDING_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"
1235 1246
1236 will configure the bond with the specified options. The options1247will configure the bond with the specified options. The options
1237specified in BONDING_OPTS are identical to the bonding module parameters1248specified in BONDING_OPTS are identical to the bonding module parameters
1238except for the arp_ip_target field when using versions of initscripts older1249except for the arp_ip_target field when using versions of initscripts older
1239than and 8.57 (Fedora 8) and 8.45.19 (Red Hat Enterprise Linux 5.2). When1250than and 8.57 (Fedora 8) and 8.45.19 (Red Hat Enterprise Linux 5.2). When
1240using older versions each target should be included as a separate option and1251using older versions each target should be included as a separate option and
1241should be preceded by a '+' to indicate it should be added to the list of1252should be preceded by a '+' to indicate it should be added to the list of
1242queried targets, e.g.,1253queried targets, e.g.,::
1243 1254
1244 arp_ip_target=+192.168.1.1 arp_ip_target=+192.168.1.21255 arp_ip_target=+192.168.1.1 arp_ip_target=+192.168.1.2
1245 1256
1246 is the proper syntax to specify multiple targets. When specifying1257is the proper syntax to specify multiple targets. When specifying
1247options via BONDING_OPTS, it is not necessary to edit /etc/modprobe.d/*.conf.1258options via BONDING_OPTS, it is not necessary to edit
1259``/etc/modprobe.d/*.conf``.
1248 1260
1249 For even older versions of initscripts that do not support1261For even older versions of initscripts that do not support
1250BONDING_OPTS, it is necessary to edit /etc/modprobe.d/*.conf, depending upon1262BONDING_OPTS, it is necessary to edit /etc/modprobe.d/*.conf, depending upon
1251your distro) to load the bonding module with your desired options when the1263your distro) to load the bonding module with your desired options when the
1252bond0 interface is brought up. The following lines in /etc/modprobe.d/*.conf1264bond0 interface is brought up. The following lines in /etc/modprobe.d/*.conf
1253will load the bonding module, and select its options:1265will load the bonding module, and select its options:
1254 1266
1255alias bond0 bonding1267 alias bond0 bonding
1256options bond0 mode=balance-alb miimon=1001268 options bond0 mode=balance-alb miimon=100
1257 1269
1258 Replace the sample parameters with the appropriate set of1270Replace the sample parameters with the appropriate set of
1259options for your configuration.1271options for your configuration.
1260 1272
1261 Finally run "/etc/rc.d/init.d/network restart" as root. This1273Finally run "/etc/rc.d/init.d/network restart" as root. This
1262will restart the networking subsystem and your bond link should be now1274will restart the networking subsystem and your bond link should be now
1263up and running.1275up and running.
1264 1276
12653.2.1 Using DHCP with Initscripts12773.2.1 Using DHCP with Initscripts
1266---------------------------------1278---------------------------------
1267 1279
1268 Recent versions of initscripts (the versions supplied with Fedora1280Recent versions of initscripts (the versions supplied with Fedora
1269Core 3 and Red Hat Enterprise Linux 4, or later versions, are reported to1281Core 3 and Red Hat Enterprise Linux 4, or later versions, are reported to
1270work) have support for assigning IP information to bonding devices via1282work) have support for assigning IP information to bonding devices via
1271DHCP.1283DHCP.
1272 1284
1273 To configure bonding for DHCP, configure it as described1285To configure bonding for DHCP, configure it as described
1274above, except replace the line "BOOTPROTO=none" with "BOOTPROTO=dhcp"1286above, except replace the line "BOOTPROTO=none" with "BOOTPROTO=dhcp"
1275and add a line consisting of "TYPE=Bonding". Note that the TYPE value1287and add a line consisting of "TYPE=Bonding". Note that the TYPE value
1276is case sensitive.1288is case sensitive.
@@ -1278,7 +1290,7 @@ is case sensitive. · 1 unmodified line
12783.2.2 Configuring Multiple Bonds with Initscripts12903.2.2 Configuring Multiple Bonds with Initscripts
1279-------------------------------------------------1291-------------------------------------------------
1280 1292
1281 Initscripts packages that are included with Fedora 7 and Red Hat1293Initscripts packages that are included with Fedora 7 and Red Hat
1282Enterprise Linux 5 support multiple bonding interfaces by simply1294Enterprise Linux 5 support multiple bonding interfaces by simply
1283specifying the appropriate BONDING_OPTS= in ifcfg-bondX where X is the1295specifying the appropriate BONDING_OPTS= in ifcfg-bondX where X is the
1284number of the bond. This support requires sysfs support in the kernel,1296number of the bond. This support requires sysfs support in the kernel,
@@ -1290,77 +1302,77 @@ below. · 5 unmodified lines
12903.3 Configuring Bonding Manually with iproute213023.3 Configuring Bonding Manually with iproute2
1291-----------------------------------------------1303-----------------------------------------------
1292 1304
1293 This section applies to distros whose network initialization1305This section applies to distros whose network initialization
1294scripts (the sysconfig or initscripts package) do not have specific1306scripts (the sysconfig or initscripts package) do not have specific
1295knowledge of bonding. One such distro is SuSE Linux Enterprise Server1307knowledge of bonding. One such distro is SuSE Linux Enterprise Server
1296version 8.1308version 8.
1297 1309
1298 The general method for these systems is to place the bonding1310The general method for these systems is to place the bonding
1299module parameters into a config file in /etc/modprobe.d/ (as1311module parameters into a config file in /etc/modprobe.d/ (as
1300appropriate for the installed distro), then add modprobe and/or1312appropriate for the installed distro), then add modprobe and/or
1301`ip link` commands to the system's global init script. The name of1313`ip link` commands to the system's global init script. The name of
1302the global init script differs; for sysconfig, it is1314the global init script differs; for sysconfig, it is
1303/etc/init.d/boot.local and for initscripts it is /etc/rc.d/rc.local.1315/etc/init.d/boot.local and for initscripts it is /etc/rc.d/rc.local.
1304 1316
1305 For example, if you wanted to make a simple bond of two e1001317For example, if you wanted to make a simple bond of two e100
1306devices (presumed to be eth0 and eth1), and have it persist across1318devices (presumed to be eth0 and eth1), and have it persist across
1307reboots, edit the appropriate file (/etc/init.d/boot.local or1319reboots, 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::
1309 1321
1310modprobe bonding mode=balance-alb miimon=1001322 modprobe bonding mode=balance-alb miimon=100
1311modprobe e1001323 modprobe e100
1312ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up1324 ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up
1313ip link set eth0 master bond01325 ip link set eth0 master bond0
1314ip link set eth1 master bond01326 ip link set eth1 master bond0
1315 1327
1316 Replace the example bonding module parameters and bond01328Replace the example bonding module parameters and bond0
1317network configuration (IP address, netmask, etc) with the appropriate1329network configuration (IP address, netmask, etc) with the appropriate
1318values for your configuration.1330values for your configuration.
1319 1331
1320 Unfortunately, this method will not provide support for the1332Unfortunately, this method will not provide support for the
1321ifup and ifdown scripts on the bond devices. To reload the bonding1333ifup and ifdown scripts on the bond devices. To reload the bonding
1322configuration, it is necessary to run the initialization script, e.g.,1334configuration, it is necessary to run the initialization script, e.g.,::
1323 1335
1324# /etc/init.d/boot.local1336 # /etc/init.d/boot.local
1325 1337
1326 or1338or::
1327 1339
1328# /etc/rc.d/rc.local1340 # /etc/rc.d/rc.local
1329 1341
1330 It may be desirable in such a case to create a separate script1342It may be desirable in such a case to create a separate script
1331which only initializes the bonding configuration, then call that1343which only initializes the bonding configuration, then call that
1332separate script from within boot.local. This allows for bonding to be1344separate script from within boot.local. This allows for bonding to be
1333enabled without re-running the entire global init script.1345enabled without re-running the entire global init script.
1334 1346
1335 To shut down the bonding devices, it is necessary to first1347To shut down the bonding devices, it is necessary to first
1336mark the bonding device itself as being down, then remove the1348mark the bonding device itself as being down, then remove the
1337appropriate device driver modules. For our example above, you can do1349appropriate device driver modules. For our example above, you can do
1338the following:1350the following::
1339 1351
1340# ifconfig bond0 down1352 # ifconfig bond0 down
1341# rmmod bonding1353 # rmmod bonding
1342# rmmod e1001354 # rmmod e100
1343 1355
1344 Again, for convenience, it may be desirable to create a script1356Again, for convenience, it may be desirable to create a script
1345with these commands.1357with these commands.
1346 1358
1347 1359
13483.3.1 Configuring Multiple Bonds Manually13603.3.1 Configuring Multiple Bonds Manually
1349-----------------------------------------1361-----------------------------------------
1350 1362
1351 This section contains information on configuring multiple1363This section contains information on configuring multiple
1352bonding devices with differing options for those systems whose network1364bonding devices with differing options for those systems whose network
1353initialization scripts lack support for configuring multiple bonds.1365initialization scripts lack support for configuring multiple bonds.
1354 1366
1355 If you require multiple bonding devices, but all with the same1367If you require multiple bonding devices, but all with the same
1356options, you may wish to use the "max_bonds" module parameter,1368options, you may wish to use the "max_bonds" module parameter,
1357documented above.1369documented above.
1358 1370
1359 To create multiple bonding devices with differing options, it is1371To create multiple bonding devices with differing options, it is
1360preferable to use bonding parameters exported by sysfs, documented in the1372preferable to use bonding parameters exported by sysfs, documented in the
1361section below.1373section below.
1362 1374
1363 For versions of bonding without sysfs support, the only means to1375For versions of bonding without sysfs support, the only means to
1364provide multiple instances of bonding with differing options is to load1376provide multiple instances of bonding with differing options is to load
1365the bonding driver multiple times. Note that current versions of the1377the bonding driver multiple times. Note that current versions of the
1366sysconfig network initialization scripts handle this automatically; if1378sysconfig 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
1368section Configuring Bonding Devices, above, if you're not sure about your1380section Configuring Bonding Devices, above, if you're not sure about your
1369network initialization scripts.1381network initialization scripts.
1370 1382
1371 To load multiple instances of the module, it is necessary to1383To load multiple instances of the module, it is necessary to
1372specify a different name for each instance (the module loading system1384specify a different name for each instance (the module loading system
1373requires that every loaded module, even multiple instances of the same1385requires that every loaded module, even multiple instances of the same
1374module, have a unique name). This is accomplished by supplying multiple1386module, have a unique name). This is accomplished by supplying multiple
1375sets of bonding options in /etc/modprobe.d/*.conf, for example:1387sets of bonding options in ``/etc/modprobe.d/*.conf``, for example::
1376 1388
1377alias bond0 bonding1389 alias bond0 bonding
1378options bond0 -o bond0 mode=balance-rr miimon=1001390 options bond0 -o bond0 mode=balance-rr miimon=100
1379 1391
1380alias bond1 bonding1392 alias bond1 bonding
1381options bond1 -o bond1 mode=balance-alb miimon=501393 options bond1 -o bond1 mode=balance-alb miimon=50
1382 1394
1383 will load the bonding module two times. The first instance is1395will load the bonding module two times. The first instance is
1384named "bond0" and creates the bond0 device in balance-rr mode with an1396named "bond0" and creates the bond0 device in balance-rr mode with an
1385miimon of 100. The second instance is named "bond1" and creates the1397miimon of 100. The second instance is named "bond1" and creates the
1386bond1 device in balance-alb mode with an miimon of 50.1398bond1 device in balance-alb mode with an miimon of 50.
1387 1399
1388 In some circumstances (typically with older distributions),1400In some circumstances (typically with older distributions),
1389the above does not work, and the second bonding instance never sees1401the above does not work, and the second bonding instance never sees
1390its options. In that case, the second options line can be substituted1402its options. In that case, the second options line can be substituted
1391as follows:1403as follows::
1392 1404
1393install bond1 /sbin/modprobe --ignore-install bonding -o bond1 \1405 install bond1 /sbin/modprobe --ignore-install bonding -o bond1 \
1394 mode=balance-alb miimon=501406 mode=balance-alb miimon=50
1395 1407
1396 This may be repeated any number of times, specifying a new and1408This may be repeated any number of times, specifying a new and
1397unique name in place of bond1 for each subsequent instance.1409unique name in place of bond1 for each subsequent instance.
1398 1410
1399 It has been observed that some Red Hat supplied kernels are unable1411It has been observed that some Red Hat supplied kernels are unable
1400to rename modules at load time (the "-o bond1" part). Attempts to pass1412to rename modules at load time (the "-o bond1" part). Attempts to pass
1401that option to modprobe will produce an "Operation not permitted" error.1413that option to modprobe will produce an "Operation not permitted" error.
1402This has been reported on some Fedora Core kernels, and has been seen on1414This 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
14073.4 Configuring Bonding Manually via Sysfs14193.4 Configuring Bonding Manually via Sysfs
1408------------------------------------------1420------------------------------------------
1409 1421
1410 Starting with version 3.0.0, Channel Bonding may be configured1422Starting with version 3.0.0, Channel Bonding may be configured
1411via the sysfs interface. This interface allows dynamic configuration1423via the sysfs interface. This interface allows dynamic configuration
1412of all bonds in the system without unloading the module. It also1424of all bonds in the system without unloading the module. It also
1413allows for adding and removing bonds at runtime. Ifenslave is no1425allows for adding and removing bonds at runtime. Ifenslave is no
1414longer required, though it is still supported.1426longer required, though it is still supported.
1415 1427
1416 Use of the sysfs interface allows you to use multiple bonds1428Use of the sysfs interface allows you to use multiple bonds
1417with different configurations without having to reload the module.1429with different configurations without having to reload the module.
1418It also allows you to use multiple, differently configured bonds when1430It also allows you to use multiple, differently configured bonds when
1419bonding is compiled into the kernel.1431bonding is compiled into the kernel.
1420 1432
1421 You must have the sysfs filesystem mounted to configure1433You must have the sysfs filesystem mounted to configure
1422bonding this way. The examples in this document assume that you1434bonding this way. The examples in this document assume that you
1423are using the standard mount point for sysfs, e.g. /sys. If your1435are using the standard mount point for sysfs, e.g. /sys. If your
1424sysfs filesystem is mounted elsewhere, you will need to adjust the1436sysfs filesystem is mounted elsewhere, you will need to adjust the
@@ -1426,38 +1438,45 @@ example paths accordingly. · 1 unmodified line
1426 1438
1427Creating and Destroying Bonds1439Creating and Destroying Bonds
1428-----------------------------1440-----------------------------
1429To add a new bond foo:1441To add a new bond foo::
1430# echo +foo > /sys/class/net/bonding_masters1442
1443 # echo +foo > /sys/class/net/bonding_masters
1444
1445To remove an existing bond bar::
1431 1446
1432To remove an existing bond bar:1447 # echo -bar > /sys/class/net/bonding_masters
1433# echo -bar > /sys/class/net/bonding_masters
1434 1448
1435To show all existing bonds:1449To show all existing bonds::
1436# cat /sys/class/net/bonding_masters
1437 1450
1438NOTE: due to 4K size limitation of sysfs files, this list may be1451 # cat /sys/class/net/bonding_masters
1439truncated if you have more than a few hundred bonds. This is unlikely1452
1440to occur under normal operating conditions.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.
1441 1458
1442Adding and Removing Slaves1459Adding and Removing Slaves
1443--------------------------1460--------------------------
1444 Interfaces may be enslaved to a bond using the file1461Interfaces may be enslaved to a bond using the file
1445/sys/class/net/<bond>/bonding/slaves. The semantics for this file1462/sys/class/net/<bond>/bonding/slaves. The semantics for this file
1446are the same as for the bonding_masters file.1463are the same as for the bonding_masters file.
1447 1464
1448To enslave interface eth0 to bond bond0:1465To enslave interface eth0 to bond bond0::
1449# ifconfig bond0 up1466
1450# echo +eth0 > /sys/class/net/bond0/bonding/slaves1467 # ifconfig bond0 up
1468 # echo +eth0 > /sys/class/net/bond0/bonding/slaves
1451 1469
1452To free slave eth0 from bond bond0:1470To free slave eth0 from bond bond0::
1453# echo -eth0 > /sys/class/net/bond0/bonding/slaves
1454 1471
1455 When an interface is enslaved to a bond, symlinks between the1472 # echo -eth0 > /sys/class/net/bond0/bonding/slaves
1473
1474When an interface is enslaved to a bond, symlinks between the
1456two are created in the sysfs filesystem. In this case, you would get1475two are created in the sysfs filesystem. In this case, you would get
1457/sys/class/net/bond0/slave_eth0 pointing to /sys/class/net/eth0, and1476/sys/class/net/bond0/slave_eth0 pointing to /sys/class/net/eth0, and
1458/sys/class/net/eth0/master pointing to /sys/class/net/bond0.1477/sys/class/net/eth0/master pointing to /sys/class/net/bond0.
1459 1478
1460 This means that you can tell quickly whether or not an1479This means that you can tell quickly whether or not an
1461interface is enslaved by looking for the master symlink. Thus:1480interface is enslaved by looking for the master symlink. Thus:
1462# echo -eth0 > /sys/class/net/eth0/master/bonding/slaves1481# echo -eth0 > /sys/class/net/eth0/master/bonding/slaves
1463will free eth0 from whatever bond it is enslaved to, regardless of1482will free eth0 from whatever bond it is enslaved to, regardless of
@@ -1465,127 +1484,143 @@ the name of the bond interface. · 1 unmodified line
1465 1484
1466Changing a Bond's Configuration1485Changing a Bond's Configuration
1467-------------------------------1486-------------------------------
1468 Each bond may be configured individually by manipulating the1487Each bond may be configured individually by manipulating the
1469files located in /sys/class/net/<bond name>/bonding1488files located in /sys/class/net/<bond name>/bonding
1470 1489
1471 The names of these files correspond directly with the command-1490The names of these files correspond directly with the command-
1472line parameters described elsewhere in this file, and, with the1491line parameters described elsewhere in this file, and, with the
1473exception of arp_ip_target, they accept the same values. To see the1492exception of arp_ip_target, they accept the same values. To see the
1474current setting, simply cat the appropriate file.1493current setting, simply cat the appropriate file.
1475 1494
1476 A few examples will be given here; for specific usage1495A few examples will be given here; for specific usage
1477guidelines for each parameter, see the appropriate section in this1496guidelines for each parameter, see the appropriate section in this
1478document.1497document.
1479 1498
1480To configure bond0 for balance-alb mode:1499To configure bond0 for balance-alb mode::
1481# ifconfig bond0 down1500
1482# echo 6 > /sys/class/net/bond0/bonding/mode1501 # ifconfig bond0 down
1483 - or -1502 # echo 6 > /sys/class/net/bond0/bonding/mode
1484# echo balance-alb > /sys/class/net/bond0/bonding/mode1503 - or -
1485 NOTE: The bond interface must be down before the mode can be1504 # echo balance-alb > /sys/class/net/bond0/bonding/mode
1486changed.1505
1487 1506.. note::
1488To enable MII monitoring on bond0 with a 1 second interval:1507
1489# echo 1000 > /sys/class/net/bond0/bonding/miimon1508 The bond interface must be down before the mode can be changed.
1490 NOTE: If ARP monitoring is enabled, it will disabled when MII1509
1491monitoring is enabled, and vice-versa.1510To enable MII monitoring on bond0 with a 1 second interval::
1492 1511
1493To add ARP targets:1512 # echo 1000 > /sys/class/net/bond0/bonding/miimon
1494# echo +192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target1513
1495# echo +192.168.0.101 > /sys/class/net/bond0/bonding/arp_ip_target1514.. note::
1496 NOTE: up to 16 target addresses may be specified.1515
1497 1516 If ARP monitoring is enabled, it will disabled when MII
1498To remove an ARP target:1517 monitoring is enabled, and vice-versa.
1499# echo -192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target1518
1500 1519To add ARP targets::
1501To configure the interval between learning packet transmits:1520
1502# echo 12 > /sys/class/net/bond0/bonding/lp_interval1521 # echo +192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
1503 NOTE: the lp_interval is the number of seconds between instances where1522 # echo +192.168.0.101 > /sys/class/net/bond0/bonding/arp_ip_target
1504the bonding driver sends learning packets to each slaves peer switch. The1523
1505default interval is 1 second.1524.. note::
1525
1526 up to 16 target addresses may be specified.
1527
1528To remove an ARP target::
1529
1530 # echo -192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
1531
1532To 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.
1506 1541
1507Example Configuration1542Example Configuration
1508---------------------1543---------------------
1509 We begin with the same example that is shown in section 3.3,1544We begin with the same example that is shown in section 3.3,
1510executed with sysfs, and without using ifenslave.1545executed with sysfs, and without using ifenslave.
1511 1546
1512 To make a simple bond of two e100 devices (presumed to be eth01547To make a simple bond of two e100 devices (presumed to be eth0
1513and eth1), and have it persist across reboots, edit the appropriate1548and eth1), and have it persist across reboots, edit the appropriate
1514file (/etc/init.d/boot.local or /etc/rc.d/rc.local), and add the1549file (/etc/init.d/boot.local or /etc/rc.d/rc.local), and add the
1515following:1550following::
1516 1551
1517modprobe bonding1552 modprobe bonding
1518modprobe e1001553 modprobe e100
1519echo balance-alb > /sys/class/net/bond0/bonding/mode1554 echo balance-alb > /sys/class/net/bond0/bonding/mode
1520ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up1555 ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up
1521echo 100 > /sys/class/net/bond0/bonding/miimon1556 echo 100 > /sys/class/net/bond0/bonding/miimon
1522echo +eth0 > /sys/class/net/bond0/bonding/slaves1557 echo +eth0 > /sys/class/net/bond0/bonding/slaves
1523echo +eth1 > /sys/class/net/bond0/bonding/slaves1558 echo +eth1 > /sys/class/net/bond0/bonding/slaves
1524 1559
1525 To add a second bond, with two e1000 interfaces in1560To add a second bond, with two e1000 interfaces in
1526active-backup mode, using ARP monitoring, add the following lines to1561active-backup mode, using ARP monitoring, add the following lines to
1527your init script:1562your init script::
1528 1563
1529modprobe e10001564 modprobe e1000
1530echo +bond1 > /sys/class/net/bonding_masters1565 echo +bond1 > /sys/class/net/bonding_masters
1531echo active-backup > /sys/class/net/bond1/bonding/mode1566 echo active-backup > /sys/class/net/bond1/bonding/mode
1532ifconfig bond1 192.168.2.1 netmask 255.255.255.0 up1567 ifconfig bond1 192.168.2.1 netmask 255.255.255.0 up
1533echo +192.168.2.100 /sys/class/net/bond1/bonding/arp_ip_target1568 echo +192.168.2.100 /sys/class/net/bond1/bonding/arp_ip_target
1534echo 2000 > /sys/class/net/bond1/bonding/arp_interval1569 echo 2000 > /sys/class/net/bond1/bonding/arp_interval
1535echo +eth2 > /sys/class/net/bond1/bonding/slaves1570 echo +eth2 > /sys/class/net/bond1/bonding/slaves
1536echo +eth3 > /sys/class/net/bond1/bonding/slaves1571 echo +eth3 > /sys/class/net/bond1/bonding/slaves
1537 1572
15383.5 Configuration with Interfaces Support15733.5 Configuration with Interfaces Support
1539-----------------------------------------1574-----------------------------------------
1540 1575
1541 This section applies to distros which use /etc/network/interfaces file1576This section applies to distros which use /etc/network/interfaces file
1542to describe network interface configuration, most notably Debian and it's1577to describe network interface configuration, most notably Debian and it's
1543derivatives.1578derivatives.
1544 1579
1545 The ifup and ifdown commands on Debian don't support bonding out of1580The ifup and ifdown commands on Debian don't support bonding out of
1546the box. The ifenslave-2.6 package should be installed to provide bonding1581the box. The ifenslave-2.6 package should be installed to provide bonding
1547support. Once installed, this package will provide bond-* options to be used1582support. Once installed, this package will provide ``bond-*`` options
1548into /etc/network/interfaces.1583to be used into /etc/network/interfaces.
1549 1584
1550 Note that ifenslave-2.6 package will load the bonding module and use1585Note that ifenslave-2.6 package will load the bonding module and use
1551the ifenslave command when appropriate.1586the ifenslave command when appropriate.
1552 1587
1553Example Configurations1588Example Configurations
1554----------------------1589----------------------
1555 1590
1556In /etc/network/interfaces, the following stanza will configure bond0, in1591In /etc/network/interfaces, the following stanza will configure bond0, in
1557active-backup mode, with eth0 and eth1 as slaves.1592active-backup mode, with eth0 and eth1 as slaves::
1558 1593
1559auto bond01594 auto bond0
1560iface bond0 inet dhcp1595 iface bond0 inet dhcp
1561 bond-slaves eth0 eth11596 bond-slaves eth0 eth1
1562 bond-mode active-backup1597 bond-mode active-backup
1563 bond-miimon 1001598 bond-miimon 100
1564 bond-primary eth0 eth11599 bond-primary eth0 eth1
1565 1600
1566If the above configuration doesn't work, you might have a system using1601If the above configuration doesn't work, you might have a system using
1567upstart for system startup. This is most notably true for recent1602upstart for system startup. This is most notably true for recent
1568Ubuntu versions. The following stanza in /etc/network/interfaces will1603Ubuntu versions. The following stanza in /etc/network/interfaces will
1569produce the same result on those systems.1604produce the same result on those systems::
1570 1605
1571auto bond01606 auto bond0
1572iface bond0 inet dhcp1607 iface bond0 inet dhcp
1573 bond-slaves none1608 bond-slaves none
1574 bond-mode active-backup1609 bond-mode active-backup
1575 bond-miimon 1001610 bond-miimon 100
1576 1611
1577auto eth01612 auto eth0
1578iface eth0 inet manual1613 iface eth0 inet manual
1579 bond-master bond01614 bond-master bond0
1580 bond-primary eth0 eth11615 bond-primary eth0 eth1
1581 1616
1582auto eth11617 auto eth1
1583iface eth1 inet manual1618 iface eth1 inet manual
1584 bond-master bond01619 bond-master bond0
1585 bond-primary eth0 eth11620 bond-primary eth0 eth1
1586 1621
1587For a full list of bond-* supported options in /etc/network/interfaces and some1622For a full list of ``bond-*`` supported options in /etc/network/interfaces and
1588more advanced examples tailored to you particular distros, see the files in1623some more advanced examples tailored to you particular distros, see the files in
1589/usr/share/doc/ifenslave-2.6.1624/usr/share/doc/ifenslave-2.6.
1590 1625
15913.6 Overriding Configuration for Special Cases16263.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
1604using the traffic control utilities inherent in linux.1639using the traffic control utilities inherent in linux.
1605 1640
1606By default the bonding driver is multiqueue aware and 16 queues are created1641By default the bonding driver is multiqueue aware and 16 queues are created
1607when the driver initializes (see Documentation/networking/multiqueue.txt1642when the driver initializes (see Documentation/networking/multiqueue.rst
1608for details). If more or less queues are desired the module parameter1643for details). If more or less queues are desired the module parameter
1609tx_queues can be used to change this value. There is no sysfs parameter1644tx_queues can be used to change this value. There is no sysfs parameter
1610available as the allocation is done at module init time.1645available as the allocation is done at module init time.
1611 1646
1612The output of the file /proc/net/bonding/bondX has changed so the output Queue1647The output of the file /proc/net/bonding/bondX has changed so the output Queue
1613ID is now printed for each slave:1648ID is now printed for each slave::
1614 1649
1615Bonding Mode: fault-tolerance (active-backup)1650 Bonding Mode: fault-tolerance (active-backup)
1616Primary Slave: None1651 Primary Slave: None
1617Currently Active Slave: eth01652 Currently Active Slave: eth0
1618MII Status: up1653 MII Status: up
1619MII Polling Interval (ms): 01654 MII Polling Interval (ms): 0
1620Up Delay (ms): 01655 Up Delay (ms): 0
1621Down Delay (ms): 01656 Down Delay (ms): 0
1622 1657
1623Slave Interface: eth01658 Slave Interface: eth0
1624MII Status: up1659 MII Status: up
1625Link Failure Count: 01660 Link Failure Count: 0
1626Permanent HW addr: 00:1a:a0:12:8f:cb1661 Permanent HW addr: 00:1a:a0:12:8f:cb
1627Slave queue ID: 01662 Slave queue ID: 0
1628 1663
1629Slave Interface: eth11664 Slave Interface: eth1
1630MII Status: up1665 MII Status: up
1631Link Failure Count: 01666 Link Failure Count: 0
1632Permanent HW addr: 00:1a:a0:12:8f:cc1667 Permanent HW addr: 00:1a:a0:12:8f:cc
1633Slave queue ID: 21668 Slave queue ID: 2
1634 1669
1635The queue_id for a slave can be set using the command:1670The queue_id for a slave can be set using the command::
1636 1671
1637# echo "eth1:2" > /sys/class/net/bond0/bonding/queue_id1672 # echo "eth1:2" > /sys/class/net/bond0/bonding/queue_id
1638 1673
1639Any interface that needs a queue_id set should set it with multiple calls1674Any interface that needs a queue_id set should set it with multiple calls
1640like the one above until proper priorities are set for all interfaces. On1675like 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
1645a multiqueue qdisc and filters to bias certain traffic to transmit on certain1680a multiqueue qdisc and filters to bias certain traffic to transmit on certain
1646slave devices. For instance, say we wanted, in the above configuration to1681slave devices. For instance, say we wanted, in the above configuration to
1647force all traffic bound to 192.168.1.100 to use eth1 in the bond as its output1682force all traffic bound to 192.168.1.100 to use eth1 in the bond as its output
1648device. The following commands would accomplish this:1683device. The following commands would accomplish this::
1649 1684
1650# tc qdisc add dev bond0 handle 1 root multiq1685 # tc qdisc add dev bond0 handle 1 root multiq
1651 1686
1652# tc filter add dev bond0 protocol ip parent 1: prio 1 u32 match ip dst \1687 # tc filter add dev bond0 protocol ip parent 1: prio 1 u32 match ip \
1653 192.168.1.100 action skbedit queue_mapping 21688 dst 192.168.1.100 action skbedit queue_mapping 2
1654 1689
1655These commands tell the kernel to attach a multiqueue queue discipline to the1690These commands tell the kernel to attach a multiqueue queue discipline to the
1656bond0 interface and filter traffic enqueued to it, such that packets with a dst1691bond0 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
1663leaving the qid for a slave to 0 is the multiqueue awareness in the bonding1698leaving the qid for a slave to 0 is the multiqueue awareness in the bonding
1664driver that is now present. This awareness allows tc filters to be placed on1699driver that is now present. This awareness allows tc filters to be placed on
1665slave devices as well as bond devices and the bonding driver will simply act as1700slave devices as well as bond devices and the bonding driver will simply act as
1666a pass-through for selecting output queues on the slave device rather than 1701a pass-through for selecting output queues on the slave device rather than
1667output port selection.1702output port selection.
1668 1703
1669This feature first appeared in bonding driver version 3.7.0 and support for1704This feature first appeared in bonding driver version 3.7.0 and support for
@@ -1689,31 +1724,31 @@ few bonding parameters: · 19 unmodified lines
1689 (a) ad_actor_system : You can set a random mac-address that can be used for1724 (a) ad_actor_system : You can set a random mac-address that can be used for
1690 these LACPDU exchanges. The value can not be either NULL or Multicast.1725 these LACPDU exchanges. The value can not be either NULL or Multicast.
1691 Also it's preferable to set the local-admin bit. Following shell code1726 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::
1693 1728
1694 # sys_mac_addr=$(printf '%02x:%02x:%02x:%02x:%02x:%02x' \1729 # sys_mac_addr=$(printf '%02x:%02x:%02x:%02x:%02x:%02x' \
1695 $(( (RANDOM & 0xFE) | 0x02 )) \1730 $(( (RANDOM & 0xFE) | 0x02 )) \
1696 $(( RANDOM & 0xFF )) \1731 $(( RANDOM & 0xFF )) \
1697 $(( RANDOM & 0xFF )) \1732 $(( RANDOM & 0xFF )) \
1698 $(( RANDOM & 0xFF )) \1733 $(( RANDOM & 0xFF )) \
1699 $(( RANDOM & 0xFF )) \1734 $(( RANDOM & 0xFF )) \
1700 $(( RANDOM & 0xFF )))1735 $(( RANDOM & 0xFF )))
1701 # echo $sys_mac_addr > /sys/class/net/bond0/bonding/ad_actor_system1736 # echo $sys_mac_addr > /sys/class/net/bond0/bonding/ad_actor_system
1702 1737
1703 (b) ad_actor_sys_prio : Randomize the system priority. The default value1738 (b) ad_actor_sys_prio : Randomize the system priority. The default value
1704 is 65535, but system can take the value from 1 - 65535. Following shell1739 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::
1706 1741
1707 # sys_prio=$(( 1 + RANDOM + RANDOM ))1742 # sys_prio=$(( 1 + RANDOM + RANDOM ))
1708 # echo $sys_prio > /sys/class/net/bond0/bonding/ad_actor_sys_prio1743 # echo $sys_prio > /sys/class/net/bond0/bonding/ad_actor_sys_prio
1709 1744
1710 (c) ad_user_port_key : Use the user portion of the port-key. The default1745 (c) ad_user_port_key : Use the user portion of the port-key. The default
1711 keeps this empty. These are the upper 10 bits of the port-key and value1746 keeps this empty. These are the upper 10 bits of the port-key and value
1712 ranges from 0 - 1023. Following shell code generates these 10 bits and1747 ranges from 0 - 1023. Following shell code generates these 10 bits and
1713 sets it.1748 sets it::
1714 1749
1715 # usr_port_key=$(( RANDOM & 0x3FF ))1750 # usr_port_key=$(( RANDOM & 0x3FF ))
1716 # echo $usr_port_key > /sys/class/net/bond0/bonding/ad_user_port_key1751 # echo $usr_port_key > /sys/class/net/bond0/bonding/ad_user_port_key
1717 1752
1718 1753
17194 Querying Bonding Configuration17544 Querying Bonding Configuration
@@ -1722,81 +1757,81 @@ few bonding parameters: · 2 unmodified lines
17224.1 Bonding Configuration17574.1 Bonding Configuration
1723-------------------------1758-------------------------
1724 1759
1725 Each bonding device has a read-only file residing in the1760Each bonding device has a read-only file residing in the
1726/proc/net/bonding directory. The file contents include information1761/proc/net/bonding directory. The file contents include information
1727about the bonding configuration, options and state of each slave.1762about the bonding configuration, options and state of each slave.
1728 1763
1729 For example, the contents of /proc/net/bonding/bond0 after the1764For example, the contents of /proc/net/bonding/bond0 after the
1730driver is loaded with parameters of mode=0 and miimon=1000 is1765driver is loaded with parameters of mode=0 and miimon=1000 is
1731generally as follows:1766generally as follows::
1732 1767
1733 Ethernet Channel Bonding Driver: 2.6.1 (October 29, 2004)1768 Ethernet Channel Bonding Driver: 2.6.1 (October 29, 2004)
1734 Bonding Mode: load balancing (round-robin)1769 Bonding Mode: load balancing (round-robin)
1735 Currently Active Slave: eth01770 Currently Active Slave: eth0
1736 MII Status: up1771 MII Status: up
1737 MII Polling Interval (ms): 10001772 MII Polling Interval (ms): 1000
1738 Up Delay (ms): 01773 Up Delay (ms): 0
1739 Down Delay (ms): 01774 Down Delay (ms): 0
1740 1775
1741 Slave Interface: eth11776 Slave Interface: eth1
1742 MII Status: up1777 MII Status: up
1743 Link Failure Count: 11778 Link Failure Count: 1
1744 1779
1745 Slave Interface: eth01780 Slave Interface: eth0
1746 MII Status: up1781 MII Status: up
1747 Link Failure Count: 11782 Link Failure Count: 1
1748 1783
1749 The precise format and contents will change depending upon the1784The precise format and contents will change depending upon the
1750bonding configuration, state, and version of the bonding driver.1785bonding configuration, state, and version of the bonding driver.
1751 1786
17524.2 Network configuration17874.2 Network configuration
1753-------------------------1788-------------------------
1754 1789
1755 The network configuration can be inspected using the ifconfig1790The network configuration can be inspected using the ifconfig
1756command. Bonding devices will have the MASTER flag set; Bonding slave1791command. Bonding devices will have the MASTER flag set; Bonding slave
1757devices will have the SLAVE flag set. The ifconfig output does not1792devices will have the SLAVE flag set. The ifconfig output does not
1758contain information on which slaves are associated with which masters.1793contain information on which slaves are associated with which masters.
1759 1794
1760 In the example below, the bond0 interface is the master1795In the example below, the bond0 interface is the master
1761(MASTER) while eth0 and eth1 are slaves (SLAVE). Notice all slaves of1796(MASTER) while eth0 and eth1 are slaves (SLAVE). Notice all slaves of
1762bond0 have the same MAC address (HWaddr) as bond0 for all modes except1797bond0 have the same MAC address (HWaddr) as bond0 for all modes except
1763TLB and ALB that require a unique MAC address for each slave.1798TLB and ALB that require a unique MAC address for each slave::
1764 1799
1765# /sbin/ifconfig1800 # /sbin/ifconfig
1766bond0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B41801 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.01802 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:11803 UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
1769 RX packets:7224794 errors:0 dropped:0 overruns:0 frame:01804 RX packets:7224794 errors:0 dropped:0 overruns:0 frame:0
1770 TX packets:3286647 errors:1 dropped:0 overruns:1 carrier:01805 TX packets:3286647 errors:1 dropped:0 overruns:1 carrier:0
1771 collisions:0 txqueuelen:01806 collisions:0 txqueuelen:0
1772 1807
1773eth0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B41808 eth0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4
1774 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:11809 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
1775 RX packets:3573025 errors:0 dropped:0 overruns:0 frame:01810 RX packets:3573025 errors:0 dropped:0 overruns:0 frame:0
1776 TX packets:1643167 errors:1 dropped:0 overruns:1 carrier:01811 TX packets:1643167 errors:1 dropped:0 overruns:1 carrier:0
1777 collisions:0 txqueuelen:1001812 collisions:0 txqueuelen:100
1778 Interrupt:10 Base address:0x10801813 Interrupt:10 Base address:0x1080
1779 1814
1780eth1 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B41815 eth1 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4
1781 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:11816 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
1782 RX packets:3651769 errors:0 dropped:0 overruns:0 frame:01817 RX packets:3651769 errors:0 dropped:0 overruns:0 frame:0
1783 TX packets:1643480 errors:0 dropped:0 overruns:0 carrier:01818 TX packets:1643480 errors:0 dropped:0 overruns:0 carrier:0
1784 collisions:0 txqueuelen:1001819 collisions:0 txqueuelen:100
1785 Interrupt:9 Base address:0x14001820 Interrupt:9 Base address:0x1400
1786 1821
17875. Switch Configuration18225. Switch Configuration
1788=======================1823=======================
1789 1824
1790 For this section, "switch" refers to whatever system the1825For this section, "switch" refers to whatever system the
1791bonded devices are directly connected to (i.e., where the other end of1826bonded devices are directly connected to (i.e., where the other end of
1792the cable plugs into). This may be an actual dedicated switch device,1827the cable plugs into). This may be an actual dedicated switch device,
1793or it may be another regular system (e.g., another computer running1828or it may be another regular system (e.g., another computer running
1794Linux),1829Linux),
1795 1830
1796 The active-backup, balance-tlb and balance-alb modes do not1831The active-backup, balance-tlb and balance-alb modes do not
1797require any specific configuration of the switch.1832require any specific configuration of the switch.
1798 1833
1799 The 802.3ad mode requires that the switch have the appropriate1834The 802.3ad mode requires that the switch have the appropriate
1800ports configured as an 802.3ad aggregation. The precise method used1835ports configured as an 802.3ad aggregation. The precise method used
1801to configure this varies from switch to switch, but, for example, a1836to configure this varies from switch to switch, but, for example, a
1802Cisco 3550 series switch requires that the appropriate ports first be1837Cisco 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
1804etherchannel is set to mode "lacp" to enable 802.3ad (instead of1839etherchannel is set to mode "lacp" to enable 802.3ad (instead of
1805standard EtherChannel).1840standard EtherChannel).
1806 1841
1807 The balance-rr, balance-xor and broadcast modes generally1842The balance-rr, balance-xor and broadcast modes generally
1808require that the switch have the appropriate ports grouped together.1843require that the switch have the appropriate ports grouped together.
1809The nomenclature for such a group differs between switches, it may be1844The nomenclature for such a group differs between switches, it may be
1810called an "etherchannel" (as in the Cisco example, above), a "trunk1845called an "etherchannel" (as in the Cisco example, above), a "trunk
@@ -1820,7 +1855,7 @@ with another EtherChannel group. · 9 unmodified lines
18206. 802.1q VLAN Support18556. 802.1q VLAN Support
1821======================1856======================
1822 1857
1823 It is possible to configure VLAN devices over a bond interface1858It is possible to configure VLAN devices over a bond interface
1824using the 8021q driver. However, only packets coming from the 8021q1859using the 8021q driver. However, only packets coming from the 8021q
1825driver and passing through bonding will be tagged by default. Self1860driver and passing through bonding will be tagged by default. Self
1826generated packets, for example, bonding's learning packets or ARP1861generated 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
1829"learn" the VLAN IDs configured above it, and use those IDs to tag1864"learn" the VLAN IDs configured above it, and use those IDs to tag
1830self generated packets.1865self generated packets.
1831 1866
1832 For reasons of simplicity, and to support the use of adapters1867For reasons of simplicity, and to support the use of adapters
1833that can do VLAN hardware acceleration offloading, the bonding1868that can do VLAN hardware acceleration offloading, the bonding
1834interface declares itself as fully hardware offloading capable, it gets1869interface declares itself as fully hardware offloading capable, it gets
1835the add_vid/kill_vid notifications to gather the necessary1870the 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
1839"un-accelerated" by the bonding driver so the VLAN tag sits in the1874"un-accelerated" by the bonding driver so the VLAN tag sits in the
1840regular location.1875regular location.
1841 1876
1842 VLAN interfaces *must* be added on top of a bonding interface1877VLAN interfaces *must* be added on top of a bonding interface
1843only after enslaving at least one slave. The bonding interface has a1878only after enslaving at least one slave. The bonding interface has a
1844hardware address of 00:00:00:00:00:00 until the first slave is added.1879hardware address of 00:00:00:00:00:00 until the first slave is added.
1845If the VLAN interface is created prior to the first enslavement, it1880If 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
1847is attached to the bond, the bond device itself will pick up the1882is attached to the bond, the bond device itself will pick up the
1848slave's hardware address, which is then available for the VLAN device.1883slave's hardware address, which is then available for the VLAN device.
1849 1884
1850 Also, be aware that a similar problem can occur if all slaves1885Also, be aware that a similar problem can occur if all slaves
1851are released from a bond that still has one or more VLAN interfaces on1886are released from a bond that still has one or more VLAN interfaces on
1852top of it. When a new slave is added, the bonding interface will1887top of it. When a new slave is added, the bonding interface will
1853obtain its hardware address from the first slave, which might not1888obtain its hardware address from the first slave, which might not
1854match the hardware address of the VLAN interfaces (which was1889match the hardware address of the VLAN interfaces (which was
1855ultimately copied from an earlier slave).1890ultimately copied from an earlier slave).
1856 1891
1857 There are two methods to insure that the VLAN device operates1892There are two methods to insure that the VLAN device operates
1858with the correct hardware address if all slaves are removed from a1893with the correct hardware address if all slaves are removed from a
1859bond interface:1894bond interface:
1860 1895
1861 1. Remove all VLAN interfaces then recreate them18961. Remove all VLAN interfaces then recreate them
1862 1897
1863 2. Set the bonding interface's hardware address so that it18982. Set the bonding interface's hardware address so that it
1864matches the hardware address of the VLAN interfaces.1899matches the hardware address of the VLAN interfaces.
1865 1900
1866 Note that changing a VLAN interface's HW address would set the1901Note that changing a VLAN interface's HW address would set the
1867underlying device -- i.e. the bonding interface -- to promiscuous1902underlying device -- i.e. the bonding interface -- to promiscuous
1868mode, which might not be what you want.1903mode, which might not be what you want.
1869 1904
@@ -1871,24 +1906,24 @@ mode, which might not be what you want. · 1 unmodified line
18717. Link Monitoring19067. Link Monitoring
1872==================1907==================
1873 1908
1874 The bonding driver at present supports two schemes for1909The bonding driver at present supports two schemes for
1875monitoring a slave device's link state: the ARP monitor and the MII1910monitoring a slave device's link state: the ARP monitor and the MII
1876monitor.1911monitor.
1877 1912
1878 At the present time, due to implementation restrictions in the1913At the present time, due to implementation restrictions in the
1879bonding driver itself, it is not possible to enable both ARP and MII1914bonding driver itself, it is not possible to enable both ARP and MII
1880monitoring simultaneously.1915monitoring simultaneously.
1881 1916
18827.1 ARP Monitor Operation19177.1 ARP Monitor Operation
1883-------------------------1918-------------------------
1884 1919
1885 The ARP monitor operates as its name suggests: it sends ARP1920The ARP monitor operates as its name suggests: it sends ARP
1886queries to one or more designated peer systems on the network, and1921queries to one or more designated peer systems on the network, and
1887uses the response as an indication that the link is operating. This1922uses the response as an indication that the link is operating. This
1888gives some assurance that traffic is actually flowing to and from one1923gives some assurance that traffic is actually flowing to and from one
1889or more peers on the local network.1924or more peers on the local network.
1890 1925
1891 The ARP monitor relies on the device driver itself to verify1926The ARP monitor relies on the device driver itself to verify
1892that traffic is flowing. In particular, the driver must keep up to1927that traffic is flowing. In particular, the driver must keep up to
1893date the last receive time, dev->last_rx. Drivers that use NETIF_F_LLTX1928date the last receive time, dev->last_rx. Drivers that use NETIF_F_LLTX
1894flag must also update netdev_queue->trans_start. If they do not, then the1929flag 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
19007.2 Configuring Multiple ARP Targets19357.2 Configuring Multiple ARP Targets
1901------------------------------------1936------------------------------------
1902 1937
1903 While ARP monitoring can be done with just one target, it can1938While ARP monitoring can be done with just one target, it can
1904be useful in a High Availability setup to have several targets to1939be useful in a High Availability setup to have several targets to
1905monitor. In the case of just one target, the target itself may go1940monitor. In the case of just one target, the target itself may go
1906down or have a problem making it unresponsive to ARP requests. Having1941down or have a problem making it unresponsive to ARP requests. Having
1907an additional target (or several) increases the reliability of the ARP1942an additional target (or several) increases the reliability of the ARP
1908monitoring.1943monitoring.
1909 1944
1910 Multiple ARP targets must be separated by commas as follows:1945Multiple ARP targets must be separated by commas as follows::
1911 1946
1912# example options for ARP monitoring with three targets1947 # example options for ARP monitoring with three targets
1913alias bond0 bonding1948 alias bond0 bonding
1914options bond0 arp_interval=60 arp_ip_target=192.168.0.1,192.168.0.3,192.168.0.91949 options bond0 arp_interval=60 arp_ip_target=192.168.0.1,192.168.0.3,192.168.0.9
1915 1950
1916 For just a single target the options would resemble:1951For just a single target the options would resemble::
1917 1952
1918# example options for ARP monitoring with one target1953 # example options for ARP monitoring with one target
1919alias bond0 bonding1954 alias bond0 bonding
1920options bond0 arp_interval=60 arp_ip_target=192.168.0.1001955 options bond0 arp_interval=60 arp_ip_target=192.168.0.100
1921 1956
1922 1957
19237.3 MII Monitor Operation19587.3 MII Monitor Operation
1924-------------------------1959-------------------------
1925 1960
1926 The MII monitor monitors only the carrier state of the local1961The MII monitor monitors only the carrier state of the local
1927network interface. It accomplishes this in one of three ways: by1962network interface. It accomplishes this in one of three ways: by
1928depending upon the device driver to maintain its carrier state, by1963depending upon the device driver to maintain its carrier state, by
1929querying the device's MII registers, or by making an ethtool query to1964querying the device's MII registers, or by making an ethtool query to
1930the device.1965the device.
1931 1966
1932 If the use_carrier module parameter is 1 (the default value),1967If the use_carrier module parameter is 1 (the default value),
1933then the MII monitor will rely on the driver for carrier state1968then the MII monitor will rely on the driver for carrier state
1934information (via the netif_carrier subsystem). As explained in the1969information (via the netif_carrier subsystem). As explained in the
1935use_carrier parameter information, above, if the MII monitor fails to1970use_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
1937disconnected), it may be that the driver does not support1972disconnected), it may be that the driver does not support
1938netif_carrier.1973netif_carrier.
1939 1974
1940 If use_carrier is 0, then the MII monitor will first query the1975If use_carrier is 0, then the MII monitor will first query the
1941device's (via ioctl) MII registers and check the link state. If that1976device's (via ioctl) MII registers and check the link state. If that
1942request fails (not just that it returns carrier down), then the MII1977request fails (not just that it returns carrier down), then the MII
1943monitor will make an ethtool ETHOOL_GLINK request to attempt to obtain1978monitor will make an ethtool ETHOOL_GLINK request to attempt to obtain
@@ -1952,25 +1987,25 @@ up. · 8 unmodified lines
19528.1 Adventures in Routing19878.1 Adventures in Routing
1953-------------------------1988-------------------------
1954 1989
1955 When bonding is configured, it is important that the slave1990When bonding is configured, it is important that the slave
1956devices not have routes that supersede routes of the master (or,1991devices not have routes that supersede routes of the master (or,
1957generally, not have routes at all). For example, suppose the bonding1992generally, not have routes at all). For example, suppose the bonding
1958device bond0 has two slaves, eth0 and eth1, and the routing table is1993device bond0 has two slaves, eth0 and eth1, and the routing table is
1959as follows:1994as follows::
1960 1995
1961Kernel IP routing table1996 Kernel IP routing table
1962Destination Gateway Genmask Flags MSS Window irtt Iface1997 Destination Gateway Genmask Flags MSS Window irtt Iface
196310.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 eth01998 10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 eth0
196410.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 eth11999 10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 eth1
196510.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 bond02000 10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0 bond0
1966127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo2001 127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo
1967 2002
1968 This routing configuration will likely still update the2003This routing configuration will likely still update the
1969receive/transmit times in the driver (needed by the ARP monitor), but2004receive/transmit times in the driver (needed by the ARP monitor), but
1970may bypass the bonding driver (because outgoing traffic to, in this2005may bypass the bonding driver (because outgoing traffic to, in this
1971case, another host on network 10 would use eth0 or eth1 before bond0).2006case, another host on network 10 would use eth0 or eth1 before bond0).
1972 2007
1973 The ARP monitor (and ARP itself) may become confused by this2008The ARP monitor (and ARP itself) may become confused by this
1974configuration, because ARP requests (generated by the ARP monitor)2009configuration, because ARP requests (generated by the ARP monitor)
1975will be sent on one interface (bond0), but the corresponding reply2010will be sent on one interface (bond0), but the corresponding reply
1976will arrive on a different interface (eth0). This reply looks to ARP2011will 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
1978interface basis), and is discarded. The MII monitor is not affected2013interface basis), and is discarded. The MII monitor is not affected
1979by the state of the routing table.2014by the state of the routing table.
1980 2015
1981 The solution here is simply to insure that slaves do not have2016The solution here is simply to insure that slaves do not have
1982routes of their own, and if for some reason they must, those routes do2017routes of their own, and if for some reason they must, those routes do
1983not supersede routes of their master. This should generally be the2018not supersede routes of their master. This should generally be the
1984case, but unusual configurations or errant manual or automatic static2019case, but unusual configurations or errant manual or automatic static
@@ -1987,22 +2022,22 @@ route additions may cause trouble. · 2 unmodified lines
19878.2 Ethernet Device Renaming20228.2 Ethernet Device Renaming
1988----------------------------2023----------------------------
1989 2024
1990 On systems with network configuration scripts that do not2025On systems with network configuration scripts that do not
1991associate physical devices directly with network interface names (so2026associate physical devices directly with network interface names (so
1992that the same physical device always has the same "ethX" name), it may2027that the same physical device always has the same "ethX" name), it may
1993be necessary to add some special logic to config files in2028be necessary to add some special logic to config files in
1994/etc/modprobe.d/.2029/etc/modprobe.d/.
1995 2030
1996 For example, given a modules.conf containing the following:2031For example, given a modules.conf containing the following::
1997 2032
1998alias bond0 bonding2033 alias bond0 bonding
1999options bond0 mode=some-mode miimon=502034 options bond0 mode=some-mode miimon=50
2000alias eth0 tg32035 alias eth0 tg3
2001alias eth1 tg32036 alias eth1 tg3
2002alias eth2 e10002037 alias eth2 e1000
2003alias eth3 e10002038 alias eth3 e1000
2004 2039
2005 If neither eth0 and eth1 are slaves to bond0, then when the2040If neither eth0 and eth1 are slaves to bond0, then when the
2006bond0 interface comes up, the devices may end up reordered. This2041bond0 interface comes up, the devices may end up reordered. This
2007happens because bonding is loaded first, then its slave device's2042happens because bonding is loaded first, then its slave device's
2008drivers are loaded next. Since no other drivers have been loaded,2043drivers 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
2010devices, but the bonding configuration tries to enslave eth2 and eth32045devices, but the bonding configuration tries to enslave eth2 and eth3
2011(which may later be assigned to the tg3 devices).2046(which may later be assigned to the tg3 devices).
2012 2047
2013 Adding the following:2048Adding the following::
2014 2049
2015add above bonding e1000 tg32050 add above bonding e1000 tg3
2016 2051
2017 causes modprobe to load e1000 then tg3, in that order, when2052causes modprobe to load e1000 then tg3, in that order, when
2018bonding is loaded. This command is fully documented in the2053bonding is loaded. This command is fully documented in the
2019modules.conf manual page.2054modules.conf manual page.
2020 2055
2021 On systems utilizing modprobe an equivalent problem can occur.2056On systems utilizing modprobe an equivalent problem can occur.
2022In this case, the following can be added to config files in2057In this case, the following can be added to config files in
2023/etc/modprobe.d/ as:2058/etc/modprobe.d/ as::
2024 2059
2025softdep bonding pre: tg3 e10002060 softdep bonding pre: tg3 e1000
2026 2061
2027 This will load tg3 and e1000 modules before loading the bonding one.2062This will load tg3 and e1000 modules before loading the bonding one.
2028Full documentation on this can be found in the modprobe.d and modprobe2063Full documentation on this can be found in the modprobe.d and modprobe
2029manual pages.2064manual pages.
2030 2065
20318.3. Painfully Slow Or No Failed Link Detection By Miimon20668.3. Painfully Slow Or No Failed Link Detection By Miimon
2032---------------------------------------------------------2067---------------------------------------------------------
2033 2068
2034 By default, bonding enables the use_carrier option, which2069By default, bonding enables the use_carrier option, which
2035instructs bonding to trust the driver to maintain carrier state.2070instructs bonding to trust the driver to maintain carrier state.
2036 2071
2037 As discussed in the options section, above, some drivers do2072As discussed in the options section, above, some drivers do
2038not support the netif_carrier_on/_off link state tracking system.2073not support the netif_carrier_on/_off link state tracking system.
2039With use_carrier enabled, bonding will always see these links as up,2074With use_carrier enabled, bonding will always see these links as up,
2040regardless of their actual state.2075regardless of their actual state.
2041 2076
2042 Additionally, other drivers do support netif_carrier, but do2077Additionally, other drivers do support netif_carrier, but do
2043not maintain it in real time, e.g., only polling the link state at2078not maintain it in real time, e.g., only polling the link state at
2044some fixed interval. In this case, miimon will detect failures, but2079some fixed interval. In this case, miimon will detect failures, but
2045only after some long period of time has expired. If it appears that2080only 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
2051use_carrier=0 does not improve the failover, then the driver may cache2086use_carrier=0 does not improve the failover, then the driver may cache
2052the registers, or the problem may be elsewhere.2087the registers, or the problem may be elsewhere.
2053 2088
2054 Also, remember that miimon only checks for the device's2089Also, remember that miimon only checks for the device's
2055carrier state. It has no way to determine the state of devices on or2090carrier state. It has no way to determine the state of devices on or
2056beyond other ports of a switch, or if a switch is refusing to pass2091beyond other ports of a switch, or if a switch is refusing to pass
2057traffic while still maintaining carrier on.2092traffic while still maintaining carrier on.
@@ -2059,7 +2094,7 @@ traffic while still maintaining carrier on. · 1 unmodified line
20599. SNMP agents20949. SNMP agents
2060===============2095===============
2061 2096
2062 If running SNMP agents, the bonding driver should be loaded2097If running SNMP agents, the bonding driver should be loaded
2063before any network drivers participating in a bond. This requirement2098before any network drivers participating in a bond. This requirement
2064is due to the interface index (ipAdEntIfIndex) being associated to2099is due to the interface index (ipAdEntIfIndex) being associated to
2065the first interface found with a given IP address. That is, there is2100the 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
2070address 192.168.1.1 has an interface index of 2 which indexes to eth02105address 192.168.1.1 has an interface index of 2 which indexes to eth0
2071in the ifDescr table (ifDescr.2).2106in the ifDescr table (ifDescr.2).
2072 2107
2108::
2109
2073 interfaces.ifTable.ifEntry.ifDescr.1 = lo2110 interfaces.ifTable.ifEntry.ifDescr.1 = lo
2074 interfaces.ifTable.ifEntry.ifDescr.2 = eth02111 interfaces.ifTable.ifEntry.ifDescr.2 = eth0
2075 interfaces.ifTable.ifEntry.ifDescr.3 = eth12112 interfaces.ifTable.ifEntry.ifDescr.3 = eth1
@@ -2081,7 +2118,7 @@ in the ifDescr table (ifDescr.2). · 5 unmodified lines
2081 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.74.20.94 = 42118 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.74.20.94 = 4
2082 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0.1 = 12119 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0.1 = 1
2083 2120
2084 This problem is avoided by loading the bonding driver before2121This problem is avoided by loading the bonding driver before
2085any network drivers participating in a bond. Below is an example of2122any network drivers participating in a bond. Below is an example of
2086loading the bonding driver first, the IP address 192.168.1.1 is2123loading the bonding driver first, the IP address 192.168.1.1 is
2087correctly associated with ifDescr.2.2124correctly associated with ifDescr.2.
@@ -2097,7 +2134,7 @@ correctly associated with ifDescr.2. · 9 unmodified lines
2097 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.74.20.94 = 52134 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.74.20.94 = 5
2098 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0.1 = 12135 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0.1 = 1
2099 2136
2100 While some distributions may not report the interface name in2137While some distributions may not report the interface name in
2101ifDescr, the association between the IP address and IfIndex remains2138ifDescr, the association between the IP address and IfIndex remains
2102and SNMP functions such as Interface_Scan_Next will report that2139and SNMP functions such as Interface_Scan_Next will report that
2103association.2140association.
@@ -2105,34 +2142,34 @@ association. · 1 unmodified line
210510. Promiscuous mode214210. Promiscuous mode
2106====================2143====================
2107 2144
2108 When running network monitoring tools, e.g., tcpdump, it is2145When running network monitoring tools, e.g., tcpdump, it is
2109common to enable promiscuous mode on the device, so that all traffic2146common to enable promiscuous mode on the device, so that all traffic
2110is seen (instead of seeing only traffic destined for the local host).2147is seen (instead of seeing only traffic destined for the local host).
2111The bonding driver handles promiscuous mode changes to the bonding2148The bonding driver handles promiscuous mode changes to the bonding
2112master device (e.g., bond0), and propagates the setting to the slave2149master device (e.g., bond0), and propagates the setting to the slave
2113devices.2150devices.
2114 2151
2115 For the balance-rr, balance-xor, broadcast, and 802.3ad modes,2152For the balance-rr, balance-xor, broadcast, and 802.3ad modes,
2116the promiscuous mode setting is propagated to all slaves.2153the promiscuous mode setting is propagated to all slaves.
2117 2154
2118 For the active-backup, balance-tlb and balance-alb modes, the2155For the active-backup, balance-tlb and balance-alb modes, the
2119promiscuous mode setting is propagated only to the active slave.2156promiscuous mode setting is propagated only to the active slave.
2120 2157
2121 For balance-tlb mode, the active slave is the slave currently2158For balance-tlb mode, the active slave is the slave currently
2122receiving inbound traffic.2159receiving inbound traffic.
2123 2160
2124 For balance-alb mode, the active slave is the slave used as a2161For balance-alb mode, the active slave is the slave used as a
2125"primary." This slave is used for mode-specific control traffic, for2162"primary." This slave is used for mode-specific control traffic, for
2126sending to peers that are unassigned or if the load is unbalanced.2163sending to peers that are unassigned or if the load is unbalanced.
2127 2164
2128 For the active-backup, balance-tlb and balance-alb modes, when2165For the active-backup, balance-tlb and balance-alb modes, when
2129the active slave changes (e.g., due to a link failure), the2166the active slave changes (e.g., due to a link failure), the
2130promiscuous setting will be propagated to the new active slave.2167promiscuous setting will be propagated to the new active slave.
2131 2168
213211. Configuring Bonding for High Availability216911. Configuring Bonding for High Availability
2133=============================================2170=============================================
2134 2171
2135 High Availability refers to configurations that provide2172High Availability refers to configurations that provide
2136maximum network availability by having redundant or backup devices,2173maximum network availability by having redundant or backup devices,
2137links or switches between the host and the rest of the world. The2174links or switches between the host and the rest of the world. The
2138goal is to provide the maximum availability of network connectivity2175goal is to provide the maximum availability of network connectivity
@@ -2142,7 +2179,7 @@ could provide higher throughput. · 3 unmodified lines
214211.1 High Availability in a Single Switch Topology217911.1 High Availability in a Single Switch Topology
2143--------------------------------------------------2180--------------------------------------------------
2144 2181
2145 If two hosts (or a host and a single switch) are directly2182If two hosts (or a host and a single switch) are directly
2146connected via multiple physical links, then there is no availability2183connected via multiple physical links, then there is no availability
2147penalty to optimizing for maximum bandwidth. In this case, there is2184penalty to optimizing for maximum bandwidth. In this case, there is
2148only one switch (or peer), so if it fails, there is no alternative2185only 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
2150support link monitoring of their members, so if individual links fail,2187support link monitoring of their members, so if individual links fail,
2151the load will be rebalanced across the remaining devices.2188the load will be rebalanced across the remaining devices.
2152 2189
2153 See Section 12, "Configuring Bonding for Maximum Throughput"2190See Section 12, "Configuring Bonding for Maximum Throughput"
2154for information on configuring bonding with one peer device.2191for information on configuring bonding with one peer device.
2155 2192
215611.2 High Availability in a Multiple Switch Topology219311.2 High Availability in a Multiple Switch Topology
2157----------------------------------------------------2194----------------------------------------------------
2158 2195
2159 With multiple switches, the configuration of bonding and the2196With multiple switches, the configuration of bonding and the
2160network changes dramatically. In multiple switch topologies, there is2197network changes dramatically. In multiple switch topologies, there is
2161a trade off between network availability and usable bandwidth.2198a trade off between network availability and usable bandwidth.
2162 2199
2163 Below is a sample network, configured to maximize the2200Below is a sample network, configured to maximize the
2164availability of the network:2201availability of the network::
2165 2202
2166 | |2203 | |
2167 |port3 port3|2204 |port3 port3|
2168 +-----+----+ +-----+----+2205 +-----+----+ +-----+----+
2169 | |port2 ISL port2| |2206 | |port2 ISL port2| |
2170 | switch A +--------------------------+ switch B |2207 | switch A +--------------------------+ switch B |
2171 | | | |2208 | | | |
2172 +-----+----+ +-----++---+2209 +-----+----+ +-----++---+
2173 |port1 port1|2210 |port1 port1|
2174 | +-------+ |2211 | +-------+ |
2175 +-------------+ host1 +---------------+2212 +-------------+ host1 +---------------+
2176 eth0 +-------+ eth12213 eth0 +-------+ eth1
2177 2214
2178 In this configuration, there is a link between the two2215In this configuration, there is a link between the two
2179switches (ISL, or inter switch link), and multiple ports connecting to2216switches (ISL, or inter switch link), and multiple ports connecting to
2180the outside world ("port3" on each switch). There is no technical2217the outside world ("port3" on each switch). There is no technical
2181reason that this could not be extended to a third switch.2218reason 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
218311.2.1 HA Bonding Mode Selection for Multiple Switch Topology222011.2.1 HA Bonding Mode Selection for Multiple Switch Topology
2184-------------------------------------------------------------2221-------------------------------------------------------------
2185 2222
2186 In a topology such as the example above, the active-backup and2223In a topology such as the example above, the active-backup and
2187broadcast modes are the only useful bonding modes when optimizing for2224broadcast modes are the only useful bonding modes when optimizing for
2188availability; the other modes require all links to terminate on the2225availability; the other modes require all links to terminate on the
2189same peer for them to behave rationally.2226same peer for them to behave rationally.
2190 2227
2191active-backup: This is generally the preferred mode, particularly if2228active-backup:
2229 This is generally the preferred mode, particularly if
2192 the switches have an ISL and play together well. If the2230 the switches have an ISL and play together well. If the
2193 network configuration is such that one switch is specifically2231 network configuration is such that one switch is specifically
2194 a backup switch (e.g., has lower capacity, higher cost, etc),2232 a backup switch (e.g., has lower capacity, higher cost, etc),
2195 then the primary option can be used to insure that the2233 then the primary option can be used to insure that the
2196 preferred link is always used when it is available.2234 preferred link is always used when it is available.
2197 2235
2198broadcast: This mode is really a special purpose mode, and is suitable2236broadcast:
2237 This mode is really a special purpose mode, and is suitable
2199 only for very specific needs. For example, if the two2238 only for very specific needs. For example, if the two
2200 switches are not connected (no ISL), and the networks beyond2239 switches are not connected (no ISL), and the networks beyond
2201 them are totally independent. In this case, if it is2240 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
220511.2.2 HA Link Monitoring Selection for Multiple Switch Topology224411.2.2 HA Link Monitoring Selection for Multiple Switch Topology
2206----------------------------------------------------------------2245----------------------------------------------------------------
2207 2246
2208 The choice of link monitoring ultimately depends upon your2247The choice of link monitoring ultimately depends upon your
2209switch. If the switch can reliably fail ports in response to other2248switch. If the switch can reliably fail ports in response to other
2210failures, then either the MII or ARP monitors should work. For2249failures, then either the MII or ARP monitors should work. For
2211example, in the above example, if the "port3" link fails at the remote2250example, 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
2213monitor could be configured with a target at the remote end of port3,2252monitor could be configured with a target at the remote end of port3,
2214thus detecting that failure without switch support.2253thus detecting that failure without switch support.
2215 2254
2216 In general, however, in a multiple switch topology, the ARP2255In general, however, in a multiple switch topology, the ARP
2217monitor can provide a higher level of reliability in detecting end to2256monitor can provide a higher level of reliability in detecting end to
2218end connectivity failures (which may be caused by the failure of any2257end connectivity failures (which may be caused by the failure of any
2219individual component to pass traffic for any reason). Additionally,2258individual 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
2222regardless of which switch is active, the ARP monitor has a suitable2261regardless of which switch is active, the ARP monitor has a suitable
2223target to query.2262target to query.
2224 2263
2225 Note, also, that of late many switches now support a functionality2264Note, also, that of late many switches now support a functionality
2226generally referred to as "trunk failover." This is a feature of the2265generally referred to as "trunk failover." This is a feature of the
2227switch that causes the link state of a particular switch port to be set2266switch that causes the link state of a particular switch port to be set
2228down (or up) when the state of another switch port goes down (or up).2267down (or up) when the state of another switch port goes down (or up).
@@ -2238,18 +2277,18 @@ suitable switches. · 9 unmodified lines
223812.1 Maximizing Throughput in a Single Switch Topology227712.1 Maximizing Throughput in a Single Switch Topology
2239------------------------------------------------------2278------------------------------------------------------
2240 2279
2241 In a single switch configuration, the best method to maximize2280In a single switch configuration, the best method to maximize
2242throughput depends upon the application and network environment. The2281throughput depends upon the application and network environment. The
2243various load balancing modes each have strengths and weaknesses in2282various load balancing modes each have strengths and weaknesses in
2244different environments, as detailed below.2283different environments, as detailed below.
2245 2284
2246 For this discussion, we will break down the topologies into2285For this discussion, we will break down the topologies into
2247two categories. Depending upon the destination of most traffic, we2286two categories. Depending upon the destination of most traffic, we
2248categorize them into either "gatewayed" or "local" configurations.2287categorize them into either "gatewayed" or "local" configurations.
2249 2288
2250 In a gatewayed configuration, the "switch" is acting primarily2289In a gatewayed configuration, the "switch" is acting primarily
2251as a router, and the majority of traffic passes through this router to2290as a router, and the majority of traffic passes through this router to
2252other networks. An example would be the following:2291other networks. An example would be the following::
2253 2292
2254 2293
2255 +----------+ +----------+2294 +----------+ +----------+
@@ -2259,25 +2298,25 @@ other networks. An example would be the following: · 3 unmodified lines
2259 | |eth1 port2| | here somewhere2298 | |eth1 port2| | here somewhere
2260 +----------+ +----------+2299 +----------+ +----------+
2261 2300
2262 The router may be a dedicated router device, or another host2301The router may be a dedicated router device, or another host
2263acting as a gateway. For our discussion, the important point is that2302acting as a gateway. For our discussion, the important point is that
2264the majority of traffic from Host A will pass through the router to2303the majority of traffic from Host A will pass through the router to
2265some other network before reaching its final destination.2304some other network before reaching its final destination.
2266 2305
2267 In a gatewayed network configuration, although Host A may2306In a gatewayed network configuration, although Host A may
2268communicate with many other systems, all of its traffic will be sent2307communicate with many other systems, all of its traffic will be sent
2269and received via one other peer on the local network, the router.2308and received via one other peer on the local network, the router.
2270 2309
2271 Note that the case of two systems connected directly via2310Note that the case of two systems connected directly via
2272multiple physical links is, for purposes of configuring bonding, the2311multiple physical links is, for purposes of configuring bonding, the
2273same as a gatewayed configuration. In that case, it happens that all2312same as a gatewayed configuration. In that case, it happens that all
2274traffic is destined for the "gateway" itself, not some other network2313traffic is destined for the "gateway" itself, not some other network
2275beyond the gateway.2314beyond the gateway.
2276 2315
2277 In a local configuration, the "switch" is acting primarily as2316In a local configuration, the "switch" is acting primarily as
2278a switch, and the majority of traffic passes through this switch to2317a switch, and the majority of traffic passes through this switch to
2279reach other stations on the same network. An example would be the2318reach other stations on the same network. An example would be the
2280following:2319following::
2281 2320
2282 +----------+ +----------+ +--------+2321 +----------+ +----------+ +--------+
2283 | |eth0 port1| +-------+ Host B |2322 | |eth0 port1| +-------+ Host B |
@@ -2287,19 +2326,19 @@ following: · 3 unmodified lines
2287 +----------+ +----------+port4 +--------+2326 +----------+ +----------+port4 +--------+
2288 2327
2289 2328
2290 Again, the switch may be a dedicated switch device, or another2329Again, the switch may be a dedicated switch device, or another
2291host acting as a gateway. For our discussion, the important point is2330host acting as a gateway. For our discussion, the important point is
2292that the majority of traffic from Host A is destined for other hosts2331that the majority of traffic from Host A is destined for other hosts
2293on the same local network (Hosts B and C in the above example).2332on the same local network (Hosts B and C in the above example).
2294 2333
2295 In summary, in a gatewayed configuration, traffic to and from2334In summary, in a gatewayed configuration, traffic to and from
2296the bonded device will be to the same MAC level peer on the network2335the bonded device will be to the same MAC level peer on the network
2297(the gateway itself, i.e., the router), regardless of its final2336(the gateway itself, i.e., the router), regardless of its final
2298destination. In a local configuration, traffic flows directly to and2337destination. In a local configuration, traffic flows directly to and
2299from the final destinations, thus, each destination (Host B, Host C)2338from the final destinations, thus, each destination (Host B, Host C)
2300will be addressed directly by their individual MAC addresses.2339will be addressed directly by their individual MAC addresses.
2301 2340
2302 This distinction between a gatewayed and a local network2341This distinction between a gatewayed and a local network
2303configuration is important because many of the load balancing modes2342configuration is important because many of the load balancing modes
2304available use the MAC addresses of the local network source and2343available use the MAC addresses of the local network source and
2305destination to make load balancing decisions. The behavior of each2344destination to make load balancing decisions. The behavior of each
@@ -2309,11 +2348,12 @@ mode is described below. · 3 unmodified lines
230912.1.1 MT Bonding Mode Selection for Single Switch Topology234812.1.1 MT Bonding Mode Selection for Single Switch Topology
2310-----------------------------------------------------------2349-----------------------------------------------------------
2311 2350
2312 This configuration is the easiest to set up and to understand,2351This configuration is the easiest to set up and to understand,
2313although you will have to decide which bonding mode best suits your2352although you will have to decide which bonding mode best suits your
2314needs. The trade offs for each mode are detailed below:2353needs. The trade offs for each mode are detailed below:
2315 2354
2316balance-rr: This mode is the only mode that will permit a single2355balance-rr:
2356 This mode is the only mode that will permit a single
2317 TCP/IP connection to stripe traffic across multiple2357 TCP/IP connection to stripe traffic across multiple
2318 interfaces. It is therefore the only mode that will allow a2358 interfaces. It is therefore the only mode that will allow a
2319 single TCP/IP stream to utilize more than one interface's2359 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
2351 This mode requires the switch to have the appropriate ports2391 This mode requires the switch to have the appropriate ports
2352 configured for "etherchannel" or "trunking."2392 configured for "etherchannel" or "trunking."
2353 2393
2354active-backup: There is not much advantage in this network topology to2394active-backup:
2395 There is not much advantage in this network topology to
2355 the active-backup mode, as the inactive backup devices are all2396 the active-backup mode, as the inactive backup devices are all
2356 connected to the same peer as the primary. In this case, a2397 connected to the same peer as the primary. In this case, a
2357 load balancing mode (with link monitoring) will provide the2398 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
2361 have value if the hardware available does not support any of2402 have value if the hardware available does not support any of
2362 the load balance modes.2403 the load balance modes.
2363 2404
2364balance-xor: This mode will limit traffic such that packets destined2405balance-xor:
2406 This mode will limit traffic such that packets destined
2365 for specific peers will always be sent over the same2407 for specific peers will always be sent over the same
2366 interface. Since the destination is determined by the MAC2408 interface. Since the destination is determined by the MAC
2367 addresses involved, this mode works best in a "local" network2409 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
2373 As with balance-rr, the switch ports need to be configured for2415 As with balance-rr, the switch ports need to be configured for
2374 "etherchannel" or "trunking."2416 "etherchannel" or "trunking."
2375 2417
2376broadcast: Like active-backup, there is not much advantage to this2418broadcast:
2419 Like active-backup, there is not much advantage to this
2377 mode in this type of network topology.2420 mode in this type of network topology.
2378 2421
2379802.3ad: This mode can be a good choice for this type of network2422802.3ad:
2423 This mode can be a good choice for this type of network
2380 topology. The 802.3ad mode is an IEEE standard, so all peers2424 topology. The 802.3ad mode is an IEEE standard, so all peers
2381 that implement 802.3ad should interoperate well. The 802.3ad2425 that implement 802.3ad should interoperate well. The 802.3ad
2382 protocol includes automatic configuration of the aggregates,2426 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
2390 the same speed and duplex. Also, as with all bonding load2434 the same speed and duplex. Also, as with all bonding load
2391 balance modes other than balance-rr, no single connection will2435 balance modes other than balance-rr, no single connection will
2392 be able to utilize more than a single interface's worth of2436 be able to utilize more than a single interface's worth of
2393 bandwidth. 2437 bandwidth.
2394 2438
2395 Additionally, the linux bonding 802.3ad implementation2439 Additionally, the linux bonding 802.3ad implementation
2396 distributes traffic by peer (using an XOR of MAC addresses2440 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
2404 Finally, the 802.3ad mode mandates the use of the MII monitor,2448 Finally, the 802.3ad mode mandates the use of the MII monitor,
2405 therefore, the ARP monitor is not available in this mode.2449 therefore, the ARP monitor is not available in this mode.
2406 2450
2407balance-tlb: The balance-tlb mode balances outgoing traffic by peer.2451balance-tlb:
2452 The balance-tlb mode balances outgoing traffic by peer.
2408 Since the balancing is done according to MAC address, in a2453 Since the balancing is done according to MAC address, in a
2409 "gatewayed" configuration (as described above), this mode will2454 "gatewayed" configuration (as described above), this mode will
2410 send all traffic across a single device. However, in a2455 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
2422 network device driver of the slave interfaces, and the ARP2467 network device driver of the slave interfaces, and the ARP
2423 monitor is not available.2468 monitor is not available.
2424 2469
2425balance-alb: This mode is everything that balance-tlb is, and more.2470balance-alb:
2471 This mode is everything that balance-tlb is, and more.
2426 It has all of the features (and restrictions) of balance-tlb,2472 It has all of the features (and restrictions) of balance-tlb,
2427 and will also balance incoming traffic from local network2473 and will also balance incoming traffic from local network
2428 peers (as described in the Bonding Module Options section,2474 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
243512.1.2 MT Link Monitoring for Single Switch Topology248112.1.2 MT Link Monitoring for Single Switch Topology
2436----------------------------------------------------2482----------------------------------------------------
2437 2483
2438 The choice of link monitoring may largely depend upon which2484The choice of link monitoring may largely depend upon which
2439mode you choose to use. The more advanced load balancing modes do not2485mode you choose to use. The more advanced load balancing modes do not
2440support the use of the ARP monitor, and are thus restricted to using2486support the use of the ARP monitor, and are thus restricted to using
2441the MII monitor (which does not provide as high a level of end to end2487the 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
244412.2 Maximum Throughput in a Multiple Switch Topology249012.2 Maximum Throughput in a Multiple Switch Topology
2445-----------------------------------------------------2491-----------------------------------------------------
2446 2492
2447 Multiple switches may be utilized to optimize for throughput2493Multiple switches may be utilized to optimize for throughput
2448when they are configured in parallel as part of an isolated network2494when they are configured in parallel as part of an isolated network
2449between two or more systems, for example:2495between two or more systems, for example::
2450 2496
2451 +-----------+2497 +-----------+
2452 | Host A | 2498 | Host A |
2453 +-+---+---+-+2499 +-+---+---+-+
2454 | | |2500 | | |
2455 +--------+ | +---------+2501 +--------+ | +---------+
2456 | | |2502 | | |
2457 +------+---+ +-----+----+ +-----+----+2503 +------+---+ +-----+----+ +-----+----+
2458 | Switch A | | Switch B | | Switch C |2504 | Switch A | | Switch B | | Switch C |
2459 +------+---+ +-----+----+ +-----+----+2505 +------+---+ +-----+----+ +-----+----+
2460 | | |2506 | | |
2461 +--------+ | +---------+2507 +--------+ | +---------+
2462 | | |2508 | | |
2463 +-+---+---+-+2509 +-+---+---+-+
2464 | Host B | 2510 | Host B |
2465 +-----------+2511 +-----------+
2466 2512
2467 In this configuration, the switches are isolated from one2513In this configuration, the switches are isolated from one
2468another. One reason to employ a topology such as this is for an2514another. One reason to employ a topology such as this is for an
2469isolated network with many hosts (a cluster configured for high2515isolated network with many hosts (a cluster configured for high
2470performance, for example), using multiple smaller switches can be more2516performance, 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
2472hosts, three 24 port switches can be significantly less expensive than2518hosts, three 24 port switches can be significantly less expensive than
2473a single 72 port switch.2519a single 72 port switch.
2474 2520
2475 If access beyond the network is required, an individual host2521If access beyond the network is required, an individual host
2476can be equipped with an additional network device connected to an2522can be equipped with an additional network device connected to an
2477external network; this host then additionally acts as a gateway.2523external network; this host then additionally acts as a gateway.
2478 2524
247912.2.1 MT Bonding Mode Selection for Multiple Switch Topology252512.2.1 MT Bonding Mode Selection for Multiple Switch Topology
2480-------------------------------------------------------------2526-------------------------------------------------------------
2481 2527
2482 In actual practice, the bonding mode typically employed in2528In actual practice, the bonding mode typically employed in
2483configurations of this type is balance-rr. Historically, in this2529configurations of this type is balance-rr. Historically, in this
2484network configuration, the usual caveats about out of order packet2530network configuration, the usual caveats about out of order packet
2485delivery are mitigated by the use of network adapters that do not do2531delivery 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
249212.2.2 MT Link Monitoring for Multiple Switch Topology253812.2.2 MT Link Monitoring for Multiple Switch Topology
2493------------------------------------------------------2539------------------------------------------------------
2494 2540
2495 Again, in actual practice, the MII monitor is most often used2541Again, in actual practice, the MII monitor is most often used
2496in this configuration, as performance is given preference over2542in this configuration, as performance is given preference over
2497availability. The ARP monitor will function in this topology, but its2543availability. The ARP monitor will function in this topology, but its
2498advantages over the MII monitor are mitigated by the volume of probes2544advantages 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
250513.1 Link Establishment and Failover Delays255113.1 Link Establishment and Failover Delays
2506-------------------------------------------2552-------------------------------------------
2507 2553
2508 Some switches exhibit undesirable behavior with regard to the2554Some switches exhibit undesirable behavior with regard to the
2509timing of link up and down reporting by the switch.2555timing of link up and down reporting by the switch.
2510 2556
2511 First, when a link comes up, some switches may indicate that2557First, when a link comes up, some switches may indicate that
2512the link is up (carrier available), but not pass traffic over the2558the link is up (carrier available), but not pass traffic over the
2513interface for some period of time. This delay is typically due to2559interface for some period of time. This delay is typically due to
2514some type of autonegotiation or routing protocol, but may also occur2560some 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
2517value to the updelay bonding module option to delay the use of the2563value to the updelay bonding module option to delay the use of the
2518relevant interface(s).2564relevant interface(s).
2519 2565
2520 Second, some switches may "bounce" the link state one or more2566Second, some switches may "bounce" the link state one or more
2521times while a link is changing state. This occurs most commonly while2567times while a link is changing state. This occurs most commonly while
2522the switch is initializing. Again, an appropriate updelay value may2568the switch is initializing. Again, an appropriate updelay value may
2523help.2569help.
2524 2570
2525 Note that when a bonding interface has no active links, the2571Note that when a bonding interface has no active links, the
2526driver will immediately reuse the first link that goes up, even if the2572driver will immediately reuse the first link that goes up, even if the
2527updelay parameter has been specified (the updelay is ignored in this2573updelay parameter has been specified (the updelay is ignored in this
2528case). If there are slave interfaces waiting for the updelay timeout2574case). 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
2532cases with no connectivity, there is no additional penalty for2578cases with no connectivity, there is no additional penalty for
2533ignoring the updelay.2579ignoring the updelay.
2534 2580
2535 In addition to the concerns about switch timings, if your2581In addition to the concerns about switch timings, if your
2536switches take a long time to go into backup mode, it may be desirable2582switches take a long time to go into backup mode, it may be desirable
2537to not activate a backup interface immediately after a link goes down.2583to not activate a backup interface immediately after a link goes down.
2538Failover may be delayed via the downdelay bonding module option.2584Failover 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
254013.2 Duplicated Incoming Packets258613.2 Duplicated Incoming Packets
2541--------------------------------2587--------------------------------
2542 2588
2543 NOTE: Starting with version 3.0.2, the bonding driver has logic to2589NOTE: Starting with version 3.0.2, the bonding driver has logic to
2544suppress duplicate packets, which should largely eliminate this problem.2590suppress duplicate packets, which should largely eliminate this problem.
2545The following description is kept for reference.2591The following description is kept for reference.
2546 2592
2547 It is not uncommon to observe a short burst of duplicated2593It is not uncommon to observe a short burst of duplicated
2548traffic when the bonding device is first used, or after it has been2594traffic when the bonding device is first used, or after it has been
2549idle for some period of time. This is most easily observed by issuing2595idle for some period of time. This is most easily observed by issuing
2550a "ping" to some other host on the network, and noticing that the2596a "ping" to some other host on the network, and noticing that the
2551output from ping flags duplicates (typically one per slave).2597output from ping flags duplicates (typically one per slave).
2552 2598
2553 For example, on a bond in active-backup mode with five slaves2599For example, on a bond in active-backup mode with five slaves
2554all connected to one switch, the output may appear as follows:2600all connected to one switch, the output may appear as follows::
2555 2601
2556# ping -n 10.0.4.22602 # ping -n 10.0.4.2
2557PING 10.0.4.2 (10.0.4.2) from 10.0.3.10 : 56(84) bytes of data.2603 PING 10.0.4.2 (10.0.4.2) from 10.0.3.10 : 56(84) bytes of data.
255864 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.7 ms2604 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.7 ms
255964 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!)2605 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!)
256064 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!)
256164 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!)
256264 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!)
256364 bytes from 10.0.4.2: icmp_seq=2 ttl=64 time=0.216 ms2609 64 bytes from 10.0.4.2: icmp_seq=2 ttl=64 time=0.216 ms
256464 bytes from 10.0.4.2: icmp_seq=3 ttl=64 time=0.267 ms2610 64 bytes from 10.0.4.2: icmp_seq=3 ttl=64 time=0.267 ms
256564 bytes from 10.0.4.2: icmp_seq=4 ttl=64 time=0.222 ms2611 64 bytes from 10.0.4.2: icmp_seq=4 ttl=64 time=0.222 ms
2566 2612
2567 This is not due to an error in the bonding driver, rather, it2613This is not due to an error in the bonding driver, rather, it
2568is a side effect of how many switches update their MAC forwarding2614is a side effect of how many switches update their MAC forwarding
2569tables. Initially, the switch does not associate the MAC address in2615tables. Initially, the switch does not associate the MAC address in
2570the packet with a particular switch port, and so it may send the2616the 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
2574ports, the bond device receives multiple copies of the same packet2620ports, the bond device receives multiple copies of the same packet
2575(one per slave device).2621(one per slave device).
2576 2622
2577 The duplicated packet behavior is switch dependent, some2623The duplicated packet behavior is switch dependent, some
2578switches exhibit this, and some do not. On switches that display this2624switches exhibit this, and some do not. On switches that display this
2579behavior, it can be induced by clearing the MAC forwarding table (on2625behavior, it can be induced by clearing the MAC forwarding table (on
2580most Cisco switches, the privileged command "clear mac address-table2626most Cisco switches, the privileged command "clear mac address-table
@@ -2583,16 +2629,16 @@ dynamic" will accomplish this). · 2 unmodified lines
258314. Hardware Specific Considerations262914. Hardware Specific Considerations
2584====================================2630====================================
2585 2631
2586 This section contains additional information for configuring2632This section contains additional information for configuring
2587bonding on specific hardware platforms, or for interfacing bonding2633bonding on specific hardware platforms, or for interfacing bonding
2588with particular switches or other devices.2634with particular switches or other devices.
2589 2635
259014.1 IBM BladeCenter263614.1 IBM BladeCenter
2591--------------------2637--------------------
2592 2638
2593 This applies to the JS20 and similar systems.2639This applies to the JS20 and similar systems.
2594 2640
2595 On the JS20 blades, the bonding driver supports only2641On the JS20 blades, the bonding driver supports only
2596balance-rr, active-backup, balance-tlb and balance-alb modes. This is2642balance-rr, active-backup, balance-tlb and balance-alb modes. This is
2597largely due to the network topology inside the BladeCenter, detailed2643largely due to the network topology inside the BladeCenter, detailed
2598below.2644below.
@@ -2600,7 +2646,7 @@ below. · 1 unmodified line
2600JS20 network adapter information2646JS20 network adapter information
2601--------------------------------2647--------------------------------
2602 2648
2603 All JS20s come with two Broadcom Gigabit Ethernet ports2649All JS20s come with two Broadcom Gigabit Ethernet ports
2604integrated on the planar (that's "motherboard" in IBM-speak). In the2650integrated on the planar (that's "motherboard" in IBM-speak). In the
2605BladeCenter chassis, the eth0 port of all JS20 blades is hard wired to2651BladeCenter chassis, the eth0 port of all JS20 blades is hard wired to
2606I/O Module #1; similarly, all eth1 ports are wired to I/O Module #2.2652I/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
2608two more Gigabit Ethernet ports. These ports, eth2 and eth3, are2654two more Gigabit Ethernet ports. These ports, eth2 and eth3, are
2609wired to I/O Modules 3 and 4, respectively.2655wired to I/O Modules 3 and 4, respectively.
2610 2656
2611 Each I/O Module may contain either a switch or a passthrough2657Each I/O Module may contain either a switch or a passthrough
2612module (which allows ports to be directly connected to an external2658module (which allows ports to be directly connected to an external
2613switch). Some bonding modes require a specific BladeCenter internal2659switch). Some bonding modes require a specific BladeCenter internal
2614network topology in order to function; these are detailed below.2660network topology in order to function; these are detailed below.
2615 2661
2616 Additional BladeCenter-specific networking information can be2662Additional BladeCenter-specific networking information can be
2617found in two IBM Redbooks (www.ibm.com/redbooks):2663found in two IBM Redbooks (www.ibm.com/redbooks):
2618 2664
2619"IBM eServer BladeCenter Networking Options"2665- "IBM eServer BladeCenter Networking Options"
2620"IBM eServer BladeCenter Layer 2-7 Network Switching"2666- "IBM eServer BladeCenter Layer 2-7 Network Switching"
2621 2667
2622BladeCenter networking configuration2668BladeCenter networking configuration
2623------------------------------------2669------------------------------------
2624 2670
2625 Because a BladeCenter can be configured in a very large number2671Because a BladeCenter can be configured in a very large number
2626of ways, this discussion will be confined to describing basic2672of ways, this discussion will be confined to describing basic
2627configurations.2673configurations.
2628 2674
2629 Normally, Ethernet Switch Modules (ESMs) are used in I/O2675Normally, Ethernet Switch Modules (ESMs) are used in I/O
2630modules 1 and 2. In this configuration, the eth0 and eth1 ports of a2676modules 1 and 2. In this configuration, the eth0 and eth1 ports of a
2631JS20 will be connected to different internal switches (in the2677JS20 will be connected to different internal switches (in the
2632respective I/O modules).2678respective I/O modules).
2633 2679
2634 A passthrough module (OPM or CPM, optical or copper,2680A passthrough module (OPM or CPM, optical or copper,
2635passthrough module) connects the I/O module directly to an external2681passthrough module) connects the I/O module directly to an external
2636switch. By using PMs in I/O module #1 and #2, the eth0 and eth12682switch. By using PMs in I/O module #1 and #2, the eth0 and eth1
2637interfaces of a JS20 can be redirected to the outside world and2683interfaces of a JS20 can be redirected to the outside world and
2638connected to a common external switch.2684connected to a common external switch.
2639 2685
2640 Depending upon the mix of ESMs and PMs, the network will2686Depending upon the mix of ESMs and PMs, the network will
2641appear to bonding as either a single switch topology (all PMs) or as a2687appear to bonding as either a single switch topology (all PMs) or as a
2642multiple switch topology (one or more ESMs, zero or more PMs). It is2688multiple switch topology (one or more ESMs, zero or more PMs). It is
2643also possible to connect ESMs together, resulting in a configuration2689also possible to connect ESMs together, resulting in a configuration
@@ -2647,24 +2693,24 @@ Topology," above. · 3 unmodified lines
2647Requirements for specific modes2693Requirements for specific modes
2648-------------------------------2694-------------------------------
2649 2695
2650 The balance-rr mode requires the use of passthrough modules2696The balance-rr mode requires the use of passthrough modules
2651for devices in the bond, all connected to an common external switch.2697for devices in the bond, all connected to an common external switch.
2652That switch must be configured for "etherchannel" or "trunking" on the2698That switch must be configured for "etherchannel" or "trunking" on the
2653appropriate ports, as is usual for balance-rr.2699appropriate ports, as is usual for balance-rr.
2654 2700
2655 The balance-alb and balance-tlb modes will function with2701The balance-alb and balance-tlb modes will function with
2656either switch modules or passthrough modules (or a mix). The only2702either switch modules or passthrough modules (or a mix). The only
2657specific requirement for these modes is that all network interfaces2703specific requirement for these modes is that all network interfaces
2658must be able to reach all destinations for traffic sent over the2704must be able to reach all destinations for traffic sent over the
2659bonding device (i.e., the network must converge at some point outside2705bonding device (i.e., the network must converge at some point outside
2660the BladeCenter).2706the BladeCenter).
2661 2707
2662 The active-backup mode has no additional requirements.2708The active-backup mode has no additional requirements.
2663 2709
2664Link monitoring issues2710Link monitoring issues
2665----------------------2711----------------------
2666 2712
2667 When an Ethernet Switch Module is in place, only the ARP2713When an Ethernet Switch Module is in place, only the ARP
2668monitor will reliably detect link loss to an external switch. This is2714monitor will reliably detect link loss to an external switch. This is
2669nothing unusual, but examination of the BladeCenter cabinet would2715nothing unusual, but examination of the BladeCenter cabinet would
2670suggest that the "external" network ports are the ethernet ports for2716suggest 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
2672ports and the devices on the JS20 system itself. The MII monitor is2718ports and the devices on the JS20 system itself. The MII monitor is
2673only able to detect link failures between the ESM and the JS20 system.2719only able to detect link failures between the ESM and the JS20 system.
2674 2720
2675 When a passthrough module is in place, the MII monitor does2721When a passthrough module is in place, the MII monitor does
2676detect failures to the "external" port, which is then directly2722detect failures to the "external" port, which is then directly
2677connected to the JS20 system.2723connected to the JS20 system.
2678 2724
2679Other concerns2725Other concerns
2680--------------2726--------------
2681 2727
2682 The Serial Over LAN (SoL) link is established over the primary2728The Serial Over LAN (SoL) link is established over the primary
2683ethernet (eth0) only, therefore, any loss of link to eth0 will result2729ethernet (eth0) only, therefore, any loss of link to eth0 will result
2684in losing your SoL connection. It will not fail over with other2730in losing your SoL connection. It will not fail over with other
2685network traffic, as the SoL system is beyond the control of the2731network traffic, as the SoL system is beyond the control of the
2686bonding driver.2732bonding driver.
2687 2733
2688 It may be desirable to disable spanning tree on the switch2734It may be desirable to disable spanning tree on the switch
2689(either the internal Ethernet Switch Module, or an external switch) to2735(either the internal Ethernet Switch Module, or an external switch) to
2690avoid fail-over delay issues when using bonding.2736avoid fail-over delay issues when using bonding.
2691 2737
2692 2738
269315. Frequently Asked Questions273915. Frequently Asked Questions
2694==============================2740==============================
2695 2741
26961. Is it SMP safe?27421. Is it SMP safe?
2743-------------------
2697 2744
2698 Yes. The old 2.0.xx channel bonding patch was not SMP safe.2745Yes. The old 2.0.xx channel bonding patch was not SMP safe.
2699The new driver was designed to be SMP safe from the start.2746The new driver was designed to be SMP safe from the start.
2700 2747
27012. What type of cards will work with it?27482. What type of cards will work with it?
2749-----------------------------------------
2702 2750
2703 Any Ethernet type cards (you can even mix cards - a Intel2751Any Ethernet type cards (you can even mix cards - a Intel
2704EtherExpress PRO/100 and a 3com 3c905b, for example). For most modes,2752EtherExpress PRO/100 and a 3com 3c905b, for example). For most modes,
2705devices need not be of the same speed.2753devices need not be of the same speed.
2706 2754
2707 Starting with version 3.2.1, bonding also supports Infiniband2755Starting with version 3.2.1, bonding also supports Infiniband
2708slaves in active-backup mode.2756slaves in active-backup mode.
2709 2757
27103. How many bonding devices can I have?27583. How many bonding devices can I have?
2759----------------------------------------
2711 2760
2712 There is no limit.2761There is no limit.
2713 2762
27144. How many slaves can a bonding device have?27634. How many slaves can a bonding device have?
2764----------------------------------------------
2715 2765
2716 This is limited only by the number of network interfaces Linux2766This is limited only by the number of network interfaces Linux
2717supports and/or the number of network cards you can place in your2767supports and/or the number of network cards you can place in your
2718system.2768system.
2719 2769
27205. What happens when a slave link dies?27705. What happens when a slave link dies?
2771----------------------------------------
2721 2772
2722 If link monitoring is enabled, then the failing device will be2773If link monitoring is enabled, then the failing device will be
2723disabled. The active-backup mode will fail over to a backup link, and2774disabled. The active-backup mode will fail over to a backup link, and
2724other modes will ignore the failed link. The link will continue to be2775other modes will ignore the failed link. The link will continue to be
2725monitored, and should it recover, it will rejoin the bond (in whatever2776monitored, and should it recover, it will rejoin the bond (in whatever
2726manner is appropriate for the mode). See the sections on High2777manner is appropriate for the mode). See the sections on High
2727Availability and the documentation for each mode for additional2778Availability and the documentation for each mode for additional
2728information.2779information.
2729 2780
2730 Link monitoring can be enabled via either the miimon or2781Link monitoring can be enabled via either the miimon or
2731arp_interval parameters (described in the module parameters section,2782arp_interval parameters (described in the module parameters section,
2732above). In general, miimon monitors the carrier state as sensed by2783above). In general, miimon monitors the carrier state as sensed by
2733the underlying network device, and the arp monitor (arp_interval)2784the underlying network device, and the arp monitor (arp_interval)
2734monitors connectivity to another host on the local network.2785monitors connectivity to another host on the local network.
2735 2786
2736 If no link monitoring is configured, the bonding driver will2787If no link monitoring is configured, the bonding driver will
2737be unable to detect link failures, and will assume that all links are2788be unable to detect link failures, and will assume that all links are
2738always available. This will likely result in lost packets, and a2789always available. This will likely result in lost packets, and a
2739resulting degradation of performance. The precise performance loss2790resulting degradation of performance. The precise performance loss
2740depends upon the bonding mode and network configuration.2791depends upon the bonding mode and network configuration.
2741 2792
27426. Can bonding be used for High Availability?27936. Can bonding be used for High Availability?
2794----------------------------------------------
2743 2795
2744 Yes. See the section on High Availability for details.2796Yes. See the section on High Availability for details.
2745 2797
27467. Which switches/systems does it work with?27987. Which switches/systems does it work with?
2799---------------------------------------------
2747 2800
2748 The full answer to this depends upon the desired mode.2801The full answer to this depends upon the desired mode.
2749 2802
2750 In the basic balance modes (balance-rr and balance-xor), it2803In the basic balance modes (balance-rr and balance-xor), it
2751works with any system that supports etherchannel (also called2804works with any system that supports etherchannel (also called
2752trunking). Most managed switches currently available have such2805trunking). Most managed switches currently available have such
2753support, and many unmanaged switches as well.2806support, and many unmanaged switches as well.
2754 2807
2755 The advanced balance modes (balance-tlb and balance-alb) do2808The advanced balance modes (balance-tlb and balance-alb) do
2756not have special switch requirements, but do need device drivers that2809not have special switch requirements, but do need device drivers that
2757support specific features (described in the appropriate section under2810support specific features (described in the appropriate section under
2758module parameters, above).2811module parameters, above).
2759 2812
2760 In 802.3ad mode, it works with systems that support IEEE2813In 802.3ad mode, it works with systems that support IEEE
2761802.3ad Dynamic Link Aggregation. Most managed and many unmanaged2814802.3ad Dynamic Link Aggregation. Most managed and many unmanaged
2762switches currently available support 802.3ad.2815switches currently available support 802.3ad.
2763 2816
2764 The active-backup mode should work with any Layer-II switch.2817The active-backup mode should work with any Layer-II switch.
2765 2818
27668. Where does a bonding device get its MAC address from?28198. Where does a bonding device get its MAC address from?
2820---------------------------------------------------------
2767 2821
2768 When using slave devices that have fixed MAC addresses, or when2822When using slave devices that have fixed MAC addresses, or when
2769the fail_over_mac option is enabled, the bonding device's MAC address is2823the fail_over_mac option is enabled, the bonding device's MAC address is
2770the MAC address of the active slave.2824the MAC address of the active slave.
2771 2825
2772 For other configurations, if not explicitly configured (with2826For other configurations, if not explicitly configured (with
2773ifconfig or ip link), the MAC address of the bonding device is taken from2827ifconfig or ip link), the MAC address of the bonding device is taken from
2774its first slave device. This MAC address is then passed to all following2828its first slave device. This MAC address is then passed to all following
2775slaves and remains persistent (even if the first slave is removed) until2829slaves and remains persistent (even if the first slave is removed) until
2776the bonding device is brought down or reconfigured.2830the bonding device is brought down or reconfigured.
2777 2831
2778 If you wish to change the MAC address, you can set it with2832If you wish to change the MAC address, you can set it with
2779ifconfig or ip link:2833ifconfig or ip link::
2780 2834
2781# ifconfig bond0 hw ether 00:11:22:33:44:552835 # ifconfig bond0 hw ether 00:11:22:33:44:55
2782 2836
2783# ip link set bond0 address 66:77:88:99:aa:bb2837 # ip link set bond0 address 66:77:88:99:aa:bb
2784 2838
2785 The MAC address can be also changed by bringing down/up the2839The MAC address can be also changed by bringing down/up the
2786device and then changing its slaves (or their order):2840device and then changing its slaves (or their order)::
2787 2841
2788# ifconfig bond0 down ; modprobe -r bonding2842 # ifconfig bond0 down ; modprobe -r bonding
2789# ifconfig bond0 .... up2843 # ifconfig bond0 .... up
2790# ifenslave bond0 eth...2844 # ifenslave bond0 eth...
2791 2845
2792 This method will automatically take the address from the next2846This method will automatically take the address from the next
2793slave that is added.2847slave that is added.
2794 2848
2795 To restore your slaves' MAC addresses, you need to detach them2849To restore your slaves' MAC addresses, you need to detach them
2796from the bond (`ifenslave -d bond0 eth0'). The bonding driver will2850from the bond (``ifenslave -d bond0 eth0``). The bonding driver will
2797then restore the MAC addresses that the slaves had before they were2851then restore the MAC addresses that the slaves had before they were
2798enslaved.2852enslaved.
2799 2853
280016. Resources and Links285416. Resources and Links
2801=======================2855=======================
2802 2856
2803 The latest version of the bonding driver can be found in the latest2857The latest version of the bonding driver can be found in the latest
2804version of the linux kernel, found on http://kernel.org2858version of the linux kernel, found on http://kernel.org
2805 2859
2806 The latest version of this document can be found in the latest kernel2860The latest version of this document can be found in the latest kernel
2807source (named Documentation/networking/bonding.txt).2861source (named Documentation/networking/bonding.rst).
2808 2862
2809 Discussions regarding the usage of the bonding driver take place on the2863Discussions regarding the usage of the bonding driver take place on the
2810bonding-devel mailing list, hosted at sourceforge.net. If you have questions or2864bonding-devel mailing list, hosted at sourceforge.net. If you have questions or
2811problems, post them to the list. The list address is:2865problems, post them to the list. The list address is:
2812 2866
2813bonding-devel@lists.sourceforge.net2867bonding-devel@lists.sourceforge.net
2814 2868
2815 The administrative interface (to subscribe or unsubscribe) can2869The administrative interface (to subscribe or unsubscribe) can
2816be found at:2870be found at:
2817 2871
2818https://lists.sourceforge.net/lists/listinfo/bonding-devel2872https://lists.sourceforge.net/lists/listinfo/bonding-devel
2819 2873
2820 Discussions regarding the development of the bonding driver take place2874Discussions regarding the development of the bonding driver take place
2821on the main Linux network mailing list, hosted at vger.kernel.org. The list2875on the main Linux network mailing list, hosted at vger.kernel.org. The list
2822address is:2876address is:
2823 2877
2824netdev@vger.kernel.org2878netdev@vger.kernel.org
2825 2879
2826 The administrative interface (to subscribe or unsubscribe) can2880The administrative interface (to subscribe or unsubscribe) can
2827be found at:2881be found at:
2828 2882
2829http://vger.kernel.org/vger-lists.html#netdev2883http://vger.kernel.org/vger-lists.html#netdev
2830 2884
2831Donald Becker's Ethernet Drivers and diag programs may be found at :2885Donald 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/
2833 2888
2834You will also find a lot of information regarding Ethernet, NWay, MII,2889You will also find a lot of information regarding Ethernet, NWay, MII,
2835etc. at www.scyld.com.2890etc. at www.scyld.com.
2836
2837-- END --
Documentation/networking/caif/caif.rst+0−2
@@ -1,5 +1,3 @@
1:orphan:
2
3.. SPDX-License-Identifier: GPL-2.01.. SPDX-License-Identifier: GPL-2.0
4.. include:: <isonum.txt>2.. include:: <isonum.txt>
5 3
Documentation/networking/caif/index.rst+13−0
@@ -0,0 +1,13 @@
1.. SPDX-License-Identifier: GPL-2.0
2
3CAIF
4====
5
6Contents:
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==========
1Linux CAIF5Linux CAIF
2===========6==========
3copyright (C) ST-Ericsson AB 20107
4Author: Sjur Brendeland/ sjur.brandeland@stericsson.com8Copyright |copy| ST-Ericsson AB 2010
5License terms: GNU General Public License (GPL) version 29
10:Author: Sjur Brendeland/ sjur.brandeland@stericsson.com
11:License terms: GNU General Public License (GPL) version 2
6 12
7 13
8Introduction14Introduction
9------------15============
16
10CAIF is a MUX protocol used by ST-Ericsson cellular modems for17CAIF is a MUX protocol used by ST-Ericsson cellular modems for
11communication between Modem and host. The host processes can open virtual AT18communication between Modem and host. The host processes can open virtual AT
12channels, initiate GPRS Data connections, Video channels and Utility Channels.19channels, 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
16and host. Currently, UART and Loopback are available for Linux.23and host. Currently, UART and Loopback are available for Linux.
17 24
18 25
19Architecture:26Architecture
20------------27============
28
21The implementation of CAIF is divided into:29The implementation of CAIF is divided into:
30
22* CAIF Socket Layer and GPRS IP Interface.31* CAIF Socket Layer and GPRS IP Interface.
23* CAIF Core Protocol Implementation32* CAIF Core Protocol Implementation
24* CAIF Link Layer, implemented as NET devices.33* CAIF Link Layer, implemented as NET devices.
25 34
35::
26 36
27 RTNL37 RTNL
28 !38 !
@@ -46,12 +56,12 @@ The implementation of CAIF is divided into: · 17 unmodified lines
46 56
47 57
48 58
49I M P L E M E N T A T I O N59Implementation
50===========================60==============
51 61
52 62
53CAIF Core Protocol Layer63CAIF Core Protocol Layer
54=========================================64------------------------
55 65
56CAIF Core layer implements the CAIF protocol as defined by ST-Ericsson.66CAIF Core layer implements the CAIF protocol as defined by ST-Ericsson.
57It implements the CAIF protocol stack in a layered approach, where67It 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
59The architecture is inspired by the design patterns "Protocol Layer" and69The architecture is inspired by the design patterns "Protocol Layer" and
60"Protocol Packet".70"Protocol Packet".
61 71
62== CAIF structure ==72CAIF structure
73^^^^^^^^^^^^^^
74
63The Core CAIF implementation contains:75The Core CAIF implementation contains:
76
64 - Simple implementation of CAIF.77 - Simple implementation of CAIF.
65 - Layered architecture (a la Streams), each layer in the CAIF78 - Layered architecture (a la Streams), each layer in the CAIF
66 specification is implemented in a separate c-file.79 specification is implemented in a separate c-file.
@@ -73,7 +86,8 @@ The Core CAIF implementation contains: · 6 unmodified lines
73 to the called function (except for framing layers' receive function)86 to the called function (except for framing layers' receive function)
74 87
75Layered Architecture88Layered Architecture
76--------------------89====================
90
77The CAIF protocol can be divided into two parts: Support functions and Protocol91The CAIF protocol can be divided into two parts: Support functions and Protocol
78Implementation. The support functions include:92Implementation. The support functions include:
79 93
@@ -112,7 +126,7 @@ The CAIF Protocol implementation contains: · 32 unmodified lines
112 - CFSERL CAIF Serial layer. Handles concatenation/split of frames126 - CFSERL CAIF Serial layer. Handles concatenation/split of frames
113 into CAIF Frames with correct length.127 into CAIF Frames with correct length.
114 128
115 129::
116 130
117 +---------+131 +---------+
118 | Config |132 | Config |
@@ -143,18 +157,24 @@ The CAIF Protocol implementation contains: · 24 unmodified lines
143 157
144 158
145In this layered approach the following "rules" apply.159In this layered approach the following "rules" apply.
160
146 - All layers embed the same structure "struct cflayer"161 - All layers embed the same structure "struct cflayer"
147 - A layer does not depend on any other layer's private data.162 - A layer does not depend on any other layer's private data.
148 - Layers are stacked by setting the pointers163 - Layers are stacked by setting the pointers::
164
149 layer->up , layer->dn165 layer->up , layer->dn
150 - In order to send data upwards, each layer should do166
167 - In order to send data upwards, each layer should do::
168
151 layer->up->receive(layer->up, packet);169 layer->up->receive(layer->up, packet);
152 - In order to send data downwards, each layer should do170
171 - In order to send data downwards, each layer should do::
172
153 layer->dn->transmit(layer->dn, packet);173 layer->dn->transmit(layer->dn, packet);
154 174
155 175
156CAIF Socket and IP interface176CAIF Socket and IP interface
157===========================177============================
158 178
159The IP interface and CAIF socket API are implemented on top of the179The IP interface and CAIF socket API are implemented on top of the
160CAIF Core protocol. The IP Interface and CAIF socket have an instance of180CAIF 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================
4CAIF SPI porting
5================
6
7CAIF SPI basics
8===============
9
10Running CAIF over SPI needs some extra setup, owing to the nature of SPI.
11Two extra GPIOs have been added in order to negotiate the transfers
12between the master and the slave. The minimum requirement for running
13CAIF over SPI is a SPI slave chip and two GPIOs (more details below).
14Please note that running as a slave implies that you need to keep up
15with the master clock. An overrun or underrun event is fatal.
16
17CAIF SPI framework
18==================
19
20To make porting as easy as possible, the CAIF SPI has been divided in
21two parts. The first part (called the interface part) deals with all
22generic functionality such as length framing, SPI frame negotiation
23and SPI frame delivery and transmission. The other part is the CAIF
24SPI slave device part, which is the module that you have to write if
25you want to run SPI CAIF on a new hardware. This part takes care of
26the 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
101Padding
102=======
103
104In order to optimize throughput, a number of SPI padding options are provided.
105Padding can be enabled independently for uplink and downlink transfers.
106Padding can be enabled for the head, the tail and for the total frame size.
107The padding needs to be correctly configured on both sides of the link.
108The padding can be changed via module parameters in cfspi_sspi.c or via
109the 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
5Running CAIF over SPI needs some extra setup, owing to the nature of SPI.
6Two extra GPIOs have been added in order to negotiate the transfers
7 between the master and the slave. The minimum requirement for running
8CAIF over SPI is a SPI slave chip and two GPIOs (more details below).
9Please note that running as a slave implies that you need to keep up
10with the master clock. An overrun or underrun event is fatal.
11
12- CAIF SPI framework:
13
14To make porting as easy as possible, the CAIF SPI has been divided in
15two parts. The first part (called the interface part) deals with all
16generic functionality such as length framing, SPI frame negotiation
17and SPI frame delivery and transmission. The other part is the CAIF
18SPI slave device part, which is the module that you have to write if
19you want to run SPI CAIF on a new hardware. This part takes care of
20the 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
83In order to optimize throughput, a number of SPI padding options are provided.
84Padding can be enabled independently for uplink and downlink transfers.
85Padding can be enabled for the head, the tail and for the total frame size.
86The padding needs to be correctly configured on both sides of the link.
87The padding can be changed via module parameters in cfspi_sspi.c or via
88the 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
107MODULE_LICENSE("GPL");
108
109struct sspi_struct {
110 struct cfspi_dev sdev;
111 struct cfspi_xfer *xfer;
112};
113
114static struct sspi_struct slave;
115static struct platform_device slave_device;
116
117static 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
128static 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
137static 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
150void 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
161static void sspi_release(struct device *dev)
162{
163 /*
164 * Here you should release your SPI device resources.
165 */
166}
167
168static 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
202static void __exit sspi_exit(void)
203{
204 platform_device_del(&slave_device);
205}
206
207module_init(sspi_init);
208module_exit(sspi_exit);
Documentation/networking/can.rst+1−1
@@ -1058,7 +1058,7 @@ drivers you mainly have to deal with: · 1057 unmodified lines
1058- TX: Put the CAN frame from the socket buffer to the CAN controller.1058- TX: Put the CAN frame from the socket buffer to the CAN controller.
1059- RX: Put the CAN frame from the CAN controller to the socket buffer.1059- RX: Put the CAN frame from the CAN controller to the socket buffer.
1060 1060
1061See e.g. at Documentation/networking/netdevices.txt . The differences1061See e.g. at Documentation/networking/netdevices.rst . The differences
1062for writing CAN network device driver are described below:1062for writing CAN network device driver are described below:
1063 1063
1064 1064
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 modems1.. SPDX-License-Identifier: GPL-2.0
2 ========================================================2
3======================================================
4cdc_mbim - Driver for CDC MBIM Mobile Broadband modems
5======================================================
3 6
4The cdc_mbim driver supports USB devices conforming to the "Universal7The cdc_mbim driver supports USB devices conforming to the "Universal
5Serial Bus Communications Class Subclass Specification for Mobile8Serial Bus Communications Class Subclass Specification for Mobile
@@ -19,9 +22,9 @@ by a cdc_ncm driver parameter: · 13 unmodified lines
19 22
20prefer_mbim23prefer_mbim
21-----------24-----------
22Type: Boolean25:Type: Boolean
23Valid Range: N/Y (0-1)26:Valid Range: N/Y (0-1)
24Default Value: Y (MBIM is preferred)27:Default Value: Y (MBIM is preferred)
25 28
26This parameter sets the system policy for NCM/MBIM functions. Such29This parameter sets the system policy for NCM/MBIM functions. Such
27functions will be handled by either the cdc_ncm driver or the cdc_mbim30functions 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
44MBIM function.47MBIM function.
45 48
46Such userspace applications includes, but are not limited to:49Such userspace applications includes, but are not limited to:
50
47 - mbimcli (included with the libmbim [3] library), and51 - mbimcli (included with the libmbim [3] library), and
48 - ModemManager [4]52 - ModemManager [4]
49 53
50Establishing a MBIM IP session reequires at least these actions by the54Establishing a MBIM IP session reequires at least these actions by the
51management application:55management application:
56
52 - open the control channel57 - open the control channel
53 - configure network connection settings58 - configure network connection settings
54 - connect to network59 - connect to network
@@ -76,7 +81,7 @@ complies with all the control channel requirements in [1]. · 21 unmodified lines
76 81
77The cdc-wdmX device is created as a child of the MBIM control82The cdc-wdmX device is created as a child of the MBIM control
78interface USB device. The character device associated with a specific83interface USB device. The character device associated with a specific
79MBIM function can be looked up using sysfs. For example:84MBIM function can be looked up using sysfs. For example::
80 85
81 bjorn@nemi:~$ ls /sys/bus/usb/drivers/cdc_mbim/2-4:2.12/usbmisc86 bjorn@nemi:~$ ls /sys/bus/usb/drivers/cdc_mbim/2-4:2.12/usbmisc
82 cdc-wdm087 cdc-wdm0
@@ -119,13 +124,15 @@ negotiated control message size. · 36 unmodified lines
119 124
120 125
121/dev/cdc-wdmX ioctl()126/dev/cdc-wdmX ioctl()
122--------------------127---------------------
123IOCTL_WDM_MAX_COMMAND: Get Maximum Command Size128IOCTL_WDM_MAX_COMMAND: Get Maximum Command Size
124This ioctl returns the wMaxControlMessage field of the CDC MBIM129This ioctl returns the wMaxControlMessage field of the CDC MBIM
125functional descriptor for MBIM devices. This is intended as a130functional descriptor for MBIM devices. This is intended as a
126convenience, eliminating the need to parse the USB descriptors from131convenience, eliminating the need to parse the USB descriptors from
127userspace.132userspace.
128 133
134::
135
129 #include <stdio.h>136 #include <stdio.h>
130 #include <fcntl.h>137 #include <fcntl.h>
131 #include <sys/ioctl.h>138 #include <sys/ioctl.h>
@@ -178,7 +185,7 @@ VLAN links prior to establishing MBIM IP sessions where the SessionId · 46 unmodified lines
178is greater than 0. These links can be added by using the normal VLAN185is greater than 0. These links can be added by using the normal VLAN
179kernel interfaces, either ioctl or netlink.186kernel interfaces, either ioctl or netlink.
180 187
181For example, adding a link for a MBIM IP session with SessionId 3:188For example, adding a link for a MBIM IP session with SessionId 3::
182 189
183 ip link add link wwan0 name wwan0.3 type vlan id 3190 ip link add link wwan0 name wwan0.3 type vlan id 3
184 191
@@ -207,6 +214,7 @@ the stream to the end user in an appropriate way for the stream type. · 22 unmodified lines
207The network device ABI requires a dummy ethernet header for every DSS214The network device ABI requires a dummy ethernet header for every DSS
208data frame being transported. The contents of this header is215data frame being transported. The contents of this header is
209arbitrary, with the following exceptions:216arbitrary, with the following exceptions:
217
210 - TX frames using an IP protocol (0x0800 or 0x86dd) will be dropped218 - TX frames using an IP protocol (0x0800 or 0x86dd) will be dropped
211 - RX frames will have the protocol field set to ETH_P_802_3 (but will219 - RX frames will have the protocol field set to ETH_P_802_3 (but will
212 not be properly formatted 802.3 frames)220 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
218 226
219This is a simple example using tools commonly available, exporting227This is a simple example using tools commonly available, exporting
220DssSessionId 5 as a pty character device pointed to by a /dev/nmea228DssSessionId 5 as a pty character device pointed to by a /dev/nmea
221symlink:229symlink::
222 230
223 ip link add link wwan0 name wwan0.dss5 type vlan id 261231 ip link add link wwan0 name wwan0.dss5 type vlan id 261
224 ip link set dev wwan0.dss5 up232 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
236headers with the appropriate tag on TX. In this case using a socket244headers with the appropriate tag on TX. In this case using a socket
237filter is recommended, matching only the DSS VLAN subset. This avoid245filter is recommended, matching only the DSS VLAN subset. This avoid
238unnecessary copying of unrelated IP session data to userspace. For246unnecessary copying of unrelated IP session data to userspace. For
239example:247example::
240 248
241 static struct sock_filter dssfilter[] = {249 static struct sock_filter dssfilter[] = {
242 /* use special negative offsets to get VLAN tag */250 /* use special negative offsets to get VLAN tag */
@@ -249,11 +257,11 @@ example: · 6 unmodified lines
249 BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 512, 3, 0), /* 511 is last DSS VLAN */257 BPF_JUMP(BPF_JMP|BPF_JGE|BPF_K, 512, 3, 0), /* 511 is last DSS VLAN */
250 258
251 /* verify ethertype */259 /* verify ethertype */
252 BPF_STMT(BPF_LD|BPF_H|BPF_ABS, 2 * ETH_ALEN),260 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),261 BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, ETH_P_802_3, 0, 1),
254 262
255 BPF_STMT(BPF_RET|BPF_K, (u_int)-1), /* accept */263 BPF_STMT(BPF_RET|BPF_K, (u_int)-1), /* accept */
256 BPF_STMT(BPF_RET|BPF_K, 0), /* ignore */264 BPF_STMT(BPF_RET|BPF_K, 0), /* ignore */
257 };265 };
258 266
259 267
@@ -266,6 +274,7 @@ network device. · 6 unmodified lines
266 274
267This mapping implies a few restrictions on multiplexed IPS and DSS275This mapping implies a few restrictions on multiplexed IPS and DSS
268sessions, which may not always be practical:276sessions, which may not always be practical:
277
269 - no IPS or DSS session can use a frame size greater than the MTU on278 - no IPS or DSS session can use a frame size greater than the MTU on
270 IP session 0279 IP session 0
271 - no IPS or DSS session can be in the up state unless the network280 - no IPS or DSS session can be in the up state unless the network
@@ -280,7 +289,7 @@ device. · 8 unmodified lines
280 289
281Tip: It might be less confusing to the end user to name this VLAN290Tip: It might be less confusing to the end user to name this VLAN
282subdevice after the MBIM SessionID instead of the VLAN ID. For291subdevice after the MBIM SessionID instead of the VLAN ID. For
283example:292example::
284 293
285 ip link add link wwan0 name wwan0.0 type vlan id 4094294 ip link add link wwan0 name wwan0.0 type vlan id 4094
286 295
@@ -290,7 +299,7 @@ VLAN mapping · 3 unmodified lines
290 299
291Summarizing the cdc_mbim driver mapping described above, we have this300Summarizing the cdc_mbim driver mapping described above, we have this
292relationship between VLAN tags on the wwanY network device and MBIM301relationship between VLAN tags on the wwanY network device and MBIM
293sessions on the shared USB data channel:302sessions on the shared USB data channel::
294 303
295 VLAN ID MBIM type MBIM SessionID Notes304 VLAN ID MBIM type MBIM SessionID Notes
296 ---------------------------------------------------------305 ---------------------------------------------------------
@@ -310,30 +319,37 @@ sessions on the shared USB data channel: · 13 unmodified lines
310References319References
311==========320==========
312 321
313[1] USB Implementers Forum, Inc. - "Universal Serial Bus322 1) USB Implementers Forum, Inc. - "Universal Serial Bus
314 Communications Class Subclass Specification for Mobile Broadband323 Communications Class Subclass Specification for Mobile Broadband
315 Interface Model", Revision 1.0 (Errata 1), May 1, 2013324 Interface Model", Revision 1.0 (Errata 1), May 1, 2013
325
316 - http://www.usb.org/developers/docs/devclass_docs/326 - http://www.usb.org/developers/docs/devclass_docs/
317 327
318[2] USB Implementers Forum, Inc. - "Universal Serial Bus328 2) USB Implementers Forum, Inc. - "Universal Serial Bus
319 Communications Class Subclass Specifications for Network Control329 Communications Class Subclass Specifications for Network Control
320 Model Devices", Revision 1.0 (Errata 1), November 24, 2010330 Model Devices", Revision 1.0 (Errata 1), November 24, 2010
331
321 - http://www.usb.org/developers/docs/devclass_docs/332 - http://www.usb.org/developers/docs/devclass_docs/
322 333
323[3] libmbim - "a glib-based library for talking to WWAN modems and334 3) libmbim - "a glib-based library for talking to WWAN modems and
324 devices which speak the Mobile Interface Broadband Model (MBIM)335 devices which speak the Mobile Interface Broadband Model (MBIM)
325 protocol"336 protocol"
337
326 - http://www.freedesktop.org/wiki/Software/libmbim/338 - http://www.freedesktop.org/wiki/Software/libmbim/
327 339
328[4] ModemManager - "a DBus-activated daemon which controls mobile340 4) ModemManager - "a DBus-activated daemon which controls mobile
329 broadband (2G/3G/4G) devices and connections"341 broadband (2G/3G/4G) devices and connections"
342
330 - http://www.freedesktop.org/wiki/Software/ModemManager/343 - http://www.freedesktop.org/wiki/Software/ModemManager/
331 344
332[5] "MBIM (Mobile Broadband Interface Model) Registry"345 5) "MBIM (Mobile Broadband Interface Model) Registry"
346
333 - http://compliance.usb.org/mbim/347 - http://compliance.usb.org/mbim/
334 348
335[6] "/sys/kernel/debug/usb/devices output format"349 6) "/sys/kernel/debug/usb/devices output format"
350
336 - Documentation/driver-api/usb/usb.rst351 - Documentation/driver-api/usb/usb.rst
337 352
338[7] "/sys/bus/usb/devices/.../descriptors"353 7) "/sys/bus/usb/devices/.../descriptors"
354
339 - Documentation/ABI/stable/sysfs-bus-usb355 - 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
59for more details.59for more details.
60 60
61A driver declares its offload capabilities in netdev->hw_features; see61A driver declares its offload capabilities in netdev->hw_features; see
62Documentation/networking/netdev-features.txt for more. Note that a device62Documentation/networking/netdev-features.rst for more. Note that a device
63which only advertises NETIF_F_IP[V6]_CSUM must still obey the csum_start and63which only advertises NETIF_F_IP[V6]_CSUM must still obey the csum_start and
64csum_offset given in the SKB; if it tries to deduce these itself in hardware64csum_offset given in the SKB; if it tries to deduce these itself in hardware
65(as some NICs do) the driver should check that the values in the SKB match65(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========================================
4The COPS LocalTalk Linux driver (cops.c)
5========================================
6
7By Jay Schulist <jschlst@samba.org>
8
9This driver has two modes and they are: Dayna mode and Tangent mode.
10Each mode corresponds with the type of card. It has been found
11that there are 2 main types of cards and all other cards are
12the same and just have different names or only have minor differences
13such as more IO ports. As this driver is tested it will
14become more clear exactly what cards are supported.
15
16Right now these cards are known to work with the COPS driver. The
17LT-200 cards work in a somewhat more limited capacity than the
18DL200 cards, which work very well and are in use by many people.
19
20TANGENT driver mode:
21 - Tangent ATB-II, Novell NL-1000, Daystar Digital LT-200
22
23DAYNA driver mode:
24 - Dayna DL2000/DaynaTalk PC (Half Length), COPS LT-95,
25 - Farallon PhoneNET PC III, Farallon PhoneNET PC II
26
27Other cards possibly supported mode unknown though:
28 - Dayna DL2000 (Full length)
29
30The COPS driver defaults to using Dayna mode. To change the driver's
31mode if you built a driver with dual support use board_type=1 or
32board_type=2 for Dayna or Tangent with insmod.
33
34Operation/loading of the driver
35===============================
36
37Use modprobe like this: /sbin/modprobe cops.o (IO #) (IRQ #)
38If you do not specify any options the driver will try and use the IO = 0x240,
39IRQ = 5. As of right now I would only use IRQ 5 for the card, if autoprobing.
40
41To 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
46Or in lilo.conf put something like this::
47
48 append="ether=5,0x240,lt0 ether=3,0x260,lt1"
49
50Then 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
58Netatalk Configuration
59======================
60
61You will need to configure atalkd with something like the following to make
62it 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 @@
1Text File for the COPS LocalTalk Linux driver (cops.c).
2 By Jay Schulist <jschlst@samba.org>
3
4This driver has two modes and they are: Dayna mode and Tangent mode.
5Each mode corresponds with the type of card. It has been found
6that there are 2 main types of cards and all other cards are
7the same and just have different names or only have minor differences
8such as more IO ports. As this driver is tested it will
9become more clear exactly what cards are supported.
10
11Right now these cards are known to work with the COPS driver. The
12LT-200 cards work in a somewhat more limited capacity than the
13DL200 cards, which work very well and are in use by many people.
14
15TANGENT driver mode:
16 Tangent ATB-II, Novell NL-1000, Daystar Digital LT-200
17DAYNA driver mode:
18 Dayna DL2000/DaynaTalk PC (Half Length), COPS LT-95,
19 Farallon PhoneNET PC III, Farallon PhoneNET PC II
20Other cards possibly supported mode unknown though:
21 Dayna DL2000 (Full length)
22
23The COPS driver defaults to using Dayna mode. To change the driver's
24mode if you built a driver with dual support use board_type=1 or
25board_type=2 for Dayna or Tangent with insmod.
26
27** Operation/loading of the driver.
28Use modprobe like this: /sbin/modprobe cops.o (IO #) (IRQ #)
29If you do not specify any options the driver will try and use the IO = 0x240,
30IRQ = 5. As of right now I would only use IRQ 5 for the card, if autoprobing.
31
32To load multiple COPS driver Localtalk cards you can do one of the following.
33
34insmod cops io=0x240 irq=5
35insmod -o cops2 cops io=0x260 irq=3
36
37Or in lilo.conf put something like this:
38 append="ether=5,0x240,lt0 ether=3,0x260,lt1"
39
40Then bring up the interface with ifconfig. It will look something like this:
41lt0 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
48You will need to configure atalkd with something like the following to make
49it work with the cops.c driver.
50
51* For single LTalk card use.
52dummy -seed -phase 2 -net 2000 -addr 2000.10 -zone "1033"
53lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033"
54
55* For multiple cards, Ethernet and LocalTalk.
56eth0 -seed -phase 2 -net 3000 -addr 3000.20 -zone "1033"
57lt0 -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.
61lt0 -seed -phase 1 -net 1000 -addr 1000.10 -zone "LocalTalk1"
62lt1 -seed -phase 1 -net 2000 -addr 2000.20 -zone "LocalTalk2"
63eth0 -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========================
4ATM cxacru device driver
5========================
6
1Firmware is required for this device: http://accessrunner.sourceforge.net/7Firmware is required for this device: http://accessrunner.sourceforge.net/
2 8
3While it is capable of managing/maintaining the ADSL connection without the9While 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
19 25
20* adsl_headend26* adsl_headend
21* adsl_headend_environment27* adsl_headend_environment
22 Information about the remote headend.28
29 - Information about the remote headend.
23 30
24* adsl_config31* adsl_config
25 Configuration writing interface.32
26 Write parameters in hexadecimal format <index>=<value>,33 - Configuration writing interface.
27 separated by whitespace, e.g.:34 - Write parameters in hexadecimal format <index>=<value>,
35 separated by whitespace, e.g.:
36
28 "1=0 a=5"37 "1=0 a=5"
29 Up to 7 parameters at a time will be sent and the modem will restart38
30 the ADSL connection when any value is set. These are logged for future39 - Up to 7 parameters at a time will be sent and the modem will restart
31 reference.40 the ADSL connection when any value is set. These are logged for future
41 reference.
32 42
33* downstream_attenuation (dB)43* downstream_attenuation (dB)
34* downstream_bits_per_frame44* downstream_bits_per_frame
35* downstream_rate (kbps)45* downstream_rate (kbps)
36* downstream_snr_margin (dB)46* downstream_snr_margin (dB)
37 Downstream stats.47
48 - Downstream stats.
38 49
39* upstream_attenuation (dB)50* upstream_attenuation (dB)
40* upstream_bits_per_frame51* upstream_bits_per_frame
41* upstream_rate (kbps)52* upstream_rate (kbps)
42* upstream_snr_margin (dB)53* upstream_snr_margin (dB)
43* transmitter_power (dBm/Hz)54* transmitter_power (dBm/Hz)
44 Upstream stats.55
56 - Upstream stats.
45 57
46* downstream_crc_errors58* downstream_crc_errors
47* downstream_fec_errors59* downstream_fec_errors
@@ -49,48 +61,56 @@ several sysfs attribute files for retrieving device statistics: · 1 unmodified line
49* upstream_crc_errors61* upstream_crc_errors
50* upstream_fec_errors62* upstream_fec_errors
51* upstream_hec_errors63* upstream_hec_errors
52 Error counts.64
65 - Error counts.
53 66
54* line_startable67* line_startable
55 Indicates that ADSL support on the device68
56 is/can be enabled, see adsl_start.69 - Indicates that ADSL support on the device
70 is/can be enabled, see adsl_start.
57 71
58* line_status72* line_status
59 "initialising"73
60 "down"74 - "initialising"
61 "attempting to activate"75 - "down"
62 "training"76 - "attempting to activate"
63 "channel analysis"77 - "training"
64 "exchange"78 - "channel analysis"
65 "waiting"79 - "exchange"
66 "up"80 - "waiting"
81 - "up"
67 82
68 Changes between "down" and "attempting to activate"83 Changes between "down" and "attempting to activate"
69 if there is no signal.84 if there is no signal.
70 85
71* link_status86* link_status
72 "not connected"87
73 "connected"88 - "not connected"
74 "lost"89 - "connected"
90 - "lost"
75 91
76* mac_address92* mac_address
77 93
78* modulation94* modulation
79 "" (when not connected)95
80 "ANSI T1.413"96 - "" (when not connected)
81 "ITU-T G.992.1 (G.DMT)"97 - "ANSI T1.413"
82 "ITU-T G.992.2 (G.LITE)"98 - "ITU-T G.992.1 (G.DMT)"
99 - "ITU-T G.992.2 (G.LITE)"
83 100
84* startup_attempts101* startup_attempts
85 Count of total attempts to initialise ADSL.102
103 - Count of total attempts to initialise ADSL.
86 104
87To enable/disable ADSL, the following can be written to the adsl_state file:105To 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)
92 106
93Changes 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
112Changes in adsl/line state are reported via kernel log messages::
113
94 [4942145.150704] ATM dev 0: ADSL state: running114 [4942145.150704] ATM dev 0: ADSL state: running
95 [4942243.663766] ATM dev 0: ADSL line: down115 [4942243.663766] ATM dev 0: ADSL line: down
96 [4942249.665075] ATM dev 0: ADSL line: attempting to activate116 [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=============
1DCCP protocol4DCCP protocol
2=============5=============
3 6
4 7
5Contents8.. Contents
6========9 - Introduction
7- Introduction10 - Missing features
8- Missing features11 - Socket options
9- Socket options12 - Sysctl variables
10- Sysctl variables13 - IOCTLs
11- IOCTLs14 - Other tunables
12- Other tunables15 - Notes
13- Notes
14 16
15 17
16Introduction18Introduction
@@ -38,6 +40,7 @@ The Linux DCCP implementation does not currently support all the features that a · 21 unmodified lines
38specified in RFCs 4340...42.40specified in RFCs 4340...42.
39 41
40The known bugs are at:42The known bugs are at:
43
41 http://www.linuxfoundation.org/collaborate/workgroups/networking/todo#DCCP44 http://www.linuxfoundation.org/collaborate/workgroups/networking/todo#DCCP
42 45
43For more up-to-date versions of the DCCP implementation, please consider using46For 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
54and a priority-based variant (DCCPQ_POLICY_PRIO). The latter allows to pass an57and a priority-based variant (DCCPQ_POLICY_PRIO). The latter allows to pass an
55u32 priority value as ancillary data to sendmsg(), where higher numbers indicate58u32 priority value as ancillary data to sendmsg(), where higher numbers indicate
56a higher packet priority (similar to SO_PRIORITY). This ancillary data needs to59a higher packet priority (similar to SO_PRIORITY). This ancillary data needs to
57be formatted using a cmsg(3) message header filled in as follows:60be formatted using a cmsg(3) message header filled in as follows::
61
58 cmsg->cmsg_level = SOL_DCCP;62 cmsg->cmsg_level = SOL_DCCP;
59 cmsg->cmsg_type = DCCP_SCM_PRIORITY;63 cmsg->cmsg_type = DCCP_SCM_PRIORITY;
60 cmsg->cmsg_len = CMSG_LEN(sizeof(uint32_t)); /* or CMSG_LEN(4) */64 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
94 98
95DCCP_SOCKOPT_TX_CCID is read/write. It returns the current CCID (if set) or sets99DCCP_SOCKOPT_TX_CCID is read/write. It returns the current CCID (if set) or sets
96the preference list for the TX CCID, using the same format as DCCP_SOCKOPT_CCID.100the preference list for the TX CCID, using the same format as DCCP_SOCKOPT_CCID.
97Please note that the getsockopt argument type here is `int', not uint8_t.101Please note that the getsockopt argument type here is ``int``, not uint8_t.
98 102
99DCCP_SOCKOPT_RX_CCID is analogous to DCCP_SOCKOPT_TX_CCID, but for the RX CCID.103DCCP_SOCKOPT_RX_CCID is analogous to DCCP_SOCKOPT_TX_CCID, but for the RX CCID.
100 104
@@ -113,6 +117,7 @@ be enabled at the receiver, too with suitable choice of CsCov. · 12 unmodified lines
113DCCP_SOCKOPT_SEND_CSCOV sets the sender checksum coverage. Values in the117DCCP_SOCKOPT_SEND_CSCOV sets the sender checksum coverage. Values in the
114 range 0..15 are acceptable. The default setting is 0 (full coverage),118 range 0..15 are acceptable. The default setting is 0 (full coverage),
115 values between 1..15 indicate partial coverage.119 values between 1..15 indicate partial coverage.
120
116DCCP_SOCKOPT_RECV_CSCOV is for the receiver and has a different meaning: it121DCCP_SOCKOPT_RECV_CSCOV is for the receiver and has a different meaning: it
117 sets a threshold, where again values 0..15 are acceptable. The default122 sets a threshold, where again values 0..15 are acceptable. The default
118 of 0 means that all packets with a partial coverage will be discarded.123 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
123 128
124The following two options apply to CCID 3 exclusively and are getsockopt()-only.129The following two options apply to CCID 3 exclusively and are getsockopt()-only.
125In either case, a TFRC info struct (defined in <linux/tfrc.h>) is returned.130In either case, a TFRC info struct (defined in <linux/tfrc.h>) is returned.
131
126DCCP_SOCKOPT_CCID_RX_INFO132DCCP_SOCKOPT_CCID_RX_INFO
127 Returns a `struct tfrc_rx_info' in optval; the buffer for optval and133 Returns a ``struct tfrc_rx_info`` in optval; the buffer for optval and
128 optlen must be set to at least sizeof(struct tfrc_rx_info).134 optlen must be set to at least sizeof(struct tfrc_rx_info).
135
129DCCP_SOCKOPT_CCID_TX_INFO136DCCP_SOCKOPT_CCID_TX_INFO
130 Returns a `struct tfrc_tx_info' in optval; the buffer for optval and137 Returns a ``struct tfrc_tx_info`` in optval; the buffer for optval and
131 optlen must be set to at least sizeof(struct tfrc_tx_info).138 optlen must be set to at least sizeof(struct tfrc_tx_info).
132 139
133On unidirectional connections it is useful to close the unused half-connection140On unidirectional connections it is useful to close the unused half-connection
@@ -182,7 +189,7 @@ sync_ratelimit = 125 ms · 48 unmodified lines
182IOCTLS189IOCTLS
183======190======
184FIONREAD191FIONREAD
185 Works as in udp(7): returns in the `int' argument pointer the size of192 Works as in udp(7): returns in the ``int`` argument pointer the size of
186 the next pending datagram in bytes, or 0 when no datagram is pending.193 the next pending datagram in bytes, or 0 when no datagram is pending.
187 194
188 195
@@ -191,10 +198,12 @@ Other tunables · 2 unmodified lines
191Per-route rto_min support198Per-route rto_min support
192 CCID-2 supports the RTAX_RTO_MIN per-route setting for the minimum value199 CCID-2 supports the RTAX_RTO_MIN per-route setting for the minimum value
193 of the RTO timer. This setting can be modified via the 'rto_min' option200 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
195 > ip route change 10.0.0.0/24 rto_min 250j dev wlan0203 > ip route change 10.0.0.0/24 rto_min 250j dev wlan0
196 > ip route add 10.0.0.254/32 rto_min 800j dev wlan0204 > ip route add 10.0.0.254/32 rto_min 800j dev wlan0
197 > ip route show dev wlan0205 > ip route show dev wlan0
206
198 CCID-3 also supports the rto_min setting: it is used to define the lower207 CCID-3 also supports the rto_min setting: it is used to define the lower
199 bound for the expiry of the nofeedback timer. This can be useful on LANs208 bound for the expiry of the nofeedback timer. This can be useful on LANs
200 with very low RTTs (e.g., loopback, Gbit ethernet).209 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======================
1DCTCP (DataCenter TCP)4DCTCP (DataCenter TCP)
2----------------------5======================
3 6
4DCTCP is an enhancement to the TCP congestion control algorithm for data7DCTCP is an enhancement to the TCP congestion control algorithm for data
5center networks and leverages Explicit Congestion Notification (ECN) in8center networks and leverages Explicit Congestion Notification (ECN) in
6the data center network to provide multi-bit feedback to the end hosts.9the data center network to provide multi-bit feedback to the end hosts.
7 10
8To enable it on end hosts:11To enable it on end hosts::
9 12
10 sysctl -w net.ipv4.tcp_congestion_control=dctcp13 sysctl -w net.ipv4.tcp_congestion_control=dctcp
11 sysctl -w net.ipv4.tcp_ecn_fallback=0 (optional)14 sysctl -w net.ipv4.tcp_ecn_fallback=0 (optional)
@@ -25,14 +28,19 @@ SIGCOMM/SIGMETRICS papers: · 13 unmodified lines
25 28
26 i) Mohammad Alizadeh, Albert Greenberg, David A. Maltz, Jitendra Padhye,29 i) Mohammad Alizadeh, Albert Greenberg, David A. Maltz, Jitendra Padhye,
27 Parveen Patel, Balaji Prabhakar, Sudipta Sengupta, and Murari Sridharan:30 Parveen Patel, Balaji Prabhakar, Sudipta Sengupta, and Murari Sridharan:
28 "Data Center TCP (DCTCP)", Data Center Networks session31
32 "Data Center TCP (DCTCP)", Data Center Networks session"
33
29 Proc. ACM SIGCOMM, New Delhi, 2010.34 Proc. ACM SIGCOMM, New Delhi, 2010.
35
30 http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf36 http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf
31 http://www.sigcomm.org/ccr/papers/2010/October/1851275.185119237 http://www.sigcomm.org/ccr/papers/2010/October/1851275.1851192
32 38
33ii) Mohammad Alizadeh, Adel Javanmard, and Balaji Prabhakar:39ii) Mohammad Alizadeh, Adel Javanmard, and Balaji Prabhakar:
40
34 "Analysis of DCTCP: Stability, Convergence, and Fairness"41 "Analysis of DCTCP: Stability, Convergence, and Fairness"
35 Proc. ACM SIGMETRICS, San Jose, 2011.42 Proc. ACM SIGMETRICS, San Jose, 2011.
43
36 http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp_analysis-full.pdf44 http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp_analysis-full.pdf
37 45
38IETF informational draft:46IETF informational draft:
Documentation/networking/decnet.rstrenamed from Documentation/networking/decnet.txt+45−32
@@ -1,26 +1,31 @@
1 Linux DECnet Networking Layer Information1.. SPDX-License-Identifier: GPL-2.0
2 ===========================================
3 2
41) Other documentation....3=========================================
4Linux DECnet Networking Layer Information
5=========================================
5 6
6 o Project Home Pages71. Other documentation....
7 http://www.chygwyn.com/ - Kernel info8==========================
8 http://linux-decnet.sourceforge.net/ - Userland tools
9 http://www.sourceforge.net/projects/linux-decnet/ - Status page
10 9
112) Configuring the kernel10 - 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
152. Configuring the kernel
16=========================
12 17
13Be sure to turn on the following options:18Be sure to turn on the following options:
14 19
15 CONFIG_DECNET (obviously)20 - CONFIG_DECNET (obviously)
16 CONFIG_PROC_FS (to see what's going on)21 - CONFIG_PROC_FS (to see what's going on)
17 CONFIG_SYSCTL (for easy configuration)22 - CONFIG_SYSCTL (for easy configuration)
18 23
19if you want to try out router support (not properly debugged yet)24if you want to try out router support (not properly debugged yet)
20you'll need the following options as well...25you'll need the following options as well...
21 26
22 CONFIG_DECNET_ROUTER (to be able to add/delete routes)27 - CONFIG_DECNET_ROUTER (to be able to add/delete routes)
23 CONFIG_NETFILTER (will be required for the DECnet routing daemon)28 - CONFIG_NETFILTER (will be required for the DECnet routing daemon)
24 29
25Don't turn on SIOCGIFCONF support for DECnet unless you are really sure30Don't turn on SIOCGIFCONF support for DECnet unless you are really sure
26that you need it, in general you won't and it can cause ifconfig to31that you need it, in general you won't and it can cause ifconfig to
@@ -29,7 +34,7 @@ malfunction. · 2 unmodified lines
29Run time configuration has changed slightly from the 2.4 system. If you34Run time configuration has changed slightly from the 2.4 system. If you
30want to configure an endnode, then the simplified procedure is as follows:35want to configure an endnode, then the simplified procedure is as follows:
31 36
32 o Set the MAC address on your ethernet card before starting _any_ other37 - Set the MAC address on your ethernet card before starting _any_ other
33 network protocols.38 network protocols.
34 39
35As soon as your network card is brought into the UP state, DECnet should40As 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
37to set the MAC address, see the next section. Also all configurations which42to set the MAC address, see the next section. Also all configurations which
38worked with 2.4 will work under 2.5 with no change.43worked with 2.4 will work under 2.5 with no change.
39 44
403) Command line options453. Command line options
46=======================
41 47
42You can set a DECnet address on the kernel command line for compatibility48You can set a DECnet address on the kernel command line for compatibility
43with the 2.4 configuration procedure, but in general it's not needed any more.49with 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
56host until such time as you start a connection. This doesn't affect the62host until such time as you start a connection. This doesn't affect the
57operation of the local communications in any other way though.63operation of the local communications in any other way though.
58 64
59The kernel command line takes options looking like the following:65The kernel command line takes options looking like the following::
60 66
61 decnet.addr=1,267 decnet.addr=1,2
62 68
@@ -82,7 +88,7 @@ address of the node in order for it to be autoconfigured (and then appear in · 19 unmodified lines
82FTP sites called dn2ethaddr which can compute the correct ethernet88FTP sites called dn2ethaddr which can compute the correct ethernet
83address to use. The address can be set by ifconfig either before or89address to use. The address can be set by ifconfig either before or
84at the time the device is brought up. If you are using RedHat you can90at the time the device is brought up. If you are using RedHat you can
85add the line:91add the line::
86 92
87 MACADDR=AA:00:04:00:03:0493 MACADDR=AA:00:04:00:03:04
88 94
@@ -95,7 +101,7 @@ verify with iproute2). · 6 unmodified lines
95The default device for routing can be set through the /proc filesystem101The default device for routing can be set through the /proc filesystem
96by setting /proc/sys/net/decnet/default_device to the102by setting /proc/sys/net/decnet/default_device to the
97device you want DECnet to route packets out of when no specific route103device you want DECnet to route packets out of when no specific route
98is available. Usually this will be eth0, for example:104is available. Usually this will be eth0, for example::
99 105
100 echo -n "eth0" >/proc/sys/net/decnet/default_device106 echo -n "eth0" >/proc/sys/net/decnet/default_device
101 107
@@ -106,7 +112,9 @@ confirm that by looking in the default_device file of course. · 4 unmodified lines
106There is a list of what the other files under /proc/sys/net/decnet/ do112There is a list of what the other files under /proc/sys/net/decnet/ do
107on the kernel patch web site (shown above).113on the kernel patch web site (shown above).
108 114
1094) Run time kernel configuration1154. Run time kernel configuration
116================================
117
110 118
111This is either done through the sysctl/proc interface (see the kernel web119This is either done through the sysctl/proc interface (see the kernel web
112pages for details on what the various options do) or through the iproute2120pages 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
122there will be a routing daemon to send and receive routing messages for130there will be a routing daemon to send and receive routing messages for
123each interface and update the kernel routing tables accordingly. The131each interface and update the kernel routing tables accordingly. The
124routing daemon will use netfilter to listen to routing packets, and132routing daemon will use netfilter to listen to routing packets, and
125rtnetlink to update the kernels routing tables. 133rtnetlink to update the kernels routing tables.
126 134
127The DECnet raw socket layer has been removed since it was there purely135The DECnet raw socket layer has been removed since it was there purely
128for use by the routing daemon which will now use netfilter (a much cleaner136for use by the routing daemon which will now use netfilter (a much cleaner
129and more generic solution) instead.137and more generic solution) instead.
130 138
1315) How can I tell if its working ?1395. How can I tell if its working?
140=================================
132 141
133Here is a quick guide of what to look for in order to know if your DECnet142Here is a quick guide of what to look for in order to know if your DECnet
134kernel subsystem is working.143kernel subsystem is working.
135 144
136 - Is the node address set (see /proc/sys/net/decnet/node_address)145 - Is the node address set (see /proc/sys/net/decnet/node_address)
137 - Is the node of the correct type 146 - Is the node of the correct type
138 (see /proc/sys/net/decnet/conf/<dev>/forwarding)147 (see /proc/sys/net/decnet/conf/<dev>/forwarding)
139 - Is the Ethernet MAC address of each Ethernet card set to match148 - Is the Ethernet MAC address of each Ethernet card set to match
140 the DECnet address. If in doubt use the dn2ethaddr utility available149 the DECnet address. If in doubt use the dn2ethaddr utility available
141 at the ftp archive.150 at the ftp archive.
@@ -160,7 +169,8 @@ kernel subsystem is working. · 18 unmodified lines
160 network, and see if you can obtain the same results.169 network, and see if you can obtain the same results.
161 - At this point you are on your own... :-)170 - At this point you are on your own... :-)
162 171
1636) How to send a bug report1726. How to send a bug report
173===========================
164 174
165If you've found a bug and want to report it, then there are several things175If you've found a bug and want to report it, then there are several things
166you can do to help me work out exactly what it is that is wrong. Useful176you 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
175 - How much data was being transferred ?185 - How much data was being transferred ?
176 - Was the network congested ?186 - Was the network congested ?
177 - How can the problem be reproduced ?187 - 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
179 tcpdump don't understand how to dump DECnet properly, so including189 tcpdump don't understand how to dump DECnet properly, so including
180 the hex listing of the packet contents is _essential_, usually the -x flag.190 the hex listing of the packet contents is _essential_, usually the -x flag.
181 You may also need to increase the length grabbed with the -s flag. The191 You may also need to increase the length grabbed with the -s flag. The
182 -e flag also provides very useful information (ethernet MAC addresses))192 -e flag also provides very useful information (ethernet MAC addresses))
183 193
1847) MAC FAQ1947. MAC FAQ
195==========
185 196
186A quick FAQ on ethernet MAC addresses to explain how Linux and DECnet197A quick FAQ on ethernet MAC addresses to explain how Linux and DECnet
187interact and how to get the best performance from your hardware. 198interact and how to get the best performance from your hardware.
188 199
189Ethernet cards are designed to normally only pass received network frames 200Ethernet cards are designed to normally only pass received network frames
190to a host computer when they are addressed to it, or to the broadcast address.201to a host computer when they are addressed to it, or to the broadcast address.
191 202
192Linux has an interface which allows the setting of extra addresses for203Linux 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
197network (see the NAPI documentation for a longer explanation of these208network (see the NAPI documentation for a longer explanation of these
198effects).209effects).
199 210
200DECnet makes use of this interface to allow running DECnet on an ethernet 211DECnet makes use of this interface to allow running DECnet on an ethernet
201card which has already been configured using TCP/IP (presumably using the 212card which has already been configured using TCP/IP (presumably using the
202built in MAC address of the card, as usual) and/or to allow multiple DECnet213built in MAC address of the card, as usual) and/or to allow multiple DECnet
203addresses on each physical interface. If you do this, be aware that if your214addresses on each physical interface. If you do this, be aware that if your
204ethernet card doesn't support perfect hashing in its MAC address filter215ethernet 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
210NAPI as well.221NAPI as well.
211 222
212 223
2138) Mailing list2248. Mailing list
225===============
214 226
215If you are keen to get involved in development, or want to ask questions227If you are keen to get involved in development, or want to ask questions
216about configuration, or even just report bugs, then there is a mailing228about 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
218 230
219http://sourceforge.net/mail/?group_id=4993231http://sourceforge.net/mail/?group_id=4993
220 232
2219) Legal Info2339. Legal Info
234=============
222 235
223The Linux DECnet project team have placed their code under the GPL. The236The Linux DECnet project team have placed their code under the GPL. The
224software is provided "as is" and without warranty express or implied.237software 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 @@
1Notes on the DEC FDDIcontroller 700 (DEFZA-xx) driver v.1.1.4.1.. SPDX-License-Identifier: GPL-2.0
2
3=====================================================
4Notes on the DEC FDDIcontroller 700 (DEFZA-xx) driver
5=====================================================
6
7:Version: v.1.1.4
2 8
3 9
4DEC FDDIcontroller 700 is DEC's first-generation TURBOchannel FDDI10DEC 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=============================================================================
1Linux and the 3Com EtherLink III Series Ethercards (driver v1.18c and higher)4Linux and the 3Com EtherLink III Series Ethercards (driver v1.18c and higher)
2----------------------------------------------------------------------------5=============================================================================
3 6
4This file contains the instructions and caveats for v1.18c and higher versions7This file contains the instructions and caveats for v1.18c and higher versions
5of the 3c509 driver. You should not use the driver without reading this file.8of the 3c509 driver. You should not use the driver without reading this file.
6 9
7release 1.010release 1.0
11
828 February 20021228 February 2002
13
9Current maintainer (corrections to):14Current maintainer (corrections to):
10 David Ruggiero <jdr@farfalle.com>15 David Ruggiero <jdr@farfalle.com>
11 16
12----------------------------------------------------------------------------17Introduction
13 18============
14(0) Introduction
15 19
16The following are notes and information on using the 3Com EtherLink III series20The following are notes and information on using the 3Com EtherLink III series
17ethercards in Linux. These cards are commonly known by the most widely-used21ethercards 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
21provided by the module 3c509.c, which has code to support all of the following25provided by the module 3c509.c, which has code to support all of the following
22models:26models:
23 27
24 3c509 (original ISA card)28 - 3c509 (original ISA card)
25 3c509B (later revision of the ISA card; supports full-duplex)29 - 3c509B (later revision of the ISA card; supports full-duplex)
26 3c589 (PCMCIA)30 - 3c589 (PCMCIA)
27 3c589B (later revision of the 3c589; supports full-duplex)31 - 3c589B (later revision of the 3c589; supports full-duplex)
28 3c579 (EISA)32 - 3c579 (EISA)
29 33
30Large portions of this documentation were heavily borrowed from the guide34Large portions of this documentation were heavily borrowed from the guide
31written the original author of the 3c509 driver, Donald Becker. The master35written 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
33currently resides on Scyld web server: http://www.scyld.com/.37currently resides on Scyld web server: http://www.scyld.com/.
34 38
35 39
36(1) Special Driver Features40Special Driver Features
41=======================
37 42
38Overriding card settings43Overriding card settings
39 44
40The driver allows boot- or load-time overriding of the card's detected IOADDR,45The driver allows boot- or load-time overriding of the card's detected IOADDR,
41IRQ, and transceiver settings, although this capability shouldn't generally be46IRQ, and transceiver settings, although this capability shouldn't generally be
42needed except to enable full-duplex mode (see below). An example of the syntax47needed except to enable full-duplex mode (see below). An example of the syntax
43for LILO parameters for doing this:48for LILO parameters for doing this::
44 49
45 ether=10,0x310,3,0x3c509,eth0 50 ether=10,0x310,3,0x3c509,eth0
46 51
47This configures the first found 3c509 card for IRQ 10, base I/O 0x310, and52This configures the first found 3c509 card for IRQ 10, base I/O 0x310, and
48transceiver type 3 (10base2). The flag "0x3c509" must be set to avoid conflicts53transceiver type 3 (10base2). The flag "0x3c509" must be set to avoid conflicts
49with other card types when overriding the I/O address. When the driver is54with other card types when overriding the I/O address. When the driver is
50loaded as a module, only the IRQ may be overridden. For example,55loaded as a module, only the IRQ may be overridden. For example,
51setting two cards to IRQ10 and IRQ11 is done by using the irq module56setting two cards to IRQ10 and IRQ11 is done by using the irq module
52option:57option::
53 58
54 options 3c509 irq=10,1159 options 3c509 irq=10,11
55 60
56 61
57(2) Full-duplex mode62Full-duplex mode
63================
58 64
59The v1.18c driver added support for the 3c509B's full-duplex capabilities.65The v1.18c driver added support for the 3c509B's full-duplex capabilities.
60In order to enable and successfully use full-duplex mode, three conditions66In order to enable and successfully use full-duplex mode, three conditions
61must be met: 67must be met:
62 68
63(a) You must have a Etherlink III card model whose hardware supports full-69(a) You must have a Etherlink III card model whose hardware supports full-
64duplex operations. Currently, the only members of the 3c509 family that are70duplex 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
78another system that's connected directly to the 3c509B via a crossover cable.84another system that's connected directly to the 3c509B via a crossover cable.
79 85
80Full-duplex mode can be enabled using 'ethtool'.86Full-duplex mode can be enabled using 'ethtool'.
81 87
82/////Extremely important caution concerning full-duplex mode/////88.. warning::
83Understand that the 3c509B's hardware's full-duplex support is much more89
84limited than that provide by more modern network interface cards. Although90 Extremely important caution concerning full-duplex mode
85at the physical layer of the network it fully supports full-duplex operation,91
86the card was designed before the current Ethernet auto-negotiation (N-way)92 Understand that the 3c509B's hardware's full-duplex support is much more
87spec was written. This means that the 3c509B family ***cannot and will not93 limited than that provide by more modern network interface cards. Although
88auto-negotiate a full-duplex connection with its link partner under any94 at the physical layer of the network it fully supports full-duplex operation,
89circumstances, no matter how it is initialized***. If the full-duplex mode95 the card was designed before the current Ethernet auto-negotiation (N-way)
90of the 3c509B is enabled, its link partner will very likely need to be96 spec was written. This means that the 3c509B family ***cannot and will not
91independently _forced_ into full-duplex mode as well; otherwise various nasty97 auto-negotiate a full-duplex connection with its link partner under any
92failures will occur - at the very least, you'll see massive numbers of packet98 circumstances, no matter how it is initialized***. If the full-duplex mode
93collisions. This is one of very rare circumstances where disabling auto-99 of the 3c509B is enabled, its link partner will very likely need to be
94negotiation and forcing the duplex mode of a network interface card or switch100 independently _forced_ into full-duplex mode as well; otherwise various nasty
95would ever be necessary or desirable.101 failures will occur - at the very least, you'll see massive numbers of packet
96 102 collisions. This is one of very rare circumstances where disabling auto-
97 103 negotiation and forcing the duplex mode of a network interface card or switch
98(3) Available Transceiver Types104 would ever be necessary or desirable.
105
106
107Available Transceiver Types
108===========================
99 109
100For versions of the driver v1.18c and above, the available transceiver types are:110For versions of the driver v1.18c and above, the available transceiver types are:
101 111
112== =========================================================================
1020 transceiver type from EEPROM config (normally 10baseT); force half-duplex1130 transceiver type from EEPROM config (normally 10baseT); force half-duplex
1031 AUI (thick-net / DB15 connector)1141 AUI (thick-net / DB15 connector)
1042 (undefined)1152 (undefined)
@@ -106,6 +117,7 @@ For versions of the driver v1.18c and above, the available transceiver types are · 1 unmodified line
1064 10baseT (RJ-45 connector); force half-duplex mode1174 10baseT (RJ-45 connector); force half-duplex mode
1078 transceiver type and duplex mode taken from card's EEPROM config settings1188 transceiver type and duplex mode taken from card's EEPROM config settings
10812 10baseT (RJ-45 connector); force full-duplex mode11912 10baseT (RJ-45 connector); force full-duplex mode
120== =========================================================================
109 121
110Prior to driver version 1.18c, only transceiver codes 0-4 were supported. Note122Prior to driver version 1.18c, only transceiver codes 0-4 were supported. Note
111that the new transceiver codes 8 and 12 are the *only* ones that will enable123that 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
116activated.128activated.
117 129
118The transceiver type can be changed using 'ethtool'.130The transceiver type can be changed using 'ethtool'.
119
120 131
121(4a) Interpretation of error messages and common problems132
133Interpretation of error messages and common problems
134----------------------------------------------------
122 135
123Error Messages136Error Messages
137^^^^^^^^^^^^^^
124 138
125eth0: Infinite loop in interrupt, status 2011. 139eth0: Infinite loop in interrupt, status 2011.
126These are "mostly harmless" message indicating that the driver had too much140These are "mostly harmless" message indicating that the driver had too much
127work during that interrupt cycle. With a status of 0x2011 you are receiving141work during that interrupt cycle. With a status of 0x2011 you are receiving
128packets faster than they can be removed from the card. This should be rare142packets faster than they can be removed from the card. This should be rare
129or impossible in normal operation. Possible causes of this error report are:143or impossible in normal operation. Possible causes of this error report are:
130 144
131 - a "green" mode enabled that slows the processor down when there is no145 - a "green" mode enabled that slows the processor down when there is no
132 keyboard activity. 146 keyboard activity.
133 147
134 - some other device or device driver hogging the bus or disabling interrupts.148 - some other device or device driver hogging the bus or disabling interrupts.
135 Check /proc/interrupts for excessive interrupt counts. The timer tick149 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
152No received packets
153^^^^^^^^^^^^^^^^^^^
137 154
138No received packets
139If a 3c509, 3c562 or 3c589 can successfully transmit packets, but never155If a 3c509, 3c562 or 3c589 can successfully transmit packets, but never
140receives packets (as reported by /proc/net/dev or 'ifconfig') you likely156receives packets (as reported by /proc/net/dev or 'ifconfig') you likely
141have an interrupt line problem. Check /proc/interrupts to verify that the157have 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
146interrupt line. If the device is receiving packets but 'ping' doesn't work,162interrupt line. If the device is receiving packets but 'ping' doesn't work,
147you have a routing problem.163you have a routing problem.
148 164
149Tx Carrier Errors Reported in /proc/net/dev 165Tx Carrier Errors Reported in /proc/net/dev
166^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
167
168
150If an EtherLink III appears to transmit packets, but the "Tx carrier errors"169If an EtherLink III appears to transmit packets, but the "Tx carrier errors"
151field in /proc/net/dev increments as quickly as the Tx packet count, you170field in /proc/net/dev increments as quickly as the Tx packet count, you
152likely have an unterminated network or the incorrect media transceiver selected. 171likely have an unterminated network or the incorrect media transceiver selected.
172
1733c509B card is not detected on machines with an ISA PnP BIOS.
174^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
153 175
1543c509B card is not detected on machines with an ISA PnP BIOS.
155While the updated driver works with most PnP BIOS programs, it does not work176While the updated driver works with most PnP BIOS programs, it does not work
156with all. This can be fixed by disabling PnP support using the 3Com-supplied177with all. This can be fixed by disabling PnP support using the 3Com-supplied
157setup program. 178setup program.
179
1803c509 card is not detected on overclocked machines
181^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
158 182
1593c509 card is not detected on overclocked machines
160Increase the delay time in id_read_eeprom() from the current value, 500,183Increase the delay time in id_read_eeprom() from the current value, 500,
161to an absurdly high value, such as 5000. 184to an absurdly high value, such as 5000.
185
162 186
187Decoding Status and Error Messages
188----------------------------------
163 189
164(4b) Decoding Status and Error Messages
165 190
166The bits in the main status register are: 191The bits in the main status register are:
167 192
193===== ======================================
168value description194value description
195===== ======================================
1690x01 Interrupt latch1960x01 Interrupt latch
1700x02 Tx overrun, or Rx underrun1970x02 Tx overrun, or Rx underrun
1710x04 Tx complete1980x04 Tx complete
@@ -174,30 +201,38 @@ value description · 2 unmodified lines
1740x20 A Rx packet has started to arrive2010x20 A Rx packet has started to arrive
1750x40 The driver has requested an interrupt2020x40 The driver has requested an interrupt
1760x80 Statistics counter nearly full2030x80 Statistics counter nearly full
204===== ======================================
177 205
178The bits in the transmit (Tx) status word are: 206The bits in the transmit (Tx) status word are:
179 207
180value description208===== ============================================
1810x02 Out-of-window collision.209value description
1820x04 Status stack overflow (normally impossible).210===== ============================================
1830x08 16 collisions.2110x02 Out-of-window collision.
1840x10 Tx underrun (not enough PCI bus bandwidth).2120x04 Status stack overflow (normally impossible).
1850x20 Tx jabber.2130x08 16 collisions.
1860x40 Tx interrupt requested.2140x10 Tx underrun (not enough PCI bus bandwidth).
1870x80 Status is valid (this should always be set).2150x20 Tx jabber.
2160x40 Tx interrupt requested.
2170x80 Status is valid (this should always be set).
218===== ============================================
188 219
189 220
190When a transmit error occurs the driver produces a status message such as 221When a transmit error occurs the driver produces a status message such as::
191 222
192 eth0: Transmit error, Tx status register 82223 eth0: Transmit error, Tx status register 82
193 224
194The two values typically seen here are:225The two values typically seen here are:
195 226
1960x82 2270x82
228^^^^
229
197Out of window collision. This typically occurs when some other Ethernet230Out of window collision. This typically occurs when some other Ethernet
198host is incorrectly set to full duplex on a half duplex network. 231host is incorrectly set to full duplex on a half duplex network.
232
2330x88
234^^^^
199 235
2000x88
20116 collisions. This typically occurs when the network is exceptionally busy23616 collisions. This typically occurs when the network is exceptionally busy
202or when another host doesn't correctly back off after a collision. If this237or when another host doesn't correctly back off after a collision. If this
203error is mixed with 0x82 errors it is the result of a host incorrectly set238error 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
207corrected. They do not represent driver malfunction.242corrected. They do not represent driver malfunction.
208 243
209 244
210(5) Revision history (this file)245Revision history (this file)
246============================
211 247
21228Feb02 v1.0 DR New; major portions based on Becker original 3c509 docs24828Feb02 v1.0 DR New; major portions based on Becker original 3c509 docs
213 249
Documentation/networking/device_drivers/3com/vortex.rstrenamed from Documentation/networking/device_drivers/3com/vortex.txt+120−107
@@ -1,5 +1,13 @@
1Documentation/networking/device_drivers/3com/vortex.txt1.. SPDX-License-Identifier: GPL-2.0
2
3=========================
43Com Vortex device driver
5=========================
6
7Documentation/networking/device_drivers/3com/vortex.rst
8
2Andrew Morton9Andrew Morton
10
330 April 20001130 April 2000
4 12
5 13
@@ -8,12 +16,12 @@ driver for Linux, 3c59x.c. · 2 unmodified lines
8 16
9The driver was written by Donald Becker <becker@scyld.com>17The driver was written by Donald Becker <becker@scyld.com>
10 18
11Don is no longer the prime maintainer of this version of the driver. 19Don is no longer the prime maintainer of this version of the driver.
12Please report problems to one or more of:20Please report problems to one or more of:
13 21
14 Andrew Morton22- Andrew Morton
15 Netdev mailing list <netdev@vger.kernel.org>23- Netdev mailing list <netdev@vger.kernel.org>
16 Linux kernel mailing list <linux-kernel@vger.kernel.org>24- Linux kernel mailing list <linux-kernel@vger.kernel.org>
17 25
18Please note the 'Reporting and Diagnosing Problems' section at the end26Please note the 'Reporting and Diagnosing Problems' section at the end
19of this file.27of this file.
@@ -24,58 +32,58 @@ Since kernel 2.3.99-pre6, this driver incorporates the support for the · 4 unmodified lines
24 32
25This driver supports the following hardware:33This driver supports the following hardware:
26 34
27 3c590 Vortex 10Mbps35 - 3c590 Vortex 10Mbps
28 3c592 EISA 10Mbps Demon/Vortex36 - 3c592 EISA 10Mbps Demon/Vortex
29 3c597 EISA Fast Demon/Vortex37 - 3c597 EISA Fast Demon/Vortex
30 3c595 Vortex 100baseTx38 - 3c595 Vortex 100baseTx
31 3c595 Vortex 100baseT439 - 3c595 Vortex 100baseT4
32 3c595 Vortex 100base-MII40 - 3c595 Vortex 100base-MII
33 3c900 Boomerang 10baseT41 - 3c900 Boomerang 10baseT
34 3c900 Boomerang 10Mbps Combo42 - 3c900 Boomerang 10Mbps Combo
35 3c900 Cyclone 10Mbps TPO43 - 3c900 Cyclone 10Mbps TPO
36 3c900 Cyclone 10Mbps Combo44 - 3c900 Cyclone 10Mbps Combo
37 3c900 Cyclone 10Mbps TPC45 - 3c900 Cyclone 10Mbps TPC
38 3c900B-FL Cyclone 10base-FL46 - 3c900B-FL Cyclone 10base-FL
39 3c905 Boomerang 100baseTx47 - 3c905 Boomerang 100baseTx
40 3c905 Boomerang 100baseT448 - 3c905 Boomerang 100baseT4
41 3c905B Cyclone 100baseTx49 - 3c905B Cyclone 100baseTx
42 3c905B Cyclone 10/100/BNC50 - 3c905B Cyclone 10/100/BNC
43 3c905B-FX Cyclone 100baseFx51 - 3c905B-FX Cyclone 100baseFx
44 3c905C Tornado52 - 3c905C Tornado
45 3c920B-EMB-WNM (ATI Radeon 9100 IGP)53 - 3c920B-EMB-WNM (ATI Radeon 9100 IGP)
46 3c980 Cyclone54 - 3c980 Cyclone
47 3c980C Python-T55 - 3c980C Python-T
48 3cSOHO100-TX Hurricane56 - 3cSOHO100-TX Hurricane
49 3c555 Laptop Hurricane57 - 3c555 Laptop Hurricane
50 3c556 Laptop Tornado58 - 3c556 Laptop Tornado
51 3c556B Laptop Hurricane59 - 3c556B Laptop Hurricane
52 3c575 [Megahertz] 10/100 LAN CardBus60 - 3c575 [Megahertz] 10/100 LAN CardBus
53 3c575 Boomerang CardBus61 - 3c575 Boomerang CardBus
54 3CCFE575BT Cyclone CardBus62 - 3CCFE575BT Cyclone CardBus
55 3CCFE575CT Tornado CardBus63 - 3CCFE575CT Tornado CardBus
56 3CCFE656 Cyclone CardBus64 - 3CCFE656 Cyclone CardBus
57 3CCFEM656B Cyclone+Winmodem CardBus65 - 3CCFEM656B Cyclone+Winmodem CardBus
58 3CXFEM656C Tornado+Winmodem CardBus66 - 3CXFEM656C Tornado+Winmodem CardBus
59 3c450 HomePNA Tornado67 - 3c450 HomePNA Tornado
60 3c920 Tornado68 - 3c920 Tornado
61 3c982 Hydra Dual Port A69 - 3c982 Hydra Dual Port A
62 3c982 Hydra Dual Port B70 - 3c982 Hydra Dual Port B
63 3c905B-T471 - 3c905B-T4
64 3c920B-EMB-WNM Tornado72 - 3c920B-EMB-WNM Tornado
65 73
66Module parameters74Module parameters
67=================75=================
68 76
69There are several parameters which may be provided to the driver when77There are several parameters which may be provided to the driver when
70its module is loaded. These are usually placed in /etc/modprobe.d/*.conf78its module is loaded. These are usually placed in ``/etc/modprobe.d/*.conf``
71configuration files. Example:79configuration files. Example::
72 80
73options 3c59x debug=3 rx_copybreak=30081 options 3c59x debug=3 rx_copybreak=300
74 82
75If you are using the PCMCIA tools (cardmgr) then the options may be83If you are using the PCMCIA tools (cardmgr) then the options may be
76placed in /etc/pcmcia/config.opts:84placed in /etc/pcmcia/config.opts::
77 85
78module "3c59x" opts "debug=3 rx_copybreak=300"86 module "3c59x" opts "debug=3 rx_copybreak=300"
79 87
80 88
81The supported parameters are:89The supported parameters are:
@@ -89,7 +97,7 @@ options=N1,N2,N3,... · 7 unmodified lines
89 97
90 Each number in the list provides an option to the corresponding98 Each number in the list provides an option to the corresponding
91 network card. So if you have two 3c905's and you wish to provide99 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::
93 101
94 options=0x204,0x204102 options=0x204,0x204
95 103
@@ -97,6 +105,8 @@ options=N1,N2,N3,... · 1 unmodified line
97 have the following meanings:105 have the following meanings:
98 106
99 Possible media type settings107 Possible media type settings
108
109 == =================================
100 0 10baseT110 0 10baseT
101 1 10Mbs AUI111 1 10Mbs AUI
102 2 undefined112 2 undefined
@@ -108,17 +118,20 @@ options=N1,N2,N3,... · 5 unmodified lines
108 8 Autonegotiate118 8 Autonegotiate
109 9 External MII119 9 External MII
110 10 Use default setting from EEPROM120 10 Use default setting from EEPROM
121 == =================================
111 122
112 When generating a value for the 'options' setting, the above media123 When generating a value for the 'options' setting, the above media
113 selection values may be OR'ed (or added to) the following:124 selection values may be OR'ed (or added to) the following:
114 125
126 ====== =============================================
115 0x8000 Set driver debugging level to 7127 0x8000 Set driver debugging level to 7
116 0x4000 Set driver debugging level to 2128 0x4000 Set driver debugging level to 2
117 0x0400 Enable Wake-on-LAN129 0x0400 Enable Wake-on-LAN
118 0x0200 Force full duplex mode.130 0x0200 Force full duplex mode.
119 0x0010 Bus-master enable bit (Old Vortex cards only)131 0x0010 Bus-master enable bit (Old Vortex cards only)
132 ====== =============================================
120 133
121 For example:134 For example::
122 135
123 insmod 3c59x options=0x204136 insmod 3c59x options=0x204
124 137
@@ -127,14 +140,14 @@ options=N1,N2,N3,... · 2 unmodified lines
127 140
128global_options=N141global_options=N
129 142
130 Sets the `options' parameter for all 3c59x NICs in the machine. 143 Sets the ``options`` parameter for all 3c59x NICs in the machine.
131 Entries in the `options' array above will override any setting of144 Entries in the ``options`` array above will override any setting of
132 this.145 this.
133 146
134full_duplex=N1,N2,N3...147full_duplex=N1,N2,N3...
135 148
136 Similar to bit 9 of 'options'. Forces the corresponding card into149 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``
138 parameter.151 parameter.
139 152
140 In fact, please don't use this at all! You're better off getting153 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
143global_full_duplex=N1156global_full_duplex=N1
144 157
145 Sets full duplex mode for all 3c59x NICs in the machine. Entries158 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.
147 160
148flow_ctrl=N1,N2,N3...161flow_ctrl=N1,N2,N3...
149 162
150 Use 802.3x MAC-layer flow control. The 3com cards only support the163 Use 802.3x MAC-layer flow control. The 3com cards only support the
151 PAUSE command, which means that they will stop sending packets for a164 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.
153 166
154 The driver only allows flow control on a link which is operating in167 The driver only allows flow control on a link which is operating in
155 full duplex mode.168 full duplex mode.
@@ -170,14 +183,14 @@ rx_copybreak=M · 14 unmodified lines
170 183
171 This is a speed/space tradeoff.184 This is a speed/space tradeoff.
172 185
173 The value of rx_copybreak is used to decide when to make the copy. 186 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. 187 If the packet size is less than rx_copybreak, the packet is copied.
175 The default value for rx_copybreak is 200 bytes.188 The default value for rx_copybreak is 200 bytes.
176 189
177max_interrupt_work=N190max_interrupt_work=N
178 191
179 The driver's interrupt service routine can handle many receive and192 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.
181 The value of max_interrupt_work governs how many times the interrupt194 The value of max_interrupt_work governs how many times the interrupt
182 service routine will loop. The default value is 32 loops. If this195 service routine will loop. The default value is 32 loops. If this
183 is exceeded the interrupt service routine gives up and generates a196 is exceeded the interrupt service routine gives up and generates a
@@ -186,7 +199,7 @@ max_interrupt_work=N · 2 unmodified lines
186hw_checksums=N1,N2,N3,...199hw_checksums=N1,N2,N3,...
187 200
188 Recent 3com NICs are able to generate IPv4, TCP and UDP checksums201 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.
190 The "zero copy" patch which is planned for the 2.4 kernel series203 The "zero copy" patch which is planned for the 2.4 kernel series
191 allows you to make use of the NIC's DMA scatter/gather and transmit204 allows you to make use of the NIC's DMA scatter/gather and transmit
192 checksumming as well.205 checksumming as well.
@@ -196,11 +209,11 @@ hw_checksums=N1,N2,N3,... · 3 unmodified lines
196 209
197 This module parameter has been provided so you can override this210 This module parameter has been provided so you can override this
198 decision. If you think that Tx checksums are causing a problem, you211 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``.
200 213
201 If you think your NIC should be performing Tx checksumming and the214 If you think your NIC should be performing Tx checksumming and the
202 driver isn't enabling it, you can force the use of hardware Tx215 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``.
204 217
205 The driver drops a message in the logfiles to indicate whether or218 The driver drops a message in the logfiles to indicate whether or
206 not it is using hardware scatter/gather and hardware Tx checksums.219 not it is using hardware scatter/gather and hardware Tx checksums.
@@ -210,8 +223,8 @@ hw_checksums=N1,N2,N3,... · 3 unmodified lines
210 decrease in throughput for send(). There is no effect upon receive223 decrease in throughput for send(). There is no effect upon receive
211 efficiency.224 efficiency.
212 225
213compaq_ioaddr=N226compaq_ioaddr=N,
214compaq_irq=N227compaq_irq=N,
215compaq_device_id=N228compaq_device_id=N
216 229
217 "Variables to work-around the Compaq PCI BIOS32 problem"....230 "Variables to work-around the Compaq PCI BIOS32 problem"....
@@ -219,7 +232,7 @@ compaq_device_id=N · 1 unmodified line
219watchdog=N232watchdog=N
220 233
221 Sets the time duration (in milliseconds) after which the kernel234 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.
223 This is mainly for debugging purposes, although it may be advantageous236 This is mainly for debugging purposes, although it may be advantageous
224 to increase this value on LANs which have very high collision rates.237 to increase this value on LANs which have very high collision rates.
225 The default value is 5000 (5.0 seconds).238 The default value is 5000 (5.0 seconds).
@@ -227,7 +240,7 @@ watchdog=N · 1 unmodified line
227enable_wol=N1,N2,N3,...240enable_wol=N1,N2,N3,...
228 241
229 Enable Wake-on-LAN support for the relevant interface. Donald242 Enable Wake-on-LAN support for the relevant interface. Donald
230 Becker's `ether-wake' application may be used to wake suspended243 Becker's ``ether-wake`` application may be used to wake suspended
231 machines.244 machines.
232 245
233 Also enables the NIC's power management support.246 Also enables the NIC's power management support.
@@ -235,7 +248,7 @@ enable_wol=N1,N2,N3,... · 1 unmodified line
235global_enable_wol=N248global_enable_wol=N
236 249
237 Sets enable_wol mode for all 3c59x NICs in the machine. Entries in250 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.
239 252
240Media selection253Media selection
241---------------254---------------
@@ -325,12 +338,12 @@ Autonegotiation notes · 83 unmodified lines
325 338
326 Cisco switches (Jeff Busch <jbusch@deja.com>)339 Cisco switches (Jeff Busch <jbusch@deja.com>)
327 340
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::
329 342
330 interface FastEthernet0/N343 interface FastEthernet0/N
331 description machinename344 description machinename
332 load-interval 30345 load-interval 30
333 spanning-tree portfast346 spanning-tree portfast
334 347
335 If autonegotiation is a problem, you may need to specify "speed348 If autonegotiation is a problem, you may need to specify "speed
336 100" and "duplex full" as well (or "speed 10" and "duplex half").349 100" and "duplex full" as well (or "speed 10" and "duplex half").
@@ -368,9 +381,9 @@ steps you should take: · 31 unmodified lines
368 381
369 But for most problems it is useful to provide the following:382 But for most problems it is useful to provide the following:
370 383
371 o Kernel version, driver version384 - Kernel version, driver version
372 385
373 o A copy of the banner message which the driver generates when386 - A copy of the banner message which the driver generates when
374 it is initialised. For example:387 it is initialised. For example:
375 388
376 eth0: 3Com PCI 3c905C Tornado at 0xa400, 00:50:da:6a:88:f0, IRQ 19389 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
378 MII transceiver found at address 24, status 782d.391 MII transceiver found at address 24, status 782d.
379 Enabling bus-master transmits and whole-frame receives.392 Enabling bus-master transmits and whole-frame receives.
380 393
381 NOTE: You must provide the `debug=2' modprobe option to generate394 NOTE: You must provide the ``debug=2`` modprobe option to generate
382 a full detection message. Please do this:395 a full detection message. Please do this::
383 396
384 modprobe 3c59x debug=2397 modprobe 3c59x debug=2
385 398
386 o If it is a PCI device, the relevant output from 'lspci -vx', eg:399 - If it is a PCI device, the relevant output from 'lspci -vx', eg::
387 400
388 00:09.0 Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 74)401 00:09.0 Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 74)
389 Subsystem: 3Com Corporation: Unknown device 9200402 Subsystem: 3Com Corporation: Unknown device 9200
390 Flags: bus master, medium devsel, latency 32, IRQ 19403 Flags: bus master, medium devsel, latency 32, IRQ 19
391 I/O ports at a400 [size=128]404 I/O ports at a400 [size=128]
392 Memory at db000000 (32-bit, non-prefetchable) [size=128]405 Memory at db000000 (32-bit, non-prefetchable) [size=128]
393 Expansion ROM at <unassigned> [disabled] [size=128K]406 Expansion ROM at <unassigned> [disabled] [size=128K]
394 Capabilities: [dc] Power Management version 2407 Capabilities: [dc] Power Management version 2
395 00: b7 10 00 92 07 00 10 02 74 00 00 02 08 20 00 00408 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 00409 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 10410 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 0a411 30: 00 00 00 00 dc 00 00 00 00 00 00 00 05 01 0a 0a
399 412
400 o A description of the environment: 10baseT? 100baseT?413 - A description of the environment: 10baseT? 100baseT?
401 full/half duplex? switched or hubbed?414 full/half duplex? switched or hubbed?
402 415
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.
404 417
405 o Any kernel logs which are produced. The more the merrier. 418 - Any kernel logs which are produced. The more the merrier.
406 If this is a large file and you are sending your report to a419 If this is a large file and you are sending your report to a
407 mailing list, mention that you have the logfile, but don't send420 mailing list, mention that you have the logfile, but don't send
408 it. If you're reporting direct to the maintainer then just send421 it. If you're reporting direct to the maintainer then just send
409 it.422 it.
410 423
411 To ensure that all kernel logs are available, add the424 To ensure that all kernel logs are available, add the
412 following line to /etc/syslog.conf:425 following line to /etc/syslog.conf::
413 426
414 kern.* /var/log/messages427 kern.* /var/log/messages
415 428
416 Then restart syslogd with:429 Then restart syslogd with::
417 430
418 /etc/rc.d/init.d/syslog restart431 /etc/rc.d/init.d/syslog restart
419 432
420 (The above may vary, depending upon which Linux distribution you use).433 (The above may vary, depending upon which Linux distribution you use).
421 434
422 o If your problem is reproducible then that's great. Try the435 - If your problem is reproducible then that's great. Try the
423 following:436 following:
424 437
425 1) Increase the debug level. Usually this is done via:438 1) Increase the debug level. Usually this is done via:
426 439
427 a) modprobe driver debug=7440 a) modprobe driver debug=7
428 b) In /etc/modprobe.d/driver.conf:441 b) In /etc/modprobe.d/driver.conf:
429 options driver debug=7442 options driver debug=7
430 443
431 2) Recreate the problem with the higher debug level,444 2) Recreate the problem with the higher debug level,
432 send all logs to the maintainer.445 send all logs to the maintainer.
433 446
434 3) Download you card's diagnostic tool from Donald447 3) Download you card's diagnostic tool from Donald
435 Becker's website <http://www.scyld.com/ethercard_diag.html>.448 Becker's website <http://www.scyld.com/ethercard_diag.html>.
436 Download mii-diag.c as well. Build these.449 Download mii-diag.c as well. Build these.
437 450
438 a) Run 'vortex-diag -aaee' and 'mii-diag -v' when the card is451 a) Run 'vortex-diag -aaee' and 'mii-diag -v' when the card is
439 working correctly. Save the output.452 working correctly. Save the output.
440 453
441 b) Run the above commands when the card is malfunctioning. Send454 b) Run the above commands when the card is malfunctioning. Send
442 both sets of output.455 both sets of output.
443 456
444Finally, please be patient and be prepared to do some work. You may457Finally, please be patient and be prepared to do some work. You may
445end up working on this problem for a week or more as the maintainer458end 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 @@
1Linux kernel driver for Elastic Network Adapter (ENA) family:1.. SPDX-License-Identifier: GPL-2.0
2=============================================================2
3============================================================
4Linux kernel driver for Elastic Network Adapter (ENA) family
5============================================================
6
7Overview
8========
3 9
4Overview:
5=========
6ENA is a networking interface designed to make good use of modern CPU10ENA is a networking interface designed to make good use of modern CPU
7features and system architectures.11features and system architectures.
8 12
@@ -35,32 +39,40 @@ debug logs. · 26 unmodified lines
35Some of the ENA devices support a working mode called Low-latency39Some of the ENA devices support a working mode called Low-latency
36Queue (LLQ), which saves several more microseconds.40Queue (LLQ), which saves several more microseconds.
37 41
38Supported PCI vendor ID/device IDs:42Supported PCI vendor ID/device IDs
43==================================
44
45========= =======================
461d0f:0ec2 ENA PF
471d0f:1ec2 ENA PF with LLQ support
481d0f:ec20 ENA VF
491d0f:ec21 ENA VF with LLQ support
50========= =======================
51
52ENA Source Code Directory Structure
39===================================53===================================
401d0f:0ec2 - ENA PF54
411d0f:1ec2 - ENA PF with LLQ support55================= ======================================================
421d0f:ec20 - ENA VF56ena_com.[ch] Management communication layer. This layer is
431d0f:ec21 - ENA VF with LLQ support57 responsible for the handling all the management
44 58 (admin) communication between the device and the
45ENA Source Code Directory Structure:59 driver.
46====================================60ena_eth_com.[ch] Tx/Rx data path.
47ena_com.[ch] - Management communication layer. This layer is61ena_admin_defs.h Definition of ENA management interface.
48 responsible for the handling all the management62ena_eth_io_defs.h Definition of ENA data path interface.
49 (admin) communication between the device and the63ena_common_defs.h Common definitions for ena_com layer.
50 driver.64ena_regs_defs.h Definition of ENA PCI memory-mapped (MMIO) registers.
51ena_eth_com.[ch] - Tx/Rx data path.65ena_netdev.[ch] Main Linux kernel driver.
52ena_admin_defs.h - Definition of ENA management interface.66ena_syfsfs.[ch] Sysfs files.
53ena_eth_io_defs.h - Definition of ENA data path interface.67ena_ethtool.c ethtool callbacks.
54ena_common_defs.h - Common definitions for ena_com layer.68ena_pci_id_tbl.h Supported device IDs.
55ena_regs_defs.h - Definition of ENA PCI memory-mapped (MMIO) registers.69================= ======================================================
56ena_netdev.[ch] - Main Linux kernel driver.
57ena_syfsfs.[ch] - Sysfs files.
58ena_ethtool.c - ethtool callbacks.
59ena_pci_id_tbl.h - Supported device IDs.
60 70
61Management Interface:71Management Interface:
62=====================72=====================
73
63ENA management interface is exposed by means of:74ENA management interface is exposed by means of:
75
64- PCIe Configuration Space76- PCIe Configuration Space
65- Device Registers77- Device Registers
66- Admin Queue (AQ) and Admin Completion Queue (ACQ)78- Admin Queue (AQ) and Admin Completion Queue (ACQ)
@@ -78,6 +90,7 @@ vendor-specific extensions. Most of the management operations are · 11 unmodified lines
78framed in a generic Get/Set feature command.90framed in a generic Get/Set feature command.
79 91
80The following admin queue commands are supported:92The following admin queue commands are supported:
93
81- Create I/O submission queue94- Create I/O submission queue
82- Create I/O completion queue95- Create I/O completion queue
83- Destroy I/O submission queue96- Destroy I/O submission queue
@@ -96,12 +109,16 @@ be reported using ACQ. AENQ events are subdivided into groups. Each · 12 unmodified lines
96group may have multiple syndromes, as shown below109group may have multiple syndromes, as shown below
97 110
98The events are:111The events are:
112
113 ==================== ===============
99 Group Syndrome114 Group Syndrome
100 Link state change - X -115 ==================== ===============
101 Fatal error - X -116 Link state change **X**
117 Fatal error **X**
102 Notification Suspend traffic118 Notification Suspend traffic
103 Notification Resume traffic119 Notification Resume traffic
104 Keep-Alive - X -120 Keep-Alive **X**
121 ==================== ===============
105 122
106ACQ and AENQ share the same MSI-X vector.123ACQ and AENQ share the same MSI-X vector.
107 124
@@ -113,8 +130,8 @@ the device every second. The driver re-arms the WD upon reception of a · 5 unmodified lines
113Keep-Alive event. A missed Keep-Alive event causes the WD handler to130Keep-Alive event. A missed Keep-Alive event causes the WD handler to
114fire.131fire.
115 132
116Data Path Interface:133Data Path Interface
117====================134===================
118I/O operations are based on Tx and Rx Submission Queues (Tx SQ and Rx135I/O operations are based on Tx and Rx Submission Queues (Tx SQ and Rx
119SQ correspondingly). Each SQ has a completion queue (CQ) associated136SQ correspondingly). Each SQ has a completion queue (CQ) associated
120with it.137with it.
@@ -123,11 +140,15 @@ The SQs and CQs are implemented as descriptor rings in contiguous · 2 unmodified lines
123physical memory.140physical memory.
124 141
125The ENA driver supports two Queue Operation modes for Tx SQs:142The ENA driver supports two Queue Operation modes for Tx SQs:
143
126- Regular mode144- Regular mode
145
127 * In this mode the Tx SQs reside in the host's memory. The ENA146 * In this mode the Tx SQs reside in the host's memory. The ENA
128 device fetches the ENA Tx descriptors and packet data from host147 device fetches the ENA Tx descriptors and packet data from host
129 memory.148 memory.
149
130- Low Latency Queue (LLQ) mode or "push-mode".150- Low Latency Queue (LLQ) mode or "push-mode".
151
131 * In this mode the driver pushes the transmit descriptors and the152 * In this mode the driver pushes the transmit descriptors and the
132 first 128 bytes of the packet directly to the ENA device memory153 first 128 bytes of the packet directly to the ENA device memory
133 space. The rest of the packet payload is fetched by the154 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
142 163
143The driver supports multi-queue for both Tx and Rx. This has various164The driver supports multi-queue for both Tx and Rx. This has various
144benefits:165benefits:
166
145- Reduced CPU/thread/process contention on a given Ethernet interface.167- Reduced CPU/thread/process contention on a given Ethernet interface.
146- Cache miss rate on completion is reduced, particularly for data168- Cache miss rate on completion is reduced, particularly for data
147 cache lines that hold the sk_buff structures.169 cache lines that hold the sk_buff structures.
@@ -151,8 +173,8 @@ benefits: · 3 unmodified lines
151 packet is running.173 packet is running.
152- In hardware interrupt re-direction.174- In hardware interrupt re-direction.
153 175
154Interrupt Modes:176Interrupt Modes
155================177===============
156The driver assigns a single MSI-X vector per queue pair (for both Tx178The driver assigns a single MSI-X vector per queue pair (for both Tx
157and Rx directions). The driver assigns an additional dedicated MSI-X vector179and Rx directions). The driver assigns an additional dedicated MSI-X vector
158for management (for ACQ and AENQ).180for management (for ACQ and AENQ).
@@ -163,9 +185,12 @@ removed. I/O queue interrupt registration is performed when the Linux · 4 unmodified lines
163interface of the adapter is opened, and it is de-registered when the185interface of the adapter is opened, and it is de-registered when the
164interface is closed.186interface is closed.
165 187
166The management interrupt is named:188The management interrupt is named::
189
167 ena-mgmnt@pci:<PCI domain:bus:slot.function>190 ena-mgmnt@pci:<PCI domain:bus:slot.function>
168and for each queue pair, an interrupt is named:191
192and for each queue pair, an interrupt is named::
193
169 <interface name>-Tx-Rx-<queue index>194 <interface name>-Tx-Rx-<queue index>
170 195
171The ENA device operates in auto-mask and auto-clear interrupt196The 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
173automatically cleared and the interrupt is masked. The interrupt is198automatically cleared and the interrupt is masked. The interrupt is
174unmasked by the driver after NAPI processing is complete.199unmasked by the driver after NAPI processing is complete.
175 200
176Interrupt Moderation:201Interrupt Moderation
177=====================202====================
178ENA driver and device can operate in conventional or adaptive interrupt203ENA driver and device can operate in conventional or adaptive interrupt
179moderation mode.204moderation mode.
180 205
@@ -202,45 +227,46 @@ delay value to each level. · 21 unmodified lines
202The user can enable/disable adaptive moderation, modify the interrupt227The user can enable/disable adaptive moderation, modify the interrupt
203delay table and restore its default values through sysfs.228delay table and restore its default values through sysfs.
204 229
205RX copybreak:230RX copybreak
206=============231============
207The rx_copybreak is initialized by default to ENA_DEFAULT_RX_COPYBREAK232The rx_copybreak is initialized by default to ENA_DEFAULT_RX_COPYBREAK
208and can be configured by the ETHTOOL_STUNABLE command of the233and can be configured by the ETHTOOL_STUNABLE command of the
209SIOCETHTOOL ioctl.234SIOCETHTOOL ioctl.
210 235
211SKB:236SKB
212====237===
213The driver-allocated SKB for frames received from Rx handling using238The driver-allocated SKB for frames received from Rx handling using
214NAPI context. The allocation method depends on the size of the packet.239NAPI context. The allocation method depends on the size of the packet.
215If the frame length is larger than rx_copybreak, napi_get_frags()240If the frame length is larger than rx_copybreak, napi_get_frags()
216is used, otherwise netdev_alloc_skb_ip_align() is used, the buffer241is used, otherwise netdev_alloc_skb_ip_align() is used, the buffer
217content is copied (by CPU) to the SKB, and the buffer is recycled.242content is copied (by CPU) to the SKB, and the buffer is recycled.
218 243
219Statistics:244Statistics
220===========245==========
221The user can obtain ENA device and driver statistics using ethtool.246The user can obtain ENA device and driver statistics using ethtool.
222The driver can collect regular or extended statistics (including247The driver can collect regular or extended statistics (including
223per-queue stats) from the device.248per-queue stats) from the device.
224 249
225In addition the driver logs the stats to syslog upon device reset.250In addition the driver logs the stats to syslog upon device reset.
226 251
227MTU:252MTU
228====253===
229The driver supports an arbitrarily large MTU with a maximum that is254The driver supports an arbitrarily large MTU with a maximum that is
230negotiated with the device. The driver configures MTU using the255negotiated with the device. The driver configures MTU using the
231SetFeature command (ENA_ADMIN_MTU property). The user can change MTU256SetFeature command (ENA_ADMIN_MTU property). The user can change MTU
232via ip(8) and similar legacy tools.257via ip(8) and similar legacy tools.
233 258
234Stateless Offloads:259Stateless Offloads
235===================260==================
236The ENA driver supports:261The ENA driver supports:
262
237- TSO over IPv4/IPv6263- TSO over IPv4/IPv6
238- TSO with ECN264- TSO with ECN
239- IPv4 header checksum offload265- IPv4 header checksum offload
240- TCP/UDP over IPv4/IPv6 checksum offloads266- TCP/UDP over IPv4/IPv6 checksum offloads
241 267
242RSS:268RSS
243====269===
244- The ENA device supports RSS that allows flexible Rx traffic270- The ENA device supports RSS that allows flexible Rx traffic
245 steering.271 steering.
246- Toeplitz and CRC32 hash functions are supported.272- Toeplitz and CRC32 hash functions are supported.
@@ -255,11 +281,13 @@ RSS: · 8 unmodified lines
255- The user can provide a hash key, hash function, and configure the281- The user can provide a hash key, hash function, and configure the
256 indirection table through ethtool(8).282 indirection table through ethtool(8).
257 283
258DATA PATH:284DATA PATH
259==========285=========
260Tx:286Tx
261---287--
288
262end_start_xmit() is called by the stack. This function does the following:289end_start_xmit() is called by the stack. This function does the following:
290
263- Maps data buffers (skb->data and frags).291- Maps data buffers (skb->data and frags).
264- Populates ena_buf for the push buffer (if the driver and device are292- Populates ena_buf for the push buffer (if the driver and device are
265 in push mode.)293 in push mode.)
@@ -271,8 +299,10 @@ end_start_xmit() is called by the stack. This function does the following: · 5 unmodified lines
271- Calls ena_com_prepare_tx(), an ENA communication layer that converts299- Calls ena_com_prepare_tx(), an ENA communication layer that converts
272 the ena_bufs to ENA descriptors (and adds meta ENA descriptors as300 the ena_bufs to ENA descriptors (and adds meta ENA descriptors as
273 needed.)301 needed.)
302
274 * This function also copies the ENA descriptors and the push buffer303 * This function also copies the ENA descriptors and the push buffer
275 to the Device memory space (if in push mode.)304 to the Device memory space (if in push mode.)
305
276- Writes doorbell to the ENA device.306- Writes doorbell to the ENA device.
277- When the ENA device finishes sending the packet, a completion307- When the ENA device finishes sending the packet, a completion
278 interrupt is raised.308 interrupt is raised.
@@ -280,14 +310,16 @@ end_start_xmit() is called by the stack. This function does the following: · 1 unmodified line
280- The ena_clean_tx_irq() function is called. This function handles the310- The ena_clean_tx_irq() function is called. This function handles the
281 completion descriptors generated by the ENA, with a single311 completion descriptors generated by the ENA, with a single
282 completion descriptor per completed packet.312 completion descriptor per completed packet.
313
283 * req_id is retrieved from the completion descriptor. The tx_info of314 * req_id is retrieved from the completion descriptor. The tx_info of
284 the packet is retrieved via the req_id. The data buffers are315 the packet is retrieved via the req_id. The data buffers are
285 unmapped and req_id is returned to the empty req_id ring.316 unmapped and req_id is returned to the empty req_id ring.
286 * The function stops when the completion descriptors are completed or317 * The function stops when the completion descriptors are completed or
287 the budget is reached.318 the budget is reached.
288 319
289Rx:320Rx
290---321--
322
291- When a packet is received from the ENA device.323- When a packet is received from the ENA device.
292- The interrupt handler schedules NAPI.324- The interrupt handler schedules NAPI.
293- The ena_clean_rx_irq() function is called. This function calls325- The ena_clean_rx_irq() function is called. This function calls
@@ -296,13 +328,17 @@ Rx: · 2 unmodified lines
296 no new packet is found.328 no new packet is found.
297- Then it calls the ena_clean_rx_irq() function.329- Then it calls the ena_clean_rx_irq() function.
298- ena_eth_rx_skb() checks packet length:330- ena_eth_rx_skb() checks packet length:
331
299 * If the packet is small (len < rx_copybreak), the driver allocates332 * If the packet is small (len < rx_copybreak), the driver allocates
300 a SKB for the new packet, and copies the packet payload into the333 a SKB for the new packet, and copies the packet payload into the
301 SKB data buffer.334 SKB data buffer.
335
302 - In this way the original data buffer is not passed to the stack336 - In this way the original data buffer is not passed to the stack
303 and is reused for future Rx packets.337 and is reused for future Rx packets.
338
304 * Otherwise the function unmaps the Rx buffer, then allocates the339 * Otherwise the function unmaps the Rx buffer, then allocates the
305 new SKB structure and hooks the Rx buffer to the SKB frags.340 new SKB structure and hooks the Rx buffer to the SKB frags.
341
306- The new SKB is updated with the necessary information (protocol,342- The new SKB is updated with the necessary information (protocol,
307 checksum hw verify result, etc.), and then passed to the network343 checksum hw verify result, etc.), and then passed to the network
308 stack, using the NAPI interface function napi_gro_receive().344 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 @@
1Marvell(Aquantia) AQtion Driver for the aQuantia Multi-Gigabit PCI Express1.. SPDX-License-Identifier: GPL-2.0
2Family of Ethernet Adapters2.. include:: <isonum.txt>
3=============================================================================
4 3
5Contents4===============================
6========5Marvell(Aquantia) AQtion Driver
6===============================
7 7
8- Identifying Your Adapter8For the aQuantia Multi-Gigabit PCI Express Family of Ethernet Adapters
9- Configuration9
10- Supported ethtool options10.. Contents
11- Command Line Parameters11
12- Config file parameters12 - Identifying Your Adapter
13- Support13 - Configuration
14- License14 - Supported ethtool options
15 - Command Line Parameters
16 - Config file parameters
17 - Support
18 - License
15 19
16Identifying Your Adapter20Identifying Your Adapter
17========================21========================
18 22
19The driver in this release is compatible with AQC-100, AQC-107, AQC-108 based ethernet adapters.23The driver in this release is compatible with AQC-100, AQC-107, AQC-108
24based ethernet adapters.
20 25
21 26
22SFP+ Devices (for AQC-100 based adapters)27SFP+ Devices (for AQC-100 based adapters)
23----------------------------------28-----------------------------------------
24 29
25This release tested with passive Direct Attach Cables (DAC) and SFP+/LC Optical Transceiver.30This release tested with passive Direct Attach Cables (DAC) and SFP+/LC
31Optical Transceiver.
26 32
27Configuration33Configuration
28=========================34=============
29 Viewing Link Messages35
30 ---------------------36Viewing Link Messages
37---------------------
31 Link messages will not be displayed to the console if the distribution is38 Link messages will not be displayed to the console if the distribution is
32 restricting system messages. In order to see network driver link messages on39 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::
34 41
35 dmesg -n 842 dmesg -n 8
36 43
37 NOTE: This setting is not saved across reboots.44 .. note::
38 45
39 Jumbo Frames46 This setting is not saved across reboots.
40 ------------47
48Jumbo Frames
49------------
41 The driver supports Jumbo Frames for all adapters. Jumbo Frames support is50 The driver supports Jumbo Frames for all adapters. Jumbo Frames support is
42 enabled by changing the MTU to a value larger than the default of 1500.51 enabled by changing the MTU to a value larger than the default of 1500.
43 The maximum value for the MTU is 16000. Use the `ip` command to52 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::
45 54
46 ip link set mtu 16000 dev enp1s055 ip link set mtu 16000 dev enp1s0
47 56
48 ethtool57ethtool
49 -------58-------
50 The driver utilizes the ethtool interface for driver configuration and59 The driver utilizes the ethtool interface for driver configuration and
51 diagnostics, as well as displaying statistical information. The latest60 diagnostics, as well as displaying statistical information. The latest
52 ethtool version is required for this functionality.61 ethtool version is required for this functionality.
53 62
54 NAPI63NAPI
55 ----64----
56 NAPI (Rx polling mode) is supported in the atlantic driver.65 NAPI (Rx polling mode) is supported in the atlantic driver.
57 66
58Supported ethtool options67Supported ethtool options
59============================68=========================
60 Viewing adapter settings69
61 ---------------------70Viewing adapter settings
62 ethtool <ethX>71------------------------
72
73 ::
63 74
64 Output example:75 ethtool <ethX>
76
77 Output example::
65 78
66 Settings for enp1s0:79 Settings for enp1s0:
67 Supported ports: [ TP ]80 Supported ports: [ TP ]
68 Supported link modes: 100baseT/Full81 Supported link modes: 100baseT/Full
69 1000baseT/Full82 1000baseT/Full
70 10000baseT/Full83 10000baseT/Full
71 2500baseT/Full84 2500baseT/Full
72 5000baseT/Full85 5000baseT/Full
73 Supported pause frame use: Symmetric86 Supported pause frame use: Symmetric
74 Supports auto-negotiation: Yes87 Supports auto-negotiation: Yes
75 Supported FEC modes: Not reported88 Supported FEC modes: Not reported
76 Advertised link modes: 100baseT/Full89 Advertised link modes: 100baseT/Full
77 1000baseT/Full90 1000baseT/Full
78 10000baseT/Full91 10000baseT/Full
79 2500baseT/Full92 2500baseT/Full
80 5000baseT/Full93 5000baseT/Full
81 Advertised pause frame use: Symmetric94 Advertised pause frame use: Symmetric
82 Advertised auto-negotiation: Yes95 Advertised auto-negotiation: Yes
83 Advertised FEC modes: Not reported96 Advertised FEC modes: Not reported
@@ -92,16 +105,22 @@ Supported ethtool options · 8 unmodified lines
92 Wake-on: d105 Wake-on: d
93 Link detected: yes106 Link detected: yes
94 107
95 ---108
96 Note: AQrate speeds (2.5/5 Gb/s) will be displayed only with linux kernels > 4.10.109 .. note::
97 But you can still use these speeds: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
98 ethtool -s eth0 autoneg off speed 2500114 ethtool -s eth0 autoneg off speed 2500
99 115
100 Viewing adapter information116Viewing adapter information
101 ---------------------117---------------------------
102 ethtool -i <ethX>
103 118
104 Output example:119 ::
120
121 ethtool -i <ethX>
122
123 Output example::
105 124
106 driver: atlantic125 driver: atlantic
107 version: 5.2.0-050200rc5-generic-kern126 version: 5.2.0-050200rc5-generic-kern
@@ -115,12 +134,16 @@ Supported ethtool options · 7 unmodified lines
115 supports-priv-flags: no134 supports-priv-flags: no
116 135
117 136
118 Viewing Ethernet adapter statistics:137Viewing Ethernet adapter statistics
119 ---------------------138-----------------------------------
120 ethtool -S <ethX>139
140 ::
121 141
122 Output example:142 ethtool -S <ethX>
123 NIC statistics:143
144 Output example::
145
146 NIC statistics:
124 InPackets: 13238607147 InPackets: 13238607
125 InUCast: 13293852148 InUCast: 13293852
126 InMCast: 52149 InMCast: 52
@@ -164,85 +187,95 @@ Supported ethtool options · 37 unmodified lines
164 Queue[3] InLroPackets: 0187 Queue[3] InLroPackets: 0
165 Queue[3] InErrors: 0188 Queue[3] InErrors: 0
166 189
167 Interrupt coalescing support190Interrupt coalescing support
168 ---------------------------------191----------------------------
169 ITR mode, TX/RX coalescing timings could be viewed with:
170 192
171 ethtool -c <ethX>193 ITR mode, TX/RX coalescing timings could be viewed with::
172 194
173 and changed with:195 ethtool -c <ethX>
174 196
175 ethtool -C <ethX> tx-usecs <usecs> rx-usecs <usecs>197 and changed with::
176 198
177 To disable coalescing:199 ethtool -C <ethX> tx-usecs <usecs> rx-usecs <usecs>
178 200
179 ethtool -C <ethX> tx-usecs 0 rx-usecs 0 tx-max-frames 1 tx-max-frames 1201 To disable coalescing::
180 202
181 Wake on LAN support203 ethtool -C <ethX> tx-usecs 0 rx-usecs 0 tx-max-frames 1 tx-max-frames 1
182 ---------------------------------
183 204
184 WOL support by magic packet:205Wake on LAN support
206-------------------
185 207
186 ethtool -s <ethX> wol g208 WOL support by magic packet::
187 209
188 To disable WOL:210 ethtool -s <ethX> wol g
189 211
190 ethtool -s <ethX> wol d212 To disable WOL::
191 213
192 Set and check the driver message level214 ethtool -s <ethX> wol d
193 ---------------------------------215
216Set and check the driver message level
217--------------------------------------
194 218
195 Set message level219 Set message level
196 220
197 ethtool -s <ethX> msglvl <level>221 ::
222
223 ethtool -s <ethX> msglvl <level>
198 224
199 Level values:225 Level values:
200 226
201 0x0001 - general driver status.227 ====== =============================
202 0x0002 - hardware probing.228 0x0001 general driver status.
203 0x0004 - link state.229 0x0002 hardware probing.
204 0x0008 - periodic status check.230 0x0004 link state.
205 0x0010 - interface being brought down.231 0x0008 periodic status check.
206 0x0020 - interface being brought up.232 0x0010 interface being brought down.
207 0x0040 - receive error.233 0x0020 interface being brought up.
208 0x0080 - transmit error.234 0x0040 receive error.
209 0x0200 - interrupt handling.235 0x0080 transmit error.
210 0x0400 - transmit completion.236 0x0200 interrupt handling.
211 0x0800 - receive completion.237 0x0400 transmit completion.
212 0x1000 - packet contents.238 0x0800 receive completion.
213 0x2000 - hardware status.239 0x1000 packet contents.
214 0x4000 - Wake-on-LAN status.240 0x2000 hardware status.
241 0x4000 Wake-on-LAN status.
242 ====== =============================
215 243
216 By default, the level of debugging messages is set 0x0001(general driver status).244 By default, the level of debugging messages is set 0x0001(general driver status).
217 245
218 Check message level246 Check message level
219 247
220 ethtool <ethX> | grep "Current message level"248 ::
221 249
222 If you want to disable the output of messages250 ethtool <ethX> | grep "Current message level"
223 251
224 ethtool -s <ethX> msglvl 0252 If you want to disable the output of messages::
253
254 ethtool -s <ethX> msglvl 0
255
256RX flow rules (ntuple filters)
257------------------------------
225 258
226 RX flow rules (ntuple filters)
227 ---------------------------------
228 There are separate rules supported, that applies in that order:259 There are separate rules supported, that applies in that order:
260
229 1. 16 VLAN ID rules261 1. 16 VLAN ID rules
230 2. 16 L2 EtherType rules262 2. 16 L2 EtherType rules
231 3. 8 L3/L4 5-Tuple rules263 3. 8 L3/L4 5-Tuple rules
232 264
233 265
234 The driver utilizes the ethtool interface for configuring ntuple filters,266 The driver utilizes the ethtool interface for configuring ntuple filters,
235 via "ethtool -N <device> <filter>".267 via ``ethtool -N <device> <filter>``.
236 268
237 To enable or disable the RX flow rules:269 To enable or disable the RX flow rules::
238 270
239 ethtool -K ethX ntuple <on|off>271 ethtool -K ethX ntuple <on|off>
240 272
241 When disabling ntuple filters, all the user programed filters are273 When disabling ntuple filters, all the user programed filters are
242 flushed from the driver cache and hardware. All needed filters must274 flushed from the driver cache and hardware. All needed filters must
243 be re-added when ntuple is re-enabled.275 be re-added when ntuple is re-enabled.
244 276
245 Because of the fixed order of the rules, the location of filters is also fixed:277 Because of the fixed order of the rules, the location of filters is also fixed:
278
246 - Locations 0 - 15 for VLAN ID filters279 - Locations 0 - 15 for VLAN ID filters
247 - Locations 16 - 31 for L2 EtherType filters280 - Locations 16 - 31 for L2 EtherType filters
248 - Locations 32 - 39 for L3/L4 5-tuple filters (locations 32, 36 for IPv6)281 - Locations 32 - 39 for L3/L4 5-tuple filters (locations 32, 36 for IPv6)
@@ -253,32 +286,34 @@ Supported ethtool options · 4 unmodified lines
253 addresses can be supported. Source and destination ports are only compared for286 addresses can be supported. Source and destination ports are only compared for
254 TCP/UDP/SCTP packets.287 TCP/UDP/SCTP packets.
255 288
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::
257 291
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>
259 293
260 - action is the queue number.294 - action is the queue number.
261 - loc is the rule number.295 - loc is the rule number.
262 296
263 For "flow-type ip4|udp4|tcp4|sctp4|ip6|udp6|tcp6|sctp6" you must set the loc297 For ``flow-type ip4|udp4|tcp4|sctp4|ip6|udp6|tcp6|sctp6`` you must set the loc
264 number within 32 - 39.298 number within 32 - 39.
265 For "flow-type ip4|udp4|tcp4|sctp4|ip6|udp6|tcp6|sctp6" you can set 8 rules299 For ``flow-type ip4|udp4|tcp4|sctp4|ip6|udp6|tcp6|sctp6`` you can set 8 rules
266 for traffic IPv4 or you can set 2 rules for traffic IPv6. Loc number traffic300 for traffic IPv4 or you can set 2 rules for traffic IPv6. Loc number traffic
267 IPv6 is 32 and 36.301 IPv6 is 32 and 36.
268 At the moment you can not use IPv4 and IPv6 filters at the same time.302 At the moment you can not use IPv4 and IPv6 filters at the same time.
269 303
270 Example filter for IPv6 filter traffic:304 Example filter for IPv6 filter traffic::
271 305
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 32306 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 36307 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
274 308
275 Example filter for IPv4 filter traffic:309 Example filter for IPv4 filter traffic::
276 310
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 32311 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 33312 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 34313 sudo ethtool -N <ethX> flow-type ip4 src-ip 10.0.0.6 dst-ip 10.0.0.4 loc 34
280 314
281 If you set action -1, then all traffic corresponding to the filter will be discarded.315 If you set action -1, then all traffic corresponding to the filter will be discarded.
316
282 The maximum value action is 31.317 The maximum value action is 31.
283 318
284 319
@@ -287,8 +322,9 @@ Supported ethtool options · 2 unmodified lines
287 from L2 Ethertype filter with UserPriority since both User Priority and VLAN ID322 from L2 Ethertype filter with UserPriority since both User Priority and VLAN ID
288 are passed in the same 'vlan' parameter.323 are passed in the same 'vlan' parameter.
289 324
290 To add a filter that directs packets from VLAN 2001 to queue 5:325 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 0326
327 ethtool -N <ethX> flow-type ip4 vlan 2001 m 0xF000 action 1 loc 0
292 328
293 329
294 L2 EtherType filters allows filter packet by EtherType field or both EtherType330 L2 EtherType filters allows filter packet by EtherType field or both EtherType
@@ -297,17 +333,17 @@ Supported ethtool options · 2 unmodified lines
297 distinguish VLAN filter from L2 Ethertype filter with UserPriority since both333 distinguish VLAN filter from L2 Ethertype filter with UserPriority since both
298 User Priority and VLAN ID are passed in the same 'vlan' parameter.334 User Priority and VLAN ID are passed in the same 'vlan' parameter.
299 335
300 To add a filter that directs IP4 packess of priority 3 to queue 3:336 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
302 337
338 ethtool -N <ethX> flow-type ether proto 0x800 vlan 0x600 m 0x1FFF action 3 loc 16
303 339
304 To see the list of filters currently present:340 To see the list of filters currently present::
305 341
306 ethtool <-u|-n|--show-nfc|--show-ntuple> <ethX>342 ethtool <-u|-n|--show-nfc|--show-ntuple> <ethX>
307 343
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::
309 345
310 sudo ethtool <-N|-U|--config-nfc|--config-ntuple> <ethX> delete <loc>346 sudo ethtool <-N|-U|--config-nfc|--config-ntuple> <ethX> delete <loc>
311 347
312 - loc is the rule number to be deleted.348 - loc is the rule number to be deleted.
313 349
@@ -316,34 +352,37 @@ Supported ethtool options · 2 unmodified lines
316 case, any flow that matches the filter criteria will be directed to the352 case, any flow that matches the filter criteria will be directed to the
317 appropriate queue. RX filters is supported on all kernels 2.6.30 and later.353 appropriate queue. RX filters is supported on all kernels 2.6.30 and later.
318 354
319 RSS for UDP355RSS for UDP
320 ---------------------------------356-----------
357
321 Currently, NIC does not support RSS for fragmented IP packets, which leads to358 Currently, NIC does not support RSS for fragmented IP packets, which leads to
322 incorrect working of RSS for fragmented UDP traffic. To disable RSS for UDP the359 incorrect working of RSS for fragmented UDP traffic. To disable RSS for UDP the
323 RX Flow L3/L4 rule may be used.360 RX Flow L3/L4 rule may be used.
324 361
325 Example:362 Example::
326 ethtool -N eth0 flow-type udp4 action 0 loc 32363
364 ethtool -N eth0 flow-type udp4 action 0 loc 32
365
366UDP GSO hardware offload
367------------------------
327 368
328 UDP GSO hardware offload
329 ---------------------------------
330 UDP GSO allows to boost UDP tx rates by offloading UDP headers allocation369 UDP GSO allows to boost UDP tx rates by offloading UDP headers allocation
331 into hardware. A special userspace socket option is required for this,370 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/::
333 372
334 udpgso_bench_tx -u -4 -D 10.0.1.1 -s 6300 -S 100373 udpgso_bench_tx -u -4 -D 10.0.1.1 -s 6300 -S 100
335 374
336 Will cause sending out of 100 byte sized UDP packets formed from single375 Will cause sending out of 100 byte sized UDP packets formed from single
337 6300 bytes user buffer.376 6300 bytes user buffer.
338 377
339 UDP GSO is configured by:378 UDP GSO is configured by::
340 379
341 ethtool -K eth0 tx-udp-segmentation on380 ethtool -K eth0 tx-udp-segmentation on
342 381
343 Private flags (testing)382Private flags (testing)
344 ---------------------------------383-----------------------
345 384
346 Atlantic driver supports private flags for hardware custom features:385 Atlantic driver supports private flags for hardware custom features::
347 386
348 $ ethtool --show-priv-flags ethX387 $ ethtool --show-priv-flags ethX
349 388
@@ -354,7 +393,7 @@ Supported ethtool options · 4 unmodified lines
354 PHYInternalLoopback: off393 PHYInternalLoopback: off
355 PHYExternalLoopback: off394 PHYExternalLoopback: off
356 395
357 Example:396 Example::
358 397
359 $ ethtool --set-priv-flags ethX DMASystemLoopback on398 $ ethtool --set-priv-flags ethX DMASystemLoopback on
360 399
@@ -370,93 +409,130 @@ Command Line Parameters · 9 unmodified lines
370The following command line parameters are available on atlantic driver:409The following command line parameters are available on atlantic driver:
371 410
372aq_itr -Interrupt throttling mode411aq_itr -Interrupt throttling mode
373----------------------------------------412---------------------------------
374Accepted values: 0, 1, 0xFFFF413Accepted values: 0, 1, 0xFFFF
414
375Default value: 0xFFFF415Default value: 0xFFFF
3760 - Disable interrupt throttling.416
3771 - Enable interrupt throttling and use specified tx and rx rates.417====== ==============================================================
3780xFFFF - Auto throttling mode. Driver will choose the best RX and TX4180 Disable interrupt throttling.
379 interrupt throtting settings based on link speed.4191 Enable interrupt throttling and use specified tx and rx rates.
4200xFFFF Auto throttling mode. Driver will choose the best RX and TX
421 interrupt throtting settings based on link speed.
422====== ==============================================================
380 423
381aq_itr_tx - TX interrupt throttle rate424aq_itr_tx - TX interrupt throttle rate
382----------------------------------------425--------------------------------------
426
383Accepted values: 0 - 0x1FF427Accepted values: 0 - 0x1FF
428
384Default value: 0429Default value: 0
430
385TX side throttling in microseconds. Adapter will setup maximum interrupt delay431TX side throttling in microseconds. Adapter will setup maximum interrupt delay
386to this value. Minimum interrupt delay will be a half of this value432to this value. Minimum interrupt delay will be a half of this value
387 433
388aq_itr_rx - RX interrupt throttle rate434aq_itr_rx - RX interrupt throttle rate
389----------------------------------------435--------------------------------------
436
390Accepted values: 0 - 0x1FF437Accepted values: 0 - 0x1FF
438
391Default value: 0439Default value: 0
440
392RX side throttling in microseconds. Adapter will setup maximum interrupt delay441RX side throttling in microseconds. Adapter will setup maximum interrupt delay
393to this value. Minimum interrupt delay will be a half of this value442to this value. Minimum interrupt delay will be a half of this value
394 443
395Note: 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)
396 447
397Config file parameters448Config file parameters
398=======================449======================
450
399For some fine tuning and performance optimizations,451For some fine tuning and performance optimizations,
400some parameters can be changed in the {source_dir}/aq_cfg.h file.452some parameters can be changed in the {source_dir}/aq_cfg.h file.
401 453
402AQ_CFG_RX_PAGEORDER454AQ_CFG_RX_PAGEORDER
403----------------------------------------455-------------------
456
404Default value: 0457Default value: 0
458
405RX page order override. Thats a power of 2 number of RX pages allocated for459RX page order override. Thats a power of 2 number of RX pages allocated for
406each descriptor. Received descriptor size is still limited by AQ_CFG_RX_FRAME_MAX.460each descriptor. Received descriptor size is still limited by
461AQ_CFG_RX_FRAME_MAX.
462
407Increasing pageorder makes page reuse better (actual on iommu enabled systems).463Increasing pageorder makes page reuse better (actual on iommu enabled systems).
408 464
409AQ_CFG_RX_REFILL_THRES465AQ_CFG_RX_REFILL_THRES
410----------------------------------------466----------------------
467
411Default value: 32468Default value: 32
469
412RX refill threshold. RX path will not refill freed descriptors until the470RX refill threshold. RX path will not refill freed descriptors until the
413specified number of free descriptors is observed. Larger values may help471specified number of free descriptors is observed. Larger values may help
414better page reuse but may lead to packet drops as well.472better page reuse but may lead to packet drops as well.
415 473
416AQ_CFG_VECS_DEF474AQ_CFG_VECS_DEF
417------------------------------------------------------------475---------------
476
418Number of queues477Number of queues
478
419Valid Range: 0 - 8 (up to AQ_CFG_VECS_MAX)479Valid Range: 0 - 8 (up to AQ_CFG_VECS_MAX)
480
420Default value: 8481Default value: 8
482
421Notice this value will be capped by the number of cores available on the system.483Notice this value will be capped by the number of cores available on the system.
422 484
423AQ_CFG_IS_RSS_DEF485AQ_CFG_IS_RSS_DEF
424------------------------------------------------------------486-----------------
487
425Enable/disable Receive Side Scaling488Enable/disable Receive Side Scaling
426 489
427This feature allows the adapter to distribute receive processing490This feature allows the adapter to distribute receive processing
428across multiple CPU-cores and to prevent from overloading a single CPU core.491across multiple CPU-cores and to prevent from overloading a single CPU core.
429 492
430Valid values493Valid values
4310 - disabled494
4321 - enabled495== ========
4960 disabled
4971 enabled
498== ========
433 499
434Default value: 1500Default value: 1
435 501
436AQ_CFG_NUM_RSS_QUEUES_DEF502AQ_CFG_NUM_RSS_QUEUES_DEF
437------------------------------------------------------------503-------------------------
504
438Number of queues for Receive Side Scaling505Number of queues for Receive Side Scaling
506
439Valid Range: 0 - 8 (up to AQ_CFG_VECS_DEF)507Valid Range: 0 - 8 (up to AQ_CFG_VECS_DEF)
440 508
441Default value: AQ_CFG_VECS_DEF509Default value: AQ_CFG_VECS_DEF
442 510
443AQ_CFG_IS_LRO_DEF511AQ_CFG_IS_LRO_DEF
444------------------------------------------------------------512-----------------
513
445Enable/disable Large Receive Offload514Enable/disable Large Receive Offload
446 515
447This offload enables the adapter to coalesce multiple TCP segments and indicate516This offload enables the adapter to coalesce multiple TCP segments and indicate
448them as a single coalesced unit to the OS networking subsystem.517them as a single coalesced unit to the OS networking subsystem.
449The system consumes less energy but it also introduces more latency in packets processing.518
519The system consumes less energy but it also introduces more latency in packets
520processing.
450 521
451Valid values522Valid values
4520 - disabled523
4531 - enabled524== ========
5250 disabled
5261 enabled
527== ========
454 528
455Default value: 1529Default value: 1
456 530
457AQ_CFG_TX_CLEAN_BUDGET531AQ_CFG_TX_CLEAN_BUDGET
458----------------------------------------532----------------------
533
459Maximum descriptors to cleanup on TX at once.534Maximum descriptors to cleanup on TX at once.
535
460Default value: 256536Default value: 256
461 537
462After the aq_cfg.h file changed the driver must be rebuilt to take effect.538After the aq_cfg.h file changed the driver must be rebuilt to take effect.
@@ -472,7 +548,8 @@ License · 9 unmodified lines
472=======548=======
473 549
474aQuantia Corporation Network Driver550aQuantia Corporation Network Driver
475Copyright(c) 2014 - 2019 aQuantia Corporation.551
552Copyright |copy| 2014 - 2019 aQuantia Corporation.
476 553
477This program is free software; you can redistribute it and/or modify it554This program is free software; you can redistribute it and/or modify it
478under the terms and conditions of the GNU General Public License,555under 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 Controller1.. SPDX-License-Identifier: GPL-2.0
2.. include:: <isonum.txt>
2 3
3 Driver Release Notes for Linux4=============================================
5Chelsio N210 10Gb Ethernet Network Controller
6=============================================
4 7
5 Version 2.1.18Driver Release Notes for Linux
6 9
7 June 20, 200510Version 2.1.1
11
12June 20, 2005
13
14.. Contents
8 15
9CONTENTS
10========
11 INTRODUCTION16 INTRODUCTION
12 FEATURES17 FEATURES
13 PERFORMANCE18 PERFORMANCE
@@ -16,7 +21,7 @@ CONTENTS · 2 unmodified lines
16 SUPPORT21 SUPPORT
17 22
18 23
19INTRODUCTION24Introduction
20============25============
21 26
22 This document describes the Linux driver for Chelsio 10Gb Ethernet Network27 This document describes the Linux driver for Chelsio 10Gb Ethernet Network
@@ -24,11 +29,11 @@ INTRODUCTION · 1 unmodified line
24 compatible with the Chelsio N110 model 10Gb NICs.29 compatible with the Chelsio N110 model 10Gb NICs.
25 30
26 31
27FEATURES32Features
28========33========
29 34
30 Adaptive Interrupts (adaptive-rx)35Adaptive Interrupts (adaptive-rx)
31 ---------------------------------36---------------------------------
32 37
33 This feature provides an adaptive algorithm that adjusts the interrupt38 This feature provides an adaptive algorithm that adjusts the interrupt
34 coalescing parameters, allowing the driver to dynamically adapt the latency39 coalescing parameters, allowing the driver to dynamically adapt the latency
@@ -39,24 +44,24 @@ FEATURES · 4 unmodified lines
39 ethtool manpage for additional usage information.44 ethtool manpage for additional usage information.
40 45
41 By default, adaptive-rx is disabled.46 By default, adaptive-rx is disabled.
42 To enable adaptive-rx:47 To enable adaptive-rx::
43 48
44 ethtool -C <interface> adaptive-rx on49 ethtool -C <interface> adaptive-rx on
45 50
46 To disable adaptive-rx, use ethtool:51 To disable adaptive-rx, use ethtool::
47 52
48 ethtool -C <interface> adaptive-rx off53 ethtool -C <interface> adaptive-rx off
49 54
50 After disabling adaptive-rx, the timer latency value will be set to 50us.55 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::
52 57
53 ethtool -C <interface> rx-usecs <microseconds>58 ethtool -C <interface> rx-usecs <microseconds>
54 59
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::
56 61
57 ethtool -C eth0 rx-usecs 10062 ethtool -C eth0 rx-usecs 100
58 63
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::
60 65
61 ethtool -C <interface> adaptive-rx off rx-usecs <microseconds>66 ethtool -C <interface> adaptive-rx off rx-usecs <microseconds>
62 67
@@ -64,13 +69,13 @@ FEATURES · 1 unmodified line
64 will be set to the specified value until changed by the user or until69 will be set to the specified value until changed by the user or until
65 adaptive-rx is enabled.70 adaptive-rx is enabled.
66 71
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::
68 73
69 ethtool -c <interface>74 ethtool -c <interface>
70 75
71 76
72 TCP Segmentation Offloading (TSO) Support77TCP Segmentation Offloading (TSO) Support
73 -----------------------------------------78-----------------------------------------
74 79
75 This feature, also known as "large send", enables a system's protocol stack80 This feature, also known as "large send", enables a system's protocol stack
76 to offload portions of outbound TCP processing to a network interface card81 to offload portions of outbound TCP processing to a network interface card
@@ -80,20 +85,20 @@ FEATURES · 3 unmodified lines
80 Please see the ethtool manpage for additional usage information.85 Please see the ethtool manpage for additional usage information.
81 86
82 By default, TSO is enabled.87 By default, TSO is enabled.
83 To disable TSO:88 To disable TSO::
84 89
85 ethtool -K <interface> tso off90 ethtool -K <interface> tso off
86 91
87 To enable TSO:92 To enable TSO::
88 93
89 ethtool -K <interface> tso on94 ethtool -K <interface> tso on
90 95
91 To view the status of TSO:96 To view the status of TSO::
92 97
93 ethtool -k <interface>98 ethtool -k <interface>
94 99
95 100
96PERFORMANCE101Performance
97===========102===========
98 103
99 The following information is provided as an example of how to change system104 The following information is provided as an example of how to change system
@@ -111,59 +116,81 @@ PERFORMANCE · 11 unmodified lines
111 your system. You may want to write a script that runs at boot-up which116 your system. You may want to write a script that runs at boot-up which
112 includes the optimal settings for your system.117 includes the optimal settings for your system.
113 118
114 Setting PCI Latency Timer:119 Setting PCI Latency Timer::
115 setpci -d 1425:* 0x0c.l=0x0000F800120
121 setpci -d 1425::
122
123* 0x0c.l=0x0000F800
124
125 Disabling TCP timestamp::
116 126
117 Disabling TCP timestamp:
118 sysctl -w net.ipv4.tcp_timestamps=0127 sysctl -w net.ipv4.tcp_timestamps=0
119 128
120 Disabling SACK:129 Disabling SACK::
130
121 sysctl -w net.ipv4.tcp_sack=0131 sysctl -w net.ipv4.tcp_sack=0
122 132
123 Setting large number of incoming connection requests:133 Setting large number of incoming connection requests::
134
124 sysctl -w net.ipv4.tcp_max_syn_backlog=3000135 sysctl -w net.ipv4.tcp_max_syn_backlog=3000
125 136
126 Setting maximum receive socket buffer size:137 Setting maximum receive socket buffer size::
138
127 sysctl -w net.core.rmem_max=1024000139 sysctl -w net.core.rmem_max=1024000
128 140
129 Setting maximum send socket buffer size:141 Setting maximum send socket buffer size::
142
130 sysctl -w net.core.wmem_max=1024000143 sysctl -w net.core.wmem_max=1024000
131 144
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
133 echo 1 > /proc/irq/<interrupt_number>/smp_affinity147 echo 1 > /proc/irq/<interrupt_number>/smp_affinity
134 148
135 Setting default receive socket buffer size:149 Setting default receive socket buffer size::
150
136 sysctl -w net.core.rmem_default=524287151 sysctl -w net.core.rmem_default=524287
137 152
138 Setting default send socket buffer size:153 Setting default send socket buffer size::
154
139 sysctl -w net.core.wmem_default=524287155 sysctl -w net.core.wmem_default=524287
140 156
141 Setting maximum option memory buffers:157 Setting maximum option memory buffers::
158
142 sysctl -w net.core.optmem_max=524287159 sysctl -w net.core.optmem_max=524287
143 160
144 Setting maximum backlog (# of unprocessed packets before kernel drops):161 Setting maximum backlog (# of unprocessed packets before kernel drops)::
162
145 sysctl -w net.core.netdev_max_backlog=300000163 sysctl -w net.core.netdev_max_backlog=300000
146 164
147 Setting TCP read buffers (min/default/max):165 Setting TCP read buffers (min/default/max)::
166
148 sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"167 sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
149 168
150 Setting TCP write buffers (min/pressure/max):169 Setting TCP write buffers (min/pressure/max)::
170
151 sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"171 sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"
152 172
153 Setting TCP buffer space (min/pressure/max):173 Setting TCP buffer space (min/pressure/max)::
174
154 sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000"175 sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000"
155 176
156 TCP window size for single connections:177 TCP window size for single connections:
178
157 The receive buffer (RX_WINDOW) size must be at least as large as the179 The receive buffer (RX_WINDOW) size must be at least as large as the
158 Bandwidth-Delay Product of the communication link between the sender and180 Bandwidth-Delay Product of the communication link between the sender and
159 receiver. Due to the variations of RTT, you may want to increase the buffer181 receiver. Due to the variations of RTT, you may want to increase the buffer
160 size up to 2 times the Bandwidth-Delay Product. Reference page 289 of182 size up to 2 times the Bandwidth-Delay Product. Reference page 289 of
161 "TCP/IP Illustrated, Volume 1, The Protocols" by W. Richard Stevens.183 "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
163 RX_WINDOW >= 1.25MBytes * RTT(in milliseconds)187 RX_WINDOW >= 1.25MBytes * RTT(in milliseconds)
164 Example for RTT with 100us: RX_WINDOW = (1,250,000 * 0.1) = 125,000188 Example for RTT with 100us: RX_WINDOW = (1,250,000 * 0.1) = 125,000
189
165 RX_WINDOW sizes of 256KB - 512KB should be sufficient.190 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
167 sysctl -w net.ipv4.tcp_rmem="<min> <default> <max>"194 sysctl -w net.ipv4.tcp_rmem="<min> <default> <max>"
168 195
169 TCP window size for multiple connections:196 TCP window size for multiple connections:
@@ -174,30 +201,35 @@ PERFORMANCE · 4 unmodified lines
174 not supported on the machine. Experimentation may be necessary to attain201 not supported on the machine. Experimentation may be necessary to attain
175 the correct value. This method is provided as a starting point for the202 the correct value. This method is provided as a starting point for the
176 correct receive buffer size.203 correct receive buffer size.
204
177 Setting the min, max, and default receive buffer (RX_WINDOW) size is205 Setting the min, max, and default receive buffer (RX_WINDOW) size is
178 performed in the same manner as single connection.206 performed in the same manner as single connection.
179 207
180 208
181DRIVER MESSAGES209Driver Messages
182===============210===============
183 211
184 The following messages are the most common messages logged by syslog. These212 The following messages are the most common messages logged by syslog. These
185 may be found in /var/log/messages.213 may be found in /var/log/messages.
186 214
187 Driver up:215 Driver up::
216
188 Chelsio Network Driver - version 2.1.1217 Chelsio Network Driver - version 2.1.1
189 218
190 NIC detected:219 NIC detected::
220
191 eth#: Chelsio N210 1x10GBaseX NIC (rev #), PCIX 133MHz/64-bit221 eth#: Chelsio N210 1x10GBaseX NIC (rev #), PCIX 133MHz/64-bit
192 222
193 Link up:223 Link up::
224
194 eth#: link is up at 10 Gbps, full duplex225 eth#: link is up at 10 Gbps, full duplex
195 226
196 Link down:227 Link down::
228
197 eth#: link is down229 eth#: link is down
198 230
199 231
200KNOWN ISSUES232Known Issues
201============233============
202 234
203 These issues have been identified during testing. The following information235 These issues have been identified during testing. The following information
@@ -214,27 +246,33 @@ KNOWN ISSUES · 10 unmodified lines
214 246
215 To eliminate the TCP retransmits, set smp_affinity on the particular247 To eliminate the TCP retransmits, set smp_affinity on the particular
216 interrupt to a single CPU. You can locate the interrupt (IRQ) used on248 interrupt to a single CPU. You can locate the interrupt (IRQ) used on
217 the N110/N210 by using ifconfig:249 the N110/N210 by using ifconfig::
218 ifconfig <dev_name> | grep Interrupt250
219 Set the smp_affinity to a single CPU:251 ifconfig <dev_name> | grep Interrupt
220 echo 1 > /proc/irq/<interrupt_number>/smp_affinity252
253 Set the smp_affinity to a single CPU::
254
255 echo 1 > /proc/irq/<interrupt_number>/smp_affinity
221 256
222 It is highly suggested that you do not run the irqbalance daemon on your257 It is highly suggested that you do not run the irqbalance daemon on your
223 system, as this will change any smp_affinity setting you have applied.258 system, as this will change any smp_affinity setting you have applied.
224 The irqbalance daemon runs on a 10 second interval and binds interrupts259 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:260 to the least loaded CPU determined by the daemon. To disable this daemon::
226 chkconfig --level 2345 irqbalance off261
262 chkconfig --level 2345 irqbalance off
227 263
228 By default, some Linux distributions enable the kernel feature,264 By default, some Linux distributions enable the kernel feature,
229 irqbalance, which performs the same function as the daemon. To disable265 irqbalance, which performs the same function as the daemon. To disable
230 this feature, add the following line to your bootloader:266 this feature, add the following line to your bootloader::
231 noirqbalance267
268 noirqbalance
269
270 Example using the Grub bootloader::
232 271
233 Example using the Grub bootloader:272 title Red Hat Enterprise Linux AS (2.4.21-27.ELsmp)
234 title Red Hat Enterprise Linux AS (2.4.21-27.ELsmp)273 root (hd0,0)
235 root (hd0,0)274 kernel /vmlinuz-2.4.21-27.ELsmp ro root=/dev/hda3 noirqbalance
236 kernel /vmlinuz-2.4.21-27.ELsmp ro root=/dev/hda3 noirqbalance275 initrd /initrd-2.4.21-27.ELsmp.img
237 initrd /initrd-2.4.21-27.ELsmp.img
238 276
239 2. After running insmod, the driver is loaded and the incorrect network277 2. After running insmod, the driver is loaded and the incorrect network
240 interface is brought up without running ifup.278 interface is brought up without running ifup.
@@ -277,12 +315,13 @@ KNOWN ISSUES · 36 unmodified lines
277 AMD's provides three workarounds for this problem, however, Chelsio315 AMD's provides three workarounds for this problem, however, Chelsio
278 recommends the first option for best performance with this bug:316 recommends the first option for best performance with this bug:
279 317
280 For 133Mhz secondary bus operation, limit the transaction length and318 For 133Mhz secondary bus operation, limit the transaction length and
281 the number of outstanding transactions, via BIOS configuration319 the number of outstanding transactions, via BIOS configuration
282 programming of the PCI-X card, to the following:320 programming of the PCI-X card, to the following:
283 321
284 Data Length (bytes): 1k322 Data Length (bytes): 1k
285 Total allowed outstanding transactions: 2323
324 Total allowed outstanding transactions: 2
286 325
287 Please refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004,326 Please refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004,
288 section 56, "133-MHz Mode Split Completion Data Corruption" for more327 section 56, "133-MHz Mode Split Completion Data Corruption" for more
@@ -293,8 +332,10 @@ KNOWN ISSUES · 4 unmodified lines
293 have issues with these settings, please revert to the "safe" settings332 have issues with these settings, please revert to the "safe" settings
294 and duplicate the problem before submitting a bug or asking for support.333 and duplicate the problem before submitting a bug or asking for support.
295 334
296 NOTE: The default setting on most systems is 8 outstanding transactions335 .. note::
297 and 2k bytes data length.336
337 The default setting on most systems is 8 outstanding transactions
338 and 2k bytes data length.
298 339
299 4. On multiprocessor systems, it has been noted that an application which340 4. On multiprocessor systems, it has been noted that an application which
300 is handling 10Gb networking can switch between CPUs causing degraded341 is handling 10Gb networking can switch between CPUs causing degraded
@@ -320,14 +361,16 @@ KNOWN ISSUES · 19 unmodified lines
320 particular CPU: runon 0 ifup eth0361 particular CPU: runon 0 ifup eth0
321 362
322 363
323SUPPORT364Support
324=======365=======
325 366
326 If you have problems with the software or hardware, please contact our367 If you have problems with the software or hardware, please contact our
327 customer support team via email at support@chelsio.com or check our website368 customer support team via email at support@chelsio.com or check our website
328 at http://www.chelsio.com369 at http://www.chelsio.com
329 370
330===============================================================================371-------------------------------------------------------------------------------
372
373::
331 374
332 Chelsio Communications375 Chelsio Communications
333 370 San Aleso Ave.376 370 San Aleso Ave.
@@ -343,10 +386,8 @@ You should have received a copy of the GNU General Public License along · 9 unmodified lines
343with this program; if not, write to the Free Software Foundation, Inc.,386with this program; if not, write to the Free Software Foundation, Inc.,
34459 Temple Place - Suite 330, Boston, MA 02111-1307, USA.38759 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
345 388
346THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED389THIS SOFTWARE IS PROVIDED ``AS IS`` AND WITHOUT ANY EXPRESS OR IMPLIED
347WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF390WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
348MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.391MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
349 392
350 Copyright (c) 2003-2005 Chelsio Communications. All rights reserved.393Copyright |copy| 2003-2005 Chelsio Communications. All rights reserved.
351
352===============================================================================
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
1 2
2NOTE3================================================
3----4Cirrus Logic LAN CS8900/CS8920 Ethernet Adapters
5================================================
4 6
5This document was contributed by Cirrus Logic for kernel 2.2.5. This version7.. note::
6has been updated for 2.3.48 by Andrew Morton.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.
7 13
8Cirrus make a copy of this driver available at their website, as14Cirrus make a copy of this driver available at their website, as
9described below. In general, you should use the driver version which15described below. In general, you should use the driver version which
10comes with your Linux distribution.16comes with your Linux distribution.
11 17
12 18
13
14CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS
15Linux Network Interface Driver ver. 2.00 <kernel 2.3.48>19Linux Network Interface Driver ver. 2.00 <kernel 2.3.48>
16===============================================================================20
17 21
18 22.. TABLE OF CONTENTS
19TABLE OF CONTENTS23
20 24 1.0 CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS
211.0 CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS25 1.1 Product Overview
22 1.1 Product Overview 26 1.2 Driver Description
23 1.2 Driver Description27 1.2.1 Driver Name
24 1.2.1 Driver Name28 1.2.2 File in the Driver Package
25 1.2.2 File in the Driver Package29 1.3 System Requirements
26 1.3 System Requirements30 1.4 Licensing Information
27 1.4 Licensing Information31
28 32 2.0 ADAPTER INSTALLATION and CONFIGURATION
292.0 ADAPTER INSTALLATION and CONFIGURATION33 2.1 CS8900-based Adapter Configuration
30 2.1 CS8900-based Adapter Configuration34 2.2 CS8920-based Adapter Configuration
31 2.2 CS8920-based Adapter Configuration 35
32 36 3.0 LOADING THE DRIVER AS A MODULE
333.0 LOADING THE DRIVER AS A MODULE37
34 38 4.0 COMPILING THE DRIVER
354.0 COMPILING THE DRIVER39 4.1 Compiling the Driver as a Loadable Module
36 4.1 Compiling the Driver as a Loadable Module40 4.2 Compiling the driver to support memory mode
37 4.2 Compiling the driver to support memory mode41 4.3 Compiling the driver to support Rx DMA
38 4.3 Compiling the driver to support Rx DMA 42
39 43 5.0 TESTING AND TROUBLESHOOTING
405.0 TESTING AND TROUBLESHOOTING44 5.1 Known Defects and Limitations
41 5.1 Known Defects and Limitations45 5.2 Testing the Adapter
42 5.2 Testing the Adapter46 5.2.1 Diagnostic Self-Test
43 5.2.1 Diagnostic Self-Test47 5.2.2 Diagnostic Network Test
44 5.2.2 Diagnostic Network Test48 5.3 Using the Adapter's LEDs
45 5.3 Using the Adapter's LEDs49 5.4 Resolving I/O Conflicts
46 5.4 Resolving I/O Conflicts50
47 51 6.0 TECHNICAL SUPPORT
486.0 TECHNICAL SUPPORT52 6.1 Contacting Cirrus Logic's Technical Support
49 6.1 Contacting Cirrus Logic's Technical Support53 6.2 Information Required Before Contacting Technical Support
50 6.2 Information Required Before Contacting Technical Support54 6.3 Obtaining the Latest Driver Version
51 6.3 Obtaining the Latest Driver Version55 6.4 Current maintainer
52 6.4 Current maintainer56 6.5 Kernel boot parameters
53 6.5 Kernel boot parameters57
54 58
55 591. Cirrus Logic LAN CS8900/CS8920 Ethernet Adapters
561.0 CIRRUS LOGIC LAN CS8900/CS8920 ETHERNET ADAPTERS60===================================================
57===============================================================================61
58 62
59 631.1. Product Overview
601.1 PRODUCT OVERVIEW64=====================
61 65
62The CS8900-based ISA Ethernet Adapters from Cirrus Logic follow 66The CS8900-based ISA Ethernet Adapters from Cirrus Logic follow
63IEEE 802.3 standards and support half or full-duplex operation in ISA bus 67IEEE 802.3 standards and support half or full-duplex operation in ISA bus
64computers on 10 Mbps Ethernet networks. The adapters are designed for operation 68computers on 10 Mbps Ethernet networks. The adapters are designed for operation
65in 16-bit ISA or EISA bus expansion slots and are available in 69in 16-bit ISA or EISA bus expansion slots and are available in
6610BaseT-only or 3-media configurations (10BaseT, 10Base2, and AUI for 10Base-5 7010BaseT-only or 3-media configurations (10BaseT, 10Base2, and AUI for 10Base-5
67or fiber networks). 71or fiber networks).
68 72
69CS8920-based adapters are similar to the CS8900-based adapter with additional 73CS8920-based adapters are similar to the CS8900-based adapter with additional
70features for Plug and Play (PnP) support and Wakeup Frame recognition. As 74features for Plug and Play (PnP) support and Wakeup Frame recognition. As
71such, the configuration procedures differ somewhat between the two types of 75such, the configuration procedures differ somewhat between the two types of
72adapters. Refer to the "Adapter Configuration" section for details on 76adapters. Refer to the "Adapter Configuration" section for details on
73configuring both types of adapters.77configuring both types of adapters.
74 78
75 79
761.2 DRIVER DESCRIPTION801.2. Driver Description
81=======================
77 82
78The CS8900/CS8920 Ethernet Adapter driver for Linux supports the Linux83The CS8900/CS8920 Ethernet Adapter driver for Linux supports the Linux
79v2.3.48 or greater kernel. It can be compiled directly into the kernel84v2.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
85 90
86The files in the driver at Cirrus' website include:91The files in the driver at Cirrus' website include:
87 92
88 readme.txt - this file93 =================== ====================================================
89 build - batch file to compile cs89x0.c.94 readme.txt this file
90 cs89x0.c - driver C code95 build batch file to compile cs89x0.c.
91 cs89x0.h - driver header file96 cs89x0.c driver C code
92 cs89x0.o - pre-compiled module (for v2.2.5 kernel)97 cs89x0.h driver header file
93 config/Config.in - sample file to include cs89x0 driver in the kernel.98 cs89x0.o pre-compiled module (for v2.2.5 kernel)
94 config/Makefile - sample file to include cs89x0 driver in the kernel.99 config/Config.in sample file to include cs89x0 driver in the kernel.
95 config/Space.c - 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 =================== ====================================================
96 103
97 104
98 105
991.3 SYSTEM REQUIREMENTS1061.3. System Requirements
107------------------------
100 108
101The following hardware is required:109The following hardware is required:
102 110
103 * Cirrus Logic LAN (CS8900/20-based) Ethernet ISA Adapter 111 * Cirrus Logic LAN (CS8900/20-based) Ethernet ISA Adapter
104 112
105 * IBM or IBM-compatible PC with:113 * IBM or IBM-compatible PC with:
106 * An 80386 or higher processor114 * An 80386 or higher processor
@@ -118,20 +126,21 @@ The following software is required: · 11 unmodified lines
118 126
119 * LINUX kernel sources for your kernel (if compiling into kernel)127 * LINUX kernel sources for your kernel (if compiling into kernel)
120 128
121 * GNU Toolkit (gcc and make) v2.6 or above (if compiling into kernel 129 * GNU Toolkit (gcc and make) v2.6 or above (if compiling into kernel
122 or a module) 130 or a module)
123 131
124 132
125 133
1261.4 LICENSING INFORMATION1341.4. Licensing Information
135--------------------------
127 136
128This program is free software; you can redistribute it and/or modify it under137This program is free software; you can redistribute it and/or modify it under
129the terms of the GNU General Public License as published by the Free Software138the terms of the GNU General Public License as published by the Free Software
130Foundation, version 1.139Foundation, version 1.
131 140
132This program is distributed in the hope that it will be useful, but WITHOUT141This program is distributed in the hope that it will be useful, but WITHOUT
133ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 142ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
134FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 143FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
135more details.144more details.
136 145
137For a full copy of the GNU General Public License, write to the Free Software146For 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
139 148
140 149
141 150
1422.0 ADAPTER INSTALLATION and CONFIGURATION1512. Adapter Installation and Configuration
143===============================================================================152=========================================
144 153
145Both the CS8900 and CS8920-based adapters can be configured using parameters 154Both the CS8900 and CS8920-based adapters can be configured using parameters
146stored in an on-board EEPROM. You must use the DOS-based CS8900/20 Setup 155stored in an on-board EEPROM. You must use the DOS-based CS8900/20 Setup
147Utility if you want to change the adapter's configuration in EEPROM. 156Utility if you want to change the adapter's configuration in EEPROM.
148 157
149When loading the driver as a module, you can specify many of the adapter's 158When loading the driver as a module, you can specify many of the adapter's
150configuration parameters on the command-line to override the EEPROM's settings 159configuration parameters on the command-line to override the EEPROM's settings
151or for interface configuration when an EEPROM is not used. (CS8920-based 160or for interface configuration when an EEPROM is not used. (CS8920-based
152adapters must use an EEPROM.) See Section 3.0 LOADING THE DRIVER AS A MODULE.161adapters must use an EEPROM.) See Section 3.0 LOADING THE DRIVER AS A MODULE.
153 162
154Since the CS8900/20 Setup Utility is a DOS-based application, you must install 163Since the CS8900/20 Setup Utility is a DOS-based application, you must install
155and configure the adapter in a DOS-based system using the CS8900/20 Setup 164and configure the adapter in a DOS-based system using the CS8900/20 Setup
156Utility before installation in the target LINUX system. (Not required if 165Utility before installation in the target LINUX system. (Not required if
157installing a CS8900-based adapter and the default configuration is acceptable.)166installing a CS8900-based adapter and the default configuration is acceptable.)
158
159 167
1602.1 CS8900-BASED ADAPTER CONFIGURATION
161 168
162CS8900-based adapters shipped from Cirrus Logic have been configured 1692.1. CS8900-based Adapter Configuration
163with the following "default" settings:170---------------------------------------
171
172CS8900-based adapters shipped from Cirrus Logic have been configured
173with the following "default" settings::
164 174
165 Operation Mode: Memory Mode175 Operation Mode: Memory Mode
166 IRQ: 10176 IRQ: 10
@@ -169,15 +179,16 @@ with the following "default" settings: · 2 unmodified lines
169 Optimization: DOS Client179 Optimization: DOS Client
170 Transmission Mode: Half-duplex180 Transmission Mode: Half-duplex
171 BootProm: None181 BootProm: None
172 Media Type: Autodetect (3-media cards) or 182 Media Type: Autodetect (3-media cards) or
173 10BASE-T (10BASE-T only adapter)183 10BASE-T (10BASE-T only adapter)
174 184
175You should only change the default configuration settings if conflicts with 185You should only change the default configuration settings if conflicts with
176another adapter exists. To change the adapter's configuration, run the 186another adapter exists. To change the adapter's configuration, run the
177CS8900/20 Setup Utility. 187CS8900/20 Setup Utility.
178 188
179 189
1802.2 CS8920-BASED ADAPTER CONFIGURATION1902.2. CS8920-based Adapter Configuration
191---------------------------------------
181 192
182CS8920-based adapters are shipped from Cirrus Logic configured as Plug193CS8920-based adapters are shipped from Cirrus Logic configured as Plug
183and Play (PnP) enabled. However, since the cs89x0 driver does NOT194and 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
185run the CS8900/20 Setup Utility to disable PnP and configure the196run the CS8900/20 Setup Utility to disable PnP and configure the
186adapter before installation in the target Linux system. Failure to do197adapter before installation in the target Linux system. Failure to do
187this will leave the adapter inactive and the driver will be unable to198this will leave the adapter inactive and the driver will be unable to
188communicate with the adapter. 199communicate with the adapter.
189 200
201::
190 202
191 **************************************************************** 203 ****************************************************************
192 * CS8920-BASED ADAPTERS: *204 * CS8920-BASED ADAPTERS: *
193 * * 205 * *
194 * CS8920-BASED ADAPTERS ARE PLUG and PLAY ENABLED BY DEFAULT. * 206 * CS8920-BASED ADAPTERS ARE PLUG and PLAY ENABLED BY DEFAULT. *
195 * THE CS89X0 DRIVER DOES NOT SUPPORT PnP. THEREFORE, YOU MUST *207 * THE CS89X0 DRIVER DOES NOT SUPPORT PnP. THEREFORE, YOU MUST *
196 * RUN THE CS8900/20 SETUP UTILITY TO DISABLE PnP SUPPORT AND *208 * RUN THE CS8900/20 SETUP UTILITY TO DISABLE PnP SUPPORT AND *
197 * TO ACTIVATE THE ADAPTER. *209 * TO ACTIVATE THE ADAPTER. *
198 ****************************************************************210 ****************************************************************
199 211
200 212
201 213
202 214
2033.0 LOADING THE DRIVER AS A MODULE2153. Loading the Driver as a Module
204===============================================================================216=================================
205 217
206If the driver is compiled as a loadable module, you can load the driver module218If the driver is compiled as a loadable module, you can load the driver module
207with the 'modprobe' command. Many of the adapter's configuration parameters can 219with the 'modprobe' command. Many of the adapter's configuration parameters can
208be specified as command-line arguments to the load command. This facility 220be specified as command-line arguments to the load command. This facility
209provides a means to override the EEPROM's settings or for interface 221provides a means to override the EEPROM's settings or for interface
210configuration when an EEPROM is not used.222configuration when an EEPROM is not used.
211 223
212Example:224Example::
213 225
214 insmod cs89x0.o io=0x200 irq=0xA media=aui226 insmod cs89x0.o io=0x200 irq=0xA media=aui
215 227
216This example loads the module and configures the adapter to use an IO port base228This example loads the module and configures the adapter to use an IO port base
217address of 200h, interrupt 10, and use the AUI media connection. The following229address of 200h, interrupt 10, and use the AUI media connection. The following
218configuration options are available on the command line:230configuration options are available on the command line::
219 231
220* io=### - specify IO address (200h-360h)232 io=### - specify IO address (200h-360h)
221* irq=## - specify interrupt level233 irq=## - specify interrupt level
222* use_dma=1 - Enable DMA234 use_dma=1 - Enable DMA
223* dma=# - specify dma channel (Driver is compiled to support235 dma=# - specify dma channel (Driver is compiled to support
224 Rx DMA only)236 Rx DMA only)
225* dmasize=# (16 or 64) - DMA size 16K or 64K. Default value is set to 16.237 dmasize=# (16 or 64) - DMA size 16K or 64K. Default value is set to 16.
226* media=rj45 - specify media type238 media=rj45 - specify media type
227 or media=bnc239 or media=bnc
228 or media=aui240 or media=aui
229 or media=auto241 or media=auto
230* duplex=full - specify forced half/full/autonegotiate duplex242 duplex=full - specify forced half/full/autonegotiate duplex
231 or duplex=half243 or duplex=half
232 or duplex=auto244 or duplex=auto
233* debug=# - debug level (only available if the driver was compiled245 debug=# - debug level (only available if the driver was compiled
234 for debugging)246 for debugging)
235 247
236NOTES:248**Notes:**
237 249
238a) If an EEPROM is present, any specified command-line parameter250a) If an EEPROM is present, any specified command-line parameter
239 will override the corresponding configuration value stored in251 will override the corresponding configuration value stored in
240 EEPROM.252 EEPROM.
241 253
242b) The "io" parameter must be specified on the command-line. 254b) The "io" parameter must be specified on the command-line.
243 255
244c) The driver's hardware probe routine is designed to avoid256c) The driver's hardware probe routine is designed to avoid
245 writing to I/O space until it knows that there is a cs89x0257 writing to I/O space until it knows that there is a cs89x0
246 card at the written addresses. This could cause problems258 card at the written addresses. This could cause problems
247 with device probing. To avoid this behaviour, add one259 with device probing. To avoid this behaviour, add one
248 to the `io=' module parameter. This doesn't actually change260 to the ``io=`` module parameter. This doesn't actually change
249 the I/O address, but it is a flag to tell the driver261 the I/O address, but it is a flag to tell the driver
250 to partially initialise the hardware before trying to262 to partially initialise the hardware before trying to
251 identify the card. This could be dangerous if you are263 identify the card. This could be dangerous if you are
252 not sure that there is a cs89x0 card at the provided address.264 not sure that there is a cs89x0 card at the provided address.
253 265
254 For example, to scan for an adapter located at IO base 0x300,266 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.
256 268
257d) The "duplex=auto" parameter is only supported for the CS8920.269d) The "duplex=auto" parameter is only supported for the CS8920.
258 270
259e) The minimum command-line configuration required if an EEPROM is271e) The minimum command-line configuration required if an EEPROM is
260 not present is:272 not present is:
261 273
262 io 274 io
263 irq 275 irq
264 media type (no autodetect)276 media type (no autodetect)
265 277
266f) The following additional parameters are CS89XX defaults (values278f) 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
282 module when it is loaded. All the configuration options which are294 module when it is loaded. All the configuration options which are
283 described above may be placed within /etc/conf.modules.295 described above may be placed within /etc/conf.modules.
284 296
285 For example:297 For example::
286 298
287 > cat /etc/conf.modules299 > cat /etc/conf.modules
288 ...300 ...
289 alias eth0 cs89x0301 alias eth0 cs89x0
290 options cs89x0 io=0x0200 dma=5 use_dma=1302 options cs89x0 io=0x0200 dma=5 use_dma=1
291 ...303 ...
292 304
293 In this example we are telling the module system that the305 In this example we are telling the module system that the
294 ethernet driver for this machine should use the cs89x0 driver. We306 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
305 317
306k) If your Linux kernel was compiled with inbuilt plug-and-play318k) If your Linux kernel was compiled with inbuilt plug-and-play
307 support you will be able to find information about the cs89x0 card319 support you will be able to find information about the cs89x0 card
308 with the command320 with the command::
309 321
310 cat /proc/isapnp322 cat /proc/isapnp
311 323
312l) If during DMA operation you find erratic behavior or network data324l) If during DMA operation you find erratic behavior or network data
313 corruption you should use your PC's BIOS to slow the EISA bus clock.325 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
321 mode may be selected by providing the kernel with a boot option333 mode may be selected by providing the kernel with a boot option
322 'cs89x0_dma=N' where 'N' is the desired DMA channel number (5, 6 or 7).334 'cs89x0_dma=N' where 'N' is the desired DMA channel number (5, 6 or 7).
323 335
324 Kernel boot options may be provided on the LILO command line:336 Kernel boot options may be provided on the LILO command line::
325 337
326 LILO boot: linux cs89x0_dma=5338 LILO boot: linux cs89x0_dma=5
327 339
328 or they may be placed in /etc/lilo.conf:340 or they may be placed in /etc/lilo.conf::
329 341
330 image=/boot/bzImage-2.3.48342 image=/boot/bzImage-2.3.48
331 append="cs89x0_dma=5"343 append="cs89x0_dma=5"
@@ -337,237 +349,246 @@ n) If the cs89x0 driver is compiled directly into the kernel, DMA · 5 unmodified lines
337 (64k mode is not available).349 (64k mode is not available).
338 350
339 351
3404.0 COMPILING THE DRIVER3524. Compiling the Driver
341===============================================================================353=======================
342 354
343The cs89x0 driver can be compiled directly into the kernel or compiled into355The cs89x0 driver can be compiled directly into the kernel or compiled into
344a loadable device driver module.356a loadable device driver module.
345 357
358Just use the standard way to configure the driver and compile the Kernel.
346 359
3474.1 COMPILING THE DRIVER AS A LOADABLE MODULE
348
349To 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
3564.2 COMPILING THE DRIVER TO SUPPORT MEMORY MODE
357
358Support for memory mode was not carried over into the 2.3 series kernels.
359 360
3604.3 COMPILING THE DRIVER TO SUPPORT Rx DMA3614.1. Compiling the Driver to Support Rx DMA
362-------------------------------------------
361 363
362The compile-time optionality for DMA was removed in the 2.3 kernel364The compile-time optionality for DMA was removed in the 2.3 kernel
363series. DMA support is now unconditionally part of the driver. It is365series. DMA support is now unconditionally part of the driver. It is
364enabled by the 'use_dma=1' module option.366enabled by the 'use_dma=1' module option.
365 367
366 368
3675.0 TESTING AND TROUBLESHOOTING3695. Testing and Troubleshooting
368===============================================================================370==============================
369 371
3705.1 KNOWN DEFECTS and LIMITATIONS3725.1. Known Defects and Limitations
373----------------------------------
371 374
372Refer to the RELEASE.TXT file distributed as part of this archive for a list of 375Refer to the RELEASE.TXT file distributed as part of this archive for a list of
373known defects, driver limitations, and work arounds.376known defects, driver limitations, and work arounds.
374 377
375 378
3765.2 TESTING THE ADAPTER3795.2. Testing the Adapter
380------------------------
377 381
378Once the adapter has been installed and configured, the diagnostic option of 382Once the adapter has been installed and configured, the diagnostic option of
379the CS8900/20 Setup Utility can be used to test the functionality of the 383the CS8900/20 Setup Utility can be used to test the functionality of the
380adapter and its network connection. Use the diagnostics 'Self Test' option to384adapter and its network connection. Use the diagnostics 'Self Test' option to
381test the functionality of the adapter with the hardware configuration you have385test the functionality of the adapter with the hardware configuration you have
382assigned. You can use the diagnostics 'Network Test' to test the ability of the386assigned. You can use the diagnostics 'Network Test' to test the ability of the
383adapter to communicate across the Ethernet with another PC equipped with a 387adapter to communicate across the Ethernet with another PC equipped with a
384CS8900/20-based adapter card (it must also be running the CS8900/20 Setup 388CS8900/20-based adapter card (it must also be running the CS8900/20 Setup
385Utility).389Utility).
386 390
387 NOTE: The Setup Utility's diagnostics are designed to run in a391.. note::
388 DOS-only operating system environment. DO NOT run the diagnostics 392
389 from a DOS or command prompt session under Windows 95, Windows NT, 393 The Setup Utility's diagnostics are designed to run in a
390 OS/2, or other operating system.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.
391 397
392To run the diagnostics tests on the CS8900/20 adapter:398To run the diagnostics tests on the CS8900/20 adapter:
393 399
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.
395 401
396 2.) The adapter's current configuration is displayed. Hit the ENTER key to402 2. The adapter's current configuration is displayed. Hit the ENTER key to
397 get to the main menu.403 get to the main menu.
398 404
399 4.) Select 'Diagnostics' (ALT-G) from the main menu. 405 4. Select 'Diagnostics' (ALT-G) from the main menu.
400 * Select 'Self-Test' to test the adapter's basic functionality.406 * Select 'Self-Test' to test the adapter's basic functionality.
401 * Select 'Network Test' to test the network connection and cabling.407 * Select 'Network Test' to test the network connection and cabling.
402 408
403 409
4045.2.1 DIAGNOSTIC SELF-TEST4105.2.1. Diagnostic Self-test
411^^^^^^^^^^^^^^^^^^^^^^^^^^^
405 412
406The diagnostic self-test checks the adapter's basic functionality as well as 413The diagnostic self-test checks the adapter's basic functionality as well as
407its ability to communicate across the ISA bus based on the system resources 414its ability to communicate across the ISA bus based on the system resources
408assigned during hardware configuration. The following tests are performed:415assigned during hardware configuration. The following tests are performed:
409 416
410 * IO Register Read/Write Test417 * 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
412 accessed in IO mode, and that the IO base address is correct.420 accessed in IO mode, and that the IO base address is correct.
413 421
414 * Shared Memory Test422 * Shared Memory Test
415 The Shared Memory test insures the CS8900/20 can be accessed in memory 423
416 mode and that the range of memory addresses assigned does not conflict 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
417 with other devices in the system.426 with other devices in the system.
418 427
419 * Interrupt Test428 * Interrupt Test
429
420 The Interrupt test insures there are no conflicts with the assigned IRQ430 The Interrupt test insures there are no conflicts with the assigned IRQ
421 signal.431 signal.
422 432
423 * EEPROM Test433 * EEPROM Test
434
424 The EEPROM test insures the EEPROM can be read.435 The EEPROM test insures the EEPROM can be read.
425 436
426 * Chip RAM Test437 * Chip RAM Test
438
427 The Chip RAM test insures the 4K of memory internal to the CS8900/20 is439 The Chip RAM test insures the 4K of memory internal to the CS8900/20 is
428 working properly.440 working properly.
429 441
430 * Internal Loop-back Test442 * Internal Loop-back Test
431 The Internal Loop Back test insures the adapter's transmitter and 443
432 receiver are operating properly. If this test fails, make sure the 444 The Internal Loop Back test insures the adapter's transmitter and
433 adapter's cable is connected to the network (check for LED activity for 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
434 example).447 example).
435 448
436 * Boot PROM Test449 * Boot PROM Test
450
437 The Boot PROM test insures the Boot PROM is present, and can be read.451 The Boot PROM test insures the Boot PROM is present, and can be read.
438 Failure indicates the Boot PROM was not successfully read due to a452 Failure indicates the Boot PROM was not successfully read due to a
439 hardware problem or due to a conflicts on the Boot PROM address453 hardware problem or due to a conflicts on the Boot PROM address
440 assignment. (Test only applies if the adapter is configured to use the454 assignment. (Test only applies if the adapter is configured to use the
441 Boot PROM option.)455 Boot PROM option.)
442 456
443Failure of a test item indicates a possible system resource conflict with 457Failure of a test item indicates a possible system resource conflict with
444another device on the ISA bus. In this case, you should use the Manual Setup 458another device on the ISA bus. In this case, you should use the Manual Setup
445option to reconfigure the adapter by selecting a different value for the system459option to reconfigure the adapter by selecting a different value for the system
446resource that failed.460resource that failed.
447 461
448 462
4495.2.2 DIAGNOSTIC NETWORK TEST4635.2.2. Diagnostic Network Test
464^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
450 465
451The Diagnostic Network Test verifies a working network connection by 466The Diagnostic Network Test verifies a working network connection by
452transferring data between two CS8900/20 adapters installed in different PCs 467transferring data between two CS8900/20 adapters installed in different PCs
453on the same network. (Note: the diagnostic network test should not be run 468on the same network. (Note: the diagnostic network test should not be run
454between two nodes across a router.) 469between two nodes across a router.)
455 470
456This test requires that each of the two PCs have a CS8900/20-based adapter471This test requires that each of the two PCs have a CS8900/20-based adapter
457installed and have the CS8900/20 Setup Utility running. The first PC is 472installed and have the CS8900/20 Setup Utility running. The first PC is
458configured as a Responder and the other PC is configured as an Initiator. 473configured as a Responder and the other PC is configured as an Initiator.
459Once the Initiator is started, it sends data frames to the Responder which 474Once the Initiator is started, it sends data frames to the Responder which
460returns the frames to the Initiator.475returns the frames to the Initiator.
461 476
462The total number of frames received and transmitted are displayed on the 477The total number of frames received and transmitted are displayed on the
463Initiator's display, along with a count of the number of frames received and 478Initiator's display, along with a count of the number of frames received and
464transmitted OK or in error. The test can be terminated anytime by the user at 479transmitted OK or in error. The test can be terminated anytime by the user at
465either PC.480either PC.
466 481
467To setup the Diagnostic Network Test:482To setup the Diagnostic Network Test:
468 483
469 1.) Select a PC with a CS8900/20-based adapter and a known working network484 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 485 connection to act as the Responder. Run the CS8900/20 Setup Utility
471 and select 'Diagnostics -> Network Test -> Responder' from the main 486 and select 'Diagnostics -> Network Test -> Responder' from the main
472 menu. Hit ENTER to start the Responder.487 menu. Hit ENTER to start the Responder.
473 488
474 2.) Return to the PC with the CS8900/20-based adapter you want to test and489 2. Return to the PC with the CS8900/20-based adapter you want to test and
475 start the CS8900/20 Setup Utility. 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.
476 494
477 3.) From the main menu, Select 'Diagnostic -> Network Test -> Initiator'.
478 Hit ENTER to start the test.
479
480You may stop the test on the Initiator at any time while allowing the Responder495You may stop the test on the Initiator at any time while allowing the Responder
481to continue running. In this manner, you can move to additional PCs and test 496to continue running. In this manner, you can move to additional PCs and test
482them by starting the Initiator on another PC without having to stop/start the 497them by starting the Initiator on another PC without having to stop/start the
483Responder.498Responder.
484
485 499
486 500
4875.3 USING THE ADAPTER'S LEDs
488 501
489The 2 and 3-media adapters have two LEDs visible on the back end of the board 5025.3. Using the Adapter's LEDs
490located near the 10Base-T connector. 503-----------------------------
504
505The 2 and 3-media adapters have two LEDs visible on the back end of the board
506located near the 10Base-T connector.
491 507
492Link Integrity LED: A "steady" ON of the green LED indicates a valid 10Base-T 508Link Integrity LED: A "steady" ON of the green LED indicates a valid 10Base-T
493connection. (Only applies to 10Base-T. The green LED has no significance for509connection. (Only applies to 10Base-T. The green LED has no significance for
494a 10Base-2 or AUI connection.)510a 10Base-2 or AUI connection.)
495 511
496TX/RX LED: The yellow LED lights briefly each time the adapter transmits or 512TX/RX LED: The yellow LED lights briefly each time the adapter transmits or
497receives data. (The yellow LED will appear to "flicker" on a typical network.)513receives data. (The yellow LED will appear to "flicker" on a typical network.)
498 514
499 515
5005.4 RESOLVING I/O CONFLICTS5165.4. Resolving I/O Conflicts
517----------------------------
501 518
502An IO conflict occurs when two or more adapter use the same ISA resource (IO 519An IO conflict occurs when two or more adapter use the same ISA resource (IO
503address, memory address or IRQ). You can usually detect an IO conflict in one 520address, memory address or IRQ). You can usually detect an IO conflict in one
504of four ways after installing and or configuring the CS8900/20-based adapter:521of four ways after installing and or configuring the CS8900/20-based adapter:
505 522
506 1.) The system does not boot properly (or at all).523 1. The system does not boot properly (or at all).
507 524
508 2.) The driver cannot communicate with the adapter, reporting an "Adapter525 2. The driver cannot communicate with the adapter, reporting an "Adapter
509 not found" error message.526 not found" error message.
510 527
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.
512 529
513 4.) If you have configured the adapter to run in memory mode but the driver530 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 a531 reports it is using IO mode when loading, this is an indication of a
515 memory address conflict.532 memory address conflict.
516 533
517If an IO conflict occurs, run the CS8900/20 Setup Utility and perform a 534If an IO conflict occurs, run the CS8900/20 Setup Utility and perform a
518diagnostic self-test. Normally, the ISA resource in conflict will fail the 535diagnostic self-test. Normally, the ISA resource in conflict will fail the
519self-test. If so, reconfigure the adapter selecting another choice for the 536self-test. If so, reconfigure the adapter selecting another choice for the
520resource in conflict. Run the diagnostics again to check for further IO 537resource in conflict. Run the diagnostics again to check for further IO
521conflicts.538conflicts.
522 539
523In some cases, such as when the PC will not boot, it may be necessary to remove540In some cases, such as when the PC will not boot, it may be necessary to remove
524the adapter and reconfigure it by installing it in another PC to run the 541the adapter and reconfigure it by installing it in another PC to run the
525CS8900/20 Setup Utility. Once reinstalled in the target system, run the 542CS8900/20 Setup Utility. Once reinstalled in the target system, run the
526diagnostics self-test to ensure the new configuration is free of conflicts 543diagnostics self-test to ensure the new configuration is free of conflicts
527before loading the driver again.544before loading the driver again.
528 545
529When manually configuring the adapter, keep in mind the typical ISA system 546When manually configuring the adapter, keep in mind the typical ISA system
530resource usage as indicated in the tables below.547resource usage as indicated in the tables below.
531 548
532I/O Address Device IRQ Device549::
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)
542Memory Address Device 13 Math Coprocessor
543-------------- --------------------- 14 Hard Disk controller
544A000-BFFF EGA Graphics Adapter
545A000-C7FF VGA Graphics Adapter
546B000-BFFF Mono Graphics Adapter
547B800-BFFF Color Graphics Adapter
548E000-FFFF AT BIOS
549 550
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
550 568
551 569
552 570
5536.0 TECHNICAL SUPPORT
554===============================================================================
555 571
5566.1 CONTACTING CIRRUS LOGIC'S TECHNICAL SUPPORT5726. Technical Support
573====================
557 574
558Cirrus Logic's CS89XX Technical Application Support can be reached at:5756.1. Contacting Cirrus Logic's Technical Support
576------------------------------------------------
559 577
560Telephone :(800) 888-5016 (from inside U.S. and Canada)578Cirrus Logic's CS89XX Technical Application Support can be reached at::
561 :(512) 442-7555 (from outside the U.S. and Canada)
562Fax :(512) 912-3871
563Email :ethernet@crystal.cirrus.com
564WWW :http://www.cirrus.com
565 579
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
566 585
5676.2 INFORMATION REQUIRED BEFORE CONTACTING TECHNICAL SUPPORT
568 586
569Before contacting Cirrus Logic for technical support, be prepared to provide as 5876.2. Information Required before Contacting Technical Support
570Much of the following information as possible. 588-------------------------------------------------------------
589
590Before contacting Cirrus Logic for technical support, be prepared to provide as
591Much of the following information as possible.
571 592
5721.) Adapter type (CRD8900, CDB8900, CDB8920, etc.)5931.) Adapter type (CRD8900, CDB8900, CDB8920, etc.)
573 594
@@ -575,7 +596,7 @@ Much of the following information as possible. · 1 unmodified line
575 596
576 * IO Base, Memory Base, IO or memory mode enabled, IRQ, DMA channel597 * IO Base, Memory Base, IO or memory mode enabled, IRQ, DMA channel
577 * Plug and Play enabled/disabled (CS8920-based adapters only)598 * 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).
579 600
5803.) PC System's Configuration6013.) PC System's Configuration
581 602
@@ -590,35 +611,37 @@ Much of the following information as possible. · 8 unmodified lines
590 611
591 * CS89XX driver and version612 * CS89XX driver and version
592 * Your network operating system and version613 * Your network operating system and version
593 * Your system's OS version 614 * Your system's OS version
594 * Version of all protocol support files615 * Version of all protocol support files
595 616
5965.) Any Error Message displayed.6175.) Any Error Message displayed.
597 618
598 619
599 620
6006.3 OBTAINING THE LATEST DRIVER VERSION6216.3 Obtaining the Latest Driver Version
622---------------------------------------
601 623
602You can obtain the latest CS89XX drivers and support software from Cirrus Logic's 624You can obtain the latest CS89XX drivers and support software from Cirrus Logic's
603Web site. You can also contact Cirrus Logic's Technical Support (email:625Web site. You can also contact Cirrus Logic's Technical Support (email:
604ethernet@crystal.cirrus.com) and request that you be registered for automatic 626ethernet@crystal.cirrus.com) and request that you be registered for automatic
605software-update notification.627software-update notification.
606 628
607Cirrus Logic maintains a web page at http://www.cirrus.com with the629Cirrus Logic maintains a web page at http://www.cirrus.com with the
608latest drivers and technical publications.630latest drivers and technical publications.
609 631
610 632
6116.4 Current maintainer6336.4. Current maintainer
634-----------------------
612 635
613In February 2000 the maintenance of this driver was assumed by Andrew636In February 2000 the maintenance of this driver was assumed by Andrew
614Morton.637Morton.
615 638
6166.5 Kernel module parameters6396.5 Kernel module parameters
640----------------------------
617 641
618For use in embedded environments with no cs89x0 EEPROM, the kernel boot642For use in embedded environments with no cs89x0 EEPROM, the kernel boot
619parameter `cs89x0_media=' has been implemented. Usage is:643parameter ``cs89x0_media=`` has been implemented. Usage is::
620 644
621 cs89x0_media=rj45 or645 cs89x0_media=rj45 or
622 cs89x0_media=aui or646 cs89x0_media=aui or
623 cs89x0_media=bnc647 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=====================
1DM9000 Network driver4DM9000 Network driver
2=====================5=====================
3 6
4Copyright 2008 Simtec Electronics,7Copyright 2008 Simtec Electronics,
8
5 Ben Dooks <ben@simtec.co.uk> <ben-linux@fluff.org>9 Ben Dooks <ben@simtec.co.uk> <ben-linux@fluff.org>
6 10
7 11
@@ -30,9 +34,9 @@ These resources should be specified in that order, as the ordering of the · 22 unmodified lines
30two address regions is important (the driver expects these to be address34two address regions is important (the driver expects these to be address
31and then data).35and then data).
32 36
33An example from arch/arm/mach-s3c2410/mach-bast.c is:37An example from arch/arm/mach-s3c2410/mach-bast.c is::
34 38
35static struct resource bast_dm9k_resource[] = {39 static struct resource bast_dm9k_resource[] = {
36 [0] = {40 [0] = {
37 .start = S3C2410_CS5 + BAST_PA_DM9000,41 .start = S3C2410_CS5 + BAST_PA_DM9000,
38 .end = S3C2410_CS5 + BAST_PA_DM9000 + 3,42 .end = S3C2410_CS5 + BAST_PA_DM9000 + 3,
@@ -48,14 +52,14 @@ static struct resource bast_dm9k_resource[] = { · 9 unmodified lines
48 .end = IRQ_DM9000,52 .end = IRQ_DM9000,
49 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,53 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
50 }54 }
51};55 };
52 56
53static struct platform_device bast_device_dm9k = {57 static struct platform_device bast_device_dm9k = {
54 .name = "dm9000",58 .name = "dm9000",
55 .id = 0,59 .id = 0,
56 .num_resources = ARRAY_SIZE(bast_dm9k_resource),60 .num_resources = ARRAY_SIZE(bast_dm9k_resource),
57 .resource = bast_dm9k_resource,61 .resource = bast_dm9k_resource,
58};62 };
59 63
60Note the setting of the IRQ trigger flag in bast_dm9k_resource[2].flags,64Note the setting of the IRQ trigger flag in bast_dm9k_resource[2].flags,
61as this will generate a warning if it is not present. The trigger from65as 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
64 68
65This shows a typical platform device, without the optional configuration69This shows a typical platform device, without the optional configuration
66platform data supplied. The next example uses the same resources, but adds70platform data supplied. The next example uses the same resources, but adds
67the optional platform data to pass extra configuration data:71the optional platform data to pass extra configuration data::
68 72
69static struct dm9000_plat_data bast_dm9k_platdata = {73 static struct dm9000_plat_data bast_dm9k_platdata = {
70 .flags = DM9000_PLATF_16BITONLY,74 .flags = DM9000_PLATF_16BITONLY,
71};75 };
72 76
73static struct platform_device bast_device_dm9k = {77 static struct platform_device bast_device_dm9k = {
74 .name = "dm9000",78 .name = "dm9000",
75 .id = 0,79 .id = 0,
76 .num_resources = ARRAY_SIZE(bast_dm9k_resource),80 .num_resources = ARRAY_SIZE(bast_dm9k_resource),
@@ -78,7 +82,7 @@ static struct platform_device bast_device_dm9k = { · 1 unmodified line
78 .dev = {82 .dev = {
79 .platform_data = &bast_dm9k_platdata,83 .platform_data = &bast_dm9k_platdata,
80 }84 }
81};85 };
82 86
83The platform data is defined in include/linux/dm9000.h and described below.87The platform data is defined in include/linux/dm9000.h and described below.
84 88
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===================================
4DEC EtherWORKS Ethernet De4x5 cards
5===================================
6
1 Originally, this driver was written for the Digital Equipment7 Originally, this driver was written for the Digital Equipment
2 Corporation series of EtherWORKS Ethernet cards:8 Corporation series of EtherWORKS Ethernet cards:
3 9
4 DE425 TP/COAX EISA10 - DE425 TP/COAX EISA
5 DE434 TP PCI11 - DE434 TP PCI
6 DE435 TP/COAX/AUI PCI12 - DE435 TP/COAX/AUI PCI
7 DE450 TP/COAX/AUI PCI13 - DE450 TP/COAX/AUI PCI
8 DE500 10/100 PCI Fasternet14 - DE500 10/100 PCI Fasternet
9 15
10 but it will now attempt to support all cards which conform to the16 but it will now attempt to support all cards which conform to the
11 Digital Semiconductor SROM Specification. The driver currently17 Digital Semiconductor SROM Specification. The driver currently
12 recognises the following chips:18 recognises the following chips:
13 19
14 DC21040 (no SROM) 20 - DC21040 (no SROM)
15 DC21041[A] 21 - DC21041[A]
16 DC21140[A] 22 - DC21140[A]
17 DC21142 23 - DC21142
18 DC21143 24 - DC21143
19 25
20 So far the driver is known to work with the following cards:26 So far the driver is known to work with the following cards:
21 27
22 KINGSTON28 - KINGSTON
23 Linksys29 - Linksys
24 ZNYX34230 - ZNYX342
25 SMC843231 - SMC8432
26 SMC9332 (w/new SROM)32 - SMC9332 (w/new SROM)
27 ZNYX31[45]33 - ZNYX31[45]
28 ZNYX346 10/100 4 port (can act as a 10/100 bridge!) 34 - ZNYX346 10/100 4 port (can act as a 10/100 bridge!)
29 35
30 The driver has been tested on a relatively busy network using the DE425,36 The driver has been tested on a relatively busy network using the DE425,
31 DE434, DE435 and DE500 cards and benchmarked with 'ttcp': it transferred37 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::
33 39
34 TCP UDP40 TCP UDP
35 TX RX TX RX41 TX RX TX RX
36 DE425 1030k 997k 1170k 1128k42 DE425 1030k 997k 1170k 1128k
37 DE434 1063k 995k 1170k 1125k43 DE434 1063k 995k 1170k 1125k
38 DE435 1063k 995k 1170k 1125k44 DE435 1063k 995k 1170k 1125k
39 DE500 1063k 998k 1170k 1125k in 10Mb/s mode45 DE500 1063k 998k 1170k 1125k in 10Mb/s mode
40 46
41 All values are typical (in kBytes/sec) from a sample of 4 for each47 All values are typical (in kBytes/sec) from a sample of 4 for each
42 measurement. Their error is +/-20k on a quiet (private) network and also48 measurement. Their error is +/-20k on a quiet (private) network and also
43 depend on what load the CPU has.49 depend on what load the CPU has.
44 50
45 =========================================================================51----------------------------------------------------------------------------
46 52
47 The ability to load this driver as a loadable module has been included53 The ability to load this driver as a loadable module has been included
48 and used extensively during the driver development (to save those long54 and used extensively during the driver development (to save those long
@@ -55,31 +61,33 @@ · 6 unmodified lines
55 61
56 0) have a copy of the loadable modules code installed on your system.62 0) have a copy of the loadable modules code installed on your system.
57 1) copy de4x5.c from the /linux/drivers/net directory to your favourite63 1) copy de4x5.c from the /linux/drivers/net directory to your favourite
58 temporary directory.64 temporary directory.
59 2) for fixed autoprobes (not recommended), edit the source code near65 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 when66 line 5594 to reflect the I/O address you're using, or assign these when
61 loading by:67 loading by::
62 68
63 insmod de4x5 io=0xghh where g = bus number69 insmod de4x5 io=0xghh where g = bus number
64 hh = device number 70 hh = device number
65 71
66 NB: autoprobing for modules is now supported by default. You may just72 .. note::
67 use:
68 73
69 insmod de4x574 autoprobing for modules is now supported by default. You may just
75 use::
70 76
71 to load all available boards. For a specific board, still use77 insmod de4x5
78
79 to load all available boards. For a specific board, still use
72 the 'io=?' above.80 the 'io=?' above.
73 3) compile de4x5.c, but include -DMODULE in the command line to ensure81 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).
75 4) if you are wanting to add a new card, goto 5. Otherwise, recompile a83 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.
77 5) insmod de4x5 [io=0xghh]85 5) insmod de4x5 [io=0xghh]
78 6) run the net startup bits for your new eth?? interface(s) manually 86 6) run the net startup bits for your new eth?? interface(s) manually
79 (usually /etc/rc.inet[12] at boot time). 87 (usually /etc/rc.inet[12] at boot time).
80 7) enjoy!88 7) enjoy!
81 89
82 To unload a module, turn off the associated interface(s) 90 To unload a module, turn off the associated interface(s)
83 'ifconfig eth?? down' then 'rmmod de4x5'.91 'ifconfig eth?? down' then 'rmmod de4x5'.
84 92
85 Automedia detection is included so that in principle you can disconnect93 Automedia detection is included so that in principle you can disconnect
@@ -90,7 +98,7 @@ · 4 unmodified lines
90 By default, the driver will now autodetect any DECchip based card.98 By default, the driver will now autodetect any DECchip based card.
91 Should you have a need to restrict the driver to DIGITAL only cards, you99 Should you have a need to restrict the driver to DIGITAL only cards, you
92 can compile with a DEC_ONLY define, or if loading as a module, use the100 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.
94 102
95 I've changed the timing routines to use the kernel timer and scheduling103 I've changed the timing routines to use the kernel timer and scheduling
96 functions so that the hangs and other assorted problems that occurred104 functions so that the hangs and other assorted problems that occurred
@@ -158,18 +166,21 @@ · 61 unmodified lines
158 either at the end of the parameter list or with another board name. The166 either at the end of the parameter list or with another board name. The
159 following parameters are allowed:167 following parameters are allowed:
160 168
161 fdx for full duplex169 ========= ===============================================
162 autosense to set the media/speed; with the following 170 fdx for full duplex
163 sub-parameters:171 autosense to set the media/speed; with the following
172 sub-parameters:
164 TP, TP_NW, BNC, AUI, BNC_AUI, 100Mb, 10Mb, AUTO173 TP, TP_NW, BNC, AUI, BNC_AUI, 100Mb, 10Mb, AUTO
174 ========= ===============================================
165 175
166 Case sensitivity is important for the sub-parameters. They *must* be176 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'.
168 180
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.::
170 182
171 For a compiled in driver, in linux/drivers/net/CONFIG, place e.g.183 DE4X5_OPTS = -DDE4X5_PARM='"eth0:fdx autosense=AUI eth2:autosense=TP"'
172 DE4X5_OPTS = -DDE4X5_PARM='"eth0:fdx autosense=AUI eth2:autosense=TP"'
173 184
174 Yes, I know full duplex isn't permissible on BNC or AUI; they're just185 Yes, I know full duplex isn't permissible on BNC or AUI; they're just
175 examples. By default, full duplex is turned off and AUTO is the default186 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==============================================================
4Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver for Linux
5==============================================================
6
1Note: This driver doesn't have a maintainer.7Note: This driver doesn't have a maintainer.
2 8
3Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver for Linux.
4 9
5This program is free software; you can redistribute it and/or10This program is free software; you can redistribute it and/or
6modify it under the terms of the GNU General Public License11modify it under the terms of the GNU General Public License
@@ -16,29 +21,29 @@ GNU General Public License for more details. · 9 unmodified lines
16This driver provides kernel support for Davicom DM9102(A)/DM9132/DM9801 ethernet cards ( CNET21This driver provides kernel support for Davicom DM9102(A)/DM9132/DM9801 ethernet cards ( CNET
1710/100 ethernet cards uses Davicom chipset too, so this driver supports CNET cards too ).If you2210/100 ethernet cards uses Davicom chipset too, so this driver supports CNET cards too ).If you
18didn't compile this driver as a module, it will automatically load itself on boot and print a23didn't compile this driver as a module, it will automatically load itself on boot and print a
19line similar to :24line similar to::
20 25
21 dmfe: Davicom DM9xxx net driver, version 1.36.4 (2002-01-17)26 dmfe: Davicom DM9xxx net driver, version 1.36.4 (2002-01-17)
22 27
23If you compiled this driver as a module, you have to load it on boot.You can load it with command :28If you compiled this driver as a module, you have to load it on boot.You can load it with command::
24 29
25 insmod dmfe30 insmod dmfe
26 31
27This way it will autodetect the device mode.This is the suggested way to load the module.Or you can pass32This way it will autodetect the device mode.This is the suggested way to load the module.Or you can pass
28a mode= setting to module while loading, like :33a mode= setting to module while loading, like::
29 34
30 insmod dmfe mode=0 # Force 10M Half Duplex35 insmod dmfe mode=0 # Force 10M Half Duplex
31 insmod dmfe mode=1 # Force 100M Half Duplex36 insmod dmfe mode=1 # Force 100M Half Duplex
32 insmod dmfe mode=4 # Force 10M Full Duplex37 insmod dmfe mode=4 # Force 10M Full Duplex
33 insmod dmfe mode=5 # Force 100M Full Duplex38 insmod dmfe mode=5 # Force 100M Full Duplex
34 39
35Next you should configure your network interface with a command similar to :40Next you should configure your network interface with a command similar to::
36 41
37 ifconfig eth0 172.22.3.1842 ifconfig eth0 172.22.3.18
38 ^^^^^^^^^^^43 ^^^^^^^^^^^
39 Your IP Address44 Your IP Address
40 45
41Then you may have to modify the default routing table with command :46Then you may have to modify the default routing table with command::
42 47
43 route add default eth048 route add default eth0
44 49
@@ -48,10 +53,10 @@ Now your ethernet card should be up and running. · 3 unmodified lines
48 53
49TODO:54TODO:
50 55
51Implement pci_driver::suspend() and pci_driver::resume() power management methods.56- Implement pci_driver::suspend() and pci_driver::resume() power management methods.
52Check on 64 bit boxes.57- Check on 64 bit boxes.
53Check and fix on big endian boxes.58- Check and fix on big endian boxes.
54Test and make sure PCI latency is now correct for all cases.59- Test and make sure PCI latency is now correct for all cases.
55 60
56 61
57Authors:62Authors:
@@ -60,7 +65,7 @@ Sten Wang <sten_wang@davicom.com.tw > : Original Author · 2 unmodified lines
60 65
61Contributors:66Contributors:
62 67
63Marcelo Tosatti <marcelo@conectiva.com.br>68- Marcelo Tosatti <marcelo@conectiva.com.br>
64Alan Cox <alan@lxorguk.ukuu.org.uk>69- Alan Cox <alan@lxorguk.ukuu.org.uk>
65Jeff Garzik <jgarzik@pobox.com>70- Jeff Garzik <jgarzik@pobox.com>
66Vojtech Pavlik <vojtech@suse.cz>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
1 2
2 D-Link DL2000-based Gigabit Ethernet Adapter Installation3=========================================================
3 for Linux4D-Link DL2000-based Gigabit Ethernet Adapter Installation
4 May 23, 20025=========================================================
6
7May 23, 2002
8
9.. Contents
5 10
6Contents
7========
8 - Compatibility List11 - Compatibility List
9 - Quick Install12 - Quick Install
10 - Compiling the Driver13 - Compiling the Driver
@@ -15,12 +18,13 @@ Contents · 4 unmodified lines
15 18
16 19
17Compatibility List20Compatibility List
18=================21==================
22
19Adapter Support:23Adapter Support:
20 24
21D-Link DGE-550T Gigabit Ethernet Adapter.25- D-Link DGE-550T Gigabit Ethernet Adapter.
22D-Link DGE-550SX Gigabit Ethernet Adapter.26- D-Link DGE-550SX Gigabit Ethernet Adapter.
23D-Link DL2000-based Gigabit Ethernet Adapter.27- D-Link DL2000-based Gigabit Ethernet Adapter.
24 28
25 29
26The driver support Linux kernel 2.4.7 later. We had tested it30The driver support Linux kernel 2.4.7 later. We had tested it
@@ -34,28 +38,32 @@ on the environments below. · 7 unmodified lines
34 38
35Quick Install39Quick Install
36=============40=============
37Install linux driver as following command:41Install 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
38 48
391. make all
402. insmod dl2k.ko
413. ifconfig eth0 up 10.xxx.xxx.xxx netmask 255.0.0.0
42 ^^^^^^^^^^^^^^^\ ^^^^^^^^\
43 IP NETMASK
44Now eth0 should active, you can test it by "ping" or get more information by49Now eth0 should active, you can test it by "ping" or get more information by
45"ifconfig". If tested ok, continue the next step.50"ifconfig". If tested ok, continue the next step.
46 51
474. cp dl2k.ko /lib/modules/`uname -r`/kernel/drivers/net524. ``cp dl2k.ko /lib/modules/`uname -r`/kernel/drivers/net``
485. Add the following line to /etc/modprobe.d/dl2k.conf:535. Add the following line to /etc/modprobe.d/dl2k.conf::
54
49 alias eth0 dl2k55 alias eth0 dl2k
506. Run depmod to updated module indexes.56
517. Run "netconfig" or "netconf" to create configuration script ifcfg-eth0576. Run ``depmod`` to updated module indexes.
587. Run ``netconfig`` or ``netconf`` to create configuration script ifcfg-eth0
52 located at /etc/sysconfig/network-scripts or create it manually.59 located at /etc/sysconfig/network-scripts or create it manually.
60
53 [see - Configuration Script Sample]61 [see - Configuration Script Sample]
548. Driver will automatically load and configure at next boot time.628. Driver will automatically load and configure at next boot time.
55 63
56Compiling the Driver64Compiling the Driver
57====================65====================
58 In Linux, NIC drivers are most commonly configured as loadable modules.66In Linux, NIC drivers are most commonly configured as loadable modules.
59The approach of building a monolithic kernel has become obsolete. The driver67The approach of building a monolithic kernel has become obsolete. The driver
60can be compiled as part of a monolithic kernel, but is strongly discouraged.68can be compiled as part of a monolithic kernel, but is strongly discouraged.
61The remainder of this section assumes the driver is built as a loadable module.69The 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
73CD-ROM drive81CD-ROM drive
74------------82------------
75 83
76[root@XXX /] mkdir cdrom84::
77[root@XXX /] mount -r -t iso9660 -o conv=auto /dev/cdrom /cdrom85
78[root@XXX /] cd root86 [root@XXX /] mkdir cdrom
79[root@XXX /root] mkdir dl2k87 [root@XXX /] mount -r -t iso9660 -o conv=auto /dev/cdrom /cdrom
80[root@XXX /root] cd dl2k88 [root@XXX /] cd root
81[root@XXX dl2k] cp /cdrom/linux/dl2k.tgz /root/dl2k89 [root@XXX /root] mkdir dl2k
82[root@XXX dl2k] tar xfvz dl2k.tgz90 [root@XXX /root] cd dl2k
83[root@XXX dl2k] make all91 [root@XXX dl2k] cp /cdrom/linux/dl2k.tgz /root/dl2k
92 [root@XXX dl2k] tar xfvz dl2k.tgz
93 [root@XXX dl2k] make all
84 94
85Floppy disc drive95Floppy disc drive
86-----------------96-----------------
87 97
88[root@XXX /] cd root98::
89[root@XXX /root] mkdir dl2k99
90[root@XXX /root] cd dl2k100 [root@XXX /] cd root
91[root@XXX dl2k] mcopy a:/linux/dl2k.tgz /root/dl2k101 [root@XXX /root] mkdir dl2k
92[root@XXX dl2k] tar xfvz dl2k.tgz102 [root@XXX /root] cd dl2k
93[root@XXX dl2k] make all103 [root@XXX dl2k] mcopy a:/linux/dl2k.tgz /root/dl2k
104 [root@XXX dl2k] tar xfvz dl2k.tgz
105 [root@XXX dl2k] make all
94 106
95Installing the Driver107Installing the Driver
96=====================108=====================
97 109
98 Manual Installation110Manual Installation
99 -------------------111-------------------
112
100 Once the driver has been compiled, it must be loaded, enabled, and bound113 Once the driver has been compiled, it must be loaded, enabled, and bound
101 to a protocol stack in order to establish network connectivity. To load a114 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
103 122
104 insmod dl2k.o123---------------------------------------------------------
105 124
106 or125 example::
107 126
108 insmod dl2k.o <optional parameter> ; add parameter127 insmod dl2k.o media=100mbps_hd
109 128
110 ===============================================================129 or::
111 example: insmod dl2k.o media=100mbps_hd130
112 or insmod dl2k.o media=3131 insmod dl2k.o media=3
113 or insmod dl2k.o media=3,2 ; for 2 cards132
114 ===============================================================133 or::
134
135 insmod dl2k.o media=3,2 ; for 2 cards
136
137---------------------------------------------------------
115 138
116 Please reference the list of the command line parameters supported by139 Please reference the list of the command line parameters supported by
117 the Linux device driver below.140 the Linux device driver below.
118 141
119 The insmod command only loads the driver and gives it a name of the form142 The insmod command only loads the driver and gives it a name of the form
120 eth0, eth1, etc. To bring the NIC into an operational state,143 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::
122 145
123 ifconfig eth0 up146 ifconfig eth0 up
124 147
125 Finally, to bind the driver to the active protocol (e.g., TCP/IP with148 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::
127 150
128 ifup eth0151 ifup eth0
129 152
130 Note that this is meaningful only if the system can find a configuration153 Note that this is meaningful only if the system can find a configuration
131 script that contains the necessary network information. A sample will be154 script that contains the necessary network information. A sample will be
132 given in the next paragraph.155 given in the next paragraph.
133 156
134 The commands to unload a driver are as follows:157 The commands to unload a driver are as follows::
135 158
136 ifdown eth0159 ifdown eth0
137 ifconfig eth0 down160 ifconfig eth0 down
138 rmmod dl2k.o161 rmmod dl2k.o
139 162
140 The following are the commands to list the currently loaded modules and163 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::
142 165
143 lsmod166 lsmod
144 ifconfig167 ifconfig
145 168
146 169
147 Automated Installation170Automated Installation
148 ----------------------171----------------------
149 This section describes how to install the driver such that it is172 This section describes how to install the driver such that it is
150 automatically loaded and configured at boot time. The following description173 automatically loaded and configured at boot time. The following description
151 is based on a Red Hat 6.0/7.0 distribution, but it can easily be ported to174 is based on a Red Hat 6.0/7.0 distribution, but it can easily be ported to
152 other distributions as well.175 other distributions as well.
153 176
154 Red Hat v6.x/v7.x177Red Hat v6.x/v7.x
155 -----------------178-----------------
156 1. Copy dl2k.o to the network modules directory, typically179 1. Copy dl2k.o to the network modules directory, typically
157 /lib/modules/2.x.x-xx/net or /lib/modules/2.x.x/kernel/drivers/net.180 /lib/modules/2.x.x-xx/net or /lib/modules/2.x.x/kernel/drivers/net.
158 2. Locate the boot module configuration file, most commonly in the181 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::
160 183
161 alias ethx dl2k184 alias ethx dl2k
162 options dl2k <optional parameters>185 options dl2k <optional parameters>
163 186
164 where ethx will be eth0 if the NIC is the only ethernet adapter, eth1 if187 where ethx will be eth0 if the NIC is the only ethernet adapter, eth1 if
165 one other ethernet adapter is installed, etc. Refer to the table in the188 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
180Linux device203Linux device
181driver.204driver.
182 205
183mtu=packet_size - Specifies the maximum packet size. default206
207=============================== ==============================================
208mtu=packet_size Specifies the maximum packet size. default
184 is 1500.209 is 1500.
185 210
186media=media_type - Specifies the media type the NIC operates at.211media=media_type Specifies the media type the NIC operates at.
187 autosense Autosensing active media.212 autosense Autosensing active media.
213
214 =========== =========================
188 10mbps_hd 10Mbps half duplex.215 10mbps_hd 10Mbps half duplex.
189 10mbps_fd 10Mbps full duplex.216 10mbps_fd 10Mbps full duplex.
190 100mbps_hd 100Mbps half duplex.217 100mbps_hd 100Mbps half duplex.
@@ -198,85 +225,90 @@ media=media_type - Specifies the media type the NIC operates at. · 7 unmodified lines
198 4 100Mbps full duplex.225 4 100Mbps full duplex.
199 5 1000Mbps half duplex.226 5 1000Mbps half duplex.
200 6 1000Mbps full duplex.227 6 1000Mbps full duplex.
228 =========== =========================
201 229
202 By default, the NIC operates at autosense.230 By default, the NIC operates at autosense.
203 1000mbps_fd and 1000mbps_hd types are only231 1000mbps_fd and 1000mbps_hd types are only
204 available for fiber adapter.232 available for fiber adapter.
205 233
206vlan=n - Specifies the VLAN ID. If vlan=0, the234vlan=n Specifies the VLAN ID. If vlan=0, the
207 Virtual Local Area Network (VLAN) function is235 Virtual Local Area Network (VLAN) function is
208 disable.236 disable.
209 237
210jumbo=[0|1] - Specifies the jumbo frame support. If jumbo=1,238jumbo=[0|1] Specifies the jumbo frame support. If jumbo=1,
211 the NIC accept jumbo frames. By default, this239 the NIC accept jumbo frames. By default, this
212 function is disabled.240 function is disabled.
213 Jumbo frame usually improve the performance241 Jumbo frame usually improve the performance
214 int gigabit.242 int gigabit.
215 This feature need jumbo frame compatible 243 This feature need jumbo frame compatible
216 remote.244 remote.
217 245
218rx_coalesce=m - Number of rx frame handled each interrupt.246rx_coalesce=m Number of rx frame handled each interrupt.
219rx_timeout=n - Rx DMA wait time for an interrupt. 247rx_timeout=n Rx DMA wait time for an interrupt.
220 If set rx_coalesce > 0, hardware only assert 248 If set rx_coalesce > 0, hardware only assert
221 an interrupt for m frames. Hardware won't 249 an interrupt for m frames. Hardware won't
222 assert rx interrupt until m frames received or250 assert rx interrupt until m frames received or
223 reach timeout of n * 640 nano seconds. 251 reach timeout of n * 640 nano seconds.
224 Set proper rx_coalesce and rx_timeout can 252 Set proper rx_coalesce and rx_timeout can
225 reduce congestion collapse and overload which253 reduce congestion collapse and overload which
226 has been a bottleneck for high speed network.254 has been a bottleneck for high speed network.
227 255
228 For example, rx_coalesce=10 rx_timeout=800.256 For example, rx_coalesce=10 rx_timeout=800.
229 that is, hardware assert only 1 interrupt 257 that is, hardware assert only 1 interrupt
230 for 10 frames received or timeout of 512 us. 258 for 10 frames received or timeout of 512 us.
231 259
232tx_coalesce=n - Number of tx frame handled each interrupt.260tx_coalesce=n Number of tx frame handled each interrupt.
233 Set n > 1 can reduce the interrupts 261 Set n > 1 can reduce the interrupts
234 congestion usually lower performance of262 congestion usually lower performance of
235 high speed network card. Default is 16.263 high speed network card. Default is 16.
236 264
237tx_flow=[1|0] - Specifies the Tx flow control. If tx_flow=0, 265tx_flow=[1|0] Specifies the Tx flow control. If tx_flow=0,
238 the Tx flow control disable else driver266 the Tx flow control disable else driver
239 autodetect.267 autodetect.
240rx_flow=[1|0] - Specifies the Rx flow control. If rx_flow=0, 268rx_flow=[1|0] Specifies the Rx flow control. If rx_flow=0,
241 the Rx flow control enable else driver269 the Rx flow control enable else driver
242 autodetect.270 autodetect.
271=============================== ==============================================
243 272
244 273
245Configuration Script Sample274Configuration Script Sample
246===========================275===========================
247Here is a sample of a simple configuration script:276Here is a sample of a simple configuration script::
248 277
249DEVICE=eth0278 DEVICE=eth0
250USERCTL=no279 USERCTL=no
251ONBOOT=yes280 ONBOOT=yes
252POOTPROTO=none281 POOTPROTO=none
253BROADCAST=207.200.5.255282 BROADCAST=207.200.5.255
254NETWORK=207.200.5.0283 NETWORK=207.200.5.0
255NETMASK=255.255.255.0284 NETMASK=255.255.255.0
256IPADDR=207.200.5.2285 IPADDR=207.200.5.2
257 286
258 287
259Troubleshooting288Troubleshooting
260===============289===============
261Q1. Source files contain ^ M behind every line.290Q1. Source files contain ^ M behind every line.
262 Make sure all files are Unix file format (no LF). Try the following291
263 shell command to convert files.292 Make sure all files are Unix file format (no LF). Try the following
293 shell command to convert files::
264 294
265 cat dl2k.c | col -b > dl2k.tmp295 cat dl2k.c | col -b > dl2k.tmp
266 mv dl2k.tmp dl2k.c296 mv dl2k.tmp dl2k.c
267 297
268 OR298 OR::
269 299
270 cat dl2k.c | tr -d "\r" > dl2k.tmp300 cat dl2k.c | tr -d "\r" > dl2k.tmp
271 mv dl2k.tmp dl2k.c301 mv dl2k.tmp dl2k.c
272 302
273Q2: Could not find header files (*.h) ?303Q2: Could not find header files (``*.h``)?
274 To compile the driver, you need kernel header files. After304
305 To compile the driver, you need kernel header files. After
275 installing the kernel source, the header files are usually located in306 installing the kernel source, the header files are usually located in
276 /usr/src/linux/include, which is the default include directory configured307 /usr/src/linux/include, which is the default include directory configured
277 in Makefile. For some distributions, there is a copy of header files in308 in Makefile. For some distributions, there is a copy of header files in
278 /usr/src/include/linux and /usr/src/include/asm, that you can change the309 /usr/src/include/linux and /usr/src/include/asm, that you can change the
279 INCLUDEDIR in Makefile to /usr/include without installing kernel source.310 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,
281 including those files will make a wrong version driver.313 including those files will make a wrong version driver.
282 314
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==============================
1The QorIQ DPAA Ethernet Driver4The QorIQ DPAA Ethernet Driver
2==============================5==============================
3 6
4Authors:7Authors:
5Madalin Bucur <madalin.bucur@nxp.com>8- Madalin Bucur <madalin.bucur@nxp.com>
6Camelia Groza <camelia.groza@nxp.com>9- Camelia Groza <camelia.groza@nxp.com>
7 10
8Contents11.. Contents
9========
10 12
11 - DPAA Ethernet Overview13 - DPAA Ethernet Overview
12 - DPAA Ethernet Supported SoCs14 - DPAA Ethernet Supported SoCs
@@ -34,7 +36,7 @@ following drivers in the Linux kernel: · 21 unmodified lines
34 - Queue Manager (QMan), Buffer Manager (BMan)36 - Queue Manager (QMan), Buffer Manager (BMan)
35 drivers/soc/fsl/qbman37 drivers/soc/fsl/qbman
36 38
37A simplified view of the dpaa_eth interfaces mapped to FMan MACs:39A simplified view of the dpaa_eth interfaces mapped to FMan MACs::
38 40
39 dpaa_eth /eth0\ ... /ethN\41 dpaa_eth /eth0\ ... /ethN\
40 driver | | | |42 driver | | | |
@@ -42,89 +44,93 @@ A simplified view of the dpaa_eth interfaces mapped to FMan MACs: · 1 unmodified line
42 -Ports / Tx Rx \ ... / Tx Rx \44 -Ports / Tx Rx \ ... / Tx Rx \
43 FMan | | | |45 FMan | | | |
44 -MACs | MAC0 | | MACN |46 -MACs | MAC0 | | MACN |
45 / dtsec0 \ ... / dtsecN \ (or tgec)47 / dtsec0 \ ... / dtsecN \ (or tgec)
46 / \ / \(or memac)48 / \ / \(or memac)
47 --------- -------------- --- -------------- ---------49 --------- -------------- --- -------------- ---------
48 FMan, FMan Port, FMan SP, FMan MURAM drivers50 FMan, FMan Port, FMan SP, FMan MURAM drivers
49 ---------------------------------------------------------51 ---------------------------------------------------------
50 FMan HW blocks: MURAM, MACs, Ports, SP52 FMan HW blocks: MURAM, MACs, Ports, SP
51 ---------------------------------------------------------53 ---------------------------------------------------------
52 54
53The dpaa_eth relation to the QMan, BMan and FMan:55The dpaa_eth relation to the QMan, BMan and FMan::
54 ________________________________56
57 ________________________________
55 dpaa_eth / eth0 \58 dpaa_eth / eth0 \
56 driver / \59 driver / \
57 --------- -^- -^- -^- --- ---------60 --------- -^- -^- -^- --- ---------
58 QMan driver / \ / \ / \ \ / | BMan |61 QMan driver / \ / \ / \ \ / | BMan |
59 |Rx | |Rx | |Tx | |Tx | | driver |62 |Rx | |Rx | |Tx | |Tx | | driver |
60 --------- |Dfl| |Err| |Cnf| |FQs| | |63 --------- |Dfl| |Err| |Cnf| |FQs| | |
61 QMan HW |FQ | |FQ | |FQs| | | | |64 QMan HW |FQ | |FQ | |FQs| | | | |
62 / \ / \ / \ \ / | |65 / \ / \ / \ \ / | |
63 --------- --- --- --- -v- ---------66 --------- --- --- --- -v- ---------
64 | FMan QMI | |67 | FMan QMI | |
65 | FMan HW FMan BMI | BMan HW |68 | FMan HW FMan BMI | BMan HW |
66 ----------------------- --------69 ----------------------- --------
67 70
68where the acronyms used above (and in the code) are:71where the acronyms used above (and in the code) are:
69DPAA = Data Path Acceleration Architecture72
70FMan = DPAA Frame Manager73=============== ===========================================================
71QMan = DPAA Queue Manager74DPAA Data Path Acceleration Architecture
72BMan = DPAA Buffers Manager75FMan DPAA Frame Manager
73QMI = QMan interface in FMan76QMan DPAA Queue Manager
74BMI = BMan interface in FMan77BMan DPAA Buffers Manager
75FMan SP = FMan Storage Profiles78QMI QMan interface in FMan
76MURAM = Multi-user RAM in FMan79BMI BMan interface in FMan
77FQ = QMan Frame Queue80FMan SP FMan Storage Profiles
78Rx Dfl FQ = default reception FQ81MURAM Multi-user RAM in FMan
79Rx Err FQ = Rx error frames FQ82FQ QMan Frame Queue
80Tx Cnf FQ = Tx confirmation FQs83Rx Dfl FQ default reception FQ
81Tx FQs = transmission frame queues84Rx Err FQ Rx error frames FQ
82dtsec = datapath three speed Ethernet controller (10/100/1000 Mbps)85Tx Cnf FQ Tx confirmation FQs
83tgec = ten gigabit Ethernet controller (10 Gbps)86Tx FQs transmission frame queues
84memac = multirate Ethernet MAC (10/100/1000/10000)87dtsec datapath three speed Ethernet controller (10/100/1000 Mbps)
88tgec ten gigabit Ethernet controller (10 Gbps)
89memac multirate Ethernet MAC (10/100/1000/10000)
90=============== ===========================================================
85 91
86DPAA Ethernet Supported SoCs92DPAA Ethernet Supported SoCs
87============================93============================
88 94
89The DPAA drivers enable the Ethernet controllers present on the following SoCs:95The DPAA drivers enable the Ethernet controllers present on the following SoCs:
90 96
91# PPC97PPC
92P102398- P1023
93P204199- P2041
94P3041100- P3041
95P4080101- P4080
96P5020102- P5020
97P5040103- P5040
98T1023104- T1023
99T1024105- T1024
100T1040106- T1040
101T1042107- T1042
102T2080108- T2080
103T4240109- T4240
104B4860110- B4860
105 111
106# ARM112ARM
107LS1043A113- LS1043A
108LS1046A114- LS1046A
109 115
110Configuring DPAA Ethernet in your kernel116Configuring DPAA Ethernet in your kernel
111========================================117========================================
112 118
113To enable the DPAA Ethernet driver, the following Kconfig options are required:119To enable the DPAA Ethernet driver, the following Kconfig options are required::
114 120
115# common for arch/arm64 and arch/powerpc platforms121 # common for arch/arm64 and arch/powerpc platforms
116CONFIG_FSL_DPAA=y122 CONFIG_FSL_DPAA=y
117CONFIG_FSL_FMAN=y123 CONFIG_FSL_FMAN=y
118CONFIG_FSL_DPAA_ETH=y124 CONFIG_FSL_DPAA_ETH=y
119CONFIG_FSL_XGMAC_MDIO=y125 CONFIG_FSL_XGMAC_MDIO=y
120 126
121# for arch/powerpc only127 # for arch/powerpc only
122CONFIG_FSL_PAMU=y128 CONFIG_FSL_PAMU=y
123 129
124# common options needed for the PHYs used on the RDBs130 # common options needed for the PHYs used on the RDBs
125CONFIG_VITESSE_PHY=y131 CONFIG_VITESSE_PHY=y
126CONFIG_REALTEK_PHY=y132 CONFIG_REALTEK_PHY=y
127CONFIG_AQUANTIA_PHY=y133 CONFIG_AQUANTIA_PHY=y
128 134
129DPAA Ethernet Frame Processing135DPAA Ethernet Frame Processing
130==============================136==============================
@@ -167,7 +173,9 @@ classes as follows: · 36 unmodified lines
167 * priorities 8 to 11 - traffic class 2 (medium-high priority)173 * priorities 8 to 11 - traffic class 2 (medium-high priority)
168 * priorities 12 to 15 - traffic class 3 (high priority)174 * priorities 12 to 15 - traffic class 3 (high priority)
169 175
170tc qdisc add dev <int> root handle 1: \176::
177
178 tc qdisc add dev <int> root handle 1: \
171 mqprio num_tc 4 map 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 hw 1179 mqprio num_tc 4 map 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 hw 1
172 180
173DPAA IRQ Affinity and Receive Side Scaling181DPAA 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
201be processed by the same CPU. This ensures intra-flow order preservation209be processed by the same CPU. This ensures intra-flow order preservation
202and workload distribution for multiple traffic flows.210and workload distribution for multiple traffic flows.
203 211
204RSS can be turned off for a certain interface using ethtool, i.e.212RSS can be turned off for a certain interface using ethtool, i.e.::
205 213
206 # ethtool -N fm1-mac9 rx-flow-hash tcp4 ""214 # ethtool -N fm1-mac9 rx-flow-hash tcp4 ""
207 215
208To turn it back on, one needs to set rx-flow-hash for tcp4/6 or udp4/6:216To turn it back on, one needs to set rx-flow-hash for tcp4/6 or udp4/6::
209 217
210 # ethtool -N fm1-mac9 rx-flow-hash udp4 sfdn218 # ethtool -N fm1-mac9 rx-flow-hash udp4 sfdn
211 219
@@ -216,7 +224,7 @@ going to control the rx-flow-hashing for all protocols on that interface. · 4 unmodified lines
216Besides using the FMan Keygen computed hash for spreading traffic on the224Besides using the FMan Keygen computed hash for spreading traffic on the
217128 Rx FQs, the DPAA Ethernet driver also sets the skb hash value when225128 Rx FQs, the DPAA Ethernet driver also sets the skb hash value when
218the NETIF_F_RXHASH feature is on (active by default). This can be turned226the NETIF_F_RXHASH feature is on (active by default). This can be turned
219on or off through ethtool, i.e.:227on or off through ethtool, i.e.::
220 228
221 # ethtool -K fm1-mac9 rx-hashing off229 # ethtool -K fm1-mac9 rx-hashing off
222 # ethtool -k fm1-mac9 | grep hash230 # ethtool -k fm1-mac9 | grep hash
@@ -246,6 +254,7 @@ The following statistics are exported for each interface through ethtool: · 23 unmodified lines
246 - Rx error count per CPU254 - Rx error count per CPU
247 - Rx error count per type255 - Rx error count per type
248 - congestion related statistics:256 - congestion related statistics:
257
249 - congestion status258 - congestion status
250 - time spent in congestion259 - time spent in congestion
251 - number of time the device entered congestion260 - number of time the device entered congestion
@@ -254,7 +263,7 @@ The following statistics are exported for each interface through ethtool: · 2 unmodified lines
254The driver also exports the following information in sysfs:263The driver also exports the following information in sysfs:
255 264
256 - the FQ IDs for each FQ type265 - the FQ IDs for each FQ type
257 /sys/devices/platform/soc/<addr>.fman/<addr>.ethernet/dpaa-ethernet.<id>/net/fm<nr>-mac<nr>/fqids266 /sys/devices/platform/soc/<addr>.fman/<addr>.ethernet/dpaa-ethernet.<id>/net/fm<nr>-mac<nr>/fqids
258 267
259 - the ID of the buffer pool in use268 - 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>/bpids269 /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===========================
1The Gianfar Ethernet Driver4The Gianfar Ethernet Driver
5===========================
2 6
3Author: Andy Fleming <afleming@freescale.com>7:Author: Andy Fleming <afleming@freescale.com>
4Updated: 2005-07-288:Updated: 2005-07-28
5 9
6 10
7CHECKSUM OFFLOADING11Checksum Offloading
12===================
8 13
9The eTSEC controller (first included in parts from late 2005 like14The eTSEC controller (first included in parts from late 2005 like
10the 8548) has the ability to perform TCP, UDP, and IP checksums15the 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
15and TX.20and TX.
16 21
17VLAN22VLAN
23====
18 24
19In order to use VLAN, please consult Linux documentation on25In order to use VLAN, please consult Linux documentation on
20configuring VLANs. The gianfar driver supports hardware insertion and26configuring VLANs. The gianfar driver supports hardware insertion and
21extraction of VLAN headers, but not filtering. Filtering will be27extraction of VLAN headers, but not filtering. Filtering will be
22done by the kernel.28done by the kernel.
23 29
24MULTICASTING30Multicasting
31============
25 32
26The gianfar driver supports using the group hash table on the33The gianfar driver supports using the group hash table on the
27TSEC (and the extended hash table on the eTSEC) for multicast34TSEC (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
29before the hash tables. See Linux documentation on how to join36before the hash tables. See Linux documentation on how to join
30multicast groups.37multicast groups.
31 38
32PADDING39Padding
40=======
33 41
34The gianfar driver supports padding received frames with 2 bytes42The gianfar driver supports padding received frames with 2 bytes
35to align the IP header to a 16-byte boundary, when supported by43to align the IP header to a 16-byte boundary, when supported by
36hardware.44hardware.
37 45
38ETHTOOL46Ethtool
47=======
39 48
40The gianfar driver supports the use of ethtool for many49The gianfar driver supports the use of ethtool for many
41configuration options. You must run ethtool only on currently50configuration options. You must run ethtool only on currently
Documentation/networking/device_drivers/index.rst+24−0
@@ -27,6 +27,30 @@ Contents: · 26 unmodified lines
27 netronome/nfp27 netronome/nfp
28 pensando/ionic28 pensando/ionic
29 stmicro/stmmac29 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
30 54
31.. only:: subproject and html55.. only:: subproject and html
32 56
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
33 - SNMP33 - SNMP
34 34
35Channel Bonding documentation can be found in the Linux kernel source:35Channel Bonding documentation can be found in the Linux kernel source:
36/Documentation/networking/bonding.txt36/Documentation/networking/bonding.rst
37 37
38 38
39Identifying Your Adapter39Identifying 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>
1 3
2Intel(R) PRO/Wireless 2100 Driver for Linux in support of:4===========================================
5Intel(R) PRO/Wireless 2100 Driver for Linux
6===========================================
3 7
4Intel(R) PRO/Wireless 2100 Network Connection8Support for:
5 9
6Copyright (C) 2003-2006, Intel Corporation10- Intel(R) PRO/Wireless 2100 Network Connection
11
12Copyright |copy| 2003-2006, Intel Corporation
7 13
8README.ipw210014README.ipw2100
9 15
10Version: git-1.1.516:Version: git-1.1.5
11Date : January 25, 200617:Date: January 25, 2006
12 18
13Index19.. Index
14-----------------------------------------------20
150. IMPORTANT INFORMATION BEFORE USING THIS DRIVER21 0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
161. Introduction22 1. Introduction
172. Release git-1.1.5 Current Features23 2. Release git-1.1.5 Current Features
183. Command Line Parameters24 3. Command Line Parameters
194. Sysfs Helper Files25 4. Sysfs Helper Files
205. Radio Kill Switch26 5. Radio Kill Switch
216. Dynamic Firmware27 6. Dynamic Firmware
227. Power Management28 7. Power Management
238. Support29 8. Support
249. License30 9. License
25 31
26 32
270. IMPORTANT INFORMATION BEFORE USING THIS DRIVER330. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
28-----------------------------------------------34=================================================
29 35
30Important Notice FOR ALL USERS OR DISTRIBUTORS!!!!36Important Notice FOR ALL USERS OR DISTRIBUTORS!!!!
31 37
@@ -75,10 +81,10 @@ obtain a tested driver from Intel Customer Support at: · 43 unmodified lines
75http://www.intel.com/support/wireless/sb/CS-006408.htm81http://www.intel.com/support/wireless/sb/CS-006408.htm
76 82
771. Introduction831. Introduction
78-----------------------------------------------84===============
79 85
80This document provides a brief overview of the features supported by the 86This document provides a brief overview of the features supported by the
81IPW2100 driver project. The main project website, where the latest 87IPW2100 driver project. The main project website, where the latest
82development version of the driver can be found, is:88development version of the driver can be found, is:
83 89
84 http://ipw2100.sourceforge.net90 http://ipw2100.sourceforge.net
@@ -89,10 +95,11 @@ for the driver project. · 4 unmodified lines
89 95
90 96
912. Release git-1.1.5 Current Supported Features972. Release git-1.1.5 Current Supported Features
92-----------------------------------------------98===============================================
99
93- Managed (BSS) and Ad-Hoc (IBSS)100- Managed (BSS) and Ad-Hoc (IBSS)
94- WEP (shared key and open)101- WEP (shared key and open)
95- Wireless Tools support 102- Wireless Tools support
96- 802.1x (tested with XSupplicant 1.0.1)103- 802.1x (tested with XSupplicant 1.0.1)
97 104
98Enabled (but not supported) features:105Enabled (but not supported) features:
@@ -105,11 +112,11 @@ performed on a given feature. · 6 unmodified lines
105 112
106 113
1073. Command Line Parameters1143. Command Line Parameters
108-----------------------------------------------115==========================
109 116
110If the driver is built as a module, the following optional parameters are used117If the driver is built as a module, the following optional parameters are used
111by entering them on the command line with the modprobe command using this118by entering them on the command line with the modprobe command using this
112syntax:119syntax::
113 120
114 modprobe ipw2100 [<option>=<VAL1><,VAL2>...]121 modprobe ipw2100 [<option>=<VAL1><,VAL2>...]
115 122
@@ -119,61 +126,76 @@ For example, to disable the radio on driver loading, enter: · 3 unmodified lines
119 126
120The ipw2100 driver supports the following module parameters:127The ipw2100 driver supports the following module parameters:
121 128
122Name Value Example:129========= ============== ============ ==============================
123debug 0x0-0xffffffff debug=1024130Name Value Example Meaning
124mode 0,1,2 mode=1 /* AdHoc */131========= ============== ============ ==============================
125channel int channel=3 /* Only valid in AdHoc or Monitor */132debug 0x0-0xffffffff debug=1024 Debug level set to 1024
126associate boolean associate=0 /* Do NOT auto associate */133mode 0,1,2 mode=1 AdHoc
127disable boolean disable=1 /* Do not power the HW */134channel int channel=3 Only valid in AdHoc or Monitor
135associate boolean associate=0 Do NOT auto associate
136disable boolean disable=1 Do not power the HW
137========= ============== ============ ==============================
128 138
129 139
1304. Sysfs Helper Files1404. Sysfs Helper Files
131--------------------------- 141=====================
132-----------------------------------------------
133 142
134There are several ways to control the behavior of the driver. Many of the 143There are several ways to control the behavior of the driver. Many of the
135general capabilities are exposed through the Wireless Tools (iwconfig). There144general capabilities are exposed through the Wireless Tools (iwconfig). There
136are a few capabilities that are exposed through entries in the Linux Sysfs.145are a few capabilities that are exposed through entries in the Linux Sysfs.
137 146
138 147
139----- Driver Level ------148**Driver Level**
149
140For the driver level files, look in /sys/bus/pci/drivers/ipw2100/150For the driver level files, look in /sys/bus/pci/drivers/ipw2100/
141 151
142 debug_level 152 debug_level
143 153 This controls the same global as the 'debug' module parameter. For
144 This controls the same global as the 'debug' module parameter. For 154 information on the various debugging levels available, run the 'dvals'
145 information on the various debugging levels available, run the 'dvals'
146 script found in the driver source directory.155 script found in the driver source directory.
147 156
148 NOTE: 'debug_level' is only enabled if CONFIG_IPW2100_DEBUG is turn157 .. note::
149 on.158
159 'debug_level' is only enabled if CONFIG_IPW2100_DEBUG is turn on.
160
161**Device Level**
162
163For the device level files look in::
150 164
151----- Device Level ------
152For the device level files look in
153
154 /sys/bus/pci/drivers/ipw2100/{PCI-ID}/165 /sys/bus/pci/drivers/ipw2100/{PCI-ID}/
155 166
156For example:167For example::
168
157 /sys/bus/pci/drivers/ipw2100/0000:02:01.0169 /sys/bus/pci/drivers/ipw2100/0000:02:01.0
158 170
159For the device level files, see /sys/bus/pci/drivers/ipw2100:171For the device level files, see /sys/bus/pci/drivers/ipw2100:
160 172
161 rf_kill173 rf_kill
162 read - 174 read
163 0 = RF kill not enabled (radio on)175
164 1 = SW based RF kill active (radio off)176 == =========================================
165 2 = HW based RF kill active (radio off)177 0 RF kill not enabled (radio on)
166 3 = Both HW and SW RF kill active (radio off)178 1 SW based RF kill active (radio off)
167 write -179 2 HW based RF kill active (radio off)
168 0 = If SW based RF kill active, turn the radio back on180 3 Both HW and SW RF kill active (radio off)
169 1 = If radio is on, activate SW based RF kill181 == =========================================
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 == ==================================================
170 189
171 NOTE: If you enable the SW based RF kill and then toggle the HW190 .. note::
172 based RF kill from ON -> OFF -> ON, the radio will NOT come back on191
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
173 194
174 195
1755. Radio Kill Switch1965. Radio Kill Switch
176-----------------------------------------------197====================
198
177Most laptops provide the ability for the user to physically disable the radio.199Most laptops provide the ability for the user to physically disable the radio.
178Some vendors have implemented this as a physical switch that requires no200Some vendors have implemented this as a physical switch that requires no
179software to turn the radio off and on. On other laptops, however, the switch201software to turn the radio off and on. On other laptops, however, the switch
@@ -186,9 +208,10 @@ on your system. · 6 unmodified lines
186 208
187 209
1886. Dynamic Firmware2106. Dynamic Firmware
189-----------------------------------------------211===================
190As the firmware is licensed under a restricted use license, it can not be 212
191included within the kernel sources. To enable the IPW2100 you will need a 213As the firmware is licensed under a restricted use license, it can not be
214included within the kernel sources. To enable the IPW2100 you will need a
192firmware image to load into the wireless NIC's processors.215firmware image to load into the wireless NIC's processors.
193 216
194You can obtain these images from <http://ipw2100.sf.net/firmware.php>.217You 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
197 220
198 221
1997. Power Management2227. Power Management
200-----------------------------------------------223===================
201The IPW2100 supports the configuration of the Power Save Protocol 224
202through a private wireless extension interface. The IPW2100 supports 225The IPW2100 supports the configuration of the Power Save Protocol
226through a private wireless extension interface. The IPW2100 supports
203the following different modes:227the following different modes:
204 228
229 === ===========================================================
205 off No power management. Radio is always on.230 off No power management. Radio is always on.
206 on Automatic power management231 on Automatic power management
207 1-5 Different levels of power management. The higher the 232 1-5 Different levels of power management. The higher the
208 number the greater the power savings, but with an impact to 233 number the greater the power savings, but with an impact to
209 packet latencies. 234 packet latencies.
210 235 === ===========================================================
211Power management works by powering down the radio after a certain 236
212interval of time has passed where no packets are passed through the 237Power management works by powering down the radio after a certain
213radio. Once powered down, the radio remains in that state for a given 238interval of time has passed where no packets are passed through the
214period of time. For higher power savings, the interval between last 239radio. Once powered down, the radio remains in that state for a given
240period of time. For higher power savings, the interval between last
215packet processed to sleep is shorter and the sleep period is longer.241packet processed to sleep is shorter and the sleep period is longer.
216 242
217When the radio is asleep, the access point sending data to the station 243When the radio is asleep, the access point sending data to the station
218must buffer packets at the AP until the station wakes up and requests 244must buffer packets at the AP until the station wakes up and requests
219any buffered packets. If you have an AP that does not correctly support 245any buffered packets. If you have an AP that does not correctly support
220the PSP protocol you may experience packet loss or very poor performance 246the PSP protocol you may experience packet loss or very poor performance
221while power management is enabled. If this is the case, you will need 247while power management is enabled. If this is the case, you will need
222to try and find a firmware update for your AP, or disable power 248to try and find a firmware update for your AP, or disable power
223management (via `iwconfig eth1 power off`)249management (via ``iwconfig eth1 power off``)
224 250
225To configure the power level on the IPW2100 you use a combination of 251To configure the power level on the IPW2100 you use a combination of
226iwconfig and iwpriv. iwconfig is used to turn power management on, off, 252iwconfig and iwpriv. iwconfig is used to turn power management on, off,
227and set it to auto.253and set it to auto.
228 254
255 ========================= ====================================
229 iwconfig eth1 power off Disables radio power down256 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
231 last set level (defaults to AUTO)258 last set level (defaults to AUTO)
232 iwpriv eth1 set_power 0 Sets power level to AUTO and enables 259 iwpriv eth1 set_power 0 Sets power level to AUTO and enables
233 power management if not previously 260 power management if not previously
234 enabled.261 enabled.
235 iwpriv eth1 set_power 1-5 Set the power level as specified, 262 iwpriv eth1 set_power 1-5 Set the power level as specified,
236 enabling power management if not 263 enabling power management if not
237 previously enabled.264 previously enabled.
265 ========================= ====================================
266
267You can view the current power level setting via::
238 268
239You can view the current power level setting via:
240
241 iwpriv eth1 get_power269 iwpriv eth1 get_power
242 270
243It will return the current period or timeout that is configured as a string271It will return the current period or timeout that is configured as a string
244in the form of xxxx/yyyy (z) where xxxx is the timeout interval (amount of272in the form of xxxx/yyyy (z) where xxxx is the timeout interval (amount of
245time after packet processing), yyyy is the period to sleep (amount of time to 273time after packet processing), yyyy is the period to sleep (amount of time to
246wait before powering the radio and querying the access point for buffered274wait before powering the radio and querying the access point for buffered
247packets), and z is the 'power level'. If power management is turned off the275packets), and z is the 'power level'. If power management is turned off the
248xxxx/yyyy will be replaced with 'off' -- the level reported will be the active276xxxx/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
250 278
251 279
2528. Support2808. Support
253-----------------------------------------------281==========
254 282
255For general development information and support,283For general development information and support,
256go to:284go to:
257 285
258 http://ipw2100.sf.net/286 http://ipw2100.sf.net/
259 287
260The ipw2100 1.1.0 driver and firmware can be downloaded from: 288The ipw2100 1.1.0 driver and firmware can be downloaded from:
261 289
262 http://support.intel.com290 http://support.intel.com
263 291
264For installation support on the ipw2100 1.1.0 driver on Linux kernels 292For installation support on the ipw2100 1.1.0 driver on Linux kernels
2652.6.8 or greater, email support is available from: 2932.6.8 or greater, email support is available from:
266 294
267 http://supportmail.intel.com295 http://supportmail.intel.com
268 296
2699. License2979. License
270-----------------------------------------------298==========
271 299
272 Copyright(c) 2003 - 2006 Intel Corporation. All rights reserved.300 Copyright |copy| 2003 - 2006 Intel Corporation. All rights reserved.
273 301
274 This program is free software; you can redistribute it and/or modify it 302 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 303 under the terms of the GNU General Public License (version 2) as
276 published by the Free Software Foundation.304 published by the Free Software Foundation.
277 305
278 This program is distributed in the hope that it will be useful, but WITHOUT 306 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 307 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
280 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 308 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
281 more details.309 more details.
282 310
283 You should have received a copy of the GNU General Public License along with311 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
285 Temple Place - Suite 330, Boston, MA 02111-1307, USA.313 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
286 314
287 The full GNU General Public License is included in this distribution in the315 The full GNU General Public License is included in this distribution in the
288 file called LICENSE.316 file called LICENSE.
289 317
290 License Contact Information:318 License Contact Information:
319
291 James P. Ketrenos <ipw2100-admin@linux.intel.com>320 James P. Ketrenos <ipw2100-admin@linux.intel.com>
321
292 Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497322 Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
293 323
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>
1 3
2Intel(R) PRO/Wireless 2915ABG Driver for Linux in support of:4==============================================
5Intel(R) PRO/Wireless 2915ABG Driver for Linux
6==============================================
3 7
4Intel(R) PRO/Wireless 2200BG Network Connection8
5Intel(R) PRO/Wireless 2915ABG Network Connection9Support for:
10
11- Intel(R) PRO/Wireless 2200BG Network Connection
12- Intel(R) PRO/Wireless 2915ABG Network Connection
6 13
7Note: The Intel(R) PRO/Wireless 2915ABG Driver for Linux and Intel(R)14Note: The Intel(R) PRO/Wireless 2915ABG Driver for Linux and Intel(R)
8PRO/Wireless 2200BG Driver for Linux is a unified driver that works on15PRO/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
10PRO/Wireless 2915ABG Driver for Linux will be used to reference the17PRO/Wireless 2915ABG Driver for Linux will be used to reference the
11unified driver.18unified driver.
12 19
13Copyright (C) 2004-2006, Intel Corporation20Copyright |copy| 2004-2006, Intel Corporation
14 21
15README.ipw220022README.ipw2200
16 23
17Version: 1.1.224:Version: 1.1.2
18Date : March 30, 200625:Date: March 30, 2006
19 26
20 27
21Index28.. Index
22-----------------------------------------------
230. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
241. Introduction
251.1. Overview of features
261.2. Module parameters
271.3. Wireless Extension Private Methods
281.4. Sysfs Helper Files
291.5. Supported channels
302. Ad-Hoc Networking
313. Interacting with Wireless Tools
323.1. iwconfig mode
333.2. iwconfig sens
344. About the Version Numbers
355. Firmware installation
366. Support
377. License
38 29
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
39 45
400. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
41-----------------------------------------------
42 46
43Important Notice FOR ALL USERS OR DISTRIBUTORS!!!! 470. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
48=================================================
49
50Important Notice FOR ALL USERS OR DISTRIBUTORS!!!!
44 51
45Intel wireless LAN adapters are engineered, manufactured, tested, and52Intel wireless LAN adapters are engineered, manufactured, tested, and
46quality checked to ensure that they meet all necessary local and53quality 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
56software driver are designed to carefully control parameters that affect63software driver are designed to carefully control parameters that affect
57radio operation and to ensure electromagnetic compliance (EMC). These64radio operation and to ensure electromagnetic compliance (EMC). These
58parameters include, without limitation, RF power, spectrum usage,65parameters include, without limitation, RF power, spectrum usage,
59channel scanning, and human exposure. 66channel scanning, and human exposure.
60 67
61For these reasons Intel cannot permit any manipulation by third parties68For these reasons Intel cannot permit any manipulation by third parties
62of the software provided in binary format with the wireless WLAN69of 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
70with the modified products, including without limitation, claims under77with the modified products, including without limitation, claims under
71the warranty and/or issues arising from regulatory non-compliance, and78the warranty and/or issues arising from regulatory non-compliance, and
72(iii) Intel will not provide or be required to assist in providing79(iii) Intel will not provide or be required to assist in providing
73support to any third parties for such modified products. 80support to any third parties for such modified products.
74 81
75Note: Many regulatory agencies consider Wireless LAN adapters to be82Note: Many regulatory agencies consider Wireless LAN adapters to be
76modules, and accordingly, condition system-level regulatory approval83modules, 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
78system configuration do not cause the EMC and radio operation to be85system configuration do not cause the EMC and radio operation to be
79non-compliant.86non-compliant.
80 87
81The drivers available for download from SourceForge are provided as a 88The drivers available for download from SourceForge are provided as a
82part of a development project. Conformance to local regulatory 89part of a development project. Conformance to local regulatory
83requirements is the responsibility of the individual developer. As 90requirements is the responsibility of the individual developer. As
84such, if you are interested in deploying or shipping a driver as part of 91such, if you are interested in deploying or shipping a driver as part of
85solution intended to be used for purposes other than development, please 92solution intended to be used for purposes other than development, please
86obtain a tested driver from Intel Customer Support at:93obtain a tested driver from Intel Customer Support at:
87 94
88http://support.intel.com95http://support.intel.com
89 96
90 97
911. Introduction981. Introduction
92-----------------------------------------------99===============
93The following sections attempt to provide a brief introduction to using 100
101The following sections attempt to provide a brief introduction to using
94the Intel(R) PRO/Wireless 2915ABG Driver for Linux.102the Intel(R) PRO/Wireless 2915ABG Driver for Linux.
95 103
96This document is not meant to be a comprehensive manual on 104This document is not meant to be a comprehensive manual on
97understanding or using wireless technologies, but should be sufficient 105understanding or using wireless technologies, but should be sufficient
98to get you moving without wires on Linux.106to get you moving without wires on Linux.
99 107
100For information on building and installing the driver, see the INSTALL108For information on building and installing the driver, see the INSTALL
@@ -102,14 +110,14 @@ file. · 1 unmodified line
102 110
103 111
1041.1. Overview of Features1121.1. Overview of Features
105-----------------------------------------------113-------------------------
106The current release (1.1.2) supports the following features:114The current release (1.1.2) supports the following features:
107 115
108+ BSS mode (Infrastructure, Managed)116+ BSS mode (Infrastructure, Managed)
109+ IBSS mode (Ad-Hoc)117+ IBSS mode (Ad-Hoc)
110+ WEP (OPEN and SHARED KEY mode)118+ WEP (OPEN and SHARED KEY mode)
111+ 802.1x EAP via wpa_supplicant and xsupplicant119+ 802.1x EAP via wpa_supplicant and xsupplicant
112+ Wireless Extension support 120+ Wireless Extension support
113+ Full B and G rate support (2200 and 2915)121+ Full B and G rate support (2200 and 2915)
114+ Full A rate support (2915 only)122+ Full A rate support (2915 only)
115+ Transmit power control123+ Transmit power control
@@ -122,102 +130,107 @@ supported: · 6 unmodified lines
122+ long/short preamble support130+ long/short preamble support
123+ Monitor mode (aka RFMon)131+ Monitor mode (aka RFMon)
124 132
125The distinction between officially supported and enabled is a reflection 133The distinction between officially supported and enabled is a reflection
126on the amount of validation and interoperability testing that has been134on the amount of validation and interoperability testing that has been
127performed on a given feature. 135performed on a given feature.
128 136
129 137
130 138
1311.2. Command Line Parameters1391.2. Command Line Parameters
132-----------------------------------------------140----------------------------
133 141
134Like many modules used in the Linux kernel, the Intel(R) PRO/Wireless142Like many modules used in the Linux kernel, the Intel(R) PRO/Wireless
1352915ABG Driver for Linux allows configuration options to be provided 1432915ABG Driver for Linux allows configuration options to be provided
136as module parameters. The most common way to specify a module parameter 144as module parameters. The most common way to specify a module parameter
137is via the command line. 145is via the command line.
138 146
139The general form is:147The general form is::
140 148
141% modprobe ipw2200 parameter=value149 % modprobe ipw2200 parameter=value
142 150
143Where the supported parameter are:151Where the supported parameter are:
144 152
145 associate153 associate
146 Set to 0 to disable the auto scan-and-associate functionality of the154 Set to 0 to disable the auto scan-and-associate functionality of the
147 driver. If disabled, the driver will not attempt to scan 155 driver. If disabled, the driver will not attempt to scan
148 for and associate to a network until it has been configured with 156 for and associate to a network until it has been configured with
149 one or more properties for the target network, for example configuring 157 one or more properties for the target network, for example configuring
150 the network SSID. Default is 0 (do not auto-associate)158 the network SSID. Default is 0 (do not auto-associate)
151 159
152 Example: % modprobe ipw2200 associate=0160 Example: % modprobe ipw2200 associate=0
153 161
154 auto_create162 auto_create
155 Set to 0 to disable the auto creation of an Ad-Hoc network 163 Set to 0 to disable the auto creation of an Ad-Hoc network
156 matching the channel and network name parameters provided. 164 matching the channel and network name parameters provided.
157 Default is 1.165 Default is 1.
158 166
159 channel167 channel
160 channel number for association. The normal method for setting168 channel number for association. The normal method for setting
161 the channel would be to use the standard wireless tools169 the channel would be to use the standard wireless tools
162 (i.e. `iwconfig eth1 channel 10`), but it is useful sometimes170 (i.e. `iwconfig eth1 channel 10`), but it is useful sometimes
163 to set this while debugging. Channel 0 means 'ANY'171 to set this while debugging. Channel 0 means 'ANY'
164 172
165 debug173 debug
166 If using a debug build, this is used to control the amount of debug174 If using a debug build, this is used to control the amount of debug
167 info is logged. See the 'dvals' and 'load' script for more info on175 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 176 how to use this (the dvals and load scripts are provided as part
169 of the ipw2200 development snapshot releases available from the 177 of the ipw2200 development snapshot releases available from the
170 SourceForge project at http://ipw2200.sf.net)178 SourceForge project at http://ipw2200.sf.net)
171 179
172 led180 led
173 Can be used to turn on experimental LED code.181 Can be used to turn on experimental LED code.
174 0 = Off, 1 = On. Default is 1.182 0 = Off, 1 = On. Default is 1.
175 183
176 mode184 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.
178 0 = Managed, 1 = Ad-Hoc, 2 = Monitor186 0 = Managed, 1 = Ad-Hoc, 2 = Monitor
179 187
180 188
1811.3. Wireless Extension Private Methods1891.3. Wireless Extension Private Methods
182-----------------------------------------------190---------------------------------------
183 191
184As an interface designed to handle generic hardware, there are certain 192As an interface designed to handle generic hardware, there are certain
185capabilities not exposed through the normal Wireless Tool interface. As 193capabilities not exposed through the normal Wireless Tool interface. As
186such, a provision is provided for a driver to declare custom, or 194such, a provision is provided for a driver to declare custom, or
187private, methods. The Intel(R) PRO/Wireless 2915ABG Driver for Linux 195private, methods. The Intel(R) PRO/Wireless 2915ABG Driver for Linux
188defines several of these to configure various settings.196defines several of these to configure various settings.
189 197
190The general form of using the private wireless methods is:198The general form of using the private wireless methods is::
191 199
192 % iwpriv $IFNAME method parameters200 % iwpriv $IFNAME method parameters
193 201
194Where $IFNAME is the interface name the device is registered with 202Where $IFNAME is the interface name the device is registered with
195(typically eth1, customized via one of the various network interface203(typically eth1, customized via one of the various network interface
196name managers, such as ifrename)204name managers, such as ifrename)
197 205
198The supported private methods are:206The supported private methods are:
199 207
200 get_mode208 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
202 configured to support. Example:210 configured to support. Example:
203 211
204 % iwpriv eth1 get_mode212 % iwpriv eth1 get_mode
205 eth1 get_mode:802.11bg (6)213 eth1 get_mode:802.11bg (6)
206 214
207 set_mode215 set_mode
208 Can be used to configure which IEEE mode the driver will 216 Can be used to configure which IEEE mode the driver will
209 support. 217 support.
218
219 Usage::
220
221 % iwpriv eth1 set_mode {mode}
210 222
211 Usage:
212 % iwpriv eth1 set_mode {mode}
213 Where {mode} is a number in the range 1-7:223 Where {mode} is a number in the range 1-7:
224
225 == =====================
214 1 802.11a (2915 only)226 1 802.11a (2915 only)
215 2 802.11b227 2 802.11b
216 3 802.11ab (2915 only)228 3 802.11ab (2915 only)
217 4 802.11g 229 4 802.11g
218 5 802.11ag (2915 only)230 5 802.11ag (2915 only)
219 6 802.11bg231 6 802.11bg
220 7 802.11abg (2915 only)232 7 802.11abg (2915 only)
233 == =====================
221 234
222 get_preamble235 get_preamble
223 Can be used to report configuration of preamble length.236 Can be used to report configuration of preamble length.
@@ -225,99 +238,123 @@ The supported private methods are: · 1 unmodified line
225 set_preamble238 set_preamble
226 Can be used to set the configuration of preamble length:239 Can be used to set the configuration of preamble length:
227 240
228 Usage:241 Usage::
229 % iwpriv eth1 set_preamble {mode}242
243 % iwpriv eth1 set_preamble {mode}
244
230 Where {mode} is one of:245 Where {mode} is one of:
246
247 == ========================================
231 1 Long preamble only248 1 Long preamble only
232 0 Auto (long or short based on connection)249 0 Auto (long or short based on connection)
233 250 == ========================================
251
234 252
2351.4. Sysfs Helper Files:2531.4. Sysfs Helper Files
236-----------------------------------------------254-----------------------
237 255
238The Linux kernel provides a pseudo file system that can be used to 256The Linux kernel provides a pseudo file system that can be used to
239access various components of the operating system. The Intel(R)257access various components of the operating system. The Intel(R)
240PRO/Wireless 2915ABG Driver for Linux exposes several configuration258PRO/Wireless 2915ABG Driver for Linux exposes several configuration
241parameters through this mechanism.259parameters through this mechanism.
242 260
243An entry in the sysfs can support reading and/or writing. You can 261An entry in the sysfs can support reading and/or writing. You can
244typically query the contents of a sysfs entry through the use of cat, 262typically query the contents of a sysfs entry through the use of cat,
245and can set the contents via echo. For example:263and can set the contents via echo. For example::
246 264
247% cat /sys/bus/pci/drivers/ipw2200/debug_level265 % cat /sys/bus/pci/drivers/ipw2200/debug_level
248 266
249Will report the current debug level of the driver's logging subsystem 267Will report the current debug level of the driver's logging subsystem
250(only available if CONFIG_IPW2200_DEBUG was configured when the driver268(only available if CONFIG_IPW2200_DEBUG was configured when the driver
251was built).269was built).
252 270
253You can set the debug level via:271You can set the debug level via::
254 272
255% echo $VALUE > /sys/bus/pci/drivers/ipw2200/debug_level273 % echo $VALUE > /sys/bus/pci/drivers/ipw2200/debug_level
256 274
257Where $VALUE would be a number in the case of this sysfs entry. The 275Where $VALUE would be a number in the case of this sysfs entry. The
258input to sysfs files does not have to be a number. For example, the 276input to sysfs files does not have to be a number. For example, the
259firmware loader used by hotplug utilizes sysfs entries for transferring 277firmware loader used by hotplug utilizes sysfs entries for transferring
260the firmware image from user space into the driver.278the firmware image from user space into the driver.
261 279
262The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries 280The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries
263at two levels -- driver level, which apply to all instances of the driver 281at 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 282(in the event that there are more than one device installed) and device
265level, which applies only to the single specific instance.283level, which applies only to the single specific instance.
266 284
267 285
2681.4.1 Driver Level Sysfs Helper Files2861.4.1 Driver Level Sysfs Helper Files
269-----------------------------------------------287^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
270 288
271For the driver level files, look in /sys/bus/pci/drivers/ipw2200/289For the driver level files, look in /sys/bus/pci/drivers/ipw2200/
272 290
273 debug_level 291 debug_level
274
275 This controls the same global as the 'debug' module parameter292 This controls the same global as the 'debug' module parameter
276 293
277 294
278 295
2791.4.2 Device Level Sysfs Helper Files2961.4.2 Device Level Sysfs Helper Files
280-----------------------------------------------297^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
298
299For the device level files, look in::
281 300
282For the device level files, look in
283
284 /sys/bus/pci/drivers/ipw2200/{PCI-ID}/301 /sys/bus/pci/drivers/ipw2200/{PCI-ID}/
285 302
286For example:303For example:::
304
287 /sys/bus/pci/drivers/ipw2200/0000:02:01.0305 /sys/bus/pci/drivers/ipw2200/0000:02:01.0
288 306
289For the device level files, see /sys/bus/pci/drivers/ipw2200:307For the device level files, see /sys/bus/pci/drivers/ipw2200:
290 308
291 rf_kill309 rf_kill
292 read - 310 read -
293 0 = RF kill not enabled (radio on)311
294 1 = SW based RF kill active (radio off)312 == =========================================
295 2 = HW based RF kill active (radio off)313 0 RF kill not enabled (radio on)
296 3 = Both HW and SW RF kill active (radio off)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
297 write -319 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
300 320
301 NOTE: If you enable the SW based RF kill and then toggle the HW321 == ==================================================
302 based RF kill from ON -> OFF -> ON, the radio will NOT come back on322 0 If SW based RF kill active, turn the radio back on
303 323 1 If radio is on, activate SW based RF kill
304 ucode 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
305 read-only access to the ucode version number332 read-only access to the ucode version number
306 333
307 led334 led
308 read -335 read -
309 0 = LED code disabled336
310 1 = LED code enabled337 == =================
338 0 LED code disabled
339 1 LED code enabled
340 == =================
341
311 write -342 write -
312 0 = Disable LED code
313 1 = Enable LED code
314 343
315 NOTE: The LED code has been reported to hang some systems when 344 == ================
316 running ifconfig and is therefore disabled by default.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.
317 354
318 355
3191.5. Supported channels3561.5. Supported channels
320-----------------------------------------------357-----------------------
321 358
322Upon loading the Intel(R) PRO/Wireless 2915ABG Driver for Linux, a359Upon loading the Intel(R) PRO/Wireless 2915ABG Driver for Linux, a
323message stating the detected geography code and the number of 802.11360message 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
326The geography code corresponds to a regulatory domain as shown in the363The geography code corresponds to a regulatory domain as shown in the
327table below.364table below.
328 365
329 Supported channels366 +------+----------------------------+--------------------+
330Code Geography 802.11bg 802.11a367 | | | Supported channels |
331 368 | Code | Geography +----------+---------+
332--- Restricted 11 0369 | | | 802.11bg | 802.11a |
333ZZF Custom US/Canada 11 8370 +======+============================+==========+=========+
334ZZD Rest of World 13 0371 | --- | Restricted | 11 | 0 |
335ZZA Custom USA & Europe & High 11 13372 +------+----------------------------+----------+---------+
336ZZB Custom NA & Europe 11 13373 | ZZF | Custom US/Canada | 11 | 8 |
337ZZC Custom Japan 11 4374 +------+----------------------------+----------+---------+
338ZZM Custom 11 0375 | ZZD | Rest of World | 13 | 0 |
339ZZE Europe 13 19376 +------+----------------------------+----------+---------+
340ZZJ Custom Japan 14 4377 | ZZA | Custom USA & Europe & High | 11 | 13 |
341ZZR Rest of World 14 0378 +------+----------------------------+----------+---------+
342ZZH High Band 13 4379 | ZZB | Custom NA & Europe | 11 | 13 |
343ZZG Custom Europe 13 4380 +------+----------------------------+----------+---------+
344ZZK Europe 13 24381 | ZZC | Custom Japan | 11 | 4 |
345ZZL Europe 11 13382 +------+----------------------------+----------+---------+
346 383 | ZZM | Custom | 11 | 0 |
347 384 +------+----------------------------+----------+---------+
3482. Ad-Hoc Networking385 | ZZE | Europe | 13 | 19 |
349-----------------------------------------------386 +------+----------------------------+----------+---------+
350 387 | ZZJ | Custom Japan | 14 | 4 |
351When using a device in an Ad-Hoc network, it is useful to understand the 388 +------+----------------------------+----------+---------+
352sequence and requirements for the driver to be able to create, join, or 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
4002. Ad-Hoc Networking
401=====================
402
403When using a device in an Ad-Hoc network, it is useful to understand the
404sequence and requirements for the driver to be able to create, join, or
353merge networks.405merge networks.
354 406
355The following attempts to provide enough information so that you can 407The following attempts to provide enough information so that you can
356have a consistent experience while using the driver as a member of an 408have a consistent experience while using the driver as a member of an
357Ad-Hoc network.409Ad-Hoc network.
358 410
3592.1. Joining an Ad-Hoc Network4112.1. Joining an Ad-Hoc Network
360-----------------------------------------------412------------------------------
361 413
362The easiest way to get onto an Ad-Hoc network is to join one that 414The easiest way to get onto an Ad-Hoc network is to join one that
363already exists.415already exists.
364 416
3652.2. Creating an Ad-Hoc Network4172.2. Creating an Ad-Hoc Network
366-----------------------------------------------418-------------------------------
367 419
368An Ad-Hoc networks is created using the syntax of the Wireless tool.420An Ad-Hoc networks is created using the syntax of the Wireless tool.
369 421
@@ -371,21 +423,21 @@ For Example: · 1 unmodified line
371iwconfig eth1 mode ad-hoc essid testing channel 2423iwconfig eth1 mode ad-hoc essid testing channel 2
372 424
3732.3. Merging Ad-Hoc Networks4252.3. Merging Ad-Hoc Networks
374-----------------------------------------------426----------------------------
375 427
376 428
3773. Interaction with Wireless Tools4293. Interaction with Wireless Tools
378-----------------------------------------------430==================================
379 431
3803.1 iwconfig mode4323.1 iwconfig mode
381-----------------------------------------------433-----------------
382 434
383When configuring the mode of the adapter, all run-time configured parameters435When configuring the mode of the adapter, all run-time configured parameters
384are reset to the value used when the module was loaded. This includes436are reset to the value used when the module was loaded. This includes
385channels, rates, ESSID, etc.437channels, rates, ESSID, etc.
386 438
3873.2 iwconfig sens4393.2 iwconfig sens
388-----------------------------------------------440-----------------
389 441
390The 'iwconfig ethX sens XX' command will not set the signal sensitivity442The 'iwconfig ethX sens XX' command will not set the signal sensitivity
391threshold, as described in iwconfig documentation, but rather the number443threshold, 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
394threshold to 3 times the given value.446threshold to 3 times the given value.
395 447
396 448
3974. About the Version Numbers4494. About the Version Numbers
398-----------------------------------------------450=============================
399 451
400Due to the nature of open source development projects, there are 452Due to the nature of open source development projects, there are
401frequently changes being incorporated that have not gone through 453frequently changes being incorporated that have not gone through
402a complete validation process. These changes are incorporated into 454a complete validation process. These changes are incorporated into
403development snapshot releases.455development snapshot releases.
404 456
405Releases are numbered with a three level scheme: 457Releases are numbered with a three level scheme:
406 458
407 major.minor.development459 major.minor.development
408 460
409Any version where the 'development' portion is 0 (for example461Any version where the 'development' portion is 0 (for example
4101.0.0, 1.1.0, etc.) indicates a stable version that will be made 4621.0.0, 1.1.0, etc.) indicates a stable version that will be made
411available for kernel inclusion.463available for kernel inclusion.
412 464
413Any version where the 'development' portion is not a 0 (for465Any version where the 'development' portion is not a 0 (for
414example 1.0.1, 1.1.5, etc.) indicates a development version that is466example 1.0.1, 1.1.5, etc.) indicates a development version that is
415being made available for testing and cutting edge users. The stability 467being made available for testing and cutting edge users. The stability
416and functionality of the development releases are not know. We make468and functionality of the development releases are not know. We make
417efforts to try and keep all snapshots reasonably stable, but due to the469efforts to try and keep all snapshots reasonably stable, but due to the
418frequency of their release, and the desire to get those releases 470frequency of their release, and the desire to get those releases
419available as quickly as possible, unknown anomalies should be expected.471available as quickly as possible, unknown anomalies should be expected.
420 472
421The major version number will be incremented when significant changes473The major version number will be incremented when significant changes
422are made to the driver. Currently, there are no major changes planned.474are made to the driver. Currently, there are no major changes planned.
423 475
4245. Firmware installation4765. Firmware installation
425----------------------------------------------477========================
426 478
427The driver requires a firmware image, download it and extract the479The driver requires a firmware image, download it and extract the
428files under /lib/firmware (or wherever your hotplug's firmware.agent480files 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
433 http://ipw2200.sf.net/485 http://ipw2200.sf.net/
434 486
435 487
4366. Support4886. Support
437-----------------------------------------------489==========
438 490
439For direct support of the 1.0.0 version, you can contact 491For direct support of the 1.0.0 version, you can contact
440http://supportmail.intel.com, or you can use the open source project492http://supportmail.intel.com, or you can use the open source project
441support.493support.
442 494
443For general information and support, go to:495For general information and support, go to:
444 496
445 http://ipw2200.sf.net/497 http://ipw2200.sf.net/
446 498
447 499
4487. License5007. License
449-----------------------------------------------501==========
450 502
451 Copyright(c) 2003 - 2006 Intel Corporation. All rights reserved.503 Copyright |copy| 2003 - 2006 Intel Corporation. All rights reserved.
452 504
453 This program is free software; you can redistribute it and/or modify it 505 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 506 under the terms of the GNU General Public License version 2 as
455 published by the Free Software Foundation.507 published by the Free Software Foundation.
456 508
457 This program is distributed in the hope that it will be useful, but WITHOUT 509 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 510 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
459 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 511 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
460 more details.512 more details.
461 513
462 You should have received a copy of the GNU General Public License along with514 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
464 Temple Place - Suite 330, Boston, MA 02111-1307, USA.516 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
465 517
466 The full GNU General Public License is included in this distribution in the518 The full GNU General Public License is included in this distribution in the
467 file called LICENSE.519 file called LICENSE.
468 520
469 Contact Information:521 Contact Information:
522
470 James P. Ketrenos <ipw2100-admin@linux.intel.com>523 James P. Ketrenos <ipw2100-admin@linux.intel.com>
524
471 Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497525 Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
472 526
Documentation/networking/device_drivers/intel/ixgb.rst+1−1
@@ -37,7 +37,7 @@ The following features are available in this kernel: · 36 unmodified lines
37 - SNMP37 - SNMP
38 38
39Channel Bonding documentation can be found in the Linux kernel source:39Channel Bonding documentation can be found in the Linux kernel source:
40/Documentation/networking/bonding.txt40/Documentation/networking/bonding.rst
41 41
42The driver information previously displayed in the /proc filesystem is not42The driver information previously displayed in the /proc filesystem is not
43supported in this release. Alternatively, you can use ethtool (version 1.643supported 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======================
1Hyper-V network driver4Hyper-V network driver
2======================5======================
3 6
@@ -10,15 +13,15 @@ Windows 10. · 6 unmodified lines
10Features13Features
11========14========
12 15
13 Checksum offload16Checksum offload
14 ----------------17----------------
15 The netvsc driver supports checksum offload as long as the18 The netvsc driver supports checksum offload as long as the
16 Hyper-V host version does. Windows Server 2016 and Azure19 Hyper-V host version does. Windows Server 2016 and Azure
17 support checksum offload for TCP and UDP for both IPv4 and20 support checksum offload for TCP and UDP for both IPv4 and
18 IPv6. Windows Server 2012 only supports checksum offload for TCP.21 IPv6. Windows Server 2012 only supports checksum offload for TCP.
19 22
20 Receive Side Scaling23Receive Side Scaling
21 --------------------24--------------------
22 Hyper-V supports receive side scaling. For TCP & UDP, packets can25 Hyper-V supports receive side scaling. For TCP & UDP, packets can
23 be distributed among available queues based on IP address and port26 be distributed among available queues based on IP address and port
24 number.27 number.
@@ -32,30 +35,37 @@ Features · 7 unmodified lines
32 hashing. Using L3 hashing is recommended in this case.35 hashing. Using L3 hashing is recommended in this case.
33 36
34 For example, for UDP over IPv4 on eth0:37 For example, for UDP over IPv4 on eth0:
35 To include UDP port numbers in hashing:38
36 ethtool -N eth0 rx-flow-hash udp4 sdfn39 To include UDP port numbers in hashing::
37 To exclude UDP port numbers in hashing:40
38 ethtool -N eth0 rx-flow-hash udp4 sd41 ethtool -N eth0 rx-flow-hash udp4 sdfn
39 To show UDP hash level:42
40 ethtool -n eth0 rx-flow-hash udp443 To exclude UDP port numbers in hashing::
41 44
42 Generic Receive Offload, aka GRO45 ethtool -N eth0 rx-flow-hash udp4 sd
43 --------------------------------46
47 To show UDP hash level::
48
49 ethtool -n eth0 rx-flow-hash udp4
50
51Generic Receive Offload, aka GRO
52--------------------------------
44 The driver supports GRO and it is enabled by default. GRO coalesces53 The driver supports GRO and it is enabled by default. GRO coalesces
45 like packets and significantly reduces CPU usage under heavy Rx54 like packets and significantly reduces CPU usage under heavy Rx
46 load.55 load.
47 56
48 Large Receive Offload (LRO), or Receive Side Coalescing (RSC)57Large Receive Offload (LRO), or Receive Side Coalescing (RSC)
49 -------------------------------------------------------------58-------------------------------------------------------------
50 The driver supports LRO/RSC in the vSwitch feature. It reduces the per packet59 The driver supports LRO/RSC in the vSwitch feature. It reduces the per packet
51 processing overhead by coalescing multiple TCP segments when possible. The60 processing overhead by coalescing multiple TCP segments when possible. The
52 feature is enabled by default on VMs running on Windows Server 2019 and61 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
54 ethtool -K eth0 lro on64 ethtool -K eth0 lro on
55 ethtool -K eth0 lro off65 ethtool -K eth0 lro off
56 66
57 SR-IOV support67SR-IOV support
58 --------------68--------------
59 Hyper-V supports SR-IOV as a hardware acceleration option. If SR-IOV69 Hyper-V supports SR-IOV as a hardware acceleration option. If SR-IOV
60 is enabled in both the vSwitch and the guest configuration, then the70 is enabled in both the vSwitch and the guest configuration, then the
61 Virtual Function (VF) device is passed to the guest as a PCI71 Virtual Function (VF) device is passed to the guest as a PCI
@@ -70,8 +80,8 @@ Features · 8 unmodified lines
70 flow direction is desired, these should be applied directly to the80 flow direction is desired, these should be applied directly to the
71 VF slave device.81 VF slave device.
72 82
73 Receive Buffer83Receive Buffer
74 --------------84--------------
75 Packets are received into a receive area which is created when device85 Packets are received into a receive area which is created when device
76 is probed. The receive area is broken into MTU sized chunks and each may86 is probed. The receive area is broken into MTU sized chunks and each may
77 contain one or more packets. The number of receive sections may be changed87 contain one or more packets. The number of receive sections may be changed
@@ -83,8 +93,8 @@ Features · 5 unmodified lines
83 will use slower method to handle very large packets or if the send buffer93 will use slower method to handle very large packets or if the send buffer
84 area is exhausted.94 area is exhausted.
85 95
86 XDP support96XDP support
87 -----------97-----------
88 XDP (eXpress Data Path) is a feature that runs eBPF bytecode at the early98 XDP (eXpress Data Path) is a feature that runs eBPF bytecode at the early
89 stage when packets arrive at a NIC card. The goal is to increase performance99 stage when packets arrive at a NIC card. The goal is to increase performance
90 for packet processing, reducing the overhead of SKB allocation and other100 for packet processing, reducing the overhead of SKB allocation and other
@@ -99,7 +109,8 @@ Features · 8 unmodified lines
99 overwritten by setting of synthetic NIC.109 overwritten by setting of synthetic NIC.
100 110
101 XDP program cannot run with LRO (RSC) enabled, so you need to disable LRO111 XDP program cannot run with LRO (RSC) enabled, so you need to disable LRO
102 before running XDP:112 before running XDP::
113
103 ethtool -K eth0 lro off114 ethtool -K eth0 lro off
104 115
105 XDP_REDIRECT action is not yet supported.116 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=========================================================
4Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver
5=========================================================
6
7Release 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
181. Introduction
19===============
20This Linux driver supports Neterion's Xframe I PCI-X 1.0 and
21Xframe II PCI-X 2.0 adapters. It supports several features
22such as jumbo frames, MSI/MSI-X, checksum offloads, TSO, UFO and so on.
23See below for complete list of features.
24
25All features are supported for both IPv4 and IPv6.
26
272. Identifying the adapter/interface
28====================================
29
30a. Insert the adapter(s) in your system.
31b. Build and load driver::
32
33 # insmod s2io.ko
34
35c. View log messages::
36
37 # dmesg | tail -40
38
39You 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
45The above messages identify the adapter type(Xframe I/II), adapter revision,
46driver version, interface name(eth3, eth4), Interrupt type(INTA, MSI, MSI-X).
47In case of Xframe II, the PCI/PCI-X bus width and frequency are displayed
48as well.
49
50To associate an interface with a physical adapter use "ethtool -p <ethX>".
51The corresponding adapter's LED will blink multiple times.
52
533. Features supported
54=====================
55a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes,
56 modifiable using ip command.
57
58b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit
59 and receive, TSO.
60
61c. 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
66d. 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
70e. Statistics. Comprehensive MAC-level and software statistics displayed
71 using "ethtool -S" option.
72
73f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings,
74 with multiple steering options.
75
764. Command line parameters
77==========================
78
79a. tx_fifo_num
80 Number of transmit queues
81
82Valid range: 1-8
83
84Default: 1
85
86b. rx_ring_num
87 Number of receive rings
88
89Valid range: 1-8
90
91Default: 1
92
93c. tx_fifo_len
94 Size of each transmit queue
95
96Valid range: Total length of all queues should not exceed 8192
97
98Default: 4096
99
100d. rx_ring_sz
101 Size of each receive ring(in 4K blocks)
102
103Valid range: Limited by memory on system
104
105Default: 30
106
107e. intr_type
108 Specifies interrupt type. Possible values 0(INTA), 2(MSI-X)
109
110Valid values: 0, 2
111
112Default: 2
113
1145. Performance suggestions
115==========================
116
117General:
118
119a. Set MTU to maximum(9000 for switch setup, 9600 in back-to-back configuration)
120b. Set TCP windows size to optimal value.
121
122For instance, for MTU=1500 a value of 210K has been observed to result in
123good performance::
124
125 # sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
126 # sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"
127
128For 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
133Transmit performance:
134
135a. 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
157b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this
158 parameter.
159
160c. Turn on TSO(using "ethtool -K")::
161
162 # ethtool -K <ethX> tso on
163
164Receive performance:
165
166a. 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
173b. Use 2-buffer mode. This results in large performance boost on
174 certain platforms(eg. SGI Altix, IBM xSeries).
175
176c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to
177 set/verify this option.
178
179d. 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
188For more information, please review the AMD8131 errata at
189http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/
19026310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf
191
1926. Support
193==========
194
195For further support please contact either your 10GbE Xframe NIC vendor (IBM,
196HP, SGI etc.)
Documentation/networking/device_drivers/neterion/s2io.txt+0−141
@@ -1,141 +0,0 @@
1Release notes for Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver.
2
3Contents
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
131. Introduction:
14This Linux driver supports Neterion's Xframe I PCI-X 1.0 and
15Xframe II PCI-X 2.0 adapters. It supports several features
16such as jumbo frames, MSI/MSI-X, checksum offloads, TSO, UFO and so on.
17See below for complete list of features.
18All features are supported for both IPv4 and IPv6.
19
202. Identifying the adapter/interface:
21a. Insert the adapter(s) in your system.
22b. Build and load driver
23# insmod s2io.ko
24c. View log messages
25# dmesg | tail -40
26You will see messages similar to:
27eth3: Neterion Xframe I 10GbE adapter (rev 3), Version 2.0.9.1, Intr type INTA
28eth4: Neterion Xframe II 10GbE adapter (rev 2), Version 2.0.9.1, Intr type INTA
29eth4: Device is on 64 bit 133MHz PCIX(M1) bus
30
31The above messages identify the adapter type(Xframe I/II), adapter revision,
32driver version, interface name(eth3, eth4), Interrupt type(INTA, MSI, MSI-X).
33In case of Xframe II, the PCI/PCI-X bus width and frequency are displayed
34as well.
35
36To associate an interface with a physical adapter use "ethtool -p <ethX>".
37The corresponding adapter's LED will blink multiple times.
38
393. Features supported:
40a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes,
41modifiable using ip command.
42
43b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit
44and receive, TSO.
45
46c. Multi-buffer receive mode. Scattering of packet across multiple
47buffers. Currently driver supports 2-buffer mode which yields
48significant performance improvement on certain platforms(SGI Altix,
49IBM xSeries).
50
51d. MSI/MSI-X. Can be enabled on platforms which support this feature
52(IA64, Xeon) resulting in noticeable performance improvement(up to 7%
53on certain platforms).
54
55e. Statistics. Comprehensive MAC-level and software statistics displayed
56using "ethtool -S" option.
57
58f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings,
59with multiple steering options.
60
614. Command line parameters
62a. tx_fifo_num
63Number of transmit queues
64Valid range: 1-8
65Default: 1
66
67b. rx_ring_num
68Number of receive rings
69Valid range: 1-8
70Default: 1
71
72c. tx_fifo_len
73Size of each transmit queue
74Valid range: Total length of all queues should not exceed 8192
75Default: 4096
76
77d. rx_ring_sz
78Size of each receive ring(in 4K blocks)
79Valid range: Limited by memory on system
80Default: 30
81
82e. intr_type
83Specifies interrupt type. Possible values 0(INTA), 2(MSI-X)
84Valid values: 0, 2
85Default: 2
86
875. Performance suggestions
88General:
89a. Set MTU to maximum(9000 for switch setup, 9600 in back-to-back configuration)
90b. Set TCP windows size to optimal value.
91For instance, for MTU=1500 a value of 210K has been observed to result in
92good performance.
93# sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
94# sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"
95For 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
99Transmit performance:
100a. By default, the driver respects BIOS settings for PCI bus parameters.
101However, you may want to experiment with PCI bus parameters
102max-split-transactions(MOST) and MMRBC (use setpci command).
103A MOST value of 2 has been found optimal for Opterons and 3 for Itanium.
104It could be different for your hardware.
105Set MMRBC to 4K**.
106
107For example you can set
108For opteron
109#setpci -d 17d5:* 62=1d
110For Itanium
111#setpci -d 17d5:* 62=3d
112
113For detailed description of the PCI registers, please see Xframe User Guide.
114
115b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this
116parameter.
117c. Turn on TSO(using "ethtool -K")
118# ethtool -K <ethX> tso on
119
120Receive performance:
121a. By default, the driver respects BIOS settings for PCI bus parameters.
122However, you may want to set PCI latency timer to 248.
123#setpci -d 17d5:* LATENCY_TIMER=f8
124For detailed description of the PCI registers, please see Xframe User Guide.
125b. Use 2-buffer mode. This results in large performance boost on
126certain platforms(eg. SGI Altix, IBM xSeries).
127c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to
128set/verify this option.
129d. Enable NAPI feature(in kernel configuration Device Drivers ---> Network
130device support ---> Ethernet (10000 Mbit) ---> S2IO 10Gbe Xframe NIC) to
131bring down CPU utilization.
132
133** For AMD opteron platforms with 8131 chipset, MMRBC=1 and MOST=1 are
134recommended as safe parameters.
135For more information, please review the AMD8131 errata at
136http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/
13726310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf
138
1396. Support
140For further support please contact either your 10GbE Xframe NIC vendor (IBM,
141HP, 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==============================================================================
1Neterion's (Formerly S2io) X3100 Series 10GbE PCIe Server Adapter Linux driver4Neterion's (Formerly S2io) X3100 Series 10GbE PCIe Server Adapter Linux driver
2==============================================================================5==============================================================================
3 6
4Contents7.. Contents
5--------8
9 1) Introduction
10 2) Features supported
11 3) Configurable driver parameters
12 4) Troubleshooting
6 13
71) Introduction141. Introduction
82) Features supported15===============
93) Configurable driver parameters
104) Troubleshooting
11 16
121) Introduction:
13----------------
14This Linux driver supports all Neterion's X3100 series 10 GbE PCIe I/O17This Linux driver supports all Neterion's X3100 series 10 GbE PCIe I/O
15Virtualized Server adapters.18Virtualized Server adapters.
19
16The X3100 series supports four modes of operation, configurable via20The X3100 series supports four modes of operation, configurable via
17firmware -21firmware:
18 Single function mode22
19 Multi function mode23 - Single function mode
20 SRIOV mode24 - Multi function mode
21 MRIOV mode25 - SRIOV mode
26 - MRIOV mode
27
22The functions share a 10GbE link and the pci-e bus, but hardly anything else28The functions share a 10GbE link and the pci-e bus, but hardly anything else
23inside the ASIC. Features like independent hw reset, statistics, bandwidth/29inside the ASIC. Features like independent hw reset, statistics, bandwidth/
24priority allocation and guarantees, GRO, TSO, interrupt moderation etc are30priority allocation and guarantees, GRO, TSO, interrupt moderation etc are
@@ -26,41 +32,49 @@ supported independently on each function. · 1 unmodified line
26 32
27(See below for a complete list of features supported for both IPv4 and IPv6)33(See below for a complete list of features supported for both IPv4 and IPv6)
28 34
292) Features supported:352. Features supported
30----------------------36=====================
31 37
32i) Single function mode (up to 17 queues)38i) Single function mode (up to 17 queues)
33 39
34ii) Multi function mode (up to 17 functions)40ii) Multi function mode (up to 17 functions)
35 41
36iii) PCI-SIG's I/O Virtualization42iii) PCI-SIG's I/O Virtualization
43
37 - Single Root mode: v1.0 (up to 17 functions)44 - Single Root mode: v1.0 (up to 17 functions)
38 - Multi-Root mode: v1.0 (up to 17 functions)45 - Multi-Root mode: v1.0 (up to 17 functions)
39 46
40iv) Jumbo frames47iv) Jumbo frames
48
41 X3100 Series supports MTU up to 9600 bytes, modifiable using49 X3100 Series supports MTU up to 9600 bytes, modifiable using
42 ip command.50 ip command.
43 51
44v) Offloads supported: (Enabled by default)52v) Offloads supported: (Enabled by default)
45 Checksum offload (TCP/UDP/IP) on transmit and receive paths53
46 TCP Segmentation Offload (TSO) on transmit path54 - Checksum offload (TCP/UDP/IP) on transmit and receive paths
47 Generic Receive Offload (GRO) on receive path55 - TCP Segmentation Offload (TSO) on transmit path
56 - Generic Receive Offload (GRO) on receive path
48 57
49vi) MSI-X: (Enabled by default)58vi) MSI-X: (Enabled by default)
59
50 Resulting in noticeable performance improvement (up to 7% on certain60 Resulting in noticeable performance improvement (up to 7% on certain
51 platforms).61 platforms).
52 62
53vii) NAPI: (Enabled by default)63vii) NAPI: (Enabled by default)
64
54 For better Rx interrupt moderation.65 For better Rx interrupt moderation.
55 66
56viii)RTH (Receive Traffic Hash): (Enabled by default)67viii)RTH (Receive Traffic Hash): (Enabled by default)
68
57 Receive side steering for better scaling.69 Receive side steering for better scaling.
58 70
59ix) Statistics71ix) Statistics
72
60 Comprehensive MAC-level and software statistics displayed using73 Comprehensive MAC-level and software statistics displayed using
61 "ethtool -S" option.74 "ethtool -S" option.
62 75
63x) Multiple hardware queues: (Enabled by default)76x) Multiple hardware queues: (Enabled by default)
77
64 Up to 17 hardware based transmit and receive data channels, with78 Up to 17 hardware based transmit and receive data channels, with
65 multiple steering options (transmit multiqueue enabled by default).79 multiple steering options (transmit multiqueue enabled by default).
66 80
@@ -69,25 +83,33 @@ x) Multiple hardware queues: (Enabled by default) · 2 unmodified lines
69 83
70i) max_config_dev84i) max_config_dev
71 Specifies maximum device functions to be enabled.85 Specifies maximum device functions to be enabled.
86
72 Valid range: 1-887 Valid range: 1-8
73 88
74ii) max_config_port89ii) max_config_port
75 Specifies number of ports to be enabled.90 Specifies number of ports to be enabled.
91
76 Valid range: 1,292 Valid range: 1,2
93
77 Default: 194 Default: 1
78 95
79iii)max_config_vpath96iii) max_config_vpath
80 Specifies maximum VPATH(s) configured for each device function.97 Specifies maximum VPATH(s) configured for each device function.
98
81 Valid range: 1-1799 Valid range: 1-17
82 100
83iv) vlan_tag_strip101iv) vlan_tag_strip
84 Enables/disables vlan tag stripping from all received tagged frames that102 Enables/disables vlan tag stripping from all received tagged frames that
85 are not replicated at the internal L2 switch.103 are not replicated at the internal L2 switch.
104
86 Valid range: 0,1 (disabled, enabled respectively)105 Valid range: 0,1 (disabled, enabled respectively)
106
87 Default: 1107 Default: 1
88 108
89v) addr_learn_en109v) addr_learn_en
90 Enable learning the mac address of the guest OS interface in110 Enable learning the mac address of the guest OS interface in
91 virtualization environment.111 virtualization environment.
112
92 Valid range: 0,1 (disabled, enabled respectively)113 Valid range: 0,1 (disabled, enabled respectively)
114
93 Default: 0115 Default: 0
Documentation/networking/device_drivers/pensando/ionic.rst+230−1
@@ -11,6 +11,9 @@ Contents · 10 unmodified lines
11========11========
12 12
13- Identifying the Adapter13- Identifying the Adapter
14- Enabling the driver
15- Configuring the driver
16- Statistics
14- Support17- Support
15 18
16Identifying the Adapter19Identifying the Adapter
@@ -28,12 +31,238 @@ and configure them for use. There should be log entries in the kernel · 11 unmodified lines
28messages such as these::31messages such as these::
29 32
30 $ dmesg | grep ionic33 $ dmesg | grep ionic
31 ionic Pensando Ethernet NIC Driver, ver 0.15.0-k34 ionic 0000:b5:00.0: 126.016 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x16 link)
32 ionic 0000:b5:00.0 enp181s0: renamed from eth035 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)
33 ionic 0000:b6:00.0 enp182s0: renamed from eth038 ionic 0000:b6:00.0 enp182s0: renamed from eth0
39 ionic 0000:b6:00.0 enp182s0: Link up - 100 Gbps
40
41Driver and firmware version information can be gathered with either of
42ethtool 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
61See Documentation/networking/devlink/ionic.rst for more information
62on the devlink dev info data.
63
64Enabling the driver
65===================
66
67The driver is enabled via the standard kernel configuration system,
68using the make command::
69
70 make oldconfig/menuconfig/etc.
71
72The 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
80Configuring the Driver
81======================
82
83MTU
84---
85
86Jumbo frame support is available with a maximim size of 9194 bytes.
87
88Interrupt coalescing
89--------------------
90
91Interrupt coalescing can be configured by changing the rx-usecs value with
92the "ethtool -C" command. The rx-usecs range is 0-190. The tx-usecs value
93reflects the rx-usecs value as they are tied together on the same interrupt.
94
95SR-IOV
96------
97
98Minimal SR-IOV support is currently offered and can be enabled by setting
99the sysfs 'sriov_numvfs' value, if supported by your particular firmware
100configuration.
101
102Statistics
103==========
104
105Basic hardware stats
106--------------------
107
108The commands ``netstat -i``, ``ip -s link show``, and ``ifconfig`` show
109a 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
119ethtool -S
120----------
121
122The statistics shown from the ``ethtool -S`` command includes a combination of
123driver counters and firmware counters, including port and queue specific values.
124The driver values are counters computed by the driver, and the firmware values
125are gathered by the firmware from the port hardware and passed through the
126driver with no further interpretation.
127
128Driver 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
142Driver 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
165Firmware 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
34 262
35Support263Support
36=======264=======
265
37For general Linux networking support, please use the netdev mailing266For general Linux networking support, please use the netdev mailing
38list, which is monitored by Pensando personnel::267list, which is monitored by Pensando personnel::
39 268
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============
4Rmnet Driver
5============
6
11. Introduction71. Introduction
8===============
2 9
3rmnet driver is used for supporting the Multiplexing and aggregation10rmnet driver is used for supporting the Multiplexing and aggregation
4Protocol (MAP). This protocol is used by all recent chipsets using Qualcomm11Protocol (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
18these MAP frames and send them to appropriate PDN's.25these MAP frames and send them to appropriate PDN's.
19 26
202. Packet format272. Packet format
28================
21 29
22a. MAP packet (data / control)30a. MAP packet (data / control)
23 31
24MAP header has the same endianness of the IP packet.32MAP header has the same endianness of the IP packet.
25 33
26Packet format -34Packet format::
27 35
28Bit 0 1 2-7 8 - 15 16 - 3136 Bit 0 1 2-7 8 - 15 16 - 31
29Function Command / Data Reserved Pad Multiplexer ID Payload length37 Function Command / Data Reserved Pad Multiplexer ID Payload length
30Bit 32 - x38 Bit 32 - x
31Function Raw Bytes39 Function Raw Bytes
32 40
33Command (1)/ Data (0) bit value is to indicate if the packet is a MAP command41Command (1)/ Data (0) bit value is to indicate if the packet is a MAP command
34or data packet. Control packet is used for transport level flow control. Data42or 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
44Payload length includes the padding length but does not include MAP header52Payload length includes the padding length but does not include MAP header
45length.53length.
46 54
47b. MAP packet (command specific)55b. MAP packet (command specific)::
48 56
49Bit 0 1 2-7 8 - 15 16 - 3157 Bit 0 1 2-7 8 - 15 16 - 31
50Function Command Reserved Pad Multiplexer ID Payload length58 Function Command Reserved Pad Multiplexer ID Payload length
51Bit 32 - 39 40 - 45 46 - 47 48 - 6359 Bit 32 - 39 40 - 45 46 - 47 48 - 63
52Function Command name Reserved Command Type Reserved60 Function Command name Reserved Command Type Reserved
53Bit 64 - 9561 Bit 64 - 95
54Function Transaction ID62 Function Transaction ID
55Bit 96 - 12763 Bit 96 - 127
56Function Command data64 Function Command data
57 65
58Command 1 indicates disabling flow while 2 is enabling flow66Command 1 indicates disabling flow while 2 is enabling flow
59 67
60Command types -68Command types
69
70= ==========================================
610 for MAP command request710 for MAP command request
621 is to acknowledge the receipt of a command721 is to acknowledge the receipt of a command
632 is for unsupported commands732 is for unsupported commands
643 is for error during processing of commands743 is for error during processing of commands
75= ==========================================
65 76
66c. Aggregation77c. Aggregation
67 78
@@ -71,9 +82,11 @@ packets and either ACK the MAP command or deliver the IP packet to the · 3 unmodified lines
71network stack as needed82network stack as needed
72 83
73MAP header|IP Packet|Optional padding|MAP header|IP Packet|Optional padding....84MAP header|IP Packet|Optional padding|MAP header|IP Packet|Optional padding....
85
74MAP header|IP Packet|Optional padding|MAP header|Command Packet|Optional pad...86MAP header|IP Packet|Optional padding|MAP header|Command Packet|Optional pad...
75 87
763. Userspace configuration883. Userspace configuration
89==========================
77 90
78rmnet userspace configuration is done through netlink library librmnetctl91rmnet userspace configuration is done through netlink library librmnetctl
79and command line utility rmnetcli. Utility is hosted in codeaurora forum git.92and 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===================
4SB100 device driver
5===================
6
7sb1000 is a module network device driver for the General Instrument (also known
8as NextLevel) SURFboard1000 internal cable modem board. This is an ISA card
9which is used by a number of cable TV companies to provide cable modem access.
10It's a one-way downstream-only cable modem, meaning that your upstream net link
11is provided by your regular phone modem.
12
13This driver was written by Franco Venturi <fventuri@mediaone.net>. He deserves
14a great deal of thanks for this wonderful piece of code!
15
16Needed tools
17============
18
19Support for this device is now a part of the standard Linux kernel. The
20driver source code file is drivers/net/sb1000.c. In addition to this
21you will need:
22
231. The "cmconfig" program. This is a utility which supplements "ifconfig"
24 to configure the cable modem and network interface (usually called "cm0");
25
262. 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
413. 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
54Using the driver
55================
56
57To make the SB1000 card work, follow these steps:
58
591. 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
652. **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
703. Build and install the kernel and modules as usual.
71
724. Boot your new kernel following the usual procedures.
73
745. 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
846. 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
907. 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
978. 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
1069. 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
12010. Try pinging a site via ``ping -c 5 www.yahoo.com``, for example. You should
121 see packets received.
122
12311. 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
13012. If you still have problems, go to the support web sites mentioned above
131 and read the information and documentation there.
132
133Common problems
134===============
135
1361. 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
141Solution
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
1512. I get "unresolved symbol" error messages on executing ``insmod sb1000.o``.
152
153Solution
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
1593. When isapnp runs it reports an error, and my SB1000 card isn't working.
160
161Solution
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
1684. I can't execute the /etc/ppp/ppp@gi-on file.
169
170Solution
171 As root do ``chmod ug+x /etc/ppp/ppp@gi-on``.
172
1735. The firewall script isn't working (with 2.2.x and higher kernels).
174
175Solution
176 Use the ipfwadm2ipchains script referenced above to convert the
177 /etc/ppp/firewall script from the deprecated ipfwadm commands to ipchains.
178
1796. 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
183Solution
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
1937. 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
196Solution
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
210Credits
211=======
212
213This README came from Franco Venturi's original README file which is
214still supplied with his driver .tar.gz archive. I and all other sb1000 users
215owe Franco a tremendous "Thank you!" Additional thanks goes to Carl Patten
216and Ralph Bonnell who are now managing the Linux SB1000 web site, and to
217the SB1000 users who reported and helped debug the common problems listed
218above.
219
220
221 Clemmitt Sigler
222 csigler@vt.edu
Documentation/networking/device_drivers/sb1000.txt+0−207
@@ -1,207 +0,0 @@
1sb1000 is a module network device driver for the General Instrument (also known
2as NextLevel) SURFboard1000 internal cable modem board. This is an ISA card
3which is used by a number of cable TV companies to provide cable modem access.
4It's a one-way downstream-only cable modem, meaning that your upstream net link
5is provided by your regular phone modem.
6
7This driver was written by Franco Venturi <fventuri@mediaone.net>. He deserves
8a great deal of thanks for this wonderful piece of code!
9
10-----------------------------------------------------------------------------
11
12Support for this device is now a part of the standard Linux kernel. The
13driver source code file is drivers/net/sb1000.c. In addition to this
14you will need:
15
161.) The "cmconfig" program. This is a utility which supplements "ifconfig"
17to configure the cable modem and network interface (usually called "cm0");
18and
19
202.) Several PPP scripts which live in /etc/ppp to make connecting via your
21cable 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
353.) The standard isapnp tools. These are necessary to configure your SB1000
36card 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
50To make the SB1000 card work, follow these steps:
51
521.) Run `make config', or `make menuconfig', or `make xconfig', whichever
53you prefer, in the top kernel tree directory to set up your kernel
54configuration. Make sure to say "Y" to "Prompt for development drivers"
55and to say "M" to the sb1000 driver. Also say "Y" or "M" to all the standard
56networking questions to get TCP/IP and PPP networking support.
57
582.) *BEFORE* you build the kernel, edit drivers/net/sb1000.c. Make sure
59to redefine the value of READ_DATA_PORT to match the I/O address used
60by 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
633.) Build and install the kernel and modules as usual.
64
654.) Boot your new kernel following the usual procedures.
66
675.) Set up to configure the new SB1000 PnP card by capturing the output
68of "pnpdump" to a file and editing this file to set the correct I/O ports,
69IRQ, and DMA settings for all your PnP cards. Make sure none of the settings
70conflict with one another. Then test this configuration by running the
71"isapnp" command with your new config file as the input. Check for
72errors and fix as necessary. (As an aside, I use I/O ports 0x110 and
730x310 and IRQ 11 for my SB1000 card and these work well for me. YMMV.)
74Then save the finished config file as /etc/isapnp.conf for proper configuration
75on subsequent reboots.
76
776.) Download the original file sb1000-1.1.2.tar.gz from Franco's site or one of
78the others referenced above. As root, unpack it into a temporary directory and
79do 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
81installation, not just cmconfig.
82
837.) As root, copy all the files under the ppp/ subdirectory in Franco's
84tar file into /etc/ppp, being careful not to overwrite any files that are
85already in there. Then modify ppp@gi-on to set the correct login name,
86phone number, and frequency for the cable modem. Also edit pap-secrets
87to specify your login name and password and any site-specific information
88you need.
89
908.) Be sure to modify /etc/ppp/firewall to use ipchains instead of
91the older ipfwadm commands from the 2.0.x kernels. There's a neat utility to
92convert ipfwadm commands to ipchains commands:
93
94 http://users.dhp.com/~whisper/ipfwadm2ipchains/
95
96You may also wish to modify the firewall script to implement a different
97firewalling scheme.
98
999.) Start the PPP connection via the script /etc/ppp/ppp@gi-on. You must be
100root to do this. It's better to use a utility like sudo to execute
101frequently used commands like this with root permissions if possible. If you
102connect successfully the cable modem interface will come up and you'll see a
103driver 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
108The "ifconfig" command should show two new interfaces, ppp0 and cm0.
109The command "cmconfig cm0" will give you information about the cable modem
110interface.
111
11210.) Try pinging a site via `ping -c 5 www.yahoo.com', for example. You should
113see packets received.
114
11511.) If you can't get site names (like www.yahoo.com) to resolve into
116IP addresses (like 204.71.200.67), be sure your /etc/resolv.conf file
117has no syntax errors and has the right nameserver IP addresses in it.
118If this doesn't help, try something like `ping -c 5 204.71.200.67' to
119see if the networking is running but the DNS resolution is where the
120problem lies.
121
12212.) If you still have problems, go to the support web sites mentioned above
123and read the information and documentation there.
124
125-----------------------------------------------------------------------------
126
127Common problems:
128
1291.) Packets go out on the ppp0 interface but don't come back on the cm0
130interface. It looks like I'm connected but I can't even ping any
131numerical IP addresses. (This happens predominantly on Debian systems due
132to a default boot-time configuration script.)
133
134Solution -- As root `echo 0 > /proc/sys/net/ipv4/conf/cm0/rp_filter' so it
135can share the same IP address as the ppp0 interface. Note that this
136command should probably be added to the /etc/ppp/cablemodem script
137*right*between* the "/sbin/ifconfig" and "/sbin/cmconfig" commands.
138You may need to do this to /proc/sys/net/ipv4/conf/ppp0/rp_filter as well.
139If 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
141addresses.
142
1432.) I get "unresolved symbol" error messages on executing `insmod sb1000.o'.
144
145Solution -- You probably have a non-matching kernel source tree and
146/usr/include/linux and /usr/include/asm header files. Make sure you
147install the correct versions of the header files in these two directories.
148Then rebuild and reinstall the kernel.
149
1503.) When isapnp runs it reports an error, and my SB1000 card isn't working.
151
152Solution -- There's a problem with later versions of isapnp using the "(CHECK)"
153option in the lines that allocate the two I/O addresses for the SB1000 card.
154This first popped up on RH 6.0. Delete "(CHECK)" for the SB1000 I/O addresses.
155Make sure they don't conflict with any other pieces of hardware first! Then
156rerun isapnp and go from there.
157
1584.) I can't execute the /etc/ppp/ppp@gi-on file.
159
160Solution -- As root do `chmod ug+x /etc/ppp/ppp@gi-on'.
161
1625.) The firewall script isn't working (with 2.2.x and higher kernels).
163
164Solution -- Use the ipfwadm2ipchains script referenced above to convert the
165/etc/ppp/firewall script from the deprecated ipfwadm commands to ipchains.
166
1676.) 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
169partition!!!
170
171Solution -- First, tell your ISP that you're receiving DoS (Denial of Service)
172and/or portscanning (UDP connection attempts) attacks! Look over the deny
173messages to figure out what the attack is and where it's coming from. Next,
174edit /etc/ppp/cablemodem and make sure the ",nobroadcast" option is turned on
175to the "cmconfig" command (uncomment that line). If you're not receiving these
176denied packets on your broadcast interface (IP address xxx.yyy.zzz.255
177typically), then someone is attacking your machine in particular. Be careful
178out there....
179
1807.) 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
183Solution -- You may need to add a short delay in the driver to 'slow down' the
184SURFboard because your PC might not be able to keep up with the transfer rate
185of the SB1000. To do this, it's probably best to download Franco's
186sb1000-1.1.2.tar.gz archive and build and install sb1000.o manually. You'll
187want to edit the 'Makefile' and look for the 'SB1000_DELAY'
188define. Uncomment those 'CFLAGS' lines (and comment out the default ones)
189and try setting the delay to something like 60 microseconds with:
190'-DSB1000_DELAY=60'. Then do `make' and as root `make install' and try
191it out. If it still doesn't work or you like playing with the driver, you may
192try other numbers. Remember though that the higher the delay, the slower the
193driver (which slows down the rest of the PC too when it is actively
194used). Thanks to Ed Daiga for this tip!
195
196-----------------------------------------------------------------------------
197
198Credits: This README came from Franco Venturi's original README file which is
199still supplied with his driver .tar.gz archive. I and all other sb1000 users
200owe Franco a tremendous "Thank you!" Additional thanks goes to Carl Patten
201and Ralph Bonnell who are now managing the Linux SB1000 web site, and to
202the SB1000 users who reported and helped debug the common problems listed
203above.
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================
4SMC 9xxxx Driver
5================
6
7Revision 0.12
8
93/5/96
10
11Copyright 1996 Erik Stahlman
12
13Released under terms of the GNU General Public License.
14
15This file contains the instructions and caveats for my SMC9xxx driver. You
16should not be using the driver without reading this file.
17
18Things 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
40How to obtain the latest version?
41
42FTP:
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
47Contacting me:
48 erik@mail.vt.edu
Documentation/networking/device_drivers/smsc/smc9.txt+0−42
@@ -1,42 +0,0 @@
1
2SMC 9xxxx Driver
3Revision 0.12
43/5/96
5Copyright 1996 Erik Stahlman
6Released under terms of the GNU General Public License.
7
8This file contains the instructions and caveats for my SMC9xxx driver. You
9should not be using the driver without reading this file.
10
11Things 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
33How to obtain the latest version?
34
35FTP:
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
40Contacting 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======================================
4Texas Instruments CPSW ethernet driver
5======================================
6
7Multiqueue & CBS & MQPRIO
8=========================
9
10
11The cpsw has 3 CBS shapers for each external ports. This document
12describes MQPRIO and CBS Qdisc offload configuration for cpsw driver
13based on examples. It potentially can be used in audio video bridging
14(AVB) and time sensitive networking (TSN).
15
16The following examples were tested on AM572x EVM and BBB boards.
17
18Test setup
19==========
20
21Under consideration two examples with AM572x EVM running cpsw driver
22in dual_emac mode.
23
24Several 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
40Test 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
68Example 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
1471) ::
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
1542) ::
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
1703) ::
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
1794) ::
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
1895) ::
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
1985a) ::
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
2086) ::
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
2267) ::
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
2368) ::
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
2449) ::
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
25310) ::
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
25911) ::
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
26712) ::
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
27513) ::
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
29414) ::
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
305Example 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
3781) ::
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
3852) ::
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
4013) ::
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
4134) ::
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
4265) ::
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
4356) ::
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
4497) ::
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
4588) ::
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
4659) ::
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
47110) ::
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
47711) ::
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
48512) ::
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
49413) ::
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
50814) ::
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
51815) ::
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
52616) ::
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
53217) ::
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
53818) ::
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
54619) ::
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
55520) ::
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
57421) ::
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
3Multiqueue & CBS & MQPRIO
4=====================================================================
5=====================================================================
6
7The cpsw has 3 CBS shapers for each external ports. This document
8describes MQPRIO and CBS Qdisc offload configuration for cpsw driver
9based on examples. It potentially can be used in audio video bridging
10(AVB) and time sensitive networking (TSN).
11
12The following examples were tested on AM572x EVM and BBB boards.
13
14Test setup
15==========
16
17Under consideration two examples with AM572x EVM running cpsw driver
18in dual_emac mode.
19
20Several 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
35Test 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*********************************************************************
62Example 1: One port tx AVB configuration scheme for target board
63----------------------------------------------------------------------
64(prints and scheme for AM572x evm, applicable for single port boards)
65
66tc - traffic class
67txq - transmit queue
68p - priority
69f - fifo (cpsw fifo)
70S - 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
1381)
139// Add 4 tx queues, for interface Eth0, and 1 tx queue for Eth1
140$ ethtool -L eth0 rx 1 tx 5
141rx unmodified, ignoring
142
1432)
144// Check if num of queues is set correctly:
145$ ethtool -l eth0
146Channel parameters for eth0:
147Pre-set maximums:
148RX: 8
149TX: 8
150Other: 0
151Combined: 0
152Current hardware settings:
153RX: 1
154TX: 5
155Other: 0
156Combined: 0
157
1583)
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
1664)
167// Check maximum rate of tx (cpdma) queues:
168$ cat /sys/class/net/eth0/queues/tx-*/tx_maxrate
16940
17020
1710
1720
1730
174
1755)
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 \
181map 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
1835a)
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 \
190map 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 queues 1@4 hw 0
191
1926)
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
2097)
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 \
215hicredit 62 sendslope -959000 idleslope 41000 offload 1
216net eth0: set FIFO3 bw = 50
217
2188)
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 \
222hicredit 65 sendslope -979000 idleslope 21000 offload 1
223net eth0: set FIFO2 bw = 30
224
2259)
226// Create vlan 100 to map sk->priority to vlan qos
227$ ip link add link eth0 name eth0.100 type vlan id 100
2288021q: 802.1Q VLAN Support v1.8
2298021q: adding VLAN 0 to HW filter on device eth0
2308021q: adding VLAN 0 to HW filter on device eth1
231net eth0: Adding vlanid 100 to vlan filter
232
23310)
234// Map skb->priority to L2 prio, 1 to 1
235$ ip link set eth0.100 type vlan \
236egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
237
23811)
239// Check egress map for vlan 100
240$ cat /proc/net/vlan/eth0.100
241[...]
242INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0
243EGRESS priority mappings: 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
244
24512)
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
25213)
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
256Receiving data rate: 39012 kbps
257Receiving data rate: 39012 kbps
258Receiving data rate: 39012 kbps
259Receiving data rate: 39012 kbps
260Receiving data rate: 39012 kbps
261Receiving data rate: 39012 kbps
262Receiving data rate: 39012 kbps
263Receiving data rate: 39012 kbps
264Receiving data rate: 39012 kbps
265Receiving data rate: 39012 kbps
266Receiving data rate: 39012 kbps
267Receiving data rate: 39012 kbps
268Receiving data rate: 39000 kbps
269
27014)
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
275net eth0: Prev FIFO2 is shaped
276net eth0: set FIFO3 bw = 0
277net eth0: set FIFO2 bw = 0
278$ ethtool -L eth0 rx 1 tx 1
279
280*********************************************************************
281*********************************************************************
282*********************************************************************
283Example 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
3531)
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
357rx unmodified, ignoring
358
3592)
360// Check if num of queues is set correctly:
361$ ethtool -l eth0
362Channel parameters for eth0:
363Pre-set maximums:
364RX: 8
365TX: 8
366Other: 0
367Combined: 0
368Current hardware settings:
369RX: 1
370TX: 8
371Other: 0
372Combined: 0
373
3743)
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
3854)
386// Check maximum rate of tx (cpdma) queues:
387$ cat /sys/class/net/eth0/queues/tx-*/tx_maxrate
38840
38920
39030
39110
3920
3930
3940
3950
396
3975)
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 \
403map 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
4056)
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
4187)
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 \
423hicredit 62 sendslope -959000 idleslope 41000 offload 1
424net eth0: set FIFO3 bw = 50
425
4268)
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 \
429hicredit 65 sendslope -979000 idleslope 21000 offload 1
430net eth0: set FIFO2 bw = 30
431
4329)
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
435net eth0: Adding vlanid 100 to vlan filter
436
43710)
438// Map skb->priority to L2 prio for Eth0.100, one to one
439$ ip link set eth0.100 type vlan \
440egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
441
44211)
443// Check egress map for vlan 100
444$ cat /proc/net/vlan/eth0.100
445[...]
446INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0
447EGRESS priority mappings: 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
448
44912)
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 \
455map 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
45713)
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
47014)
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 \
476hicredit 465 sendslope -69000 idleslope 31000 offload 1
477net eth1: set FIFO3 bw = 31
478
47915)
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 \
483hicredit 405 sendslope -89000 idleslope 11000 offload 1
484net eth1: set FIFO2 bw = 11
485
48616)
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
489net eth1: Adding vlanid 100 to vlan filter
490
49117)
492// Map skb->priority to L2 prio for Eth1.100, one to one
493$ ip link set eth1.100 type vlan \
494egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
495
49618)
497// Check egress map for vlan 100
498$ cat /proc/net/vlan/eth1.100
499[...]
500INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0
501EGRESS priority mappings: 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
502
50319)
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
51120)
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
515Receiving data rate: 39012 kbps
516Receiving data rate: 39012 kbps
517Receiving data rate: 39012 kbps
518Receiving data rate: 39012 kbps
519Receiving data rate: 39012 kbps
520Receiving data rate: 39012 kbps
521Receiving data rate: 39012 kbps
522Receiving data rate: 39012 kbps
523Receiving data rate: 39012 kbps
524Receiving data rate: 39012 kbps
525Receiving data rate: 39012 kbps
526Receiving data rate: 39012 kbps
527Receiving data rate: 39000 kbps
528
52921)
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
534net eth1: Prev FIFO2 is shaped
535net eth1: set FIFO3 bw = 0
536net eth1: set FIFO2 bw = 0
537$ tc qdisc del dev eth0 root
538net eth0: Prev FIFO2 is shaped
539net eth0: set FIFO3 bw = 0
540net 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.01.. SPDX-License-Identifier: GPL-2.0
2
3======================================================
4Texas Instruments CPSW switchdev based ethernet driver
5======================================================
6
7:Version: 2.0
8
9Port renaming
10=============
2 11
3- Port renaming
4On older udev versions renaming of ethX to swXpY will not be automatically12On older udev versions renaming of ethX to swXpY will not be automatically
5supported13supported
6In order to rename via udev:
7ip -d link show dev sw0p1 | grep switchid
8 14
9SUBSYSTEM=="net", ACTION=="add", ATTR{phys_switch_id}==<switchid>, \15In order to rename via udev::
10 ATTR{phys_port_name}!="", NAME="sw0$attr{phys_port_name}"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
11 22
23Dual mac mode
24=============
12 25
13====================
14# Dual mac mode
15====================
16- The new (cpsw_new.c) driver is operating in dual-emac mode by default, thus26- The new (cpsw_new.c) driver is operating in dual-emac mode by default, thus
17working as 2 individual network interfaces. Main differences from legacy CPSW27 working as 2 individual network interfaces. Main differences from legacy CPSW
18driver are:28 driver are:
29
19 - optimized promiscuous mode: The P0_UNI_FLOOD (both ports) is enabled in30 - optimized promiscuous mode: The P0_UNI_FLOOD (both ports) is enabled in
20addition to ALLMULTI (current port) instead of ALE_BYPASS.31 addition to ALLMULTI (current port) instead of ALE_BYPASS.
21So, Ports in promiscuous mode will keep possibility of mcast and vlan filtering,32 So, Ports in promiscuous mode will keep possibility of mcast and vlan
22which is provides significant benefits when ports are joined to the same bridge,33 filtering, which is provides significant benefits when ports are joined
23but without enabling "switch" mode, or to different bridges.34 to the same bridge, but without enabling "switch" mode, or to different
35 bridges.
24 - learning disabled on ports as it make not too much sense for36 - learning disabled on ports as it make not too much sense for
25 segregated ports - no forwarding in HW.37 segregated ports - no forwarding in HW.
26 - enabled basic support for devlink.38 - enabled basic support for devlink.
27 39
40 ::
41
28 devlink dev show42 devlink dev show
29 platform/48484000.switch43 platform/48484000.switch
30 44
@@ -38,22 +52,25 @@ but without enabling "switch" mode, or to different bridges. · 7 unmodified lines
38 cmode runtime value false52 cmode runtime value false
39 53
40Devlink configuration parameters54Devlink configuration parameters
41====================55================================
56
42See Documentation/networking/devlink/ti-cpsw-switch.rst57See Documentation/networking/devlink/ti-cpsw-switch.rst
43 58
44====================59Bridging in dual mac mode
45# Bridging in dual mac mode60=========================
46====================61
47The dual_mac mode requires two vids to be reserved for internal purposes,62The dual_mac mode requires two vids to be reserved for internal purposes,
48which, by default, equal CPSW Port numbers. As result, bridge has to be63which, by default, equal CPSW Port numbers. As result, bridge has to be
49configured in vlan unaware mode or default_pvid has to be adjusted.64configured in vlan unaware mode or default_pvid has to be adjusted::
50 65
51 ip link add name br0 type bridge66 ip link add name br0 type bridge
52 ip link set dev br0 type bridge vlan_filtering 067 ip link set dev br0 type bridge vlan_filtering 0
53 echo 0 > /sys/class/net/br0/bridge/default_pvid68 echo 0 > /sys/class/net/br0/bridge/default_pvid
54 ip link set dev sw0p1 master br069 ip link set dev sw0p1 master br0
55 ip link set dev sw0p2 master br070 ip link set dev sw0p2 master br0
56 - or -71
72or::
73
57 ip link add name br0 type bridge74 ip link add name br0 type bridge
58 ip link set dev br0 type bridge vlan_filtering 075 ip link set dev br0 type bridge vlan_filtering 0
59 echo 100 > /sys/class/net/br0/bridge/default_pvid76 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
61 ip link set dev sw0p1 master br078 ip link set dev sw0p1 master br0
62 ip link set dev sw0p2 master br079 ip link set dev sw0p2 master br0
63 80
64====================81Enabling "switch"
65# Enabling "switch"82=================
66====================83
67The Switch mode can be enabled by configuring devlink driver parameter84The Switch mode can be enabled by configuring devlink driver parameter
68"switch_mode" to 1/true:85"switch_mode" to 1/true::
86
69 devlink dev param set platform/48484000.switch \87 devlink dev param set platform/48484000.switch \
70 name switch_mode value 1 cmode runtime88 name switch_mode value 1 cmode runtime
71 89
@@ -79,9 +97,11 @@ marking packets with offload_fwd_mark flag unless "ale_bypass=0" · 7 unmodified lines
79 97
80All configuration is implemented via switchdev API.98All configuration is implemented via switchdev API.
81 99
82====================100Bridge setup
83# Bridge setup101============
84====================102
103::
104
85 devlink dev param set platform/48484000.switch \105 devlink dev param set platform/48484000.switch \
86 name switch_mode value 1 cmode runtime106 name switch_mode value 1 cmode runtime
87 107
@@ -91,56 +111,65 @@ All configuration is implemented via switchdev API. · 3 unmodified lines
91 ip link set dev sw0p2 up111 ip link set dev sw0p2 up
92 ip link set dev sw0p1 master br0112 ip link set dev sw0p1 master br0
93 ip link set dev sw0p2 master br0113 ip link set dev sw0p2 master br0
114
94 [*] bridge vlan add dev br0 vid 1 pvid untagged self115 [*] bridge vlan add dev br0 vid 1 pvid untagged self
95 116
96[*] if vlan_filtering=1. where default_pvid=1117 [*] if vlan_filtering=1. where default_pvid=1
97 118
98=================119 Note. Steps [*] are mandatory.
99# On/off STP120
100=================121
101ip link set dev BRDEV type bridge stp_state 1/0122On/off STP
123==========
102 124
103Note. Steps [*] are mandatory.125::
104 126
105====================127 ip link set dev BRDEV type bridge stp_state 1/0
106# VLAN configuration128
107====================129VLAN configuration
108bridge vlan add dev br0 vid 1 pvid untagged self <---- add cpu port to VLAN 1130==================
131
132::
133
134 bridge vlan add dev br0 vid 1 pvid untagged self <---- add cpu port to VLAN 1
109 135
110Note. This step is mandatory for bridge/default_pvid.136Note. This step is mandatory for bridge/default_pvid.
111 137
112=================138Add extra VLANs
113# Add extra VLANs139===============
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
119 140
120 2. tagged:141 1. untagged::
121 bridge vlan add dev sw0p1 vid 100 master142
122 bridge vlan add dev sw0p2 vid 100 master143 bridge vlan add dev sw0p1 vid 100 pvid untagged master
123 bridge vlan add dev br0 vid 100 pvid tagged self <---- Add cpu port to VLAN100144 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
124 152
125====
126FDBs153FDBs
127====154----
155
128FDBs are automatically added on the appropriate switch port upon detection156FDBs are automatically added on the appropriate switch port upon detection
129 157
130Manually adding FDBs:158Manually adding FDBs::
131bridge fdb add aa:bb:cc:dd:ee:ff dev sw0p1 master vlan 100159
132bridge fdb add aa:bb:cc:dd:ee:fe dev sw0p2 master <---- Add on all VLANs160 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
133 162
134====
135MDBs163MDBs
136====164----
165
137MDBs are automatically added on the appropriate switch port upon detection166MDBs are automatically added on the appropriate switch port upon detection
138 167
139Manually adding MDBs:168Manually adding MDBs::
140bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent vid 100169
141bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent <---- Add on all VLANs170 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
142 172
143==================
144Multicast flooding173Multicast flooding
145==================174==================
146CPU port mcast_flooding is always on175CPU port mcast_flooding is always on
@@ -148,9 +177,11 @@ CPU port mcast_flooding is always on · 1 unmodified line
148Turning flooding on/off on swithch ports:177Turning flooding on/off on swithch ports:
149bridge link set dev sw0p1 mcast_flood on/off178bridge link set dev sw0p1 mcast_flood on/off
150 179
151==================
152Access and Trunk port180Access and Trunk port
153==================181=====================
182
183::
184
154 bridge vlan add dev sw0p1 vid 100 pvid untagged master185 bridge vlan add dev sw0p1 vid 100 pvid untagged master
155 bridge vlan add dev sw0p2 vid 100 master186 bridge vlan add dev sw0p2 vid 100 master
156 187
@@ -158,52 +189,54 @@ Access and Trunk port · 1 unmodified line
158 bridge vlan add dev br0 vid 100 self189 bridge vlan add dev br0 vid 100 self
159 ip link add link br0 name br0.100 type vlan id 100190 ip link add link br0 name br0.100 type vlan id 100
160 191
161 Note. Setting PVID on Bridge device itself working only for192Note. Setting PVID on Bridge device itself working only for
162 default VLAN (default_pvid).193default VLAN (default_pvid).
194
195NFS
196===
163 197
164=====================
165 NFS
166=====================
167The only way for NFS to work is by chrooting to a minimal environment when198The only way for NFS to work is by chrooting to a minimal environment when
168switch configuration that will affect connectivity is needed.199switch configuration that will affect connectivity is needed.
169Assuming you are booting NFS with eth1 interface(the script is hacky and200Assuming you are booting NFS with eth1 interface(the script is hacky and
170it's just there to prove NFS is doable).201it's just there to prove NFS is doable).
171 202
172setup.sh:203setup.sh::
173#!/bin/sh204
174mkdir proc205 #!/bin/sh
175mount -t proc none /proc206 mkdir proc
176ifconfig br0 > /dev/null207 mount -t proc none /proc
177if [ $? -ne 0 ]; then208 ifconfig br0 > /dev/null
178 echo "Setting up bridge"209 if [ $? -ne 0 ]; then
179 ip link add name br0 type bridge210 echo "Setting up bridge"
180 ip link set dev br0 type bridge ageing_time 1000211 ip link add name br0 type bridge
181 ip link set dev br0 type bridge vlan_filtering 1212 ip link set dev br0 type bridge ageing_time 1000
182 213 ip link set dev br0 type bridge vlan_filtering 1
183 ip link set eth1 down214
184 ip link set eth1 name sw0p1215 ip link set eth1 down
185 ip link set dev sw0p1 up216 ip link set eth1 name sw0p1
186 ip link set dev sw0p2 up217 ip link set dev sw0p1 up
187 ip link set dev sw0p2 master br0218 ip link set dev sw0p2 up
188 ip link set dev sw0p1 master br0219 ip link set dev sw0p2 master br0
189 bridge vlan add dev br0 vid 1 pvid untagged self220 ip link set dev sw0p1 master br0
190 ifconfig sw0p1 0.0.0.0221 bridge vlan add dev br0 vid 1 pvid untagged self
191 udhchc -i br0222 ifconfig sw0p1 0.0.0.0
192fi223 udhchc -i br0
193umount /proc224 fi
194 225 umount /proc
195run_nfs.sh:226
196#!/bin/sh227run_nfs.sh:::
197mkdir /tmp/root/bin -p228
198mkdir /tmp/root/lib -p229 #!/bin/sh
199 230 mkdir /tmp/root/bin -p
200cp -r /lib/ /tmp/root/231 mkdir /tmp/root/lib -p
201cp -r /bin/ /tmp/root/232
202cp /sbin/ip /tmp/root/bin233 cp -r /lib/ /tmp/root/
203cp /sbin/bridge /tmp/root/bin234 cp -r /bin/ /tmp/root/
204cp /sbin/ifconfig /tmp/root/bin235 cp /sbin/ip /tmp/root/bin
205cp /sbin/udhcpc /tmp/root/bin236 cp /sbin/bridge /tmp/root/bin
206cp /path/to/setup.sh /tmp/root/bin237 cp /sbin/ifconfig /tmp/root/bin
207chroot /tmp/root/ busybox sh /bin/setup.sh238 cp /sbin/udhcpc /tmp/root/bin
208 239 cp /path/to/setup.sh /tmp/root/bin
209run ./run_nfs.sh240 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=====================
4TLAN driver for Linux
5=====================
6
7:Version: 1.14a
8
1(C) 1997-1998 Caldera, Inc.9(C) 1997-1998 Caldera, Inc.
10
2(C) 1998 James Banks11(C) 1998 James Banks
12
3(C) 1999-2001 Torben Mathiasen <tmm@image.dk, torben.mathiasen@compaq.com>13(C) 1999-2001 Torben Mathiasen <tmm@image.dk, torben.mathiasen@compaq.com>
4 14
5For driver information/updates visit http://www.compaq.com15For driver information/updates visit http://www.compaq.com
6 16
7 17
8TLAN driver for Linux, version 1.14a
9README
10 18
11 19
12I. Supported Devices.20
21I. Supported Devices
22====================
13 23
14 Only PCI devices will work with this driver.24 Only PCI devices will work with this driver.
15 25
16 Supported:26 Supported:
27
28 ========= ========= ===========================================
17 Vendor ID Device ID Name29 Vendor ID Device ID Name
30 ========= ========= ===========================================
18 0e11 ae32 Compaq Netelligent 10/100 TX PCI UTP31 0e11 ae32 Compaq Netelligent 10/100 TX PCI UTP
19 0e11 ae34 Compaq Netelligent 10 T PCI UTP32 0e11 ae34 Compaq Netelligent 10 T PCI UTP
20 0e11 ae35 Compaq Integrated NetFlex 3/P33 0e11 ae35 Compaq Integrated NetFlex 3/P
@@ -25,13 +38,14 @@ I. Supported Devices. · 4 unmodified lines
25 0e11 b030 Compaq Netelligent 10/100 TX UTP38 0e11 b030 Compaq Netelligent 10/100 TX UTP
26 0e11 f130 Compaq NetFlex 3/P39 0e11 f130 Compaq NetFlex 3/P
27 0e11 f150 Compaq NetFlex 3/P40 0e11 f150 Compaq NetFlex 3/P
28 108d 0012 Olicom OC-2325 41 108d 0012 Olicom OC-2325
29 108d 0013 Olicom OC-218342 108d 0013 Olicom OC-2183
30 108d 0014 Olicom OC-2326 43 108d 0014 Olicom OC-2326
44 ========= ========= ===========================================
31 45
32 46
33 Caveats:47 Caveats:
34 48
35 I am not sure if 100BaseTX daughterboards (for those cards which49 I am not sure if 100BaseTX daughterboards (for those cards which
36 support such things) will work. I haven't had any solid evidence50 support such things) will work. I haven't had any solid evidence
37 either way.51 either way.
@@ -41,21 +55,25 @@ I. Supported Devices. · 3 unmodified lines
41 55
42 The "Netelligent 10 T/2 PCI UTP/Coax" (b012) device is untested,56 The "Netelligent 10 T/2 PCI UTP/Coax" (b012) device is untested,
43 but I do not expect any problems.57 but I do not expect any problems.
44
45 58
46II. Driver Options59
60II. Driver Options
61==================
62
47 1. You can append debug=x to the end of the insmod line to get63 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 mean64 debug messages, where x is a bit field where the bits mean
49 the following:65 the following:
50 66
67 ==== =====================================
51 0x01 Turn on general debugging messages.68 0x01 Turn on general debugging messages.
52 0x02 Turn on receive debugging messages.69 0x02 Turn on receive debugging messages.
53 0x04 Turn on transmit debugging messages.70 0x04 Turn on transmit debugging messages.
54 0x08 Turn on list debugging messages.71 0x08 Turn on list debugging messages.
72 ==== =====================================
55 73
56 2. You can append aui=1 to the end of the insmod line to cause74 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 T75 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 BNC76 interface. This is also what to do if you want to use the BNC
59 connector on a TLAN based device. (Setting this option on a77 connector on a TLAN based device. (Setting this option on a
60 device that does not have an AUI/BNC connector will probably78 device that does not have an AUI/BNC connector will probably
61 cause it to not function correctly.)79 cause it to not function correctly.)
@@ -70,41 +88,45 @@ II. Driver Options · 8 unmodified lines
70 88
71 5. You have to use speed=X duplex=Y together now. If you just89 5. You have to use speed=X duplex=Y together now. If you just
72 do "insmod tlan.o speed=100" the driver will do Auto-Neg.90 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
74 duplex=1".92 duplex=1".
75 93
76 6. If the driver is built into the kernel, you can use the 3rd94 6. If the driver is built into the kernel, you can use the 3rd
77 and 4th parameters to set aui and debug respectively. For95 and 4th parameters to set aui and debug respectively. For
78 example:96 example::
79 97
80 ether=0,0,0x1,0x7,eth098 ether=0,0,0x1,0x7,eth0
81 99
82 This sets aui to 0x1 and debug to 0x7, assuming eth0 is a100 This sets aui to 0x1 and debug to 0x7, assuming eth0 is a
83 supported TLAN device.101 supported TLAN device.
84 102
85 The bits in the third byte are assigned as follows:103 The bits in the third byte are assigned as follows:
86 104
87 0x01 = aui105 ==== ===============
88 0x02 = use half duplex106 0x01 aui
89 0x04 = use full duplex107 0x02 use half duplex
90 0x08 = use 10BaseT108 0x04 use full duplex
91 0x10 = use 100BaseTx109 0x08 use 10BaseT
110 0x10 use 100BaseTx
111 ==== ===============
92 112
93 You also need to set both speed and duplex settings when forcing113 You also need to set both speed and duplex settings when forcing
94 speeds with kernel-parameters. 114 speeds with kernel-parameters.
95 ether=0,0,0x12,0,eth0 will force link to 100Mbps Half-Duplex.115 ether=0,0,0x12,0,eth0 will force link to 100Mbps Half-Duplex.
96 116
97 7. If you have more than one tlan adapter in your system, you can117 7. If you have more than one tlan adapter in your system, you can
98 use the above options on a per adapter basis. To force a 100Mbit/HD118 use the above options on a per adapter basis. To force a 100Mbit/HD
99 link with your eth1 adapter use:119 link with your eth1 adapter use::
100 120
101 insmod tlan speed=0,100 duplex=0,1121 insmod tlan speed=0,100 duplex=0,1
102 122
103 Now eth0 will use auto-neg and eth1 will be forced to 100Mbit/HD.123 Now eth0 will use auto-neg and eth1 will be forced to 100Mbit/HD.
104 Note that the tlan driver supports a maximum of 8 adapters.124 Note that the tlan driver supports a maximum of 8 adapters.
105 125
106 126
107III. Things to try if you have problems.127III. Things to try if you have problems
128=======================================
129
108 1. Make sure your card's PCI id is among those listed in130 1. Make sure your card's PCI id is among those listed in
109 section I, above.131 section I, above.
110 2. Make sure routing is correct.132 2. Make sure routing is correct.
@@ -113,5 +135,6 @@ III. Things to try if you have problems. · 2 unmodified lines
113 135
114There is also a tlan mailing list which you can join by sending "subscribe tlan"136There is also a tlan mailing list which you can join by sending "subscribe tlan"
115in the body of an email to majordomo@vuser.vu.union.edu.137in the body of an email to majordomo@vuser.vu.union.edu.
138
116There is also a tlan website at http://www.compaq.com139There is also a tlan website at http://www.compaq.com
117 140
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
1 2
2 The Spidernet Device Driver3===========================
3 ===========================4The Spidernet Device Driver
5===========================
4 6
5Written by Linas Vepstas <linas@austin.ibm.com>7Written by Linas Vepstas <linas@austin.ibm.com>
6 8
@@ -78,15 +80,15 @@ GDACTDPA, tail and head pointers. It will also summarize the contents · 71 unmodified lines
78of the ring, starting at the tail pointer, and listing the status80of the ring, starting at the tail pointer, and listing the status
79of the descrs that follow.81of the descrs that follow.
80 82
81A typical example of the output, for a nearly idle system, might be83A typical example of the output, for a nearly idle system, might be::
82 84
83net eth1: Total number of descrs=25685 net eth1: Total number of descrs=256
84net eth1: Chain tail located at descr=2086 net eth1: Chain tail located at descr=20
85net eth1: Chain head is at 2087 net eth1: Chain head is at 20
86net eth1: HW curr desc (GDACTDPA) is at 2188 net eth1: HW curr desc (GDACTDPA) is at 21
87net eth1: Have 1 descrs with stat=x4080010189 net eth1: Have 1 descrs with stat=x40800101
88net eth1: HW next desc (GDACNEXTDA) is at 2290 net eth1: HW next desc (GDACNEXTDA) is at 22
89net eth1: Last 255 descrs with stat=xa080000091 net eth1: Last 255 descrs with stat=xa0800000
90 92
91In the above, the hardware has filled in one descr, number 20. Both93In the above, the hardware has filled in one descr, number 20. Both
92head and tail are pointing at 20, because it has not yet been emptied.94head 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
101to "empty". The actual value printed is RXCOMST_A.103to "empty". The actual value printed is RXCOMST_A.
102 104
103In the device driver source code, a different set of names are105In the device driver source code, a different set of names are
104used for these same concepts, so that106used for these same concepts, so that::
105 107
106"empty" == SPIDER_NET_DESCR_CARDOWNED == 0xa108 "empty" == SPIDER_NET_DESCR_CARDOWNED == 0xa
107"full" == SPIDER_NET_DESCR_FRAME_END == 0x4109 "full" == SPIDER_NET_DESCR_FRAME_END == 0x4
108"not in use" == SPIDER_NET_DESCR_NOT_IN_USE == 0xf110 "not in use" == SPIDER_NET_DESCR_NOT_IN_USE == 0xf
109 111
110 112
111The RX RAM full bug/feature113The 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
137empty.139empty.
138 140
139A call to show_rx_chain() at this point indicates the nature of the141A call to show_rx_chain() at this point indicates the nature of the
140problem. A typical print when the network is hung shows the following:142problem. A typical print when the network is hung shows the following::
141 143
142net eth1: Spider RX RAM full, incoming packets might be discarded!144 net eth1: Spider RX RAM full, incoming packets might be discarded!
143net eth1: Total number of descrs=256145 net eth1: Total number of descrs=256
144net eth1: Chain tail located at descr=255146 net eth1: Chain tail located at descr=255
145net eth1: Chain head is at 255147 net eth1: Chain head is at 255
146net eth1: HW curr desc (GDACTDPA) is at 0148 net eth1: HW curr desc (GDACTDPA) is at 0
147net eth1: Have 1 descrs with stat=xa0800000149 net eth1: Have 1 descrs with stat=xa0800000
148net eth1: HW next desc (GDACNEXTDA) is at 1150 net eth1: HW next desc (GDACNEXTDA) is at 1
149net eth1: Have 127 descrs with stat=x40800101151 net eth1: Have 127 descrs with stat=x40800101
150net eth1: Have 1 descrs with stat=x40800001152 net eth1: Have 1 descrs with stat=x40800001
151net eth1: Have 126 descrs with stat=x40800101153 net eth1: Have 126 descrs with stat=x40800101
152net eth1: Last 1 descrs with stat=xa0800000154 net eth1: Last 1 descrs with stat=xa0800000
153 155
154Both the tail and head pointers are pointing at descr 255, which is156Both the tail and head pointers are pointing at descr 255, which is
155marked xa... which is "empty". Thus, from the OS point of view, there157marked 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
198of interrupts, about 1K/sec. For smaller packets, this will drop to zero200of interrupts, about 1K/sec. For smaller packets, this will drop to zero
199interrupts, as the hardware can empty the queue faster than the kernel201interrupts, as the hardware can empty the queue faster than the kernel
200can fill it.202can fill it.
201
202
203 ======= END OF DOCUMENT ========
204
Documentation/networking/devlink-params-sja1105.txt+27−0
@@ -0,0 +1,27 @@
1best_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
14or dump commands. This allows future analysis on the created snapshots.14or dump commands. This allows future analysis on the created snapshots.
15Regions may optionally support triggering snapshots on demand.15Regions may optionally support triggering snapshots on demand.
16 16
17Snapshot identifiers are scoped to the devlink instance, not a region.
18All snapshots with the same snapshot id within a devlink instance
19correspond to the same event.
20
17The major benefit to creating a region is to provide access to internal21The major benefit to creating a region is to provide access to internal
18address regions that are otherwise inaccessible to the user.22address regions that are otherwise inaccessible to the user.
19 23
@@ -23,7 +27,9 @@ states, but see also :doc:`devlink-health` · 3 unmodified lines
23Regions may optionally support capturing a snapshot on demand via the27Regions may optionally support capturing a snapshot on demand via the
24``DEVLINK_CMD_REGION_NEW`` netlink message. A driver wishing to allow28``DEVLINK_CMD_REGION_NEW`` netlink message. A driver wishing to allow
25requested snapshots must implement the ``.snapshot`` callback for the region29requested snapshots must implement the ``.snapshot`` callback for the region
26in its ``devlink_region_ops`` structure.30in its ``devlink_region_ops`` structure. If snapshot id is not set in
31the ``DEVLINK_CMD_REGION_NEW`` request kernel will allocate one and send
32the snapshot information to user space.
27 33
28example usage34example usage
29-------------35-------------
@@ -45,7 +51,8 @@ example usage · 15 unmodified lines
45 $ devlink region del pci/0000:00:05.0/cr-space snapshot 151 $ devlink region del pci/0000:00:05.0/cr-space snapshot 1
46 52
47 # Request an immediate snapshot, if supported by the region53 # Request an immediate snapshot, if supported by the region
48 $ devlink region new pci/0000:00:05.0/cr-space snapshot 554 $ devlink region new pci/0000:00:05.0/cr-space
55 pci/0000:00:05.0/cr-space: snapshot 5
49 56
50 # Dump a snapshot:57 # Dump a snapshot:
51 $ devlink region dump pci/0000:00:05.0/fw-health snapshot 158 $ 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
55 | |55 | |
56 +-------^--------+56 +-------^--------+
57 |57 |
58 |58 | Non-control traps
59 |59 |
60 +----+----+60 +----+----+
61 | | Kernel's Rx path61 | | Kernel's Rx path
@@ -97,6 +97,12 @@ The ``devlink-trap`` mechanism supports the following packet trap types: · 35 unmodified lines
97 processed by ``devlink`` and injected to the kernel's Rx path. Changing the97 processed by ``devlink`` and injected to the kernel's Rx path. Changing the
98 action of such traps is not allowed, as it can easily break the control98 action of such traps is not allowed, as it can easily break the control
99 plane.99 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.
100 106
101.. _Trap-Actions:107.. _Trap-Actions:
102 108
@@ -108,6 +114,8 @@ The ``devlink-trap`` mechanism supports the following packet trap actions: · 5 unmodified lines
108 * ``trap``: The sole copy of the packet is sent to the CPU.114 * ``trap``: The sole copy of the packet is sent to the CPU.
109 * ``drop``: The packet is dropped by the underlying device and a copy is not115 * ``drop``: The packet is dropped by the underlying device and a copy is not
110 sent to the CPU.116 sent to the CPU.
117 * ``mirror``: The packet is forwarded by the underlying device and a copy is
118 sent to the CPU.
111 119
112Generic Packet Traps120Generic Packet Traps
113====================121====================
@@ -244,6 +252,159 @@ be added to the following table: · 130 unmodified lines
244 * - ``egress_flow_action_drop``252 * - ``egress_flow_action_drop``
245 - ``drop``253 - ``drop``
246 - Traps packets dropped during processing of egress flow action drop254 - 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)
247 408
248Driver-specific Packet Traps409Driver-specific Packet Traps
249============================410============================
@@ -277,8 +438,11 @@ narrow. The description of these groups must be added to the following table: · 27 unmodified lines
277 - Contains packet traps for packets that were dropped by the device during438 - Contains packet traps for packets that were dropped by the device during
278 layer 2 forwarding (i.e., bridge)439 layer 2 forwarding (i.e., bridge)
279 * - ``l3_drops``440 * - ``l3_drops``
280 - Contains packet traps for packets that were dropped by the device or hit441 - Contains packet traps for packets that were dropped by the device during
281 an exception (e.g., TTL error) during layer 3 forwarding442 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
282 * - ``buffer_drops``446 * - ``buffer_drops``
283 - Contains packet traps for packets that were dropped by the device due to447 - Contains packet traps for packets that were dropped by the device due to
284 an enqueue decision448 an enqueue decision
@@ -288,6 +452,55 @@ narrow. The description of these groups must be added to the following table: · 3 unmodified lines
288 * - ``acl_drops``452 * - ``acl_drops``
289 - Contains packet traps for packets that were dropped by the device during453 - Contains packet traps for packets that were dropped by the device during
290 ACL processing454 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
291 504
292Packet Trap Policers505Packet Trap Policers
293====================506====================
Documentation/networking/devlink/ice.rst+11−0
@@ -69,6 +69,17 @@ The ``ice`` driver reports the following versions · 68 unmodified lines
69 - The version of the DDP package that is active in the device. Note69 - The version of the DDP package that is active in the device. Note
70 that both the name (as reported by ``fw.app.name``) and version are70 that both the name (as reported by ``fw.app.name``) and version are
71 required to uniquely identify the package.71 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.
72 83
73Regions84Regions
74=======85=======
Documentation/networking/dns_resolver.rstrenamed from Documentation/networking/dns_resolver.txt+25−27
@@ -1,8 +1,10 @@
1 ===================1.. SPDX-License-Identifier: GPL-2.0
2 DNS Resolver Module
3 ===================
4 2
5Contents:3===================
4DNS Resolver Module
5===================
6
7.. Contents:
6 8
7 - Overview.9 - Overview.
8 - Compilation.10 - Compilation.
@@ -12,8 +14,7 @@ Contents: · 3 unmodified lines
12 - Debugging.14 - Debugging.
13 15
14 16
15========17Overview
16OVERVIEW
17========18========
18 19
19The DNS resolver module provides a way for kernel services to make DNS queries20The 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
33This code is extracted from the CIFS filesystem.34This code is extracted from the CIFS filesystem.
34 35
35 36
36===========37Compilation
37COMPILATION
38===========38===========
39 39
40The module should be enabled by turning on the kernel configuration options:40The module should be enabled by turning on the kernel configuration options::
41 41
42 CONFIG_DNS_RESOLVER - tristate "DNS Resolver support"42 CONFIG_DNS_RESOLVER - tristate "DNS Resolver support"
43 43
44 44
45==========45Setting up
46SETTING UP
47==========46==========
48 47
49To set up this facility, the /etc/request-key.conf file must be altered so that48To set up this facility, the /etc/request-key.conf file must be altered so that
50/sbin/request-key can appropriately direct the upcalls. For example, to handle49/sbin/request-key can appropriately direct the upcalls. For example, to handle
51basic dname to IPv4/IPv6 address resolution, the following line should be50basic dname to IPv4/IPv6 address resolution, the following line should be
52added:51added::
52
53 53
54 #OP TYPE DESC CO-INFO PROGRAM ARG1 ARG2 ARG3 ...54 #OP TYPE DESC CO-INFO PROGRAM ARG1 ARG2 ARG3 ...
55 #====== ============ ======= ======= ==========================55 #====== ============ ======= ======= ==========================
56 create dns_resolver * * /usr/sbin/cifs.upcall %k56 create dns_resolver * * /usr/sbin/cifs.upcall %k
57 57
58To direct a query for query type 'foo', a line of the following should be added58To direct a query for query type 'foo', a line of the following should be added
59before the more general line given above as the first match is the one taken.59before the more general line given above as the first match is the one taken::
60 60
61 create dns_resolver foo:* * /usr/sbin/dns.foo %k61 create dns_resolver foo:* * /usr/sbin/dns.foo %k
62 62
63 63
64=====64Usage
65USAGE
66=====65=====
67 66
68To make use of this facility, one of the following functions that are67To make use of this facility, one of the following functions that are
69implemented in the module can be called after doing:68implemented in the module can be called after doing::
70 69
71 #include <linux/dns_resolver.h>70 #include <linux/dns_resolver.h>
72 71
73 (1) int dns_query(const char *type, const char *name, size_t namelen,72 ::
74 const char *options, char **_result, time_t *_expiry);73
74 int dns_query(const char *type, const char *name, size_t namelen,
75 const char *options, char **_result, time_t *_expiry);
75 76
76 This is the basic access function. It looks for a cached DNS query and if77 This is the basic access function. It looks for a cached DNS query and if
77 it doesn't find it, it upcalls to userspace to make a new DNS query, which78 it doesn't find it, it upcalls to userspace to make a new DNS query, which
78 may then be cached. The key description is constructed as a string of the79 may then be cached. The key description is constructed as a string of the
79 form:80 form::
80 81
81 [<type>:]<name>82 [<type>:]<name>
82 83
@@ -107,16 +108,14 @@ This can be cleared by any process that has the CAP_SYS_ADMIN capability by · 24 unmodified lines
107the use of KEYCTL_KEYRING_CLEAR on the keyring ID.108the use of KEYCTL_KEYRING_CLEAR on the keyring ID.
108 109
109 110
110===============================111Reading DNS Keys from Userspace
111READING DNS KEYS FROM USERSPACE
112===============================112===============================
113 113
114Keys of dns_resolver type can be read from userspace using keyctl_read() or114Keys of dns_resolver type can be read from userspace using keyctl_read() or
115"keyctl read/print/pipe".115"keyctl read/print/pipe".
116 116
117 117
118=========118Mechanism
119MECHANISM
120=========119=========
121 120
122The dnsresolver module registers a key type called "dns_resolver". Keys of121The 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
147information about request-key function.146information about request-key function.
148 147
149 148
150=========149Debugging
151DEBUGGING
152=========150=========
153 151
154Debugging messages can be turned on dynamically by writing a 1 into the152Debugging messages can be turned on dynamically by writing a 1 into the
155following file:153following file::
156 154
157 /sys/module/dnsresolver/parameters/debug155 /sys/module/dnsresolver/parameters/debug
Documentation/networking/driver.rstrenamed from Documentation/networking/driver.txt+13−9
@@ -1,4 +1,8 @@
1Document about softnet driver issues1.. SPDX-License-Identifier: GPL-2.0
2
3=====================
4Softnet Driver Issues
5=====================
2 6
3Transmit path guidelines:7Transmit path guidelines:
4 8
@@ -8,7 +12,7 @@ Transmit path guidelines: · 3 unmodified lines
8 transmit function will become busy.12 transmit function will become busy.
9 13
10 Instead it must maintain the queue properly. For example,14 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::
12 16
13 static netdev_tx_t drv_hard_start_xmit(struct sk_buff *skb,17 static netdev_tx_t drv_hard_start_xmit(struct sk_buff *skb,
14 struct net_device *dev)18 struct net_device *dev)
@@ -38,25 +42,25 @@ Transmit path guidelines: · 23 unmodified lines
38 return NETDEV_TX_OK;42 return NETDEV_TX_OK;
39 }43 }
40 44
41 And then at the end of your TX reclamation event handling:45 And then at the end of your TX reclamation event handling::
42 46
43 if (netif_queue_stopped(dp->dev) &&47 if (netif_queue_stopped(dp->dev) &&
44 TX_BUFFS_AVAIL(dp) > (MAX_SKB_FRAGS + 1))48 TX_BUFFS_AVAIL(dp) > (MAX_SKB_FRAGS + 1))
45 netif_wake_queue(dp->dev);49 netif_wake_queue(dp->dev);
46 50
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::
48 52
49 /* This is a hard error log it. */53 /* This is a hard error log it. */
50 if (TX_BUFFS_AVAIL(dp) <= 0)54 if (TX_BUFFS_AVAIL(dp) <= 0)
51 55
52 and:56 and::
53 57
54 if (TX_BUFFS_AVAIL(dp) == 0)58 if (TX_BUFFS_AVAIL(dp) == 0)
55 59
56 and:60 and::
57 61
58 if (netif_queue_stopped(dp->dev) &&62 if (netif_queue_stopped(dp->dev) &&
59 TX_BUFFS_AVAIL(dp) > 0)63 TX_BUFFS_AVAIL(dp) > 0)
60 netif_wake_queue(dp->dev);64 netif_wake_queue(dp->dev);
61 65
622) An ndo_start_xmit method must not modify the shared parts of a662) An ndo_start_xmit method must not modify the shared parts of a
@@ -86,7 +90,7 @@ Close/stop guidelines: · 23 unmodified lines
86 90
871) After the ndo_stop routine has been called, the hardware must911) After the ndo_stop routine has been called, the hardware must
88 not receive or transmit any data. All in flight packets must92 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
90 any reset commands.94 any reset commands.
91 95
922) The ndo_stop routine will be called by unregister_netdevice962) 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
66Traffic support66Traffic support
67===============67===============
68 68
69The switches do not support switch tagging in hardware. But they do support69The switches do not have hardware support for DSA tags, except for "slow
70customizing the TPID by which VLAN traffic is identified as such. The switch70protocols" for switch control as STP and PTP. For these, the switches have two
71driver is leveraging ``CONFIG_NET_DSA_TAG_8021Q`` by requesting that special71programmable filters for link-local destination MACs.
72VLANs (with a custom TPID of ``ETH_P_EDSA`` instead of ``ETH_P_8021Q``) are
73installed on its ports when not in ``vlan_filtering`` mode. This does not
74interfere with the reception and transmission of real 802.1Q-tagged traffic,
75because the switch does no longer parse those packets as VLAN after the TPID
76change.
77The TPID is restored when ``vlan_filtering`` is requested by the user through
78the bridge layer, and general IP termination becomes no longer possible through
79the switch netdevices in this mode.
80
81The switches have two programmable filters for link-local destination MACs.
82These are used to trap BPDUs and PTP traffic to the master netdevice, and are72These are used to trap BPDUs and PTP traffic to the master netdevice, and are
83further used to support STP and 1588 ordinary clock/boundary clock73further used to support STP and 1588 ordinary clock/boundary clock
84functionality.74functionality. For frames trapped to the CPU, source port and switch ID
85 75information is encoded by the hardware into the frames.
86The following traffic modes are supported over the switch netdevices:76
87 77But by leveraging ``CONFIG_NET_DSA_TAG_8021Q`` (a software-defined DSA tagging
88+--------------------+------------+------------------+------------------+78format based on VLANs), general-purpose traffic termination through the network
89| | Standalone | Bridged with | Bridged with |79stack can be supported under certain circumstances.
90| | ports | vlan_filtering 0 | vlan_filtering 1 |80
91+====================+============+==================+==================+81Depending on VLAN awareness state, the following operating modes are possible
92| Regular traffic | Yes | Yes | No (use master) |82with the switch:
93+--------------------+------------+------------------+------------------+83
94| Management traffic | Yes | Yes | Yes |84- Mode 1 (VLAN-unaware): a port is in this mode when it is used as a standalone
95| (BPDU, PTP) | | | |85 net device, or when it is enslaved to a bridge with ``vlan_filtering=0``.
96+--------------------+------------+------------------+------------------+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
100To summarize, in each mode, the following types of traffic are supported over
101the 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
114To configure the switch to operate in Mode 3, the following steps can be
115followed::
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
156CPU in mode 3 is possible through VLAN retagging of packets that go from the
157switch to the CPU. In cross-chip topologies, the port that goes to the CPU
158might also go to other switches. In that case, those other switches will see
159only a retagged packet (which only has meaning for the CPU). So if they are
160interested in this VLAN, they need to apply retagging in the reverse direction,
161to recover the original value from it. This consumes extra hardware resources
162for this switch. There is a maximum of 32 entries in the Retagging Table of
163each switch device.
164
165As 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
186To reach the CPU, SJA1105 switch 1 (spi/spi2.1) uses the same port as is uses
187to reach SJA1105 switch 2 (spi/spi2.2), which would be port 4 (not drawn).
188Similarly for SJA1105 switch 2.
189
190Also consider the following commands, that add VLAN 100 to every sja1105 user
191port::
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
237SJA1105 switch 1 consumes 1 retagging entry for each VLAN on each user port
238towards the CPU. It also consumes 1 retagging entry for each non-pvid VLAN that
239it is also interested in, which is configured on any port of any neighbor
240switch.
241
242In this case, SJA1105 switch 1 consumes a total of 11 retagging entries, as
243follows:
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
251SJA1105 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``).
97 256
98Switching features257Switching features
99==================258==================
@@ -230,6 +389,122 @@ simultaneously on two ports. The driver checks the consistency of the schedules · 130 unmodified lines
230against this restriction and errors out when appropriate. Schedule analysis is389against this restriction and errors out when appropriate. Schedule analysis is
231needed to avoid this, which is outside the scope of the document.390needed to avoid this, which is outside the scope of the document.
232 391
392Routing actions (redirect, trap, drop)
393--------------------------------------
394
395The switch is able to offload flow-based redirection of packets to a set of
396destination ports specified by the user. Internally, this is implemented by
397making use of Virtual Links, a TTEthernet concept.
398
399The 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
405The VLAN awareness state of the bridge (vlan_filtering) cannot be changed while
406there are virtual link rules installed.
407
408Composing multiple actions inside the same rule is supported. When only routing
409actions are requested, the driver creates a "non-critical" virtual link. When
410the action list also contains tc-gate (more details below), the virtual link
411becomes "time-critical" (draws frame buffers from a reserved memory partition,
412etc).
413
414The 3 routing actions that are supported are "trap", "drop" and "redirect".
415
416Example 1: send frames received on swp2 with a DA of 42:be:24:9b:76:20 to the
417CPU and to swp3. This type of key (DA only) when the port's VLAN awareness
418state 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
425Example 2: drop frames received on swp2 with a DA of 42:be:24:9b:76:20, a VID
426of 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
431Time-based ingress policing
432---------------------------
433
434The TTEthernet hardware abilities of the switch can be constrained to act
435similarly to the Per-Stream Filtering and Policing (PSFP) clause specified in
436IEEE 802.1Q-2018 (formerly 802.1Qci). This means it can be used to perform
437tight timing-based admission control for up to 1024 flows (identified by a
438tuple composed of destination MAC address, VLAN ID and VLAN PCP). Packets which
439are received outside their expected reception window are dropped.
440
441This capability can be managed through the offload of the tc-gate action. As
442routing actions are intrinsic to virtual links in TTEthernet (which performs
443explicit routing of time-critical traffic and does not leave that in the hands
444of the FDB, flooding etc), the tc-gate action may never appear alone when
445asking sja1105 to offload it. One (or more) redirect or trap actions must also
446follow along.
447
448Example: create a tc-taprio schedule that is phase-aligned with a tc-gate
449schedule (the clocks must be synchronized by a 1588 application stack, which is
450outside the scope of this document). No packet delivered by the sender will be
451dropped. 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
453delay of the link (which can be determined by the 1588 application stack).
454
455Receiver (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
469Sender::
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
484The engine used to schedule the ingress gate operations is the same that the
485one used for the tc-taprio offload. Therefore, the restrictions regarding the
486fact that no two gate actions (either tc-gate or tc-taprio gates) may fire at
487the same time (during the same 200 ns slot) still apply.
488
489To come in handy, it is possible to share time-triggered virtual links across
490more than 1 ingress port, via flow blocks. In this case, the restriction of
491firing at the same time does not apply because there is a single schedule in
492the 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
503Hardware statistics for each flow are also available ("pkts" counts the number
504of dropped frames, which is a sum of frames dropped due to timing violations,
505lack of destination ports and MTU enforcement checks). Byte-level counters are
506not available.
507
233Device Tree bindings and board design508Device Tree bindings and board design
234=====================================509=====================================
235 510
Documentation/networking/eql.rstrenamed from Documentation/networking/eql.txt+144−299
@@ -1,5 +1,11 @@
1 EQL Driver: Serial IP Load Balancing HOWTO1.. SPDX-License-Identifier: GPL-2.0
2
3==========================================
4EQL Driver: Serial IP Load Balancing HOWTO
5==========================================
6
2 Simon "Guru Aleph-Null" Janes, simon@ncm.com7 Simon "Guru Aleph-Null" Janes, simon@ncm.com
8
3 v1.1, February 27, 19959 v1.1, February 27, 1995
4 10
5 This is the manual for the EQL device driver. EQL is a software device11 This is the manual for the EQL device driver. EQL is a software device
@@ -12,7 +18,8 @@ · 6 unmodified lines
12 which was only created to patch cleanly in the very latest kernel18 which was only created to patch cleanly in the very latest kernel
13 source trees. (Yes, it worked fine.)19 source trees. (Yes, it worked fine.)
14 20
15 1. Introduction211. Introduction
22===============
16 23
17 Which is worse? A huge fee for a 56K leased line or two phone lines?24 Which is worse? A huge fee for a 56K leased line or two phone lines?
18 It's probably the former. If you find yourself craving more bandwidth,25 It's probably the former. If you find yourself craving more bandwidth,
@@ -41,47 +48,40 @@ · 22 unmodified lines
41 Hey, we can all dream you know...48 Hey, we can all dream you know...
42 49
43 50
44 2. Kernel Configuration512. Kernel Configuration
52=======================
45 53
46 Here I describe the general steps of getting a kernel up and working54 Here I describe the general steps of getting a kernel up and working
47 with the eql driver. From patching, building, to installing.55 with the eql driver. From patching, building, to installing.
48 56
49 57
50 2.1. Patching The Kernel582.1. Patching The Kernel
59------------------------
51 60
52 If you do not have or cannot get a copy of the kernel with the eql61 If you do not have or cannot get a copy of the kernel with the eql
53 driver folded into it, get your copy of the driver from62 driver folded into it, get your copy of the driver from
54 ftp://slaughter.ncm.com/pub/Linux/LOAD_BALANCING/eql-1.1.tar.gz.63 ftp://slaughter.ncm.com/pub/Linux/LOAD_BALANCING/eql-1.1.tar.gz.
55 Unpack this archive someplace obvious like /usr/local/src/. It will64 Unpack this archive someplace obvious like /usr/local/src/. It will
56 create the following files:65 create the following files::
57
58
59 66
60 ______________________________________________________________________
61 -rw-r--r-- guru/ncm 198 Jan 19 18:53 1995 eql-1.1/NO-WARRANTY67 -rw-r--r-- guru/ncm 198 Jan 19 18:53 1995 eql-1.1/NO-WARRANTY
62 -rw-r--r-- guru/ncm 30620 Feb 27 21:40 1995 eql-1.1/eql-1.1.patch68 -rw-r--r-- guru/ncm 30620 Feb 27 21:40 1995 eql-1.1/eql-1.1.patch
63 -rwxr-xr-x guru/ncm 16111 Jan 12 22:29 1995 eql-1.1/eql_enslave69 -rwxr-xr-x guru/ncm 16111 Jan 12 22:29 1995 eql-1.1/eql_enslave
64 -rw-r--r-- guru/ncm 2195 Jan 10 21:48 1995 eql-1.1/eql_enslave.c70 -rw-r--r-- guru/ncm 2195 Jan 10 21:48 1995 eql-1.1/eql_enslave.c
65 ______________________________________________________________________
66 71
67 Unpack a recent kernel (something after 1.1.92) someplace convenient72 Unpack a recent kernel (something after 1.1.92) someplace convenient
68 like say /usr/src/linux-1.1.92.eql. Use symbolic links to point73 like say /usr/src/linux-1.1.92.eql. Use symbolic links to point
69 /usr/src/linux to this development directory.74 /usr/src/linux to this development directory.
70 75
71 76
72 Apply the patch by running the commands:77 Apply the patch by running the commands::
73 78
74
75 ______________________________________________________________________
76 cd /usr/src79 cd /usr/src
77 patch </usr/local/src/eql-1.1/eql-1.1.patch80 patch </usr/local/src/eql-1.1/eql-1.1.patch
78 ______________________________________________________________________
79
80
81 81
82 82
83 832.2. Building The Kernel
84 2.2. Building The Kernel84------------------------
85 85
86 After patching the kernel, run make config and configure the kernel86 After patching the kernel, run make config and configure the kernel
87 for your hardware.87 for your hardware.
@@ -90,7 +90,8 @@ · 2 unmodified lines
90 After configuration, make and install according to your habit.90 After configuration, make and install according to your habit.
91 91
92 92
93 3. Network Configuration933. Network Configuration
94========================
94 95
95 So far, I have only used the eql device with the DSLIP SLIP connection96 So far, I have only used the eql device with the DSLIP SLIP connection
96 manager by Matt Dillon (-- "The man who sold his soul to code so much97 manager by Matt Dillon (-- "The man who sold his soul to code so much
@@ -100,37 +101,27 @@ · 3 unmodified lines
100 connection.101 connection.
101 102
102 103
103 3.1. /etc/rc.d/rc.inet11043.1. /etc/rc.d/rc.inet1
105-----------------------
104 106
105 In rc.inet1, ifconfig the eql device to the IP address you usually use107 In rc.inet1, ifconfig the eql device to the IP address you usually use
106 for your machine, and the MTU you prefer for your SLIP lines. One108 for your machine, and the MTU you prefer for your SLIP lines. One
107 could argue that MTU should be roughly half the usual size for two109 could argue that MTU should be roughly half the usual size for two
108 modems, one-third for three, one-fourth for four, etc... But going110 modems, one-third for three, one-fourth for four, etc... But going
109 too far below 296 is probably overkill. Here is an example ifconfig111 too far below 296 is probably overkill. Here is an example ifconfig
110 command that sets up the eql device:112 command that sets up the eql device::
111
112 113
113
114 ______________________________________________________________________
115 ifconfig eql 198.67.33.239 mtu 1006114 ifconfig eql 198.67.33.239 mtu 1006
116 ______________________________________________________________________
117
118
119
120
121 115
122 Once the eql device is up and running, add a static default route to116 Once the eql device is up and running, add a static default route to
123 it in the routing table using the cool new route syntax that makes117 it in the routing table using the cool new route syntax that makes
124 life so much easier:118 life so much easier::
125 119
126
127
128 ______________________________________________________________________
129 route add default eql120 route add default eql
130 ______________________________________________________________________
131 121
132 122
133 3.2. Enslaving Devices By Hand1233.2. Enslaving Devices By Hand
124------------------------------
134 125
135 Enslaving devices by hand requires two utility programs: eql_enslave126 Enslaving devices by hand requires two utility programs: eql_enslave
136 and eql_emancipate (-- eql_emancipate hasn't been written because when127 and eql_emancipate (-- eql_emancipate hasn't been written because when
@@ -140,87 +131,56 @@ · 3 unmodified lines
140 131
141 132
142 The syntax for enslaving a device is "eql_enslave <master-name>133 The syntax for enslaving a device is "eql_enslave <master-name>
143 <slave-name> <estimated-bps>". Here are some example enslavings:134 <slave-name> <estimated-bps>". Here are some example enslavings::
144
145 135
146
147 ______________________________________________________________________
148 eql_enslave eql sl0 28800136 eql_enslave eql sl0 28800
149 eql_enslave eql ppp0 14400137 eql_enslave eql ppp0 14400
150 eql_enslave eql sl1 57600138 eql_enslave eql sl1 57600
151 ______________________________________________________________________
152
153
154
155
156 139
157 When you want to free a device from its life of slavery, you can140 When you want to free a device from its life of slavery, you can
158 either down the device with ifconfig (eql will automatically bury the141 either down the device with ifconfig (eql will automatically bury the
159 dead slave and remove it from its queue) or use eql_emancipate to free142 dead slave and remove it from its queue) or use eql_emancipate to free
160 it. (-- Or just ifconfig it down, and the eql driver will take it out143 it. (-- Or just ifconfig it down, and the eql driver will take it out
161 for you.--)144 for you.--)::
162
163
164 145
165 ______________________________________________________________________
166 eql_emancipate eql sl0146 eql_emancipate eql sl0
167 eql_emancipate eql ppp0147 eql_emancipate eql ppp0
168 eql_emancipate eql sl1148 eql_emancipate eql sl1
169 ______________________________________________________________________
170 149
171 150
172 1513.3. DSLIP Configuration for the eql Device
173 152-------------------------------------------
174
175 3.3. DSLIP Configuration for the eql Device
176 153
177 The general idea is to bring up and keep up as many SLIP connections154 The general idea is to bring up and keep up as many SLIP connections
178 as you need, automatically.155 as you need, automatically.
179 156
180 157
181 3.3.1. /etc/slip/runslip.conf1583.3.1. /etc/slip/runslip.conf
182 159^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
183 Here is an example runslip.conf:
184
185
186
187
188
189
190
191
192
193
194
195 160
161 Here is an example runslip.conf::
196 162
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
197 171
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
198 180
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
208 181
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.