From nobody Sat Nov 23 15:53:58 2024 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7355E14E2DA; Tue, 19 Nov 2024 04:28:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731990512; cv=none; b=W57vrs64/lJ0WD1fyBi6G8d/A5wDtcZG5QK353pJG1FaaoGhnXYxaDddmo1GG+T9t0RJOGLw0e07S9sA66r0ZHAJLppAxv/AQNox1ECMgM4jEgOejGKp+9JvE+lOM+cHu2DA3x8QW1kogrMFNPqieyJ1XOx0PKrxiaJsQT+TV9c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731990512; c=relaxed/simple; bh=Ai/qJ8g97geA07BRCNdNxXm1EmJ92IRz6KQ7oTIR/rM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=gkLcNdkMDuEAOvYWoec7gxMz6z6KS4EENb7BP1VknPZUVKVlEm0AD9HIZMY/JH26zyCrIR5lCMDCKTfWNyvCchpK2Djbvo/Idxk7qcDoeHhxIccRToq624Mfv0aX5lldxwixUrrILph+z9FurwntgmoTpnWhIYX6Zcs196TTMoI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=GhNnRXyB; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="GhNnRXyB" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4AIGGmhl022573; Tue, 19 Nov 2024 04:28:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Q+bfNasZwELhw3Tjkohr6bQw1hP1ghrC6uyW6hVjp44=; b=GhNnRXyBWycHS2Up raXKl2ptdKKSWTVkN1LDNYsxrmSpGJqMyoSpaxb2fCEqBoTKJKpm2HN4aRGU63/+ jFqml6d1YXGMzDq3qaRpG3LfmdR6sVX9pH7uwCecGDZ4XKn/MnFy6FeGr390+S6v /103Z0A9d/9ditxKcyg6XzC2meLhV+AnOo2SsjSswd4i9ffp8MFdwyyKY59yVc89 afzvg2k7iGYfHk4FOhZHsRgWlQFVIrlhV5pCuUDrfdOSiAvuZ1s2epFQ72FMwEvz KqUZkJyKWfJO6bJHdXvqP1KkMghtd1pCoYjY+R+fFsm24Q1LbJAcxeCANzcbnUlZ g5cwAw== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4308y61c68-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Nov 2024 04:28:23 +0000 (GMT) Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA05.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 4AJ4SMkp001047 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Nov 2024 04:28:22 GMT Received: from hu-adisi-blr.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.1544.9; Mon, 18 Nov 2024 20:28:20 -0800 From: Aditya Kumar Singh Date: Tue, 19 Nov 2024 09:57:59 +0530 Subject: [PATCH 1/2] wifi: mac80211: add EHT 320 MHz support for mesh Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20241119-mesh_320mhz_support-v1-1-f9463338d584@quicinc.com> References: <20241119-mesh_320mhz_support-v1-0-f9463338d584@quicinc.com> In-Reply-To: <20241119-mesh_320mhz_support-v1-0-f9463338d584@quicinc.com> To: Johannes Berg , Kalle Valo CC: , , Sathishkumar Muruganandam , Aditya Kumar Singh X-Mailer: b4 0.14.2 X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: su3XLFhiPcEpgwDRbqvIrOtxnGc6qZkg X-Proofpoint-ORIG-GUID: su3XLFhiPcEpgwDRbqvIrOtxnGc6qZkg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 mlxscore=0 mlxlogscore=924 impostorscore=0 bulkscore=0 suspectscore=0 phishscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2409260000 definitions=main-2411190034 From: Sathishkumar Muruganandam Currently, ieee80211_ie_build_he_oper() lacks support for 320 MHz handling (already noted as a TODO). This is because 320 MHz is not included in IEEE 802.11-ax. However, IEEE 802.11-be introduces 320 MHz support and if the chandef indicates a 320 MHz bandwidth and is used directly as it is, it will result in an incorrect HE Operation Information Element. In order to support EHT 320 MHz, HE Operation Element should indicate bandwidth as 160 MHz only. In EHT Operation IE, the correct bandwidth will be present. Devices capable of EHT can parse EHT Information Element and connect in 320 MHz and other HE capable devices can parse HE and can connect in 160 MHz. Add support to downgrade the bandwidth in ieee80211_ie_build_he_oper() during 320 MHz operation and advertise it. Signed-off-by: Sathishkumar Muruganandam Signed-off-by: Aditya Kumar Singh --- net/mac80211/util.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/net/mac80211/util.c b/net/mac80211/util.c index a4e1301cc999d24d6ab1bd899742a2ff04229040..c88ce537aaa7ea5d59dc42e5f30= 805c6eb4a5c6d 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -2762,6 +2762,7 @@ u8 *ieee80211_ie_build_he_oper(u8 *pos, const struct = cfg80211_chan_def *chandef) { struct ieee80211_he_operation *he_oper; struct ieee80211_he_6ghz_oper *he_6ghz_op; + struct cfg80211_chan_def he_chandef; u32 he_oper_params; u8 ie_len =3D 1 + sizeof(struct ieee80211_he_operation); =20 @@ -2793,27 +2794,33 @@ u8 *ieee80211_ie_build_he_oper(u8 *pos, const struc= t cfg80211_chan_def *chandef) if (chandef->chan->band !=3D NL80211_BAND_6GHZ) goto out; =20 + cfg80211_chandef_create(&he_chandef, chandef->chan, NL80211_CHAN_NO_HT); + he_chandef.center_freq1 =3D chandef->center_freq1; + he_chandef.center_freq2 =3D chandef->center_freq2; + he_chandef.width =3D chandef->width; + /* TODO add VHT operational */ he_6ghz_op =3D (struct ieee80211_he_6ghz_oper *)pos; he_6ghz_op->minrate =3D 6; /* 6 Mbps */ he_6ghz_op->primary =3D - ieee80211_frequency_to_channel(chandef->chan->center_freq); + ieee80211_frequency_to_channel(he_chandef.chan->center_freq); he_6ghz_op->ccfs0 =3D - ieee80211_frequency_to_channel(chandef->center_freq1); - if (chandef->center_freq2) + ieee80211_frequency_to_channel(he_chandef.center_freq1); + if (he_chandef.center_freq2) he_6ghz_op->ccfs1 =3D - ieee80211_frequency_to_channel(chandef->center_freq2); + ieee80211_frequency_to_channel(he_chandef.center_freq2); else he_6ghz_op->ccfs1 =3D 0; =20 - switch (chandef->width) { + switch (he_chandef.width) { case NL80211_CHAN_WIDTH_320: - /* - * TODO: mesh operation is not defined over 6GHz 320 MHz - * channels. + /* Downgrade EHT 320 MHz BW to 160 MHz for HE and set new + * center_freq1 */ - WARN_ON(1); - break; + ieee80211_chandef_downgrade(&he_chandef, NULL); + he_6ghz_op->ccfs0 =3D + ieee80211_frequency_to_channel(he_chandef.center_freq1); + fallthrough; case NL80211_CHAN_WIDTH_160: /* Convert 160 MHz channel width to new style as interop * workaround. @@ -2821,7 +2828,7 @@ u8 *ieee80211_ie_build_he_oper(u8 *pos, const struct = cfg80211_chan_def *chandef) he_6ghz_op->control =3D IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_160MHZ; he_6ghz_op->ccfs1 =3D he_6ghz_op->ccfs0; - if (chandef->chan->center_freq < chandef->center_freq1) + if (he_chandef.chan->center_freq < he_chandef.center_freq1) he_6ghz_op->ccfs0 -=3D 8; else he_6ghz_op->ccfs0 +=3D 8; --=20 2.34.1 From nobody Sat Nov 23 15:53:58 2024 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92A991531E3; Tue, 19 Nov 2024 04:28:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731990514; cv=none; b=he3YvRnc+rduGSvWchN8wGo45vJmHYTJ9DoL5WpJj5Rwrc/TLaBhJfnHfSBFDgdSsVeoIcEMJE84fnZ/5lMhHgNH2MQxP/6O4785pV+/3aDF7RPMuwOlOIxZl7GbHCyBWZ7qCdFCwWB0tfYX6awM9LemB5/gAAbTvXNNCHrIHew= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731990514; c=relaxed/simple; bh=PVKmyw1pfkqmWRGrbj/gBaapGsdmj4pLdvWT/mjE8Iw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=fwPvdYDBJ/Hr6cvXhFQXUG5cTc5G3b44JbbrrkcuSv7DFOcsPwzFvgroNS58CaXYRFdD5jYmq6YJ2Q7QyLd141sS0kNVIaF2qz+1pTnRqiBYV7FAZFUaleGYwGWsDki0jwnxIY/zfaDCrEKlrJjkmqgqmbI1jBvDcjmWmNjCKIQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=YDKK7SA3; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="YDKK7SA3" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4AIGGc83028399; Tue, 19 Nov 2024 04:28:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= yvTvXDAmXT0/yN+YO9GRlMqfcas1ATeBqekaoQGm2X8=; b=YDKK7SA3WZBaHZeT c1e45FZooSKhx/nTt2jEfWz5larhmaO53Sog2bnZsTe0wl3azmWIiP+nOZngXbM6 EqPWcQiRDI5kvaN6UHqJQfV4szbUF58hBCHy8lzyOhlvzjTP7+76f/pPXtG+Z5i5 MGt7lTq8NlnmJqEPWEeIYSd8kmiEs0Wd7XVXZzbmEtIo2CrzFaDjFQ59b/HZdJFU J/9qmqhySIV4DF95AdNT6OpVT55lfhsXQgMzVGat1IUwHUp4t3TtnvzvcQ+YG4dz FzZT9+iuNe5s29YEBH3TeoSaVAF8voViIa3xSMgSJ4298pYVagYKCoAhcmLez7dH fHOgqw== Received: from nalasppmta02.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4308y5sd55-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Nov 2024 04:28:25 +0000 (GMT) Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA02.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 4AJ4SOAm028549 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Nov 2024 04:28:25 GMT Received: from hu-adisi-blr.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.1544.9; Mon, 18 Nov 2024 20:28:22 -0800 From: Aditya Kumar Singh Date: Tue, 19 Nov 2024 09:58:00 +0530 Subject: [PATCH 2/2] wifi: mac80211_hwsim: add 6 GHz EHT Mesh capabilities Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20241119-mesh_320mhz_support-v1-2-f9463338d584@quicinc.com> References: <20241119-mesh_320mhz_support-v1-0-f9463338d584@quicinc.com> In-Reply-To: <20241119-mesh_320mhz_support-v1-0-f9463338d584@quicinc.com> To: Johannes Berg , Kalle Valo CC: , , "Aditya Kumar Singh" X-Mailer: b4 0.14.2 X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: XJw8HiFzE1FRKYujE54mM4uZ6X_036QD X-Proofpoint-ORIG-GUID: XJw8HiFzE1FRKYujE54mM4uZ6X_036QD X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxscore=0 adultscore=0 clxscore=1015 spamscore=0 impostorscore=0 priorityscore=1501 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2409260000 definitions=main-2411190034 To facilitate testing of mesh EHT 320 MHz, add support for advertising this capability. Signed-off-by: Aditya Kumar Singh --- drivers/net/wireless/virtual/mac80211_hwsim.c | 39 +++++++++++++++++++++++= ++++ 1 file changed, 39 insertions(+) diff --git a/drivers/net/wireless/virtual/mac80211_hwsim.c b/drivers/net/wi= reless/virtual/mac80211_hwsim.c index 347a15544afedb238680068088487eefe24524c3..cf6a331d404271141f3e9a736fe= ba1ad8cfead5a 100644 --- a/drivers/net/wireless/virtual/mac80211_hwsim.c +++ b/drivers/net/wireless/virtual/mac80211_hwsim.c @@ -5048,6 +5048,45 @@ static const struct ieee80211_sband_iftype_data sban= d_capa_6ghz[] =3D { .tx_mcs_80p80 =3D cpu_to_le16(0xfffa), }, }, + .eht_cap =3D { + .has_eht =3D true, + .eht_cap_elem =3D { + .mac_cap_info[0] =3D IEEE80211_EHT_MAC_CAP0_OM_CONTROL | + IEEE80211_EHT_MAC_CAP0_TRIG_TXOP_SHARING_MODE1, + .phy_cap_info[0] =3D IEEE80211_EHT_PHY_CAP0_320MHZ_IN_6GHZ, + /* Leave all the other PHY capability bytes + * unset, as DCM, beam forming, RU and PPE + * threshold information are not supported + */ + }, + /* For all MCS and bandwidth, set 8 NSS for both Tx and + * Rx + */ + .eht_mcs_nss_supp =3D { + /* As B1 and B2 are set in the supported + * channel width set field in the HE PHY + * capabilities information field and 320MHz in + * 6GHz is supported include all the following + * MCS/NSS. + */ + .bw._80 =3D { + .rx_tx_mcs9_max_nss =3D 0x88, + .rx_tx_mcs11_max_nss =3D 0x88, + .rx_tx_mcs13_max_nss =3D 0x88, + }, + .bw._160 =3D { + .rx_tx_mcs9_max_nss =3D 0x88, + .rx_tx_mcs11_max_nss =3D 0x88, + .rx_tx_mcs13_max_nss =3D 0x88, + }, + .bw._320 =3D { + .rx_tx_mcs9_max_nss =3D 0x88, + .rx_tx_mcs11_max_nss =3D 0x88, + .rx_tx_mcs13_max_nss =3D 0x88, + }, + }, + /* PPE threshold information is not supported */ + }, }, #endif }; --=20 2.34.1