linux/net
Johannes Berg ad4bb6f888 cfg80211: disallow bridging managed/adhoc interfaces
A number of people have tried to add a wireless interface
(in managed mode) to a bridge and then complained that it
doesn't work. It cannot work, however, because in 802.11
networks all packets need to be acknowledged and as such
need to be sent to the right address. Promiscuous doesn't
help here. The wireless address format used for these
links has only space for three addresses, the
 * transmitter, which must be equal to the sender (origin)
 * receiver (on the wireless medium), which is the AP in
   the case of managed mode
 * the recipient (destination), which is on the APs local
   network segment

In an IBSS, it is similar, but the receiver and recipient
must match and the third address is used as the BSSID.

To avoid such mistakes in the future, disallow adding a
wireless interface to a bridge.

Felix has recently added a four-address mode to the AP
and client side that can be used (after negotiating that
it is possible, which must happen out-of-band by setting
up both sides) for bridging, so allow that case.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Acked-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-11-19 11:08:54 -05:00
..
9p virtio: add virtio IDs file 2009-09-23 22:26:32 +09:30
802 net: remove COMPAT_NET_DEV_OPS 2009-05-25 01:53:53 -07:00
8021q netns: net_identifiers should be read_mostly 2009-11-18 05:03:25 -08:00
appletalk net/appletalk: using compat_ptr needs inclusion of linux/compat.h 2009-11-08 20:41:03 -08:00
atm net/atm: move all compat_ioctl handling to atm/ioctl.c 2009-11-11 19:22:23 -08:00
ax25 net: pass kern to net_proto_family create function 2009-11-05 22:18:14 -08:00
bluetooth Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-17 00:05:02 -08:00
bridge cfg80211: disallow bridging managed/adhoc interfaces 2009-11-19 11:08:54 -05:00
can CAN: use dev_get_by_index_rcu 2009-11-10 22:27:13 -08:00
core net: device name allocation cleanups 2009-11-18 05:03:35 -08:00
dcb net: fix double skb free in dcbnl 2009-09-26 20:16:15 -07:00
dccp net: drop capability from protocol definitions 2009-11-05 21:40:17 -08:00
decnet decnet: convert dndev_lock to spinlock 2009-11-11 19:22:18 -08:00
dsa netdev: convert pseudo-devices to netdev_tx_t 2009-09-01 01:13:07 -07:00
econet net: pass kern to net_proto_family create function 2009-11-05 22:18:14 -08:00
ethernet remove deprecated and not used: print_mac() 2009-11-15 22:21:34 -08:00
ieee802154 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan 2009-11-14 20:24:30 -08:00
ipv4 netns: net_identifiers should be read_mostly 2009-11-18 05:03:25 -08:00
ipv6 netns: net_identifiers should be read_mostly 2009-11-18 05:03:25 -08:00
ipx net/ipx: push down BKL into a ipx_dgram_ops 2009-11-07 00:46:39 -08:00
irda net/irda: push BKL into proto_ops 2009-11-07 00:46:39 -08:00
iucv iucv: add work_queue cleanup for suspend 2009-11-13 20:46:58 -08:00
key netns: net_identifiers should be read_mostly 2009-11-18 05:03:25 -08:00
lapb net: remove NET_RX_BAD and NET_RX_CN* defines 2009-07-05 19:15:35 -07:00
llc net: pass kern to net_proto_family create function 2009-11-05 22:18:14 -08:00
mac80211 cfg80211: introduce capability for 4addr mode 2009-11-19 11:08:53 -05:00
netfilter netns: net_identifiers should be read_mostly 2009-11-18 05:03:25 -08:00
netlabel netlabel: remove dev_put() calls 2009-11-05 22:34:18 -08:00
netlink netlink: remove subscriptions check on notifier 2009-11-17 04:08:49 -08:00
netrom net: pass kern to net_proto_family create function 2009-11-05 22:18:14 -08:00
packet net: netlink_getname, packet_getname -- use DECLARE_SOCKADDR guard 2009-11-10 20:54:41 -08:00
phonet Phonet: convert devices list to RCU 2009-11-18 10:08:26 -08:00
rds net: pass kern to net_proto_family create function 2009-11-05 22:18:14 -08:00
rfkill rfkill: Add constant for RFKILL_TYPE_FM radio devices 2009-11-18 17:09:26 -05:00
rose Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-06 00:55:55 -08:00
rxrpc net: pass kern to net_proto_family create function 2009-11-05 22:18:14 -08:00
sched act_mirred: optimization. 2009-11-17 04:15:38 -08:00
sctp Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-17 00:05:02 -08:00
sunrpc Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-06 00:55:55 -08:00
tipc net: pass kern to net_proto_family create function 2009-11-05 22:18:14 -08:00
unix net: netlink_getname, packet_getname -- use DECLARE_SOCKADDR guard 2009-11-10 20:54:41 -08:00
wanrouter headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
wimax wimax: allow WIMAX_RF_QUERY calls when state is still uninitialized 2009-10-19 15:56:14 +09:00
wireless cfg80211: disallow bridging managed/adhoc interfaces 2009-11-19 11:08:54 -05:00
x25 net/x25: push BKL usage into x25_proto 2009-11-07 00:46:40 -08:00
xfrm xfrm: SAD entries do not expire correctly after suspend-resume 2009-11-08 20:58:41 -08:00
compat.c net: Cleanup redundant tests on unsigned 2009-10-29 01:39:54 -07:00
Kconfig net/compat/wext: send different messages to compat tasks 2009-07-15 08:53:39 -07:00
Makefile net: remove redundant sched/ in net/Makefile 2009-07-12 20:11:14 -07:00
nonet.c
socket.c net/atm: move all compat_ioctl handling to atm/ioctl.c 2009-11-11 19:22:23 -08:00
sysctl_net.c net: sysctl_net - use net_eq to compare nets 2009-03-16 16:23:30 +01:00
TUNABLE