Commit e1c02eb1 authored by Sergey Matyukevich's avatar Sergey Matyukevich Committed by Kalle Valo

qtnfmac: implement dump_station support for STA mode

Current implementation of dump_station cfg80211 callback supports
AP mode only. Add support for STA mode as well: by default in STA
mode this callback is supposed to return AP on managed interface.
Signed-off-by: default avatarSergey Matyukevich <sergey.matyukevich.os@quantenna.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 8804ea9e
...@@ -480,19 +480,31 @@ qtnf_dump_station(struct wiphy *wiphy, struct net_device *dev, ...@@ -480,19 +480,31 @@ qtnf_dump_station(struct wiphy *wiphy, struct net_device *dev,
const struct qtnf_sta_node *sta_node; const struct qtnf_sta_node *sta_node;
int ret; int ret;
sta_node = qtnf_sta_list_lookup_index(&vif->sta_list, idx); switch (vif->wdev.iftype) {
case NL80211_IFTYPE_STATION:
if (idx != 0 || !vif->wdev.current_bss)
return -ENOENT;
if (unlikely(!sta_node)) ether_addr_copy(mac, vif->bssid);
return -ENOENT; break;
case NL80211_IFTYPE_AP:
sta_node = qtnf_sta_list_lookup_index(&vif->sta_list, idx);
if (unlikely(!sta_node))
return -ENOENT;
ether_addr_copy(mac, sta_node->mac_addr); ether_addr_copy(mac, sta_node->mac_addr);
break;
default:
return -ENOTSUPP;
}
ret = qtnf_cmd_get_sta_info(vif, sta_node->mac_addr, sinfo); ret = qtnf_cmd_get_sta_info(vif, mac, sinfo);
if (unlikely(ret == -ENOENT)) { if (vif->wdev.iftype == NL80211_IFTYPE_AP) {
qtnf_sta_list_del(vif, mac); if (ret == -ENOENT) {
cfg80211_del_sta(vif->netdev, mac, GFP_KERNEL); cfg80211_del_sta(vif->netdev, mac, GFP_KERNEL);
sinfo->filled = 0; sinfo->filled = 0;
}
} }
sinfo->generation = vif->generation; sinfo->generation = vif->generation;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment