[PATCH wireless-next v4 2/2] wifi: mac80211_hwsim: Add UHR capabilities to the driver

Karthikeyan Kathirvel karthikeyan.kathirvel at oss.qualcomm.com
Tue Mar 3 03:41:10 PST 2026



On 2/24/2026 9:50 PM, Johannes Berg wrote:
> On Tue, 2026-02-17 at 11:17 +0530, Karthikeyan Kathirvel wrote:
>>
>> +		.uhr_cap = {
>> +			.has_uhr = true,
>> +			.mac = {
>> +				.mac_cap[0] =
>> +					IEEE80211_UHR_MAC_CAP0_DPS_SUPP |
>> +					IEEE80211_UHR_MAC_CAP0_DPS_ASSIST_SUPP |
> 
> I'm really not sure we should claim all of this, e.g. DPS assist, right
> now.
> 
> Also, I think you really mixed this up - a regular AP shouldn't claim
> DPS below (only mobile AP), but this here station should probably not
> normally claim DPS assist?
> 
> Just as examples! There are other issues like this such as:
> 
>> +					IEEE80211_UHR_MAC_CAP1_AP_PUO_SUPP |
> 
> I don't think the station should claim AP PUO support.
> 
> Certainly not an exhaustive list, ELR also seems wrong, etc.
> 
> johannes

Got it. It looks like this requires a deeper feature-level understanding 
or a review of the full spec document for each feature. Instead, I used 
AI to simplify this. Below, I’ve pasted the AI output, categorized by 
AP/non-AP STA and by bands. Is this approach fine? Shall I go ahead and 
make the changes based on this?

   ### UHR MAC capabilities

   |              Macro              |         Role tag      | Band tag |
   |---------------------------------|-----------------------|----------|
   | IEEE80211_UHR_MAC_CAP0_DPS_SUPP | Both (AP + non‑AP STA) | All |
   | IEEE80211_UHR_MAC_CAP0_DPS_ASSIST_SUPP | Both | All |
   | IEEE80211_UHR_MAC_CAP0_DPS_AP_STATIC_HCM_SUPP | Mobile AP only 
(reserved for non‑AP STA) | All |
   | IEEE80211_UHR_MAC_CAP0_NPCA_SUPP | Both | All |
   | IEEE80211_UHR_MAC_CAP0_ENH_BSR_SUPP | Both (requires +HTC-HE=1) | All |
   | IEEE80211_UHR_MAC_CAP0_ADD_MAP_TID_SUPP | Both (conditional; EHT 
SCS Traffic Description Support) | All |
   | IEEE80211_UHR_MAC_CAP0_EOTSP_SUPP | Both | All |
   | IEEE80211_UHR_MAC_CAP1_DSO_SUPP | Both | All |
   | IEEE80211_UHR_MAC_CAP1_PEDCA_SUPP | Both | All |
   | IEEE80211_UHR_MAC_CAP1_DBE_SUPP | Both | All |
   | IEEE80211_UHR_MAC_CAP1_UL_LLI_SUPP | Both | All |
   | IEEE80211_UHR_MAC_CAP1_P2P_LLI_SUPP | Both | All |
   | IEEE80211_UHR_MAC_CAP1_PUO_SUPP | Both (different meaning AP vs 
STA) | All |
   | IEEE80211_UHR_MAC_CAP1_AP_PUO_SUPP | Both (different meaning AP vs 
STA) | All |
   | IEEE80211_UHR_MAC_CAP1_DUO_SUPP | Both (different meaning AP vs 
STA) | All |
   | IEEE80211_UHR_MAC_CAP2_OMC_UL_MU_DIS_RX_SUPP | AP-only (reserved 
for non‑AP STA) | All |
   | IEEE80211_UHR_MAC_CAP2_AOM_SUPP | Both | All |
   | IEEE80211_UHR_MAC_CAP2_IFCS_LOC_SUPP | Both | All |
   | IEEE80211_UHR_MAC_CAP2_UHR_TRS_SUPP | non‑AP STA only (reserved for 
AP; requires +HTC-HE=1) | All |
   | IEEE80211_UHR_MAC_CAP2_TXSPG_SUPP | Both | All |
   | IEEE80211_UHR_MAC_CAP2_TXOP_RET_IN_TXSPG | Both | All |
   | IEEE80211_UHR_MAC_CAP2_UHR_OM_PU_TO_LOW | Both | All |
   | IEEE80211_UHR_MAC_CAP3_UHR_OM_PU_TO_HIGH | Both | All |
   | IEEE80211_UHR_MAC_CAP3_PARAM_UPD_ADV_NOTIF_INTV | AP-only (reserved 
for non‑AP STA) | All |
   | IEEE80211_UHR_MAC_CAP3_UPD_IND_TIM_INTV_LOW | AP-only (reserved for 
non‑AP STA) | All |
   | IEEE80211_UHR_MAC_CAP4_UPD_IND_TIM_INTV_HIGH | AP-only (reserved 
for non‑AP STA) | All |
   | IEEE80211_UHR_MAC_CAP4_BOUNDED_ESS | AP-only | All |
   | IEEE80211_UHR_MAC_CAP4_BTM_ASSURANCE | AP-only | All |
   | IEEE80211_UHR_MAC_CAP4_CO_BF_SUPP | Both | All |

   ### UHR PHY capabilities

   |              Macro              |         Role tag      | Band tag |
   |---------------------------------|-----------------------|----------|
   | IEEE80211_UHR_PHY_CAP_MAX_NSS_RX_SND_NDP_LE80 | Both | All (≤80) |
   | IEEE80211_UHR_PHY_CAP_MAX_NSS_RX_DL_MU_LE80 | non‑AP STA only 
(reserved for AP) | All (≤80) |
   | IEEE80211_UHR_PHY_CAP_MAX_NSS_RX_SND_NDP_160 | Both | 5/6 (160) |
   | IEEE80211_UHR_PHY_CAP_MAX_NSS_RX_DL_MU_160 | non‑AP STA only 
(reserved for AP) | 5/6 (160) |
   | IEEE80211_UHR_PHY_CAP_MAX_NSS_RX_SND_NDP_320 | Both | 6 (320) |
   | IEEE80211_UHR_PHY_CAP_MAX_NSS_RX_DL_MU_320 | non‑AP STA only 
(reserved for AP) | 6 (320) |
   | IEEE80211_UHR_PHY_CAP_ELR_RX | Both | All |
   | IEEE80211_UHR_PHY_CAP_ELR_TX | Both | All |


/KK



More information about the ath12k mailing list