Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp2085497rdb; Tue, 3 Oct 2023 09:43:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFiytjuKo/ePg7xK6JzDX4/TXYO+XIZtFMJYoVfAmjW33r9arjOk/ArvtlGhP5KC7rNl9R7 X-Received: by 2002:a17:902:7682:b0:1c7:249f:5e33 with SMTP id m2-20020a170902768200b001c7249f5e33mr109235pll.46.1696351437648; Tue, 03 Oct 2023 09:43:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696351437; cv=none; d=google.com; s=arc-20160816; b=QfkjsgjtRoAdIXuDxpGrnNSESSTPIU0KGRkqsAPPv0iQMjbYwGD/nAgWzU/iJsUNSI Z4XJLnOO14hRg2qmaWCceWRaejMyrTgNYSyLKoKuWAfVBWbv0UI7U9RwRFCJCWgr7eVF OGlA0l/C7zZ1tW9l/3ixeip0jCutsV1S+/xCz+6hSsADRO7apyvzEi6WHWwBULlxN6BW Exq5BbXW6u4DOKCKDkl3UQd4p7GOCPCesv8yGcDT95+6IvGgAD8KrjR9j31oR/lTlaxb nP7cNZ5dBDb0E7HLQgFJ5a82GrFcFkxbmSNpCCtzjY08OZSg+VOcLlG6bS2MOWluNSRb y3tQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature:dkim-filter; bh=iftoGrven3lOgTWTzz8jdw5iEWUblP3Q+T1JI5wIF1w=; fh=JBH4xoAqU+QnblKa21BUCNwDoqYIhtDQiRUeFKc8nFo=; b=uRL6sU2wRpHpWNrYUOj3XV8ZLzYXYTpZFtm+Lo4HvvEwcmMdEQPFHoP2HRtKCOsEj6 byiut3OZGNIDHQ7OcvFvL9sqTfB3xi4O++uaQzySoHTugy9tOekh9OrJiP0qJl3aT9W/ T3qQxhfx/4uCcMB9KQOKAzFSbyXVFo9JIOw3rvfAPb70CtOwqKjxGrKDXzkS5R/wF5kx UxRTqOT+ujMjCDwRDFJI2lR9J933GgubTePtxXFGvZaE1M/fdceqagOoNovQTT3WrsA4 N+9O5z00iE26jnuCvDGFxUfOxciWwjkkeGb7veh/ye1wsngzINSPMZJadsg9ea+GymBc PHNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@candelatech.com header.s=default header.b=WlsU7gK+; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=candelatech.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id u8-20020a1709026e0800b001bc836180dcsi1628709plk.520.2023.10.03.09.43.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Oct 2023 09:43:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@candelatech.com header.s=default header.b=WlsU7gK+; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=candelatech.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 5A36D8026A95; Tue, 3 Oct 2023 09:43:54 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231620AbjJCQnj (ORCPT + 53 others); Tue, 3 Oct 2023 12:43:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231255AbjJCQni (ORCPT ); Tue, 3 Oct 2023 12:43:38 -0400 Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 46869AD for ; Tue, 3 Oct 2023 09:43:35 -0700 (PDT) X-Virus-Scanned: Proofpoint Essentials engine Received: from mail3.candelatech.com (mail2.candelatech.com [208.74.158.173]) by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id 3D2C124006E for ; Tue, 3 Oct 2023 16:43:33 +0000 (UTC) Received: from ben-dt5.candelatech.com (50-251-239-81-static.hfc.comcastbusiness.net [50.251.239.81]) by mail3.candelatech.com (Postfix) with ESMTP id 4942313C2B0; Tue, 3 Oct 2023 09:43:30 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 mail3.candelatech.com 4942313C2B0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=candelatech.com; s=default; t=1696351410; bh=vuPA5a6wOTrUTTvTTy8RLTp91SZnRtyX/AcpY0CkBmE=; h=From:To:Cc:Subject:Date:From; b=WlsU7gK+cEpxThfFTeKfzYQHX7yc0G7iZUOWlrAWPHESj8yyLE3+2s3UFo0XUmmoE QAzopLQyO+qJP8VQR/x7hvtYzVCBkQhfRusp6MVGe6Sa/6at35ajkNh+AjLczV/OK5 pmQukeLvfTrGzEwOPXrN1e0Nz5Hugrjd4dVZrDW4= From: greearb@candelatech.com To: linux-wireless@vger.kernel.org Cc: Ben Greear Subject: [PATCH] mac80211: Allow STA to connect in AX mode to MLD AP. Date: Tue, 3 Oct 2023 09:43:26 -0700 Message-Id: <20231003164326.857433-1-greearb@candelatech.com> X-Mailer: git-send-email 2.40.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-MDID: 1696351413-X5T8D24_Ov8k X-MDID-O: us5;ut7;1696351413;X5T8D24_Ov8k;;f7146c1849a4b08a52804beb1c1cdf45 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Tue, 03 Oct 2023 09:43:54 -0700 (PDT) From: Ben Greear Check if user has configured STA to be AX mode, and if so, skip the check for MLD elements (as they would not be needed in AX mode). Signed-off-by: Ben Greear --- net/mac80211/mlme.c | 51 +++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index e7d42545851f..5fb0bdad88f4 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -5550,34 +5550,39 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata, } if (ieee80211_vif_is_mld(&sdata->vif)) { - if (!elems->ml_basic) { - sdata_info(sdata, - "MLO association with %pM but no multi-link element in response!\n", - assoc_data->ap_addr); - goto abandon_assoc; - } - - if (le16_get_bits(elems->ml_basic->control, - IEEE80211_ML_CONTROL_TYPE) != - IEEE80211_ML_CONTROL_TYPE_BASIC) { - sdata_info(sdata, - "bad multi-link element (control=0x%x)\n", - le16_to_cpu(elems->ml_basic->control)); - goto abandon_assoc; - } else { - struct ieee80211_mle_basic_common_info *common; - - common = (void *)elems->ml_basic->variable; + struct ieee80211_link_data *link; - if (memcmp(assoc_data->ap_addr, - common->mld_mac_addr, ETH_ALEN)) { + link = sdata_dereference(sdata->link[0], sdata); + if (!(link && (link->u.mgd.conn_flags & IEEE80211_CONN_DISABLE_EHT))) { + if (!elems->ml_basic) { sdata_info(sdata, - "AP MLD MAC address mismatch: got %pM expected %pM\n", - common->mld_mac_addr, + "MLO association with %pM but no multi-link element in response!\n", assoc_data->ap_addr); goto abandon_assoc; } - } + + if (le16_get_bits(elems->ml_basic->control, + IEEE80211_ML_CONTROL_TYPE) != + IEEE80211_ML_CONTROL_TYPE_BASIC) { + sdata_info(sdata, + "bad multi-link element (control=0x%x)\n", + le16_to_cpu(elems->ml_basic->control)); + goto abandon_assoc; + } else { + struct ieee80211_mle_basic_common_info *common; + + common = (void *)elems->ml_basic->variable; + + if (memcmp(assoc_data->ap_addr, + common->mld_mac_addr, ETH_ALEN)) { + sdata_info(sdata, + "AP MLD MAC address mismatch: got %pM expected %pM\n", + common->mld_mac_addr, + assoc_data->ap_addr); + goto abandon_assoc; + } + } + } /* if we are not configured to disable EHT */ } sdata->vif.cfg.aid = aid; -- 2.40.0