From nobody Wed Feb 26 02:12:00 2025 X-Original-To: dev-commits-src-all@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 4Z2dJd3G3qz5pQKd; Wed, 26 Feb 2025 02:12:01 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z2dJc5pnHz49GP; Wed, 26 Feb 2025 02:12:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740535920; 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=9ETYBgEgiGcOXOJK+ZgrazZG78U4RJvkejslkJ+PUIU=; b=dSWZo2tHadvYaGjq3Mn67CZ9eJs2vQYsH3UNxRN/Y7uIb3sHwGsvCWRj+l3xJXWTWEpVyn WHmDROShhyDkEDw7InLn6tD+Y5D3aEFc99mEhHRTqV5+QqvKKa3UMkJKIE2/Un5HlJyurP UHDz74MsqwMbFdS99IS8zGPCYkEH6Kh77SQjgd8q/v7BBPk88qkxBq6v+6B49wFS2mVnm/ xlEDbYlz1VvepF3m+zvsJB9UsAXY6+r1l099cEZFpWFJ4QbQmH5dxGVRh1kiaHMDIy+4sQ FkiPQo5z0alBJLEcLdZwl19M+VI3395C9Pp1/wYLPyTpqKAifwcbw9Ob3B6hXA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740535920; a=rsa-sha256; cv=none; b=pM/j3ylkHn7aVeOJnzdOhpurPbIn/iWujOd/dn+PZfGH/F7X7vQKZTFQWV9Z5DOAqJeanp aoW2or+F781X3RYUl/NhJhSuAWC9ifFTPeQvvAvBh8ZF2yL/2d40OLC36ugN+0EXDpd1tI XtqlZPKWN+YsHaO8Oy5FuKoDBNJSRVzKys1crLlBeV/EuDF8vfzSL3Gyazpdc2PHte626T FrxtiE6/P9IPXJBfe3EVkMYIvZlykwrqEDB3uUu0fuWA92dv5mX9PGL73oqV6hpTPlrIj+ O5K46I2I/VHWWgQc+BvmdBkIHnYHrDTWyYtXo/x6yTeAkiTzpPUHAuOCB/7pww== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740535920; 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=9ETYBgEgiGcOXOJK+ZgrazZG78U4RJvkejslkJ+PUIU=; b=VqAPPgt0klrjgDoWzLPfwpx7FTw222bbSjuJDOMVqjmVPrqoH74sapNggANiXNtdOpHQpe IgfBUKJjNswLZXzzGxqKiWoB3eJ1WkjjgiMqhQ+iuLM7K/LaA9xH7RjfSK1MwTSdQDceP4 yHZ9oZ1mPrKhTJga7RKdg2ZlNw60LfJzCSSTCHWewPH9683v3EQ/hi0gzzp5UhOysKFqvD MAaValS3RQbCtSHhd5ku+hLzFBzJ5ZCVrnUICRzPZ1eOqihK1MrxwUj7PfBlpDRJpbQ4XW QVE4lgjtoQRfJ4F3Lf3RqBaKtlGkGS6FVblLeOX7NeGNZp0UTvex80B76LJJEQ== 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 4Z2dJc5CYQzt4b; Wed, 26 Feb 2025 02:12:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 51Q2C0dT074062; Wed, 26 Feb 2025 02:12:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 51Q2C0ZB074059; Wed, 26 Feb 2025 02:12:00 GMT (envelope-from git) Date: Wed, 26 Feb 2025 02:12:00 GMT Message-Id: <202502260212.51Q2C0ZB074059@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: 3e022a91c91c - main - LinuxKPI: 802.11: ensure to select the correct channel width List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@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: 3e022a91c91cf1b967d7de7b6fe81c6632fe1207 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=3e022a91c91cf1b967d7de7b6fe81c6632fe1207 commit 3e022a91c91cf1b967d7de7b6fe81c6632fe1207 Author: Bjoern A. Zeeb AuthorDate: 2025-02-25 01:57:46 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-02-26 02:10:55 +0000 LinuxKPI: 802.11: ensure to select the correct channel width If HT is enabled but not using CHW=40 set CHW=20 to make sure we do not get stuck on any other value. If VHT and the VHT Operation element Channel Width field is 0 (use 20/40) do not update the bandwidth but stick with what HT selected. This is better than disabling VHT alltogether for 20/40 and allows us to work on VHT20 and VHT40 APs it seems. We will have to do more work to can align with the chanctx or deal with Operating Mode Notification Action frames in LinuxKPI or net80211. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/src/linux_80211.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 1c9f8bc63292..410ec0679d44 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -401,6 +401,8 @@ lkpi_sta_sync_ht_from_ni(struct ieee80211_sta *sta, struct ieee80211_node *ni) if ((sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) != 0) sta->deflink.bandwidth = IEEE80211_STA_RX_BW_40; + else + sta->deflink.bandwidth = IEEE80211_STA_RX_BW_20; /* * 802.11n-2009 20.6 Parameters for HT MCSs gives the mandatory/ @@ -450,6 +452,13 @@ lkpi_sta_sync_vht_from_ni(struct ieee80211_sta *sta, struct ieee80211_node *ni) sta->deflink.vht_cap.cap = ni->ni_vhtcap; sta->deflink.vht_cap.vht_mcs = ni->ni_vht_mcsinfo; + /* + * If VHT20/40 are selected do not update the bandwidth + * from HT but stya on VHT. + */ + if (ni->ni_vht_chanwidth == IEEE80211_VHT_CHANWIDTH_USE_HT) + goto skip_bw; + width = (sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK); switch (width) { #if 0 @@ -467,7 +476,7 @@ lkpi_sta_sync_vht_from_ni(struct ieee80211_sta *sta, struct ieee80211_node *ni) #endif sta->deflink.bandwidth = IEEE80211_STA_RX_BW_80; } - +skip_bw: rx_nss = 0; rx_mcs_map = sta->deflink.vht_cap.vht_mcs.rx_mcs_map;