linux/drivers/net/wireless
Johannes Berg 25d834e162 mac80211: fix virtual interfaces vs. injection
Currently, virtual interface pointers passed to drivers might be
from monitor interfaces and as such completely uninitialised
because we do not tell the driver about monitor interfaces when
those are created. Instead of passing them, we should therefore
indicate to the driver that there is no information; do that by
passing a NULL value and adjust drivers to cope with it.

As a result, some mac80211 API functions also need to cope with
a NULL vif pointer so drivers can still call them unconditionally.

Also, when injecting frames we really don't want to pass NULL all
the time, if we know we are the source address of a frame and have
a local interface for that address, we can to use that interface.
This also helps with processing the frame correctly for that
interface which will help the 802.11w implementation. It's not
entirely correct for VLANs or WDS interfaces because there the MAC
address isn't unique, but it's already a lot better than what we
do now.

Finally, when injecting without a matching local interface, don't
assign sequence numbers at all.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-09-15 16:48:25 -04:00
..
ath5k mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
ath9k mac80211: move txrate_idx into RC algorithms 2008-09-15 16:48:24 -04:00
b43 b43: fix QoS parameters initialization 2008-09-15 16:48:25 -04:00
b43legacy mac80211: share STA information with driver 2008-09-15 16:48:23 -04:00
hostap netdev: Handle ->addr_list_lock just like ->_xmit_lock for lockdep. 2008-07-22 14:16:42 -07:00
iwlwifi iwl3945: add MODULE_FIRMWARE for 3945 HW 2008-09-15 16:48:25 -04:00
libertas libertas: Reduce the WPA key installation time. 2008-09-15 16:48:25 -04:00
libertas_tf mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
p54 mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
prism54 wireless: replace __FUNCTION__ with __func__ 2008-08-22 16:29:56 -04:00
rt2x00 mac80211: fix virtual interfaces vs. injection 2008-09-15 16:48:25 -04:00
zd1211rw mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
Kconfig orinoco: Add MIC on TX and check on RX 2008-08-22 19:28:07 -04:00
Makefile orinoco: Move firmware download functionality into new module 2008-08-22 19:28:04 -04:00
adm8211.c mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
adm8211.h
airo.c wireless: replace __FUNCTION__ with __func__ 2008-08-22 16:29:56 -04:00
airo.h
airo_cs.c
airport.c orinoco: Invoke firmware download in main driver 2008-08-22 19:28:05 -04:00
arlan-main.c
arlan-proc.c
arlan.h
atmel.c atmel: try open system authentication too 2008-08-26 20:06:30 -04:00
atmel.h
atmel_cs.c
atmel_pci.c
hermes.c orinoco: Add function to execute Hermes initialisation commands synchronously 2008-08-22 19:28:04 -04:00
hermes.h orinoco: Add MIC on TX and check on RX 2008-08-22 19:28:07 -04:00
hermes_dld.c orinoco: Extend hermes_dld routines for Agere firmware 2008-08-22 19:28:05 -04:00
hermes_dld.h orinoco: Extend hermes_dld routines for Agere firmware 2008-08-22 19:28:05 -04:00
hermes_rid.h orinoco: Add WE-18 ioctls for WPA 2008-08-22 19:28:06 -04:00
i82586.h
i82593.h
ipw2100.c wireless: replace __FUNCTION__ with __func__ 2008-08-22 16:29:56 -04:00
ipw2100.h
ipw2200.c removed unused #include <version.h> 2008-08-18 11:05:15 -04:00
ipw2200.h wireless: replace __FUNCTION__ with __func__ 2008-08-22 16:29:56 -04:00
mac80211_hwsim.c mac80211: fix virtual interfaces vs. injection 2008-09-15 16:48:25 -04:00
netwave_cs.c
orinoco.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-09-08 16:59:05 -07:00
orinoco.h orinoco: Add MIC on TX and check on RX 2008-08-22 19:28:07 -04:00
orinoco_cs.c orinoco: Invoke firmware download in main driver 2008-08-22 19:28:05 -04:00
orinoco_nortel.c orinoco: Invoke firmware download in main driver 2008-08-22 19:28:05 -04:00
orinoco_pci.c orinoco: Invoke firmware download in main driver 2008-08-22 19:28:05 -04:00
orinoco_pci.h
orinoco_plx.c orinoco: Invoke firmware download in main driver 2008-08-22 19:28:05 -04:00
orinoco_tmd.c orinoco: Invoke firmware download in main driver 2008-08-22 19:28:05 -04:00
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2008-06-28 22:57:58 -07:00
rtl818x.h rtl818x: merge tx/rx descriptor flags 2008-08-22 16:29:48 -04:00
rtl8180.h rtl818x: merge tx/rx descriptor flags 2008-08-22 16:29:48 -04:00
rtl8180_dev.c mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
rtl8180_grf5101.c
rtl8180_grf5101.h
rtl8180_max2820.c
rtl8180_max2820.h
rtl8180_rtl8225.c
rtl8180_rtl8225.h
rtl8180_sa2400.c
rtl8180_sa2400.h
rtl8187.h rtl818x: merge tx/rx descriptor flags 2008-08-22 16:29:48 -04:00
rtl8187_dev.c mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
rtl8187_rtl8225.c rtl8187: use different ANAPARAM*_OFF values for 8187B 2008-07-14 14:52:56 -04:00
rtl8187_rtl8225.h rtl8187: use different ANAPARAM*_OFF values for 8187B 2008-07-14 14:52:56 -04:00
spectrum_cs.c orinoco: Invoke firmware download in main driver 2008-08-22 19:28:05 -04:00
strip.c Fix strip driver back up for ldisc/tty changes 2008-07-20 17:12:38 -07:00
wavelan.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
wavelan.h
wavelan.p.h
wavelan_cs.c [netdrvr] Drivers should not set IFF_* flag themselves 2008-08-07 02:23:19 -04:00
wavelan_cs.h
wavelan_cs.p.h
wl3501.h
wl3501_cs.c wireless: replace __FUNCTION__ with __func__ 2008-08-22 16:29:56 -04:00
zd1201.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-18 02:39:39 -07:00
zd1201.h