History log of /dragonfly/sys/netproto/802_11/ieee80211_var.h (Results 1 – 25 of 39)
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
# 805c8e8e 20-Oct-2019 zrj <rimvydas.jasinskas@gmail.com>

kernel: Remove explicit dependencies on <sys/malloc.h> in headers.

All except <net/if_var.h> for now, it needs decoupling in drm first.
* Include <sys/malloc.h> in foo.c if they have kmalloc()/kfr

kernel: Remove explicit dependencies on <sys/malloc.h> in headers.

All except <net/if_var.h> for now, it needs decoupling in drm first.
* Include <sys/malloc.h> in foo.c if they have kmalloc()/kfree() calls.
* Consistently check if MALLOC_DECLARE was declared before.
* <sys/mountctl.h>: include <sys/thread.h> for _KERNEL_STRUCTURES too
since the "struct journal" embeds "struct thread".
* <sys/tty.h>: Only two kernel sources makes use of M_TTYS.
* <sys/socketvar2.h>: Make it kernel only header.

show more ...


Revision tags: 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
# 097e9486 31-Jan-2018 zrj <rimvydas.jasinskas@gmail.com>

kernel/wlan: Avoid empty macros.

Visible from VKERNEL64.


Revision tags: 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
# 84bcb7f7 07-Nov-2016 Imre Vadász <imre@vdsz.com>

wlan - Import initial full-offload scan support from FreeBSD.

This is a very simple addition to the net80211 scan support.

It doesn't implement a replacement scan interface - it just disables
the p

wlan - Import initial full-offload scan support from FreeBSD.

This is a very simple addition to the net80211 scan support.

It doesn't implement a replacement scan interface - it just disables
the pieces that we should disable to make this lifecycle a bit
more managable.

There's more work to come before full scan offload support is available
but it should be good enough for driver work.

* add a flag to say "full offload"
* don't do probe requests when scanning full-offload - firmware can do that
* don't do powersave transitions and buffering - firmware can do that
* don't abort a background scan upon reception of a single packet.
Full offload drivers don't need this behaviour - they do it in firmware.

Taken-From: FreeBSD (svn r307602, r308007 and r308008)

show more ...


Revision tags: 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
# f92fae3f 19-Feb-2015 Sascha Wildner <saw@online.de>

kernel/wlan: Fix up the MAC address printing and add back __printflike()s.

In the recent wlan, iwn and ath upgrades, porting this properly was hacked
around by removing the __printflike()s because D

kernel/wlan: Fix up the MAC address printing and add back __printflike()s.

In the recent wlan, iwn and ath upgrades, porting this properly was hacked
around by removing the __printflike()s because DragonFly has no support
for %D (neither in GCC nor in kprintf()). This is wrong because even
though it silences the warning, it will still not print MAC addresses
correctly. So bring all that back.

Also update the wlan's README.DRAGONFLY with some information about how
to port this properly.

show more ...


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
# f501b47d 02-Jan-2014 Matthew Dillon <dillon@apollo.backplane.com>

ieee80211 - Sync support for atheros

* Add some stuff from FreeBSD to support the atheros refresh.


Revision tags: v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3
# 18ef6e46 30-Jun-2013 Sascha Wildner <saw@online.de>

kernel/802.11: Use the proper enum for ic_vap_create()'s opmode parameter.


Revision tags: v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0, 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
# f39a365a 04-Mar-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Add capability flag to inform 802.11 generic layer that device will do auto
channel switching during scanning, so if beacon/prrob-resp's DS parameter
indicates different channel than ic_curchan, 802.

Add capability flag to inform 802.11 generic layer that device will do auto
channel switching during scanning, so if beacon/prrob-resp's DS parameter
indicates different channel than ic_curchan, 802.11 could adjust ic_curchan
according, instead of letting driver do the tedious and error prone beacon/
probe-resp parsing.

show more ...


# 47f525a7 24-Feb-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

constify channel parameter


# 4ac84526 22-Aug-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Add ic_headroom through which drivers can inform 802.11 layer to reserve
some space for device specific TX header when encapsulate 802.11 frames.
- Add another parameter to ieee80211_getmgtframe(

- Add ic_headroom through which drivers can inform 802.11 layer to reserve
some space for device specific TX header when encapsulate 802.11 frames.
- Add another parameter to ieee80211_getmgtframe(), so it knows how many
header space it should reserve.

Obtained-from: FreeBSD (sam@freebsd.org) w/ bug fix

show more ...


# 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 ...


# 0dba45fe 01-Apr-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Define 802.11 modulation types as 'enum ieee80211_modtype'.
- Expose ieee80211_rate2modtype() for pubic use.
- Add definition for DIFS, slot time and contention window.
- Add addition field in TX r

- Define 802.11 modulation types as 'enum ieee80211_modtype'.
- Expose ieee80211_rate2modtype() for pubic use.
- Add definition for DIFS, slot time and contention window.
- Add addition field in TX rate control state structure, so drivers can
give hints to TX rate control algorithms about their capabilities.
- Add Sample TX rate control support:
http://www.pdos.lcs.mit.edu/papers/jbicket-ms.pdf
It is factored out and adapted from the one in ath(4).
- In ieee80211_ratectl.h, expose only IEEE80211_RATECTL_{ONOE,AMRR,SAMPLE}
for user space program.
- Teach ifconfig(8) to show and set Sample TX rate control algorithm.
- Fix a node leakage on rt2560_tx_mgt() error handling path.
- Support Onoe and Sample TX rate control algorithm in 2560 part of
ral(4), and use Sample TX rate control algorithm as the default TX
rate control algorithm. [*]
- Make ral(4) depend on wlan_ratectl_{onoe,sample}.
- Hook Sample TX rate control algorithm into GENERIC and LINT.

# [*]
# If Sample TX rate control algorithm is used, I get almost 100~200%
# UDP_STREAM netperf TX performance boost than the original TX rate
# control algorithm in open/noisy enviroments, and +200~500Kbits/s
# UDP_STREAM netperf TX performance boost under good conditions.

show more ...


# 34b861de 05-Mar-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

Correct TU <-> millisecond and TU -> ticks convertion.


# 820cef05 04-Mar-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

Expose IEEE80211_MSG_ for user space programs.


# f467e28e 16-Feb-2007 Sepherosa Ziehau <sephe@dragonflybsd.org>

Add ieee80211_plcp2rate() to convert PLCP signal/rate to net80211 rate.
This function returns 0 if unrecognized PLCP signal/rate is passed.


# 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 ...


# a6ec04bc 22-Dec-2006 Sascha Wildner <swildner@dragonflybsd.org>

Rename printf -> kprintf in sys/ and add some defines where necessary
(files which are used in userland, too).


# 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.


# 21152d39 01-Dec-2006 Sepherosa Ziehau <sephe@dragonflybsd.org>

Add PBCC modulation support in netproto/802_11:
- Since ieee80211com.ic_caps is already crowded, add ieee80211com.ic_caps_ext
to extend it. Currently only IEEE80211_CEXT_PBCC, which should be set

Add PBCC modulation support in netproto/802_11:
- Since ieee80211com.ic_caps is already crowded, add ieee80211com.ic_caps_ext
to extend it. Currently only IEEE80211_CEXT_PBCC, which should be set by
the drivers capable of PBCC modulation, is defined for this field.
- Adapt SIOCG80211:IEEE80211_IOC_DRIVER_CAPS ioctl handling to expose the
content of ieee80211com.ic_caps_ext. Old semantic of this ioctl is not
changed, given ieee80211req is zeroed out before the ioctl call.
- Add debug information about peer node's rate set (after negociation)
- Set PBCC bit in Capability ie base on the value of
(ieee80211com.ic_caps_ext & IEEE80211_CEXT_PBCC). This is only done for 2GHz
channels.
- Teach ifconfig(8) to print ieee80211.ic_caps_ext upon "list caps" command.

show more ...


12