]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: cfg80211: ignore link disabled flag from userspace
authorBenjamin Berg <benjamin.berg@intel.com>
Sun, 18 Jan 2026 07:51:15 +0000 (09:51 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 20 Jan 2026 09:02:01 +0000 (10:02 +0100)
When the AP has an advertised TID to Link Mapping (TTLM) it shall
include the element in the association response. As such, when this
element is present it needs to be used for the currently dormant links.
See Draft P802.11REVmf_D1.0 section 35.3.7.2.3 ("Negotiation of TTLM")
for the details. The flag is also not usable in case userspace wants to
specify a negotiated TTLM during association.

Note that for the link reconfiguration case, mac80211 did not use the
information. Draft P802.11REVmf_D1.0 states in section 35.3.6.4 ("Link
reconfiguration to the setup links) that we "shall operate with all the
TIDs mapped to the newly added links ..."

All this means that the flag is not needed. The implementation should
parse the information from the association response.

Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260118093904.754e057896a5.Ifd06f5ef839a93bfd54d0593dc932870f95f3242@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/cfg80211.h
include/uapi/linux/nl80211.h
net/wireless/nl80211.c

index 899f267b7cf914bb5d50aaa78197eacee99719b4..2900202588a547b2625091529215e65c1b9e6cfe 100644 (file)
@@ -3221,8 +3221,6 @@ struct cfg80211_auth_request {
  *     if this is %NULL for a link, that link is not requested
  * @elems: extra elements for the per-STA profile for this link
  * @elems_len: length of the elements
- * @disabled: If set this link should be included during association etc. but it
- *     should not be used until enabled by the AP MLD.
  * @error: per-link error code, must be <= 0. If there is an error, then the
  *     operation as a whole must fail.
  */
@@ -3230,7 +3228,6 @@ struct cfg80211_assoc_link {
        struct cfg80211_bss *bss;
        const u8 *elems;
        size_t elems_len;
-       bool disabled;
        int error;
 };
 
index 8134f10e4e6c02d48a9089d6c8c8be52f73881a5..8433bac481128bb47f81a164000a970d63d8abbf 100644 (file)
@@ -2880,8 +2880,9 @@ enum nl80211_commands {
  *     index. If the userspace includes more RNR elements than number of
  *     MBSSID elements then these will be added in every EMA beacon.
  *
- * @NL80211_ATTR_MLO_LINK_DISABLED: Flag attribute indicating that the link is
- *     disabled.
+ * @NL80211_ATTR_MLO_LINK_DISABLED: Unused. It was used to indicate that a link
+ *     is disabled during association. However, the AP will send the
+ *     information by including a TTLM in the association response.
  *
  * @NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA: Include BSS usage data, i.e.
  *     include BSSes that can only be used in restricted scenarios and/or
index c961cd42a8325b84e09879aad13a88d4cb07255d..03efd45c007fb3674348e360a05ebe7c682a2b9a 100644 (file)
@@ -12241,9 +12241,6 @@ static int nl80211_process_links(struct cfg80211_registered_device *rdev,
                                return -EINVAL;
                        }
                }
-
-               links[link_id].disabled =
-                       nla_get_flag(attrs[NL80211_ATTR_MLO_LINK_DISABLED]);
        }
 
        return 0;
@@ -12423,13 +12420,6 @@ static int nl80211_associate(struct sk_buff *skb, struct genl_info *info)
                        goto free;
                }
 
-               if (req.links[req.link_id].disabled) {
-                       GENL_SET_ERR_MSG(info,
-                                        "cannot have assoc link disabled");
-                       err = -EINVAL;
-                       goto free;
-               }
-
                if (info->attrs[NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS])
                        req.ext_mld_capa_ops =
                                nla_get_u16(info->attrs[NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS]);