Linux can do this, check out:
I am working on a redhat project that requires QoS over multiple VLAN's.
I was reading up on tc and imq devices when I came across this
information. Haven't tried this config, but it look like it should do
what you want.