Skip to content

Commit

Permalink
nl80211: Include wiphy address setup in NEW_WIPHY
Browse files Browse the repository at this point in the history
Include wiphy address setup in wiphy dumps and new wiphy events.  The
wiphy permanent address is exposed as ATTR_MAC.  If addr_mask is setup,
then it is included as ATTR_MAC_MASK attribute.  If multiple addresses
are available, then their are exposed in a nested ATTR_MAC_ADDRS array.

This information is already exposed via sysfs, but it makes sense to
include it in the wiphy dump as well.

Signed-off-by: Denis Kenzior <denkenz@gmail.com>
Link: https://lore.kernel.org/r/20190722113312.14031-3-denkenz@gmail.com
[use just nla_nest_start(), this is new functionality]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  • Loading branch information
Denis Kenzior authored and Johannes Berg committed Jul 26, 2019
1 parent 7a11311 commit ae6fa4d
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions net/wireless/nl80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -2172,6 +2172,30 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev,
rdev->wiphy.vht_capa_mod_mask))
goto nla_put_failure;

if (nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN,
rdev->wiphy.perm_addr))
goto nla_put_failure;

if (!is_zero_ether_addr(rdev->wiphy.addr_mask) &&
nla_put(msg, NL80211_ATTR_MAC_MASK, ETH_ALEN,
rdev->wiphy.addr_mask))
goto nla_put_failure;

if (rdev->wiphy.n_addresses > 1) {
void *attr;

attr = nla_nest_start(msg, NL80211_ATTR_MAC_ADDRS);
if (!attr)
goto nla_put_failure;

for (i = 0; i < rdev->wiphy.n_addresses; i++)
if (nla_put(msg, i + 1, ETH_ALEN,
rdev->wiphy.addresses[i].addr))
goto nla_put_failure;

nla_nest_end(msg, attr);
}

state->split_start++;
break;
case 10:
Expand Down

0 comments on commit ae6fa4d

Please sign in to comment.