diff --git a/include/mmc.h b/include/mmc.h index 5e401dd..60921f3 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2018-2020, 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"), @@ -29,50 +29,91 @@ struct osi_mmc_counters { /** This counter provides the number of bytes transmitted, exclusive of * preamble and retried bytes, in good and bad packets */ unsigned long mmc_tx_octetcount_gb; + /** This counter provides upper 32 bits of transmitted octet count */ + unsigned long mmc_tx_octetcount_gb_h; /** This counter provides the number of good and * bad packets transmitted, exclusive of retried packets */ unsigned long mmc_tx_framecount_gb; + /** This counter provides upper 32 bits of transmitted good and bad + * packets count */ + unsigned long mmc_tx_framecount_gb_h; /** This counter provides number of good broadcast * packets transmitted */ unsigned long mmc_tx_broadcastframe_g; + /** This counter provides upper 32 bits of transmitted good broadcast + * packets count */ + unsigned long mmc_tx_broadcastframe_g_h; /** This counter provides number of good multicast * packets transmitted */ unsigned long mmc_tx_multicastframe_g; + /** This counter provides upper 32 bits of transmitted good multicast + * packet count */ + unsigned long 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 */ unsigned long mmc_tx_64_octets_gb; + /** This counter provides upper 32 bits of transmitted 64 octet size + * good and bad packets count */ + unsigned long 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 */ unsigned long mmc_tx_65_to_127_octets_gb; + /** Provides upper 32 bits of transmitted 65-to-127 octet size good and + * bad packets count */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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. */ + unsigned long 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 */ unsigned long 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.*/ + unsigned long 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 */ unsigned long mmc_tx_1024_to_max_octets_gb; + /** This counter provides upper 32 bits of transmitted 1024-tomaxsize + * octet size good and bad packets count. */ + unsigned long mmc_tx_1024_to_max_octets_gb_h; /** This counter provides the number of good and bad unicast packets */ unsigned long mmc_tx_unicast_gb; + /** This counter provides upper 32 bits of transmitted good bad + * unicast packets count */ + unsigned long mmc_tx_unicast_gb_h; /** This counter provides the number of good and bad * multicast packets */ unsigned long mmc_tx_multicast_gb; + /** This counter provides upper 32 bits of transmitted good bad + * multicast packets count */ + unsigned long mmc_tx_multicast_gb_h; /** This counter provides the number of good and bad * broadcast packets */ unsigned long mmc_tx_broadcast_gb; - /** mmc_tx_underflow_error: This counter provides the number of abort - * packets due to underflow error */ + /** This counter provides upper 32 bits of transmitted good bad + * broadcast packets count */ + unsigned long mmc_tx_broadcast_gb_h; + /** This counter provides the number of abort packets due to + * underflow error */ unsigned long mmc_tx_underflow_error; + /** This counter provides upper 32 bits of abort packets due to + * underflow error */ + unsigned long mmc_tx_underflow_error_h; /** This counter provides the number of successfully transmitted * packets after a single collision in the half-duplex mode */ unsigned long mmc_tx_singlecol_g; @@ -94,8 +135,13 @@ struct osi_mmc_counters { /** This counter provides the number of bytes transmitted, * exclusive of preamble, only in good packets */ unsigned long mmc_tx_octetcount_g; + /** This counter provides upper 32 bytes of bytes transmitted, + * exclusive of preamble, only in good packets */ + unsigned long mmc_tx_octetcount_g_h; /** This counter provides the number of good packets transmitted */ unsigned long mmc_tx_framecount_g; + /** This counter provides upper 32 bytes of good packets transmitted */ + unsigned long 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) */ @@ -103,29 +149,53 @@ struct osi_mmc_counters { /** This counter provides the number of good Pause * packets transmitted */ unsigned long mmc_tx_pause_frame; + /** This counter provides upper 32 bytes of good Pause + * packets transmitted */ + unsigned long mmc_tx_pause_frame_h; /** This counter provides the number of good VLAN packets transmitted */ unsigned long mmc_tx_vlan_frame_g; + /** This counter provides upper 32 bytes of good VLAN packets + * transmitted */ + unsigned long 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 */ unsigned long mmc_tx_osize_frame_g; /** This counter provides the number of good and bad packets received */ unsigned long mmc_rx_framecount_gb; + /** This counter provides upper 32 bytes of good and bad packets + * received */ + unsigned long 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 */ unsigned long mmc_rx_octetcount_gb; - /** This counter provides the number of bytes received by DWC_ther_qos, + /** This counter provides upper 32 bytes of bytes received by + * DWC_ether_qos, exclusive of preamble, in good and bad packets */ + unsigned long 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 */ unsigned long 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 */ + unsigned long mmc_rx_octetcount_g_h; /** This counter provides the number of good * broadcast packets received */ unsigned long mmc_rx_broadcastframe_g; + /** This counter provides upper 32 bytes of good + * broadcast packets received */ + unsigned long mmc_rx_broadcastframe_g_h; /** This counter provides the number of good * multicast packets received */ unsigned long mmc_rx_multicastframe_g; + /** This counter provides upper 32 bytes of good + * multicast packets received */ + unsigned long mmc_rx_multicastframe_g_h; /** This counter provides the number of packets * received with CRC error */ unsigned long mmc_rx_crc_error; + /** This counter provides upper 32 bytes of packets + * received with CRC error */ + unsigned long 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 */ unsigned long mmc_rx_align_error; @@ -145,40 +215,78 @@ struct osi_mmc_counters { /** This counter provides the number of good and bad packets received * with length 64 bytes, exclusive of the preamble */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long mmc_rx_1024_to_max_octets_gb_h; /** This counter provides the number of good unicast packets received */ unsigned long mmc_rx_unicast_g; + /** This counter provides upper 32 bytes of good unicast packets + * received */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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) */ unsigned long 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) */ + unsigned long mmc_rx_outofrangetype_h; /** This counter provides the number of good and valid Pause packets * received */ unsigned long mmc_rx_pause_frames; + /** This counter provides upper 32 bytes of good and valid Pause packets + * received */ + unsigned long mmc_rx_pause_frames_h; /** This counter provides the number of missed received packets * because of FIFO overflow in DWC_ether_qos */ unsigned long mmc_rx_fifo_overflow; + /** This counter provides upper 32 bytes of missed received packets + * because of FIFO overflow in DWC_ether_qos */ + unsigned long mmc_rx_fifo_overflow_h; /** This counter provides the number of good and bad VLAN packets * received */ unsigned long mmc_rx_vlan_frames_gb; + /** This counter provides upper 32 bytes of good and bad VLAN packets + * received */ + unsigned long mmc_rx_vlan_frames_gb_h; /** This counter provides the number of packets received with error * because of watchdog timeout error */ unsigned long mmc_rx_watchdog_error; @@ -203,115 +311,219 @@ struct osi_mmc_counters { /** This counter provides the number of good IPv4 datagrams received * with the TCP, UDP, or ICMP payload */ unsigned long mmc_rx_ipv4_gd; + /** This counter provides upper 32 bytes of good IPv4 datagrams received + * with the TCP, UDP, or ICMP payload */ + unsigned long mmc_rx_ipv4_gd_h; /** RxIPv4 Header Error Packets */ unsigned long mmc_rx_ipv4_hderr; + /** RxIPv4 of upper 32 bytes of Header Error Packets */ + unsigned long 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 */ unsigned long 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 */ + unsigned long mmc_rx_ipv4_nopay_h; /** This counter provides the number of good IPv4 datagrams received * with fragmentation */ unsigned long mmc_rx_ipv4_frag; + /** This counter provides upper 32 bytes of good IPv4 datagrams received + * with fragmentation */ + unsigned long mmc_rx_ipv4_frag_h; /** This counter provides the number of good IPv4 datagrams received * that had a UDP payload with checksum disabled */ unsigned long mmc_rx_ipv4_udsbl; - + /** This counter provides upper 32 bytes of good IPv4 datagrams received + * that had a UDP payload with checksum disabled */ + unsigned long mmc_rx_ipv4_udsbl_h; /** This counter provides the number of good IPv6 datagrams received * with the TCP, UDP, or ICMP payload */ unsigned long mmc_rx_ipv6_gd_octets; + /** This counter provides upper 32 bytes of good IPv6 datagrams received + * with the TCP, UDP, or ICMP payload */ + unsigned long mmc_rx_ipv6_gd_octets_h; /** This counter provides the number of IPv6 datagrams received * with header (length or version mismatch) errors */ unsigned long mmc_rx_ipv6_hderr_octets; + /** This counter provides the number of IPv6 datagrams received + * with header (length or version mismatch) errors */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long mmc_rx_udp_gd; + /** This counter provides upper 32 bytes of good IP datagrams received + * by DWC_ether_qos with a good UDP payload */ + unsigned long 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 */ unsigned long 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 */ + unsigned long mmc_rx_udp_err_h; /** This counter provides the number of good IP datagrams received * with a good TCP payload */ unsigned long mmc_rx_tcp_gd; /** This counter provides the number of good IP datagrams received * with a good TCP payload */ + unsigned long mmc_rx_tcp_gd_h; + /** This counter provides upper 32 bytes of good IP datagrams received + * with a good TCP payload */ unsigned long mmc_rx_tcp_err; + /** This counter provides upper 32 bytes of good IP datagrams received + * with a good TCP payload */ + unsigned long mmc_rx_tcp_err_h; /** This counter provides the number of good IP datagrams received * with a good ICMP payload */ unsigned long mmc_rx_icmp_gd; + /** This counter provides upper 32 bytes of good IP datagrams received + * with a good ICMP payload */ + unsigned long mmc_rx_icmp_gd_h; /** This counter provides the number of good IP datagrams received * whose ICMP payload has a checksum error */ unsigned long mmc_rx_icmp_err; - + /** This counter provides upper 32 bytes of good IP datagrams received + * whose ICMP payload has a checksum error */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long 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 */ unsigned long 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 */ + unsigned long mmc_rx_icmp_err_octets_h; }; /**