I fail to see how this is different than virtual bridges (ie: br<i>n</i> interfaces in linux). Such interfaces exist within the host OS in a virtualized environment, support 802.1q trunks, and exhibit quite a lot of flexibility. They're also fast (they're faster than I've ever had need for, though I don't know exact numbers offhand). Am I missing something, or hasn't this been done before?