bgmac: Maintain some netdev statistics
Add a few netdev statistics to report transmitted and received bytes and packets and a few obvious errors. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f6613d4fa9
commit
6d490f62a4
|
@ -246,6 +246,8 @@ err_dma_head:
|
||||||
|
|
||||||
err_drop:
|
err_drop:
|
||||||
dev_kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
|
net_dev->stats.tx_dropped++;
|
||||||
|
net_dev->stats.tx_errors++;
|
||||||
return NETDEV_TX_OK;
|
return NETDEV_TX_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -284,6 +286,8 @@ static void bgmac_dma_tx_free(struct bgmac *bgmac, struct bgmac_dma_ring *ring)
|
||||||
DMA_TO_DEVICE);
|
DMA_TO_DEVICE);
|
||||||
|
|
||||||
if (slot->skb) {
|
if (slot->skb) {
|
||||||
|
bgmac->net_dev->stats.tx_bytes += slot->skb->len;
|
||||||
|
bgmac->net_dev->stats.tx_packets++;
|
||||||
bytes_compl += slot->skb->len;
|
bytes_compl += slot->skb->len;
|
||||||
pkts_compl++;
|
pkts_compl++;
|
||||||
|
|
||||||
|
@ -464,6 +468,7 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring,
|
||||||
bgmac_err(bgmac, "Found poisoned packet at slot %d, DMA issue!\n",
|
bgmac_err(bgmac, "Found poisoned packet at slot %d, DMA issue!\n",
|
||||||
ring->start);
|
ring->start);
|
||||||
put_page(virt_to_head_page(buf));
|
put_page(virt_to_head_page(buf));
|
||||||
|
bgmac->net_dev->stats.rx_errors++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -471,6 +476,8 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring,
|
||||||
bgmac_err(bgmac, "Found oversized packet at slot %d, DMA issue!\n",
|
bgmac_err(bgmac, "Found oversized packet at slot %d, DMA issue!\n",
|
||||||
ring->start);
|
ring->start);
|
||||||
put_page(virt_to_head_page(buf));
|
put_page(virt_to_head_page(buf));
|
||||||
|
bgmac->net_dev->stats.rx_length_errors++;
|
||||||
|
bgmac->net_dev->stats.rx_errors++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -481,6 +488,7 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring,
|
||||||
if (unlikely(!skb)) {
|
if (unlikely(!skb)) {
|
||||||
bgmac_err(bgmac, "build_skb failed\n");
|
bgmac_err(bgmac, "build_skb failed\n");
|
||||||
put_page(virt_to_head_page(buf));
|
put_page(virt_to_head_page(buf));
|
||||||
|
bgmac->net_dev->stats.rx_errors++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
skb_put(skb, BGMAC_RX_FRAME_OFFSET +
|
skb_put(skb, BGMAC_RX_FRAME_OFFSET +
|
||||||
|
@ -490,6 +498,8 @@ static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring,
|
||||||
|
|
||||||
skb_checksum_none_assert(skb);
|
skb_checksum_none_assert(skb);
|
||||||
skb->protocol = eth_type_trans(skb, bgmac->net_dev);
|
skb->protocol = eth_type_trans(skb, bgmac->net_dev);
|
||||||
|
bgmac->net_dev->stats.rx_bytes += len;
|
||||||
|
bgmac->net_dev->stats.rx_packets++;
|
||||||
napi_gro_receive(&bgmac->napi, skb);
|
napi_gro_receive(&bgmac->napi, skb);
|
||||||
handled++;
|
handled++;
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
Loading…
Reference in New Issue