linux-kernelorg-stable/drivers
Hauke Mehrtens 8206e0ce96 net: dsa: lantiq: Add VLAN unaware bridge offloading
This allows to offload bridges with DSA to the switch hardware and do
the packet forwarding in hardware.

This implements generic functions to access the switch hardware tables,
which are used to control many features of the switch.

This patch activates the MAC learning by removing the MAC address table
lock, to prevent uncontrolled forwarding of packets between all the LAN
ports, they are added into individual bridge tables entries with
individual flow ids and the switch will do the MAC learning for each
port separately before they are added to a real bridge.

Each bridge consist of an entry in the active VLAN table and the VLAN
mapping table, table entries with the same index are matching. In the
VLAN unaware mode we configure everything with VLAN ID 0, but we use
different flow IDs, the switch should handle all VLANs as normal payload
and ignore them. When the hardware looks for the port of the destination
MAC address it only takes the entries which have the same flow ID of the
ingress packet.

The bridges are configured with 64 possible entries with these
information:
Table Index, 0...63
VLAN ID, 0...4095: VLAN ID 0 is untagged
flow ID, 0..63: Same flow IDs share entries in MAC learning table
port map, one bit for each port number
tagged port map, one bit for each port number

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-05-07 10:34:44 -07:00
..
accessibility
acpi Revert "ACPICA: Clear status of GPEs before enabling them" 2019-04-30 20:03:44 +02:00
amba
android
ata
atm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-04-25 23:52:29 -04:00
auxdisplay
base
bcma
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-05-02 22:14:21 -04:00
bluetooth Bluetooth: hci_qca: Rename STATE_<flags> to QCA_<flags> 2019-05-05 19:34:00 +02:00
bus
cdrom
char
clk
clocksource
connector
cpufreq
cpuidle
crypto
dax
dca
devfreq
dio
dma dmaengine: mediatek-cqdma: fix wrong register usage in mtk_cqdma_start 2019-04-26 17:26:38 +05:30
dma-buf
edac
eisa
extcon
firewire
firmware
fmc
fpga
fsi
gnss
gpio gpio: Fix gpiochip_add_data_with_key() error path 2019-04-25 09:12:00 +02:00
gpu drm/imx: fix DP CSC handling 2019-04-26 10:33:33 +10:00
hid
hsi
hv
hwmon
hwspinlock
hwtracing
i2c gcc-9: don't warn about uninitialized variable 2019-05-01 11:07:40 -07:00
i3c
ide
idle
iio
infiniband mlx5-updates-2019-04-30 2019-05-04 00:25:02 -04:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2019-04-27 16:27:02 -07:00
interconnect
iommu
ipack
irqchip
isdn isdn:mISDN: fix misuse of %x in hfcpci.c 2019-04-23 18:33:30 -07:00
leds
lightnvm
macintosh
mailbox
mcb
md
media
memory
memstick
message
mfd
misc
mmc
mtd mtd: rawnand: marvell: Clean the controller state before each operation 2019-04-25 23:21:51 +02:00
mux
net net: dsa: lantiq: Add VLAN unaware bridge offloading 2019-05-07 10:34:44 -07:00
nfc NFC: st95hf: remove set but not used variables 'dev, nfcddev' 2019-04-26 12:07:18 -04:00
ntb
nubus
nvdimm
nvme
nvmem
of of_net: add NVMEM support to of_get_mac_address 2019-05-05 21:47:07 -07:00
opp
oprofile
parisc
parport
pci PCI/LINK: Add Kconfig option (default off) 2019-05-02 08:34:32 -05:00
pcmcia
perf
phy
pinctrl
platform
pnp
power Power Supply Fixes for 5.1 cycle 2019-05-01 14:57:23 -07:00
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390 s390/qeth: trust non-IP cast type in qeth_l3_fill_header() 2019-04-26 11:14:06 -04:00
sbus
scsi
sfi
sh
siox
slimbus
sn
soc
soundwire
spi
spmi
ssb ssb: Fix possible NULL pointer dereference in ssb_host_pcmcia_exit 2019-04-25 19:39:34 +03:00
staging staging: octeon-ethernet: support of_get_mac_address new ERR_PTR error 2019-05-05 21:47:07 -07:00
target genetlink: optionally validate strictly/dumps 2019-04-27 17:07:22 -04:00
tc
tee
thermal
thunderbolt
tty
uio
usb USB: yurex: Fix protection fault after device removal 2019-04-25 11:11:41 +02:00
uwb
vfio
vhost
video
virt
virtio
visorbus
vlynq
vme
w1 USB: w1 ds2490: Fix bug caused by improper use of altsetting array 2019-04-25 11:11:41 +02:00
watchdog
xen
zorro
Kconfig
Makefile