Re: [PATCH v5 1/5] wifi: nl80211: add roam offload extended feature

Arend van Spriel <[email protected]>
Newsgroups dev.linux.lists.brcm80211,org.kernel.vger.linux-kernel,org.kernel.vger.linux-wireless
Message-ID <[email protected]>
On 21/08/2026 09:56, Jason Huang wrote:
> From: Carella Chen <[email protected]>
> 
> Drivers can offload FT or OKC roaming without necessarily
> advertising full 802.1X 4-way handshake offload. Add an extended
> feature bit for that capability and allow PMK configuration when it is
> present.
> 
> This gives userspace a way to provide PMK or PMK-R0 material needed
> by firmware roaming implementations while keeping the existing 4-way
> handshake offload capability unchanged.
> 
> Assisted-by: GitHub-Copilot-CLI:gpt-5.5
> Signed-off-by: Carella Chen <[email protected]>
> Signed-off-by: Jason Huang <[email protected]>
> ---
>   include/uapi/linux/nl80211.h | 4 ++++
>   net/wireless/nl80211.c       | 7 +++++--
>   2 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
> index 020387d76412..9f8d9e3d5990 100644
> --- a/include/uapi/linux/nl80211.h
> +++ b/include/uapi/linux/nl80211.h
> @@ -7110,6 +7110,9 @@ enum nl80211_feature_flags {
>    * @NL80211_EXT_FEATURE_PROBE_AP: Driver supports probing the associated AP
>    *	in STA mode using @NL80211_CMD_PROBE_PEER.
>    *
> + * @NL80211_EXT_FEATURE_ROAM_OFFLOAD: Driver supports Fast Transition or

Please call it NL80211_EXT_FEATURE_FAST_ROAM_OFFLOAD or simply 
_FAST_ROAMING if the name is getting too long. As long as it is
clear this is not for regular roaming scenario.

> + *	Opportunistic Key Caching roaming offload in station mode.
> + *
>    * @NUM_NL80211_EXT_FEATURES: number of extended features.
>    * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
>    */
> @@ -7192,6 +7195,7 @@ enum nl80211_ext_feature_index {
>   	NL80211_EXT_FEATURE_ROC_ADDR_FILTER,
>   	NL80211_EXT_FEATURE_SET_KEY_LTF_SEED,
>   	NL80211_EXT_FEATURE_PROBE_AP,
> +	NL80211_EXT_FEATURE_ROAM_OFFLOAD,
>   
>   	/* add new features before the definition below */
>   	NUM_NL80211_EXT_FEATURES,
> diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
> index 44f2bad08670..15731440c57a 100644
> --- a/net/wireless/nl80211.c
> +++ b/net/wireless/nl80211.c
> @@ -18434,6 +18434,7 @@ static int nl80211_set_multicast_to_unicast(struct sk_buff *skb,
>   static int nl80211_set_pmk(struct sk_buff *skb, struct genl_info *info)
>   {
>   	struct cfg80211_registered_device *rdev = info->user_ptr[0];
> +	struct wiphy *wiphy = &rdev->wiphy;
>   	struct net_device *dev = info->user_ptr[1];
>   	struct wireless_dev *wdev = dev->ieee80211_ptr;
>   	struct cfg80211_pmk_conf pmk_conf = {};
> @@ -18442,8 +18443,10 @@ static int nl80211_set_pmk(struct sk_buff *skb, struct genl_info *info)
>   	    wdev->iftype != NL80211_IFTYPE_P2P_CLIENT)
>   		return -EOPNOTSUPP;
>   
> -	if (!wiphy_ext_feature_isset(&rdev->wiphy,
> -				     NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X))
> +	if (!wiphy_ext_feature_isset(wiphy,
> +				     NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X) &&
> +	    !wiphy_ext_feature_isset(wiphy,
> +				     NL80211_EXT_FEATURE_ROAM_OFFLOAD))

Ah. _FAST_ROAM_OFFLOAD is not longer than the other ext_feature checked 
here.

>   		return -EOPNOTSUPP;
>   
>   	if (!info->attrs[NL80211_ATTR_MAC] || !info->attrs[NL80211_ATTR_PMK])
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.