sched/doc: Update documentation for base_slice_ns and CONFIG_HZ relation
[sfrench/cifs-2.6.git] / Documentation / networking / device_drivers / ethernet / pensando / ionic.rst
1 .. SPDX-License-Identifier: GPL-2.0+
2
3 ========================================================
4 Linux Driver for the Pensando(R) Ethernet adapter family
5 ========================================================
6
7 Pensando Linux Ethernet driver.
8 Copyright(c) 2019 Pensando Systems, Inc
9
10 Contents
11 ========
12
13 - Identifying the Adapter
14 - Enabling the driver
15 - Configuring the driver
16 - Statistics
17 - Support
18
19 Identifying the Adapter
20 =======================
21
22 To find if one or more Pensando PCI Ethernet devices are installed on the
23 host, check for the PCI devices::
24
25   $ lspci -d 1dd8:
26   b5:00.0 Ethernet controller: Device 1dd8:1002
27   b6:00.0 Ethernet controller: Device 1dd8:1002
28
29 If such devices are listed as above, then the ionic.ko driver should find
30 and configure them for use.  There should be log entries in the kernel
31 messages such as these::
32
33   $ dmesg | grep ionic
34   ionic 0000:b5:00.0: 126.016 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x16 link)
35   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)
38   ionic 0000:b6:00.0 enp182s0: renamed from eth0
39   ionic 0000:b6:00.0 enp182s0: Link up - 100 Gbps
40
41 Driver and firmware version information can be gathered with either of
42 ethtool or devlink tools::
43
44   $ ethtool -i enp181s0
45   driver: ionic
46   version: 5.7.0
47   firmware-version: 1.8.0-28
48   ...
49
50   $ devlink dev info pci/0000:b5:00.0
51   pci/0000:b5:00.0:
52     driver ionic
53     serial_number FLM18420073
54     versions:
55         fixed:
56           asic.id 0x0
57           asic.rev 0x0
58         running:
59           fw 1.8.0-28
60
61 See Documentation/networking/devlink/ionic.rst for more information
62 on the devlink dev info data.
63
64 Enabling the driver
65 ===================
66
67 The driver is enabled via the standard kernel configuration system,
68 using the make command::
69
70   make oldconfig/menuconfig/etc.
71
72 The driver is located in the menu structure at:
73
74   -> Device Drivers
75     -> Network device support (NETDEVICES [=y])
76       -> Ethernet driver support
77         -> Pensando devices
78           -> Pensando Ethernet IONIC Support
79
80 Configuring the Driver
81 ======================
82
83 MTU
84 ---
85
86 Jumbo frame support is available with a maximum size of 9194 bytes.
87
88 Interrupt coalescing
89 --------------------
90
91 Interrupt coalescing can be configured by changing the rx-usecs value with
92 the "ethtool -C" command.  The rx-usecs range is 0-190.  The tx-usecs value
93 reflects the rx-usecs value as they are tied together on the same interrupt.
94
95 SR-IOV
96 ------
97
98 Minimal SR-IOV support is currently offered and can be enabled by setting
99 the sysfs 'sriov_numvfs' value, if supported by your particular firmware
100 configuration.
101
102 Statistics
103 ==========
104
105 Basic hardware stats
106 --------------------
107
108 The commands ``netstat -i``, ``ip -s link show``, and ``ifconfig`` show
109 a limited set of statistics taken directly from firmware.  For example::
110
111   $ ip -s link show enp181s0
112   7: enp181s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
113       link/ether 00:ae:cd:00:07:68 brd ff:ff:ff:ff:ff:ff
114       RX: bytes  packets  errors  dropped overrun mcast
115       414        5        0       0       0       0
116       TX: bytes  packets  errors  dropped carrier collsns
117       1384       18       0       0       0       0
118
119 ethtool -S
120 ----------
121
122 The statistics shown from the ``ethtool -S`` command includes a combination of
123 driver counters and firmware counters, including port and queue specific values.
124 The driver values are counters computed by the driver, and the firmware values
125 are gathered by the firmware from the port hardware and passed through the
126 driver with no further interpretation.
127
128 Driver port specific::
129
130      tx_packets: 12
131      tx_bytes: 964
132      rx_packets: 5
133      rx_bytes: 414
134      tx_tso: 0
135      tx_tso_bytes: 0
136      tx_csum_none: 12
137      tx_csum: 0
138      rx_csum_none: 0
139      rx_csum_complete: 3
140      rx_csum_error: 0
141
142 Driver queue specific::
143
144      tx_0_pkts: 3
145      tx_0_bytes: 294
146      tx_0_clean: 3
147      tx_0_dma_map_err: 0
148      tx_0_linearize: 0
149      tx_0_frags: 0
150      tx_0_tso: 0
151      tx_0_tso_bytes: 0
152      tx_0_csum_none: 3
153      tx_0_csum: 0
154      tx_0_vlan_inserted: 0
155      rx_0_pkts: 2
156      rx_0_bytes: 120
157      rx_0_dma_map_err: 0
158      rx_0_alloc_err: 0
159      rx_0_csum_none: 0
160      rx_0_csum_complete: 0
161      rx_0_csum_error: 0
162      rx_0_dropped: 0
163      rx_0_vlan_stripped: 0
164
165 Firmware port specific::
166
167      hw_tx_dropped: 0
168      hw_rx_dropped: 0
169      hw_rx_over_errors: 0
170      hw_rx_missed_errors: 0
171      hw_tx_aborted_errors: 0
172      frames_rx_ok: 15
173      frames_rx_all: 15
174      frames_rx_bad_fcs: 0
175      frames_rx_bad_all: 0
176      octets_rx_ok: 1290
177      octets_rx_all: 1290
178      frames_rx_unicast: 10
179      frames_rx_multicast: 5
180      frames_rx_broadcast: 0
181      frames_rx_pause: 0
182      frames_rx_bad_length: 0
183      frames_rx_undersized: 0
184      frames_rx_oversized: 0
185      frames_rx_fragments: 0
186      frames_rx_jabber: 0
187      frames_rx_pripause: 0
188      frames_rx_stomped_crc: 0
189      frames_rx_too_long: 0
190      frames_rx_vlan_good: 3
191      frames_rx_dropped: 0
192      frames_rx_less_than_64b: 0
193      frames_rx_64b: 4
194      frames_rx_65b_127b: 11
195      frames_rx_128b_255b: 0
196      frames_rx_256b_511b: 0
197      frames_rx_512b_1023b: 0
198      frames_rx_1024b_1518b: 0
199      frames_rx_1519b_2047b: 0
200      frames_rx_2048b_4095b: 0
201      frames_rx_4096b_8191b: 0
202      frames_rx_8192b_9215b: 0
203      frames_rx_other: 0
204      frames_tx_ok: 31
205      frames_tx_all: 31
206      frames_tx_bad: 0
207      octets_tx_ok: 2614
208      octets_tx_total: 2614
209      frames_tx_unicast: 8
210      frames_tx_multicast: 21
211      frames_tx_broadcast: 2
212      frames_tx_pause: 0
213      frames_tx_pripause: 0
214      frames_tx_vlan: 0
215      frames_tx_less_than_64b: 0
216      frames_tx_64b: 4
217      frames_tx_65b_127b: 27
218      frames_tx_128b_255b: 0
219      frames_tx_256b_511b: 0
220      frames_tx_512b_1023b: 0
221      frames_tx_1024b_1518b: 0
222      frames_tx_1519b_2047b: 0
223      frames_tx_2048b_4095b: 0
224      frames_tx_4096b_8191b: 0
225      frames_tx_8192b_9215b: 0
226      frames_tx_other: 0
227      frames_tx_pri_0: 0
228      frames_tx_pri_1: 0
229      frames_tx_pri_2: 0
230      frames_tx_pri_3: 0
231      frames_tx_pri_4: 0
232      frames_tx_pri_5: 0
233      frames_tx_pri_6: 0
234      frames_tx_pri_7: 0
235      frames_rx_pri_0: 0
236      frames_rx_pri_1: 0
237      frames_rx_pri_2: 0
238      frames_rx_pri_3: 0
239      frames_rx_pri_4: 0
240      frames_rx_pri_5: 0
241      frames_rx_pri_6: 0
242      frames_rx_pri_7: 0
243      tx_pripause_0_1us_count: 0
244      tx_pripause_1_1us_count: 0
245      tx_pripause_2_1us_count: 0
246      tx_pripause_3_1us_count: 0
247      tx_pripause_4_1us_count: 0
248      tx_pripause_5_1us_count: 0
249      tx_pripause_6_1us_count: 0
250      tx_pripause_7_1us_count: 0
251      rx_pripause_0_1us_count: 0
252      rx_pripause_1_1us_count: 0
253      rx_pripause_2_1us_count: 0
254      rx_pripause_3_1us_count: 0
255      rx_pripause_4_1us_count: 0
256      rx_pripause_5_1us_count: 0
257      rx_pripause_6_1us_count: 0
258      rx_pripause_7_1us_count: 0
259      rx_pause_1us_count: 0
260      frames_tx_truncated: 0
261
262
263 Support
264 =======
265
266 For general Linux networking support, please use the netdev mailing
267 list, which is monitored by Pensando personnel::
268
269   netdev@vger.kernel.org
270
271 For more specific support needs, please use the Pensando driver support
272 email::
273
274   drivers@pensando.io