297 lines · plain
1.. SPDX-License-Identifier: GPL-2.0+2 3========================================================4Linux Driver for the Pensando(R) Ethernet adapter family5========================================================6 7Pensando Linux Ethernet driver.8Copyright(c) 2019 Pensando Systems, Inc9 10Contents11========12 13- Identifying the Adapter14- Enabling the driver15- Configuring the driver16- Statistics17- Support18 19Identifying the Adapter20=======================21 22To find if one or more Pensando PCI Ethernet devices are installed on the23host, check for the PCI devices::24 25 $ lspci -d 1dd8:26 b5:00.0 Ethernet controller: Device 1dd8:100227 b6:00.0 Ethernet controller: Device 1dd8:100228 29If such devices are listed as above, then the ionic.ko driver should find30and configure them for use. There should be log entries in the kernel31messages such as these::32 33 $ dmesg | grep ionic34 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 eth036 ionic 0000:b5:00.0 enp181s0: Link up - 100 Gbps37 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 eth039 ionic 0000:b6:00.0 enp182s0: Link up - 100 Gbps40 41Driver and firmware version information can be gathered with either of42ethtool or devlink tools::43 44 $ ethtool -i enp181s045 driver: ionic46 version: 5.7.047 firmware-version: 1.8.0-2848 ...49 50 $ devlink dev info pci/0000:b5:00.051 pci/0000:b5:00.0:52 driver ionic53 serial_number FLM1842007354 versions:55 fixed:56 asic.id 0x057 asic.rev 0x058 running:59 fw 1.8.0-2860 61See Documentation/networking/devlink/ionic.rst for more information62on the devlink dev info data.63 64Enabling the driver65===================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 Drivers75 -> Network device support (NETDEVICES [=y])76 -> Ethernet driver support77 -> Pensando devices78 -> Pensando Ethernet IONIC Support79 80Configuring the Driver81======================82 83MTU84---85 86Jumbo frame support is available with a maximum size of 9194 bytes.87 88Interrupt coalescing89--------------------90 91Interrupt coalescing can be configured by changing the rx-usecs value with92the "ethtool -C" command. The rx-usecs range is 0-190. The tx-usecs value93reflects the rx-usecs value as they are tied together on the same interrupt.94 95SR-IOV96------97 98Minimal SR-IOV support is currently offered and can be enabled by setting99the sysfs 'sriov_numvfs' value, if supported by your particular firmware100configuration.101 102XDP103---104 105Support for XDP includes the basics, plus Jumbo frames, Redirect and106ndo_xmit. There is no current support for zero-copy sockets or HW offload.107 108Statistics109==========110 111Basic hardware stats112--------------------113 114The commands ``netstat -i``, ``ip -s link show``, and ``ifconfig`` show115a limited set of statistics taken directly from firmware. For example::116 117 $ ip -s link show enp181s0118 7: enp181s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000119 link/ether 00:ae:cd:00:07:68 brd ff:ff:ff:ff:ff:ff120 RX: bytes packets errors dropped overrun mcast121 414 5 0 0 0 0122 TX: bytes packets errors dropped carrier collsns123 1384 18 0 0 0 0124 125ethtool -S126----------127 128The statistics shown from the ``ethtool -S`` command includes a combination of129driver counters and firmware counters, including port and queue specific values.130The driver values are counters computed by the driver, and the firmware values131are gathered by the firmware from the port hardware and passed through the132driver with no further interpretation.133 134Driver port specific::135 136 tx_packets: 12137 tx_bytes: 964138 rx_packets: 5139 rx_bytes: 414140 tx_tso: 0141 tx_tso_bytes: 0142 tx_csum_none: 12143 tx_csum: 0144 rx_csum_none: 0145 rx_csum_complete: 3146 rx_csum_error: 0147 xdp_drop: 0148 xdp_aborted: 0149 xdp_pass: 0150 xdp_tx: 0151 xdp_redirect: 0152 xdp_frames: 0153 154Driver queue specific::155 156 tx_0_pkts: 3157 tx_0_bytes: 294158 tx_0_clean: 3159 tx_0_dma_map_err: 0160 tx_0_linearize: 0161 tx_0_frags: 0162 tx_0_tso: 0163 tx_0_tso_bytes: 0164 tx_0_hwstamp_valid: 0165 tx_0_hwstamp_invalid: 0166 tx_0_csum_none: 3167 tx_0_csum: 0168 tx_0_vlan_inserted: 0169 tx_0_xdp_frames: 0170 rx_0_pkts: 2171 rx_0_bytes: 120172 rx_0_dma_map_err: 0173 rx_0_alloc_err: 0174 rx_0_csum_none: 0175 rx_0_csum_complete: 0176 rx_0_csum_error: 0177 rx_0_hwstamp_valid: 0178 rx_0_hwstamp_invalid: 0179 rx_0_dropped: 0180 rx_0_vlan_stripped: 0181 rx_0_xdp_drop: 0182 rx_0_xdp_aborted: 0183 rx_0_xdp_pass: 0184 rx_0_xdp_tx: 0185 rx_0_xdp_redirect: 0186 187Firmware port specific::188 189 hw_tx_dropped: 0190 hw_rx_dropped: 0191 hw_rx_over_errors: 0192 hw_rx_missed_errors: 0193 hw_tx_aborted_errors: 0194 frames_rx_ok: 15195 frames_rx_all: 15196 frames_rx_bad_fcs: 0197 frames_rx_bad_all: 0198 octets_rx_ok: 1290199 octets_rx_all: 1290200 frames_rx_unicast: 10201 frames_rx_multicast: 5202 frames_rx_broadcast: 0203 frames_rx_pause: 0204 frames_rx_bad_length: 0205 frames_rx_undersized: 0206 frames_rx_oversized: 0207 frames_rx_fragments: 0208 frames_rx_jabber: 0209 frames_rx_pripause: 0210 frames_rx_stomped_crc: 0211 frames_rx_too_long: 0212 frames_rx_vlan_good: 3213 frames_rx_dropped: 0214 frames_rx_less_than_64b: 0215 frames_rx_64b: 4216 frames_rx_65b_127b: 11217 frames_rx_128b_255b: 0218 frames_rx_256b_511b: 0219 frames_rx_512b_1023b: 0220 frames_rx_1024b_1518b: 0221 frames_rx_1519b_2047b: 0222 frames_rx_2048b_4095b: 0223 frames_rx_4096b_8191b: 0224 frames_rx_8192b_9215b: 0225 frames_rx_other: 0226 frames_tx_ok: 31227 frames_tx_all: 31228 frames_tx_bad: 0229 octets_tx_ok: 2614230 octets_tx_total: 2614231 frames_tx_unicast: 8232 frames_tx_multicast: 21233 frames_tx_broadcast: 2234 frames_tx_pause: 0235 frames_tx_pripause: 0236 frames_tx_vlan: 0237 frames_tx_less_than_64b: 0238 frames_tx_64b: 4239 frames_tx_65b_127b: 27240 frames_tx_128b_255b: 0241 frames_tx_256b_511b: 0242 frames_tx_512b_1023b: 0243 frames_tx_1024b_1518b: 0244 frames_tx_1519b_2047b: 0245 frames_tx_2048b_4095b: 0246 frames_tx_4096b_8191b: 0247 frames_tx_8192b_9215b: 0248 frames_tx_other: 0249 frames_tx_pri_0: 0250 frames_tx_pri_1: 0251 frames_tx_pri_2: 0252 frames_tx_pri_3: 0253 frames_tx_pri_4: 0254 frames_tx_pri_5: 0255 frames_tx_pri_6: 0256 frames_tx_pri_7: 0257 frames_rx_pri_0: 0258 frames_rx_pri_1: 0259 frames_rx_pri_2: 0260 frames_rx_pri_3: 0261 frames_rx_pri_4: 0262 frames_rx_pri_5: 0263 frames_rx_pri_6: 0264 frames_rx_pri_7: 0265 tx_pripause_0_1us_count: 0266 tx_pripause_1_1us_count: 0267 tx_pripause_2_1us_count: 0268 tx_pripause_3_1us_count: 0269 tx_pripause_4_1us_count: 0270 tx_pripause_5_1us_count: 0271 tx_pripause_6_1us_count: 0272 tx_pripause_7_1us_count: 0273 rx_pripause_0_1us_count: 0274 rx_pripause_1_1us_count: 0275 rx_pripause_2_1us_count: 0276 rx_pripause_3_1us_count: 0277 rx_pripause_4_1us_count: 0278 rx_pripause_5_1us_count: 0279 rx_pripause_6_1us_count: 0280 rx_pripause_7_1us_count: 0281 rx_pause_1us_count: 0282 frames_tx_truncated: 0283 284 285Support286=======287 288For general Linux networking support, please use the netdev mailing289list, which is monitored by Pensando personnel::290 291 netdev@vger.kernel.org292 293For more specific support needs, please use the Pensando driver support294email::295 296 drivers@pensando.io297