From patchwork Mon Aug 27 21:28:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Oh X-Patchwork-Id: 962648 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="JtOw79TJ"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=bowerswilkins.com header.i=@bowerswilkins.com header.b="kLB7t5++"; 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 41zlSV3F4Nz9s1c for ; Tue, 28 Aug 2018 07:31:22 +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=XJq5QFy0K2QdYvsWQMmA5ylPBv1jfgUrAIil0dhJlVY=; b=JtOw79TJhBbScQ UkDCi93zTjiKkNBjSDZAiomNxkJeqvcREjKvPamYfG0kVpHntz8Y1/Gndm8PCyiG4OjNq3++uJuS5 RDzo22y1a+G4PUQgTGdvZ5tjc/iYHX35FfmUbV5A5MAg39QvnJceAHHg5W0/K4l4DE9BUMcvW4cdm GunJot/L/pLnkAyrlyBoikavwVal5+CyjThn8+/aPPxk4Ug6pBpzmqci64SHC0pfr07j31EAZRW0r Px2sQogljPWwOfgiWD+D6sDIVBPiXvhFWKi/oikZYlhzwf6kWhSqK+Vbcx/eEA6B8nHqRm7WHHd66 ZFNzWcXQU2n7R7n11/lQ==; 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 1fuP6D-0008Ud-S9; Mon, 27 Aug 2018 21:31:02 +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 1fuP4d-0006Qn-1f for hostap@lists.infradead.org; Mon, 27 Aug 2018 21:29:24 +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=0PeyXz2isNKE4l4YKNsbaoxOoJx3KsD2Z+HnLkzGpT0=; b=kLB7t5++cAQKWNIR4trVOegeNv1e15WCwCq9+m48b+tjAuxZ0repQLQ7IMSla2PMNsgJ+DhIwi+YIwBmHnPAPoVo4UDcwnW7/YWh33UvOeJn2bS2VGaF0dgPbQiPsnwWK0Kmj0jntpQmgNA3Y3b0GbA6IY6qxE2i0Cu9J50uLSw= 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:05 +0000 From: peter.oh@bowerswilkins.com To: hostap@lists.infradead.org Subject: [PATCH v8 05/16] mesh: use setup completion callback to complete mesh join Date: Mon, 27 Aug 2018 14:28:38 -0700 Message-Id: <7753a01a155f29529c5c5e5fe8c237418ddb9bb2.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: 39d4fe93-1ead-490e-cc8a-08d60c641e58 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:yJP5Bh9blOVOfwdx9U7FGKRh8oz8ijVQE6F8cbcAAdyypQBCQpcoKWG5Uc9lCRa5HmU8aYwHSYBNNy9Jseid4YRxRpKg1nw5yXqfaezCnAXscu4LNucx0eZx7thgMFpWj7dbZMfxn12G0QZB0okBIFZfWhWnuHWTcKLV3/Ryr4zHxs5c30YuJyYyb+gD6GziDcsAFNIPMj3AEVQXR4SpikOuIy7TkWoawkBAVCGd/eWn0n1gbrBBqf+4eLHrqXbj; 25:9t0BnUVyU4GgPgMfk/XNekfRwArI41EdsjYnXxGc9hrOzbMg3c8MtmB4hBP2b391TRb2NDPSV0OslUOzJn57ZKMK/5FJMAc60P38GOOP+UsPsUaw8/dtWkp9KZZd17QuEoTpoxtzqd9tgbJH0U4sXA8VnG3lmojP3x3y9Y5dGNgg8tUiecRKGTexcTCcMgICms5G1ejQtjfrJVfGM1JmpBegvLSFBVGMxZt8xN4y1Qti1a0+sZJH9km57zwmmgnAp41k9qIZYFARDfLNoWvxjJeW/Iy6bo00U7FHDGrThZw285RtUVJn7mWvUfe4Yn2zNZ49ASKTsa8wILZ7t/9IRA==; 31:DojFbBPVazonDCDfP09icrxinZ/y8ZxOq8PlaX9UctXvrf3XSzdJlbCuIJPS2EyoiGFJA0F6T4fWrZkbRtkuIeDQoxVpK/49+ldlnhrBgO/R76KNCPMN0o4PkL6nUY6LP7deFeaTY4KXa5aFtxjsBd12mvqLzkH4HNonUBy8gh2hDEbj4u5z5aZZmVdIXQX3BYWNciqChm274Wxn+Ho50W8S+2qixkI+q/DEC+Iq69I= X-MS-TrafficTypeDiagnostic: AM6PR04MB4151: X-Microsoft-Exchange-Diagnostics: 1; AM6PR04MB4151; 20:2UXSTa7LvgZIAJ2XQ5rogjhpEZFzlCXemoMVRDOZzspz9X6346M48bduUN2Cid5j+OVpVakwe6eWQUqsybjDlghYRmw5lX/3eDZZsj3I1X2BrhgivyKGruymQ+JIuw/7ma/+mgrHwSw1liNW07ZMxh/aGPFw++VJx7ZsZz9/qRJfQ+qjbkJRVEeNrbgPWPFEeYbBLSVG4ZUG08mD/UCEE5CDMNp/QFonaiWW7ppiidjT3cRxqhJLRVqy302l5ujBk8rNQXvb1ZFlVZKjwhOveE8BCHhPcySrLAbZ9nWabcekAJn/oRj+Xlb3HTwL5V9lvR3v8pX0xF2GofdqKQw++gqsDZIbYJ0IbeXOteWUODmIuujM304BTeHwmBUJjcP0tjgIVBdb9/xPUe8p7QF1V6oaI9+DhS60oPrUXk1zPcSuYmsoVGC3VwppQ1MlhTe4byBFCn8zgnwNRdTf73o4VKXrbRPYqYxtZ0YQPmizwlnccOX9J/6g81nKS49/dwLM; 4:qK53ns/JSZ3yAhGHVRU3h7xQUQT7knYgLBrJ0+Vr1Mq8acUDMJ2A28GnZSq7QIF8MQD6PdYtJcj5io7rDcSXBVV9ENPh1WglyWRGkFqee9vNDINmOwLl2jxLFqrs/68ikFMvtBywRtK95OB8rExhZvhZfaVPnyvEDFAC9tcf7CfES7eRLlp3Aoz8nR47rOfFGrjipnV8gGZ+djMjT3Y0VGM268qjX9/Y6aByuyTzsGamo0l9/hxo+x293NnxcQZvxuBIhjR/CAJGQoaJD6BqDA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; 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)(14444005)(6666003)(5660300001)(36756003)(6116002)(69596002)(7736002)(305945005)(53416004)(51416003)(76176011)(186003)(52116002)(16526019)(106356001)(2616005)(476003)(446003)(11346002)(6506007)(386003)(52396003)(97736004)(81156014)(316002)(85782001)(33896004)(16586007)(86362001)(486006)(46003)(118296001)(8936002)(47776003)(50226002)(2361001)(68736007)(107886003)(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:PRrMT5dzyZPwzAH1oxHOvvfdjKlhK19G4mAQH0FrT?= 5mPYFLHE1j0fSsz6ff3IpFmXn//fXgScFxa2N4pW5+1/3vWlnO1t7+d7TgN3vYB3kTI51JZIVzaeml/pkVKiYVhG8ZjXkR3JjIf9WKSusPe9tnqsv0CMgy6gfjnugQcgYZKPqxBqk3wu0ET19V/jAp3YPxhKqMAgVV94moFc8mUn6W8z1lBjEJe0bErxQb7Y7Xraq0kpLEwlTe4hHP4/8Uu5xdjmSfwR+9HnoL2Xnsrvwa/bf2v3x7jfKifqTCi25hqagh8+9J3C7aHxTX9G5mQ93whDPQmEzia7FsrBOpArkTzm4+2FTCJjJYohH1YPYZwzx3i6tGK01P7g61PkacUPcAsXnX8S6mPu3jFHykbrC8ndmBYltNg0j9c93uF4q5CbrA4zahnkXg8z+vojCOExVxrZcMGKFLNsptY2VDy8hiNH7z9KnlP/nbLtsfKqJIEKgn8qTxn0sOFQ3kSIC34nHgL/dWbX9Gug2NLj5RmbEgY3gYgCitoH/QgukeArOB8EfafMvLFab6SiD6NRVoQ7AgkcuNDxi9qry6EN+gUfIh1OkHSpka4m8f3p/TnzlOGSdDX2ZONc70s7PL+BUGAme0dApHgdUFoUHjCeGrirN7XECZh7U/uArhmCiYsxP7r3r6AE5EgS70EVC9itzrqse7dewyJsRIogFpr4G03m6xZurtCsX/kPASSM+gR7BjaqqHZmZWPPk+uq/kQJrG+r897XirAyHrAvSLEPvvsbySqvTRHFkNHYgRy8L8/o+Pk3KzL86V+3V7rEelW7lM9ZTFIu/l4y2koJ42BVKSwVs0zQojXx7Tfa30EHvm1TwhADT1GPAsR7NphCkBGfYxGKEMOOWIhTVdBxcJl9/OJ+FV4LzxKJM986NMPoy+kvOg/ZcwKpbG0pcv3Gs1yn2b7sXqLaCBByD+GhQZiVTAu6iIA0fshqNQ+kXpvJHYWgSu6S6VsdHacoieI/+cJMCdBJxhZ0DhrzlFy2z7i9sYM1CJhPlRc6gLiWEpTKpeMTNd/e3tCERDNuC/NjEoTuhy0VRA7mrfHba5VOEh3fE1Q5pnm0mZEmMspk5O+9Qb4ompLYxGskjBKsTdlcIZHxbka2DFEhrXldXGxbOWPMLD+/fzT/yibABrwOKoQGz0v2bd/d9t9LJ9MDy0YweLkV7rDzdFg8FKsG56ge6BNJC4quDV3QXaXiGA94xlm5RJZL94gPZhuN6MzrOoJa0WDv/Ze6asNzkCBpwEkV1keCk38T7vpQFqPh2sdnawtepTjV3RmSkUbVKZjc9IPC9KOUJlQPR5UJyrD72VqgB81vDIdbU9AIIX2l3hlzivYkvtntrk= X-Microsoft-Antispam-Message-Info: m5bGPJRwu8/Lt3xBKdxI79cnuNN/fxAaC7vHTtMI/NCfgNgmHJ6dswnImeA8QY7Z1Q+b0Ea8f7G4ZE7hxhKms/K0kWzGej6IJVcz+Z3TxTpUj3xi+PeQRRjis9cG4cCZvU/yWMt0/ZRfomem9rHsc0udsNv0NzwYrucsdgdV0BOMDEciRvmuV0vo+nUIAawMraJB19/AJTtOWX2Rn5nr0PLnsUJjCi3t2l8SIoBMsPet2uuwgHV58qODjNdy1REyJT12PlUQRnNWJoSnpQV7v+1wpHk0pCC0Mm4A85LwzeNv5mf5DNcrCAkfDmspPwF0UL5CBLlQdyQ3qKQUMpgKHwJUM8cYCm24BI+GCfZ3SnA= X-Microsoft-Exchange-Diagnostics: 1; AM6PR04MB4151; 6:JrTVxyZkJ4Sxix+VdF7fGK9AbsNFo/jORu9w78GXqfDvzoKT5yb1Wbx/LnBgHd8mmdNEv1EVuPaFMj3OjOzQ4mwZGHXszwMQuBR9DLTmw4Xo6Y6TylY+ef09n+ebnvMcYh6xXXDYkkQ4/I+Q+Fqg2ct0sJ6yCSDMIeDXlX3Dr7EACJqMrNxu6+CwHKBq7yU0kQr7FveGeZm1ZC3as5etnsffamTbhe6B+FIRrdcO82gebdoZi1X1sEbiqtHZDcqevfnL1WW2iLP5gh8YnclhgBDolalg6APYlLSZ2bF0p79cUsrhesYOa7SY/LOESWzw65vpUa2i3OaAZ3iqSiwyEqwESfJtK7l7UnruycQu5Ry1ePXcc6ndARazmb7EdHky7LjaEWYqt10In7otR6ueWZaV93xcARkw5FAynAM6+a+YnPqXjjyQ14It9hc+Hk0beolkt7oL0tnamKTX3v10AQ==; 5:lbeiqVb8AToBYIJp33EfI43duh1Fkq4LKCt1v6BHjDWoaqA8KUWHbkKYBVEWN0iUffABdV1NKijBhkNEGLejCNQE2v8dJY1yR59aVKZTgM0eB0q9Nt3MLPC15BqtS3l2ZqgB0N9aA5B15HA/XkfmQR0jUV/jFxChFmK0iu22t9E=; 7:QzvWQkvvRx9mFuxILgo/fOAa3OlteCtN3fwj4ogvoJgHOO76X9TARfNbeatHHDiuvVhTBedEfXacMdJIUyruMYZ+hmUvaBm0nIOiB+vxqu1VfO/eW5hoZj8PjSu+P4C+4Ru+Z3+7O0aFV80k324V2rFQU0wUKsZE+eoIwekJ1VCHfGlMYoZzpDcEaSPS8dLagyTEBbXQWemLUdZjxXltcLdAxA/zVIqsGKV0DfTVyE2j0jPEIpcIbOVA1ATIp1jf SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: bowerswilkins.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2018 21:29:05.8248 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 39d4fe93-1ead-490e-cc8a-08d60c641e58 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_142923_134765_651C0760 X-CRM114-Status: GOOD ( 12.55 ) 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: Peter Oh Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Peter Oh mesh join function is the last function to be called during mesh join process, but it's been called a bit earlier than it's supposed to be, so that some mesh parameter values such as VHT capabilities not applied correct when mesh join is in process. Moreover current design of mesh join that is called directly after mesh initialization isn't suitable for DFS channels to use, since mesh join process should be paused until DFS CAC is done and resumed after it's done. The callback will be called by hostapd_setup_interface_complete_sync. There is possiblity that completing mesh init fails, so add error handle codes. Signed-off-by: Peter Oh Signed-off-by: Peter Oh --- src/ap/hostapd.c | 11 ++++++++++- wpa_supplicant/mesh.c | 4 +++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c index 23d2720..243a576 100644 --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c @@ -365,6 +365,8 @@ static void hostapd_free_hapd_data(struct hostapd_data *hapd) #ifdef CONFIG_MESH wpabuf_free(hapd->mesh_pending_auth); hapd->mesh_pending_auth = NULL; + /* handling setup failure is already done */ + hapd->setup_complete_cb = NULL; #endif /* CONFIG_MESH */ hostapd_clean_rrm(hapd); @@ -2031,6 +2033,13 @@ dfs_offload: if (hapd->setup_complete_cb) hapd->setup_complete_cb(hapd->setup_complete_cb_ctx); +#ifdef CONFIG_MESH + if (delay_apply_cfg && iface->mconf == NULL) { + wpa_printf(MSG_ERROR, "Error while completing mesh init"); + goto fail; + } +#endif /* CONFIG_MESH */ + wpa_printf(MSG_DEBUG, "%s: Setup of interface done.", iface->bss[0]->conf->iface); if (iface->interfaces && iface->interfaces->terminate_on_error > 0) @@ -2174,7 +2183,7 @@ int hostapd_setup_interface(struct hostapd_iface *iface) ret = setup_interface(iface); if (ret) { wpa_printf(MSG_ERROR, "%s: Unable to setup interface.", - iface->bss[0]->conf->iface); + iface->conf ? iface->conf->bss[0]->iface : "N/A"); return -1; } diff --git a/wpa_supplicant/mesh.c b/wpa_supplicant/mesh.c index 0740dc7..7b014b7 100644 --- a/wpa_supplicant/mesh.c +++ b/wpa_supplicant/mesh.c @@ -260,6 +260,7 @@ static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s, if (!ifmsh) return -ENOMEM; + ifmsh->owner = wpa_s; ifmsh->drv_flags = wpa_s->drv_flags; ifmsh->num_bss = 1; ifmsh->bss = os_calloc(wpa_s->ifmsh->num_bss, @@ -277,6 +278,8 @@ static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s, bss->drv_priv = wpa_s->drv_priv; bss->iface = ifmsh; bss->mesh_sta_free_cb = mesh_mpm_free_sta; + bss->setup_complete_cb = wpas_mesh_complete_cb; + bss->setup_complete_cb_ctx = wpa_s; frequency = ssid->frequency; if (frequency != freq->freq && frequency == freq->freq + freq->sec_channel_offset * 20) { @@ -503,7 +506,6 @@ int wpa_supplicant_join_mesh(struct wpa_supplicant *wpa_s, goto out; } - wpas_mesh_complete_cb(wpa_s); out: return ret; }