1132db935SJakub Kicinski.. SPDX-License-Identifier: GPL-2.0 2132db935SJakub Kicinski.. include:: <isonum.txt> 3132db935SJakub Kicinski 4132db935SJakub Kicinski=============================== 5132db935SJakub KicinskiMarvell(Aquantia) AQtion Driver 6132db935SJakub Kicinski=============================== 7132db935SJakub Kicinski 8132db935SJakub KicinskiFor the aQuantia Multi-Gigabit PCI Express Family of Ethernet Adapters 9132db935SJakub Kicinski 10132db935SJakub Kicinski.. Contents 11132db935SJakub Kicinski 12132db935SJakub Kicinski - Identifying Your Adapter 13132db935SJakub Kicinski - Configuration 14132db935SJakub Kicinski - Supported ethtool options 15132db935SJakub Kicinski - Command Line Parameters 16132db935SJakub Kicinski - Config file parameters 17132db935SJakub Kicinski - Support 18132db935SJakub Kicinski - License 19132db935SJakub Kicinski 20132db935SJakub KicinskiIdentifying Your Adapter 21132db935SJakub Kicinski======================== 22132db935SJakub Kicinski 23132db935SJakub KicinskiThe driver in this release is compatible with AQC-100, AQC-107, AQC-108 24132db935SJakub Kicinskibased ethernet adapters. 25132db935SJakub Kicinski 26132db935SJakub Kicinski 27132db935SJakub KicinskiSFP+ Devices (for AQC-100 based adapters) 28132db935SJakub Kicinski----------------------------------------- 29132db935SJakub Kicinski 30132db935SJakub KicinskiThis release tested with passive Direct Attach Cables (DAC) and SFP+/LC 31132db935SJakub KicinskiOptical Transceiver. 32132db935SJakub Kicinski 33132db935SJakub KicinskiConfiguration 34132db935SJakub Kicinski============= 35132db935SJakub Kicinski 36132db935SJakub KicinskiViewing Link Messages 37132db935SJakub Kicinski--------------------- 38132db935SJakub Kicinski Link messages will not be displayed to the console if the distribution is 39132db935SJakub Kicinski restricting system messages. In order to see network driver link messages on 40132db935SJakub Kicinski your console, set dmesg to eight by entering the following:: 41132db935SJakub Kicinski 42132db935SJakub Kicinski dmesg -n 8 43132db935SJakub Kicinski 44132db935SJakub Kicinski .. note:: 45132db935SJakub Kicinski 46132db935SJakub Kicinski This setting is not saved across reboots. 47132db935SJakub Kicinski 48132db935SJakub KicinskiJumbo Frames 49132db935SJakub Kicinski------------ 50132db935SJakub Kicinski The driver supports Jumbo Frames for all adapters. Jumbo Frames support is 51132db935SJakub Kicinski enabled by changing the MTU to a value larger than the default of 1500. 52132db935SJakub Kicinski The maximum value for the MTU is 16000. Use the `ip` command to 53132db935SJakub Kicinski increase the MTU size. For example:: 54132db935SJakub Kicinski 55132db935SJakub Kicinski ip link set mtu 16000 dev enp1s0 56132db935SJakub Kicinski 57132db935SJakub Kicinskiethtool 58132db935SJakub Kicinski------- 59132db935SJakub Kicinski The driver utilizes the ethtool interface for driver configuration and 60132db935SJakub Kicinski diagnostics, as well as displaying statistical information. The latest 61132db935SJakub Kicinski ethtool version is required for this functionality. 62132db935SJakub Kicinski 63132db935SJakub KicinskiNAPI 64132db935SJakub Kicinski---- 65132db935SJakub Kicinski NAPI (Rx polling mode) is supported in the atlantic driver. 66132db935SJakub Kicinski 67132db935SJakub KicinskiSupported ethtool options 68132db935SJakub Kicinski========================= 69132db935SJakub Kicinski 70132db935SJakub KicinskiViewing adapter settings 71132db935SJakub Kicinski------------------------ 72132db935SJakub Kicinski 73132db935SJakub Kicinski :: 74132db935SJakub Kicinski 75132db935SJakub Kicinski ethtool <ethX> 76132db935SJakub Kicinski 77132db935SJakub Kicinski Output example:: 78132db935SJakub Kicinski 79132db935SJakub Kicinski Settings for enp1s0: 80132db935SJakub Kicinski Supported ports: [ TP ] 81132db935SJakub Kicinski Supported link modes: 100baseT/Full 82132db935SJakub Kicinski 1000baseT/Full 83132db935SJakub Kicinski 10000baseT/Full 84132db935SJakub Kicinski 2500baseT/Full 85132db935SJakub Kicinski 5000baseT/Full 86132db935SJakub Kicinski Supported pause frame use: Symmetric 87132db935SJakub Kicinski Supports auto-negotiation: Yes 88132db935SJakub Kicinski Supported FEC modes: Not reported 89132db935SJakub Kicinski Advertised link modes: 100baseT/Full 90132db935SJakub Kicinski 1000baseT/Full 91132db935SJakub Kicinski 10000baseT/Full 92132db935SJakub Kicinski 2500baseT/Full 93132db935SJakub Kicinski 5000baseT/Full 94132db935SJakub Kicinski Advertised pause frame use: Symmetric 95132db935SJakub Kicinski Advertised auto-negotiation: Yes 96132db935SJakub Kicinski Advertised FEC modes: Not reported 97132db935SJakub Kicinski Speed: 10000Mb/s 98132db935SJakub Kicinski Duplex: Full 99132db935SJakub Kicinski Port: Twisted Pair 100132db935SJakub Kicinski PHYAD: 0 101132db935SJakub Kicinski Transceiver: internal 102132db935SJakub Kicinski Auto-negotiation: on 103132db935SJakub Kicinski MDI-X: Unknown 104132db935SJakub Kicinski Supports Wake-on: g 105132db935SJakub Kicinski Wake-on: d 106132db935SJakub Kicinski Link detected: yes 107132db935SJakub Kicinski 108132db935SJakub Kicinski 109132db935SJakub Kicinski .. note:: 110132db935SJakub Kicinski 111132db935SJakub Kicinski AQrate speeds (2.5/5 Gb/s) will be displayed only with linux kernels > 4.10. 112132db935SJakub Kicinski But you can still use these speeds:: 113132db935SJakub Kicinski 114132db935SJakub Kicinski ethtool -s eth0 autoneg off speed 2500 115132db935SJakub Kicinski 116132db935SJakub KicinskiViewing adapter information 117132db935SJakub Kicinski--------------------------- 118132db935SJakub Kicinski 119132db935SJakub Kicinski :: 120132db935SJakub Kicinski 121132db935SJakub Kicinski ethtool -i <ethX> 122132db935SJakub Kicinski 123132db935SJakub Kicinski Output example:: 124132db935SJakub Kicinski 125132db935SJakub Kicinski driver: atlantic 126132db935SJakub Kicinski version: 5.2.0-050200rc5-generic-kern 127132db935SJakub Kicinski firmware-version: 3.1.78 128132db935SJakub Kicinski expansion-rom-version: 129132db935SJakub Kicinski bus-info: 0000:01:00.0 130132db935SJakub Kicinski supports-statistics: yes 131132db935SJakub Kicinski supports-test: no 132132db935SJakub Kicinski supports-eeprom-access: no 133132db935SJakub Kicinski supports-register-dump: yes 134132db935SJakub Kicinski supports-priv-flags: no 135132db935SJakub Kicinski 136132db935SJakub Kicinski 137132db935SJakub KicinskiViewing Ethernet adapter statistics 138132db935SJakub Kicinski----------------------------------- 139132db935SJakub Kicinski 140132db935SJakub Kicinski :: 141132db935SJakub Kicinski 142132db935SJakub Kicinski ethtool -S <ethX> 143132db935SJakub Kicinski 144132db935SJakub Kicinski Output example:: 145132db935SJakub Kicinski 146132db935SJakub Kicinski NIC statistics: 147132db935SJakub Kicinski InPackets: 13238607 148132db935SJakub Kicinski InUCast: 13293852 149132db935SJakub Kicinski InMCast: 52 150132db935SJakub Kicinski InBCast: 3 151132db935SJakub Kicinski InErrors: 0 152132db935SJakub Kicinski OutPackets: 23703019 153132db935SJakub Kicinski OutUCast: 23704941 154132db935SJakub Kicinski OutMCast: 67 155132db935SJakub Kicinski OutBCast: 11 156132db935SJakub Kicinski InUCastOctects: 213182760 157132db935SJakub Kicinski OutUCastOctects: 22698443 158132db935SJakub Kicinski InMCastOctects: 6600 159132db935SJakub Kicinski OutMCastOctects: 8776 160132db935SJakub Kicinski InBCastOctects: 192 161132db935SJakub Kicinski OutBCastOctects: 704 162132db935SJakub Kicinski InOctects: 2131839552 163132db935SJakub Kicinski OutOctects: 226938073 164132db935SJakub Kicinski InPacketsDma: 95532300 165132db935SJakub Kicinski OutPacketsDma: 59503397 166132db935SJakub Kicinski InOctetsDma: 1137102462 167132db935SJakub Kicinski OutOctetsDma: 2394339518 168132db935SJakub Kicinski InDroppedDma: 0 169132db935SJakub Kicinski Queue[0] InPackets: 23567131 170132db935SJakub Kicinski Queue[0] OutPackets: 20070028 171132db935SJakub Kicinski Queue[0] InJumboPackets: 0 172132db935SJakub Kicinski Queue[0] InLroPackets: 0 173132db935SJakub Kicinski Queue[0] InErrors: 0 174132db935SJakub Kicinski Queue[1] InPackets: 45428967 175132db935SJakub Kicinski Queue[1] OutPackets: 11306178 176132db935SJakub Kicinski Queue[1] InJumboPackets: 0 177132db935SJakub Kicinski Queue[1] InLroPackets: 0 178132db935SJakub Kicinski Queue[1] InErrors: 0 179132db935SJakub Kicinski Queue[2] InPackets: 3187011 180132db935SJakub Kicinski Queue[2] OutPackets: 13080381 181132db935SJakub Kicinski Queue[2] InJumboPackets: 0 182132db935SJakub Kicinski Queue[2] InLroPackets: 0 183132db935SJakub Kicinski Queue[2] InErrors: 0 184132db935SJakub Kicinski Queue[3] InPackets: 23349136 185132db935SJakub Kicinski Queue[3] OutPackets: 15046810 186132db935SJakub Kicinski Queue[3] InJumboPackets: 0 187132db935SJakub Kicinski Queue[3] InLroPackets: 0 188132db935SJakub Kicinski Queue[3] InErrors: 0 189132db935SJakub Kicinski 190132db935SJakub KicinskiInterrupt coalescing support 191132db935SJakub Kicinski---------------------------- 192132db935SJakub Kicinski 193132db935SJakub Kicinski ITR mode, TX/RX coalescing timings could be viewed with:: 194132db935SJakub Kicinski 195132db935SJakub Kicinski ethtool -c <ethX> 196132db935SJakub Kicinski 197132db935SJakub Kicinski and changed with:: 198132db935SJakub Kicinski 199132db935SJakub Kicinski ethtool -C <ethX> tx-usecs <usecs> rx-usecs <usecs> 200132db935SJakub Kicinski 201132db935SJakub Kicinski To disable coalescing:: 202132db935SJakub Kicinski 203132db935SJakub Kicinski ethtool -C <ethX> tx-usecs 0 rx-usecs 0 tx-max-frames 1 tx-max-frames 1 204132db935SJakub Kicinski 205132db935SJakub KicinskiWake on LAN support 206132db935SJakub Kicinski------------------- 207132db935SJakub Kicinski 208132db935SJakub Kicinski WOL support by magic packet:: 209132db935SJakub Kicinski 210132db935SJakub Kicinski ethtool -s <ethX> wol g 211132db935SJakub Kicinski 212132db935SJakub Kicinski To disable WOL:: 213132db935SJakub Kicinski 214132db935SJakub Kicinski ethtool -s <ethX> wol d 215132db935SJakub Kicinski 216132db935SJakub KicinskiSet and check the driver message level 217132db935SJakub Kicinski-------------------------------------- 218132db935SJakub Kicinski 219132db935SJakub Kicinski Set message level 220132db935SJakub Kicinski 221132db935SJakub Kicinski :: 222132db935SJakub Kicinski 223132db935SJakub Kicinski ethtool -s <ethX> msglvl <level> 224132db935SJakub Kicinski 225132db935SJakub Kicinski Level values: 226132db935SJakub Kicinski 227132db935SJakub Kicinski ====== ============================= 228132db935SJakub Kicinski 0x0001 general driver status. 229132db935SJakub Kicinski 0x0002 hardware probing. 230132db935SJakub Kicinski 0x0004 link state. 231132db935SJakub Kicinski 0x0008 periodic status check. 232132db935SJakub Kicinski 0x0010 interface being brought down. 233132db935SJakub Kicinski 0x0020 interface being brought up. 234132db935SJakub Kicinski 0x0040 receive error. 235132db935SJakub Kicinski 0x0080 transmit error. 236132db935SJakub Kicinski 0x0200 interrupt handling. 237132db935SJakub Kicinski 0x0400 transmit completion. 238132db935SJakub Kicinski 0x0800 receive completion. 239132db935SJakub Kicinski 0x1000 packet contents. 240132db935SJakub Kicinski 0x2000 hardware status. 241132db935SJakub Kicinski 0x4000 Wake-on-LAN status. 242132db935SJakub Kicinski ====== ============================= 243132db935SJakub Kicinski 244132db935SJakub Kicinski By default, the level of debugging messages is set 0x0001(general driver status). 245132db935SJakub Kicinski 246132db935SJakub Kicinski Check message level 247132db935SJakub Kicinski 248132db935SJakub Kicinski :: 249132db935SJakub Kicinski 250132db935SJakub Kicinski ethtool <ethX> | grep "Current message level" 251132db935SJakub Kicinski 252132db935SJakub Kicinski If you want to disable the output of messages:: 253132db935SJakub Kicinski 254132db935SJakub Kicinski ethtool -s <ethX> msglvl 0 255132db935SJakub Kicinski 256132db935SJakub KicinskiRX flow rules (ntuple filters) 257132db935SJakub Kicinski------------------------------ 258132db935SJakub Kicinski 259132db935SJakub Kicinski There are separate rules supported, that applies in that order: 260132db935SJakub Kicinski 261132db935SJakub Kicinski 1. 16 VLAN ID rules 262132db935SJakub Kicinski 2. 16 L2 EtherType rules 263132db935SJakub Kicinski 3. 8 L3/L4 5-Tuple rules 264132db935SJakub Kicinski 265132db935SJakub Kicinski 266132db935SJakub Kicinski The driver utilizes the ethtool interface for configuring ntuple filters, 267132db935SJakub Kicinski via ``ethtool -N <device> <filter>``. 268132db935SJakub Kicinski 269132db935SJakub Kicinski To enable or disable the RX flow rules:: 270132db935SJakub Kicinski 271132db935SJakub Kicinski ethtool -K ethX ntuple <on|off> 272132db935SJakub Kicinski 273*a266ef69SRandy Dunlap When disabling ntuple filters, all the user programmed filters are 274132db935SJakub Kicinski flushed from the driver cache and hardware. All needed filters must 275132db935SJakub Kicinski be re-added when ntuple is re-enabled. 276132db935SJakub Kicinski 277132db935SJakub Kicinski Because of the fixed order of the rules, the location of filters is also fixed: 278132db935SJakub Kicinski 279132db935SJakub Kicinski - Locations 0 - 15 for VLAN ID filters 280132db935SJakub Kicinski - Locations 16 - 31 for L2 EtherType filters 281132db935SJakub Kicinski - Locations 32 - 39 for L3/L4 5-tuple filters (locations 32, 36 for IPv6) 282132db935SJakub Kicinski 283132db935SJakub Kicinski The L3/L4 5-tuple (protocol, source and destination IP address, source and 284132db935SJakub Kicinski destination TCP/UDP/SCTP port) is compared against 8 filters. For IPv4, up to 285132db935SJakub Kicinski 8 source and destination addresses can be matched. For IPv6, up to 2 pairs of 286132db935SJakub Kicinski addresses can be supported. Source and destination ports are only compared for 287132db935SJakub Kicinski TCP/UDP/SCTP packets. 288132db935SJakub Kicinski 289132db935SJakub Kicinski To add a filter that directs packet to queue 5, use 290132db935SJakub Kicinski ``<-N|-U|--config-nfc|--config-ntuple>`` switch:: 291132db935SJakub Kicinski 292132db935SJakub Kicinski 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> 293132db935SJakub Kicinski 294132db935SJakub Kicinski - action is the queue number. 295132db935SJakub Kicinski - loc is the rule number. 296132db935SJakub Kicinski 297132db935SJakub Kicinski For ``flow-type ip4|udp4|tcp4|sctp4|ip6|udp6|tcp6|sctp6`` you must set the loc 298132db935SJakub Kicinski number within 32 - 39. 299132db935SJakub Kicinski For ``flow-type ip4|udp4|tcp4|sctp4|ip6|udp6|tcp6|sctp6`` you can set 8 rules 300132db935SJakub Kicinski for traffic IPv4 or you can set 2 rules for traffic IPv6. Loc number traffic 301132db935SJakub Kicinski IPv6 is 32 and 36. 302132db935SJakub Kicinski At the moment you can not use IPv4 and IPv6 filters at the same time. 303132db935SJakub Kicinski 304132db935SJakub Kicinski Example filter for IPv6 filter traffic:: 305132db935SJakub Kicinski 306132db935SJakub Kicinski 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 307132db935SJakub Kicinski 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 308132db935SJakub Kicinski 309132db935SJakub Kicinski Example filter for IPv4 filter traffic:: 310132db935SJakub Kicinski 311132db935SJakub Kicinski 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 312132db935SJakub Kicinski 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 313132db935SJakub Kicinski sudo ethtool -N <ethX> flow-type ip4 src-ip 10.0.0.6 dst-ip 10.0.0.4 loc 34 314132db935SJakub Kicinski 315132db935SJakub Kicinski If you set action -1, then all traffic corresponding to the filter will be discarded. 316132db935SJakub Kicinski 317132db935SJakub Kicinski The maximum value action is 31. 318132db935SJakub Kicinski 319132db935SJakub Kicinski 320132db935SJakub Kicinski The VLAN filter (VLAN id) is compared against 16 filters. 321132db935SJakub Kicinski VLAN id must be accompanied by mask 0xF000. That is to distinguish VLAN filter 322132db935SJakub Kicinski from L2 Ethertype filter with UserPriority since both User Priority and VLAN ID 323132db935SJakub Kicinski are passed in the same 'vlan' parameter. 324132db935SJakub Kicinski 325132db935SJakub Kicinski To add a filter that directs packets from VLAN 2001 to queue 5:: 326132db935SJakub Kicinski 327132db935SJakub Kicinski ethtool -N <ethX> flow-type ip4 vlan 2001 m 0xF000 action 1 loc 0 328132db935SJakub Kicinski 329132db935SJakub Kicinski 330132db935SJakub Kicinski L2 EtherType filters allows filter packet by EtherType field or both EtherType 331132db935SJakub Kicinski and User Priority (PCP) field of 802.1Q. 332132db935SJakub Kicinski UserPriority (vlan) parameter must be accompanied by mask 0x1FFF. That is to 333132db935SJakub Kicinski distinguish VLAN filter from L2 Ethertype filter with UserPriority since both 334132db935SJakub Kicinski User Priority and VLAN ID are passed in the same 'vlan' parameter. 335132db935SJakub Kicinski 336132db935SJakub Kicinski To add a filter that directs IP4 packess of priority 3 to queue 3:: 337132db935SJakub Kicinski 338132db935SJakub Kicinski ethtool -N <ethX> flow-type ether proto 0x800 vlan 0x600 m 0x1FFF action 3 loc 16 339132db935SJakub Kicinski 340132db935SJakub Kicinski To see the list of filters currently present:: 341132db935SJakub Kicinski 342132db935SJakub Kicinski ethtool <-u|-n|--show-nfc|--show-ntuple> <ethX> 343132db935SJakub Kicinski 344132db935SJakub Kicinski Rules may be deleted from the table itself. This is done using:: 345132db935SJakub Kicinski 346132db935SJakub Kicinski sudo ethtool <-N|-U|--config-nfc|--config-ntuple> <ethX> delete <loc> 347132db935SJakub Kicinski 348132db935SJakub Kicinski - loc is the rule number to be deleted. 349132db935SJakub Kicinski 350132db935SJakub Kicinski Rx filters is an interface to load the filter table that funnels all flow 351132db935SJakub Kicinski into queue 0 unless an alternative queue is specified using "action". In that 352132db935SJakub Kicinski case, any flow that matches the filter criteria will be directed to the 353132db935SJakub Kicinski appropriate queue. RX filters is supported on all kernels 2.6.30 and later. 354132db935SJakub Kicinski 355132db935SJakub KicinskiRSS for UDP 356132db935SJakub Kicinski----------- 357132db935SJakub Kicinski 358132db935SJakub Kicinski Currently, NIC does not support RSS for fragmented IP packets, which leads to 359132db935SJakub Kicinski incorrect working of RSS for fragmented UDP traffic. To disable RSS for UDP the 360132db935SJakub Kicinski RX Flow L3/L4 rule may be used. 361132db935SJakub Kicinski 362132db935SJakub Kicinski Example:: 363132db935SJakub Kicinski 364132db935SJakub Kicinski ethtool -N eth0 flow-type udp4 action 0 loc 32 365132db935SJakub Kicinski 366132db935SJakub KicinskiUDP GSO hardware offload 367132db935SJakub Kicinski------------------------ 368132db935SJakub Kicinski 369132db935SJakub Kicinski UDP GSO allows to boost UDP tx rates by offloading UDP headers allocation 370132db935SJakub Kicinski into hardware. A special userspace socket option is required for this, 371132db935SJakub Kicinski could be validated with /kernel/tools/testing/selftests/net/:: 372132db935SJakub Kicinski 373132db935SJakub Kicinski udpgso_bench_tx -u -4 -D 10.0.1.1 -s 6300 -S 100 374132db935SJakub Kicinski 375132db935SJakub Kicinski Will cause sending out of 100 byte sized UDP packets formed from single 376132db935SJakub Kicinski 6300 bytes user buffer. 377132db935SJakub Kicinski 378132db935SJakub Kicinski UDP GSO is configured by:: 379132db935SJakub Kicinski 380132db935SJakub Kicinski ethtool -K eth0 tx-udp-segmentation on 381132db935SJakub Kicinski 382132db935SJakub KicinskiPrivate flags (testing) 383132db935SJakub Kicinski----------------------- 384132db935SJakub Kicinski 385132db935SJakub Kicinski Atlantic driver supports private flags for hardware custom features:: 386132db935SJakub Kicinski 387132db935SJakub Kicinski $ ethtool --show-priv-flags ethX 388132db935SJakub Kicinski 389132db935SJakub Kicinski Private flags for ethX: 390132db935SJakub Kicinski DMASystemLoopback : off 391132db935SJakub Kicinski PKTSystemLoopback : off 392132db935SJakub Kicinski DMANetworkLoopback : off 393132db935SJakub Kicinski PHYInternalLoopback: off 394132db935SJakub Kicinski PHYExternalLoopback: off 395132db935SJakub Kicinski 396132db935SJakub Kicinski Example:: 397132db935SJakub Kicinski 398132db935SJakub Kicinski $ ethtool --set-priv-flags ethX DMASystemLoopback on 399132db935SJakub Kicinski 400132db935SJakub Kicinski DMASystemLoopback: DMA Host loopback. 401132db935SJakub Kicinski PKTSystemLoopback: Packet buffer host loopback. 402132db935SJakub Kicinski DMANetworkLoopback: Network side loopback on DMA block. 403132db935SJakub Kicinski PHYInternalLoopback: Internal loopback on Phy. 404132db935SJakub Kicinski PHYExternalLoopback: External loopback on Phy (with loopback ethernet cable). 405132db935SJakub Kicinski 406132db935SJakub Kicinski 407132db935SJakub KicinskiCommand Line Parameters 408132db935SJakub Kicinski======================= 409132db935SJakub KicinskiThe following command line parameters are available on atlantic driver: 410132db935SJakub Kicinski 411132db935SJakub Kicinskiaq_itr -Interrupt throttling mode 412132db935SJakub Kicinski--------------------------------- 413132db935SJakub KicinskiAccepted values: 0, 1, 0xFFFF 414132db935SJakub Kicinski 415132db935SJakub KicinskiDefault value: 0xFFFF 416132db935SJakub Kicinski 417132db935SJakub Kicinski====== ============================================================== 418132db935SJakub Kicinski0 Disable interrupt throttling. 419132db935SJakub Kicinski1 Enable interrupt throttling and use specified tx and rx rates. 420132db935SJakub Kicinski0xFFFF Auto throttling mode. Driver will choose the best RX and TX 421*a266ef69SRandy Dunlap interrupt throttling settings based on link speed. 422132db935SJakub Kicinski====== ============================================================== 423132db935SJakub Kicinski 424132db935SJakub Kicinskiaq_itr_tx - TX interrupt throttle rate 425132db935SJakub Kicinski-------------------------------------- 426132db935SJakub Kicinski 427132db935SJakub KicinskiAccepted values: 0 - 0x1FF 428132db935SJakub Kicinski 429132db935SJakub KicinskiDefault value: 0 430132db935SJakub Kicinski 431132db935SJakub KicinskiTX side throttling in microseconds. Adapter will setup maximum interrupt delay 432132db935SJakub Kicinskito this value. Minimum interrupt delay will be a half of this value 433132db935SJakub Kicinski 434132db935SJakub Kicinskiaq_itr_rx - RX interrupt throttle rate 435132db935SJakub Kicinski-------------------------------------- 436132db935SJakub Kicinski 437132db935SJakub KicinskiAccepted values: 0 - 0x1FF 438132db935SJakub Kicinski 439132db935SJakub KicinskiDefault value: 0 440132db935SJakub Kicinski 441132db935SJakub KicinskiRX side throttling in microseconds. Adapter will setup maximum interrupt delay 442132db935SJakub Kicinskito this value. Minimum interrupt delay will be a half of this value 443132db935SJakub Kicinski 444132db935SJakub Kicinski.. note:: 445132db935SJakub Kicinski 446132db935SJakub Kicinski ITR settings could be changed in runtime by ethtool -c means (see below) 447132db935SJakub Kicinski 448132db935SJakub KicinskiConfig file parameters 449132db935SJakub Kicinski====================== 450132db935SJakub Kicinski 451132db935SJakub KicinskiFor some fine tuning and performance optimizations, 452132db935SJakub Kicinskisome parameters can be changed in the {source_dir}/aq_cfg.h file. 453132db935SJakub Kicinski 454132db935SJakub KicinskiAQ_CFG_RX_PAGEORDER 455132db935SJakub Kicinski------------------- 456132db935SJakub Kicinski 457132db935SJakub KicinskiDefault value: 0 458132db935SJakub Kicinski 459*a266ef69SRandy DunlapRX page order override. That's a power of 2 number of RX pages allocated for 460132db935SJakub Kicinskieach descriptor. Received descriptor size is still limited by 461132db935SJakub KicinskiAQ_CFG_RX_FRAME_MAX. 462132db935SJakub Kicinski 463132db935SJakub KicinskiIncreasing pageorder makes page reuse better (actual on iommu enabled systems). 464132db935SJakub Kicinski 465132db935SJakub KicinskiAQ_CFG_RX_REFILL_THRES 466132db935SJakub Kicinski---------------------- 467132db935SJakub Kicinski 468132db935SJakub KicinskiDefault value: 32 469132db935SJakub Kicinski 470132db935SJakub KicinskiRX refill threshold. RX path will not refill freed descriptors until the 471132db935SJakub Kicinskispecified number of free descriptors is observed. Larger values may help 472132db935SJakub Kicinskibetter page reuse but may lead to packet drops as well. 473132db935SJakub Kicinski 474132db935SJakub KicinskiAQ_CFG_VECS_DEF 475132db935SJakub Kicinski--------------- 476132db935SJakub Kicinski 477132db935SJakub KicinskiNumber of queues 478132db935SJakub Kicinski 479132db935SJakub KicinskiValid Range: 0 - 8 (up to AQ_CFG_VECS_MAX) 480132db935SJakub Kicinski 481132db935SJakub KicinskiDefault value: 8 482132db935SJakub Kicinski 483132db935SJakub KicinskiNotice this value will be capped by the number of cores available on the system. 484132db935SJakub Kicinski 485132db935SJakub KicinskiAQ_CFG_IS_RSS_DEF 486132db935SJakub Kicinski----------------- 487132db935SJakub Kicinski 488132db935SJakub KicinskiEnable/disable Receive Side Scaling 489132db935SJakub Kicinski 490132db935SJakub KicinskiThis feature allows the adapter to distribute receive processing 491132db935SJakub Kicinskiacross multiple CPU-cores and to prevent from overloading a single CPU core. 492132db935SJakub Kicinski 493132db935SJakub KicinskiValid values 494132db935SJakub Kicinski 495132db935SJakub Kicinski== ======== 496132db935SJakub Kicinski0 disabled 497132db935SJakub Kicinski1 enabled 498132db935SJakub Kicinski== ======== 499132db935SJakub Kicinski 500132db935SJakub KicinskiDefault value: 1 501132db935SJakub Kicinski 502132db935SJakub KicinskiAQ_CFG_NUM_RSS_QUEUES_DEF 503132db935SJakub Kicinski------------------------- 504132db935SJakub Kicinski 505132db935SJakub KicinskiNumber of queues for Receive Side Scaling 506132db935SJakub Kicinski 507132db935SJakub KicinskiValid Range: 0 - 8 (up to AQ_CFG_VECS_DEF) 508132db935SJakub Kicinski 509132db935SJakub KicinskiDefault value: AQ_CFG_VECS_DEF 510132db935SJakub Kicinski 511132db935SJakub KicinskiAQ_CFG_IS_LRO_DEF 512132db935SJakub Kicinski----------------- 513132db935SJakub Kicinski 514132db935SJakub KicinskiEnable/disable Large Receive Offload 515132db935SJakub Kicinski 516132db935SJakub KicinskiThis offload enables the adapter to coalesce multiple TCP segments and indicate 517132db935SJakub Kicinskithem as a single coalesced unit to the OS networking subsystem. 518132db935SJakub Kicinski 519132db935SJakub KicinskiThe system consumes less energy but it also introduces more latency in packets 520132db935SJakub Kicinskiprocessing. 521132db935SJakub Kicinski 522132db935SJakub KicinskiValid values 523132db935SJakub Kicinski 524132db935SJakub Kicinski== ======== 525132db935SJakub Kicinski0 disabled 526132db935SJakub Kicinski1 enabled 527132db935SJakub Kicinski== ======== 528132db935SJakub Kicinski 529132db935SJakub KicinskiDefault value: 1 530132db935SJakub Kicinski 531132db935SJakub KicinskiAQ_CFG_TX_CLEAN_BUDGET 532132db935SJakub Kicinski---------------------- 533132db935SJakub Kicinski 534132db935SJakub KicinskiMaximum descriptors to cleanup on TX at once. 535132db935SJakub Kicinski 536132db935SJakub KicinskiDefault value: 256 537132db935SJakub Kicinski 538132db935SJakub KicinskiAfter the aq_cfg.h file changed the driver must be rebuilt to take effect. 539132db935SJakub Kicinski 540132db935SJakub KicinskiSupport 541132db935SJakub Kicinski======= 542132db935SJakub Kicinski 543132db935SJakub KicinskiIf an issue is identified with the released source code on the supported 544132db935SJakub Kicinskikernel with a supported adapter, email the specific information related 545132db935SJakub Kicinskito the issue to aqn_support@marvell.com 546132db935SJakub Kicinski 547132db935SJakub KicinskiLicense 548132db935SJakub Kicinski======= 549132db935SJakub Kicinski 550132db935SJakub KicinskiaQuantia Corporation Network Driver 551132db935SJakub Kicinski 552132db935SJakub KicinskiCopyright |copy| 2014 - 2019 aQuantia Corporation. 553132db935SJakub Kicinski 554132db935SJakub KicinskiThis program is free software; you can redistribute it and/or modify it 555132db935SJakub Kicinskiunder the terms and conditions of the GNU General Public License, 556132db935SJakub Kicinskiversion 2, as published by the Free Software Foundation. 557