From: Roman Kiryanov <[email protected]>
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 <[email protected]>
---
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
Hi Roman,
> 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'.
since we have an API for creating radios, wouldn’t it be better to add a kernel option to allow setting the default number of radios on module load to 0 and then let userspace create them on demand. I for example always set my testing kernel to load 0 radios.
Regards
Marcel