Skip to content

Commit 3010608

Browse files
tlendackydavem330
authored andcommitted
amd-xgbe: Add additional ethtool statistics
Add some additional statistics for tracking VXLAN packets and checksum errors. Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 1a510cc commit 3010608

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

drivers/net/ethernet/amd/xgbe/xgbe-dev.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1805,10 +1805,13 @@ static void xgbe_dev_xmit(struct xgbe_channel *channel)
18051805
packet->length);
18061806
}
18071807

1808-
if (vxlan)
1808+
if (vxlan) {
18091809
XGMAC_SET_BITS_LE(rdesc->desc3, TX_NORMAL_DESC3, VNP,
18101810
TX_NORMAL_DESC3_VXLAN_PACKET);
18111811

1812+
pdata->ext_stats.tx_vxlan_packets += packet->tx_packets;
1813+
}
1814+
18121815
for (i = cur_index - start_index + 1; i < packet->rdesc_count; i++) {
18131816
cur_index++;
18141817
rdata = XGBE_GET_DESC_DATA(ring, cur_index);
@@ -1981,6 +1984,7 @@ static int xgbe_dev_read(struct xgbe_channel *channel)
19811984
if (XGMAC_GET_BITS_LE(rdesc->desc2, RX_NORMAL_DESC2, TNP)) {
19821985
XGMAC_SET_BITS(packet->attributes, RX_PACKET_ATTRIBUTES,
19831986
TNP, 1);
1987+
pdata->ext_stats.rx_vxlan_packets++;
19841988

19851989
l34t = XGMAC_GET_BITS_LE(rdesc->desc3, RX_NORMAL_DESC3, L34T);
19861990
switch (l34t) {
@@ -2018,11 +2022,13 @@ static int xgbe_dev_read(struct xgbe_channel *channel)
20182022
CSUM_DONE, 0);
20192023
XGMAC_SET_BITS(packet->attributes, RX_PACKET_ATTRIBUTES,
20202024
TNPCSUM_DONE, 0);
2025+
pdata->ext_stats.rx_csum_errors++;
20212026
} else if (tnp && ((etlt == 0x09) || (etlt == 0x0a))) {
20222027
XGMAC_SET_BITS(packet->attributes, RX_PACKET_ATTRIBUTES,
20232028
CSUM_DONE, 0);
20242029
XGMAC_SET_BITS(packet->attributes, RX_PACKET_ATTRIBUTES,
20252030
TNPCSUM_DONE, 0);
2031+
pdata->ext_stats.rx_vxlan_csum_errors++;
20262032
} else {
20272033
XGMAC_SET_BITS(packet->errors, RX_PACKET_ERRORS,
20282034
FRAME, 1);

drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ static const struct xgbe_stats xgbe_gstring_stats[] = {
146146
XGMAC_MMC_STAT("tx_broadcast_packets", txbroadcastframes_gb),
147147
XGMAC_MMC_STAT("tx_multicast_packets", txmulticastframes_gb),
148148
XGMAC_MMC_STAT("tx_vlan_packets", txvlanframes_g),
149+
XGMAC_EXT_STAT("tx_vxlan_packets", tx_vxlan_packets),
149150
XGMAC_EXT_STAT("tx_tso_packets", tx_tso_packets),
150151
XGMAC_MMC_STAT("tx_64_byte_packets", tx64octets_gb),
151152
XGMAC_MMC_STAT("tx_65_to_127_byte_packets", tx65to127octets_gb),
@@ -162,6 +163,7 @@ static const struct xgbe_stats xgbe_gstring_stats[] = {
162163
XGMAC_MMC_STAT("rx_broadcast_packets", rxbroadcastframes_g),
163164
XGMAC_MMC_STAT("rx_multicast_packets", rxmulticastframes_g),
164165
XGMAC_MMC_STAT("rx_vlan_packets", rxvlanframes_gb),
166+
XGMAC_EXT_STAT("rx_vxlan_packets", rx_vxlan_packets),
165167
XGMAC_MMC_STAT("rx_64_byte_packets", rx64octets_gb),
166168
XGMAC_MMC_STAT("rx_65_to_127_byte_packets", rx65to127octets_gb),
167169
XGMAC_MMC_STAT("rx_128_to_255_byte_packets", rx128to255octets_gb),
@@ -177,6 +179,8 @@ static const struct xgbe_stats xgbe_gstring_stats[] = {
177179
XGMAC_MMC_STAT("rx_out_of_range_errors", rxoutofrangetype),
178180
XGMAC_MMC_STAT("rx_fifo_overflow_errors", rxfifooverflow),
179181
XGMAC_MMC_STAT("rx_watchdog_errors", rxwatchdogerror),
182+
XGMAC_EXT_STAT("rx_csum_errors", rx_csum_errors),
183+
XGMAC_EXT_STAT("rx_vxlan_csum_errors", rx_vxlan_csum_errors),
180184
XGMAC_MMC_STAT("rx_pause_frames", rxpauseframes),
181185
XGMAC_EXT_STAT("rx_split_header_packets", rx_split_header_packets),
182186
XGMAC_EXT_STAT("rx_buffer_unavailable", rx_buffer_unavailable),

drivers/net/ethernet/amd/xgbe/xgbe.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -715,6 +715,11 @@ struct xgbe_ext_stats {
715715
u64 txq_bytes[XGBE_MAX_DMA_CHANNELS];
716716
u64 rxq_packets[XGBE_MAX_DMA_CHANNELS];
717717
u64 rxq_bytes[XGBE_MAX_DMA_CHANNELS];
718+
719+
u64 tx_vxlan_packets;
720+
u64 rx_vxlan_packets;
721+
u64 rx_csum_errors;
722+
u64 rx_vxlan_csum_errors;
718723
};
719724

720725
struct xgbe_hw_if {

0 commit comments

Comments
 (0)