1
linux/drivers/net/wireless/rt2x00
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
..
Kconfig rt2x00: Make rt2x00 LEDS invisible config option 2008-09-11 15:53:38 -04:00
Makefile rt2x00: Implement HW encryption 2008-08-22 16:29:58 -04:00
rt2x00.h mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
rt2x00config.c mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
rt2x00crypto.c rt2x00: Implement HW encryption 2008-08-22 16:29:58 -04:00
rt2x00debug.c rt2x00: Implement HW encryption 2008-08-22 16:29:58 -04:00
rt2x00debug.h
rt2x00dev.c mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
rt2x00dump.h
rt2x00firmware.c rt2x00: Reset LED assoc status after firmware update 2008-07-14 14:53:00 -04:00
rt2x00leds.c
rt2x00leds.h
rt2x00lib.h mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
rt2x00mac.c mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
rt2x00pci.c
rt2x00pci.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-18 02:39:39 -07:00
rt2x00queue.c mac80211: fix virtual interfaces vs. injection 2008-09-15 16:48:25 -04:00
rt2x00queue.h rt2x00: Add Signal type flag 2008-08-29 16:24:12 -04:00
rt2x00reg.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-09-08 16:59:05 -07:00
rt2x00rfkill.c rt2x00: Make RFKILL enabled by default 2008-09-11 15:53:38 -04:00
rt2x00usb.c rt2x00: skb->data pointer should not include TX descriptor 2008-08-29 16:24:12 -04:00
rt2x00usb.h rt2x00: Fix compile warning 2008-08-02 01:31:09 -07:00
rt61pci.c rt2x00: Make rt2x00 LEDS invisible config option 2008-09-11 15:53:38 -04:00
rt61pci.h rt2x00: Gather channel information in structure 2008-08-22 16:29:58 -04:00
rt73usb.c rt2x00: Make rt2x00 LEDS invisible config option 2008-09-11 15:53:38 -04:00
rt73usb.h rt2x00: Gather channel information in structure 2008-08-22 16:29:58 -04:00
rt2400pci.c rt2x00: Make rt2x00 LEDS invisible config option 2008-09-11 15:53:38 -04:00
rt2400pci.h rt2x00: Gather channel information in structure 2008-08-22 16:29:58 -04:00
rt2500pci.c rt2x00: Make rt2x00 LEDS invisible config option 2008-09-11 15:53:38 -04:00
rt2500pci.h rt2x00: Gather channel information in structure 2008-08-22 16:29:58 -04:00
rt2500usb.c mac80211: use nl80211 interface types 2008-09-15 16:48:23 -04:00
rt2500usb.h rt2x00: Gather channel information in structure 2008-08-22 16:29:58 -04:00