net/mlx5e: Make tx_port_ts logic resilient to out-of-order CQEs
[platform/kernel/linux-rpi.git] / Documentation / networking / device_drivers / ethernet / mellanox / mlx5 / counters.rst
1 .. SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
2 .. include:: <isonum.txt>
3
4 ================
5 Ethtool counters
6 ================
7
8 :Copyright: |copy| 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
9
10 Contents
11 ========
12
13 - `Overview`_
14 - `Groups`_
15 - `Types`_
16 - `Descriptions`_
17
18 Overview
19 ========
20
21 There are several counter groups based on where the counter is being counted. In
22 addition, each group of counters may have different counter types.
23
24 These counter groups are based on which component in a networking setup,
25 illustrated below, that they describe::
26
27                                                   ----------------------------------------
28                                                   |                                      |
29     ----------------------------------------    ---------------------------------------- |
30     |              Hypervisor              |    |                  VM                  | |
31     |                                      |    |                                      | |
32     | -------------------  --------------- |    | -------------------  --------------- | |
33     | | Ethernet driver |  | RDMA driver | |    | | Ethernet driver |  | RDMA driver | | |
34     | -------------------  --------------- |    | -------------------  --------------- | |
35     |           |                 |        |    |           |                 |        | |
36     |           -------------------        |    |           -------------------        | |
37     |                   |                  |    |                   |                  |--
38     ----------------------------------------    ----------------------------------------
39                         |                                           |
40             -------------               -----------------------------
41             |                           |
42          ------                      ------ ------ ------         ------      ------      ------
43     -----| PF |----------------------| VF |-| VF |-| VF |-----  --| PF |--- --| PF |--- --| PF |---
44     |    ------                      ------ ------ ------    |  | ------  | | ------  | | ------  |
45     |                                                        |  |         | |         | |         |
46     |                                                        |  |         | |         | |         |
47     |                                                        |  |         | |         | |         |
48     | eSwitch                                                |  | eSwitch | | eSwitch | | eSwitch |
49     ----------------------------------------------------------  ----------- ----------- -----------
50                -------------------------------------------------------------------------------
51                |                                                                             |
52                |                                                                             |
53                | Uplink (no counters)                                                        |
54                -------------------------------------------------------------------------------
55                        ---------------------------------------------------------------
56                        |                                                             |
57                        |                                                             |
58                        | MPFS (no counters)                                          |
59                        ---------------------------------------------------------------
60                                                      |
61                                                      |
62                                                      | Port
63
64 Groups
65 ======
66
67 Ring
68   Software counters populated by the driver stack.
69
70 Netdev
71   An aggregation of software ring counters.
72
73 vPort counters
74   Traffic counters and drops due to steering or no buffers. May indicate issues
75   with NIC. These counters include Ethernet traffic counters (including Raw
76   Ethernet) and RDMA/RoCE traffic counters.
77
78 Physical port counters
79   Counters that collect statistics about the PFs and VFs. May indicate issues
80   with NIC, link, or network. This measuring point holds information on
81   standardized counters like IEEE 802.3, RFC2863, RFC 2819, RFC 3635 and
82   additional counters like flow control, FEC and more. Physical port counters
83   are not exposed to virtual machines.
84
85 Priority Port Counters
86   A set of the physical port counters, per priority per port.
87
88 Types
89 =====
90
91 Counters are divided into three types.
92
93 Traffic Informative Counters
94   Counters which count traffic. These counters can be used for load estimation
95   or for general debug.
96
97 Traffic Acceleration Counters
98   Counters which count traffic that was accelerated by Mellanox driver or by
99   hardware. The counters are an additional layer to the informative counter set,
100   and the same traffic is counted in both informative and acceleration counters.
101
102 .. [#accel] Traffic acceleration counter.
103
104 Error Counters
105   Increment of these counters might indicate a problem. Each of these counters
106   has an explanation and correction action.
107
108 Statistic can be fetched via the `ip link` or `ethtool` commands. `ethtool`
109 provides more detailed information.::
110
111     ip –s link show <if-name>
112     ethtool -S <if-name>
113
114 Descriptions
115 ============
116
117 XSK, PTP, and QoS counters that are similar to counters defined previously will
118 not be separately listed. For example, `ptp_tx[i]_packets` will not be
119 explicitly documented since `tx[i]_packets` describes the behavior of both
120 counters, except `ptp_tx[i]_packets` is only counted when precision time
121 protocol is used.
122
123 Ring / Netdev Counter
124 ----------------------------
125 The following counters are available per ring or software port.
126
127 These counters provide information on the amount of traffic that was accelerated
128 by the NIC. The counters are counting the accelerated traffic in addition to the
129 standard counters which counts it (i.e. accelerated traffic is counted twice).
130
131 The counter names in the table below refers to both ring and port counters. The
132 notation for ring counters includes the [i] index without the braces. The
133 notation for port counters doesn't include the [i]. A counter name
134 `rx[i]_packets` will be printed as `rx0_packets` for ring 0 and `rx_packets` for
135 the software port.
136
137 .. flat-table:: Ring / Software Port Counter Table
138    :widths: 2 3 1
139
140    * - Counter
141      - Description
142      - Type
143
144    * - `rx[i]_packets`
145      - The number of packets received on ring i.
146      - Informative
147
148    * - `rx[i]_bytes`
149      - The number of bytes received on ring i.
150      - Informative
151
152    * - `tx[i]_packets`
153      - The number of packets transmitted on ring i.
154      - Informative
155
156    * - `tx[i]_bytes`
157      - The number of bytes transmitted on ring i.
158      - Informative
159
160    * - `tx[i]_recover`
161      - The number of times the SQ was recovered.
162      - Error
163
164    * - `tx[i]_cqes`
165      - Number of CQEs events on SQ issued on ring i.
166      - Informative
167
168    * - `tx[i]_cqe_err`
169      - The number of error CQEs encountered on the SQ for ring i.
170      - Error
171
172    * - `tx[i]_tso_packets`
173      - The number of TSO packets transmitted on ring i [#accel]_.
174      - Acceleration
175
176    * - `tx[i]_tso_bytes`
177      - The number of TSO bytes transmitted on ring i [#accel]_.
178      - Acceleration
179
180    * - `tx[i]_tso_inner_packets`
181      - The number of TSO packets which are indicated to be carry internal
182        encapsulation transmitted on ring i [#accel]_.
183      - Acceleration
184
185    * - `tx[i]_tso_inner_bytes`
186      - The number of TSO bytes which are indicated to be carry internal
187        encapsulation transmitted on ring i [#accel]_.
188      - Acceleration
189
190    * - `rx[i]_gro_packets`
191      - Number of received packets processed using hardware-accelerated GRO. The
192        number of hardware GRO offloaded packets received on ring i.
193      - Acceleration
194
195    * - `rx[i]_gro_bytes`
196      - Number of received bytes processed using hardware-accelerated GRO. The
197        number of hardware GRO offloaded bytes received on ring i.
198      - Acceleration
199
200    * - `rx[i]_gro_skbs`
201      - The number of receive SKBs constructed while performing
202        hardware-accelerated GRO.
203      - Informative
204
205    * - `rx[i]_gro_match_packets`
206      - Number of received packets processed using hardware-accelerated GRO that
207        met the flow table match criteria.
208      - Informative
209
210    * - `rx[i]_gro_large_hds`
211      - Number of receive packets using hardware-accelerated GRO that have large
212        headers that require additional memory to be allocated.
213      - Informative
214
215    * - `rx[i]_lro_packets`
216      - The number of LRO packets received on ring i [#accel]_.
217      - Acceleration
218
219    * - `rx[i]_lro_bytes`
220      - The number of LRO bytes received on ring i [#accel]_.
221      - Acceleration
222
223    * - `rx[i]_ecn_mark`
224      - The number of received packets where the ECN mark was turned on.
225      - Informative
226
227    * - `rx_oversize_pkts_buffer`
228      - The number of dropped received packets due to length which arrived to RQ
229        and exceed software buffer size allocated by the device for incoming
230        traffic. It might imply that the device MTU is larger than the software
231        buffers size.
232      - Error
233
234    * - `rx_oversize_pkts_sw_drop`
235      - Number of received packets dropped in software because the CQE data is
236        larger than the MTU size.
237      - Error
238
239    * - `rx[i]_csum_unnecessary`
240      - Packets received with a `CHECKSUM_UNNECESSARY` on ring i [#accel]_.
241      - Acceleration
242
243    * - `rx[i]_csum_unnecessary_inner`
244      - Packets received with inner encapsulation with a `CHECKSUM_UNNECESSARY`
245        on ring i [#accel]_.
246      - Acceleration
247
248    * - `rx[i]_csum_none`
249      - Packets received with a `CHECKSUM_NONE` on ring i [#accel]_.
250      - Acceleration
251
252    * - `rx[i]_csum_complete`
253      - Packets received with a `CHECKSUM_COMPLETE` on ring i [#accel]_.
254      - Acceleration
255
256    * - `rx[i]_csum_complete_tail`
257      - Number of received packets that had checksum calculation computed,
258        potentially needed padding, and were able to do so with
259        `CHECKSUM_PARTIAL`.
260      - Informative
261
262    * - `rx[i]_csum_complete_tail_slow`
263      - Number of received packets that need padding larger than eight bytes for
264        the checksum.
265      - Informative
266
267    * - `tx[i]_csum_partial`
268      - Packets transmitted with a `CHECKSUM_PARTIAL` on ring i [#accel]_.
269      - Acceleration
270
271    * - `tx[i]_csum_partial_inner`
272      - Packets transmitted with inner encapsulation with a `CHECKSUM_PARTIAL` on
273        ring i [#accel]_.
274      - Acceleration
275
276    * - `tx[i]_csum_none`
277      - Packets transmitted with no hardware checksum acceleration on ring i.
278      - Informative
279
280    * - `tx[i]_stopped` / `tx_queue_stopped` [#ring_global]_
281      - Events where SQ was full on ring i. If this counter is increased, check
282        the amount of buffers allocated for transmission.
283      - Informative
284
285    * - `tx[i]_wake` / `tx_queue_wake` [#ring_global]_
286      - Events where SQ was full and has become not full on ring i.
287      - Informative
288
289    * - `tx[i]_dropped` / `tx_queue_dropped` [#ring_global]_
290      - Packets transmitted that were dropped due to DMA mapping failure on
291        ring i. If this counter is increased, check the amount of buffers
292        allocated for transmission.
293      - Error
294
295    * - `tx[i]_nop`
296      - The number of nop WQEs (empty WQEs) inserted to the SQ (related to
297        ring i) due to the reach of the end of the cyclic buffer. When reaching
298        near to the end of cyclic buffer the driver may add those empty WQEs to
299        avoid handling a state the a WQE start in the end of the queue and ends
300        in the beginning of the queue. This is a normal condition.
301      - Informative
302
303    * - `tx[i]_added_vlan_packets`
304      - The number of packets sent where vlan tag insertion was offloaded to the
305        hardware.
306      - Acceleration
307
308    * - `rx[i]_removed_vlan_packets`
309      - The number of packets received where vlan tag stripping was offloaded to
310        the hardware.
311      - Acceleration
312
313    * - `rx[i]_wqe_err`
314      - The number of wrong opcodes received on ring i.
315      - Error
316
317    * - `rx[i]_mpwqe_frag`
318      - The number of WQEs that failed to allocate compound page and hence
319        fragmented MPWQE’s (Multi Packet WQEs) were used on ring i. If this
320        counter raise, it may suggest that there is no enough memory for large
321        pages, the driver allocated fragmented pages. This is not abnormal
322        condition.
323      - Informative
324
325    * - `rx[i]_mpwqe_filler_cqes`
326      - The number of filler CQEs events that were issued on ring i.
327      - Informative
328
329    * - `rx[i]_mpwqe_filler_strides`
330      - The number of strides consumed by filler CQEs on ring i.
331      - Informative
332
333    * - `tx[i]_mpwqe_blks`
334      - The number of send blocks processed from Multi-Packet WQEs (mpwqe).
335      - Informative
336
337    * - `tx[i]_mpwqe_pkts`
338      - The number of send packets processed from Multi-Packet WQEs (mpwqe).
339      - Informative
340
341    * - `rx[i]_cqe_compress_blks`
342      - The number of receive blocks with CQE compression on ring i [#accel]_.
343      - Acceleration
344
345    * - `rx[i]_cqe_compress_pkts`
346      - The number of receive packets with CQE compression on ring i [#accel]_.
347      - Acceleration
348
349    * - `rx[i]_arfs_err`
350      - Number of flow rules that failed to be added to the flow table.
351      - Error
352
353    * - `rx[i]_recover`
354      - The number of times the RQ was recovered.
355      - Error
356
357    * - `tx[i]_xmit_more`
358      - The number of packets sent with `xmit_more` indication set on the skbuff
359        (no doorbell).
360      - Acceleration
361
362    * - `ch[i]_poll`
363      - The number of invocations of NAPI poll of channel i.
364      - Informative
365
366    * - `ch[i]_arm`
367      - The number of times the NAPI poll function completed and armed the
368        completion queues on channel i.
369      - Informative
370
371    * - `ch[i]_aff_change`
372      - The number of times the NAPI poll function explicitly stopped execution
373        on a CPU due to a change in affinity, on channel i.
374      - Informative
375
376    * - `ch[i]_events`
377      - The number of hard interrupt events on the completion queues of channel i.
378      - Informative
379
380    * - `ch[i]_eq_rearm`
381      - The number of times the EQ was recovered.
382      - Error
383
384    * - `ch[i]_force_irq`
385      - Number of times NAPI is triggered by XSK wakeups by posting a NOP to
386        ICOSQ.
387      - Acceleration
388
389    * - `rx[i]_congst_umr`
390      - The number of times an outstanding UMR request is delayed due to
391        congestion, on ring i.
392      - Informative
393
394    * - `rx_pp_alloc_fast`
395      - Number of successful fast path allocations.
396      - Informative
397
398    * - `rx_pp_alloc_slow`
399      - Number of slow path order-0 allocations.
400      - Informative
401
402    * - `rx_pp_alloc_slow_high_order`
403      - Number of slow path high order allocations.
404      - Informative
405
406    * - `rx_pp_alloc_empty`
407      - Counter is incremented when ptr ring is empty, so a slow path allocation
408        was forced.
409      - Informative
410
411    * - `rx_pp_alloc_refill`
412      - Counter is incremented when an allocation which triggered a refill of the
413        cache.
414      - Informative
415
416    * - `rx_pp_alloc_waive`
417      - Counter is incremented when pages obtained from the ptr ring that cannot
418        be added to the cache due to a NUMA mismatch.
419      - Informative
420
421    * - `rx_pp_recycle_cached`
422      - Counter is incremented when recycling placed page in the page pool cache.
423      - Informative
424
425    * - `rx_pp_recycle_cache_full`
426      - Counter is incremented when page pool cache was full.
427      - Informative
428
429    * - `rx_pp_recycle_ring`
430      - Counter is incremented when page placed into the ptr ring.
431      - Informative
432
433    * - `rx_pp_recycle_ring_full`
434      - Counter is incremented when page released from page pool because the ptr
435        ring was full.
436      - Informative
437
438    * - `rx_pp_recycle_released_ref`
439      - Counter is incremented when page released (and not recycled) because
440        refcnt > 1.
441      - Informative
442
443    * - `rx[i]_xsk_buff_alloc_err`
444      - The number of times allocating an skb or XSK buffer failed in the XSK RQ
445        context.
446      - Error
447
448    * - `rx[i]_xsk_arfs_err`
449      - aRFS (accelerated Receive Flow Steering) does not occur in the XSK RQ
450        context, so this counter should never increment.
451      - Error
452
453    * - `rx[i]_xdp_tx_xmit`
454      - The number of packets forwarded back to the port due to XDP program
455        `XDP_TX` action (bouncing). these packets are not counted by other
456        software counters. These packets are counted by physical port and vPort
457        counters.
458      - Informative
459
460    * - `rx[i]_xdp_tx_mpwqe`
461      - Number of multi-packet WQEs transmitted by the netdev and `XDP_TX`-ed by
462        the netdev during the RQ context.
463      - Acceleration
464
465    * - `rx[i]_xdp_tx_inlnw`
466      - Number of WQE data segments transmitted where the data could be inlined
467        in the WQE and then `XDP_TX`-ed during the RQ context.
468      - Acceleration
469
470    * - `rx[i]_xdp_tx_nops`
471      - Number of NOP WQEBBs (WQE building blocks) received posted to the XDP SQ.
472      - Acceleration
473
474    * - `rx[i]_xdp_tx_full`
475      - The number of packets that should have been forwarded back to the port
476        due to `XDP_TX` action but were dropped due to full tx queue. These packets
477        are not counted by other software counters. These packets are counted by
478        physical port and vPort counters. You may open more rx queues and spread
479        traffic rx over all queues and/or increase rx ring size.
480      - Error
481
482    * - `rx[i]_xdp_tx_err`
483      - The number of times an `XDP_TX` error such as frame too long and frame
484        too short occurred on `XDP_TX` ring of RX ring.
485      - Error
486
487    * - `rx[i]_xdp_tx_cqes` / `rx_xdp_tx_cqe` [#ring_global]_
488      - The number of completions received on the CQ of the `XDP_TX` ring.
489      - Informative
490
491    * - `rx[i]_xdp_drop`
492      - The number of packets dropped due to XDP program `XDP_DROP` action. these
493        packets are not counted by other software counters. These packets are
494        counted by physical port and vPort counters.
495      - Informative
496
497    * - `rx[i]_xdp_redirect`
498      - The number of times an XDP redirect action was triggered on ring i.
499      - Acceleration
500
501    * - `tx[i]_xdp_xmit`
502      - The number of packets redirected to the interface(due to XDP redirect).
503        These packets are not counted by other software counters. These packets
504        are counted by physical port and vPort counters.
505      - Informative
506
507    * - `tx[i]_xdp_full`
508      - The number of packets redirected to the interface(due to XDP redirect),
509        but were dropped due to full tx queue. these packets are not counted by
510        other software counters. you may enlarge tx queues.
511      - Informative
512
513    * - `tx[i]_xdp_mpwqe`
514      - Number of multi-packet WQEs offloaded onto the NIC that were
515        `XDP_REDIRECT`-ed from other netdevs.
516      - Acceleration
517
518    * - `tx[i]_xdp_inlnw`
519      - Number of WQE data segments where the data could be inlined in the WQE
520        where the data segments were `XDP_REDIRECT`-ed from other netdevs.
521      - Acceleration
522
523    * - `tx[i]_xdp_nops`
524      - Number of NOP WQEBBs (WQE building blocks) posted to the SQ that were
525        `XDP_REDIRECT`-ed from other netdevs.
526      - Acceleration
527
528    * - `tx[i]_xdp_err`
529      - The number of packets redirected to the interface(due to XDP redirect)
530        but were dropped due to error such as frame too long and frame too short.
531      - Error
532
533    * - `tx[i]_xdp_cqes`
534      - The number of completions received for packets redirected to the
535        interface(due to XDP redirect) on the CQ.
536      - Informative
537
538    * - `tx[i]_xsk_xmit`
539      - The number of packets transmitted using XSK zerocopy functionality.
540      - Acceleration
541
542    * - `tx[i]_xsk_mpwqe`
543      - Number of multi-packet WQEs offloaded onto the NIC that were
544        `XDP_REDIRECT`-ed from other netdevs.
545      - Acceleration
546
547    * - `tx[i]_xsk_inlnw`
548      - Number of WQE data segments where the data could be inlined in the WQE
549        that are transmitted using XSK zerocopy.
550      - Acceleration
551
552    * - `tx[i]_xsk_full`
553      - Number of times doorbell is rung in XSK zerocopy mode when SQ is full.
554      - Error
555
556    * - `tx[i]_xsk_err`
557      - Number of errors that occurred in XSK zerocopy mode such as if the data
558        size is larger than the MTU size.
559      - Error
560
561    * - `tx[i]_xsk_cqes`
562      - Number of CQEs processed in XSK zerocopy mode.
563      - Acceleration
564
565    * - `tx_tls_ctx`
566      - Number of TLS TX HW offload contexts added to device for encryption.
567      - Acceleration
568
569    * - `tx_tls_del`
570      - Number of TLS TX HW offload contexts removed from device (connection
571        closed).
572      - Acceleration
573
574    * - `tx_tls_pool_alloc`
575      - Number of times a unit of work is successfully allocated in the TLS HW
576        offload pool.
577      - Acceleration
578
579    * - `tx_tls_pool_free`
580      - Number of times a unit of work is freed in the TLS HW offload pool.
581      - Acceleration
582
583    * - `rx_tls_ctx`
584      - Number of TLS RX HW offload contexts added to device for decryption.
585      - Acceleration
586
587    * - `rx_tls_del`
588      - Number of TLS RX HW offload contexts deleted from device (connection has
589        finished).
590      - Acceleration
591
592    * - `rx[i]_tls_decrypted_packets`
593      - Number of successfully decrypted RX packets which were part of a TLS
594        stream.
595      - Acceleration
596
597    * - `rx[i]_tls_decrypted_bytes`
598      - Number of TLS payload bytes in RX packets which were successfully
599        decrypted.
600      - Acceleration
601
602    * - `rx[i]_tls_resync_req_pkt`
603      - Number of received TLS packets with a resync request.
604      - Acceleration
605
606    * - `rx[i]_tls_resync_req_start`
607      - Number of times the TLS async resync request was started.
608      - Acceleration
609
610    * - `rx[i]_tls_resync_req_end`
611      - Number of times the TLS async resync request properly ended with
612        providing the HW tracked tcp-seq.
613      - Acceleration
614
615    * - `rx[i]_tls_resync_req_skip`
616      - Number of times the TLS async resync request procedure was started but
617        not properly ended.
618      - Error
619
620    * - `rx[i]_tls_resync_res_ok`
621      - Number of times the TLS resync response call to the driver was
622        successfully handled.
623      - Acceleration
624
625    * - `rx[i]_tls_resync_res_retry`
626      - Number of times the TLS resync response call to the driver was
627        reattempted when ICOSQ is full.
628      - Error
629
630    * - `rx[i]_tls_resync_res_skip`
631      - Number of times the TLS resync response call to the driver was terminated
632        unsuccessfully.
633      - Error
634
635    * - `rx[i]_tls_err`
636      - Number of times when CQE TLS offload was problematic.
637      - Error
638
639    * - `tx[i]_tls_encrypted_packets`
640      - The number of send packets that are TLS encrypted by the kernel.
641      - Acceleration
642
643    * - `tx[i]_tls_encrypted_bytes`
644      - The number of send bytes that are TLS encrypted by the kernel.
645      - Acceleration
646
647    * - `tx[i]_tls_ooo`
648      - Number of times out of order TLS SQE fragments were handled on ring i.
649      - Acceleration
650
651    * - `tx[i]_tls_dump_packets`
652      - Number of TLS decrypted packets copied over from NIC over DMA.
653      - Acceleration
654
655    * - `tx[i]_tls_dump_bytes`
656      - Number of TLS decrypted bytes copied over from NIC over DMA.
657      - Acceleration
658
659    * - `tx[i]_tls_resync_bytes`
660      - Number of TLS bytes requested to be resynchronized in order to be
661        decrypted.
662      - Acceleration
663
664    * - `tx[i]_tls_skip_no_sync_data`
665      - Number of TLS send data that can safely be skipped / do not need to be
666        decrypted.
667      - Acceleration
668
669    * - `tx[i]_tls_drop_no_sync_data`
670      - Number of TLS send data that were dropped due to retransmission of TLS
671        data.
672      - Acceleration
673
674    * - `ptp_cq[i]_abort`
675      - Number of times a CQE has to be skipped in precision time protocol due to
676        a skew between the port timestamp and CQE timestamp being greater than
677        128 seconds.
678      - Error
679
680    * - `ptp_cq[i]_abort_abs_diff_ns`
681      - Accumulation of time differences between the port timestamp and CQE
682        timestamp when the difference is greater than 128 seconds in precision
683        time protocol.
684      - Error
685
686    * - `ptp_cq[i]_late_cqe`
687      - Number of times a CQE has been delivered on the PTP timestamping CQ when
688        the CQE was not expected since a certain amount of time had elapsed where
689        the device typically ensures not posting the CQE.
690      - Error
691
692 .. [#ring_global] The corresponding ring and global counters do not share the
693                   same name (i.e. do not follow the common naming scheme).
694
695 vPort Counters
696 --------------
697 Counters on the NIC port that is connected to a eSwitch.
698
699 .. flat-table:: vPort Counter Table
700    :widths: 2 3 1
701
702    * - Counter
703      - Description
704      - Type
705
706    * - `rx_vport_unicast_packets`
707      - Unicast packets received, steered to a port including Raw Ethernet
708        QP/DPDK traffic, excluding RDMA traffic.
709      - Informative
710
711    * - `rx_vport_unicast_bytes`
712      - Unicast bytes received, steered to a port including Raw Ethernet QP/DPDK
713        traffic, excluding RDMA traffic.
714      - Informative
715
716    * - `tx_vport_unicast_packets`
717      - Unicast packets transmitted, steered from a port including Raw Ethernet
718        QP/DPDK traffic, excluding RDMA traffic.
719      - Informative
720
721    * - `tx_vport_unicast_bytes`
722      - Unicast bytes transmitted, steered from a port including Raw Ethernet
723        QP/DPDK traffic, excluding RDMA traffic.
724      - Informative
725
726    * - `rx_vport_multicast_packets`
727      - Multicast packets received, steered to a port including Raw Ethernet
728        QP/DPDK traffic, excluding RDMA traffic.
729      - Informative
730
731    * - `rx_vport_multicast_bytes`
732      - Multicast bytes received, steered to a port including Raw Ethernet
733        QP/DPDK traffic, excluding RDMA traffic.
734      - Informative
735
736    * - `tx_vport_multicast_packets`
737      - Multicast packets transmitted, steered from a port including Raw Ethernet
738        QP/DPDK traffic, excluding RDMA traffic.
739      - Informative
740
741    * - `tx_vport_multicast_bytes`
742      - Multicast bytes transmitted, steered from a port including Raw Ethernet
743        QP/DPDK traffic, excluding RDMA traffic.
744      - Informative
745
746    * - `rx_vport_broadcast_packets`
747      - Broadcast packets received, steered to a port including Raw Ethernet
748        QP/DPDK traffic, excluding RDMA traffic.
749      - Informative
750
751    * - `rx_vport_broadcast_bytes`
752      - Broadcast bytes received, steered to a port including Raw Ethernet
753        QP/DPDK traffic, excluding RDMA traffic.
754      - Informative
755
756    * - `tx_vport_broadcast_packets`
757      - Broadcast packets transmitted, steered from a port including Raw Ethernet
758        QP/DPDK traffic, excluding RDMA traffic.
759      - Informative
760
761    * - `tx_vport_broadcast_bytes`
762      - Broadcast bytes transmitted, steered from a port including Raw Ethernet
763        QP/DPDK traffic, excluding RDMA traffic.
764      - Informative
765
766    * - `rx_vport_rdma_unicast_packets`
767      - RDMA unicast packets received, steered to a port (counters counts
768        RoCE/UD/RC traffic) [#accel]_.
769      - Acceleration
770
771    * - `rx_vport_rdma_unicast_bytes`
772      - RDMA unicast bytes received, steered to a port (counters counts
773        RoCE/UD/RC traffic) [#accel]_.
774      - Acceleration
775
776    * - `tx_vport_rdma_unicast_packets`
777      - RDMA unicast packets transmitted, steered from a port (counters counts
778        RoCE/UD/RC traffic) [#accel]_.
779      - Acceleration
780
781    * - `tx_vport_rdma_unicast_bytes`
782      - RDMA unicast bytes transmitted, steered from a port (counters counts
783        RoCE/UD/RC traffic) [#accel]_.
784      - Acceleration
785
786    * - `rx_vport_rdma_multicast_packets`
787      - RDMA multicast packets received, steered to a port (counters counts
788        RoCE/UD/RC traffic) [#accel]_.
789      - Acceleration
790
791    * - `rx_vport_rdma_multicast_bytes`
792      - RDMA multicast bytes received, steered to a port (counters counts
793        RoCE/UD/RC traffic) [#accel]_.
794      - Acceleration
795
796    * - `tx_vport_rdma_multicast_packets`
797      - RDMA multicast packets transmitted, steered from a port (counters counts
798        RoCE/UD/RC traffic) [#accel]_.
799      - Acceleration
800
801    * - `tx_vport_rdma_multicast_bytes`
802      - RDMA multicast bytes transmitted, steered from a port (counters counts
803        RoCE/UD/RC traffic) [#accel]_.
804      - Acceleration
805
806    * - `vport_loopback_packets`
807      - Unicast, multicast and broadcast packets that were loop-back (received
808        and transmitted), IB/Eth  [#accel]_.
809      - Acceleration
810
811    * - `vport_loopback_bytes`
812      - Unicast, multicast and broadcast bytes that were loop-back (received
813        and transmitted), IB/Eth  [#accel]_.
814      - Acceleration
815
816    * - `rx_steer_missed_packets`
817      - Number of packets that was received by the NIC, however was discarded
818        because it did not match any flow in the NIC flow table.
819      - Error
820
821    * - `rx_packets`
822      - Representor only: packets received, that were handled by the hypervisor.
823      - Informative
824
825    * - `rx_bytes`
826      - Representor only: bytes received, that were handled by the hypervisor.
827      - Informative
828
829    * - `tx_packets`
830      - Representor only: packets transmitted, that were handled by the
831        hypervisor.
832      - Informative
833
834    * - `tx_bytes`
835      - Representor only: bytes transmitted, that were handled by the hypervisor.
836      - Informative
837
838    * - `dev_internal_queue_oob`
839      - The number of dropped packets due to lack of receive WQEs for an internal
840        device RQ.
841      - Error
842
843 Physical Port Counters
844 ----------------------
845 The physical port counters are the counters on the external port connecting the
846 adapter to the network. This measuring point holds information on standardized
847 counters like IEEE 802.3, RFC2863, RFC 2819, RFC 3635 and additional counters
848 like flow control, FEC and more.
849
850 .. flat-table:: Physical Port Counter Table
851    :widths: 2 3 1
852
853    * - Counter
854      - Description
855      - Type
856
857    * - `rx_packets_phy`
858      - The number of packets received on the physical port. This counter doesn’t
859        include packets that were discarded due to FCS, frame size and similar
860        errors.
861      - Informative
862
863    * - `tx_packets_phy`
864      - The number of packets transmitted on the physical port.
865      - Informative
866
867    * - `rx_bytes_phy`
868      - The number of bytes received on the physical port, including Ethernet
869        header and FCS.
870      - Informative
871
872    * - `tx_bytes_phy`
873      - The number of bytes transmitted on the physical port.
874      - Informative
875
876    * - `rx_multicast_phy`
877      - The number of multicast packets received on the physical port.
878      - Informative
879
880    * - `tx_multicast_phy`
881      - The number of multicast packets transmitted on the physical port.
882      - Informative
883
884    * - `rx_broadcast_phy`
885      - The number of broadcast packets received on the physical port.
886      - Informative
887
888    * - `tx_broadcast_phy`
889      - The number of broadcast packets transmitted on the physical port.
890      - Informative
891
892    * - `rx_crc_errors_phy`
893      - The number of dropped received packets due to FCS (Frame Check Sequence)
894        error on the physical port. If this counter is increased in high rate,
895        check the link quality using `rx_symbol_error_phy` and
896        `rx_corrected_bits_phy` counters below.
897      - Error
898
899    * - `rx_in_range_len_errors_phy`
900      - The number of received packets dropped due to length/type errors on a
901        physical port.
902      - Error
903
904    * - `rx_out_of_range_len_phy`
905      - The number of received packets dropped due to length greater than allowed
906        on a physical port. If this counter is increasing, it implies that the
907        peer connected to the adapter has a larger MTU configured. Using same MTU
908        configuration shall resolve this issue.
909      - Error
910
911    * - `rx_oversize_pkts_phy`
912      - The number of dropped received packets due to length which exceed MTU
913        size on a physical port. If this counter is increasing, it implies that
914        the peer connected to the adapter has a larger MTU configured. Using same
915        MTU configuration shall resolve this issue.
916      - Error
917
918    * - `rx_symbol_err_phy`
919      - The number of received packets dropped due to physical coding errors
920        (symbol errors) on a physical port.
921      - Error
922
923    * - `rx_mac_control_phy`
924      - The number of MAC control packets received on the physical port.
925      - Informative
926
927    * - `tx_mac_control_phy`
928      - The number of MAC control packets transmitted on the physical port.
929      - Informative
930
931    * - `rx_pause_ctrl_phy`
932      - The number of link layer pause packets received on a physical port. If
933        this counter is increasing, it implies that the network is congested and
934        cannot absorb the traffic coming from to the adapter.
935      - Informative
936
937    * - `tx_pause_ctrl_phy`
938      - The number of link layer pause packets transmitted on a physical port. If
939        this counter is increasing, it implies that the NIC is congested and
940        cannot absorb the traffic coming from the network.
941      - Informative
942
943    * - `rx_unsupported_op_phy`
944      - The number of MAC control packets received with unsupported opcode on a
945        physical port.
946      - Error
947
948    * - `rx_discards_phy`
949      - The number of received packets dropped due to lack of buffers on a
950        physical port. If this counter is increasing, it implies that the adapter
951        is congested and cannot absorb the traffic coming from the network.
952      - Error
953
954    * - `tx_discards_phy`
955      - The number of packets which were discarded on transmission, even no
956        errors were detected. the drop might occur due to link in down state,
957        head of line drop, pause from the network, etc.
958      - Error
959
960    * - `tx_errors_phy`
961      - The number of transmitted packets dropped due to a length which exceed
962        MTU size on a physical port.
963      - Error
964
965    * - `rx_undersize_pkts_phy`
966      - The number of received packets dropped due to length which is shorter
967        than 64 bytes on a physical port. If this counter is increasing, it
968        implies that the peer connected to the adapter has a non-standard MTU
969        configured or malformed packet had arrived.
970      - Error
971
972    * - `rx_fragments_phy`
973      - The number of received packets dropped due to a length which is shorter
974        than 64 bytes and has FCS error on a physical port. If this counter is
975        increasing, it implies that the peer connected to the adapter has a
976        non-standard MTU configured.
977      - Error
978
979    * - `rx_jabbers_phy`
980      - The number of received packets d due to a length which is longer than 64
981        bytes and had FCS error on a physical port.
982      - Error
983
984    * - `rx_64_bytes_phy`
985      - The number of packets received on the physical port with size of 64 bytes.
986      - Informative
987
988    * - `rx_65_to_127_bytes_phy`
989      - The number of packets received on the physical port with size of 65 to
990        127 bytes.
991      - Informative
992
993    * - `rx_128_to_255_bytes_phy`
994      - The number of packets received on the physical port with size of 128 to
995        255 bytes.
996      - Informative
997
998    * - `rx_256_to_511_bytes_phy`
999      - The number of packets received on the physical port with size of 256 to
1000        512 bytes.
1001      - Informative
1002
1003    * - `rx_512_to_1023_bytes_phy`
1004      - The number of packets received on the physical port with size of 512 to
1005        1023 bytes.
1006      - Informative
1007
1008    * - `rx_1024_to_1518_bytes_phy`
1009      - The number of packets received on the physical port with size of 1024 to
1010        1518 bytes.
1011      - Informative
1012
1013    * - `rx_1519_to_2047_bytes_phy`
1014      - The number of packets received on the physical port with size of 1519 to
1015        2047 bytes.
1016      - Informative
1017
1018    * - `rx_2048_to_4095_bytes_phy`
1019      - The number of packets received on the physical port with size of 2048 to
1020        4095 bytes.
1021      - Informative
1022
1023    * - `rx_4096_to_8191_bytes_phy`
1024      - The number of packets received on the physical port with size of 4096 to
1025        8191 bytes.
1026      - Informative
1027
1028    * - `rx_8192_to_10239_bytes_phy`
1029      - The number of packets received on the physical port with size of 8192 to
1030        10239 bytes.
1031      - Informative
1032
1033    * - `link_down_events_phy`
1034      - The number of times where the link operative state changed to down. In
1035        case this counter is increasing it may imply on port flapping. You may
1036        need to replace the cable/transceiver.
1037      - Error
1038
1039    * - `rx_out_of_buffer`
1040      - Number of times receive queue had no software buffers allocated for the
1041        adapter's incoming traffic.
1042      - Error
1043
1044    * - `module_bus_stuck`
1045      - The number of times that module's I\ :sup:`2`\C bus (data or clock)
1046        short-wire was detected. You may need to replace the cable/transceiver.
1047      - Error
1048
1049    * - `module_high_temp`
1050      - The number of times that the module temperature was too high. If this
1051        issue persist, you may need to check the ambient temperature or replace
1052        the cable/transceiver module.
1053      - Error
1054
1055    * - `module_bad_shorted`
1056      - The number of times that the module cables were shorted. You may need to
1057        replace the cable/transceiver module.
1058      - Error
1059
1060    * - `module_unplug`
1061      - The number of times that module was ejected.
1062      - Informative
1063
1064    * - `rx_buffer_passed_thres_phy`
1065      - The number of events where the port receive buffer was over 85% full.
1066      - Informative
1067
1068    * - `tx_pause_storm_warning_events`
1069      - The number of times the device was sending pauses for a long period of
1070        time.
1071      - Informative
1072
1073    * - `tx_pause_storm_error_events`
1074      - The number of times the device was sending pauses for a long period of
1075        time, reaching time out and disabling transmission of pause frames. on
1076        the period where pause frames were disabled, drop could have been
1077        occurred.
1078      - Error
1079
1080    * - `rx[i]_buff_alloc_err`
1081      - Failed to allocate a buffer to received packet (or SKB) on ring i.
1082      - Error
1083
1084    * - `rx_bits_phy`
1085      - This counter provides information on the total amount of traffic that
1086        could have been received and can be used as a guideline to measure the
1087        ratio of errored traffic in `rx_pcs_symbol_err_phy` and
1088        `rx_corrected_bits_phy`.
1089      - Informative
1090
1091    * - `rx_pcs_symbol_err_phy`
1092      - This counter counts the number of symbol errors that wasn’t corrected by
1093        FEC correction algorithm or that FEC algorithm was not active on this
1094        interface. If this counter is increasing, it implies that the link
1095        between the NIC and the network is suffering from high BER, and that
1096        traffic is lost. You may need to replace the cable/transceiver. The error
1097        rate is the number of `rx_pcs_symbol_err_phy` divided by the number of
1098        `rx_bits_phy` on a specific time frame.
1099      - Error
1100
1101    * - `rx_corrected_bits_phy`
1102      - The number of corrected bits on this port according to active FEC
1103        (RS/FC). If this counter is increasing, it implies that the link between
1104        the NIC and the network is suffering from high BER. The corrected bit
1105        rate is the number of `rx_corrected_bits_phy` divided by the number of
1106        `rx_bits_phy` on a specific time frame.
1107      - Error
1108
1109    * - `rx_err_lane_[l]_phy`
1110      - This counter counts the number of physical raw errors per lane l index.
1111        The counter counts errors before FEC corrections. If this counter is
1112        increasing, it implies that the link between the NIC and the network is
1113        suffering from high BER, and that traffic might be lost. You may need to
1114        replace the cable/transceiver. Please check in accordance with
1115        `rx_corrected_bits_phy`.
1116      - Error
1117
1118    * - `rx_global_pause`
1119      - The number of pause packets received on the physical port. If this
1120        counter is increasing, it implies that the network is congested and
1121        cannot absorb the traffic coming from the adapter. Note: This counter is
1122        only enabled when global pause mode is enabled.
1123      - Informative
1124
1125    * - `rx_global_pause_duration`
1126      - The duration of pause received (in microSec) on the physical port. The
1127        counter represents the time the port did not send any traffic. If this
1128        counter is increasing, it implies that the network is congested and
1129        cannot absorb the traffic coming from the adapter. Note: This counter is
1130        only enabled when global pause mode is enabled.
1131      - Informative
1132
1133    * - `tx_global_pause`
1134      - The number of pause packets transmitted on a physical port. If this
1135        counter is increasing, it implies that the adapter is congested and
1136        cannot absorb the traffic coming from the network. Note: This counter is
1137        only enabled when global pause mode is enabled.
1138      - Informative
1139
1140    * - `tx_global_pause_duration`
1141      - The duration of pause transmitter (in microSec) on the physical port.
1142        Note: This counter is only enabled when global pause mode is enabled.
1143      - Informative
1144
1145    * - `rx_global_pause_transition`
1146      - The number of times a transition from Xoff to Xon on the physical port
1147        has occurred. Note: This counter is only enabled when global pause mode
1148        is enabled.
1149      - Informative
1150
1151    * - `rx_if_down_packets`
1152      - The number of received packets that were dropped due to interface down.
1153      - Informative
1154
1155 Priority Port Counters
1156 ----------------------
1157 The following counters are physical port counters that are counted per L2
1158 priority (0-7).
1159
1160 **Note:** `p` in the counter name represents the priority.
1161
1162 .. flat-table:: Priority Port Counter Table
1163    :widths: 2 3 1
1164
1165    * - Counter
1166      - Description
1167      - Type
1168
1169    * - `rx_prio[p]_bytes`
1170      - The number of bytes received with priority p on the physical port.
1171      - Informative
1172
1173    * - `rx_prio[p]_packets`
1174      - The number of packets received with priority p on the physical port.
1175      - Informative
1176
1177    * - `tx_prio[p]_bytes`
1178      - The number of bytes transmitted on priority p on the physical port.
1179      - Informative
1180
1181    * - `tx_prio[p]_packets`
1182      - The number of packets transmitted on priority p on the physical port.
1183      - Informative
1184
1185    * - `rx_prio[p]_pause`
1186      - The number of pause packets received with priority p on a physical port.
1187        If this counter is increasing, it implies that the network is congested
1188        and cannot absorb the traffic coming from the adapter. Note: This counter
1189        is available only if PFC was enabled on priority p.
1190      - Informative
1191
1192    * - `rx_prio[p]_pause_duration`
1193      - The duration of pause received (in microSec) on priority p on the
1194        physical port. The counter represents the time the port did not send any
1195        traffic on this priority. If this counter is increasing, it implies that
1196        the network is congested and cannot absorb the traffic coming from the
1197        adapter. Note: This counter is available only if PFC was enabled on
1198        priority p.
1199      - Informative
1200
1201    * - `rx_prio[p]_pause_transition`
1202      - The number of times a transition from Xoff to Xon on priority p on the
1203        physical port has occurred. Note: This counter is available only if PFC
1204        was enabled on priority p.
1205      - Informative
1206
1207    * - `tx_prio[p]_pause`
1208      - The number of pause packets transmitted on priority p on a physical port.
1209        If this counter is increasing, it implies that the adapter is congested
1210        and cannot absorb the traffic coming from the network. Note: This counter
1211        is available only if PFC was enabled on priority p.
1212      - Informative
1213
1214    * - `tx_prio[p]_pause_duration`
1215      - The duration of pause transmitter (in microSec) on priority p on the
1216        physical port. Note: This counter is available only if PFC was enabled on
1217        priority p.
1218      - Informative
1219
1220    * - `rx_prio[p]_buf_discard`
1221      - The number of packets discarded by device due to lack of per host receive
1222        buffers.
1223      - Informative
1224
1225    * - `rx_prio[p]_cong_discard`
1226      - The number of packets discarded by device due to per host congestion.
1227      - Informative
1228
1229    * - `rx_prio[p]_marked`
1230      - The number of packets ecn marked by device due to per host congestion.
1231      - Informative
1232
1233    * - `rx_prio[p]_discards`
1234      - The number of packets discarded by device due to lack of receive buffers.
1235      - Informative
1236
1237 Device Counters
1238 ---------------
1239 .. flat-table:: Device Counter Table
1240    :widths: 2 3 1
1241
1242    * - Counter
1243      - Description
1244      - Type
1245
1246    * - `rx_pci_signal_integrity`
1247      - Counts physical layer PCIe signal integrity errors, the number of
1248        transitions to recovery due to Framing errors and CRC (dlp and tlp). If
1249        this counter is raising, try moving the adapter card to a different slot
1250        to rule out a bad PCI slot. Validate that you are running with the latest
1251        firmware available and latest server BIOS version.
1252      - Error
1253
1254    * - `tx_pci_signal_integrity`
1255      - Counts physical layer PCIe signal integrity errors, the number of
1256        transition to recovery initiated by the other side (moving to recovery
1257        due to getting TS/EIEOS). If this counter is raising, try moving the
1258        adapter card to a different slot to rule out a bad PCI slot. Validate
1259        that you are running with the latest firmware available and latest server
1260        BIOS version.
1261      - Error
1262
1263    * - `outbound_pci_buffer_overflow`
1264      - The number of packets dropped due to pci buffer overflow. If this counter
1265        is raising in high rate, it might indicate that the receive traffic rate
1266        for a host is larger than the PCIe bus and therefore a congestion occurs.
1267      - Informative
1268
1269    * - `outbound_pci_stalled_rd`
1270      - The percentage (in the range 0...100) of time within the last second that
1271        the NIC had outbound non-posted reads requests but could not perform the
1272        operation due to insufficient posted credits.
1273      - Informative
1274
1275    * - `outbound_pci_stalled_wr`
1276      - The percentage (in the range 0...100) of time within the last second that
1277        the NIC had outbound posted writes requests but could not perform the
1278        operation due to insufficient posted credits.
1279      - Informative
1280
1281    * - `outbound_pci_stalled_rd_events`
1282      - The number of seconds where `outbound_pci_stalled_rd` was above 30%.
1283      - Informative
1284
1285    * - `outbound_pci_stalled_wr_events`
1286      - The number of seconds where `outbound_pci_stalled_wr` was above 30%.
1287      - Informative
1288
1289    * - `dev_out_of_buffer`
1290      - The number of times the device owned queue had not enough buffers
1291        allocated.
1292      - Error