Return-path: Received: from mail-la0-f50.google.com ([209.85.215.50]:49623 "EHLO mail-la0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753782Ab3KKQ46 (ORCPT ); Mon, 11 Nov 2013 11:56:58 -0500 MIME-Version: 1.0 In-Reply-To: References: <1384119945-31213-1-git-send-email-felipe.contreras@gmail.com> <1384160932.14334.6.camel@jlt4.sipsolutions.net> <1384184624.14334.31.camel@jlt4.sipsolutions.net> <1384188067.14334.45.camel@jlt4.sipsolutions.net> Date: Mon, 11 Nov 2013 10:56:57 -0600 Message-ID: (sfid-20131111_175703_194804_E9A15B08) Subject: Re: [PATCH v2] mac80211: add assoc beacon timeout logic From: Felipe Contreras To: Johannes Berg Cc: linux-wireless Mailing List , netdev , "John W. Linville" , "David S. Miller" Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: On Mon, Nov 11, 2013 at 10:53 AM, Felipe Contreras wrote: > On Mon, Nov 11, 2013 at 10:41 AM, Johannes Berg > wrote: >> On Mon, 2013-11-11 at 10:23 -0600, Felipe Contreras wrote: >>> > This isn't really true like I said above - the kernel can only drop the >>> > association, if userspace *insists* then it will try again and again. >>> >>> But it's not doing this: >>> >>> ieee80211_destroy_assoc_data(sdata, false); >>> cfg80211_assoc_timeout(sdata->dev, bss); >>> >>> Which is what causes the association to stop for me. >>> >>> So where exactly in the code is the association being "dropped"? >> >> This does get called in my setup. > > Yes, because your setup is receiving beacons. > > Check the code: > > if ((ifmgd->assoc_data->need_beacon && !ifmgd->have_beacon) || > ieee80211_do_assoc(sdata)) { > struct cfg80211_bss *bss = ifmgd->assoc_data->bss; > > ieee80211_destroy_assoc_data(sdata, false); > cfg80211_assoc_timeout(sdata->dev, bss); > } > > If there's no beacon, cfg80211_assoc_timeout() is not called. > > I'm sure if you don't call ieee80211_rx_mgmt_beacon() at all you will > see the same behavior I see. My bad, actually the code that is not being called is: cfg80211_unlink_bss(local->hw.wiphy, assoc_data->bss); In ieee80211_do_assoc(). -- Felipe Contreras