Return-path: Received: from mail30g.wh2.ocn.ne.jp ([220.111.41.239]:6554 "HELO mail30g.wh2.ocn.ne.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1751403Ab0JDC1q (ORCPT ); Sun, 3 Oct 2010 22:27:46 -0400 Received: from vs3015.wh2.ocn.ne.jp (125.206.180.247) by mail30g.wh2.ocn.ne.jp (RS ver 1.0.95vs) with SMTP id 5-0909479261 for ; Mon, 4 Oct 2010 11:27:45 +0900 (JST) From: Bruno Randolf To: greearb@candelatech.com Subject: Re: [PATCH] ath5k: Print rx/tx bytes in debugfs Date: Mon, 4 Oct 2010 11:27:40 +0900 Cc: linux-wireless@vger.kernel.org References: <1285955644-31046-1-git-send-email-greearb@candelatech.com> In-Reply-To: <1285955644-31046-1-git-send-email-greearb@candelatech.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Message-Id: <201010041127.40572.br1@einfach.org> Sender: linux-wireless-owner@vger.kernel.org List-ID: On Sat October 2 2010 02:54:04 greearb@candelatech.com wrote: > From: Ben Greear > > This adds counters for tx and rx bytes, including any > errored packets as well as all wireless headers. > > Signed-off-by: Ben Greear > --- > > :100644 100644 2ed327a... d914a31... > :M drivers/net/wireless/ath/ath5k/base.c 100644 100644 b9f6d13... > :9a79773... M drivers/net/wireless/ath/ath5k/base.h 100644 100644 > :0f06e84... c2d549f... M drivers/net/wireless/ath/ath5k/debug.c > > drivers/net/wireless/ath/ath5k/base.c | 2 ++ > drivers/net/wireless/ath/ath5k/base.h | 7 +++++++ > drivers/net/wireless/ath/ath5k/debug.c | 4 ++++ > 3 files changed, 13 insertions(+), 0 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath5k/base.c > b/drivers/net/wireless/ath/ath5k/base.c index 2ed327a..d914a31 100644 > --- a/drivers/net/wireless/ath/ath5k/base.c > +++ b/drivers/net/wireless/ath/ath5k/base.c > @@ -1433,6 +1433,7 @@ static bool > ath5k_receive_frame_ok(struct ath5k_softc *sc, struct ath5k_rx_status *rs) > { > sc->stats.rx_all_count++; > + sc->stats.rx_bytes_count += rs->rs_datalen; > > if (unlikely(rs->rs_status)) { > if (rs->rs_status & AR5K_RXERR_CRC) > @@ -1611,6 +1612,7 @@ ath5k_tx_frame_completed(struct ath5k_softc *sc, > struct sk_buff *skb, int i; > > sc->stats.tx_all_count++; > + sc->stats.tx_bytes_count += skb->len; > info = IEEE80211_SKB_CB(skb); > > ieee80211_tx_info_clear_status(info); > diff --git a/drivers/net/wireless/ath/ath5k/base.h > b/drivers/net/wireless/ath/ath5k/base.h index b9f6d13..9a79773 100644 > --- a/drivers/net/wireless/ath/ath5k/base.h > +++ b/drivers/net/wireless/ath/ath5k/base.h > @@ -121,6 +121,13 @@ struct ath5k_statistics { > /* frame errors */ > unsigned int rx_all_count; /* all RX frames, including errors */ > unsigned int tx_all_count; /* all TX frames, including errors */ > + unsigned int rx_bytes_count; /* all RX bytes, including errored pks > + * and the MAC headers for each packet > + */ > + unsigned int tx_bytes_count; /* all TX bytes, including errored pkts > + * and the MAC headers and padding for > + * each packet. > + */ > unsigned int rxerr_crc; > unsigned int rxerr_phy; > unsigned int rxerr_phy_code[32]; > diff --git a/drivers/net/wireless/ath/ath5k/debug.c > b/drivers/net/wireless/ath/ath5k/debug.c index 0f06e84..c2d549f 100644 > --- a/drivers/net/wireless/ath/ath5k/debug.c > +++ b/drivers/net/wireless/ath/ath5k/debug.c > @@ -587,6 +587,8 @@ static ssize_t read_file_frameerrors(struct file *file, > char __user *user_buf, st->rxerr_jumbo*100/st->rx_all_count : 0); > len += snprintf(buf+len, sizeof(buf)-len, "[RX all\t%d]\n", > st->rx_all_count); > + len += snprintf(buf+len, sizeof(buf)-len, "RX-all-bytes\t%d\n", > + st->rx_bytes_count); > > len += snprintf(buf+len, sizeof(buf)-len, > "\nTX\n---------------------\n"); > @@ -604,6 +606,8 @@ static ssize_t read_file_frameerrors(struct file *file, > char __user *user_buf, st->txerr_filt*100/st->tx_all_count : 0); > len += snprintf(buf+len, sizeof(buf)-len, "[TX all\t%d]\n", > st->tx_all_count); > + len += snprintf(buf+len, sizeof(buf)-len, "TX-all-bytes\t%d\n", > + st->tx_bytes_count); > > if (len > sizeof(buf)) > len = sizeof(buf); sure, why not... Acked-by: Bruno Randolf