| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306 |
- .. SPDX-License-Identifier: GPL-2.0+
- ========================================================
- Linux Driver for the Pensando(R) Ethernet adapter family
- ========================================================
- Pensando Linux Ethernet driver.
- Copyright(c) 2019 Pensando Systems, Inc
- Contents
- ========
- - Identifying the Adapter
- - Enabling the driver
- - Configuring the driver
- - RDMA Support via Auxiliary Device
- - Statistics
- - Support
- Identifying the Adapter
- =======================
- To find if one or more Pensando PCI Ethernet devices are installed on the
- host, check for the PCI devices::
- $ lspci -d 1dd8:
- b5:00.0 Ethernet controller: Device 1dd8:1002
- b6:00.0 Ethernet controller: Device 1dd8:1002
- If such devices are listed as above, then the ionic.ko driver should find
- and configure them for use. There should be log entries in the kernel
- messages such as these::
- $ dmesg | grep ionic
- ionic 0000:b5:00.0: 126.016 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x16 link)
- ionic 0000:b5:00.0 enp181s0: renamed from eth0
- ionic 0000:b5:00.0 enp181s0: Link up - 100 Gbps
- ionic 0000:b6:00.0: 126.016 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x16 link)
- ionic 0000:b6:00.0 enp182s0: renamed from eth0
- ionic 0000:b6:00.0 enp182s0: Link up - 100 Gbps
- Driver and firmware version information can be gathered with either of
- ethtool or devlink tools::
- $ ethtool -i enp181s0
- driver: ionic
- version: 5.7.0
- firmware-version: 1.8.0-28
- ...
- $ devlink dev info pci/0000:b5:00.0
- pci/0000:b5:00.0:
- driver ionic
- serial_number FLM18420073
- versions:
- fixed:
- asic.id 0x0
- asic.rev 0x0
- running:
- fw 1.8.0-28
- See Documentation/networking/devlink/ionic.rst for more information
- on the devlink dev info data.
- Enabling the driver
- ===================
- The driver is enabled via the standard kernel configuration system,
- using the make command::
- make oldconfig/menuconfig/etc.
- The driver is located in the menu structure at:
- -> Device Drivers
- -> Network device support (NETDEVICES [=y])
- -> Ethernet driver support
- -> Pensando devices
- -> Pensando Ethernet IONIC Support
- Configuring the Driver
- ======================
- MTU
- ---
- Jumbo frame support is available with a maximum size of 9194 bytes.
- Interrupt coalescing
- --------------------
- Interrupt coalescing can be configured by changing the rx-usecs value with
- the "ethtool -C" command. The rx-usecs range is 0-190. The tx-usecs value
- reflects the rx-usecs value as they are tied together on the same interrupt.
- SR-IOV
- ------
- Minimal SR-IOV support is currently offered and can be enabled by setting
- the sysfs 'sriov_numvfs' value, if supported by your particular firmware
- configuration.
- XDP
- ---
- Support for XDP includes the basics, plus Jumbo frames, Redirect and
- ndo_xmit. There is no current support for zero-copy sockets or HW offload.
- RDMA Support via Auxiliary Device
- =================================
- The ionic driver supports RDMA (Remote Direct Memory Access) functionality
- through the Linux auxiliary device framework when advertised by the firmware.
- RDMA capability is detected during device initialization, and if supported,
- the ethernet driver will create an auxiliary device that allows the RDMA
- driver to bind and provide InfiniBand/RoCE functionality.
- Statistics
- ==========
- Basic hardware stats
- --------------------
- The commands ``netstat -i``, ``ip -s link show``, and ``ifconfig`` show
- a limited set of statistics taken directly from firmware. For example::
- $ ip -s link show enp181s0
- 7: enp181s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
- link/ether 00:ae:cd:00:07:68 brd ff:ff:ff:ff:ff:ff
- RX: bytes packets errors dropped overrun mcast
- 414 5 0 0 0 0
- TX: bytes packets errors dropped carrier collsns
- 1384 18 0 0 0 0
- ethtool -S
- ----------
- The statistics shown from the ``ethtool -S`` command includes a combination of
- driver counters and firmware counters, including port and queue specific values.
- The driver values are counters computed by the driver, and the firmware values
- are gathered by the firmware from the port hardware and passed through the
- driver with no further interpretation.
- Driver port specific::
- tx_packets: 12
- tx_bytes: 964
- rx_packets: 5
- rx_bytes: 414
- tx_tso: 0
- tx_tso_bytes: 0
- tx_csum_none: 12
- tx_csum: 0
- rx_csum_none: 0
- rx_csum_complete: 3
- rx_csum_error: 0
- xdp_drop: 0
- xdp_aborted: 0
- xdp_pass: 0
- xdp_tx: 0
- xdp_redirect: 0
- xdp_frames: 0
- Driver queue specific::
- tx_0_pkts: 3
- tx_0_bytes: 294
- tx_0_clean: 3
- tx_0_dma_map_err: 0
- tx_0_linearize: 0
- tx_0_frags: 0
- tx_0_tso: 0
- tx_0_tso_bytes: 0
- tx_0_hwstamp_valid: 0
- tx_0_hwstamp_invalid: 0
- tx_0_csum_none: 3
- tx_0_csum: 0
- tx_0_vlan_inserted: 0
- tx_0_xdp_frames: 0
- rx_0_pkts: 2
- rx_0_bytes: 120
- rx_0_dma_map_err: 0
- rx_0_alloc_err: 0
- rx_0_csum_none: 0
- rx_0_csum_complete: 0
- rx_0_csum_error: 0
- rx_0_hwstamp_valid: 0
- rx_0_hwstamp_invalid: 0
- rx_0_dropped: 0
- rx_0_vlan_stripped: 0
- rx_0_xdp_drop: 0
- rx_0_xdp_aborted: 0
- rx_0_xdp_pass: 0
- rx_0_xdp_tx: 0
- rx_0_xdp_redirect: 0
- Firmware port specific::
- hw_tx_dropped: 0
- hw_rx_dropped: 0
- hw_rx_over_errors: 0
- hw_rx_missed_errors: 0
- hw_tx_aborted_errors: 0
- frames_rx_ok: 15
- frames_rx_all: 15
- frames_rx_bad_fcs: 0
- frames_rx_bad_all: 0
- octets_rx_ok: 1290
- octets_rx_all: 1290
- frames_rx_unicast: 10
- frames_rx_multicast: 5
- frames_rx_broadcast: 0
- frames_rx_pause: 0
- frames_rx_bad_length: 0
- frames_rx_undersized: 0
- frames_rx_oversized: 0
- frames_rx_fragments: 0
- frames_rx_jabber: 0
- frames_rx_pripause: 0
- frames_rx_stomped_crc: 0
- frames_rx_too_long: 0
- frames_rx_vlan_good: 3
- frames_rx_dropped: 0
- frames_rx_less_than_64b: 0
- frames_rx_64b: 4
- frames_rx_65b_127b: 11
- frames_rx_128b_255b: 0
- frames_rx_256b_511b: 0
- frames_rx_512b_1023b: 0
- frames_rx_1024b_1518b: 0
- frames_rx_1519b_2047b: 0
- frames_rx_2048b_4095b: 0
- frames_rx_4096b_8191b: 0
- frames_rx_8192b_9215b: 0
- frames_rx_other: 0
- frames_tx_ok: 31
- frames_tx_all: 31
- frames_tx_bad: 0
- octets_tx_ok: 2614
- octets_tx_total: 2614
- frames_tx_unicast: 8
- frames_tx_multicast: 21
- frames_tx_broadcast: 2
- frames_tx_pause: 0
- frames_tx_pripause: 0
- frames_tx_vlan: 0
- frames_tx_less_than_64b: 0
- frames_tx_64b: 4
- frames_tx_65b_127b: 27
- frames_tx_128b_255b: 0
- frames_tx_256b_511b: 0
- frames_tx_512b_1023b: 0
- frames_tx_1024b_1518b: 0
- frames_tx_1519b_2047b: 0
- frames_tx_2048b_4095b: 0
- frames_tx_4096b_8191b: 0
- frames_tx_8192b_9215b: 0
- frames_tx_other: 0
- frames_tx_pri_0: 0
- frames_tx_pri_1: 0
- frames_tx_pri_2: 0
- frames_tx_pri_3: 0
- frames_tx_pri_4: 0
- frames_tx_pri_5: 0
- frames_tx_pri_6: 0
- frames_tx_pri_7: 0
- frames_rx_pri_0: 0
- frames_rx_pri_1: 0
- frames_rx_pri_2: 0
- frames_rx_pri_3: 0
- frames_rx_pri_4: 0
- frames_rx_pri_5: 0
- frames_rx_pri_6: 0
- frames_rx_pri_7: 0
- tx_pripause_0_1us_count: 0
- tx_pripause_1_1us_count: 0
- tx_pripause_2_1us_count: 0
- tx_pripause_3_1us_count: 0
- tx_pripause_4_1us_count: 0
- tx_pripause_5_1us_count: 0
- tx_pripause_6_1us_count: 0
- tx_pripause_7_1us_count: 0
- rx_pripause_0_1us_count: 0
- rx_pripause_1_1us_count: 0
- rx_pripause_2_1us_count: 0
- rx_pripause_3_1us_count: 0
- rx_pripause_4_1us_count: 0
- rx_pripause_5_1us_count: 0
- rx_pripause_6_1us_count: 0
- rx_pripause_7_1us_count: 0
- rx_pause_1us_count: 0
- frames_tx_truncated: 0
- Support
- =======
- For general Linux networking support, please use the netdev mailing
- list, which is monitored by Pensando personnel::
- netdev@vger.kernel.org
- For more specific support needs, please use the Pensando driver support
- email::
- drivers@pensando.io
|