Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0+
0002 
0003 ========================================================
0004 Linux Driver for the Pensando(R) Ethernet adapter family
0005 ========================================================
0006 
0007 Pensando Linux Ethernet driver.
0008 Copyright(c) 2019 Pensando Systems, Inc
0009 
0010 Contents
0011 ========
0012 
0013 - Identifying the Adapter
0014 - Enabling the driver
0015 - Configuring the driver
0016 - Statistics
0017 - Support
0018 
0019 Identifying the Adapter
0020 =======================
0021 
0022 To find if one or more Pensando PCI Ethernet devices are installed on the
0023 host, check for the PCI devices::
0024 
0025   $ lspci -d 1dd8:
0026   b5:00.0 Ethernet controller: Device 1dd8:1002
0027   b6:00.0 Ethernet controller: Device 1dd8:1002
0028 
0029 If such devices are listed as above, then the ionic.ko driver should find
0030 and configure them for use.  There should be log entries in the kernel
0031 messages such as these::
0032 
0033   $ dmesg | grep ionic
0034   ionic 0000:b5:00.0: 126.016 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x16 link)
0035   ionic 0000:b5:00.0 enp181s0: renamed from eth0
0036   ionic 0000:b5:00.0 enp181s0: Link up - 100 Gbps
0037   ionic 0000:b6:00.0: 126.016 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x16 link)
0038   ionic 0000:b6:00.0 enp182s0: renamed from eth0
0039   ionic 0000:b6:00.0 enp182s0: Link up - 100 Gbps
0040 
0041 Driver and firmware version information can be gathered with either of
0042 ethtool or devlink tools::
0043 
0044   $ ethtool -i enp181s0
0045   driver: ionic
0046   version: 5.7.0
0047   firmware-version: 1.8.0-28
0048   ...
0049 
0050   $ devlink dev info pci/0000:b5:00.0
0051   pci/0000:b5:00.0:
0052     driver ionic
0053     serial_number FLM18420073
0054     versions:
0055         fixed:
0056           asic.id 0x0
0057           asic.rev 0x0
0058         running:
0059           fw 1.8.0-28
0060 
0061 See Documentation/networking/devlink/ionic.rst for more information
0062 on the devlink dev info data.
0063 
0064 Enabling the driver
0065 ===================
0066 
0067 The driver is enabled via the standard kernel configuration system,
0068 using the make command::
0069 
0070   make oldconfig/menuconfig/etc.
0071 
0072 The driver is located in the menu structure at:
0073 
0074   -> Device Drivers
0075     -> Network device support (NETDEVICES [=y])
0076       -> Ethernet driver support
0077         -> Pensando devices
0078           -> Pensando Ethernet IONIC Support
0079 
0080 Configuring the Driver
0081 ======================
0082 
0083 MTU
0084 ---
0085 
0086 Jumbo frame support is available with a maximim size of 9194 bytes.
0087 
0088 Interrupt coalescing
0089 --------------------
0090 
0091 Interrupt coalescing can be configured by changing the rx-usecs value with
0092 the "ethtool -C" command.  The rx-usecs range is 0-190.  The tx-usecs value
0093 reflects the rx-usecs value as they are tied together on the same interrupt.
0094 
0095 SR-IOV
0096 ------
0097 
0098 Minimal SR-IOV support is currently offered and can be enabled by setting
0099 the sysfs 'sriov_numvfs' value, if supported by your particular firmware
0100 configuration.
0101 
0102 Statistics
0103 ==========
0104 
0105 Basic hardware stats
0106 --------------------
0107 
0108 The commands ``netstat -i``, ``ip -s link show``, and ``ifconfig`` show
0109 a limited set of statistics taken directly from firmware.  For example::
0110 
0111   $ ip -s link show enp181s0
0112   7: enp181s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
0113       link/ether 00:ae:cd:00:07:68 brd ff:ff:ff:ff:ff:ff
0114       RX: bytes  packets  errors  dropped overrun mcast
0115       414        5        0       0       0       0
0116       TX: bytes  packets  errors  dropped carrier collsns
0117       1384       18       0       0       0       0
0118 
0119 ethtool -S
0120 ----------
0121 
0122 The statistics shown from the ``ethtool -S`` command includes a combination of
0123 driver counters and firmware counters, including port and queue specific values.
0124 The driver values are counters computed by the driver, and the firmware values
0125 are gathered by the firmware from the port hardware and passed through the
0126 driver with no further interpretation.
0127 
0128 Driver port specific::
0129 
0130      tx_packets: 12
0131      tx_bytes: 964
0132      rx_packets: 5
0133      rx_bytes: 414
0134      tx_tso: 0
0135      tx_tso_bytes: 0
0136      tx_csum_none: 12
0137      tx_csum: 0
0138      rx_csum_none: 0
0139      rx_csum_complete: 3
0140      rx_csum_error: 0
0141 
0142 Driver queue specific::
0143 
0144      tx_0_pkts: 3
0145      tx_0_bytes: 294
0146      tx_0_clean: 3
0147      tx_0_dma_map_err: 0
0148      tx_0_linearize: 0
0149      tx_0_frags: 0
0150      tx_0_tso: 0
0151      tx_0_tso_bytes: 0
0152      tx_0_csum_none: 3
0153      tx_0_csum: 0
0154      tx_0_vlan_inserted: 0
0155      rx_0_pkts: 2
0156      rx_0_bytes: 120
0157      rx_0_dma_map_err: 0
0158      rx_0_alloc_err: 0
0159      rx_0_csum_none: 0
0160      rx_0_csum_complete: 0
0161      rx_0_csum_error: 0
0162      rx_0_dropped: 0
0163      rx_0_vlan_stripped: 0
0164 
0165 Firmware port specific::
0166 
0167      hw_tx_dropped: 0
0168      hw_rx_dropped: 0
0169      hw_rx_over_errors: 0
0170      hw_rx_missed_errors: 0
0171      hw_tx_aborted_errors: 0
0172      frames_rx_ok: 15
0173      frames_rx_all: 15
0174      frames_rx_bad_fcs: 0
0175      frames_rx_bad_all: 0
0176      octets_rx_ok: 1290
0177      octets_rx_all: 1290
0178      frames_rx_unicast: 10
0179      frames_rx_multicast: 5
0180      frames_rx_broadcast: 0
0181      frames_rx_pause: 0
0182      frames_rx_bad_length: 0
0183      frames_rx_undersized: 0
0184      frames_rx_oversized: 0
0185      frames_rx_fragments: 0
0186      frames_rx_jabber: 0
0187      frames_rx_pripause: 0
0188      frames_rx_stomped_crc: 0
0189      frames_rx_too_long: 0
0190      frames_rx_vlan_good: 3
0191      frames_rx_dropped: 0
0192      frames_rx_less_than_64b: 0
0193      frames_rx_64b: 4
0194      frames_rx_65b_127b: 11
0195      frames_rx_128b_255b: 0
0196      frames_rx_256b_511b: 0
0197      frames_rx_512b_1023b: 0
0198      frames_rx_1024b_1518b: 0
0199      frames_rx_1519b_2047b: 0
0200      frames_rx_2048b_4095b: 0
0201      frames_rx_4096b_8191b: 0
0202      frames_rx_8192b_9215b: 0
0203      frames_rx_other: 0
0204      frames_tx_ok: 31
0205      frames_tx_all: 31
0206      frames_tx_bad: 0
0207      octets_tx_ok: 2614
0208      octets_tx_total: 2614
0209      frames_tx_unicast: 8
0210      frames_tx_multicast: 21
0211      frames_tx_broadcast: 2
0212      frames_tx_pause: 0
0213      frames_tx_pripause: 0
0214      frames_tx_vlan: 0
0215      frames_tx_less_than_64b: 0
0216      frames_tx_64b: 4
0217      frames_tx_65b_127b: 27
0218      frames_tx_128b_255b: 0
0219      frames_tx_256b_511b: 0
0220      frames_tx_512b_1023b: 0
0221      frames_tx_1024b_1518b: 0
0222      frames_tx_1519b_2047b: 0
0223      frames_tx_2048b_4095b: 0
0224      frames_tx_4096b_8191b: 0
0225      frames_tx_8192b_9215b: 0
0226      frames_tx_other: 0
0227      frames_tx_pri_0: 0
0228      frames_tx_pri_1: 0
0229      frames_tx_pri_2: 0
0230      frames_tx_pri_3: 0
0231      frames_tx_pri_4: 0
0232      frames_tx_pri_5: 0
0233      frames_tx_pri_6: 0
0234      frames_tx_pri_7: 0
0235      frames_rx_pri_0: 0
0236      frames_rx_pri_1: 0
0237      frames_rx_pri_2: 0
0238      frames_rx_pri_3: 0
0239      frames_rx_pri_4: 0
0240      frames_rx_pri_5: 0
0241      frames_rx_pri_6: 0
0242      frames_rx_pri_7: 0
0243      tx_pripause_0_1us_count: 0
0244      tx_pripause_1_1us_count: 0
0245      tx_pripause_2_1us_count: 0
0246      tx_pripause_3_1us_count: 0
0247      tx_pripause_4_1us_count: 0
0248      tx_pripause_5_1us_count: 0
0249      tx_pripause_6_1us_count: 0
0250      tx_pripause_7_1us_count: 0
0251      rx_pripause_0_1us_count: 0
0252      rx_pripause_1_1us_count: 0
0253      rx_pripause_2_1us_count: 0
0254      rx_pripause_3_1us_count: 0
0255      rx_pripause_4_1us_count: 0
0256      rx_pripause_5_1us_count: 0
0257      rx_pripause_6_1us_count: 0
0258      rx_pripause_7_1us_count: 0
0259      rx_pause_1us_count: 0
0260      frames_tx_truncated: 0
0261 
0262 
0263 Support
0264 =======
0265 
0266 For general Linux networking support, please use the netdev mailing
0267 list, which is monitored by Pensando personnel::
0268 
0269   netdev@vger.kernel.org
0270 
0271 For more specific support needs, please use the Pensando driver support
0272 email::
0273 
0274   drivers@pensando.io