cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ionic.rst (7290B)


      1.. SPDX-License-Identifier: GPL-2.0+
      2
      3========================================================
      4Linux Driver for the Pensando(R) Ethernet adapter family
      5========================================================
      6
      7Pensando Linux Ethernet driver.
      8Copyright(c) 2019 Pensando Systems, Inc
      9
     10Contents
     11========
     12
     13- Identifying the Adapter
     14- Enabling the driver
     15- Configuring the driver
     16- Statistics
     17- Support
     18
     19Identifying the Adapter
     20=======================
     21
     22To find if one or more Pensando PCI Ethernet devices are installed on the
     23host, check for the PCI devices::
     24
     25  $ lspci -d 1dd8:
     26  b5:00.0 Ethernet controller: Device 1dd8:1002
     27  b6:00.0 Ethernet controller: Device 1dd8:1002
     28
     29If such devices are listed as above, then the ionic.ko driver should find
     30and configure them for use.  There should be log entries in the kernel
     31messages such as these::
     32
     33  $ dmesg | grep ionic
     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
     40
     41Driver and firmware version information can be gathered with either of
     42ethtool or devlink tools::
     43
     44  $ ethtool -i enp181s0
     45  driver: ionic
     46  version: 5.7.0
     47  firmware-version: 1.8.0-28
     48  ...
     49
     50  $ devlink dev info pci/0000:b5:00.0
     51  pci/0000:b5:00.0:
     52    driver ionic
     53    serial_number FLM18420073
     54    versions:
     55        fixed:
     56          asic.id 0x0
     57          asic.rev 0x0
     58        running:
     59          fw 1.8.0-28
     60
     61See Documentation/networking/devlink/ionic.rst for more information
     62on the devlink dev info data.
     63
     64Enabling the driver
     65===================
     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 Drivers
     75    -> Network device support (NETDEVICES [=y])
     76      -> Ethernet driver support
     77        -> Pensando devices
     78          -> Pensando Ethernet IONIC Support
     79
     80Configuring the Driver
     81======================
     82
     83MTU
     84---
     85
     86Jumbo frame support is available with a maximim size of 9194 bytes.
     87
     88Interrupt coalescing
     89--------------------
     90
     91Interrupt coalescing can be configured by changing the rx-usecs value with
     92the "ethtool -C" command.  The rx-usecs range is 0-190.  The tx-usecs value
     93reflects the rx-usecs value as they are tied together on the same interrupt.
     94
     95SR-IOV
     96------
     97
     98Minimal SR-IOV support is currently offered and can be enabled by setting
     99the sysfs 'sriov_numvfs' value, if supported by your particular firmware
    100configuration.
    101
    102Statistics
    103==========
    104
    105Basic hardware stats
    106--------------------
    107
    108The commands ``netstat -i``, ``ip -s link show``, and ``ifconfig`` show
    109a limited set of statistics taken directly from firmware.  For example::
    110
    111  $ ip -s link show enp181s0
    112  7: enp181s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    113      link/ether 00:ae:cd:00:07:68 brd ff:ff:ff:ff:ff:ff
    114      RX: bytes  packets  errors  dropped overrun mcast
    115      414        5        0       0       0       0
    116      TX: bytes  packets  errors  dropped carrier collsns
    117      1384       18       0       0       0       0
    118
    119ethtool -S
    120----------
    121
    122The statistics shown from the ``ethtool -S`` command includes a combination of
    123driver counters and firmware counters, including port and queue specific values.
    124The driver values are counters computed by the driver, and the firmware values
    125are gathered by the firmware from the port hardware and passed through the
    126driver with no further interpretation.
    127
    128Driver port specific::
    129
    130     tx_packets: 12
    131     tx_bytes: 964
    132     rx_packets: 5
    133     rx_bytes: 414
    134     tx_tso: 0
    135     tx_tso_bytes: 0
    136     tx_csum_none: 12
    137     tx_csum: 0
    138     rx_csum_none: 0
    139     rx_csum_complete: 3
    140     rx_csum_error: 0
    141
    142Driver queue specific::
    143
    144     tx_0_pkts: 3
    145     tx_0_bytes: 294
    146     tx_0_clean: 3
    147     tx_0_dma_map_err: 0
    148     tx_0_linearize: 0
    149     tx_0_frags: 0
    150     tx_0_tso: 0
    151     tx_0_tso_bytes: 0
    152     tx_0_csum_none: 3
    153     tx_0_csum: 0
    154     tx_0_vlan_inserted: 0
    155     rx_0_pkts: 2
    156     rx_0_bytes: 120
    157     rx_0_dma_map_err: 0
    158     rx_0_alloc_err: 0
    159     rx_0_csum_none: 0
    160     rx_0_csum_complete: 0
    161     rx_0_csum_error: 0
    162     rx_0_dropped: 0
    163     rx_0_vlan_stripped: 0
    164
    165Firmware port specific::
    166
    167     hw_tx_dropped: 0
    168     hw_rx_dropped: 0
    169     hw_rx_over_errors: 0
    170     hw_rx_missed_errors: 0
    171     hw_tx_aborted_errors: 0
    172     frames_rx_ok: 15
    173     frames_rx_all: 15
    174     frames_rx_bad_fcs: 0
    175     frames_rx_bad_all: 0
    176     octets_rx_ok: 1290
    177     octets_rx_all: 1290
    178     frames_rx_unicast: 10
    179     frames_rx_multicast: 5
    180     frames_rx_broadcast: 0
    181     frames_rx_pause: 0
    182     frames_rx_bad_length: 0
    183     frames_rx_undersized: 0
    184     frames_rx_oversized: 0
    185     frames_rx_fragments: 0
    186     frames_rx_jabber: 0
    187     frames_rx_pripause: 0
    188     frames_rx_stomped_crc: 0
    189     frames_rx_too_long: 0
    190     frames_rx_vlan_good: 3
    191     frames_rx_dropped: 0
    192     frames_rx_less_than_64b: 0
    193     frames_rx_64b: 4
    194     frames_rx_65b_127b: 11
    195     frames_rx_128b_255b: 0
    196     frames_rx_256b_511b: 0
    197     frames_rx_512b_1023b: 0
    198     frames_rx_1024b_1518b: 0
    199     frames_rx_1519b_2047b: 0
    200     frames_rx_2048b_4095b: 0
    201     frames_rx_4096b_8191b: 0
    202     frames_rx_8192b_9215b: 0
    203     frames_rx_other: 0
    204     frames_tx_ok: 31
    205     frames_tx_all: 31
    206     frames_tx_bad: 0
    207     octets_tx_ok: 2614
    208     octets_tx_total: 2614
    209     frames_tx_unicast: 8
    210     frames_tx_multicast: 21
    211     frames_tx_broadcast: 2
    212     frames_tx_pause: 0
    213     frames_tx_pripause: 0
    214     frames_tx_vlan: 0
    215     frames_tx_less_than_64b: 0
    216     frames_tx_64b: 4
    217     frames_tx_65b_127b: 27
    218     frames_tx_128b_255b: 0
    219     frames_tx_256b_511b: 0
    220     frames_tx_512b_1023b: 0
    221     frames_tx_1024b_1518b: 0
    222     frames_tx_1519b_2047b: 0
    223     frames_tx_2048b_4095b: 0
    224     frames_tx_4096b_8191b: 0
    225     frames_tx_8192b_9215b: 0
    226     frames_tx_other: 0
    227     frames_tx_pri_0: 0
    228     frames_tx_pri_1: 0
    229     frames_tx_pri_2: 0
    230     frames_tx_pri_3: 0
    231     frames_tx_pri_4: 0
    232     frames_tx_pri_5: 0
    233     frames_tx_pri_6: 0
    234     frames_tx_pri_7: 0
    235     frames_rx_pri_0: 0
    236     frames_rx_pri_1: 0
    237     frames_rx_pri_2: 0
    238     frames_rx_pri_3: 0
    239     frames_rx_pri_4: 0
    240     frames_rx_pri_5: 0
    241     frames_rx_pri_6: 0
    242     frames_rx_pri_7: 0
    243     tx_pripause_0_1us_count: 0
    244     tx_pripause_1_1us_count: 0
    245     tx_pripause_2_1us_count: 0
    246     tx_pripause_3_1us_count: 0
    247     tx_pripause_4_1us_count: 0
    248     tx_pripause_5_1us_count: 0
    249     tx_pripause_6_1us_count: 0
    250     tx_pripause_7_1us_count: 0
    251     rx_pripause_0_1us_count: 0
    252     rx_pripause_1_1us_count: 0
    253     rx_pripause_2_1us_count: 0
    254     rx_pripause_3_1us_count: 0
    255     rx_pripause_4_1us_count: 0
    256     rx_pripause_5_1us_count: 0
    257     rx_pripause_6_1us_count: 0
    258     rx_pripause_7_1us_count: 0
    259     rx_pause_1us_count: 0
    260     frames_tx_truncated: 0
    261
    262
    263Support
    264=======
    265
    266For general Linux networking support, please use the netdev mailing
    267list, which is monitored by Pensando personnel::
    268
    269  netdev@vger.kernel.org
    270
    271For more specific support needs, please use the Pensando driver support
    272email::
    273
    274  drivers@pensando.io