brintos

brintos / linux-shallow public Read only

0
0
Text · 7.6 KiB · 05fe2b1 Raw
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