From nobody Fri Apr 08 11:15:45 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 1D8C11A8A04A; Fri, 8 Apr 2022 11:15:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KZbJx3QTkz4sDR; Fri, 8 Apr 2022 11:15:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1649416545; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BtOUfYmJh9EX8yzv13uN692x+7UnJ1OM4uGh+VIZICk=; b=ie4BVN06uERkeb2pySaThQEWmqANmZLWlzXgmQD9i97EKYlRz25p2lu4TwJu+WQ+SJ4+tU riOrbpF0w8A2JVB98CVaVdM+WXa2KS02JklK9IvNbeimyJcohS6pqFvn0QwQWY08/jWlbw 0i+BDAaEgB6y/LGtsgWWOySGL3mLSiHxLBD8fipXHyK82+YHbFbIrb8/a143GvxC+Y4fJr t8RYzYQIofKodrLJhJLYKHF3gF7DsjNAIyDBlhl3621J+wNzH4qCxxuQ4UsHm5oZL8i6ur SfeNmiAn5a/7/bPXxSHX/OEStbmV0LqeKhTDtkYqHmdEM1ZaCL4jGz80Ys2Bhw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 20D66239EF; Fri, 8 Apr 2022 11:15:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 238BFj13091040; Fri, 8 Apr 2022 11:15:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 238BFjR8091039; Fri, 8 Apr 2022 11:15:45 GMT (envelope-from git) Date: Fri, 8 Apr 2022 11:15:45 GMT Message-Id: <202204081115.238BFjR8091039@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 170acccf1e19 - main - LinuxKPI: 802.11: further fix RSSI calculations List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 170acccf1e191ae28571845ad6f0b5a2fbf0effc Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1649416545; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BtOUfYmJh9EX8yzv13uN692x+7UnJ1OM4uGh+VIZICk=; b=XdqqFsZoCrwyr/OQUrH0wAfjMbAT64CDPRePDEot9MUtTWkDEHVD5TFr3jKyiozfLF4m4r hqGwFxTP2RDwneDs6XPfZoNKDDKwtPts3q8n5hmMRxJDKHbBzFnT3t5dKNm2/md6gjvEmu LdxrU0N0btERN3IRagkQ9VLri9J21CgRpbikPjbPNOBE7Q8ggFHCG3IKBY4gevAMh+d6QU X5ScruIY/lIG+eNsbGcKjGyd5GKpRvFVFXe02fuht6R1yI7c0fRzho6DcauvqmKimBhU9b Uk8DECF2PmFg5Aws8qWht5QLMuXKKodqsupRkbeOe2d6f5pydsWHQXVD+laONA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1649416545; a=rsa-sha256; cv=none; b=lzdGEWXkysDyRIXVW64mck3wajOxyDRlVspqkH6+znzKNSoSXaajfo3bFXruR9zH9mncnV 1xhYCcV3zrSylsjY/oCi9PK9FSXiO9CGBJKLYCOSKvn1xrVrJQx8dqF9Ciu7ine2t4J7cX pd9Lnw93bVIT/oEL4e67hPUo38GIsrmiTCuBaF89lQedQXk3fUl82COPmkb3FAcH+de1e9 CaP3v5y7YDFmVtpYRUInNLfnUn4IO9Cf9aMzV1zXLxjGxiLGvm11n6MxONu94oh/1sQ6fE jJtZwZC7rsiKKB+LMvP4RhhFVmfTBVJtUzP9mgiVSMwEV8qgRl5kt0S7NYRkNQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=170acccf1e191ae28571845ad6f0b5a2fbf0effc commit 170acccf1e191ae28571845ad6f0b5a2fbf0effc Author: Bjoern A. Zeeb AuthorDate: 2022-04-08 11:00:11 +0000 Commit: Bjoern A. Zeeb CommitDate: 2022-04-08 11:06:58 +0000 LinuxKPI: 802.11: further fix RSSI calculations 60970a328e280b25b05f1d9a9de1ef91af573c4a did one half of the job of making rssi relative to nf and numbers for radiotap were fine. net80211 internally works with .5 dBm units thus we need to apply a * 2 to the value we pass in to c_rssi; leave a comment explaining. Note: it is only ifconfig in user space which re-adjust it for printing or contrib/wpa for calculations. Other applications getting values from kernel also have to apply the maths. In collaboration with: J.R. Oldroyd (fbsd opal.com) Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/src/linux_80211.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 72bbb1ff1382..001040d025ed 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -3647,6 +3647,7 @@ linuxkpi_ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, struct ieee80211_hdr *hdr; struct lkpi_sta *lsta; int i, offset, ok; + int8_t rssi; bool is_beacon; if (skb->len < 2) { @@ -3729,10 +3730,15 @@ no_trace_beacons: rx_stats.c_nf = -96; if (ieee80211_hw_check(hw, SIGNAL_DBM) && !(rx_status->flag & RX_FLAG_NO_SIGNAL_VAL)) - rx_stats.c_rssi = rx_status->signal; + rssi = rx_status->signal; else - rx_stats.c_rssi = 0; - rx_stats.c_rssi -= rx_stats.c_nf; + rssi = rx_stats.c_nf; + /* + * net80211 signal strength data are in .5 dBm units relative to + * the current noise floor (see comment in ieee80211_node.h). + */ + rssi -= rx_stats.c_nf; + rx_stats.c_rssi = rssi * 2; rx_stats.r_flags |= IEEE80211_R_BAND; rx_stats.c_band = lkpi_nl80211_band_to_net80211_band(rx_status->band); @@ -3827,7 +3833,7 @@ skip_device_ts: rtap->wr_chan_freq = htole16(rx_stats.c_freq); if (ic->ic_curchan->ic_ieee == rx_stats.c_ieee) rtap->wr_chan_flags = htole16(ic->ic_curchan->ic_flags); - rtap->wr_dbm_antsignal = rx_stats.c_rssi; + rtap->wr_dbm_antsignal = rssi; rtap->wr_dbm_antnoise = rx_stats.c_nf; }