From 092ebe6161bbbd723d60bc2ea2d2f65e29143ef7 Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 26 Apr 2009 21:11:12 +0000 Subject: [PATCH] fixup ieee80211_output handling: o correct bpf handling, send 'em to the right tap o do accouting o mark mbufs holding multicast frames --- sys/net80211/ieee80211_output.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c index b109db809b3f..46c8a554eb06 100644 --- a/sys/net80211/ieee80211_output.c +++ b/sys/net80211/ieee80211_output.c @@ -384,7 +384,17 @@ ieee80211_output(struct ifnet *ifp, struct mbuf *m, if (ieee80211_classify(ni, m)) senderr(EIO); /* XXX */ - BPF_MTAP(ifp, m); + if (bpf_peers_present(vap->iv_rawbpf)) + bpf_mtap(vap->iv_rawbpf, m); + + IEEE80211_NODE_STAT(ni, tx_data); + if (IEEE80211_IS_MULTICAST(wh->i_addr1)) { + IEEE80211_NODE_STAT(ni, tx_mcast); + m->m_flags |= M_MCAST; + } else + IEEE80211_NODE_STAT(ni, tx_ucast); + /* NB: ieee80211_encap does not include 802.11 header */ + IEEE80211_NODE_STAT_ADD(ni, tx_bytes, m->m_pkthdr.len); /* * NB: DLT_IEEE802_11_RADIO identifies the parameters are