Commit bff93c89 authored by Veerendranath Jakkam's avatar Veerendranath Jakkam Committed by Johannes Berg
Browse files

wifi: cfg80211: skip indicating signal for per-STA profile BSSs



Currently signal of the BSS entry generated from the per-STA profile
indicated as zero, but userspace may consider it as high signal
strength since 0 dBm is a valid RSSI value.

To avoid this don't report the signal to userspace when the BSS entry
created from a per-STA profile.

Signed-off-by: default avatarVeerendranath Jakkam <quic_vjakkam@quicinc.com>
Link: https://patch.msgid.link/20240904030917.3602369-3-quic_vjakkam@quicinc.com


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 0fdcc994
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -197,6 +197,8 @@ struct cfg80211_internal_bss {
	 */
	u8 parent_bssid[ETH_ALEN] __aligned(2);

	enum bss_source_type bss_source;

	/* must be last because of priv member */
	struct cfg80211_bss pub;
};
+15 −11
Original line number Diff line number Diff line
@@ -10507,18 +10507,22 @@ static int nl80211_send_bss(struct sk_buff *msg, struct netlink_callback *cb,
				NL80211_BSS_CHAIN_SIGNAL))
		goto nla_put_failure;
	if (intbss->bss_source != BSS_SOURCE_STA_PROFILE) {
		switch (rdev->wiphy.signal_type) {
		case CFG80211_SIGNAL_TYPE_MBM:
		if (nla_put_u32(msg, NL80211_BSS_SIGNAL_MBM, res->signal))
			if (nla_put_u32(msg, NL80211_BSS_SIGNAL_MBM,
					res->signal))
				goto nla_put_failure;
			break;
		case CFG80211_SIGNAL_TYPE_UNSPEC:
		if (nla_put_u8(msg, NL80211_BSS_SIGNAL_UNSPEC, res->signal))
			if (nla_put_u8(msg, NL80211_BSS_SIGNAL_UNSPEC,
				       res->signal))
				goto nla_put_failure;
			break;
		default:
			break;
		}
	}
	switch (wdev->iftype) {
	case NL80211_IFTYPE_P2P_CLIENT:
+2 −0
Original line number Diff line number Diff line
@@ -1910,6 +1910,7 @@ cfg80211_update_known_bss(struct cfg80211_registered_device *rdev,
	known->pub.bssid_index = new->pub.bssid_index;
	known->pub.use_for &= new->pub.use_for;
	known->pub.cannot_use_reasons = new->pub.cannot_use_reasons;
	known->bss_source = new->bss_source;

	return true;
}
@@ -2264,6 +2265,7 @@ cfg80211_inform_single_bss_data(struct wiphy *wiphy,
	       IEEE80211_MAX_CHAINS);
	tmp.pub.use_for = data->use_for;
	tmp.pub.cannot_use_reasons = data->cannot_use_reasons;
	tmp.bss_source = data->bss_source;

	switch (data->bss_source) {
	case BSS_SOURCE_MBSSID: