Re: [PATCH v2 1/2] wifi: cfg80211: report authorized connect and roam events
From: Jeff Johnson
Date: Wed Aug 05 2026 - 18:55:12 EST
On 8/5/2026 4:01 AM, Jason Huang wrote:
> From: Jason Huang <jason.huang2@xxxxxxxxxxxx>
>
> Drivers that offload the 802.1X/FT key exchange can know that
> the link is ready for data traffic when reporting a successful
> connect or roam event. Carry that state through cfg80211 and
> include NL80211_ATTR_PORT_AUTHORIZED in the corresponding nl80211
> notification when the driver provides it.
>
> This lets userspace avoid restarting authentication state machines
> after firmware has already completed the security exchange during
> offloaded roaming.
>
> Assisted-by: GitHub Copilot CLI:gpt-5.5
> Signed-off-by: Chung-Hsien Hsu <Chung-Hsien.Hsu@xxxxxxxxxxxx>
> Signed-off-by: Chi-hsien Lin <chi-hsien.lin@xxxxxxxxxxx>
Jason,
why are the above signing off the patch if you are the author?
> Signed-off-by: Jason Huang <jason.huang2@xxxxxxxxxxxx>
> ---
> include/net/cfg80211.h | 6 ++++++
> include/uapi/linux/nl80211.h | 4 +++-
> net/wireless/nl80211.c | 6 +++++-
> net/wireless/sme.c | 2 ++
> 4 files changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
> index 97c16d4ff127..7f576bb7325c 100644
> --- a/include/net/cfg80211.h
> +++ b/include/net/cfg80211.h
> @@ -9103,6 +9103,8 @@ struct cfg80211_fils_resp_params {
> * @assoc_encrypted: The driver should set this flag to indicate that the
> * (Re)Association Request/Response frames are transmitted encrypted over
> * the air.
> + * @authorized: Indicates whether the connection is ready to transport data
> + * packets.
> */
> struct cfg80211_connect_resp_params {
> int status;
> @@ -9113,6 +9115,7 @@ struct cfg80211_connect_resp_params {
> struct cfg80211_fils_resp_params fils;
> enum nl80211_timeout_reason timeout_reason;
> bool assoc_encrypted;
> + bool authorized;
>
> const u8 *ap_mld_addr;
> u16 valid_links;
> @@ -9281,6 +9284,8 @@ cfg80211_connect_timeout(struct net_device *dev, const u8 *bssid,
> * @links.bss: For MLO roaming, entry of new bss to which STA link got
> * roamed. For non-MLO roaming, links[0].bss points to entry of bss to
> * which STA got roamed (may be %NULL if %links.bssid is set)
> + * @authorized: Indicates whether the new connection is ready to transport data
> + * packets.
> */
> struct cfg80211_roam_info {
> const u8 *req_ie;
> @@ -9297,6 +9302,7 @@ struct cfg80211_roam_info {
> struct ieee80211_channel *channel;
> struct cfg80211_bss *bss;
> } links[IEEE80211_MLD_MAX_NUM_LINKS];
> + bool authorized;
> };
>
> /**
> diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
> index 020387d76412..66b4cfd8de86 100644
> --- a/include/uapi/linux/nl80211.h
> +++ b/include/uapi/linux/nl80211.h
> @@ -2705,7 +2705,9 @@ enum nl80211_commands {
> * in %NL80211_CMD_CONNECT to indicate that for 802.1X authentication it
> * wants to use the supported offload of the 4-way handshake.
> * @NL80211_ATTR_PMKR0_NAME: PMK-R0 Name for offloaded FT.
> - * @NL80211_ATTR_PORT_AUTHORIZED: (reserved)
> + * @NL80211_ATTR_PORT_AUTHORIZED: flag attribute used in %NL80211_CMD_CONNECT
> + * or %NL80211_CMD_ROAM notifications to indicate that 802.1X
> + * authentication was done by the driver or is not needed.
This attribute became deprecated when NL80211_CMD_PORT_AUTHORIZED was
introduced. Why are you not using that?
503c1fb98ba3 ("cfg80211/nl80211: add a port authorized event")