From patchwork Mon Dec 3 17:06:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Otcheretianski X-Patchwork-Id: 1006896 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) 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=intel.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="VoKLDYiW"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 437lmX0PzHz9sBh for ; Tue, 4 Dec 2018 00:13:16 +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:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=i+OHirG3ir4I1bXPvjIIyiCvsifagZ/S5bosVbWVmB8=; b=VoKLDYiWGyAMJq Srsu7ytk+FxiNBc5GbIezJHi7ByNXxt+w6gN+Up80ptQjBr8qlMUFRmoPZ6CTPiaglt2ffsJLAqKW /SeYVaJWfq32dJRIubVvnHbvp4w+Q6v5oKglp3t6wrqnAZPPs5ebUFG9RhQFAmMojkDRAPywW5gI1 UA8AnZxhnT1LV0Nwu45k6U50uOd5VFZLm/IcnOYDFj8kSOyih91iCIYdKKjMXQX1eugHwII/WVw1F kH16Ftua7cGkIX/ejNyWl3mxUNM2YbDwiOgFwN4TD76oBSxmJDriciqRgIjdWe6spCQU4iSCMFQEt xX4ubY0bjAjFRDn2IyEw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gTo24-0005US-NT; Mon, 03 Dec 2018 13:13:04 +0000 Received: from mga11.intel.com ([192.55.52.93]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gTo1h-00054r-WB for hostap@lists.infradead.org; Mon, 03 Dec 2018 13:12:43 +0000 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Dec 2018 05:12:39 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,310,1539673200"; d="scan'208";a="115508213" Received: from andrei-xps-12-9q33.jer.intel.com ([10.12.190.117]) by orsmga001.jf.intel.com with ESMTP; 03 Dec 2018 05:12:37 -0800 From: Andrei Otcheretianski To: hostap@lists.infradead.org Subject: [PATCH 3/3] driver_nl80211: add support for starting FTM responder Date: Mon, 3 Dec 2018 19:06:22 +0200 Message-Id: <20181203170622.9522-4-andrei.otcheretianski@intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181203170622.9522-1-andrei.otcheretianski@intel.com> References: <20181203170622.9522-1-andrei.otcheretianski@intel.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181203_051242_115625_24231CDA X-CRM114-Status: GOOD ( 16.12 ) X-Spam-Score: -2.6 (--) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-2.6 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/, high trust [192.55.52.93 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 2.4 DATE_IN_FUTURE_03_06 Date: is 3 to 6 hours after Received: date X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrei Otcheretianski , Johannes Berg Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Johannes Berg Add support for starting FTM responder when in AP mode, this just sends the appropriate NEW/SET_BEACON command to the driver with the LCI/civic location data. Signed-off-by: Johannes Berg Signed-off-by: Andrei Otcheretianski --- src/drivers/driver_nl80211.c | 33 +++++++++++++++++++++++++++++-- src/drivers/driver_nl80211_capa.c | 4 ++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 871a5d0b4a..deaf02019b 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -3968,7 +3968,7 @@ static int wpa_driver_nl80211_set_ap(void *priv, struct wpa_driver_nl80211_data *drv = bss->drv; struct nl_msg *msg; u8 cmd = NL80211_CMD_NEW_BEACON; - int ret; + int ret = -ENOBUFS; int beacon_set; int num_suites; int smps_mode; @@ -4174,6 +4174,35 @@ static int wpa_driver_nl80211_set_ap(void *priv, goto fail; } + if (params->ftm_responder) { + struct nlattr *ftm; + + if (!(drv->capa.flags & WPA_DRIVER_FLAGS_FTM_RESPONDER)) { + ret = -ENOTSUP; + goto fail; + } + + ftm = nla_nest_start(msg, NL80211_ATTR_FTM_RESPONDER); + if (!ftm) + goto fail; + + if (nla_put_flag(msg, NL80211_FTM_RESP_ATTR_ENABLED)) + goto fail; + + if (params->lci && + nla_put(msg, NL80211_FTM_RESP_ATTR_LCI, + wpabuf_len(params->lci), wpabuf_head(params->lci))) + goto fail; + + if (params->civic && + nla_put(msg, NL80211_FTM_RESP_ATTR_CIVICLOC, + wpabuf_len(params->civic), + wpabuf_head(params->civic))) + goto fail; + + nla_nest_end(msg, ftm); + } + ret = send_and_recv_msgs(drv, msg, NULL, NULL); if (ret) { wpa_printf(MSG_DEBUG, "nl80211: Beacon set failed: %d (%s)", @@ -4225,7 +4254,7 @@ static int wpa_driver_nl80211_set_ap(void *priv, return ret; fail: nlmsg_free(msg); - return -ENOBUFS; + return ret; } diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c index 7b360d209a..8e2ebd2102 100644 --- a/src/drivers/driver_nl80211_capa.c +++ b/src/drivers/driver_nl80211_capa.c @@ -428,6 +428,10 @@ static void wiphy_info_ext_feature_flags(struct wiphy_info_data *info, NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION)) capa->flags |= WPA_DRIVER_FLAGS_OCE_STA; #endif /* CONFIG_MBO */ + + if (ext_feature_isset(ext_features, len, + NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER)) + capa->flags |= WPA_DRIVER_FLAGS_FTM_RESPONDER; }