diff options
author | Alexander Aring <alex.aring@gmail.com> | 2015-09-30 10:20:11 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2015-09-30 13:23:57 +0200 |
commit | 1c64f147d3cc9bbafe091a7b335ea3ec700186f0 (patch) | |
tree | 9af28fa3e5e8c586d1a6ea85a31ec570e6b9da07 /net/ieee802154/6lowpan | |
parent | 4bc8fbc95e0d831e5e3800ecc8a8d5acac79c9a8 (diff) | |
download | linux-1c64f147d3cc9bbafe091a7b335ea3ec700186f0.tar.gz linux-1c64f147d3cc9bbafe091a7b335ea3ec700186f0.tar.bz2 linux-1c64f147d3cc9bbafe091a7b335ea3ec700186f0.zip |
ieee802154: 6lowpan: add tx/rx stats
This patch adds support for increment transmit and receive stats. The
meaning of these stats are IPv6 based, which shows the stats after
running the 6lowpan adaptation layer (uncompression/compression,
fragmentation handling) on receive and before the adaptation layer
when transmit.
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/ieee802154/6lowpan')
-rw-r--r-- | net/ieee802154/6lowpan/rx.c | 2 | ||||
-rw-r--r-- | net/ieee802154/6lowpan/tx.c | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/net/ieee802154/6lowpan/rx.c b/net/ieee802154/6lowpan/rx.c index b1fd47d2802b..65d55e05516c 100644 --- a/net/ieee802154/6lowpan/rx.c +++ b/net/ieee802154/6lowpan/rx.c @@ -29,6 +29,8 @@ static int lowpan_give_skb_to_device(struct sk_buff *skb) { skb->protocol = htons(ETH_P_IPV6); + skb->dev->stats.rx_packets++; + skb->dev->stats.rx_bytes += skb->len; return netif_rx(skb); } diff --git a/net/ieee802154/6lowpan/tx.c b/net/ieee802154/6lowpan/tx.c index 3b665e12cf2b..57363026ff22 100644 --- a/net/ieee802154/6lowpan/tx.c +++ b/net/ieee802154/6lowpan/tx.c @@ -192,6 +192,8 @@ lowpan_xmit_fragmented(struct sk_buff *skb, struct net_device *ldev, } } while (skb_unprocessed > frag_cap); + ldev->stats.tx_packets++; + ldev->stats.tx_bytes += dgram_size; consume_skb(skb); return NET_XMIT_SUCCESS; @@ -277,6 +279,8 @@ netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *ldev) if (skb_tail_pointer(skb) - skb_network_header(skb) <= max_single) { skb->dev = lowpan_dev_info(ldev)->wdev; + ldev->stats.tx_packets++; + ldev->stats.tx_bytes += dgram_size; return dev_queue_xmit(skb); } else { netdev_tx_t rc; |