I've tried searching for something similar to this but nothing came up, I _was_ running my WRT54GS v1 with this network config:
#### VLAN configuration
config switch eth0
option vlan1 "0 5"
option vlan2 "1t 2 3 4 5*"
option vlan4 "1t 5"
#### Loopback configuration
config interface loopback
option ifname "lo"
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0
#### LAN configuration
config interface lan
option type bridge
option ifname "eth0.2"
option proto static
option ipaddr 192.168.200.254
option netmask 255.255.255.0
option gateway 192.168.200.1
config interface public
option type bridge
option ifname "eth0.4"
and two SSIDs bound to the separate bridges. I haven't included /etc/config/wireless as they're not the problem. The issue is when I transfer any data from the Linux server plugged into port 1 (which has VLAN tagging enabled) to a computer plugged into port 4 (untagged) the speed is only about 3-5Mbps. Another Linux host connected to the server via crossover has no throughput issues (to confirm it was the router), and when I remove tagging from the WRT throughput jumps back up to near 80Mbps. What's strange though is top shows no load when in the tagged configuration.
Understanding how the network is implemented, is it possible I've reached the limit of what the ADM6996L is capable of handling? Considering the tagged frame has to go to the CPU and then return back to the switch untagged could there be a bottleneck? Is the BCM53xx switch any improvement over the ADM?