From nobody Thu Apr 14 18:01:24 2022 X-Original-To: dev-commits-src-branches@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 59EAE1B43FDE; Thu, 14 Apr 2022 18:01:25 +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 4KfS2F0q5hz3w7n; Thu, 14 Apr 2022 18:01:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1649959285; 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=x1k1z4AnSGIcF5XEzAjl2wIdqU3ir1myoIgftQPSzuw=; b=Oyr5w3XtB/E0PDQfp1CHrshxV90XhNMwtBip87JEXP94r2L24nCXX3T+BlDy/r8LV5JfUA uJSs2Y2KF/eu4R7spkHZRw6eK8yggGlTDI38NvlyISwulSvx6c0BPWu4nI8EQmZE6x2707 Z1FsHtZ6wDmwsmtUW+yDmOlGk8rUoxlLqloLDeqOUb5yhttxFK/ZTlt6G7+zDGqH0CQKll jGZkoc0QaXdFYnTbPu1uuv+iWur/kDssHNOojkWHY5uZd3NaD3lWE23HZLyPCBwb3WoDkx BXaRbD/T7FOFjLS1M2kBnWM2U9BR8AdQCMkh92p+kycQHMerbYvUDFhY4vYIKA== 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 C44C325264; Thu, 14 Apr 2022 18:01:24 +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 23EI1OQ6015948; Thu, 14 Apr 2022 18:01:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 23EI1Ov5015947; Thu, 14 Apr 2022 18:01:24 GMT (envelope-from git) Date: Thu, 14 Apr 2022 18:01:24 GMT Message-Id: <202204141801.23EI1Ov5015947@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: fcc5031c9c51 - stable/13 - LinuxKPI: 802.11: further fix RSSI calculations List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: fcc5031c9c5110a12d29e146613b237034329df7 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1649959285; 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=x1k1z4AnSGIcF5XEzAjl2wIdqU3ir1myoIgftQPSzuw=; b=w8hvSlADUVTVWHMm3U5G/p1tX2FwBKxe3WzFK0OdFl51E/b/PwoSXCjLrZrzeMmYdKBGji u6ZrqF3sqiPE/YDyQ22a4f5d5OgWLThbU1wKJ56HyRlExEJZRx/RSt+4YIktPJwkTIVAPu zUq9uJKOAMjRcC3YIZlmvzsqy3CccTKZB4RQBiiMWxVO80ZpURWfIcby5ix0er82Rb6ou5 j6YnnfecncY0ZsAYEkCliZEvmXyqz4erTzWyZBI6WQjLv97La/OVDqXxzEfFT29EqzEeL4 q5baeGl/uPjoAckzM6oBo13N0Q4jechtpHcAmHXMNMwraQuGHp7LeVO/NtNmkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1649959285; a=rsa-sha256; cv=none; b=L7y7W74sBshZSxevNMewrtkZ26QiTGHv1FnxdRAPFpsYVEFuCg0aqaga5H8JE+G0Bo3/U8 pEv1QLRzR4w8QxNvUjZimDhMoLnUjiSgnAuE3hsB7GovIXWUQqPQWE0GqDcC3wzsePffDW eeO895VdOjqNJGn2KVz4wueCYqyrOzw7MOCGPe1F/tzEZGh3RWQabppfah68S+MkHzsrsx JzsINPp7eriMwwhqnMc8w4thQs/o3NUcMOlXoFajHVbqBAJ/2izDZzF9OuZyMXTcD3ElgI T9aoJf1c+9PISvY4/nlKfNdoHO5ui5j0RdcXUZ15CDuZF5NiOOWYv9pQFLBwOg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=fcc5031c9c5110a12d29e146613b237034329df7 commit fcc5031c9c5110a12d29e146613b237034329df7 Author: Bjoern A. Zeeb AuthorDate: 2022-04-08 11:00:11 +0000 Commit: Bjoern A. Zeeb CommitDate: 2022-04-14 16:38:06 +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 (cherry picked from commit 170acccf1e191ae28571845ad6f0b5a2fbf0effc) --- 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; }