One thing that looks wrong to me here (was already like that in the old code) is that we seem to kill vlan interfaces that have the same vlanid, even if they're on a different parent interface. I don't think we should be doing that, or is that intentional?