> +static struct gaudi_nic_ethtool_stats gaudi_nic_mac_stats_rx[] = { > + {"Rx MAC counters", 0}, > + {" etherStatsOctets", 0x0}, > + {" OctetsReceivedOK", 0x4}, > + {" aAlignmentErrors", 0x8}, > + {" aPAUSEMACCtrlFramesReceived", 0xC}, > + {" aFrameTooLongErrors", 0x10}, > + {" aInRangeLengthErrors", 0x14}, > + {" aFramesReceivedOK", 0x18}, > + {" VLANReceivedOK", 0x1C}, > + {" aFrameCheckSequenceErrors", 0x20}, > + {" ifInErrors", 0x24}, > + {" ifInUcastPkts", 0x28}, > + {" ifInMulticastPkts", 0x2C}, > + {" ifInBroadcastPkts", 0x30}, > + {" etherStatsDropEvents", 0x34}, > + {" etherStatsUndersizePkts", 0x38}, > + {" etherStatsPkts", 0x3C}, > + {" etherStatsPkts64Octets", 0x40}, > + {" etherStatsPkts65to127Octets", 0x44}, > + {" etherStatsPkts128to255Octets", 0x48}, > + {" etherStatsPkts256to511Octets", 0x4C}, > + {" etherStatsPkts512to1023Octets", 0x50}, > + {" etherStatsPkts1024to1518Octets", 0x54}, > + {" etherStatsPkts1519toMaxOctets", 0x58}, > + {" etherStatsOversizePkts", 0x5C}, > + {" etherStatsJabbers", 0x60}, > + {" etherStatsFragments", 0x64}, > + {" aCBFCPAUSEFramesReceived_0", 0x68}, > + {" aCBFCPAUSEFramesReceived_1", 0x6C}, > + {" aCBFCPAUSEFramesReceived_2", 0x70}, > + {" aCBFCPAUSEFramesReceived_3", 0x74}, > + {" aCBFCPAUSEFramesReceived_4", 0x78}, > + {" aCBFCPAUSEFramesReceived_5", 0x7C}, > + {" aCBFCPAUSEFramesReceived_6", 0x80}, > + {" aCBFCPAUSEFramesReceived_7", 0x84}, > + {" aMACControlFramesReceived", 0x88} > +}; > + > +static struct gaudi_nic_ethtool_stats gaudi_nic_mac_stats_tx[] = { > + {"Tx MAC counters", 0}, > + {" etherStatsOctets", 0x0}, > + {" OctetsTransmittedOK", 0x4}, > + {" aPAUSEMACCtrlFramesTransmitted", 0x8}, > + {" aFramesTransmittedOK", 0xC}, > + {" VLANTransmittedOK", 0x10}, > + {" ifOutErrors", 0x14}, > + {" ifOutUcastPkts", 0x18}, > + {" ifOutMulticastPkts", 0x1C}, > + {" ifOutBroadcastPkts", 0x20}, > + {" etherStatsPkts64Octets", 0x24}, > + {" etherStatsPkts65to127Octets", 0x28}, > + {" etherStatsPkts128to255Octets", 0x2C}, > + {" etherStatsPkts256to511Octets", 0x30}, > + {" etherStatsPkts512to1023Octets", 0x34}, > + {" etherStatsPkts1024to1518Octets", 0x38}, > + {" etherStatsPkts1519toMaxOctets", 0x3C}, > + {" aCBFCPAUSEFramesTransmitted_0", 0x40}, > + {" aCBFCPAUSEFramesTransmitted_1", 0x44}, > + {" aCBFCPAUSEFramesTransmitted_2", 0x48}, > + {" aCBFCPAUSEFramesTransmitted_3", 0x4C}, > + {" aCBFCPAUSEFramesTransmitted_4", 0x50}, > + {" aCBFCPAUSEFramesTransmitted_5", 0x54}, > + {" aCBFCPAUSEFramesTransmitted_6", 0x58}, > + {" aCBFCPAUSEFramesTransmitted_7", 0x5C}, > + {" aMACControlFramesTransmitted", 0x60}, > + {" etherStatsPkts", 0x64} > +};
... > +static void gaudi_nic_get_internal_stats(struct net_device *netdev, u64 > *data) > +{ > + struct gaudi_nic_device **ptr = netdev_priv(netdev); > + struct gaudi_nic_device *gaudi_nic = *ptr; > + struct hl_device *hdev = gaudi_nic->hdev; > + u32 port = gaudi_nic->port; > + u32 num_spmus; > + int i; > + > + num_spmus = (port & 1) ? NIC_SPMU1_STATS_LEN : NIC_SPMU0_STATS_LEN; > + > + gaudi_sample_spmu_nic(hdev, port, num_spmus, data); > + data += num_spmus; > + > + /* first entry is title */ > + data[0] = 0; Hi Jakub You have been looking at statistics names recently. What do you think of this data[0]? Andrew