xref: /openbmc/linux/Documentation/networking/device_drivers/ethernet/aquantia/atlantic.rst (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
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