linux/net/bridge
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
..
netfilter netfilter: ebt_ulog: fix checkentry return value 2009-09-01 14:34:01 +02:00
br_device.c bridge: Allow enable/disable UFO on bridge device via ethtool 2009-10-07 22:00:24 -07:00
br_fdb.c bridge: Simplify interface for ATM LANE 2009-06-11 21:03:21 -07:00
br_forward.c net/bridge: Add 'hairpin' port forwarding mode 2009-08-13 16:26:11 -07:00
br_if.c cfg80211: disallow bridging managed/adhoc interfaces 2009-11-19 11:08:54 -05:00
br_input.c bridge: relay bridge multicast pkgs if !STP 2009-05-17 21:12:54 -07:00
br_ioctl.c bridge: remove dev_put() in add_del_if() 2009-11-05 22:34:16 -08:00
br_netfilter.c sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
br_netlink.c netlink: change nlmsg_notify() return value logic 2009-02-24 23:18:28 -08:00
br_notify.c netns bridge: allow bridges in netns! 2008-09-08 16:19:58 -07:00
br_private_stp.h net: remove CVS keywords 2008-06-11 21:00:38 -07:00
br_private.h netdev: convert pseudo-devices to netdev_tx_t 2009-09-01 01:13:07 -07:00
br_stp_bpdu.c netns bridge: allow bridges in netns! 2008-09-08 16:19:58 -07:00
br_stp_if.c bridge: make bridge address settings sticky 2008-06-17 16:10:06 -07:00
br_stp_timer.c net: remove CVS keywords 2008-06-11 21:00:38 -07:00
br_stp.c net: mark read-only arrays as const 2009-08-05 10:42:58 -07:00
br_sysfs_br.c net: Fix bridgeing sysfs handling of rtnl_lock 2009-05-18 22:15:59 -07:00
br_sysfs_if.c net/bridge: Add 'hairpin' port forwarding mode 2009-08-13 16:26:11 -07:00
br.c bridge: Use rcu_barrier() instead of syncronize_net() on unload. 2009-06-26 13:51:32 -07:00
Kconfig bridge: Use STP demux 2008-07-05 21:25:56 -07:00
Makefile