From patchwork Mon Aug 27 21:28:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Oh X-Patchwork-Id: 962655 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="CE6451WD"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=bowerswilkins.com header.i=@bowerswilkins.com header.b="VD1ZZZOJ"; 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 41zlWN315Qz9s47 for ; Tue, 28 Aug 2018 07:33:52 +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=8ki5MnyeNBN/nt+MOLWHz+ceFDzgHngEGrhU/yzine4=; b=CE6451WD3Ksu6+ cfWQcI4X9wYLwQtyOOotyhAVHZR49Z9VfwgU/E2U2YDLgy8iEgfcxyGgJOR/jeSG3LHvpBfNFbiUX z5D0eI2c5WS//BDdvBNMvVDSvMwKTVOibPF6vAYEnhDe7cthB0eKLtOPRTJiTjBouqPakPofUTwDL oLOlqf3RJqT7LXT9G7EHluPR93Qx9GFPMbeYsSdq5DuTBOHkHFZ1xawXOKN/amOLq4IKGpFCBihFg gNuruJJsXtHX6MAiUCEQzyoRFyt2l7QT//csZXW5NFZbODgK05hAcz/CBBk06skTyUQnmxwUQ4IVY 5zySuL3UdgPr9jjfwiuA==; 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 1fuP8k-0001Gx-TL; Mon, 27 Aug 2018 21:33:39 +0000 Received: from mail-db3eur04on0603.outbound.protection.outlook.com ([2a01:111:f400:fe0c::603] helo=EUR04-DB3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fuP4j-0006Qn-3j for hostap@lists.infradead.org; Mon, 27 Aug 2018 21:29:31 +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=qxsQMSxwDeNEur2iQe998wx+lkxUZHoBcju3rafsU4o=; b=VD1ZZZOJwSHCQftORN1kY90L8YASVVkcSGDe3QgMT57ghauqZoc5yui7tv0LrJd8H1ANjVDKI0TuvxHpoReo5n19yuBoOoFgyjvqOZxXtKf1KsJRdxvI0JpyYU+cJEvhJjbBeD4ZJwF0VxY9e4fDobYQa7mjsy38FR/LKFBOzOU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peter.oh@bowerswilkins.com; Received: from smtp.office365.com (2001:1900:2200:85:78a5:2e99:49b5:88c8) by AM6PR04MB4151.eurprd04.prod.outlook.com (2603:10a6:209:4e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1080.17; Mon, 27 Aug 2018 21:29:12 +0000 From: peter.oh@bowerswilkins.com To: hostap@lists.infradead.org Subject: [PATCH v8 11/16] mesh: consider mesh interface on dfs event handler Date: Mon, 27 Aug 2018 14:28:44 -0700 Message-Id: <2c1c1ca4e67dd3e8a6188c21235aba01bac701ac.1535403927.git.peter.oh@bowerswilkins.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [2001:1900:2200:85:78a5:2e99:49b5:88c8] X-ClientProxiedBy: SN6PR0102CA0027.prod.exchangelabs.com (2603:10b6:805:1::40) To AM6PR04MB4151.eurprd04.prod.outlook.com (2603:10a6:209:4e::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 242704ba-9d89-4a75-e895-08d60c64229f X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:AM6PR04MB4151; X-Microsoft-Exchange-Diagnostics: 1; AM6PR04MB4151; 3:XPkmyxBV1Ocao6CmnkIanQ/okFjLo/Vw1gwSnEuY1QBRJUlhfrPj57y5gniSkR1I+wx3dCBUwh/O4n/LZGbCA6oCDkRwg+bN36rIlCRKvrsOpWyZs9eak4kmDZrJ5oopVR+bCtNh45bmXUV6WziTvA6L6hKSRPHSCFyRgJl4a1B3lHNVphcJrZTL7KNOMZMoIFBh7aqlHkQFfYVKah85rJbyEu3JUvvTRCZH8TVadzaSqBmhBHg1BkDJFPUKaq1n; 25:grAcTotPNZRK+uHyPNAMlDI9kofML7cyjSqceXJYRGnIuBPDHFzGIhLVlGSfIZb0XN9IXspCMvuVSaODrA0H8Pi5D74LBGp1IoR+/7xQca6Umgf+FDGTvKXkne9aViAbfxYDLNykpqt/rsQqw8/ITt0+SN0RKtQJA+wfSvvmQsSFLSUfdp2tkq3L1K8iGzlm6NFgWh6eGE7nSx4h7eVpE1rDbXwhCIONrVAO/6PLs4HiQ0gepcl3EmJtlqCbY5WUTgT0S6k4dZw2tnYUW0rrcCnZ07nrE52lN9ZKmaNlhaiekay6+TR9BjfY+a1Vt0NkFzfF8ZwTGbYBY1OQan3YBQ==; 31:sq072mryGW28vJERPOw3q9Gidx75/+bXb0hrzQcEhIl950HLedyHkuCisLpPbbY9M9gyGFwmJaTIauvapV/jQd86iCNjUcAMmr7JblSqcooZA1in/fGSmspoyF+6n0TzYkSvATWPnvyLgdtodJyOuSW5PJn26uTWMSApwSqfdr/RtX0CbA9rUTnL0TLr0tGQUlo3+qC2ohyEvk6BQQY0+mFiImt+89aJkkSLA5QH7pE= X-MS-TrafficTypeDiagnostic: AM6PR04MB4151: X-Microsoft-Exchange-Diagnostics: 1; AM6PR04MB4151; 20:MBMBPcn9UlrBHJzuQ0mohJjnhSOb2tGKmdx6yhDHHJQXUPHK/A4ZgoKXxvGqGIBF7rGVOJWKa9Ion7eVq9KlHufqDwpnIjhPocBYTQzpYzNIOyB/CR+OAauHRK3cye6nv0hN7bAP1KrxLsLJdANxlWv9xYl82pyVAENjUWDaJ7DkkRPxYPWGevS2yAQDezBP3BE9uQwB+BWevpjWUhLah/uH1O27FJ2JfEXOUHx+fF4z6KB3v8nmqzc1L3TOzGVWo6FM+6dDHyY6ruLDucTRLkavj+kUMqqGuSR2G5351MNWG68AbWlc7KwjM4C8xYUfvhsZgvSetmnoYTqrmBC+UNqe2HYJvKsZTc2x0Pgw1GMaE8Kz85SILxQRi4G4/WJDYcjJpml39dV0Mz1ak+8yl20ps7i+Bd3DgzEuFMNHypLwMxRqKy+3JEqyXk+NzSaJXNn1F9GpnO+Huxhrk3C86ucch5Rs7eVbOwWMVuOD/G/2JI9orNBPevsZQdfTa3Ts; 4:PF2ILO7xAnoIVzcoMKKriDs4rUBj2By5yJBTCKQzFR3rbH/7uHiowmPNvhhxbqRpESXLZKTH1Nsz2/SaLpnoVrMa1pWrNafR7OfAYZ/Kbcc0/zZ52h1P6j82T+ZJFRdG6741ThtHOkjX6QJ4dKrkau3fCx58ig5nMujJzvcxWRhk5WpGbqRdSbHocXXsli/K4UOd7GnKyEykp5ZBxigIAyUrFKb041z5AW5L8a9imi/pDIM/9GHo3gPNN5z3ZKX/glfSkhqZrz+rIUuTuRg9/KfrKitJMrM6FY6mHdvQZIm9p8SlWMzjchFyJFosCoEN 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)(93006095)(93001095)(3002001)(10201501046)(3231311)(944501410)(52105095)(149027)(150027)(6041310)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699016); SRVR:AM6PR04MB4151; BCL:0; PCL:0; RULEID:; SRVR:AM6PR04MB4151; X-Forefront-PRVS: 07778E4001 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(376002)(136003)(366004)(346002)(39850400004)(199004)(189003)(8676002)(81166006)(105586002)(4326008)(6666003)(5660300001)(36756003)(39060400002)(6116002)(69596002)(7736002)(305945005)(53416004)(51416003)(54906003)(76176011)(186003)(52116002)(16526019)(106356001)(2616005)(476003)(446003)(11346002)(6506007)(386003)(52396003)(97736004)(81156014)(316002)(85782001)(33896004)(16586007)(86362001)(486006)(46003)(575784001)(118296001)(8936002)(47776003)(50226002)(2361001)(68736007)(53936002)(2351001)(6512007)(16810700005)(6486002)(48376002)(9686003)(25786009)(478600001)(2906002)(50466002)(6916009)(85772001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR04MB4151; H:smtp.office365.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: bowerswilkins.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM6PR04MB4151; 23:Egacqe4x1RHg3Z9QvVMjtCHYUxE4x0hPR2qcP7qqF?= Dqf39cJ53b3/NYxFLzlV37c9t9uGIRcQIBQMQY15+RlFAJu543Jg7BL0Io9gumYkKnGjYDWeb/5syTIk07GD7fje11MiOwx+9BZKkAGB1DxEoKmiq415JxjGBpyzTqnouB/AeNK966lbL//cV6OjLglzGLSZ6LU95cji1NDPCO0pkothkjMwQEWkcB4Khn8U8qokwl2JXZD1k+6w1Z3YTSJgGQf9cRSabtip1TYi2vX9AZPNGV/zUM9gzeEDhWWGROVRBFeOV5xh3Es8ghVEAl8EDjStMeQFj4tcnGHlOZfNgAfC8etW41yNUPORxFqOHoxcHxoYWQdRw3IuDM5PUEIJbg15CJWLV4E2KQgQvsHN4Qz4MdlXBCoaZdsf9oekR8Li+iIjdV3lxokkGoq9Rv9AnpO78m2GvB/D/qfcJn3n6WNqpVC/huk7lzoaxAohFN0uUWeRjXqprEAM/dNu8ivo3qpiCwEc7gzZvjWdzE6CTFLXn+Zo6H7WwM9Dx5QyhHlV/U+IkRoeGdkePcXaD6DK6Jm/gf75Oh/jPbQhlX/mq0lhb3v/tLhdErdZ7b0TApEdWj3etqB3XmYobVRbik27bPk3s+EtmR4y8Ej4Brt7lf2pVUbQkeRb/BNMpJ/fU9IEUXmaR68kvrF6kqzBp4/FgYFXmEQSE414uULyQn01lcAoUGXbJVg9HR//vp0+qt+YnZ4vBN2OdYqmR3nKJ7XYsasxzc/ur1LrUMZetCeoJ/Wzy26oJbIWbSR5DFNniWcyviSO8d1RvtWvLOPJHKswuXozimT02OWuLThDLpufU45TK8iS0HIohIiD9GAZxZwzrpTV53+015SDpLM58tc7pgu0O8cygNKnB4vfJh3X6IHFYHeAsuQzRALQsASCZoQ4rrcmA3a05F8J6TH4NV831y1fLX1He8C3ws29392KYfTQ/6Q3pZs9MeVfPw5oa0JYr7ra6Pq/IC6O0hxdBLDBFVM2U7D7WxuaWRv1roGQHc8ZtxEocQKvkpK6yndaS9zSpV2pOjM9YAGUOMD+pmcy5m8fjRn5fA5Px7vKYm6kH5H9JD0lHsZOz6zkm/EsN7114PnBj3BDLjxf/srtoaJY7rSSOLxZ04yMAzL9IH4OcJd6lzlSr9HlUzAhdW6Ueq+PF3dKePko72BrzIhXPuAAVr4tdDIybvrPiMIU2mDWahpfHCHOOgstnpNPc2dWw7fpdNqDKuWtnm6o0ZT6AyW9QdK//zj29eNgfHMddAhcH6t1EJb4GwHraqOia9GFPaoB5nh29ZXwDPOh8HXo9GBTL054QZ5ntZ5846oNTXCCW9TluoHUKqpJTcp1e1GXSGlnXgZtfE/r9aIOrClUsUCfO5Z1WfHqoN0VUqjZnnYAw== X-Microsoft-Antispam-Message-Info: sANsJHAg7p4qHYA+Nvqa8rSDAJliRH/K8wkN8yAXWX6xpabziDblAVSy+T7mmgcdeE+ApNnkg5Mhv+8VZ0FW+1dOfbdGiHLzadxfJqITWa4Yin70CZDfJZMzF5CUe3otFy5xXQxfFSS+DVsKQ3cO6YQs8LqWs3ucFBJiqUUAvTCkUt173St8UMGl8+ySCby1Cy5kNJzlvj4ZzQjvUwQAUN5oblIdyBw5E0uup3keb2Pc0fUOTBCplE8UJXXtzHstEYHGdOsWUSaoY5kjs9svrCS5YuKhEBu/gpwRBlhGtnfooUXoURHzKthE6sqvDfeQ7jJqq+B6QO8m7gmSbQkBOiTdsJi4YB3465jyJqEIqSM= X-Microsoft-Exchange-Diagnostics: 1; AM6PR04MB4151; 6:Yxqk/lbZhT3QoOrLQ8LqXs5I4MxHduNk5iiNyDp+SG2yToZ8CiRgEglrdq/+izLvLnkPD2UIGjIkwDYg+ANKcjXYyvgO+G/tz4TNJlkVisxek3gpRq+o0dslFL+kgRNXpf5xmYE6y//nqLzHZwl/JUIniUt0YMcDu/6i2agcya+PQfH6XZqD8NehX4vbv3CJMqm+ggqKVUX0BDmZlir4fq46OZwKc+0fqoNFY+q+Zh9bQKrVYcLJXMNniJm05WaQZ7YV755gsY4MZqdfPXRbaLCRZlJ9QFKtKeSyaLhAARbbdj0JwVaTDKMq28QPMMOFF7DwX4Oo8pQ6boUQigYS/ozFpc6iCVvPHun/7yVwPC7KaAQeW9tdfWeZ1sQ3fg2DIZiqPApo1fjG8syqFPDwnqFq9LLJsA6Fd65aYgJurVZs3jLuTaNiBkNpS3wJ7MEdmBWy7jJ/dDcU7emhe29P0A==; 5:SQrYAQOwI7Te187mwD7mTy93SDI7Po62sSt9tRr6B6hUw1gDwmsT41r9tv6a9f8SlvS5SZWRVeFBA0OtO5jTE8qixhBqwtcfTumx/oj/mTpAjMPIHec/OWxDiAI/gG42bywk1K8MMEqF5dVvnm+Gm70+HPh3AuJIRwcK1ad7Sko=; 7:Xd8y8rgsmzrl3jN4XVC8eHWxUvEbR4Qrg7/oIRMBcyi6mOrs7Cnc4qTmmV04tnmWfQK/j/dQumsqh9ULj291T9YCmU+ID87h6VGH6B7HV3W6tHW8jbQ8Gbq8f9HJhrw+pv+6AnrO8Ym0+XI2a+SeySoyWyxzx7W19a0iBCy7QtakcYlCHAEpXErVjABFj9+ddYB30ua9IFJiuLd7xgKRKpsz73+s2ytPnOQ2SrXDV9EK+sb9bn40KKQt6j2oIESr SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: bowerswilkins.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2018 21:29:12.8066 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 242704ba-9d89-4a75-e895-08d60c64229f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a75a45bb-4772-448f-a2c6-9d2413d86410 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4151 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180827_142929_247954_91960CD9 X-CRM114-Status: UNSURE ( 9.79 ) X-CRM114-Notice: Please train this message. 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 [2a01:111:f400:fe0c:0:0:0:603 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_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_AU Message has a valid DKIM or DK signature from author's domain 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 ea846a0..eebbe0a 100644 --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c @@ -1379,13 +1379,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); } @@ -1582,10 +1587,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); @@ -1595,10 +1606,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); } @@ -1607,10 +1624,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); } @@ -1619,10 +1642,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); } @@ -1631,10 +1660,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 4cdca34..e43c1ac 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -3808,7 +3808,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 */ @@ -3829,7 +3829,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 */ @@ -3845,7 +3845,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 */ @@ -4286,6 +4286,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,