From patchwork Tue May 29 21:39:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Oh X-Patchwork-Id: 922425 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=none (p=none dis=none) header.from=bowerswilkins.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="cGshcVmK"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=bowerswilkins.com header.i=@bowerswilkins.com header.b="rqNom9Uc"; 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 40wRzN0kQrz9s0W for ; Wed, 30 May 2018 07:42:56 +1000 (AEST) 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=pKg7AiKwMk6+gG4a8bCAgSRM4h7YJqGK54wNqc5qGRo=; b=cGshcVmKfCaNF9 ZUIEZG3sR1QjeC2sR96pAJjcvIqUy5RMe48x6H9SGrU+2qzWVdrWMTR9Hw/wjgig1nxovtKuo65p2 khi0ThG1x0I1/AtTvNgao37Vjh6TykvCFjoKPMo6XtAxxSOgoY91YpjN9Tb+bBDf659LDFPAaDbUU B+HBQO23xB/9WTpbJHQR6RdYELZ7e2/9jJBmpQI3itGWcqY68IlSe2XpFkK1j7cbJyrD01KbSbsNF DYHQduiKScvuVsR3Vw1G6Hk2mFl/QuYZasQTOgPH+pMgBXCJ2X/1VfO0jaDDWyS5NZAJM66aS8ItA nEsOv6OqSpWcXzGCmsMg==; 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 1fNmOF-0007f8-Ks; Tue, 29 May 2018 21:42:47 +0000 Received: from mail-eopbgr40086.outbound.protection.outlook.com ([40.107.4.86] helo=EUR03-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fNmLp-0004gT-H7 for hostap@lists.infradead.org; Tue, 29 May 2018 21:40:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bowerswilkins.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bhJAqayHuviBwL908xBjdOd+0mWutdQgNWUQ36sArvQ=; b=rqNom9UckFfG79CE4sVyRJowQ8Nrk8ubb9byVpzvqdIrFc1KJEX0x6ugVHtv17d7+n//biwxiDxqmIYla252DCcLu/BY3VaeO9NNHQXTLBGp0PoW7DhLoydhPL+pOSxZlfxGjvBR0txKXwoeuLn+hDdisPCraamUiXRdME5duUs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peter.oh@bowerswilkins.com; Received: from smtp.office365.com (2001:1900:2200:85:bc83:1bef:7e2f:6957) by DB5PR04MB1654.eurprd04.prod.outlook.com (2a01:111:e400:5995::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.11; Tue, 29 May 2018 21:39:47 +0000 From: peter.oh@bowerswilkins.com To: hostap@lists.infradead.org Subject: [PATCH v5 10/17] mesh: consider mesh interface on dfs event handler Date: Tue, 29 May 2018 14:39:14 -0700 Message-Id: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [2001:1900:2200:85:bc83:1bef:7e2f:6957] X-ClientProxiedBy: CO1PR15CA0074.namprd15.prod.outlook.com (2603:10b6:101:20::18) To DB5PR04MB1654.eurprd04.prod.outlook.com (2a01:111:e400:5995::12) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB5PR04MB1654; X-Microsoft-Exchange-Diagnostics: 1; DB5PR04MB1654; 3:XAfyqCq5UnwZmVby1uBf9yFYT1ZKa9WPJrmPLbiD62ZWTfxegx9xDH6CPTDLRSNk3ORT7U5pCeXQAaRjl1C2o9xhYWNbQ5AlBeYe/GerJcFCvMIPUNNTp5A2/kdRRNFzPM9aNuA1Eopf4rTvI3+aTaZWDNzXpOidXLS/lpW6zseIpUkWKfrZ1uAb5dGGVItDGP8M7cUDRsn6BECCgGlRrmR0eCNSriIo4f0W8zh+IcertWzr+1XKoaC85PRdtzbs; 25:Claq2quWty0B792/PqLy7Ue8NcTn2bLntguXHJOULWc9Xuxsjv+1bF9AlH4Zz7oZW2YfdVCsh0O92Qc0Shjaqw6bhX2ELMXXfLZJFY/MvbIjilG5jxDMmBhjnAcvAc7rIXx32oHxOne+pbs9hE7SCkxsnujKki1WLL/NEt2ap4jfl5Ya2lfEMll6aB44MGKkp4ZclULKLMyMErG4e4FUdngEeERBTgh+M2cYfuU+fdOC8X1rdT9j1ZlVskJ01mRuS+uPs3juXrI3+cuy4awewJat6qpyZ4Sts48yG3Lvd6EVVfBotk/xx4JxjltfRJBnZlLOG3EO1NADc2rJXvGi9w==; 31:cLWnQkUAwSZW4VawChgHCm4GW5nCEy8Llel1jxk1q7MSrvXpPfSBo3/UirIxBXJ/VaY61YirfYhJ0wVQjLfjBOjzI5e7eLSMr2B+35W1xFW5F7WPrx18pwgSbuhPD3hb0X3TbPhh7C6LUy0kA3sseF/2WfJSQg6QLfmgOlmM/1stGTAMjgxeIFx1Rq7pCaDsE4QE3Guwib6fwt841YQBQSqMIfaWIzeN2foIVTisbGg= X-MS-TrafficTypeDiagnostic: DB5PR04MB1654: X-Microsoft-Exchange-Diagnostics: 1; DB5PR04MB1654; 20:RKKgyxbMmtquCZ2883QuvJPtKO2NCJ6w3ekrkExMHTjgKtOBEWr+xbUYwC4ZC8QhoDIra3WcH7LhWXrsR7yoNwZ1ePFf2auq2cs1HIRIEuw4jmIEm2JIpHn6W7JftK9L4IKAN0RKJHmqJxQ2E+3/erA1jiX4XQMXfY2ZJg8iBBI5F5rcpTQnAdit4cdrE62XBdOAO8xFEjbkDoUhMaBXNFeXMN5eqnJQHkyF/nXg0/zZ3yZWPGEDWmA+v0eqOA9L/kDwIFfwAl1ELxAnzyN2HOmjnphKLw5ZVGTg8pkknGh4YI0hCxAM+pNatU44N0/0Mk6YXS2Qxu9JSxQfqP01IYrQUtkRrL06PV3R934WLxA8b3k4TpQT99atpwWUn8fo63yiGPYNunkZ3IJzcPVtfqw4TfC/vHLTlZSBsNE//NE=; 4:oOpfIzVpOB96BuZjx3uZG/ydY1cKvj6zsetQXnWJJTPUPUXbNUG249aU7dbAwmH0kZN6zo0wmx6OIiYAXccWXPVS40eXBug6hAi2oHCe81CMlDxstfZS4WxxIEAPpresCpU4Dc1lDUCEOg28dQEl+Qo07jUeRmWdAY5OyC8DzztAKabhDAlRJ8o3kVB6Nb8725Ooekj+FhHGQjCej7896MdnDa8LkfguWu5ZYxh5UvxITw6GJK5HCvjfCMjoL2kSMFjY8AOFoooq5RD+8MNoqVKIwJudKAUpGU2UD4ZR2w0sdWrM9/8QC0SoD7oLXAJx X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85827821059158); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(93006095)(93001095)(3002001)(10201501046)(149027)(150027)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(6072148)(201708071742011)(7699016); SRVR:DB5PR04MB1654; BCL:0; PCL:0; RULEID:; SRVR:DB5PR04MB1654; X-Forefront-PRVS: 0687389FB0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(39380400002)(366004)(346002)(376002)(39850400004)(189003)(199004)(16586007)(8676002)(53936002)(16810700005)(54906003)(97736004)(69596002)(25786009)(6666003)(81166006)(6116002)(68736007)(486006)(51416003)(76176011)(52116002)(316002)(85782001)(81156014)(47776003)(105586002)(305945005)(7736002)(478600001)(53416004)(86362001)(50226002)(52396003)(8936002)(36756003)(33896004)(50466002)(118296001)(46003)(386003)(39060400002)(6486002)(6506007)(106356001)(5660300001)(2351001)(48376002)(11346002)(6916009)(2616005)(476003)(2361001)(2906002)(4326008)(446003)(16526019)(186003)(9686003)(6512007)(85772001); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR04MB1654; H:smtp.office365.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: bowerswilkins.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR04MB1654; 23:HePp6zQd9Y36oAu2nr3RRlWFLIjyEU4ObbYGVkcjs?= oNALYrXulBQJju9TocuVFgB1uPrB2EbSupCvLCttz1WdU25EQeoXioTs47jrZou4nkQUcXroO3vWBJisgU7Huk3iuPBJ8HkBkCkyHNSwMt5QIU9jbAPop5BxpKc2eIa1SeIpWozSuvRXQE533F3l58+WAottxtJjPal5EAlQrKJn2PS/orKxlDqRWBz92JpXb/D+HqYZ2cLEDoT9pvTbY5V4TdrCkhLnggqJ2MRB0Yxywcxbshhxu+Q0eh6jDugAz8rO9krysx0adRi0XOQ743lQhLKrkZUtx7+Uh/68HaBQTd6VplSaWySdf2Cynx+r1UxhQSTzXYXUUDaWWjewB5x9JoBEcA5koDCCwXziJH6atJnLcpO1+pRTTSh7NfUmsdDRCyQ7o75wKARm0WKvrt+ICqZwy8cHVdynmPiUwOBWiIa60rotbH3itXwYlpBDBdCc30n90K9Svb8IzeSMoYf+7EIXXBl6IUPOSQYFlmuS7Pxc6xHlmmB2veRsOxARbNbviChiZaIUPJ5t//GxjJirNS7DRKs0wZ4JChMvfpAKY5q4jJAn7Cl6NTloeJoXLAg90nrMPo74ZbBhZ78yNeaU/SHV7HccJlMOn45aAIkrget+6HoNhppwGjzasW5KIkQpa3Ao9RoAA3ssASfwt/DAC/K8xSI29gH8alTrVrgOJeaPBQYVtC5e/wcdIVwcc7ekYrVCvYGM9L8TxkqMCIEi64vME3Tl5VQ+LB+aaByVaRxtMXZdvQ6M0zRs1+mxSt5l831WwdnQ6OgiNNxdPVnOfUcwubZwX3m83UaasRvUxsAFDtuUSmEumBssPLXJ1WgFascY81uJtVJKVxCNTW8qdGNw9xknXy02qvTfQ/WzEkACPfTvDcM6h8ab6ZBAXt4XrjJxn6IzMDFuuEX4lq86p/yh4IR2SC7OEX67CdDB+wslYs3LYz0QXF3NxrEg8Ky7osnm0w4TD83GKoNZkXNYBG6ueRKec/vDQRQF13AdKT0KqN4h5nQpotVscJSMky85sgu0YsnQhblFM3GRROtXOjj6GYh0JByS0u0vpweiXEQz3r5D4aXyEnPpcUrFfHKUPElmepwkHBovIEYulUEPGM3lkSnWB99FLEc6GpyGYp1QywqNgcGcQVI1jRTVHQoSC3oENefL3w/H0Rp4xgEl0/nNfWvx4mGqBkSblwex6/ZA4CUpNTSFaAYBfVKNJ/WCtgGHrIlyjcTQ4Pqge8H28cZBps2qhVhSnRMoNkbq+nBIRMn0HZ13sDdAamFjTKX9jN+mevVpmjpwYZB3AV2tWJhe6lZv+WeMgami6OKNr7g54bO+rdkcWHx7WqUrugPxWGtaeVer3Uf56gsOhbz X-Microsoft-Antispam-Message-Info: 48NcRxRif+IQPryL35F9ZjXbKSvabif4xI94Jmxpb2GMtj1xkeIx8y5i1641ucQJ++DV/X0eNluv0AqPDjMXKEGJ4NMB+KjNrlR49XikSeoBVo7ln1XMKKdnF22iaz3RJiY8WLw4IRJiPJEtZiKxsm/uTyWBWu4r0Byihjy/ZJMGAmkFVutH0c4iDP/huNzB X-Microsoft-Exchange-Diagnostics: 1; DB5PR04MB1654; 6:txpsGvNKOEfLZjOOgQKPc9VWT2I6Or3iZMuLw9oF5a7045a63W9xSa5hDHDhQYJoOoTwyfRa71qIvanNLmlEjmS/bf3njDAvuIP8kxrWqJjFdrSE+DvH4fYYZDCLWIHo+0fHAfS1V8IBOO9n3mMMUQks/DgWlLDu8RikYZsn7vSTwOZm4ermmBy1wBZR0NeFjnmxeDnfPfCxmGy/6Sv+BvstFpdcdrBNSnziMZSPbgNtjBakbT5uVBOgY7BBhuAVX/KAvmBYwMbHJiU5e6h4Z+ymwd91TwzBJ3iQ9PfeRw+M1NcBcImbnN1ktQrUOirHT5Dp7seXH4pvK53Xq18URKgiS56RhX9/VKmoUKKSuo/Q1tEjr+JEusRDUplxb/2o0LPFSVS6tZjTeSvemKIZ9gHN3gouiuM+Ddi8DZCplP75oG9/0d//AdEHV0TzZlH/pvWlS9BA6TEvov24CVgTrw==; 5:R7tHWoieF4Kh1HVBs5rixJXMWWIkACAh8lrA4ZYnqrbLl6uTSOXW08kCgw1rkVEdE+QSP2uPGctP+ULNEFcczzeuOrQ6VElkAisezoOGzPv+9dkK3NHTB0oeOxB189Ic2szYLvkd5rqoYYK3P/zjXoyTlkJJx5NgH5GTM6x6qo0=; 24:WIQ3xY6YcfBbBwVOzxl7XK62J0OIfMLKyGkQJ/+rkQ0IqTKPtuGTlFs5Ro2Rq7OF73uxmBqjq+UfACKMS2yLVwiG/ItoZ4JeHTgYHf8EHmw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB5PR04MB1654; 7:ulfNVuctaBBHbag+2IDYMeYZ3fLAJXHWof/oWgW8l4r9c5B62vZ8gT8F8//gyLcWq+mtX0xEv+fqiVol5hem3QKEOYN23B6Y7Qp/UTtXMfwx192O4ebESDuJbcdQX8V++pVAKXdyMnxPozLVLT14xkHq7504kYvJdnZjSA4BnTh+Co7J5+bMShulz4dNeZRJ4fqDsaP82B1pAELXcV2plVwLsaFnO8Vj3yEcjMtMD9V8t60tZ+hbd1ZvBd7aA4/C X-MS-Office365-Filtering-Correlation-Id: f98176e6-9cfe-4f62-9894-08d5c5acb383 X-OriginatorOrg: bowerswilkins.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 May 2018 21:39:47.1459 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f98176e6-9cfe-4f62-9894-08d5c5acb383 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a75a45bb-4772-448f-a2c6-9d2413d86410 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR04MB1654 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180529_144017_612824_B4C4C16A X-CRM114-Status: GOOD ( 11.12 ) X-Spam-Score: -0.1 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.1 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [40.107.4.86 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid 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: Masashi Honma , Peter Oh Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Peter Oh Once mesh starts supporting DFS channels, it has to handle DFS related events from drivers, hence add mesh interface to the check list. Signed-off-by: Peter Oh Signed-off-by: Masashi Honma --- wpa_supplicant/ap.c | 71 ++++++++++++++++++++++++++++++++++++------------- wpa_supplicant/events.c | 7 ++--- 2 files changed, 57 insertions(+), 21 deletions(-) diff --git a/wpa_supplicant/ap.c b/wpa_supplicant/ap.c index ce17e57..42915f1 100644 --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c @@ -1337,13 +1337,18 @@ int ap_ctrl_iface_chanswitch(struct wpa_supplicant *wpa_s, const char *pos) void wpas_ap_ch_switch(struct wpa_supplicant *wpa_s, int freq, int ht, int offset, int width, int cf1, int cf2) { - if (!wpa_s->ap_iface) - return; + struct hostapd_iface *iface = wpa_s->ap_iface; + if (!wpa_s->ap_iface) { + if (!wpa_s->ifmsh) + return; + else + iface = wpa_s->ifmsh; + } wpa_s->assoc_freq = freq; if (wpa_s->current_ssid) wpa_s->current_ssid->frequency = freq; - hostapd_event_ch_switch(wpa_s->ap_iface->bss[0], freq, ht, + hostapd_event_ch_switch(iface->bss[0], freq, ht, offset, width, cf1, cf2); } @@ -1540,10 +1545,16 @@ int wpas_ap_pmksa_cache_add_external(struct wpa_supplicant *wpa_s, char *cmd) void wpas_ap_event_dfs_radar_detected(struct wpa_supplicant *wpa_s, struct dfs_event *radar) { - if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0]) - return; + struct hostapd_iface *iface = wpa_s->ap_iface; + + if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0]) { + if (!wpa_s->ifmsh || !wpa_s->ifmsh->bss[0]) + return; + else + iface = wpa_s->ifmsh; + } wpa_printf(MSG_DEBUG, "DFS radar detected on %d MHz", radar->freq); - hostapd_dfs_radar_detected(wpa_s->ap_iface, radar->freq, + hostapd_dfs_radar_detected(iface, radar->freq, radar->ht_enabled, radar->chan_offset, radar->chan_width, radar->cf1, radar->cf2); @@ -1553,10 +1564,16 @@ void wpas_ap_event_dfs_radar_detected(struct wpa_supplicant *wpa_s, void wpas_ap_event_dfs_cac_started(struct wpa_supplicant *wpa_s, struct dfs_event *radar) { - if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0]) - return; + struct hostapd_iface *iface = wpa_s->ap_iface; + + if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0]) { + if (!wpa_s->ifmsh || !wpa_s->ifmsh->bss[0]) + return; + else + iface = wpa_s->ifmsh; + } wpa_printf(MSG_DEBUG, "DFS CAC started on %d MHz", radar->freq); - hostapd_dfs_start_cac(wpa_s->ap_iface, radar->freq, + hostapd_dfs_start_cac(iface, radar->freq, radar->ht_enabled, radar->chan_offset, radar->chan_width, radar->cf1, radar->cf2); } @@ -1565,10 +1582,16 @@ void wpas_ap_event_dfs_cac_started(struct wpa_supplicant *wpa_s, void wpas_ap_event_dfs_cac_finished(struct wpa_supplicant *wpa_s, struct dfs_event *radar) { - if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0]) - return; + struct hostapd_iface *iface = wpa_s->ap_iface; + + if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0]) { + if (!wpa_s->ifmsh || !wpa_s->ifmsh->bss[0]) + return; + else + iface = wpa_s->ifmsh; + } wpa_printf(MSG_DEBUG, "DFS CAC finished on %d MHz", radar->freq); - hostapd_dfs_complete_cac(wpa_s->ap_iface, 1, radar->freq, + hostapd_dfs_complete_cac(iface, 1, radar->freq, radar->ht_enabled, radar->chan_offset, radar->chan_width, radar->cf1, radar->cf2); } @@ -1577,10 +1600,16 @@ void wpas_ap_event_dfs_cac_finished(struct wpa_supplicant *wpa_s, void wpas_ap_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s, struct dfs_event *radar) { - if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0]) - return; + struct hostapd_iface *iface = wpa_s->ap_iface; + + if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0]) { + if (!wpa_s->ifmsh || !wpa_s->ifmsh->bss[0]) + return; + else + iface = wpa_s->ifmsh; + } wpa_printf(MSG_DEBUG, "DFS CAC aborted on %d MHz", radar->freq); - hostapd_dfs_complete_cac(wpa_s->ap_iface, 0, radar->freq, + hostapd_dfs_complete_cac(iface, 0, radar->freq, radar->ht_enabled, radar->chan_offset, radar->chan_width, radar->cf1, radar->cf2); } @@ -1589,10 +1618,16 @@ void wpas_ap_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s, void wpas_ap_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s, struct dfs_event *radar) { - if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0]) - return; + struct hostapd_iface *iface = wpa_s->ap_iface; + + if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0]) { + if (!wpa_s->ifmsh || !wpa_s->ifmsh->bss[0]) + return; + else + iface = wpa_s->ifmsh; + } wpa_printf(MSG_DEBUG, "DFS NOP finished on %d MHz", radar->freq); - hostapd_dfs_nop_finished(wpa_s->ap_iface, radar->freq, + hostapd_dfs_nop_finished(iface, radar->freq, radar->ht_enabled, radar->chan_offset, radar->chan_width, radar->cf1, radar->cf2); } diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 8772291..b6ebd65 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -3802,7 +3802,7 @@ static void wpas_event_dfs_cac_started(struct wpa_supplicant *wpa_s, struct dfs_event *radar) { #if defined(NEED_AP_MLME) && defined(CONFIG_AP) - if (wpa_s->ap_iface) { + if (wpa_s->ap_iface || wpa_s->ifmsh) { wpas_ap_event_dfs_cac_started(wpa_s, radar); } else #endif /* NEED_AP_MLME && CONFIG_AP */ @@ -3823,7 +3823,7 @@ static void wpas_event_dfs_cac_finished(struct wpa_supplicant *wpa_s, struct dfs_event *radar) { #if defined(NEED_AP_MLME) && defined(CONFIG_AP) - if (wpa_s->ap_iface) { + if (wpa_s->ap_iface || wpa_s->ifmsh) { wpas_ap_event_dfs_cac_finished(wpa_s, radar); } else #endif /* NEED_AP_MLME && CONFIG_AP */ @@ -3839,7 +3839,7 @@ static void wpas_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s, struct dfs_event *radar) { #if defined(NEED_AP_MLME) && defined(CONFIG_AP) - if (wpa_s->ap_iface) { + if (wpa_s->ap_iface || wpa_s->ifmsh) { wpas_ap_event_dfs_cac_aborted(wpa_s, radar); } else #endif /* NEED_AP_MLME && CONFIG_AP */ @@ -4278,6 +4278,7 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event, #ifdef CONFIG_AP if (wpa_s->current_ssid->mode == WPAS_MODE_AP || wpa_s->current_ssid->mode == WPAS_MODE_P2P_GO || + wpa_s->current_ssid->mode == WPAS_MODE_MESH || wpa_s->current_ssid->mode == WPAS_MODE_P2P_GROUP_FORMATION) { wpas_ap_ch_switch(wpa_s, data->ch_switch.freq,