From patchwork Sat Feb 17 08:53:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitrii Lebed X-Patchwork-Id: 874733 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; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="bnhuBtHe"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=quantenna.com header.i=@quantenna.com header.b="KDhC4NaC"; 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 3zk3jg0KClz9s0v for ; Sat, 17 Feb 2018 19:54:47 +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-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Date:Message-ID:To:Subject:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=A1Rkgz7Gi9+DautYmdJyc/IfEOETSwbEdnUwb/JdFzs=; b=bnhuBtHeP77i5yZBFZqfxWdE7U QTs8yeLRfTm8eDs+WAtdgmBrk4NZltm9rYLuCJSuoC35+tHcSezAoVcUQU2kw0z/ksPT3DVLOewXf ryGBVBZ3dqOaeA7tAUKDGk4wXq1GZmClgp2Ir3ZfXFbrFIDlJXM93GTaRDrBEBZ8JrJZ0qp4TtmGZ a+R/sK5P9AOGwliGyekX3Q/S0wNBfyR9TTskG5/xwcx4kvOQCF7F7IElTHG73MqXLUhi+H6baWBLB vZwsBw6eswal25ujkNbWeNwuR7cru++Pnf12tijNmb5gct8MbHodP0WukUhnGevpZjYlwhCNWZj8r sxkBGKeg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.89 #1 (Red Hat Linux)) id 1emyGB-00074Y-Do; Sat, 17 Feb 2018 08:54:19 +0000 Received: from mail-sn1nam02on0611.outbound.protection.outlook.com ([2a01:111:f400:fe44::611] helo=NAM02-SN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1emyG7-00073H-Op for hostap@lists.infradead.org; Sat, 17 Feb 2018 08:54:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantenna.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=MAo6BRHd+QF2yJLz9njHNNFOL1Nvp9eUDw5+M3m6e0c=; b=KDhC4NaC6derTsmy7w11aLL/b/W9pkJzdBRz+PEi89Yx+n5u2bJaCHFIQ/ZMQXI5aPyR9b1pCztu11qUxBqnJEsOm3EfF3ZASIOmHmQnPcMcj0Pjl/dvNT5noUC0UWRAbM4WCPd/s/eU5vrSTVLqQdm+HXyq+SvYR2ke7kP6g5k= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=dlebed@quantenna.com; Received: from [192.168.1.101] (5.101.39.206) by BLUPR05MB1921.namprd05.prod.outlook.com (2a01:111:e400:52ad::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.527.6; Sat, 17 Feb 2018 08:54:01 +0000 From: Dmitry Lebed Subject: [PATCH] DFS: restart CAC in case of CAC is aborted To: hostap@lists.infradead.org Organization: Quantenna Communications, Inc. Message-ID: <800a151e-1e7d-2057-255b-5d56f3c32882@quantenna.com> Date: Sat, 17 Feb 2018 11:53:27 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 Content-Language: en-US X-Originating-IP: [5.101.39.206] X-ClientProxiedBy: HE1PR0402CA0030.eurprd04.prod.outlook.com (2603:10a6:7:7c::19) To BLUPR05MB1921.namprd05.prod.outlook.com (2a01:111:e400:52ad::11) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 53324392-fe2b-4023-e23a-08d575e3fe4f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:BLUPR05MB1921; X-Microsoft-Exchange-Diagnostics: 1; BLUPR05MB1921; 3:m7Kzu6VnAfvE/DS5KHOP07m3Eel5Q6p3xIxznseBTPFtUUidj6nNqqWpkgc0iErLxRLqybGsGVc1Uw78mdAaLs4cfZNAXQ9m5GZIIQqfJoMztSyQkfzN4W8OULUZ/f0rSF4q+QiymetOAQMtA1ZAjLf1NGfm0/McEBvgUMAbqeqe/JT3wL1D1pRZ3dvR5uqf8l9qU6+nEf+R2yTjLMTMYX7sz95PrmPxVGC1H5yVe7w6NLokaHi9KMciikAxrvKp; 25:7U44JfC7epumaeahfRU26qrKWVUquHoODwH2iTjFJK83iJjI9zpVwOFBfslfrT4AGqRdPELbr6NmQprnkTmKOckaaUtZ2kfbN77iSC4QUrk6ZAQTS5Xldl0bkxgg632I+JqCxxK1hZpiYaT7O+e0ssQUlYdIa6elHioDUQAkqtkfCH+jNgSkD/SsKOB5g045nkMiBgaxJsJCJ31051aIoBs9jXMILxoA4srMLr71G5tyMZ5Bazot4Oo180EQcvRb/HGOAZ1NZDQW+UjYy0uBt1Hon7CO51GlMxmjS6f0tNiZEd5IR7leV1pqOq0oTmdyyCrbEbBpvs1uKHBbKBfdng==; 31:G1XBI0UKRBgAObFUrV/MfFipiPyp6ic6mVzG/y6IN0mh4UFsu6wyho9btCNN7uFUGGgZsyFramHfv0pGUClFkdpEnpFAE00Vh8hKenjRWa7fRDHiRE0RqZEM4Ii4B7jKPP6jqlyn/vV4AU66DwsMfd+DnPVIUhyVknwcT6HSEQqRlYeDBHYhFLSBgtjKp64r19N/+yXpD2+3tERb6isfw7wAnVL7zXTaFh17LMXKwzU= X-MS-TrafficTypeDiagnostic: BLUPR05MB1921: X-Microsoft-Exchange-Diagnostics: 1; BLUPR05MB1921; 20:o6krDFwqjSd5erGY1UhnjVgpkZmCccltZv948m+m2Vg/kKIdVHXxibSwxOTzqtEIMcUwXv0UkpzfXKOOBwLUvu6uZ3+p0TPtqp8hZRT+MJ8snd5TLEGvTe9N4gQn/CS1u1xEX1RkDKzd7XRChSuCPHRbvBm0eUbKuu0EhAcQTTiJ3iTOEJU2o9iDp10wUN5be2F44xHDK+NaJUbMRvxqBhKaZ+sOizpfvs7lR9FkpY9hA2mW1KdXa4ZTSDBuEzIksP+EqL3i8Q70HQL/QdUVdCc8Rum0dnaBuh3swMSef6l1rXpEYFOvDOHMOYeET6ubUG8M8UlKxQtJV+XB4oBnJ/yhjkHZ44Jg2yKFIHhuvUIAr/NALC/J16UrzA5awvrJ+ymCBY367Gz62UtrATwGIdVQK6mTTO+CkQaiST0OTXtFLmJK+wjCoCJ2WgPJQUMU61yIlDsk4XoPZEyUK7ArR6sj1YwdZhY2FTrWqkFvNtXTHOHQjezWWFLnGesFGB3H; 4:7h40lznoiePVC0ncjxaHfXTFcuN7PGKztlhMrqSheL01szBVKl/4nZd3c2tQXNy7RM1hr8IC0hneNz5ACl0eVbU0Hv2iEPHiSULAarIe2fA+TEz480j6o0NogmIrsphcChZDfiL5whMT6k7O21OwEUpw5aPE5YWAKr5KIKPOrlSs4Wo0vRiN7Hb3TBCF53PeNSg8IgjEAQmNkuAf/xRXSaa/Mf4AUwVh61IXUsk1SfCrw4GUvvPEyaxqzaWQWlb8GppmXrXskDCseU4ljQ1X0w== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231101)(944501161)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:BLUPR05MB1921; BCL:0; PCL:0; RULEID:; SRVR:BLUPR05MB1921; X-Forefront-PRVS: 058637CA05 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(396003)(39850400004)(376002)(346002)(39380400002)(366004)(199004)(189003)(6916009)(106356001)(16576012)(25786009)(6666003)(31686004)(36756003)(53936002)(117156002)(4326008)(64126003)(31696002)(316002)(65806001)(66066001)(65956001)(36916002)(6486002)(478600001)(2361001)(54906003)(2351001)(52116002)(47776003)(105586002)(67846002)(50466002)(68736007)(65826007)(71446004)(8676002)(81166006)(81156014)(6116002)(3846002)(59450400001)(386003)(2906002)(107886003)(58126008)(23686003)(5660300001)(8746002)(97736004)(8936002)(305945005)(7736002)(575784001)(16526019)(5890100001)(86362001)(26005)(83506002)(77096007)(1857600001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR05MB1921; H:[192.168.1.101]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: quantenna.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?windows-1251?Q?1; BLUPR05MB1921; 23:f8qznraVCRIfXpkNv0JNc1+C4KFU9XaN98Tv2?= =?cp1251?q?RsZTDPFjfaOZiy10BI6iG9IeR2y6E?= =?cp1251?q?z6JhWrDBEsEF81G0MASnVMqOxYSjSit7zS7FKftyCwZRqwhRuWz8+gh?= =?cp1251?q?xtT7fELFAnJfPJhdJUklRp0tjupNqv/yUa22pDcw/Bo5H5jSnR7imCy?= =?cp1251?q?uK/Ik+uF4FFl2WhmJQRcryQOMIsCFHXkyAFqd4wl1kLfhNGKcaxTCfY?= =?cp1251?q?051cisers48Jo84fuZWvfQXZelWK5UVoY9bIJD0EXlseOX609shm9Vz?= =?cp1251?q?NE9aKj49ysFyJUNKOIdF7yXF9IszVku+7weG4QrMPxgtluGS2eCFHPf?= =?cp1251?q?JF9rZ98NgMNwKGUjAd+ZCHPOCeQ4uf7qxkrlaRh0XLVPdt87KTDUl80?= =?cp1251?q?srn1omvMhEWSTcmkl9aG8KedfO84MrtjOcuRW9r6N+FUrEzflZm2CYb?= =?cp1251?q?bzarqS7R8ScI5XZuA0j5q21FHNGaSMEEAGsx5IMSso7tMGHfUN9Wtdr?= =?cp1251?q?/2VPe4dbODidn1MuF/h2yPO3w0Jmyc1QNT8PnvGtQjnzkpk7tsjRdJ0?= =?cp1251?q?sxH62qW/v3VkUIWvFwnmNIXq76940zyoEALO2xbr2u7pO9AWK3rev0J?= =?cp1251?q?eoModpIlwZO4tL+FkwF6BNiDpttIE/eybNRpn+TCrdWPnWpURo8A/E5?= =?cp1251?q?6r9+IAdapoOyATccHjFQ6hAUn8cIifKc28ppff5x12EsDzoA1IWZQGB?= =?cp1251?q?mtkhERzVcmVIjsjn8KlVF6fqbx5P4I0thweupGuInunyvk+qShSEA+0?= =?cp1251?q?L8FgEwTjpgAUAg/P5aCLVpT1CtlzQxGRagbh684bEkTGx5E1UiPsffn?= =?cp1251?q?XUZp6MQwUw/P0a45wwYgwRzBWNjsNfTumsa6iUOx3yAXuG2MWjwXH03?= =?cp1251?q?La7/CGtFL7mH5/J2qoYr4CoLRPCRx0/4+Ax9pseRZ7l9azSce81GYsn?= =?cp1251?q?NRIrCilM148hHEBg4myBR0OG+g7R4GOMBTxtFJXJ9+uVGgTGKGm/FOJ?= =?cp1251?q?YhdhlgXMXJqjw9xjmVkGDo5kRbfOz5/c9QTIk8X0FMA5wJQ0+5GtkAJ?= =?cp1251?q?zRfMOjQAedpHqS8ft3atvLzqe8yZKmxmdlin2sbnR0FMwkG20Fq2sM/?= =?cp1251?q?Tt871fCOwaVydj6Li7vLtg6hnN9gWSIybryYmZD1Z2H+TlK9A/ntdN/?= =?cp1251?q?kVNW5CEdOAVcECPPO1+iJBWzQbdFqNHjdyRjMTxinrFNd/2tTbsFdbT?= =?cp1251?q?M3tJQN+OyMA9RQCDqblTWifiF182uf5LSqS+jfavsiD2gbdaZmR3V1i?= =?cp1251?q?hN41sFJN5JLNC++4/GUGs611Y06yQMFDIiZAWg18EjKmHJJM8Ph2E1e?= =?cp1251?q?ADircyEr0FvAJt/605wUjCS8y34STrxntc4MbyTqaDRgg8UDJHk1slA?= =?cp1251?q?S7DJ1doTxKN1/Fc7k/xw5MfPTB3/AEyk2k5U4y7t4Dk+HfhOINjFz65?= =?cp1251?q?OkR+N+6DRunVud5TyNmcp7WvAdoWwlh?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR05MB1921; 6:DM3yLXWMrZuT59p4/H73L6xGmd37oh+STJ1OuleaPSE40uRSvzer4COsYfeM2P7BViggbHlhwtvqZTvK99EgcF1F1l9UdyUIyDsJuieKJv4pC7zND1xlSV5I+U8aHYNSOWQXL9egYLdQax21pJv+/onaH6NDdfOeB+LFcOGgb7pqbSMKJ4YXfhMICdp3QwjbZwHjMbZ1z4x3ubIq00YkC7EEdy1Xre7JGxsCk7KsFrS/vi3MRj2/FOr52K89vJHtsuhm+Wbvwqaiz1IdusfH54kha86DCUN/FYTZ1F0B1Rk4fsH/AZNA8l+oawQJkeOF3yrcNF6ypTek/JvLxnyIh3XhI/KznGC+9qEprAa9lng=; 5:/agAfIrt62HV16RshXqmQIj75ENYnMvPdo49ORnN93TF9q6E69DlOKpe1Bq7iW8HCGEaGYy2BL5Pgfol8d/am6F3y5frU2GjjQBFqVtXAhSqL6MNXZdbUqcqTkqSKL4JbdNM3OIKpW+1iwv5pKQZNyrVwWrrflNDBhVK+ispT0U=; 24:gxlU6gl7qebWtRljnjIIaynbsQPpkchnSaRDYMF0w0c7qyW8pfOHy5DsYCRuFZAtLzZWM4NM+f4tGgVKq7u47yaEv6dXgzNt2tOyl/UYotw=; 7:DlDx8CmczpVdw79zrK9NPgEyjJgKHBl8Pq0mVrKmvgupI5atJ0vZP/g2HQHH5mJdLapSzkR2y1bN8gXeK64qEEjaFeRPByjeedS1scny7Y7h/xBk3k/QBZFOo1NzR5CvrfU4lb+B7rcPMkydsKfchfy7RhJN8Ya6aeeo3logvBjbNm0IFTN8J5HaW2BsYn9H9zLiV2leGtEYJco14OH9AoxM6olJJRhnNyI/X9YT6heInmBUkQQ3L+W9pvMtPTga SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: quantenna.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2018 08:54:01.3434 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 53324392-fe2b-4023-e23a-08d575e3fe4f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a355dbce-62b4-4789-9446-c1d5582180ff X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR05MB1921 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180217_005415_917795_5C875977 X-CRM114-Status: GOOD ( 13.65 ) X-Spam-Score: -2.0 (--) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-2.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -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: Dmitry Lebed , Igor Mitsyanko , Sergey Matyukevich , Sergey Maksimenko Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Dmitry Lebed If CAC is aborted, hostapd will continue wait for CAC completion and will stuck in this state forever. Adding CAC restart action on CAC aborted event, considering "CAC aborted" state as recoverable. Signed-off-by: Dmitrii Lebed --- src/ap/dfs.c | 69 +++++++++++++++++++++++++++++++------------------- src/ap/dfs.h | 2 +- src/ap/drv_callbacks.c | 6 ++--- 3 files changed, 47 insertions(+), 30 deletions(-) -- 2.16.1 This email, including its contents and any attachment(s), may contain confidential information of Quantenna Communications, Inc. and is solely for the intended recipient(s). If you may have received this in error, please contact the sender and permanently delete this email, its contents and any attachment(s). diff --git a/src/ap/dfs.c b/src/ap/dfs.c index 5a0d7814b..f2d357262 100644 --- a/src/ap/dfs.c +++ b/src/ap/dfs.c @@ -636,6 +636,34 @@ static unsigned int dfs_get_cac_time(struct hostapd_iface *iface, return cac_time_ms; } +static int dfs_start_cac(struct hostapd_iface *iface) +{ + int res; + + wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_START + "freq=%d chan=%d sec_chan=%d, width=%d, seg0=%d, seg1=%d, cac_time=%ds", + iface->freq, + iface->conf->channel, iface->conf->secondary_channel, + iface->conf->vht_oper_chwidth, + iface->conf->vht_oper_centr_freq_seg0_idx, + iface->conf->vht_oper_centr_freq_seg1_idx, + iface->dfs_cac_ms / 1000); + + res = hostapd_start_dfs_cac(iface, iface->conf->hw_mode, + iface->freq, + iface->conf->channel, + iface->conf->ieee80211n, + iface->conf->ieee80211ac, + iface->conf->secondary_channel, + iface->conf->vht_oper_chwidth, + iface->conf->vht_oper_centr_freq_seg0_idx, + iface->conf->vht_oper_centr_freq_seg1_idx); + + if (res) + wpa_printf(MSG_ERROR, "DFS start_dfs_cac() failed, %d", res); + + return res; +} /* * Main DFS handler @@ -719,31 +747,8 @@ int hostapd_handle_dfs(struct hostapd_iface *iface) /* Finally start CAC */ hostapd_set_state(iface, HAPD_IFACE_DFS); wpa_printf(MSG_DEBUG, "DFS start CAC on %d MHz", iface->freq); - wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_START - "freq=%d chan=%d sec_chan=%d, width=%d, seg0=%d, seg1=%d, cac_time=%ds", - iface->freq, - iface->conf->channel, iface->conf->secondary_channel, - iface->conf->vht_oper_chwidth, - iface->conf->vht_oper_centr_freq_seg0_idx, - iface->conf->vht_oper_centr_freq_seg1_idx, - iface->dfs_cac_ms / 1000); - - res = hostapd_start_dfs_cac(iface, iface->conf->hw_mode, - iface->freq, - iface->conf->channel, - iface->conf->ieee80211n, - iface->conf->ieee80211ac, - iface->conf->secondary_channel, - iface->conf->vht_oper_chwidth, - iface->conf->vht_oper_centr_freq_seg0_idx, - iface->conf->vht_oper_centr_freq_seg1_idx); - if (res) { - wpa_printf(MSG_ERROR, "DFS start_dfs_cac() failed, %d", res); - return -1; - } - - return 0; + return dfs_start_cac(iface); } @@ -768,10 +773,18 @@ int hostapd_dfs_complete_cac(struct hostapd_iface *iface, int success, int freq, int ht_enabled, int chan_offset, int chan_width, int cf1, int cf2) { + int res = 0; + wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_COMPLETED "success=%d freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d", success, freq, ht_enabled, chan_offset, chan_width, cf1, cf2); + if (iface->state != HAPD_IFACE_DFS || !iface->cac_started) { + wpa_printf(MSG_ERROR, "CAC complete received in wrong state=%d; started=%d", + iface->state, iface->cac_started); + return 1; + } + if (success) { /* Complete iface/ap configuration */ if (iface->drv_flags & WPA_DRIVER_FLAGS_DFS_OFFLOAD) { @@ -800,9 +813,13 @@ int hostapd_dfs_complete_cac(struct hostapd_iface *iface, int success, int freq, iface->cac_started = 0; } } + } else { + /* Restart CAC in case of CAC abort */ + wpa_printf(MSG_DEBUG, "DFS restart CAC on %d MHz", iface->freq); + res = dfs_start_cac(iface); } - return 0; + return res; } @@ -1074,7 +1091,7 @@ int hostapd_is_dfs_required(struct hostapd_iface *iface) } -int hostapd_dfs_start_cac(struct hostapd_iface *iface, int freq, +int hostapd_dfs_cac_started(struct hostapd_iface *iface, int freq, int ht_enabled, int chan_offset, int chan_width, int cf1, int cf2) { diff --git a/src/ap/dfs.h b/src/ap/dfs.h index f0fa6f688..2d1532815 100644 --- a/src/ap/dfs.h +++ b/src/ap/dfs.h @@ -25,7 +25,7 @@ int hostapd_dfs_nop_finished(struct hostapd_iface *iface, int freq, int ht_enabled, int chan_offset, int chan_width, int cf1, int cf2); int hostapd_is_dfs_required(struct hostapd_iface *iface); -int hostapd_dfs_start_cac(struct hostapd_iface *iface, int freq, +int hostapd_dfs_cac_started(struct hostapd_iface *iface, int freq, int ht_enabled, int chan_offset, int chan_width, int cf1, int cf2); int hostapd_handle_dfs_offload(struct hostapd_iface *iface); diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c index e4a458107..58e967704 100644 --- a/src/ap/drv_callbacks.c +++ b/src/ap/drv_callbacks.c @@ -1398,9 +1398,9 @@ static void hostapd_event_dfs_cac_started(struct hostapd_data *hapd, struct dfs_event *radar) { wpa_printf(MSG_DEBUG, "DFS offload CAC started on %d MHz", radar->freq); - hostapd_dfs_start_cac(hapd->iface, radar->freq, radar->ht_enabled, - radar->chan_offset, radar->chan_width, - radar->cf1, radar->cf2); + hostapd_dfs_cac_started(hapd->iface, radar->freq, radar->ht_enabled, + radar->chan_offset, radar->chan_width, + radar->cf1, radar->cf2); } #endif /* NEED_AP_MLME */