ath6kl: Add ARP offload related statistic info in tgt_stats
authorRaja Mani <rmani@qca.qualcomm.com>
Fri, 16 Mar 2012 10:24:56 +0000 (15:54 +0530)
committerKalle Valo <kvalo@qca.qualcomm.com>
Tue, 20 Mar 2012 08:59:45 +0000 (10:59 +0200)
Firmware reports the below ARP offload related information
while sending the target statistic event to the host.

     * Number of ARP packets received.
     * Number of packets matched with the device IP addr.
     * Number of ARP response packet sent to the remote.

This patch adds the additional debug prints in debugfs
entry tgt_stats. It will be useful to know the ARP offload
execution status.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/debug.c
drivers/net/wireless/ath/ath6kl/main.c

index 552adb3..2bcd450 100644 (file)
@@ -622,6 +622,12 @@ static ssize_t read_file_tgt_stats(struct file *file, char __user *user_buf,
                         "Num disconnects", tgt_stats->cs_discon_cnt);
        len += scnprintf(buf + len, buf_len - len, "%20s %10d\n",
                         "Beacon avg rssi", tgt_stats->cs_ave_beacon_rssi);
+       len += scnprintf(buf + len, buf_len - len, "%20s %10d\n",
+                        "ARP pkt received", tgt_stats->arp_received);
+       len += scnprintf(buf + len, buf_len - len, "%20s %10d\n",
+                        "ARP pkt matched", tgt_stats->arp_matched);
+       len += scnprintf(buf + len, buf_len - len, "%20s %10d\n",
+                        "ARP pkt replied", tgt_stats->arp_replied);
 
        if (len > buf_len)
                len = buf_len;
index 229e192..7f3addd 100644 (file)
@@ -756,6 +756,10 @@ static void ath6kl_update_target_stats(struct ath6kl_vif *vif, u8 *ptr, u32 len)
        stats->wow_evt_discarded +=
                le16_to_cpu(tgt_stats->wow_stats.wow_evt_discarded);
 
+       stats->arp_received = le32_to_cpu(tgt_stats->arp_stats.arp_received);
+       stats->arp_replied = le32_to_cpu(tgt_stats->arp_stats.arp_replied);
+       stats->arp_matched = le32_to_cpu(tgt_stats->arp_stats.arp_matched);
+
        if (test_bit(STATS_UPDATE_PEND, &vif->flags)) {
                clear_bit(STATS_UPDATE_PEND, &vif->flags);
                wake_up(&ar->event_wq);