Date: Sun, 6 Feb 2011 17:40:27 +0000 (UTC) From: Adrian Chadd <adrian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r218378 - head/sys/dev/ath Message-ID: <201102061740.p16HeRcs072263@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: adrian Date: Sun Feb 6 17:40:27 2011 New Revision: 218378 URL: http://svn.freebsd.org/changeset/base/218378 Log: Only tag packets with the A-MPDU bit if they were part of an A-MPDU RX. Whilst I'm here, add a counter to count said packets. Modified: head/sys/dev/ath/if_ath.c head/sys/dev/ath/if_athioctl.h Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Sun Feb 6 16:21:21 2011 (r218377) +++ head/sys/dev/ath/if_ath.c Sun Feb 6 17:40:27 2011 (r218378) @@ -3892,16 +3892,11 @@ rx_accept: IEEE80211_KEYIX_NONE : rs->rs_keyix); sc->sc_lastrs = rs; if (ni != NULL) { -#ifdef NOTYET - /* tag AMPDU aggregates for reorder processing */ - /* - * XXX this should only tag frames marked as aggregate; rather - * XXX than all frames. - */ - if (ni->ni_flags & IEEE80211_NODE_HT) - m->m_flags |= M_AMPDU; -#endif - + /* tag AMPDU aggregates for reorder processing */ + if (rs->rs_isaggr) { + + m->m_flags |= M_AMPDU; + } /* * Sending station is known, dispatch directly. */ @@ -6499,4 +6494,6 @@ ath_sysctl_stats_attach(struct ath_softc &sc->sc_stats.ast_be_missed, 0, "number of -missed- beacons"); SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_ani_cal", CTLFLAG_RD, &sc->sc_stats.ast_ani_cal, 0, "number of ANI polls"); + SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_rx_agg", CTLFLAG_RD, + &sc->sc_stats.ast_rx_agg, 0, "number of aggregate frames received"); } Modified: head/sys/dev/ath/if_athioctl.h ============================================================================== --- head/sys/dev/ath/if_athioctl.h Sun Feb 6 16:21:21 2011 (r218377) +++ head/sys/dev/ath/if_athioctl.h Sun Feb 6 17:40:27 2011 (r218378) @@ -120,7 +120,8 @@ struct ath_stats { u_int32_t ast_tx_nofrag; /* tx dropped 'cuz no ath frag buffer */ u_int32_t ast_be_missed; /* missed beacons */ u_int32_t ast_ani_cal; /* ANI calibrations performed */ - u_int32_t ast_pad[12]; + u_int32_t ast_rx_agg; /* number of aggregate frames RX'ed */ + u_int32_t ast_pad[11]; }; #define SIOCGATHSTATS _IOWR('i', 137, struct ifreq)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201102061740.p16HeRcs072263>