From patchwork Thu Apr 12 09:49:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Oh X-Patchwork-Id: 897585 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="ejs4TlX9"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=bowerswilkins.com header.i=@bowerswilkins.com header.b="cWWYVfc3"; 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 40MGPH54HTz9s2R for ; Thu, 12 Apr 2018 19:50:43 +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=KH5oseCEIyZe8liCoTgBgH0xAyFEp/bFZwdzda2eccU=; b=ejs4TlX90sucI6 PYFwAlNotQjFOGB424W3f9DQrb7yLLghKE0OtKpEQZmIvIVqCRNSsqJ2FZ6rBNS2AP0Vik2kAHOEl +L2A36sVDcHX3+WM9zWF/6O/XTA8pPlZTn4QPxJd5HWz6c/hBWBV9gJKvyV1TzBCNu7bEeuWfW8fT 5g6KciAnO/3HxTV4x6fpG0Fb2MrQleyoWlSlUmOSA/xZdbGyqh4UM7Ezmik22waWjF9F/44VvG7yP l3zlZ8cd1s/zfJr3kOcR3cOeTXNmCQ3Gk0ZneiFQSr0Z64fBclKPlszQ87iRyKB4ljpoAu4hFmy2H ikIA5KuRcpU/QmTWxiFA==; 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 1f6YsL-00068O-9a; Thu, 12 Apr 2018 09:50:41 +0000 Received: from mail-ve1eur01on0082.outbound.protection.outlook.com ([104.47.1.82] helo=EUR01-VE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1f6YrZ-0004Or-Tn for hostap@lists.infradead.org; Thu, 12 Apr 2018 09:49:55 +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; bh=qkIokgFPJFYyNCi1/yTFh6IOB5JvQIW5+9/kWA3dMy8=; b=cWWYVfc3U2wXArxVhti7WLwd1PsTvVMSaKq58nutfdEO8MqxMNyKr1GERraQ4kzTBBdSV+uBEHabufZO3Ou52KoIEFke/3krhDpxdVYehdciF1J2VIlgoOgCmSHXsRck5sbWBc6NN0mgG1WEtx3tI3iAdt71UNWzXyyUn1YlCxE= Received: from smtp.office365.com (2001:1900:2200:85:7904:f0a9:f202:eb99) by HE1PR04MB1660.eurprd04.prod.outlook.com (2a01:111:e400:59aa::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Thu, 12 Apr 2018 09:49:38 +0000 From: peter.oh@bowerswilkins.com To: hostap@lists.infradead.org Subject: [PATCH v2 04/15] mesh: use setup completion callback to complete mesh join Date: Thu, 12 Apr 2018 02:49:01 -0700 Message-Id: <7324d8b5557dee9ed8ad43c874d67cefcaedeadb.1523526306.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:7904:f0a9:f202:eb99] X-ClientProxiedBy: CO2PR18CA0065.namprd18.prod.outlook.com (2603:10b6:104:2::33) To HE1PR04MB1660.eurprd04.prod.outlook.com (2a01:111:e400:59aa::14) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:HE1PR04MB1660; X-Microsoft-Exchange-Diagnostics: 1; HE1PR04MB1660; 3:YO9LpxosdAKBc46IaL5g2Fe24IQ8Y4U0Rbgw3Y53Z20ZuOIGSOHz3XgoPWhqOKLn/oXc2tP3R9PFSrN0/wXYCbjHMwLHRgiwtpdFES2d6P9kkeuEzCTtYIcxkfrTWQDMz8oY7wxj7R97Qadxlv2GWvDyOQwoPlyCJFYzBuzJT7lgW3TS48wVsjvXytMF8D1es4qHhWHfEjKEDlgBshVtbjUd6Wbq6ah1gJopmcqWJx97TLSYXxdvcprMauw1EErf; 25:5DxMesZbqAWi4v/+3QMiMeTXz9nByB0vK71k7xLp7DUz8abnglLdCtNGw6s5If2mF1K4oFfZ/LTkIWMLPCyCUJFckxu0yv2CcoOUpMxr0JXAMNQpIyuYT5kaOsbKfYVBPLfVMllKbR1fLmOqMWsmeSLQsgU8bo9Y6e/ENJSeg45d3GPIGhrQSBeXUghJQii2z6g81WiljEHPkBhQFpQDM/mP2Hc8QfX0zQSweXMWeLOQPRt5EBNUAv2fxwushBwSsru9CIIp/OVBZtKfqiuT+li0P3x4BoYdzLhJcXVh8zDaE0ogQD7ry6fLH6avWymPA7j7eqct6WYuj9A3hOqBEA==; 31:VF8By30GbO8B6ct5ZSnwXwtSRDa245NytzABEmBPtZACgI9YapZF+nFT0iSpUKyQnrRMY+AJhTD2Ua6V++N3NailrBP5tZIOGe3r0J94WELQ2+3kxr0yd972Jjv/OOy3MML1DmtaVlElzaRyPCypbzU4mXvyp4uMMwBRWIg8jqgWUsWtcHfvcc/v+3DBL/WWpg+YBJqj6ir49DwXQzJ7k/lN3MsVqaxKdkq32BoHSX4= X-MS-TrafficTypeDiagnostic: HE1PR04MB1660: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peter.oh@bowerswilkins.com; X-Microsoft-Exchange-Diagnostics: 1; HE1PR04MB1660; 20:YjA6kY9sEh5ay61fZneY8OEMQauRNf/EuyErbkGY3rutsqAwT0Bi+FU+aezWGmixxfBOZzHgMHCeGe4rWG7ReDQnswCPJ23eDe5iBeXR/OBp+OxpnvZO2SQQF9LNWydRFGmPxFRGpghyezJuArMcCszS79O+1Yhz1Gu6NvVB03PqTztxJtDNZg1xV+c4Jitc4z9MkjkrxVV0Pv22sxRsib7vKeVdk/OHnKzXEm9CF2zKXPaL1loFe/RADNd7v7eQpd7UAN4oSVIgG5JE5BL7qj7xrt9FpAsKJJk/N872nGmRJoGee4XW7LZ7a8fZfhijBq6BuJu2t64y8lszMQHB+g==; 4:1NrBZ0gh4mtsSULcH3BeRrAgMIoFjXIAnNib9ZYktaXT5lplEbhNuXADEs2V5hs4Yn8hWy/hGWBkD/iRtKQYcF5XogwJQIGSPn2X4llE4nXhDFwoubyN54qPsIBcLjcH9d1BvFLAhbj8I11+EobrqGKLHqjuFREDXUInESR99XeGN1fbKDsUNW85KoP/0PP7TKhVSgbo6mvhbeLe+HSbloujIDtlCjutTKL4RrMP+qWzDV8ub0NO3DgiyD9fLfctJknnpBx6AeVIjgkgNGBgDw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231221)(944501327)(52105095)(93006095)(93001095)(3002001)(10201501046)(6041310)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:HE1PR04MB1660; BCL:0; PCL:0; RULEID:; SRVR:HE1PR04MB1660; X-Forefront-PRVS: 06400060E1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(396003)(39380400002)(376002)(366004)(346002)(39850400004)(199004)(189003)(8936002)(16526019)(50466002)(85782001)(446003)(186003)(81156014)(46003)(8676002)(69596002)(476003)(2616005)(486006)(81166006)(6666003)(48376002)(118296001)(47776003)(50226002)(86362001)(6916009)(11346002)(68736007)(16586007)(6116002)(2361001)(2351001)(6486002)(316002)(106356001)(97736004)(105586002)(53416004)(33896004)(76176011)(51416003)(4326008)(386003)(305945005)(107886003)(25786009)(9686003)(7736002)(52396003)(16810700005)(53936002)(2906002)(6512007)(5660300001)(52116002)(478600001)(6506007)(36756003)(85772001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR04MB1660; 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; HE1PR04MB1660; 23:6IvIowrxGDzO4IWfIU/N1aL8zJX2Al5YW3EyTHlPg?= paPyhQ6gi5AVDh0Hsn81zLDzc8BGQG4OxiMv3VG6NVl+ilgHuhyj9+RI6w7vXyI3LzZ+TmEjsRNkjpPhu1qrMPZ+47UxdP4pCVshstil2/ZL2CXbzvyoziF9yQTAVuQ71S1+5eAA/rbRUCaP4LnJmIXNT5SWHUioX6VfLBbq4rjkdKpy3GEjF3eI+0qEyA2OjrjLIlOVySUWJHc9oghABeYMFV3idQ0RcSOyQMM0mkNT+sAL91ceboPgDcxHx8FwL1p3ZLZAmfyOlcnDzCLjYmSXQuxnkJtqNzrL0e5vMMkpzyeYJnpb9+lpgAzsy78RoKEisdByOXsdOMCYuS+7/yromTDS1JS03WnNgHZ+aQ8e92y/NN8vC0GCT2LFdUWDye9O+f6zhl/u1+Db3ejCsWwsGpg8bOFiNU30dDJ9+KSyg19wyhBzitMJZQsIYjq3Lqjb0hInU8NzgyJYmeqIE860IMUXndKMSXirB3J2N91G8cvrrHVk29bVbyLS268BD4JNtM/9ezbf4TLwFGtHVIE7NASj7f2DFFen/BkXW5oLB7TJYJMLPjbp+3syv/uN7d7cpSo1dGJR7swCAaQxmnZDTrZ7BKWVGefd1Wg8ycS5lK8Bleu7LJgnN/ToeJWCW+cTAAhU9VmUBFzWKtwLu2c7TgODbvXpsrEkLkktNsIvvHtn1HaB+mXQbiu22oagJkcDMgB+8Ok82qRyychFNpLWugGsu8XxAb2dC33BIERSoqdfOVT4KLIGX8A01UBOiXLYHJx8qnX4lMctONHGd5J1RdgUUH1l6nTvkHZ/565w45+cj1k+ZtiAtSdTT59DLkHAthVWAyoVjZxCrF03iDrulgcd2eQaTCeEHwql4WTFZJz4/nJef6x2yCkjZ3MLeb2SByVnKJxOf1V7rQznLDTFsMHY11OKmLIGLHOyUARZena8/Abo5kG8o9nSEHtwgBbJJPGOX4kQTyoJgyTKIouIoWBfX8k6BbLFc+MOmTr23YzenZyFtfz4jPutkNTUsbmheBRLMu7ZenmlhJ5zqeW1WjT8cOqYKb7s+aLCY1r+pngMbJHp38RxE8VhcRLGORoWbvQ91wmUsQ25xjdm+zQDfizPkrA1DJWXVHGyfDAF/vCD1Ei5GCCIPsjOhHXnX+jD1fs03PCRpiV73cU8FLOKWeCtwp9OzRwDsFuXau2NCjQFJiV4CPz+AWp2xWs+mF90g0GhX80jxc4pVMTkYdUlD28278ovvx5l23U19K74FcMfB3Ak7Hjhwrvl9eilcj8PPC/Vh6z3uNpnlMd7vxHaWugSYr6mXcKivlhY2+m1d9ptZkNo8D2HVoRboHMm/khqOjzcrxRK2pEjIwErXm9KXnCif0t17sk8IcUU9MwXher+pkfi6Auc0gtueQnH1YpmFJ06SX2yMKiu6wJj+55 X-Microsoft-Antispam-Message-Info: CPqJSJ0tHw/bFqepe5GG4EUJMGsFfSQfWcJ+eVWftjYDoWEOked+9EJO9lbsxTMQC8PHuoDYhJg6LIkkqZesx+iSfKGLDVtUlD6oByeiVyDa7WLsR3WnDWRZ6cg9QPgJKF/IpGVQa3yrYMMjE+9OKXFeZGpweStu5JRbizFUgvPhv41gA2zkA/ly0qyr5crX X-Microsoft-Exchange-Diagnostics: 1; HE1PR04MB1660; 6:rT2gQHtX1YyWCsa/qtQO/8lNtD+RyIZFKE+NyBirp+5WURrqLdv1Nsf1UJgTd/lxI2tlKCYFU2k0j359vdLkuX8KX5SVvnDwBTvDG0MW/ORMLgM87m/aD6Gh7yQxB2PKOcZL496WFtnbWiBl3TQb4nIlQnWQdfO0jojqXIXj4W4pxXRUMkk4DYozT8Q509lyBSsy/9die4ZGG1YCd2YzPmUxBuW8i9seF3XbLxuETnXYvj33D5f+EhasyOrtb9Qj6TzUh682pzMfRuozTX93MhuXPknrJum0b67Kh3ElPpsHi+eIJE8Qo68A6pfctQdxKL7bd48oWpJpeI2eMQ+4AtjAGdurhmEBHIDNDdkEiuevRosCIgQWAByc+L6ulxSZXuoxWhDWfqyqtutr/1BH9ZItR7zkWp2Ux/o8x7e7IvlBgJEN0cfW2mEj53roe81r1ajmweZTvHmYSpYFZJu4Jw==; 5:ZUIA8jsVXrmXVhH3Ymab15fzxOUpeMF3/QHzzfifNYDA7i0bd19NzXx+nrBZyMAzRF6aE9jZumuM/8YgnNfze0ydyDj6lLPQjQbM0VboGf6TjqYUutNv7BWwt+qhdhkvKLMFBnNHqfYaVkK7WkH+R6j3bOt903htC/PHK39R4ng=; 24:v06lLhpeWcN6iMxFuNms4/GTwt1oyBekuojP+D5S1tRhGsriCnr3RgY+zL+61tNbIMLEi2cbMw6y4rYxyEhq/ZHv/ug4zxCdhxGJpobj3XQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR04MB1660; 7:ir+L8VMPjUpML2TyqthYUB6tmtjNAtn+doinkMDeLH7Xsrqsa+xZxDyIXoqokS7rc8RXINA8AbbJv2ImKsRFHKJ1r3wF4FRGh2dh7fJsth2VXqPAlLxDabqMpeJOCtWDfNS5x52jFMIZgIyYiT4wVR9HTZoOuWQNmp44OEZftw8qgsxHK6bs1064zVjl5a6yr5b+RGLr7odDd89Wx+Ae2SHUycxSsbFRHc90zW7rbph21gT4MYLc2jejU630tYDC X-MS-Office365-Filtering-Correlation-Id: 550ee231-1e46-479a-63fb-08d5a05ab59c X-OriginatorOrg: bowerswilkins.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2018 09:49:38.9250 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 550ee231-1e46-479a-63fb-08d5a05ab59c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a75a45bb-4772-448f-a2c6-9d2413d86410 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB1660 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180412_024954_053828_70A213A3 X-CRM114-Status: GOOD ( 12.07 ) 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 [104.47.1.82 listed in list.dnswl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender 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 is not suitable for DFS channels to use, since mesh join process should be paused until DFS CAC is done and resumed once it's done. Using setup completion callback is how AP mode is using for DFS channels and mesh can use the same way. The callback will be called by hostapd_setup_interface_complete_sync. Signed-off-by: Peter Oh --- wpa_supplicant/mesh.c | 7 +++++-- wpa_supplicant/mesh.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/wpa_supplicant/mesh.c b/wpa_supplicant/mesh.c index 88001a1bd..c5b8379cd 100644 --- a/wpa_supplicant/mesh.c +++ b/wpa_supplicant/mesh.c @@ -215,6 +215,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, @@ -231,6 +232,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) { @@ -372,8 +375,9 @@ void wpa_supplicant_mesh_add_scan_ie(struct wpa_supplicant *wpa_s, } -void wpas_join_mesh(struct wpa_supplicant *wpa_s) +void wpas_mesh_complete_cb(void *ctx) { + struct wpa_supplicant *wpa_s = (struct wpa_supplicant *)ctx; struct wpa_driver_mesh_join_params *params = wpa_s->mesh_params; struct wpa_ssid *ssid = wpa_s->current_ssid; int ret = 0; @@ -495,7 +499,6 @@ int wpa_supplicant_join_mesh(struct wpa_supplicant *wpa_s, goto out; } - wpas_join_mesh(wpa_s); out: return ret; } diff --git a/wpa_supplicant/mesh.h b/wpa_supplicant/mesh.h index 995210236..2e2231b68 100644 --- a/wpa_supplicant/mesh.h +++ b/wpa_supplicant/mesh.h @@ -21,7 +21,7 @@ int wpas_mesh_add_interface(struct wpa_supplicant *wpa_s, char *ifname, int wpas_mesh_peer_remove(struct wpa_supplicant *wpa_s, const u8 *addr); int wpas_mesh_peer_add(struct wpa_supplicant *wpa_s, const u8 *addr, int duration); -void wpas_join_mesh(struct wpa_supplicant *wpa_s); +void wpas_mesh_complete_cb(void *ctx); int wpas_mesh_init_rsn(struct wpa_supplicant *wpa_s); #ifdef CONFIG_MESH