Implement complex_vlan driver

Took me a second to figure out what `po` was supposed to mean -- I think longer variable names is justified here.