diff options
author | adrian <adrian@FreeBSD.org> | 2013-08-08 05:09:35 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2013-08-08 05:09:35 +0000 |
commit | aa68907edaaef774817c1bf625fa8ca0424f4e84 (patch) | |
tree | 4291a4d39d439572a02fc5815d3ee2df5166c80a /sys/net80211/ieee80211_proto.h | |
parent | 541895143dbcbc415fa4b23bf8f4db2d9996ba12 (diff) | |
download | FreeBSD-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_proto.h')
-rw-r--r-- | sys/net80211/ieee80211_proto.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_proto.h b/sys/net80211/ieee80211_proto.h index 4d993b6..ae21087 100644 --- a/sys/net80211/ieee80211_proto.h +++ b/sys/net80211/ieee80211_proto.h @@ -110,7 +110,8 @@ int ieee80211_raw_output(struct ieee80211vap *, struct ieee80211_node *, void ieee80211_send_setup(struct ieee80211_node *, struct mbuf *, int, int, const uint8_t [IEEE80211_ADDR_LEN], const uint8_t [IEEE80211_ADDR_LEN], const uint8_t [IEEE80211_ADDR_LEN]); -void ieee80211_start(struct ifnet *ifp); +int ieee80211_vap_transmit(struct ifnet *ifp, struct mbuf *m); +void ieee80211_vap_qflush(struct ifnet *ifp); int ieee80211_send_nulldata(struct ieee80211_node *); int ieee80211_classify(struct ieee80211_node *, struct mbuf *m); struct mbuf *ieee80211_mbuf_adjust(struct ieee80211vap *, int, |