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?