1
linux/net/mac80211
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
..
aes_ccm.c mac80211: aes_ccm.c remove crypto wrapper and extra args 2008-07-08 14:16:02 -04:00
aes_ccm.h mac80211: pass scratch buffer directly, remove additional pointers 2008-07-08 14:16:02 -04:00
cfg.c mac80211: share sta_info->ht_info 2008-09-15 16:48:24 -04:00
cfg.h [MAC80211]: rename ieee80211_cfg.h to cfg.h 2007-10-10 16:52:34 -07:00
debugfs_key.c mac80211: share STA information with driver 2008-09-15 16:48:23 -04:00
debugfs_key.h mac80211: fix key vs. sta locking problems 2008-04-08 16:44:45 -04:00
debugfs_netdev.c mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
debugfs_netdev.h mac80211: revamp virtual interface handling 2008-07-14 14:30:07 -04:00
debugfs_sta.c mac80211: share STA information with driver 2008-09-15 16:48:23 -04:00
debugfs_sta.h mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
debugfs.c mac80211: make bridge_packets a virtual interface option 2008-09-15 16:48:22 -04:00
debugfs.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
event.c replace net_device arguments with ieee80211_{local,sub_if_data} as appropriate 2008-08-22 16:29:58 -04:00
ht.c mac80211: share STA information with driver 2008-09-15 16:48:23 -04:00
ieee80211_i.h mac80211: move regular interface handling 2008-09-15 16:48:23 -04:00
iface.c mac80211: share STA information with driver 2008-09-15 16:48:23 -04:00
Kconfig mac80211: Reimplement WME using ->select_queue(). 2008-07-17 19:21:12 -07:00
key.c mac80211: share STA information with driver 2008-09-15 16:48:23 -04:00
key.h mac80211: Let drivers have access to TKIP key offets for TX and RX MIC 2008-06-27 09:09:17 -04:00
led.c mac80211: rename files 2008-04-08 16:44:45 -04:00
led.h mac80211: rename files 2008-04-08 16:44:45 -04:00
main.c mac80211: small rate control changes 2008-09-15 16:48:23 -04:00
Makefile mac80211: move spectrum management code out 2008-09-11 15:53:39 -04:00
mesh_hwmp.c mac80211: move txrate_idx into RC algorithms 2008-09-15 16:48:24 -04:00
mesh_pathtbl.c mac80211: split off mesh handling entirely 2008-09-15 16:48:20 -04:00
mesh_plink.c mac80211: share sta->supp_rates 2008-09-15 16:48:24 -04:00
mesh.c mac80211: clean up scan namespace 2008-09-15 16:48:22 -04:00
mesh.h mac80211: split off mesh handling entirely 2008-09-15 16:48:20 -04:00
michael.c mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
michael.h mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
mlme.c mac80211: share sta_info->ht_info 2008-09-15 16:48:24 -04:00
rate.c mac80211: use rate index in TX control 2008-05-21 21:48:09 -04:00
rate.h mac80211: share sta->supp_rates 2008-09-15 16:48:24 -04:00
rc80211_pid_algo.c mac80211: move txrate_idx into RC algorithms 2008-09-15 16:48:24 -04:00
rc80211_pid_debugfs.c mac80211: move TX info into skb->cb 2008-05-21 21:48:11 -04:00
rc80211_pid.h mac80211: move txrate_idx into RC algorithms 2008-09-15 16:48:24 -04:00
rx.c mac80211: share STA information with driver 2008-09-15 16:48:23 -04:00
scan.c mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
spectmgmt.c mac80211: move frame TX function 2008-09-11 15:53:39 -04:00
sta_info.c mac80211: share STA information with driver 2008-09-15 16:48:23 -04:00
sta_info.h mac80211: share sta_info->ht_info 2008-09-15 16:48:24 -04:00
tkip.c mac80211: share STA information with driver 2008-09-15 16:48:23 -04:00
tkip.h mac80211: tkip.c consolidate tkip IV writing in helper 2008-06-14 12:18:13 -04:00
tx.c mac80211: fix virtual interfaces vs. injection 2008-09-15 16:48:25 -04:00
util.c mac80211: fix virtual interfaces vs. injection 2008-09-15 16:48:25 -04:00
wep.c mac80211: use ieee80211 frame control directly 2008-08-22 16:29:54 -04:00
wep.h mac80211: a few code cleanups 2008-05-07 15:02:11 -04:00
wext.c mac80211: move txrate_idx into RC algorithms 2008-09-15 16:48:24 -04:00
wme.c mac80211: share STA information with driver 2008-09-15 16:48:23 -04:00
wme.h mac80211: clean up some comments 2008-09-15 16:48:22 -04:00
wpa.c mac80211: share STA information with driver 2008-09-15 16:48:23 -04:00
wpa.h mac80211: split ieee80211_txrx_data 2008-03-06 15:30:46 -05:00