Deleted Added
full compact
ieee80211_output.c (193504) ieee80211_output.c (193655)
1/*-
2 * Copyright (c) 2001 Atsushi Onoe
3 * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 11 unchanged lines hidden (view full) ---

20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2001 Atsushi Onoe
3 * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 11 unchanged lines hidden (view full) ---

20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/sys/net80211/ieee80211_output.c 193504 2009-06-05 13:55:33Z rwatson $");
28__FBSDID("$FreeBSD: head/sys/net80211/ieee80211_output.c 193655 2009-06-07 22:00:22Z sam $");
29
30#include "opt_inet.h"
31#include "opt_wlan.h"
32
33#include <sys/param.h>
34#include <sys/systm.h>
35#include <sys/mbuf.h>
36#include <sys/kernel.h>

--- 224 unchanged lines hidden (view full) ---

261 * ADDBA request and wait for a reply. The frame being
262 * encapsulated will go out w/o using A-MPDU, or possibly
263 * it might be collected by the driver and held/retransmit.
264 * The default ic_ampdu_enable routine handles staggering
265 * ADDBA requests in case the receiver NAK's us or we are
266 * otherwise unable to establish a BA stream.
267 */
268 if ((ni->ni_flags & IEEE80211_NODE_AMPDU_TX) &&
29
30#include "opt_inet.h"
31#include "opt_wlan.h"
32
33#include <sys/param.h>
34#include <sys/systm.h>
35#include <sys/mbuf.h>
36#include <sys/kernel.h>

--- 224 unchanged lines hidden (view full) ---

261 * ADDBA request and wait for a reply. The frame being
262 * encapsulated will go out w/o using A-MPDU, or possibly
263 * it might be collected by the driver and held/retransmit.
264 * The default ic_ampdu_enable routine handles staggering
265 * ADDBA requests in case the receiver NAK's us or we are
266 * otherwise unable to establish a BA stream.
267 */
268 if ((ni->ni_flags & IEEE80211_NODE_AMPDU_TX) &&
269 (vap->iv_flags_ext & IEEE80211_FEXT_AMPDU_TX) &&
269 (vap->iv_flags_ht & IEEE80211_FHT_AMPDU_TX) &&
270 (m->m_flags & M_EAPOL) == 0) {
271 const int ac = M_WME_GETAC(m);
272 struct ieee80211_tx_ampdu *tap = &ni->ni_tx_ampdu[ac];
273
274 ieee80211_txampdu_count_packet(tap);
275 if (IEEE80211_AMPDU_RUNNING(tap)) {
276 /*
277 * Operational, mark frame for aggregation.

--- 1570 unchanged lines hidden (view full) ---

1848 /* XXX else complain? */
1849 }
1850 frm = ieee80211_add_xrates(frm, &ni->ni_rates);
1851 if (capinfo & IEEE80211_CAPINFO_SPECTRUM_MGMT) {
1852 frm = ieee80211_add_powercapability(frm,
1853 ic->ic_curchan);
1854 frm = ieee80211_add_supportedchannels(frm, ic);
1855 }
270 (m->m_flags & M_EAPOL) == 0) {
271 const int ac = M_WME_GETAC(m);
272 struct ieee80211_tx_ampdu *tap = &ni->ni_tx_ampdu[ac];
273
274 ieee80211_txampdu_count_packet(tap);
275 if (IEEE80211_AMPDU_RUNNING(tap)) {
276 /*
277 * Operational, mark frame for aggregation.

--- 1570 unchanged lines hidden (view full) ---

1848 /* XXX else complain? */
1849 }
1850 frm = ieee80211_add_xrates(frm, &ni->ni_rates);
1851 if (capinfo & IEEE80211_CAPINFO_SPECTRUM_MGMT) {
1852 frm = ieee80211_add_powercapability(frm,
1853 ic->ic_curchan);
1854 frm = ieee80211_add_supportedchannels(frm, ic);
1855 }
1856 if ((vap->iv_flags_ext & IEEE80211_FEXT_HT) &&
1856 if ((vap->iv_flags_ht & IEEE80211_FHT_HT) &&
1857 ni->ni_ies.htcap_ie != NULL &&
1858 ni->ni_ies.htcap_ie[0] == IEEE80211_ELEMID_HTCAP)
1859 frm = ieee80211_add_htcap(frm, ni);
1860 if (vap->iv_flags & IEEE80211_F_WPA1) {
1861 if (vap->iv_wpa_ie != NULL)
1862 frm = add_ie(frm, vap->iv_wpa_ie);
1863 /* XXX else complain */
1864 }
1865 if ((ic->ic_flags & IEEE80211_F_WME) &&
1866 ni->ni_ies.wme_ie != NULL)
1867 frm = ieee80211_add_wme_info(frm, &ic->ic_wme);
1857 ni->ni_ies.htcap_ie != NULL &&
1858 ni->ni_ies.htcap_ie[0] == IEEE80211_ELEMID_HTCAP)
1859 frm = ieee80211_add_htcap(frm, ni);
1860 if (vap->iv_flags & IEEE80211_F_WPA1) {
1861 if (vap->iv_wpa_ie != NULL)
1862 frm = add_ie(frm, vap->iv_wpa_ie);
1863 /* XXX else complain */
1864 }
1865 if ((ic->ic_flags & IEEE80211_F_WME) &&
1866 ni->ni_ies.wme_ie != NULL)
1867 frm = ieee80211_add_wme_info(frm, &ic->ic_wme);
1868 if ((vap->iv_flags_ext & IEEE80211_FEXT_HT) &&
1868 if ((vap->iv_flags_ht & IEEE80211_FHT_HT) &&
1869 ni->ni_ies.htcap_ie != NULL &&
1870 ni->ni_ies.htcap_ie[0] == IEEE80211_ELEMID_VENDOR)
1871 frm = ieee80211_add_htcap_vendor(frm, ni);
1872#ifdef IEEE80211_SUPPORT_SUPERG
1873 if (IEEE80211_ATH_CAP(vap, ni, IEEE80211_F_ATHEROS)) {
1874 frm = ieee80211_add_ath(frm,
1875 IEEE80211_ATH_CAP(vap, ni, IEEE80211_F_ATHEROS),
1876 ((vap->iv_flags & IEEE80211_F_WPA) == 0 &&

--- 256 unchanged lines hidden (view full) ---

2133 if (vap->iv_flags & IEEE80211_F_WPA1) {
2134 if (vap->iv_wpa_ie != NULL)
2135 frm = add_ie(frm, vap->iv_wpa_ie);
2136 /* XXX else complain? */
2137 }
2138 if (vap->iv_flags & IEEE80211_F_WME)
2139 frm = ieee80211_add_wme_param(frm, &ic->ic_wme);
2140 if (IEEE80211_IS_CHAN_HT(bss->ni_chan) &&
1869 ni->ni_ies.htcap_ie != NULL &&
1870 ni->ni_ies.htcap_ie[0] == IEEE80211_ELEMID_VENDOR)
1871 frm = ieee80211_add_htcap_vendor(frm, ni);
1872#ifdef IEEE80211_SUPPORT_SUPERG
1873 if (IEEE80211_ATH_CAP(vap, ni, IEEE80211_F_ATHEROS)) {
1874 frm = ieee80211_add_ath(frm,
1875 IEEE80211_ATH_CAP(vap, ni, IEEE80211_F_ATHEROS),
1876 ((vap->iv_flags & IEEE80211_F_WPA) == 0 &&

--- 256 unchanged lines hidden (view full) ---

2133 if (vap->iv_flags & IEEE80211_F_WPA1) {
2134 if (vap->iv_wpa_ie != NULL)
2135 frm = add_ie(frm, vap->iv_wpa_ie);
2136 /* XXX else complain? */
2137 }
2138 if (vap->iv_flags & IEEE80211_F_WME)
2139 frm = ieee80211_add_wme_param(frm, &ic->ic_wme);
2140 if (IEEE80211_IS_CHAN_HT(bss->ni_chan) &&
2141 (vap->iv_flags_ext & IEEE80211_FEXT_HTCOMPAT) &&
2141 (vap->iv_flags_ht & IEEE80211_FHT_HTCOMPAT) &&
2142 legacy != IEEE80211_SEND_LEGACY_11B) {
2143 frm = ieee80211_add_htcap_vendor(frm, bss);
2144 frm = ieee80211_add_htinfo_vendor(frm, bss);
2145 }
2146#ifdef IEEE80211_SUPPORT_SUPERG
2147 if ((vap->iv_flags & IEEE80211_F_ATHEROS) &&
2148 legacy != IEEE80211_SEND_LEGACY_11B)
2149 frm = ieee80211_add_athcaps(frm, bss);

--- 272 unchanged lines hidden (view full) ---

2422 frm = add_ie(frm, vap->iv_wpa_ie);
2423 /* XXX else complain */
2424 }
2425 if (vap->iv_flags & IEEE80211_F_WME) {
2426 bo->bo_wme = frm;
2427 frm = ieee80211_add_wme_param(frm, &ic->ic_wme);
2428 }
2429 if (IEEE80211_IS_CHAN_HT(ni->ni_chan) &&
2142 legacy != IEEE80211_SEND_LEGACY_11B) {
2143 frm = ieee80211_add_htcap_vendor(frm, bss);
2144 frm = ieee80211_add_htinfo_vendor(frm, bss);
2145 }
2146#ifdef IEEE80211_SUPPORT_SUPERG
2147 if ((vap->iv_flags & IEEE80211_F_ATHEROS) &&
2148 legacy != IEEE80211_SEND_LEGACY_11B)
2149 frm = ieee80211_add_athcaps(frm, bss);

--- 272 unchanged lines hidden (view full) ---

2422 frm = add_ie(frm, vap->iv_wpa_ie);
2423 /* XXX else complain */
2424 }
2425 if (vap->iv_flags & IEEE80211_F_WME) {
2426 bo->bo_wme = frm;
2427 frm = ieee80211_add_wme_param(frm, &ic->ic_wme);
2428 }
2429 if (IEEE80211_IS_CHAN_HT(ni->ni_chan) &&
2430 (vap->iv_flags_ext & IEEE80211_FEXT_HTCOMPAT)) {
2430 (vap->iv_flags_ht & IEEE80211_FHT_HTCOMPAT)) {
2431 frm = ieee80211_add_htcap_vendor(frm, ni);
2432 frm = ieee80211_add_htinfo_vendor(frm, ni);
2433 }
2434#ifdef IEEE80211_SUPPORT_SUPERG
2435 if (vap->iv_flags & IEEE80211_F_ATHEROS) {
2436 bo->bo_ath = frm;
2437 frm = ieee80211_add_athcaps(frm, ni);
2438 }

--- 371 unchanged lines hidden ---
2431 frm = ieee80211_add_htcap_vendor(frm, ni);
2432 frm = ieee80211_add_htinfo_vendor(frm, ni);
2433 }
2434#ifdef IEEE80211_SUPPORT_SUPERG
2435 if (vap->iv_flags & IEEE80211_F_ATHEROS) {
2436 bo->bo_ath = frm;
2437 frm = ieee80211_add_athcaps(frm, ni);
2438 }

--- 371 unchanged lines hidden ---