openwrtv3/target/linux
Daniel Golle 51c094e703 kernel: enable CONFIG_BRIDGE_VLAN_FILTERING
This allows us to use the bridge as a managed switch and gracefully
handle mixed tagged and untagged frames. Prior to this, the only
alternative was creating one bridge per vlan which quickly becomes a
nightmare and still won't let you mix both tagged and untagged frames on
the physical port without some complex ebtables magic.

This is in line with the notion that OpenWRT is the network go-to swiss
army knife when you need a nice set-and-forget, low maintenance box to
handle a specific task.

Current builds of the ip-bridge package already fully support this
feature so the only requirement is enabling the kernel config.

This is disabled by default so existing bridge configurations will not
be affected.  This patch only gives the ability to turn it on with an
'ip link' command.  If there is interest, I could look into making the
feature accessible via uci configuration.

It causes about 3.1% hit on raw bridging speed, which is relatively
trivial considering that I had to use 300 byte packets to strain the CPU
enough to notice a slowdown at all.  The ER8 would chug along at wire
speed otherwise, and that's using only one core.  Since the typical
bridge use case on OpenWRT is wireless, I doubt it would be noticeable
at all.

With BRIDGE_VLAN_FILTERING

iperf -u -c 192.168.1.105 -b 1G -l 300
------------------------------------------------------------
Client connecting to 192.168.1.105, UDP port 5001
Sending 300 byte datagrams, IPG target: 2.24 us (kalman adjust)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.12 port 58045 connected with 192.168.1.105 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   977 MBytes   820 Mbits/sec
[  3] Sent 3414986 datagrams
[  3] Server Report:
[  3]  0.0-10.0 sec   811 MBytes   680 Mbits/sec   0.000 ms
581210/3414986 (0%)

Without BRIDGE_VLAN_FILTERING

iperf -u -c 192.168.1.105 -b 1G -l 300
------------------------------------------------------------
Client connecting to 192.168.1.105, UDP port 5001
Sending 300 byte datagrams, IPG target: 2.24 us (kalman adjust)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.12 port 36645 connected with 192.168.1.105 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   977 MBytes   820 Mbits/sec
[  3] Sent 3414990 datagrams
[  3] Server Report:
[  3]  0.0-10.0 sec   836 MBytes   701 Mbits/sec   0.000 ms
493950/3414990 (0%)

In terms of kernel size, it uses 16KB (6753K vs 6737K on ER8) so a
0.002% hit.  The exact 16KB is probably just due to how the kernel is
compressed.

Suggested-by: Jonathan Thibault <jonathan@navigue.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2018-11-25 15:24:49 +01:00
..
adm5120 kernel: bump 3.18 to 3.18.123 2018-09-26 15:54:18 +02:00
adm8668 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
apm821xx kernel: bump 4.14 to 4.14.78 2018-10-22 15:28:31 +02:00
ar7 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
ar71xx ar71xx: fix TP-Link Archer C7 v5 switch LEDs 2018-11-17 16:27:38 +01:00
arc770 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
archs38 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
armvirt kernel: bump 4.14 to 4.14.77 2018-10-19 10:01:57 +02:00
at91 kernel: enable memory compaction 2018-10-09 14:29:55 +02:00
ath25 kernel: bump 4.14 to 4.14.79 2018-11-05 16:00:00 +01:00
ath79 ath79: specify "firmware" partition format for Ubiquiti UniFi 2018-11-24 19:04:29 +01:00
au1000 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
bcm53xx bcm53xx: request Seama parser on DIR-885L directly 2018-11-22 10:13:56 +01:00
brcm47xx kernel: bump 4.14 to 4.14.81 2018-11-14 16:27:43 +01:00
brcm63xx kernel: bump 4.14 to 4.14.79 2018-11-05 16:00:00 +01:00
brcm2708 kernel: bump 4.9 to 4.9.137 2018-11-14 16:27:43 +01:00
cns3xxx kernel: bump 4.14 to 4.14.77 2018-10-19 10:01:57 +02:00
gemini gemini: Fix up image generation 2018-10-20 16:13:39 +02:00
generic kernel: enable CONFIG_BRIDGE_VLAN_FILTERING 2018-11-25 15:24:49 +01:00
imx6 imx6: fix DMA transaction errors 2018-11-06 11:49:27 +01:00
ipq40xx kernel: bump 4.14 to 4.14.79 2018-11-05 16:00:00 +01:00
ipq806x kernel: bump 4.14 to 4.14.81 2018-11-14 16:27:43 +01:00
ixp4xx treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
kirkwood treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
lantiq kernel: bump 4.14 to 4.14.82 2018-11-22 10:49:01 +01:00
layerscape kernel: bump 4.9 to 4.9.137 2018-11-14 16:27:43 +01:00
malta treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
mcs814x kernel: bump 3.18 to 3.18.119 2018-08-20 13:03:23 +02:00
mediatek kernel: bump 4.14 to 4.14.79 2018-11-05 16:00:00 +01:00
mpc85xx mpc85xx: workaround 4.14 cross compile issue 2018-10-20 16:24:29 +02:00
mvebu kernel: bump 4.14 to 4.14.81 2018-11-14 16:27:43 +01:00
mxs kernel: bump 4.14 to 4.14.75 2018-10-10 14:45:11 +02:00
octeon octeon: remove linux 4.9 support 2018-09-29 18:09:45 +02:00
octeontx kernel: enable memory compaction 2018-10-09 14:29:55 +02:00
omap kernel: bump 4.14 to 4.14.77 2018-10-19 10:01:57 +02:00
omap24xx omap24xx: remove referece to not existing kmod-usb-musb-tusb6010 2018-01-15 13:13:34 +01:00
orion treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
oxnas oxnas: remove superseded sysupgrade image check 2018-11-08 14:41:42 +01:00
pistachio kernel: bump 4.14 to 4.14.79 2018-11-05 16:00:00 +01:00
ppc40x kernel: only optimized for size if small_flash 2018-07-12 18:15:32 +02:00
ppc44x kernel: only optimized for size if small_flash 2018-07-12 18:15:32 +02:00
ramips ramips: use separated mtd patch reverting write_page() removal 2018-11-09 13:31:47 +01:00
rb532 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
samsung kernel: bump 4.14 to 4.14.77 2018-10-19 10:01:57 +02:00
sunxi kernel: bump 4.14 to 4.14.77 2018-10-19 10:01:57 +02:00
uml treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
x86 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
xburst kernel: bump 3.18 to 3.18.119 2018-08-20 13:03:23 +02:00
zynq kernel: bump 4.14 to 4.14.77 2018-10-19 10:01:57 +02:00
Makefile