- else if (sw->type == VNET_SW_INTERFACE_TYPE_SUB ||
- sw->type == VNET_SW_INTERFACE_TYPE_PIPE ||
- sw->type == VNET_SW_INTERFACE_TYPE_P2P)
+
+ /* generate from ethernet MAC */
+ if (ip6_address_is_zero (&il->il_ll_addr) && NULL != eth)
+ ip6_link_local_address_from_mac (&il->il_ll_addr,
+ eth->address.mac.bytes);
+
+ /* choose a random address */
+ if (ip6_address_is_zero (&il->il_ll_addr))