- wpa_printf(MSG_DEBUG, "%s(iface=%s type=%d ifname=%s bss_ctx=%p)",
- __func__, iface, type, ifname, bss_ctx);
- if (type == WPA_IF_AP_BSS)
- return test_driver_bss_add(priv, ifname, addr, bss_ctx);
+ struct test_driver_bss *dbss = priv;
+ struct wpa_driver_test_data *drv = dbss->drv;
+
+ wpa_printf(MSG_DEBUG, "%s(type=%d ifname=%s bss_ctx=%p)",
+ __func__, type, ifname, bss_ctx);
+ if (addr)
+ os_memcpy(if_addr, addr, ETH_ALEN);
+ else {
+ drv->alloc_iface_idx++;
+ if_addr[0] = 0x02; /* locally administered */
+ sha1_prf(drv->own_addr, ETH_ALEN,
+ "hostapd test addr generation",
+ (const u8 *) &drv->alloc_iface_idx,
+ sizeof(drv->alloc_iface_idx),
+ if_addr + 1, ETH_ALEN - 1);
+ }
+ if (type == WPA_IF_AP_BSS || type == WPA_IF_P2P_GO ||
+ type == WPA_IF_P2P_CLIENT || type == WPA_IF_P2P_GROUP)
+ return test_driver_bss_add(priv, ifname, if_addr, bss_ctx,
+ drv_priv);