From patchwork Fri Nov 4 10:38:07 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Berg X-Patchwork-Id: 123603 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from maxx.maxx.shmoo.com (maxx.shmoo.com [205.134.188.171]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "maxx.shmoo.com", Issuer "CA Cert Signing Authority" (not verified)) by ozlabs.org (Postfix) with ESMTPS id B45DAB6F8C for ; Fri, 4 Nov 2011 21:43:53 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id D84D617C056; Fri, 4 Nov 2011 06:43:51 -0400 (EDT) X-Virus-Scanned: amavisd-new at maxx.shmoo.com Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lE3WIs4etPFZ; Fri, 4 Nov 2011 06:43:51 -0400 (EDT) Received: from maxx.shmoo.com (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 1357E9D2CE; Fri, 4 Nov 2011 06:41:18 -0400 (EDT) X-Original-To: mailman-post+hostap@maxx.shmoo.com Delivered-To: mailman-post+hostap@maxx.shmoo.com Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id E09D017C060 for ; Fri, 4 Nov 2011 06:41:16 -0400 (EDT) X-Virus-Scanned: amavisd-new at maxx.shmoo.com Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Tm0O9QSNYayr for ; Fri, 4 Nov 2011 06:41:13 -0400 (EDT) Received: from sipsolutions.net (he.sipsolutions.net [78.46.109.217]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by maxx.maxx.shmoo.com (Postfix) with ESMTPS id 170CE9D2CD for ; Fri, 4 Nov 2011 06:40:08 -0400 (EDT) Received: by sipsolutions.net with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.77) (envelope-from ) id 1RMHBv-0001LI-2D for hostap@lists.shmoo.com; Fri, 04 Nov 2011 11:40:07 +0100 Message-Id: <20111104103813.284388240@sipsolutions.net> User-Agent: quilt/0.48-1 Date: Fri, 04 Nov 2011 11:38:07 +0100 From: Johannes Berg To: hostap@lists.shmoo.com Subject: [PATCH 18/18] driver_nl80211: listen to unexpected 4addr events References: <20111104103749.617144560@sipsolutions.net> Content-Disposition: inline; filename=0018-driver_nl80211-listen-to-unexpected-4addr-events.patch Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 X-BeenThere: hostap@lists.shmoo.com X-Mailman-Version: 2.1.9 Precedence: list List-Id: HostAP Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: hostap-bounces@lists.shmoo.com Errors-To: hostap-bounces@lists.shmoo.com From: Johannes Berg Monitor-less AP mode had lost the ability to do 4addr WDS, this adds it back. Signed-hostap: Johannes Berg --- src/drivers/driver_nl80211.c | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index fd71620..82b9400 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -1977,8 +1977,8 @@ static void nl80211_client_probe_event(struct wpa_driver_nl80211_data *drv, } -static void nl80211_spurious_class3_frame(struct i802_bss *bss, - struct nlattr **tb) +static void nl80211_spurious_frame(struct i802_bss *bss, struct nlattr **tb, + int wds) { struct wpa_driver_nl80211_data *drv = bss->drv; union wpa_event_data event; @@ -1993,6 +1993,7 @@ static void nl80211_spurious_class3_frame(struct i802_bss *bss, os_memset(&event, 0, sizeof(event)); event.rx_from_unknown.bssid = bssid; event.rx_from_unknown.addr = nla_data(tb[NL80211_ATTR_MAC]); + event.rx_from_unknown.wds = wds; wpa_supplicant_event(drv->ctx, EVENT_RX_FROM_UNKNOWN, &event); } @@ -2181,7 +2182,10 @@ static int process_bss_event(struct nl_msg *msg, void *arg) tb[NL80211_ATTR_COOKIE]); break; case NL80211_CMD_UNEXPECTED_FRAME: - nl80211_spurious_class3_frame(bss, tb); + nl80211_spurious_frame(bss, tb, 0); + break; + case NL80211_CMD_UNEXPECTED_4ADDR_FRAME: + nl80211_spurious_frame(bss, tb, 1); break; default: wpa_printf(MSG_DEBUG, "nl80211: Ignored unknown event "