1 .. SPDX-License-Identifier: GPL-2.0+
3 ========================================================
4 Linux Driver for the Pensando(R) Ethernet adapter family
5 ========================================================
7 Pensando Linux Ethernet driver.
8 Copyright(c) 2019 Pensando Systems, Inc
13 - Identifying the Adapter
15 - Configuring the driver
19 Identifying the Adapter
20 =======================
22 To find if one or more Pensando PCI Ethernet devices are installed on the
23 host, check for the PCI devices::
26 b5:00.0 Ethernet controller: Device 1dd8:1002
27 b6:00.0 Ethernet controller: Device 1dd8:1002
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::
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
41 Driver and firmware version information can be gathered with either of
42 ethtool or devlink tools::
47 firmware-version: 1.8.0-28
50 $ devlink dev info pci/0000:b5:00.0
53 serial_number FLM18420073
61 See Documentation/networking/devlink/ionic.rst for more information
62 on the devlink dev info data.
67 The driver is enabled via the standard kernel configuration system,
68 using the make command::
70 make oldconfig/menuconfig/etc.
72 The driver is located in the menu structure at:
75 -> Network device support (NETDEVICES [=y])
76 -> Ethernet driver support
78 -> Pensando Ethernet IONIC Support
80 Configuring the Driver
81 ======================
86 Jumbo frame support is available with a maximum size of 9194 bytes.
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.
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
105 Support for XDP includes the basics, plus Jumbo frames, Redirect and
106 ndo_xmit. There is no current support for zero-copy sockets or HW offload.
114 The commands ``netstat -i``, ``ip -s link show``, and ``ifconfig`` show
115 a limited set of statistics taken directly from firmware. For example::
117 $ ip -s link show enp181s0
118 7: enp181s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
119 link/ether 00:ae:cd:00:07:68 brd ff:ff:ff:ff:ff:ff
120 RX: bytes packets errors dropped overrun mcast
122 TX: bytes packets errors dropped carrier collsns
128 The statistics shown from the ``ethtool -S`` command includes a combination of
129 driver counters and firmware counters, including port and queue specific values.
130 The driver values are counters computed by the driver, and the firmware values
131 are gathered by the firmware from the port hardware and passed through the
132 driver with no further interpretation.
134 Driver port specific::
154 Driver queue specific::
164 tx_0_hwstamp_valid: 0
165 tx_0_hwstamp_invalid: 0
168 tx_0_vlan_inserted: 0
175 rx_0_csum_complete: 0
177 rx_0_hwstamp_valid: 0
178 rx_0_hwstamp_invalid: 0
180 rx_0_vlan_stripped: 0
187 Firmware port specific::
192 hw_rx_missed_errors: 0
193 hw_tx_aborted_errors: 0
200 frames_rx_unicast: 10
201 frames_rx_multicast: 5
202 frames_rx_broadcast: 0
204 frames_rx_bad_length: 0
205 frames_rx_undersized: 0
206 frames_rx_oversized: 0
207 frames_rx_fragments: 0
209 frames_rx_pripause: 0
210 frames_rx_stomped_crc: 0
211 frames_rx_too_long: 0
212 frames_rx_vlan_good: 3
214 frames_rx_less_than_64b: 0
216 frames_rx_65b_127b: 11
217 frames_rx_128b_255b: 0
218 frames_rx_256b_511b: 0
219 frames_rx_512b_1023b: 0
220 frames_rx_1024b_1518b: 0
221 frames_rx_1519b_2047b: 0
222 frames_rx_2048b_4095b: 0
223 frames_rx_4096b_8191b: 0
224 frames_rx_8192b_9215b: 0
230 octets_tx_total: 2614
232 frames_tx_multicast: 21
233 frames_tx_broadcast: 2
235 frames_tx_pripause: 0
237 frames_tx_less_than_64b: 0
239 frames_tx_65b_127b: 27
240 frames_tx_128b_255b: 0
241 frames_tx_256b_511b: 0
242 frames_tx_512b_1023b: 0
243 frames_tx_1024b_1518b: 0
244 frames_tx_1519b_2047b: 0
245 frames_tx_2048b_4095b: 0
246 frames_tx_4096b_8191b: 0
247 frames_tx_8192b_9215b: 0
265 tx_pripause_0_1us_count: 0
266 tx_pripause_1_1us_count: 0
267 tx_pripause_2_1us_count: 0
268 tx_pripause_3_1us_count: 0
269 tx_pripause_4_1us_count: 0
270 tx_pripause_5_1us_count: 0
271 tx_pripause_6_1us_count: 0
272 tx_pripause_7_1us_count: 0
273 rx_pripause_0_1us_count: 0
274 rx_pripause_1_1us_count: 0
275 rx_pripause_2_1us_count: 0
276 rx_pripause_3_1us_count: 0
277 rx_pripause_4_1us_count: 0
278 rx_pripause_5_1us_count: 0
279 rx_pripause_6_1us_count: 0
280 rx_pripause_7_1us_count: 0
281 rx_pause_1us_count: 0
282 frames_tx_truncated: 0
288 For general Linux networking support, please use the netdev mailing
289 list, which is monitored by Pensando personnel::
291 netdev@vger.kernel.org
293 For more specific support needs, please use the Pensando driver support