summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_freebsd.c
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2013-08-08 05:09:35 +0000
committeradrian <adrian@FreeBSD.org>2013-08-08 05:09:35 +0000
commitaa68907edaaef774817c1bf625fa8ca0424f4e84 (patch)
tree4291a4d39d439572a02fc5815d3ee2df5166c80a /sys/net80211/ieee80211_freebsd.c
parent541895143dbcbc415fa4b23bf8f4db2d9996ba12 (diff)
downloadFreeBSD-src-aa68907edaaef774817c1bf625fa8ca0424f4e84.zip
FreeBSD-src-aa68907edaaef774817c1bf625fa8ca0424f4e84.tar.gz
Convert net80211 over to using if_transmit for the dispatch from the
upper layer(s). This eliminates the if_snd queue from net80211. Yay! This unfortunately has a few side effects: * It breaks ALTQ to net80211 for now - sorry everyone, but fixing parallelism and eliminating the if_snd queue is more important than supporting this broken traffic scheduling model. :-) * There's no VAP and IC flush methods just yet - I think I'll add some NULL methods for now just as placeholders. * It reduces throughput a little because now net80211 will drop packets rather than buffer them if the driver doesn't do its own buffering. This will be addressed in the future as I implement per-node software queues. Tested: * ath(4) and iwn(4) in STA operation
Diffstat (limited to 'sys/net80211/ieee80211_freebsd.c')
-rw-r--r--sys/net80211/ieee80211_freebsd.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/net80211/ieee80211_freebsd.c b/sys/net80211/ieee80211_freebsd.c
index 4415b62..b616c44 100644
--- a/sys/net80211/ieee80211_freebsd.c
+++ b/sys/net80211/ieee80211_freebsd.c
@@ -511,7 +511,7 @@ ieee80211_process_callback(struct ieee80211_node *ni,
* (the callers will first need modifying.)
*/
int
-ieee80211_parent_transmit(struct ieee80211com *ic,
+ieee80211_parent_xmitpkt(struct ieee80211com *ic,
struct mbuf *m)
{
struct ifnet *parent = ic->ic_ifp;
@@ -528,7 +528,7 @@ ieee80211_parent_transmit(struct ieee80211com *ic,
* Transmit a frame to the VAP interface.
*/
int
-ieee80211_vap_transmit(struct ieee80211vap *vap, struct mbuf *m)
+ieee80211_vap_xmitpkt(struct ieee80211vap *vap, struct mbuf *m)
{
struct ifnet *ifp = vap->iv_ifp;
@@ -809,7 +809,8 @@ static void
bpf_track(void *arg, struct ifnet *ifp, int dlt, int attach)
{
/* NB: identify vap's by if_start */
- if (dlt == DLT_IEEE802_11_RADIO && ifp->if_start == ieee80211_start) {
+ if (dlt == DLT_IEEE802_11_RADIO &&
+ ifp->if_transmit == ieee80211_vap_transmit) {
struct ieee80211vap *vap = ifp->if_softc;
/*
* Track bpf radiotap listener state. We mark the vap
OpenPOWER on IntegriCloud