History log of /dragonfly/sys/netproto/802_11/ieee80211_proto.h (Results 1 – 25 of 26)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc, v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0
# 4f655ef5 12-May-2016 Matthew Dillon <dillon@backplane.com>

wlan - Sync netproto/802_11 from FreeBSD part 1/N

* Sync netproto/802_11 from FreeBSD, fbsd git dd885b9a0a0e, May 11 2016.


Revision tags: v4.4.3, v4.4.2
# 4f898719 04-Jan-2016 Imre Vadász <imre@vdsz.com>

80211 - Update up to FreeBSD's r287029 (only skipping a few minor changes)

Taken-From: FreeBSD


# 294727bf 15-Jan-2016 Imre Vadász <imre@vdsz.com>

wlan - Cleanup compat shims for FreeBSD version that predate 10.0-RELEASE.

Taken-From: FreeBSD (SVN r283541)


Revision tags: v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4
# e218318c 20-Jan-2015 Matthew Dillon <dillon@backplane.com>

wlan - export ieee80211_add_ssid()

* Export ieee80211_add_ssid() so iwn can use it.


Revision tags: v4.0.3
# 085ff963 11-Jan-2015 Matthew Dillon <dillon@apollo.backplane.com>

wlan - Update wlan from Adrian / FreeBSD

* Update the wlan infrastructure, initially working with ath.


Revision tags: v4.0.2, v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2, v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc
# d98a0bcf 03-May-2014 Matthew Dillon <dillon@apollo.backplane.com>

wlan/atheros - Synchronize sleep state code from FreeBSD

* Synchronize Adrian Chadd's sleep state code and wlan updates.

* With this commit if the wlan or ath interface is in a 'down' state,
it w

wlan/atheros - Synchronize sleep state code from FreeBSD

* Synchronize Adrian Chadd's sleep state code and wlan updates.

* With this commit if the wlan or ath interface is in a 'down' state,
it will use full sleep mode and save power.

* We get all of ATH through today but the 802_11 changes are a bit
too substantial so this commit only brings in the sleep state code
through today (3-May-2014).

* There is a bunch of other 802_11 work that needs to be brought in
but it's like 20,000 lines of patches so... not today.

* Verified operational on Acer C720 chromebook. full-sleep mode saves
0.3-0.4W. Network sleep mode code is also verified to be operational
but does not appear to save any power at the moment.

Also verified: beacons are working properly for wakeups on packet
reception.

show more ...


Revision tags: v3.6.2, v3.6.1
# 7115973e 24-Nov-2013 Matthew Dillon <dillon@apollo.backplane.com>

kernel - minor netproto/802_11 stuff to support iwn re-port

* Bring in some minor changes from FreeBSD which iwn needs.


Revision tags: v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3, v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0
# f0a26983 11-Jan-2013 Sepherosa Ziehau <sephe@dragonflybsd.org>

if: Multiple TX queue support step 1 of many; introduce ifaltq subqueue

Put the plain queue information, e.g. queue header and tail, serializer,
packet staging scoreboard and ifnet.if_start schedule

if: Multiple TX queue support step 1 of many; introduce ifaltq subqueue

Put the plain queue information, e.g. queue header and tail, serializer,
packet staging scoreboard and ifnet.if_start schedule netmsg etc. into
its own structure (subqueue). ifaltq structure could have multiple of
subqueues based on the count that drivers can specify.

Subqueue's enqueue, dequeue, purging and states updating are protected
by the subqueue's serializer, so for hardwares supporting multiple TX
queues, contention on queuing operation could be greatly reduced.

The subqueue is passed to if_start to let the driver know which hardware
TX queue to work on. Only the related driver's TX queue serializer will
be held, so for hardwares supporting multiple TX queues, contention on
driver's TX queue serializer could be greatly reduced.

Bunch of ifsq_ prefixed functions are added, which is used to perform
various operations on subqueues. Commonly used ifq_ prefixed functions
are still kept mainly for the drivers which do not support multiple TX
queues (well, these functions also ease the netif/ convertion in this
step :).

All of the pseudo network devices under sys/net are converted to use the
new subqueue operation. netproto/802_11 is converted too. igb(4) is
converted to use the new subqueue operation, the rest of the network
drivers are only changed for the if_start interface modification.

For ALTQs which have packet scheduler enabled, only the first subqueue
is used (*).

(*) Whether we should utilize multiple TX queues if ALTQ's packet scheduler
is enabled is quite questionable. Mainly because hardware's multiple TX
queue packet dequeue mechanism could have negative impact on ALTQ's packet
scheduler's decision.

show more ...


Revision tags: v3.2.2, v3.2.1, v3.2.0, v3.3.0, v3.0.3, v3.0.2, v3.0.1, v3.1.0, v3.0.0
# 16fb0422 20-Jan-2012 Sascha Wildner <saw@online.de>

Remove empty DragonFly CVS IDs.


# 86d7f5d3 26-Nov-2011 John Marino <draco@marino.st>

Initial import of binutils 2.22 on the new vendor branch

Future versions of binutils will also reside on this branch rather
than continuing to create new binutils branches for each new version.


Revision tags: v2.12.0, v2.13.0, v2.10.1, v2.11.0, v2.10.0, v2.9.1, v2.8.2, v2.8.1, v2.8.0, v2.9.0, v2.6.3, v2.7.3, v2.6.2, v2.7.2, v2.7.1, v2.6.1, v2.7.0, v2.6.0, v2.5.1, v2.4.1, v2.5.0, v2.4.0, v2.3.2, v2.3.1, v2.2.1, v2.2.0, v2.3.0, v2.1.1, v2.0.1
# 6bd66811 07-May-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

Adapt 802.11 generic layer to support hardware crypto other than ath(4).
More specificly, it is changed for Wifi chips from Ralink (2x61 is used
as an example here), which have following hardware cry

Adapt 802.11 generic layer to support hardware crypto other than ath(4).
More specificly, it is changed for Wifi chips from Ralink (2x61 is used
as an example here), which have following hardware crypto features. These
features are different from ath(4)'s and need special cares:
1) For TX, host does not need to insert IV and Extended IV after 802.11 MAC
header, instead, host provides them in TX descriptor.
2) For RX, IV and Extended IV will not be left in RX buffer, instead, they
are recorded in RX descriptor.
3) For RX and TKIP is used as crypto method, if the received MPDU is the
only fragment of an MSDU then MIC is stripped and hardware will verify
MIC for host.

Since these kinds of hardwares need to know IV and Extended IV,
ieee80211_crypto_iv structure is added. It can hold IV and Extended IV, and
is used to pass these two IVs to and from 802.11 generic layer. It requires
a special layout to ease crypto modules' processing, so comment is added to
make sure the structure's layout will not be changed.

To address the problems introduced by the hardware feature 1), following
changes are made:
- Add ic_getiv() interface for all crypto modules, which is (obviously) used
to get IV and extended IV from crypto module. Except that it puts IVs in
ieee80211_crypto_iv instead of TX buffer, the new interface is quite similar
to ic_encap(). Wrap ic_getiv() interface by ieee80211_crypto_getiv().
- Split ieee80211_crypto_encap() into two functions:
o ieee80211_crypto_findkey(). It is used to find the crypto key for given
MPDU and receiver.
o ieee80211_crypto_encap_withkey(). It does the real encryption work.
For Ralink's Wifi chips, this function is only called when host based
encryption is used.
After this splition, driver will have a chance to decide whether it need to
do host encryption, which could happen when there are not enough hardware
pairwise keys, or offload the encryption to hardware. ath(4) does not need
this interception, since no matter hardware encryption is used or not, host
always has to insert IVs, while for Ralink Wifi chips, IV insertion can be
done only if host encryption is to be used, for hardware encryption, they
must be set in TX descriptor.
This splition also causes another problem:
ieee80211_crypto_encap_withkey() requires a keyid (read: not key index) and
it will be too bloated to add a keyid parameter for both
ieee80211_crypto_encap_withkey() and ieee80211_crypto_findkey(), so
o Change ieee80211_key.wk_pad to ieee80211_key.wk_keyid, which is keyid for
a given key, and is set in ieee80211_crypto_resetkey(). Since
ieee80211_crypto_resetkey() will need to know internals of ieee80211com,
put it into ieee80211_crypto.c.
o Add assertion in ieee80211_crypto_findkey() to make sure that the crypto
key has correct keyid.
o Make ieee80211_crypto_encap() a wrapper of ieee80211_crypto_findkey() and
ieee80211_crypto_encap_withkey(). Old symantic of this function is still
kept.
The crypto encapsulation for Ralink Wifi chips will look like following:
...
k = ieee80211_crypto_findkey();
if (k is hardware encryption key)
k = ieee80211_crypto_getiv(k, iv);
else
k = ieee80211_crypto_encap_withkey(k);
...
- Add a crypto key flag, IEEE80211_KEY_NOHDR, to indicate that host does not
need to reserve space in TX buffer if hardware encryption is used.
- Honor IEEE80211_KEY_NOHDR in ieee80211_mbuf_adjust().
- Add an extended capability flag, IEEE80211_CEXT_CRYPTO_HDR, which is set by
driver to inform crypto module that if hardware encryption is used for a
crypto key, the key should have IEEE80211_KEY_NOHDR turned on.

To address the problems introduced by the hardware feature 2), following
changes are made:
- Add ic_update() interface for all crypto modules, which is used to update
crypto modules' internal state according to the IVs passed in. Except that
it peeks at the passed in ieee80211_crypto_iv instead of RX buffer, it acts
similarly to ic_decap(). Wrap ic_update() interface by
ieee80211_crypto_update(). ieee80211_crypto_update() also locates the crypto
key for given MPDU and sender.
- Add ieee80211_input_withiv(), which accepts an ieee80211_crypto_iv 'iv'
parameter in addition to the original ieee80211_input() parameters. If 'iv'
parameter is NULL, old ieee80211_input() behaviour is used, if 'iv' is not
NULL, ieee80211_crypto_update() will be called instead of
ieee80211_crypto_decap(). ath(4) does not require this special processing,
since no matter hardware encryption is used or not, IVs are always in RX
buffer, but for Wifi chips from Ralink, we will have to explicitly pass the
recorded IVs in RX descriptor down to crypto modules.
- Change ieee80211_input() to call ieee80211_input_withiv() with NULL 'iv'.
Old symantic of this function is still kept.

To address the problems introduced by the hardware feature 3), following
changes are made:
- Add a key flag, IEEE80211_KEY_NOMIC, to give hint to TKIP crypto module that
hardware will strip TKIP MIC.
- Honor IEEE80211_KEY_NOMIC in tkip_demic().
- Add an extended capability flag, IEEE80211_CEXT_STRIP_MIC, which is set by
driver to inform crypto module that if hardware TKIP MIC is used for a
crypto key, then the key should have IEEE80211_KEY_NOMIC turned on.

show more ...


# 846cf0bc 26-Apr-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Factor out ieee80211_reset_state() from ieee80211_newstate(), so
802.11 layer can clean up its internal state machine without state
changing or going through driver code.
- Merge sta_disassoc()

- Factor out ieee80211_reset_state() from ieee80211_newstate(), so
802.11 layer can clean up its internal state machine without state
changing or going through driver code.
- Merge sta_disassoc() and sta_disauth() into sta_disconnect(), which
sends disassoc to associated STA and deauth to authenticating STA.
- Call ieee80211_reset_state(), if operational mode is going to be
changed, so we will do a proper state machine clean up. In the
original way, if we are acting as AP and switch directly to act as
STA, we will send out wrong management frames.
- Call ieee80211_reset_state(), if PHY is going to be changed. This
prevents panic (due to a proper assertion) under following scenario:
o Current PHY of the AP is 11b.
o An 11b STA joins the BSS created by the AP. Since AP's current
PHY is 11b, this STA will not be counted as long slot time STA,
i.e. long slot time STA count left untouched.
o Switch AP's PHY to 11g.
AP will panick (long slot time STA count is zero, while there is a
long slot time STA associated, in ieee80211_node_leave_11g()). The
assertion fails, because 802.11 state machine is doing its clean up
as if AP were using 11g PHY, but it actually used 11b PHY.

show more ...


# 23d1bc3a 22-Apr-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

Const-fy rate set argument of ieee80211_iserp_rateset().


# 322b19a8 30-Mar-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Add a definition for the length of 802.11 MAC frame's FCS. Use it instead
of the magic number '4' in ral(4), rum(4) and ural(4).
- In ral(4), rum(4) and ural(4), use sizeof(struct ieee80211_fram

- Add a definition for the length of 802.11 MAC frame's FCS. Use it instead
of the magic number '4' in ral(4), rum(4) and ural(4).
- In ral(4), rum(4) and ural(4), use sizeof(struct ieee80211_frame_{ack,cts})
to calculate ACK and CTS size, instead of using the magic number '10'.
- In rum(4) and ural(4), nuke unused macro RAL_CTS_SIZE.
- Correct SIFS setting in ral(4), rum(4) and ural(4).
- Implement ieee80211_txtime(), according to 802.11 standards' TXTIME
calculation.
- Nuke {ral,rum,ural}_txtime(), use ieee80211_txtime() instead.

# We are one step closer to the generic Sample TX rate control algorithm.

show more ...


# 2d7dda79 27-Mar-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Implement ieee80211_ack_rate() according to IEEE Std 802.11g-2003
clause 9.6
- Nuke non-standard conforming ACK rate calculation in ral(4), rum(4)
and ural(4). Use ieee80211_ack_rate() instead.


# 9639b71d 01-Jan-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

- In ieee80211_setmode(), don't mark basic rates on ieee80211com.ic_sup_rates.
The basic rates will be marked on ieee80211com.ic_sup_rates once we get the
BSS' basic rate set, in ieee80211_sta_jo

- In ieee80211_setmode(), don't mark basic rates on ieee80211com.ic_sup_rates.
The basic rates will be marked on ieee80211com.ic_sup_rates once we get the
BSS' basic rate set, in ieee80211_sta_join().
- Rename ieee80211_set11gbasicrates() to ieee80211_set_basicrates(). Add
additional parameter to indicate whether we are using Pure G or not.
- In ieee80211_set_basicrates():
o Extend basic rate set array by adding items for Turbo G mode (mixed 11B/G
basic rates) and Turbo A mode (11A mandatory rates).
o Add an assertion to make sure we will not go beyond the end of the basic
rate set array.
o Use a seperate constant for Pure G basic rate set.
o If 'mode' is 11G or Turbo G, and Pure G is required, use Pure G's basic
rate set, instead of mixed 11B/G basic rate set. This makes a standard
conforming 11B STA not try joining a Pure G BSS created by us.
- In ieee80211_recv_mgmt():
o Send probe response even if rate negotiation fails. According to
IEEE Std 802.11, 1999 Edition, subclause 11.1.3.2.1:
....
STAs, subject to criteria below, receiving Probe Request frames shall
respond with a probe response only if the SSID in the probe request is
the broadcast SSID or matches the specific SSID of the STA. ... ...
An AP shall respond to all probe requests meeting the above criteria.
In an IBSS, the STA that generated the last beacon shall be the STA that
responds to a probe request.
....

If we reach the rate negotiation step, then the "criteria" outlined by
the standard is already met.
o Don't do rate negotiation for temporary nodes, which are created just for
sending probe responses. This may save us some cpu time.
- Reset NIC for Pure G change, only if opmode is HOSTAP or IBSS(*), and phy
mode is either Turbo G or 11G.
- Don't allocate TX rate control data for temporary nodes, since they will be
reclaimed immediately after management frames are sent.

# (*) Actually, for IBSS opmode, we need to reset the NIC iff we are the only
# member of the current IBSS.

show more ...


# 208a1285 23-Dec-2006 Sepherosa Ziehau <sephe@dragonflybsd.org>

Massive 802_11 XRATE bug fixing.

- Correct ieee80211_fix_rate(IEEE80211_F_DODEL) operation by entering
IEEE80211_F_DONEGO code segment but avoiding real negotiation.
- In ieee80211_fix_rate(), rem

Massive 802_11 XRATE bug fixing.

- Correct ieee80211_fix_rate(IEEE80211_F_DODEL) operation by entering
IEEE80211_F_DONEGO code segment but avoiding real negotiation.
- In ieee80211_fix_rate(), remove duplicated rates if rate set is to
be sorted. This should be enough to protect us against maliciously
minted 802.11 management frames which contain supported rate and
extended supported rate ies. [*]
- In ieee80211_sta_join(), call ieee80211_fix_rate(IEEE80211_F_DODEL),
if the wireless NIC operates in STA mode. So drivers can depend on
ieee80211com.ic_bss's ni_rates even before entering RUN state, this
is *very important* for certain driver e.g. iwi(4) [*].
- Add ic_nbasicrates in ieee80211com, which records the number of
basic rates in the current BSS. [1]
- Add a new function ieee80211_copy_basicrates(). This function is
used to propagate IEEE80211_RATE_BASIC bit from second parameter
to the first parameter. It will return number of basic rates in
the second parameter. It is called in ieee80211_sta_join() to
properly setup basic rates in ieee80211com.ic_sup_rates and
ieee80211com.ic_nbasicrates. [2]
- Introduce extra parameter to ieee80211_setup_rates() and
ieee80211_fix_rate().
This parameter only affects how IEEE80211_F_DONEGO is done.
Adjust IEEE80211_F_DONEGO behavior after introducing this parameter:
If the new parameter is 1, then the negotiation is performed on the
behalf of a STA which wants to join either an infrastructured or an
independent BSS, and the rate set going to be negotiated is the BSS's
supported rate set:
o Don't overwrite the BSS basic rate set. So drivers and TX rate
control algorithm can have knowledge of the BSS basic rate set and
can do various setting accordingly.
o Avoid joining the BSS, if certain rates in the BSS basic rate set
are not supported.
If the new parameter is 0, then the negotiation is performed on the
behalf of a HOSTAP, or a STA that already joined/started an independent
BSS, and the rate set going to be negotiated is peer STA's supported
rate set:
o Overwrite the basic rates of peer STA's supported rate set with
basic rates in ieee80211com.ic_sup_rates, which is set up properly
in ieee80211_sta_join() by ieee80211_copy_basicrates() (see [2]),
so TX rate control algorithm can act accordingly.
o If the current operation mode is IEEE80211_M_HOSTAP, use a counter
to bookkeep how many basic rates got overwritten during negotiation.
If at the end of the negotiation the counter is less than
ieee80211com.ic_nbasicrates (see [1] and [2]), then it means that
the peer STA does not support certain rates in our basic rate set.
This kind of STA should not be allowed to join the current BSS.
This prevention mechanism should be more straightforword than the
old one in ieee80211_recv_mgmt(), nuke the old prevention mechanism
after this change.
- In ieee80211_init_neighbor(), do full rate set negotiation, so nodes
created by ieee80211_add_neighbor() or ieee80211_fakeup_adhoc_node(),
will not contain rates that the wireless NIC does not support.
- In ieee80211_{beacon,probe_resp}_alloc(), use ieee80211com.ic_sup_rates
to setup supported rates and extended supported rates ie, instead of
using ieee80211com.ic_bss's ni_rates. So two 11g STAs in a 11g/11b
mixed IBSS can comunicate with each other using OFDM rates, given proper
protection, like RTS-CTS/CTS-to-self, is applied. [**]
- In ieee80211_send_mgmt(), use ieee80211com.ic_sup_rates to create
supported rates and extended supported rates ie of (re)association
response. So these ies are consistent with what's in beacon and probe
response. [**]
- In ieee80211_send_mgmt(), use ieee80211_probe_resp_alloc() to create
frame body of probe response.
- Add more XRATE debug messages.

#
# [*] Details:
# http://lists.freebsd.org/pipermail/freebsd-current/2006-October/066679.html
#
# [**] Basic rates in ieee80211com.ic_sup_rates are set beforehand (see [2])
#

show more ...


# 476d885d 15-Dec-2006 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Factor out ieee80211_print_rateset().
- Add a debug macro: IEEE80211_PRINT_NODERATES(). Replace two almost same
debug code segments with it.


# 3da93495 09-Dec-2006 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Factor out _ieee80211_probe_resp_alloc() from ieee80211_send_mgmt().
This function creates frame body of a Probe Response.
- Add ieee80211_probe_resp_alloc(), which utilizes
_ieee80211_probe_re

- Factor out _ieee80211_probe_resp_alloc() from ieee80211_send_mgmt().
This function creates frame body of a Probe Response.
- Add ieee80211_probe_resp_alloc(), which utilizes
_ieee80211_probe_resp_alloc() to create a complete Probe Response
management frame (i.e. has MAC header).

show more ...


# ab0665aa 26-Nov-2006 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Factor out front part of ieee80211_set_shortpreamble() into
ieee80211_update_shpreamble(). So that the former only turns
on/off short preamble and informs driver about the changes,
while the

- Factor out front part of ieee80211_set_shortpreamble() into
ieee80211_update_shpreamble(). So that the former only turns
on/off short preamble and informs driver about the changes,
while the latter makes the decision whether short preamble
should be turned on or off.
- Replace rest of the places where short preamble is turned on/off
manually with ieee80211_set_shortpreamble()
- For associated STAs, update short preamble state only when related
fields of ERP information or capability information in received
beacons are changed

show more ...


# da9c2b36 25-Nov-2006 Sepherosa Ziehau <sephe@dragonflybsd.org>

Correct short preamble support.

Problems:
- The assumption that "Short Preamble" field in "Capability information"
will not be changed, is not correct at least for a *BSD based HostAP
- "Barker Pr

Correct short preamble support.

Problems:
- The assumption that "Short Preamble" field in "Capability information"
will not be changed, is not correct at least for a *BSD based HostAP
- "Barker Preamble mode" in "EPR information" is ignored

Fixes:
- Add a new function ieee80211_set_shortpreamble() (named after its relative
ieee80211_set_shortslot()):
1) For 11a mode, always turn on short preamble, though it is not used under
11a mode
2) For 11g mode (ERP), turn on short preamble iff all of the following
conditions are met:
o "Short Preamble" field in "Capability information" is 1
o "Barker Preamble mode" in "ERP information" is 0 [*]
o ieee80211.ic_caps has IEEE80211_C_PREAMBLE set
3) For the reset of the mode (11b?), turn on short preamble iff all of the
following conditions are met:
o "Short Preamble" field in "Capability information" is 1
o ieee80211.ic_caps has IEEE80211_C_PREAMBLE set
- Add ieee80211com.ic_upadate_preamble. This field could be set by drivers
which want to be informed about the preamble changes

#
# [*]
# IEEE Std 802.11g-2003 subclause 7.3.2.13 page 10:
# ...
# ...
# ERP APs and ERP STAs shall use long preambles when transmitting Clause 15,
# Clause 18, and Clause 19 frames after transmission or reception of an ERP
# Information Element with a Barker_Preamble_Mode value of 1 in an MMPDU to
# or from the BSS that the ERP AP or ERP STA has joined or started, regardless
# of the value of the short preamble capability bit from the same received or
# transmitted MMPDU that contained the ERP Information Element ...
# ...
# ...
#

show more ...


# 841ab66c 18-May-2006 Sepherosa Ziehau <sephe@dragonflybsd.org>

Sync 802.11 support with FreeBSD6:
"it includes completed 802.11g, WPA, 802.11i, 802.1x, WME/WMM, AP-side
power-save, crypto plugin framework, authenticator plugin framework,
and access

Sync 802.11 support with FreeBSD6:
"it includes completed 802.11g, WPA, 802.11i, 802.1x, WME/WMM, AP-side
power-save, crypto plugin framework, authenticator plugin framework,
and access control plugin frameowrk."

Reoriganize the layout of netproto/802_11: put generic 802.11 layer, crypto
modules, authentication module and access control module into their own
directories. Header files are still in their original place.

Nuke all of the mutexing in generic 802.11, reorganize ieee80211_node table
scanning a little bit.

Rename FreeBSD's m_append() to ieee80211_mbuf_append(), rename FreeBSD's
m_unshare() to ieee80211_mbuf_clone() and put them into
netproto/802_11/wlan/ieee80211_dragonly.c
They are not generic enough for public using, at least for now.
Pointed-out-by: hsu

Expose ieee80211_add_{ssid, xrates, rates}() which are used by acx(4)

Keep using opencrypto's AES implmentation for 802.11 CCMP crypto module


Sync ifconfig(8)'s 802.11 support with FreeBSD6


Update acx(4) and ndis(4) for the new 802.11 support

Sync iwi(4), ipw(4), wi(4) and ray(4) with FreeBSD6

For iwi(4):
- Fix ieee80211_node leakage
- Use a bitmap instead of FreeBSD's "unit number alloctor" to allocate IBSS node


Add generic 802.11 layer and crypto modules into GENERIC and LINT,
authentication module and access module are only added to LINT

Unhook awi(4) from GENERIC and LINT temporarily, since as of this commit it
is broken :( It will be fixed sometime later.


Thank Sam Leffler and many other people for their work on 802.11 support.

Thank Andrew Atrens and Adrian Michael Nida for submitting the patch.

Thank all the people that helped testing 802.11 patches for this commit


Based-on-Patch-Submitted-by:
Andrew Atrens <atrens@nortelnetworks.com>
Adrian Michael Nida <nida@musc.edu>

Tested-by:
Thomas Schlesinger <schlesinger@netcologne.de>
Johannes Hofmann <Johannes.Hofmann@gmx.de>
Andrew Thompson <andrew@hijacked.us>
Erik Wikström <erik-wikstrom@telia.com>

show more ...


# f186073c 26-Jul-2004 Joerg Sonnenberger <joerg@dragonflybsd.org>

Import generic 802.11 layer.

Choose netproto/802_11 instead of net80211 as source location.

Use token API instead mutexing. The locking heavenly depends on atomic
Operations and needs additional wo

Import generic 802.11 layer.

Choose netproto/802_11 instead of net80211 as source location.

Use token API instead mutexing. The locking heavenly depends on atomic
Operations and needs additional work.

Use POSIX int types.

Add dev/wi/if_wavelan_ieee.h as netproto/802_11/if_wavelan_ieee.h, since
this is used by all wireless interfaces and beside the variable and constant
naming mostly wi(4) indepedent.

Obtained-from: FreeBSD

show more ...


# 47156d48 07-Sep-2010 Matthew Dillon <dillon@apollo.backplane.com>

wlan - Rip out all wlan locks part 2/2

* Add wlan_global_serializer and wlan_*() API calls.

* Use the calls at all border crossings.

* NOTE: callout_stop() may still have deadlock issues if it cat

wlan - Rip out all wlan locks part 2/2

* Add wlan_global_serializer and wlan_*() API calls.

* Use the calls at all border crossings.

* NOTE: callout_stop() may still have deadlock issues if it catches a
callout in-progress.

show more ...


# 34a60cf6 18-Feb-2010 Rui Paulo <rpaulo@FreeBSD.org>

Second pass at converting the net80211 to DragonFly.


12