linux/drivers/net
Vivien Didelot 5fe7f68016 net: dsa: mv88e6xxx: fix hardware bridging
Playing with the VLAN map of every port to implement "hardware bridging"
in the 88E6352 driver was a hack until full 802.1Q was supported.

Indeed with 802.1Q port mode "Disabled" or "Fallback", this feature is
used to restrict which output ports an input port can egress frames to.

A Linux bridge is an untagged VLAN. With full 802.1Q support, we don't
need this hack anymore and can use the "Secure" strict 802.1Q port mode.

With this mode, the port-based VLAN map still needs to be configured,
but all the logic is VTU-centric. This means that the switch only cares
about rules described in its hardware VLAN table, which is exactly what
Linux bridge expects and what we want.

Note also that the hardware bridging was broken with the previous
flexible "Fallback" 802.1Q port mode. Here's an example:

Port0 and Port1 belong to the same bridge. If Port0 sends crafted tagged
frames with VID 200 to Port1, Port1 receives it. Even if Port1 is in
hardware VLAN 200, but not Port0, Port1 will still receive it, because
Fallback mode doesn't care about invalid VID or non-member source port.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-10-13 04:26:31 -07:00
..
appletalk
arcnet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-09-26 16:08:27 -07:00
bonding bonding: use l4 hash if available 2015-09-17 21:01:05 -07:00
caif
can can: flexcan: enable interrupts atomically at the end of flexcan_chip_start() 2015-09-21 08:38:23 +02:00
cris
dsa net: dsa: mv88e6xxx: fix hardware bridging 2015-10-13 04:26:31 -07:00
ethernet qlcnic: constify qlcnic_mbx_ops structure 2015-10-13 04:18:44 -07:00
fddi
fjes fjes: fix off-by-one error at fjes_hw_update_zone_task() 2015-09-17 22:34:09 -07:00
hamradio
hippi
hyperv
ieee802154 mrf24j40: remove trailing semicolon 2015-09-24 20:39:37 +02:00
ipvlan ipv4, ipv6: Pass net into ip_local_out and ip6_local_out 2015-10-08 04:27:02 -07:00
irda net: irda: pxaficp_ir: dmaengine conversion 2015-09-28 22:32:48 -07:00
phy net: phy: bcm7xxx: Modified to use global core register defines 2015-10-08 04:45:53 -07:00
plip
ppp ipv4, ipv6: Pass net into ip_local_out and ip6_local_out 2015-10-08 04:27:02 -07:00
slip
team
usb asix: Continue processing URB if no RX netdev buffer 2015-10-05 06:58:43 -07:00
vmxnet3 Driver: Vmxnet3: Extend register dump support 2015-09-23 15:06:27 -07:00
wan
wimax
wireless Major changes: 2015-10-12 19:39:18 -07:00
xen-netback
dummy.c
eql.c
geneve.c geneve: use network byte order for destination port config parameter 2015-09-23 15:41:04 -07:00
ifb.c
Kconfig net: Add support for l3mdev ops to VRF driver 2015-09-29 20:40:33 -07:00
LICENSE.SRC
loopback.c
macvlan.c ipv4: Pass struct net into ip_defrag and ip_check_defrag 2015-10-12 19:44:16 -07:00
macvtap.c macvtap: fix TUNSETSNDBUF values > 64k 2015-09-20 22:44:39 -07:00
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c tun: use sk_fullsock() before reading sk->sk_tsflags 2015-10-12 19:45:48 -07:00
veth.c
virtio_net.c
vrf.c dst: Pass net into dst->output 2015-10-08 04:27:03 -07:00
vxlan.c vxlan: support both IPv4 and IPv6 sockets in a single vxlan device 2015-09-26 22:40:55 -07:00
xen-netfront.c xen-netfront: always set num queues if possible 2015-09-20 21:39:21 -07:00