## Overview
D26436 introduced support for stacked vlans that changed the way we configure vlans.
In particular, this change broke setups that have same-number vlans as subinterfaces.
### Vlan details
There are 2 supported vlan naming format:
"vlanX" and "ifaceX.Y".
These can be configured in 3 different ways:
1. parameter-based creation (default, providing parent interface and vlan id as a separate options), works for both formats
2. name-based creation: works for ifaceX.Y
3. "base" creation: works for vlanX.
Current code relies on `ifc_alloc_unit` for clone interface indexing. This apporach somewhat works for a single namespace (e.g. "vlan"), but doesn't really work for other subinterfaces, as `ifc` assumes the same vlan namespace, resulting in EEXISTs.
## Changes
This review targets the following:
* It restores name-based creation (2) to allow older binaries create subinterfaces as before. It was removed in D26436.
* It reverts `ifc_name2unit()` changes from D26436 and stops using `ifc_name2unit()` for sub-interfaces
* It removes an ability to create unnamed vlans ("ifconfig vlan create") as it doesn't make a lot of sense.
* It stops using unit allocation code (`ifc_alloc_unit()`) and replaces the ids with vlan ids.