OSDN Git Service

ieee802154: 6lowpan: add tx/rx stats
authorAlexander Aring <alex.aring@gmail.com>
Wed, 30 Sep 2015 08:20:11 +0000 (10:20 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 30 Sep 2015 11:23:57 +0000 (13:23 +0200)
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>
net/ieee802154/6lowpan/rx.c
net/ieee802154/6lowpan/tx.c

index b1fd47d..65d55e0 100644 (file)
@@ -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);
 }
index 3b665e1..5736302 100644 (file)
@@ -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;