Hi
At ChromeOS we are looking at utilizing MAC address randomization.
There are some ChromeOS use-cases where it can be useful. I checked
upstream kernel and Android source code to understand the current
state of this feature.
This feature is supported in Android and a few products use it already
for Preferred Network Offload scan. There is a HAL method that allows
to set MAC OUI [1] that makes 3 first octets predefined and the rest
of MAC address is randomized. Kernel passes this OUI value to firmware
where the randomization is implemented.
I checked current upstream kernel and did not find any API for
enabling/dealing with MAC address randomization. If a firmware devs
want to add the feature easily then there should be some standard API
for enabling/configuring MAC randomization.
In fact there is one mention of the feature in upstream source tree -
macaddr_* fields in "struct iwl_tof_range_req_cmd" of iwlwifi driver.
It allows to enable/disable randomization for 11MC measurement.
The MAC randomization could be used by other drivers for many
use-cases and I think it worth making it a part of standard cfg80211
API. Is it something maintainers are interested in? Does anybody work
on it already?
[1] https://android.googlesource.com/platform/hardware/libhardware_legacy/+/master/include/hardware_legacy/wifi_hal.h
Hi Anatol,
> This feature is supported in Android and a few products use it
> already for Preferred Network Offload scan. There is a HAL method
> that allows to set MAC OUI [1] that makes 3 first octets predefined
> and the rest of MAC address is randomized. Kernel passes this OUI
> value to firmware where the randomization is implemented.
>
> I checked current upstream kernel and did not find any API for
> enabling/dealing with MAC address randomization. If a firmware devs
> want to add the feature easily then there should be some standard API
> for enabling/configuring MAC randomization.
Well, we are treating it on a per-feature basis. The upstream kernel
does, in fact, and I believe we also submitted it into ChromeOS,
support randomized MAC addresses for scan and scheduled scan.
> In fact there is one mention of the feature in upstream source tree -
> macaddr_* fields in "struct iwl_tof_range_req_cmd" of iwlwifi driver.
> It allows to enable/disable randomization for 11MC measurement.
If you're talking about fine timing measurement, however, we haven't
yet submitted that API for that upstream. I sent you a draft of that
API and it does in fact contain MAC address randomization support from
the start :)
> The MAC randomization could be used by other drivers for many
> use-cases and I think it worth making it a part of standard cfg80211
> API. Is it something maintainers are interested in? Does anybody work
> on it already?
Yes and yes, obviously, but I think what I said at the beginning - that
it's per feature rather than global - is just not what you were looking
for or had expected?
I still think it makes sense btw, scan for example can be randomized in
software in certain cases, scheduled scan might not be able to, etc.
johannes