From patchwork Thu Jan 16 09:12:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ouden Lin X-Patchwork-Id: 1224090 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20170209 header.b=aosp+9G0; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=TskiY6FW; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47yz4g4WtMz9sPW for ; Thu, 16 Jan 2020 20:13:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From: MIME-Version:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=zDnP93nzrB3XWrA7nZHlsA0LftvoEgFBH+7ElpZuMxg=; b=aos p+9G07Rs68Zyxg5sVLelCqw7Eniq2LbMDXiDZSj3SA4rxvPoeDQxo4igC3eW/GhDGhj8oYnuReTWw VqpXmmf8uPjnja+0TGHIc+vx9S/2NolbI6MtuQPjHOAN7Kw6CKiw8Ua6+X07WkopTf+1beNa4djZa LszlFFA3xfw/+P/YVFi0TPYDfHfgKNvJgqvebPV6JNn0u6pzfdeo2na4C7LcyDU0xiEJkbZCR7m6W aiqRPAeFARsoOezzDf5gWkoVzyCwvDERt7UbtNnv3edKtgvAQrowZ5OfeHFIAyJe9/mZ5yO3cN2pN YT111DVHc87kEPsHHHIG1D3Cut1Mh5A==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1is1D2-0008S7-15; Thu, 16 Jan 2020 09:13:00 +0000 Received: from mail-lf1-x144.google.com ([2a00:1450:4864:20::144]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1is1Cp-0008RN-EE for hostap@lists.infradead.org; Thu, 16 Jan 2020 09:12:53 +0000 Received: by mail-lf1-x144.google.com with SMTP id l18so15003294lfc.1 for ; Thu, 16 Jan 2020 01:12:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=AzcYkku0Y70Q3td4GfvjLXSTd+yy/id1vyiVKH4ht3w=; b=TskiY6FWoNW/kqTE2d+qrsREVOI3DM/XiohilZtUK1llJRc/P1xRCFZBjt0DqEh26Z 3oWVLSZGcGgJEW53Sk0Esu8drY5N+RBBq+pGbQ3Pr4z6NilLyyS+bZkSAqC9H1f3vkzn hV2gSwizm4GkqnXV/hZmmpilgUSapWU0ULHHq/hAYTkBom1pWkfaXtbDw+k56Sac2DLz Z/O/6+bpRtKh7HPJ/xjBHVcSbiTwbu4GAN4tOM7185P2PaDPu5E5PveCt5l5DQJli9qQ rr0R7g90vZyeeqj1I3bqXbJz6DryNOro1CBT01x3lTe9n/xDzozgdSnhDZ9eKLr5RPjw EFyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=AzcYkku0Y70Q3td4GfvjLXSTd+yy/id1vyiVKH4ht3w=; b=Hq8f0ie2NJPc1vR1YEWtLzEEE9YxSeBWSL2UlVFrGShbZinKpjEHFJ9mc6uHH29md2 BBauAl94sCs+A5VXz3scaGtY+3J529o/4M+29xOofTeu0Vsv/CO3EaQACPbuOXvyDthW i/p+Jtq8AgvE5ntSnRAr3lYQKOEx+Ql3s8qnMYLOI+QvCM8zinOJhTbIblR47dZkNGUl qkG1RX29Hp7CdN/ACidYSd3pzlb1EwjaTRgzKpMxHil4u+sgsSqv1DEM5SzRWv6z4nJ2 fX35vjawBifBoMR9OucUPi49mnG3FKzKaVn752B6j5XBaFKb8yBezkqTc71/hGvTjoqS gSZQ== X-Gm-Message-State: APjAAAWKbQ98K28kHjAxcEt90ExIm8XRr89yL8GVWoic2ygA7I/pFQ4H zbaaSahhUeKLlJ94Syu2LPAfjunBhzVXuuMkrweneDl/ X-Google-Smtp-Source: APXvYqymyhSmp/OLGg21fC37PQEMlLhluOWPdW3Az1qbiVq1aYa5RIiiIMdhY58KlYaWZtIdocyxRpWijnUCs4AP5bo= X-Received: by 2002:ac2:5592:: with SMTP id v18mr1714298lfg.17.1579165963410; Thu, 16 Jan 2020 01:12:43 -0800 (PST) MIME-Version: 1.0 From: "Ouden.Biz Lin" Date: Thu, 16 Jan 2020 17:12:32 +0800 Message-ID: Subject: [PATCH] SAE: nl80211 send mlme frame fail (external auth) To: hostap@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200116_011247_503304_550B55A7 X-CRM114-Status: GOOD ( 11.55 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:144 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (ouden.biz[at]gmail.com) -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org When external authentication is used, the station send mlme frame (auth) to driver that can't get the frequency (bss->freq) after hostap.git commit b6f8b5a9 ("nl80211: Update freq only when CSA completes"). This patch will use the assoc_freq to send the mlem frame, when external authentication is used. Change-Id: Ic1629e2bba655645ada942d425f94dff7d90fbd7 Signed-off-by: Ouden Lin Signed-off-by: Ouden Lin --- src/drivers/driver_nl80211.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) wpa_printf(MSG_DEBUG, "nl80211: Use bss->freq=%d", @@ -3747,6 +3768,20 @@ static int wpa_driver_nl80211_send_mlme(struct i802_bss *bss, const u8 *data, encrypt = 0; } + if (freq == 0 && drv->nlmode == NL80211_IFTYPE_STATION && + ((drv->capa.flags & WPA_DRIVER_FLAGS_SAE) && + !(drv->capa.flags & WPA_DRIVER_FLAGS_SME)) && + WLAN_FC_GET_TYPE(fc) == WLAN_FC_TYPE_MGMT && + WLAN_FC_GET_STYPE(fc) == WLAN_FC_STYPE_AUTH) { + + if (freq == 0) { + freq = nl80211_get_assoc_freq(drv); + wpa_printf(MSG_DEBUG, + "nl80211: send_mlme - Use assoc_freq=%u for external auth", + freq); + } + } + if (freq == 0 && drv->nlmode == NL80211_IFTYPE_ADHOC) { freq = nl80211_get_assoc_freq(drv); wpa_printf(MSG_DEBUG, diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 64bea49e1..4741f23b8 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -3722,6 +3722,27 @@ static int wpa_driver_nl80211_send_mlme(struct i802_bss *bss, const u8 *data, goto send_frame_cmd; } + if ((is_sta_interface(drv->nlmode) || + drv->nlmode == NL80211_IFTYPE_P2P_DEVICE) && + WLAN_FC_GET_TYPE(fc) == WLAN_FC_TYPE_MGMT && + WLAN_FC_GET_STYPE(fc) == WLAN_FC_STYPE_PROBE_RESP) { + /* + * The use of last_mgmt_freq is a bit of a hack, + * but it works due to the single-threaded nature + * of wpa_supplicant. + */ + if (freq == 0) { + wpa_printf(MSG_DEBUG, "nl80211: Use last_mgmt_freq=%d", + drv->last_mgmt_freq); + freq = drv->last_mgmt_freq; + } + wait_time = 0; + use_cookie = 0; + no_cck = 1; + offchanok = 1; + goto send_frame_cmd; + } + if (drv->device_ap_sme && is_ap_interface(drv->nlmode)) { if (freq == 0) {