mirror of
git://nv-tegra.nvidia.com/kernel/nvethernetrm.git
synced 2025-12-22 17:34:29 +03:00
Issue: SPARSE errors Fix: Fix code as per the guidelines in the errors Bug 3568991 Change-Id: If52bf7d5b3e8d4ca10a254e802ee5257a8816633 Signed-off-by: Bibhay Ranjan <bibhayr@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/kernel/nvethernetrm/+/2688520 Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: Nagarjuna Kristam <nkristam@nvidia.com> Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com> Reviewed-by: Krishna Thota <kthota@nvidia.com> GVS: Gerrit_Virtual_Submit
635 lines
29 KiB
C
635 lines
29 KiB
C
/*
|
|
* Copyright (c) 2018-2022, NVIDIA CORPORATION. All rights reserved.
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
* copy of this software and associated documentation files (the "Software"),
|
|
* to deal in the Software without restriction, including without limitation
|
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
* and/or sell copies of the Software, and to permit persons to whom the
|
|
* Software is furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
* DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
|
|
#ifndef INCLUDED_MMC_H
|
|
#define INCLUDED_MMC_H
|
|
|
|
#include "../osi/common/type.h"
|
|
#include "osi_common.h"
|
|
|
|
/**
|
|
* @brief osi_mmc_counters - The structure to hold RMON counter values
|
|
*/
|
|
struct osi_mmc_counters {
|
|
/** This counter provides the number of bytes transmitted, exclusive of
|
|
* preamble and retried bytes, in good and bad packets */
|
|
nveu64_t mmc_tx_octetcount_gb;
|
|
/** This counter provides upper 32 bits of transmitted octet count */
|
|
nveu64_t mmc_tx_octetcount_gb_h;
|
|
/** This counter provides the number of good and
|
|
* bad packets transmitted, exclusive of retried packets */
|
|
nveu64_t mmc_tx_framecount_gb;
|
|
/** This counter provides upper 32 bits of transmitted good and bad
|
|
* packets count */
|
|
nveu64_t mmc_tx_framecount_gb_h;
|
|
/** This counter provides number of good broadcast
|
|
* packets transmitted */
|
|
nveu64_t mmc_tx_broadcastframe_g;
|
|
/** This counter provides upper 32 bits of transmitted good broadcast
|
|
* packets count */
|
|
nveu64_t mmc_tx_broadcastframe_g_h;
|
|
/** This counter provides number of good multicast
|
|
* packets transmitted */
|
|
nveu64_t mmc_tx_multicastframe_g;
|
|
/** This counter provides upper 32 bits of transmitted good multicast
|
|
* packet count */
|
|
nveu64_t mmc_tx_multicastframe_g_h;
|
|
/** This counter provides the number of good and bad packets
|
|
* transmitted with length 64 bytes, exclusive of preamble and
|
|
* retried packets */
|
|
nveu64_t mmc_tx_64_octets_gb;
|
|
/** This counter provides upper 32 bits of transmitted 64 octet size
|
|
* good and bad packets count */
|
|
nveu64_t mmc_tx_64_octets_gb_h;
|
|
/** This counter provides the number of good and bad packets
|
|
* transmitted with length 65-127 bytes, exclusive of preamble and
|
|
* retried packets */
|
|
nveu64_t mmc_tx_65_to_127_octets_gb;
|
|
/** Provides upper 32 bits of transmitted 65-to-127 octet size good and
|
|
* bad packets count */
|
|
nveu64_t mmc_tx_65_to_127_octets_gb_h;
|
|
/** This counter provides the number of good and bad packets
|
|
* transmitted with length 128-255 bytes, exclusive of preamble and
|
|
* retried packets */
|
|
nveu64_t mmc_tx_128_to_255_octets_gb;
|
|
/** This counter provides upper 32 bits of transmitted 128-to-255
|
|
* octet size good and bad packets count */
|
|
nveu64_t mmc_tx_128_to_255_octets_gb_h;
|
|
/** This counter provides the number of good and bad packets
|
|
* transmitted with length 256-511 bytes, exclusive of preamble and
|
|
* retried packets */
|
|
nveu64_t mmc_tx_256_to_511_octets_gb;
|
|
/** This counter provides upper 32 bits of transmitted 256-to-511
|
|
* octet size good and bad packets count. */
|
|
nveu64_t mmc_tx_256_to_511_octets_gb_h;
|
|
/** This counter provides the number of good and bad packets
|
|
* transmitted with length 512-1023 bytes, exclusive of preamble and
|
|
* retried packets */
|
|
nveu64_t mmc_tx_512_to_1023_octets_gb;
|
|
/** This counter provides upper 32 bits of transmitted 512-to-1023
|
|
* octet size good and bad packets count.*/
|
|
nveu64_t mmc_tx_512_to_1023_octets_gb_h;
|
|
/** This counter provides the number of good and bad packets
|
|
* transmitted with length 1024-max bytes, exclusive of preamble and
|
|
* retried packets */
|
|
nveu64_t mmc_tx_1024_to_max_octets_gb;
|
|
/** This counter provides upper 32 bits of transmitted 1024-tomaxsize
|
|
* octet size good and bad packets count. */
|
|
nveu64_t mmc_tx_1024_to_max_octets_gb_h;
|
|
/** This counter provides the number of good and bad unicast packets */
|
|
nveu64_t mmc_tx_unicast_gb;
|
|
/** This counter provides upper 32 bits of transmitted good bad
|
|
* unicast packets count */
|
|
nveu64_t mmc_tx_unicast_gb_h;
|
|
/** This counter provides the number of good and bad
|
|
* multicast packets */
|
|
nveu64_t mmc_tx_multicast_gb;
|
|
/** This counter provides upper 32 bits of transmitted good bad
|
|
* multicast packets count */
|
|
nveu64_t mmc_tx_multicast_gb_h;
|
|
/** This counter provides the number of good and bad
|
|
* broadcast packets */
|
|
nveu64_t mmc_tx_broadcast_gb;
|
|
/** This counter provides upper 32 bits of transmitted good bad
|
|
* broadcast packets count */
|
|
nveu64_t mmc_tx_broadcast_gb_h;
|
|
/** This counter provides the number of abort packets due to
|
|
* underflow error */
|
|
nveu64_t mmc_tx_underflow_error;
|
|
/** This counter provides upper 32 bits of abort packets due to
|
|
* underflow error */
|
|
nveu64_t mmc_tx_underflow_error_h;
|
|
/** This counter provides the number of successfully transmitted
|
|
* packets after a single collision in the half-duplex mode */
|
|
nveu64_t mmc_tx_singlecol_g;
|
|
/** This counter provides the number of successfully transmitted
|
|
* packets after a multi collision in the half-duplex mode */
|
|
nveu64_t mmc_tx_multicol_g;
|
|
/** This counter provides the number of successfully transmitted
|
|
* after a deferral in the half-duplex mode */
|
|
nveu64_t mmc_tx_deferred;
|
|
/** This counter provides the number of packets aborted because of
|
|
* late collision error */
|
|
nveu64_t mmc_tx_latecol;
|
|
/** This counter provides the number of packets aborted because of
|
|
* excessive (16) collision errors */
|
|
nveu64_t mmc_tx_exesscol;
|
|
/** This counter provides the number of packets aborted because of
|
|
* carrier sense error (no carrier or loss of carrier) */
|
|
nveu64_t mmc_tx_carrier_error;
|
|
/** This counter provides the number of bytes transmitted,
|
|
* exclusive of preamble, only in good packets */
|
|
nveu64_t mmc_tx_octetcount_g;
|
|
/** This counter provides upper 32 bytes of bytes transmitted,
|
|
* exclusive of preamble, only in good packets */
|
|
nveu64_t mmc_tx_octetcount_g_h;
|
|
/** This counter provides the number of good packets transmitted */
|
|
nveu64_t mmc_tx_framecount_g;
|
|
/** This counter provides upper 32 bytes of good packets transmitted */
|
|
nveu64_t mmc_tx_framecount_g_h;
|
|
/** This counter provides the number of packets aborted because of
|
|
* excessive deferral error
|
|
* (deferred for more than two max-sized packet times) */
|
|
nveu64_t mmc_tx_excessdef;
|
|
/** This counter provides the number of good Pause
|
|
* packets transmitted */
|
|
nveu64_t mmc_tx_pause_frame;
|
|
/** This counter provides upper 32 bytes of good Pause
|
|
* packets transmitted */
|
|
nveu64_t mmc_tx_pause_frame_h;
|
|
/** This counter provides the number of good VLAN packets transmitted */
|
|
nveu64_t mmc_tx_vlan_frame_g;
|
|
/** This counter provides upper 32 bytes of good VLAN packets
|
|
* transmitted */
|
|
nveu64_t mmc_tx_vlan_frame_g_h;
|
|
/** This counter provides the number of packets transmitted without
|
|
* errors and with length greater than the maxsize (1,518 or 1,522 bytes
|
|
* for VLAN tagged packets; 2000 bytes */
|
|
nveu64_t mmc_tx_osize_frame_g;
|
|
/** This counter provides the number of good and bad packets received */
|
|
nveu64_t mmc_rx_framecount_gb;
|
|
/** This counter provides upper 32 bytes of good and bad packets
|
|
* received */
|
|
nveu64_t mmc_rx_framecount_gb_h;
|
|
/** This counter provides the number of bytes received by DWC_ther_qos,
|
|
* exclusive of preamble, in good and bad packets */
|
|
nveu64_t mmc_rx_octetcount_gb;
|
|
/** This counter provides upper 32 bytes of bytes received by
|
|
* DWC_ether_qos, exclusive of preamble, in good and bad packets */
|
|
nveu64_t mmc_rx_octetcount_gb_h;
|
|
/** This counter provides the number of bytes received by DWC_ether_qos,
|
|
* exclusive of preamble, in good and bad packets */
|
|
nveu64_t mmc_rx_octetcount_g;
|
|
/** This counter provides upper 32 bytes of bytes received by
|
|
* DWC_ether_qos, exclusive of preamble, in good and bad packets */
|
|
nveu64_t mmc_rx_octetcount_g_h;
|
|
/** This counter provides the number of good
|
|
* broadcast packets received */
|
|
nveu64_t mmc_rx_broadcastframe_g;
|
|
/** This counter provides upper 32 bytes of good
|
|
* broadcast packets received */
|
|
nveu64_t mmc_rx_broadcastframe_g_h;
|
|
/** This counter provides the number of good
|
|
* multicast packets received */
|
|
nveu64_t mmc_rx_multicastframe_g;
|
|
/** This counter provides upper 32 bytes of good
|
|
* multicast packets received */
|
|
nveu64_t mmc_rx_multicastframe_g_h;
|
|
/** This counter provides the number of packets
|
|
* received with CRC error */
|
|
nveu64_t mmc_rx_crc_error;
|
|
/** This counter provides upper 32 bytes of packets
|
|
* received with CRC error */
|
|
nveu64_t mmc_rx_crc_error_h;
|
|
/** This counter provides the number of packets received with
|
|
* alignment (dribble) error. It is valid only in 10/100 mode */
|
|
nveu64_t mmc_rx_align_error;
|
|
/** This counter provides the number of packets received with
|
|
* runt (length less than 64 bytes and CRC error) error */
|
|
nveu64_t mmc_rx_runt_error;
|
|
/** This counter provides the number of giant packets received with
|
|
* length (including CRC) greater than 1,518 bytes (1,522 bytes for
|
|
* VLAN tagged) and with CRC error */
|
|
nveu64_t mmc_rx_jabber_error;
|
|
/** This counter provides the number of packets received with length
|
|
* less than 64 bytes, without any errors */
|
|
nveu64_t mmc_rx_undersize_g;
|
|
/** This counter provides the number of packets received without error,
|
|
* with length greater than the maxsize */
|
|
nveu64_t mmc_rx_oversize_g;
|
|
/** This counter provides the number of good and bad packets received
|
|
* with length 64 bytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_64_octets_gb;
|
|
/** This counter provides upper 32 bytes of good and bad packets
|
|
* received with length 64 bytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_64_octets_gb_h;
|
|
/** This counter provides the number of good and bad packets received
|
|
* with length 65-127 bytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_65_to_127_octets_gb;
|
|
/** This counter provides upper 32 bytes of good and bad packets
|
|
* received with length 65-127 bytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_65_to_127_octets_gb_h;
|
|
/** This counter provides the number of good and bad packets received
|
|
* with length 128-255 bytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_128_to_255_octets_gb;
|
|
/** This counter provides upper 32 bytes of good and bad packets
|
|
* received with length 128-255 bytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_128_to_255_octets_gb_h;
|
|
/** This counter provides the number of good and bad packets received
|
|
* with length 256-511 bytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_256_to_511_octets_gb;
|
|
/** This counter provides upper 32 bytes of good and bad packets
|
|
* received with length 256-511 bytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_256_to_511_octets_gb_h;
|
|
/** This counter provides the number of good and bad packets received
|
|
* with length 512-1023 bytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_512_to_1023_octets_gb;
|
|
/** This counter provides upper 32 bytes of good and bad packets
|
|
* received with length 512-1023 bytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_512_to_1023_octets_gb_h;
|
|
/** This counter provides the number of good and bad packets received
|
|
* with length 1024-maxbytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_1024_to_max_octets_gb;
|
|
/** This counter provides upper 32 bytes of good and bad packets
|
|
* received with length 1024-maxbytes, exclusive of the preamble */
|
|
nveu64_t mmc_rx_1024_to_max_octets_gb_h;
|
|
/** This counter provides the number of good unicast packets received */
|
|
nveu64_t mmc_rx_unicast_g;
|
|
/** This counter provides upper 32 bytes of good unicast packets
|
|
* received */
|
|
nveu64_t mmc_rx_unicast_g_h;
|
|
/** This counter provides the number of packets received with length
|
|
* error (Length Type field not equal to packet size), for all packets
|
|
* with valid length field */
|
|
nveu64_t mmc_rx_length_error;
|
|
/** This counter provides upper 32 bytes of packets received with
|
|
* length error (Length Type field not equal to packet size), for all
|
|
* packets with valid length field */
|
|
nveu64_t mmc_rx_length_error_h;
|
|
/** This counter provides the number of packets received with length
|
|
* field not equal to the valid packet size (greater than 1,500 but
|
|
* less than 1,536) */
|
|
nveu64_t mmc_rx_outofrangetype;
|
|
/** This counter provides upper 32 bytes of packets received with
|
|
* length field not equal to the valid packet size (greater than 1,500
|
|
* but less than 1,536) */
|
|
nveu64_t mmc_rx_outofrangetype_h;
|
|
/** This counter provides the number of good and valid Pause packets
|
|
* received */
|
|
nveu64_t mmc_rx_pause_frames;
|
|
/** This counter provides upper 32 bytes of good and valid Pause packets
|
|
* received */
|
|
nveu64_t mmc_rx_pause_frames_h;
|
|
/** This counter provides the number of missed received packets
|
|
* because of FIFO overflow in DWC_ether_qos */
|
|
nveu64_t mmc_rx_fifo_overflow;
|
|
/** This counter provides upper 32 bytes of missed received packets
|
|
* because of FIFO overflow in DWC_ether_qos */
|
|
nveu64_t mmc_rx_fifo_overflow_h;
|
|
/** This counter provides the number of good and bad VLAN packets
|
|
* received */
|
|
nveu64_t mmc_rx_vlan_frames_gb;
|
|
/** This counter provides upper 32 bytes of good and bad VLAN packets
|
|
* received */
|
|
nveu64_t mmc_rx_vlan_frames_gb_h;
|
|
/** This counter provides the number of packets received with error
|
|
* because of watchdog timeout error */
|
|
nveu64_t mmc_rx_watchdog_error;
|
|
/** This counter provides the number of packets received with Receive
|
|
* error or Packet Extension error on the GMII or MII interface */
|
|
nveu64_t mmc_rx_receive_error;
|
|
/** This counter provides the number of packets received with Receive
|
|
* error or Packet Extension error on the GMII or MII interface */
|
|
nveu64_t mmc_rx_ctrl_frames_g;
|
|
/** This counter provides the number of microseconds Tx LPI is asserted
|
|
* in the MAC controller */
|
|
nveu64_t mmc_tx_lpi_usec_cntr;
|
|
/** This counter provides the number of times MAC controller has
|
|
* entered Tx LPI. */
|
|
nveu64_t mmc_tx_lpi_tran_cntr;
|
|
/** This counter provides the number of microseconds Rx LPI is asserted
|
|
* in the MAC controller */
|
|
nveu64_t mmc_rx_lpi_usec_cntr;
|
|
/** This counter provides the number of times MAC controller has
|
|
* entered Rx LPI.*/
|
|
nveu64_t mmc_rx_lpi_tran_cntr;
|
|
/** This counter provides the number of good IPv4 datagrams received
|
|
* with the TCP, UDP, or ICMP payload */
|
|
nveu64_t mmc_rx_ipv4_gd;
|
|
/** This counter provides upper 32 bytes of good IPv4 datagrams received
|
|
* with the TCP, UDP, or ICMP payload */
|
|
nveu64_t mmc_rx_ipv4_gd_h;
|
|
/** RxIPv4 Header Error Packets */
|
|
nveu64_t mmc_rx_ipv4_hderr;
|
|
/** RxIPv4 of upper 32 bytes of Header Error Packets */
|
|
nveu64_t mmc_rx_ipv4_hderr_h;
|
|
/** This counter provides the number of IPv4 datagram packets received
|
|
* that did not have a TCP, UDP, or ICMP payload */
|
|
nveu64_t mmc_rx_ipv4_nopay;
|
|
/** This counter provides upper 32 bytes of IPv4 datagram packets
|
|
* received that did not have a TCP, UDP, or ICMP payload */
|
|
nveu64_t mmc_rx_ipv4_nopay_h;
|
|
/** This counter provides the number of good IPv4 datagrams received
|
|
* with fragmentation */
|
|
nveu64_t mmc_rx_ipv4_frag;
|
|
/** This counter provides upper 32 bytes of good IPv4 datagrams received
|
|
* with fragmentation */
|
|
nveu64_t mmc_rx_ipv4_frag_h;
|
|
/** This counter provides the number of good IPv4 datagrams received
|
|
* that had a UDP payload with checksum disabled */
|
|
nveu64_t mmc_rx_ipv4_udsbl;
|
|
/** This counter provides upper 32 bytes of good IPv4 datagrams received
|
|
* that had a UDP payload with checksum disabled */
|
|
nveu64_t mmc_rx_ipv4_udsbl_h;
|
|
/** This counter provides the number of good IPv6 datagrams received
|
|
* with the TCP, UDP, or ICMP payload */
|
|
nveu64_t mmc_rx_ipv6_gd_octets;
|
|
/** This counter provides upper 32 bytes of good IPv6 datagrams received
|
|
* with the TCP, UDP, or ICMP payload */
|
|
nveu64_t mmc_rx_ipv6_gd_octets_h;
|
|
/** This counter provides the number of IPv6 datagrams received
|
|
* with header (length or version mismatch) errors */
|
|
nveu64_t mmc_rx_ipv6_hderr_octets;
|
|
/** This counter provides the number of IPv6 datagrams received
|
|
* with header (length or version mismatch) errors */
|
|
nveu64_t mmc_rx_ipv6_hderr_octets_h;
|
|
/** This counter provides the number of IPv6 datagram packets received
|
|
* that did not have a TCP, UDP, or ICMP payload */
|
|
nveu64_t mmc_rx_ipv6_nopay_octets;
|
|
/** This counter provides upper 32 bytes of IPv6 datagram packets
|
|
* received that did not have a TCP, UDP, or ICMP payload */
|
|
nveu64_t mmc_rx_ipv6_nopay_octets_h;
|
|
/* Protocols */
|
|
/** This counter provides the number of good IP datagrams received by
|
|
* DWC_ether_qos with a good UDP payload */
|
|
nveu64_t mmc_rx_udp_gd;
|
|
/** This counter provides upper 32 bytes of good IP datagrams received
|
|
* by DWC_ether_qos with a good UDP payload */
|
|
nveu64_t mmc_rx_udp_gd_h;
|
|
/** This counter provides the number of good IP datagrams received by
|
|
* DWC_ether_qos with a good UDP payload. This counter is not updated
|
|
* when the RxIPv4_UDP_Checksum_Disabled_Packets counter is
|
|
* incremented */
|
|
nveu64_t mmc_rx_udp_err;
|
|
/** This counter provides upper 32 bytes of good IP datagrams received
|
|
* by DWC_ether_qos with a good UDP payload. This counter is not updated
|
|
* when the RxIPv4_UDP_Checksum_Disabled_Packets counter is
|
|
* incremented */
|
|
nveu64_t mmc_rx_udp_err_h;
|
|
/** This counter provides the number of good IP datagrams received
|
|
* with a good TCP payload */
|
|
nveu64_t mmc_rx_tcp_gd;
|
|
/** This counter provides the number of good IP datagrams received
|
|
* with a good TCP payload */
|
|
nveu64_t mmc_rx_tcp_gd_h;
|
|
/** This counter provides upper 32 bytes of good IP datagrams received
|
|
* with a good TCP payload */
|
|
nveu64_t mmc_rx_tcp_err;
|
|
/** This counter provides upper 32 bytes of good IP datagrams received
|
|
* with a good TCP payload */
|
|
nveu64_t mmc_rx_tcp_err_h;
|
|
/** This counter provides the number of good IP datagrams received
|
|
* with a good ICMP payload */
|
|
nveu64_t mmc_rx_icmp_gd;
|
|
/** This counter provides upper 32 bytes of good IP datagrams received
|
|
* with a good ICMP payload */
|
|
nveu64_t mmc_rx_icmp_gd_h;
|
|
/** This counter provides the number of good IP datagrams received
|
|
* whose ICMP payload has a checksum error */
|
|
nveu64_t mmc_rx_icmp_err;
|
|
/** This counter provides upper 32 bytes of good IP datagrams received
|
|
* whose ICMP payload has a checksum error */
|
|
nveu64_t mmc_rx_icmp_err_h;
|
|
/** This counter provides the number of bytes received by DWC_ether_qos
|
|
* in good IPv4 datagrams encapsulating TCP, UDP, or ICMP data.
|
|
* (Ethernet header, FCS, pad, or IP pad bytes are not included
|
|
* in this counter */
|
|
nveu64_t mmc_rx_ipv4_gd_octets;
|
|
/** This counter provides upper 32 bytes received by DWC_ether_qos
|
|
* in good IPv4 datagrams encapsulating TCP, UDP, or ICMP data.
|
|
* (Ethernet header, FCS, pad, or IP pad bytes are not included
|
|
* in this counter */
|
|
nveu64_t mmc_rx_ipv4_gd_octets_h;
|
|
/** This counter provides the number of bytes received in IPv4 datagram
|
|
* with header errors (checksum, length, version mismatch). The value
|
|
* in the Length field of IPv4 header is used to update this counter.
|
|
* (Ethernet header, FCS, pad, or IP pad bytes are not included
|
|
* in this counter */
|
|
nveu64_t mmc_rx_ipv4_hderr_octets;
|
|
/** This counter provides upper 32 bytes received in IPv4 datagram
|
|
* with header errors (checksum, length, version mismatch). The value
|
|
* in the Length field of IPv4 header is used to update this counter.
|
|
* (Ethernet header, FCS, pad, or IP pad bytes are not included
|
|
* in this counter */
|
|
nveu64_t mmc_rx_ipv4_hderr_octets_h;
|
|
/** This counter provides the number of bytes received in IPv4 datagram
|
|
* that did not have a TCP, UDP, or ICMP payload. The value in the
|
|
* Length field of IPv4 header is used to update this counter.
|
|
* (Ethernet header, FCS, pad, or IP pad bytes are not included
|
|
* in this counter */
|
|
nveu64_t mmc_rx_ipv4_nopay_octets;
|
|
/** This counter provides upper 32 bytes received in IPv4 datagram
|
|
* that did not have a TCP, UDP, or ICMP payload. The value in the
|
|
* Length field of IPv4 header is used to update this counter.
|
|
* (Ethernet header, FCS, pad, or IP pad bytes are not included
|
|
* in this counter */
|
|
nveu64_t mmc_rx_ipv4_nopay_octets_h;
|
|
/** This counter provides the number of bytes received in fragmented
|
|
* IPv4 datagrams. The value in the Length field of IPv4 header is
|
|
* used to update this counter. (Ethernet header, FCS, pad, or IP pad
|
|
* bytes are not included in this counter */
|
|
nveu64_t mmc_rx_ipv4_frag_octets;
|
|
/** This counter provides upper 32 bytes received in fragmented
|
|
* IPv4 datagrams. The value in the Length field of IPv4 header is
|
|
* used to update this counter. (Ethernet header, FCS, pad, or IP pad
|
|
* bytes are not included in this counter */
|
|
nveu64_t mmc_rx_ipv4_frag_octets_h;
|
|
/** This counter provides the number of bytes received in a UDP segment
|
|
* that had the UDP checksum disabled. This counter does not count IP
|
|
* Header bytes. (Ethernet header, FCS, pad, or IP pad bytes are not
|
|
* included in this counter */
|
|
nveu64_t mmc_rx_ipv4_udsbl_octets;
|
|
/** This counter provides upper 32 bytes received in a UDP segment
|
|
* that had the UDP checksum disabled. This counter does not count IP
|
|
* Header bytes. (Ethernet header, FCS, pad, or IP pad bytes are not
|
|
* included in this counter */
|
|
nveu64_t mmc_rx_ipv4_udsbl_octets_h;
|
|
/** This counter provides the number of bytes received in good IPv6
|
|
* datagrams encapsulating TCP, UDP, or ICMP data. (Ethernet header,
|
|
* FCS, pad, or IP pad bytes are not included in this counter */
|
|
nveu64_t mmc_rx_ipv6_gd;
|
|
/** This counter provides upper 32 bytes received in good IPv6
|
|
* datagrams encapsulating TCP, UDP, or ICMP data. (Ethernet header,
|
|
* FCS, pad, or IP pad bytes are not included in this counter */
|
|
nveu64_t mmc_rx_ipv6_gd_h;
|
|
/** This counter provides the number of bytes received in IPv6 datagrams
|
|
* with header errors (length, version mismatch). The value in the
|
|
* Length field of IPv6 header is used to update this counter.
|
|
* (Ethernet header, FCS, pad, or IP pad bytes are not included in
|
|
* this counter */
|
|
nveu64_t mmc_rx_ipv6_hderr;
|
|
/** This counter provides upper 32 bytes received in IPv6 datagrams
|
|
* with header errors (length, version mismatch). The value in the
|
|
* Length field of IPv6 header is used to update this counter.
|
|
* (Ethernet header, FCS, pad, or IP pad bytes are not included in
|
|
* this counter */
|
|
nveu64_t mmc_rx_ipv6_hderr_h;
|
|
/** This counter provides the number of bytes received in IPv6
|
|
* datagrams that did not have a TCP, UDP, or ICMP payload. The value
|
|
* in the Length field of IPv6 header is used to update this counter.
|
|
* (Ethernet header, FCS, pad, or IP pad bytes are not included
|
|
* in this counter */
|
|
nveu64_t mmc_rx_ipv6_nopay;
|
|
/** This counter provides upper 32 bytes received in IPv6
|
|
* datagrams that did not have a TCP, UDP, or ICMP payload. The value
|
|
* in the Length field of IPv6 header is used to update this counter.
|
|
* (Ethernet header, FCS, pad, or IP pad bytes are not included
|
|
* in this counter */
|
|
nveu64_t mmc_rx_ipv6_nopay_h;
|
|
/* Protocols */
|
|
/** This counter provides the number of bytes received in a good UDP
|
|
* segment. This counter does not count IP header bytes */
|
|
nveu64_t mmc_rx_udp_gd_octets;
|
|
/** This counter provides upper 32 bytes received in a good UDP
|
|
* segment. This counter does not count IP header bytes */
|
|
nveu64_t mmc_rx_udp_gd_octets_h;
|
|
/** This counter provides the number of bytes received in a UDP
|
|
* segment that had checksum errors. This counter does not count
|
|
* IP header bytes */
|
|
nveu64_t mmc_rx_udp_err_octets;
|
|
/** This counter provides upper 32 bytes received in a UDP
|
|
* segment that had checksum errors. This counter does not count
|
|
* IP header bytes */
|
|
nveu64_t mmc_rx_udp_err_octets_h;
|
|
/** This counter provides the number of bytes received in a good
|
|
* TCP segment. This counter does not count IP header bytes */
|
|
nveu64_t mmc_rx_tcp_gd_octets;
|
|
/** This counter provides upper 32 bytes received in a good
|
|
* TCP segment. This counter does not count IP header bytes */
|
|
nveu64_t mmc_rx_tcp_gd_octets_h;
|
|
/** This counter provides the number of bytes received in a TCP
|
|
* segment that had checksum errors. This counter does not count
|
|
* IP header bytes */
|
|
nveu64_t mmc_rx_tcp_err_octets;
|
|
/** This counter provides upper 32 bytes received in a TCP
|
|
* segment that had checksum errors. This counter does not count
|
|
* IP header bytes */
|
|
nveu64_t mmc_rx_tcp_err_octets_h;
|
|
/** This counter provides the number of bytes received in a good
|
|
* ICMP segment. This counter does not count IP header bytes */
|
|
nveu64_t mmc_rx_icmp_gd_octets;
|
|
/** This counter provides upper 32 bytes received in a good
|
|
* ICMP segment. This counter does not count IP header bytes */
|
|
nveu64_t mmc_rx_icmp_gd_octets_h;
|
|
/** This counter provides the number of bytes received in a ICMP
|
|
* segment that had checksum errors. This counter does not count
|
|
* IP header bytes */
|
|
nveu64_t mmc_rx_icmp_err_octets;
|
|
/** This counter provides upper 32 bytes received in a ICMP
|
|
* segment that had checksum errors. This counter does not count
|
|
* IP header bytes */
|
|
nveu64_t mmc_rx_icmp_err_octets_h;
|
|
/** This counter provides the number of additional mPackets
|
|
* transmitted due to preemption */
|
|
unsigned long mmc_tx_fpe_frag_cnt;
|
|
/** This counter provides the count of number of times a hold
|
|
* request is given to MAC */
|
|
unsigned long mmc_tx_fpe_hold_req_cnt;
|
|
/** This counter provides the number of MAC frames with reassembly
|
|
* errors on the Receiver, due to mismatch in the fragment
|
|
* count value */
|
|
unsigned long mmc_rx_packet_reass_err_cnt;
|
|
/** This counter the number of received MAC frames rejected
|
|
* due to unknown SMD value and MAC frame fragments rejected due
|
|
* to arriving with an SMD-C when there was no preceding preempted
|
|
* frame */
|
|
unsigned long mmc_rx_packet_smd_err_cnt;
|
|
/** This counter provides the number of MAC frames that were
|
|
* successfully reassembled and delivered to MAC */
|
|
unsigned long mmc_rx_packet_asm_ok_cnt;
|
|
/** This counter provides the number of additional mPackets received
|
|
* due to preemption */
|
|
unsigned long mmc_rx_fpe_fragment_cnt;
|
|
};
|
|
|
|
/**
|
|
* @brief osi_xtra_stat_counters - OSI core extra stat counters
|
|
*/
|
|
struct osi_xtra_stat_counters {
|
|
/** RX buffer unavailable irq count */
|
|
nveu64_t rx_buf_unavail_irq_n[OSI_MGBE_MAX_NUM_QUEUES];
|
|
/** Transmit Process Stopped irq count */
|
|
nveu64_t tx_proc_stopped_irq_n[OSI_MGBE_MAX_NUM_QUEUES];
|
|
/** Transmit Buffer Unavailable irq count */
|
|
nveu64_t tx_buf_unavail_irq_n[OSI_MGBE_MAX_NUM_QUEUES];
|
|
/** Receive Process Stopped irq count */
|
|
nveu64_t rx_proc_stopped_irq_n[OSI_MGBE_MAX_NUM_QUEUES];
|
|
/** Receive Watchdog Timeout irq count */
|
|
nveu64_t rx_watchdog_irq_n;
|
|
/** Fatal Bus Error irq count */
|
|
nveu64_t fatal_bus_error_irq_n;
|
|
/** rx skb allocation failure count */
|
|
nveu64_t re_alloc_rxbuf_failed[OSI_MGBE_MAX_NUM_QUEUES];
|
|
/** TX per channel interrupt count */
|
|
nveu64_t tx_normal_irq_n[OSI_MGBE_MAX_NUM_QUEUES];
|
|
/** TX per channel SW timer callback count */
|
|
nveu64_t tx_usecs_swtimer_n[OSI_MGBE_MAX_NUM_QUEUES];
|
|
/** RX per channel interrupt count */
|
|
nveu64_t rx_normal_irq_n[OSI_MGBE_MAX_NUM_QUEUES];
|
|
/** link connect count */
|
|
nveu64_t link_connect_count;
|
|
/** link disconnect count */
|
|
nveu64_t link_disconnect_count;
|
|
/** lock fail count node addition */
|
|
nveu64_t ts_lock_add_fail;
|
|
/** lock fail count node removal */
|
|
nveu64_t ts_lock_del_fail;
|
|
};
|
|
|
|
#ifdef MACSEC_SUPPORT
|
|
/**
|
|
* @brief The structure hold macsec statistics counters
|
|
*/
|
|
struct osi_macsec_mmc_counters {
|
|
/** This counter provides the number of controller port macsec
|
|
* untaged packets */
|
|
nveul64_t rx_pkts_no_tag;
|
|
/** This counter provides the number of controller port macsec
|
|
* untaged packets validateFrame != strict */
|
|
nveul64_t rx_pkts_untagged;
|
|
/** This counter provides the number of invalid tag or icv packets */
|
|
nveul64_t rx_pkts_bad_tag;
|
|
/** This counter provides the number of no sc lookup hit or sc match
|
|
* packets */
|
|
nveul64_t rx_pkts_no_sa_err;
|
|
/** This counter provides the number of no sc lookup hit or sc match
|
|
* packets validateFrame != strict */
|
|
nveul64_t rx_pkts_no_sa;
|
|
/** This counter provides the number of late packets
|
|
*received PN < lowest PN */
|
|
nveul64_t rx_pkts_late[OSI_MACSEC_SC_INDEX_MAX];
|
|
/** This counter provides the number of overrun packets */
|
|
nveul64_t rx_pkts_overrun;
|
|
/** This counter provides the number of octets after IVC passing */
|
|
nveul64_t rx_octets_validated;
|
|
/** This counter provides the number not valid packets */
|
|
nveul64_t rx_pkts_not_valid[OSI_MACSEC_SC_INDEX_MAX];
|
|
/** This counter provides the number of invalid packets */
|
|
nveul64_t in_pkts_invalid[OSI_MACSEC_SC_INDEX_MAX];
|
|
/** This counter provides the number of in packet delayed */
|
|
nveul64_t rx_pkts_delayed[OSI_MACSEC_SC_INDEX_MAX];
|
|
/** This counter provides the number of in packets un checked */
|
|
nveul64_t rx_pkts_unchecked[OSI_MACSEC_SC_INDEX_MAX];
|
|
/** This counter provides the number of in packets ok */
|
|
nveul64_t rx_pkts_ok[OSI_MACSEC_SC_INDEX_MAX];
|
|
/** This counter provides the number of out packets untaged */
|
|
nveul64_t tx_pkts_untaged;
|
|
/** This counter provides the number of out too long */
|
|
nveul64_t tx_pkts_too_long;
|
|
/** This counter provides the number of out packets protected */
|
|
nveul64_t tx_pkts_protected[OSI_MACSEC_SC_INDEX_MAX];
|
|
/** This counter provides the number of out octets protected */
|
|
nveul64_t tx_octets_protected;
|
|
};
|
|
#endif /* MACSEC_SUPPORT */
|
|
#endif /* INCLUDED_MMC_H */
|