From: Roman Kiryanov <rkir@xxxxxxxxxx> By default mac80211_hwsim creates N radios with MAC addresses like '02:00:00:nn:nn:00' where nnnn is incremented. We (Android Studio Emulator) need a way to have unique MAC addresses. Currently in mac80211_hwsim this can be done by sending HWSIM_CMD_DEL_RADIO and HWSIM_CMD_NEW_RADIO commands. The 'mac_prefix' parameter provides an easier way to make MAC address unique by specifying two octets in MAC address, i.e. '02:pp:pp:nn:nn:00'. Signed-off-by: Roman Kiryanov <rkir@xxxxxxxxxx> --- drivers/net/wireless/mac80211_hwsim.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index 03738107fd10..1519435ecc76 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c @@ -62,6 +62,10 @@ static bool support_p2p_device = true; module_param(support_p2p_device, bool, 0444); MODULE_PARM_DESC(support_p2p_device, "Support P2P-Device interface type"); +static ushort mac_prefix; +module_param(mac_prefix, ushort, 0444); +MODULE_PARM_DESC(mac_prefix, "Second and third most significant octets in MAC"); + /** * enum hwsim_regtest - the type of regulatory tests we offer * @@ -2811,6 +2815,8 @@ static int mac80211_hwsim_new_radio(struct genl_info *info, if (!param->perm_addr) { eth_zero_addr(addr); addr[0] = 0x02; + addr[1] = (mac_prefix >> 8) & 0xFF; + addr[2] = mac_prefix & 0xFF; addr[3] = idx >> 8; addr[4] = idx; memcpy(data->addresses[0].addr, addr, ETH_ALEN); -- 2.25.0.265.gbab2e86ba0-goog