From patchwork Tue Jul 5 22:03:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Muna Sinada X-Patchwork-Id: 587708 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE377C43334 for ; Tue, 5 Jul 2022 22:03:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231280AbiGEWDR (ORCPT ); Tue, 5 Jul 2022 18:03:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48734 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229973AbiGEWDQ (ORCPT ); Tue, 5 Jul 2022 18:03:16 -0400 Received: from alexa-out-sd-02.qualcomm.com (alexa-out-sd-02.qualcomm.com [199.106.114.39]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3B06A19286 for ; Tue, 5 Jul 2022 15:03:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1657058595; x=1688594595; h=from:to:cc:subject:date:message-id:mime-version; bh=+IhKpC2aYM8AXeVzSJaIMiJe17jT6ZmldsrR1GUt2Oc=; b=f8T9WDxPNZdOIFxE/tuxVlrc2Pe/FCK7eQbAoqPJzqp69my+M5a7B8ek T/AXhfcA9/V0doGc8fbSNneEDXvDpyZ2AojCHVbPVEKLS95tVC95PDl/b v9dt6P2E7mvDtmEsou3TCM1Eeml2s+luAnPUSg1yLek8F2m1bMbke9G0H w=; Received: from unknown (HELO ironmsg01-sd.qualcomm.com) ([10.53.140.141]) by alexa-out-sd-02.qualcomm.com with ESMTP; 05 Jul 2022 15:03:14 -0700 X-QCInternal: smtphost Received: from nasanex01c.na.qualcomm.com ([10.47.97.222]) by ironmsg01-sd.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jul 2022 15:03:14 -0700 Received: from nalasex01a.na.qualcomm.com (10.47.209.196) by nasanex01c.na.qualcomm.com (10.47.97.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Tue, 5 Jul 2022 15:03:14 -0700 Received: from msinada-linux.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Tue, 5 Jul 2022 15:03:13 -0700 From: Muna Sinada To: CC: , Muna Sinada Subject: [PATCH v2 1/2] mac80211: Add VHT MU-MIMO related flags in ieee80211_bss_conf Date: Tue, 5 Jul 2022 15:03:05 -0700 Message-ID: <1657058586-4621-1-git-send-email-quic_msinada@quicinc.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Adding flags for SU Beamformer, SU Beamformee, MU Beamformer and MU Beamformee for VHT. This is utilized to pass MU-MIMO configurations from user space to driver. Signed-off-by: Muna Sinada Reported-by: kernel test robot Reported-by: kernel test robot --- include/net/mac80211.h | 8 ++++++++ net/mac80211/cfg.c | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/include/net/mac80211.h b/include/net/mac80211.h index ebadb2103968..ef4133091d41 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -636,6 +636,10 @@ struct ieee80211_fils_discovery { * @tx_pwr_env_num: number of @tx_pwr_env. * @pwr_reduction: power constraint of BSS. * @eht_support: does this BSS support EHT + * @vht_su_beamformer: does this BSS support operation as an VHT SU beamformer + * @vht_su_beamformee: does this BSS support operation as an VHT SU beamformee + * @vht_mu_beamformer: does this BSS support operation as an VHT MU beamformer + * @vht_mu_beamformee: does this BSS support operation as an VHT MU beamformee */ struct ieee80211_bss_conf { const u8 *bssid; @@ -711,6 +715,10 @@ struct ieee80211_bss_conf { u8 tx_pwr_env_num; u8 pwr_reduction; bool eht_support; + bool vht_su_beamformer; + bool vht_su_beamformee; + bool vht_mu_beamformer; + bool vht_mu_beamformee; }; /** diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index f7896f257e1b..76418bb360fa 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -1164,6 +1164,21 @@ static int ieee80211_start_ap(struct wiphy *wiphy, struct net_device *dev, prev_beacon_int = sdata->vif.bss_conf.beacon_int; sdata->vif.bss_conf.beacon_int = params->beacon_interval; + if (params->vht_cap) { + sdata->vif.bss_conf.vht_su_beamformer = + !!(ap_vht_cap->vht_cap_info & + cpu_to_le32(IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE)); + sdata->vif.bss_conf.vht_su_beamformee = + !!(ap_vht_cap->vht_cap_info & + cpu_to_le32(IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE)); + sdata->vif.bss_conf.vht_mu_beamformer = + !!(ap_vht_cap->vht_cap_info & + cpu_to_le32(IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE)); + sdata->vif.bss_conf.vht_mu_beamformee = + !!(ap_vht_cap->vht_cap_info & + cpu_to_le32(IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE)); + } + if (params->he_cap && params->he_oper) { sdata->vif.bss_conf.he_support = true; sdata->vif.bss_conf.htc_trig_based_pkt_ext = From patchwork Tue Jul 5 22:03:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Muna Sinada X-Patchwork-Id: 588091 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CEA77C43334 for ; Tue, 5 Jul 2022 22:03:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231638AbiGEWDY (ORCPT ); Tue, 5 Jul 2022 18:03:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48928 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229973AbiGEWDX (ORCPT ); Tue, 5 Jul 2022 18:03:23 -0400 Received: from alexa-out-sd-01.qualcomm.com (alexa-out-sd-01.qualcomm.com [199.106.114.38]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A84F619286 for ; Tue, 5 Jul 2022 15:03:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1657058597; x=1688594597; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=ckN48TyX+UBV2midPfaY/01bSG1LflQnf5t3aaZCCZk=; b=dtTZXKBoxP0kx8IjwUtbcT/kH+B1CCKMFby8ndMngHsPiVSUBVOrgMFf 7T6xFwBXGW5xVkyJC6PyHZ9ASP1eNj8AFxluU3NU3RWlaEjlELrJ724J4 MdNgf8PH/xaj1NhqkU89TtlstPjLf52gn5nEJxKG8XbGLsrmCdcijM7xf c=; Received: from unknown (HELO ironmsg02-sd.qualcomm.com) ([10.53.140.142]) by alexa-out-sd-01.qualcomm.com with ESMTP; 05 Jul 2022 15:03:17 -0700 X-QCInternal: smtphost Received: from nasanex01c.na.qualcomm.com ([10.47.97.222]) by ironmsg02-sd.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jul 2022 15:03:17 -0700 Received: from nalasex01a.na.qualcomm.com (10.47.209.196) by nasanex01c.na.qualcomm.com (10.47.97.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Tue, 5 Jul 2022 15:03:16 -0700 Received: from msinada-linux.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Tue, 5 Jul 2022 15:03:16 -0700 From: Muna Sinada To: CC: , Muna Sinada Subject: [PATCH v2 2/2] mac80211: Add HE MU-MIMO related flags in ieee80211_bss_conf Date: Tue, 5 Jul 2022 15:03:06 -0700 Message-ID: <1657058586-4621-2-git-send-email-quic_msinada@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1657058586-4621-1-git-send-email-quic_msinada@quicinc.com> References: <1657058586-4621-1-git-send-email-quic_msinada@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Adding flags for SU Beamformer, SU Beamformee, MU Beamformer and Full Bandwidth UL MU-MIMO for HE. This is utilized to pass MU-MIMO configurations from user space to driver. Signed-off-by: Muna Sinada --- include/net/mac80211.h | 10 ++++++++++ net/mac80211/cfg.c | 15 +++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/include/net/mac80211.h b/include/net/mac80211.h index ef4133091d41..615fc64c8060 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -640,6 +640,12 @@ struct ieee80211_fils_discovery { * @vht_su_beamformee: does this BSS support operation as an VHT SU beamformee * @vht_mu_beamformer: does this BSS support operation as an VHT MU beamformer * @vht_mu_beamformee: does this BSS support operation as an VHT MU beamformee + * @he_su_beamformer: does this BSS support operation as an HE SU beamformer + * @he_su_beamformee: does this BSS support operation as an HE SU beamformee + * @he_mu_beamformer: does this BSS support operation as an HE MU beamformer + * @he_full_ul_mumimo: does this BSS support the reception (AP) or transmission + * (non-AP STA) of an HE TB PPDU on an RU that spans the entire PPDU + * bandwidth */ struct ieee80211_bss_conf { const u8 *bssid; @@ -719,6 +725,10 @@ struct ieee80211_bss_conf { bool vht_su_beamformee; bool vht_mu_beamformer; bool vht_mu_beamformee; + bool he_su_beamformer; + bool he_su_beamformee; + bool he_mu_beamformer; + bool he_full_ul_mumimo; }; /** diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 76418bb360fa..bb6faab4e94a 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -1193,6 +1193,21 @@ static int ieee80211_start_ap(struct wiphy *wiphy, struct net_device *dev, changed |= BSS_CHANGED_HE_BSS_COLOR; } + if (params->he_cap) { + sdata->vif.bss_conf.he_su_beamformer = + !!(params->he_cap->phy_cap_info[3] & + IEEE80211_HE_PHY_CAP3_SU_BEAMFORMER); + sdata->vif.bss_conf.he_su_beamformee = + !!(params->he_cap->phy_cap_info[4] & + IEEE80211_HE_PHY_CAP4_SU_BEAMFORMEE); + sdata->vif.bss_conf.he_mu_beamformer = + !!(params->he_cap->phy_cap_info[4] & + IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER); + sdata->vif.bss_conf.he_full_ul_mumimo = + !!(params->he_cap->phy_cap_info[2] & + IEEE80211_HE_PHY_CAP2_UL_MU_FULL_MU_MIMO); + } + if (sdata->vif.type == NL80211_IFTYPE_AP && params->mbssid_config.tx_wdev) { err = ieee80211_set_ap_mbssid_options(sdata,