I always need a miracle to connect with iwlwifi

Krishna Chaitanya chaitanya.mgit
Sat Nov 2 13:05:39 PDT 2013


On Sun, Nov 3, 2013 at 12:43 AM, Krishna Chaitanya
<chaitanya.mgit at gmail.com> wrote:
> On Sat, Nov 2, 2013 at 10:36 PM, Felipe Contreras
> <felipe.contreras at gmail.com> wrote:
>> Sorry for the crappy format (laptop is stuck).
>>
>> If the problem is the firmware why does it start working when I
>> restart the router?
>
> I was referring FW on iwlwifi, not the AP's. May be restarting the router
> triggered some kind of event like Beacon Loss which might have
> helped the STA to connect. Just guessing.
>
>> Plus, I should be seeing this problem with other APs.
>> And what could Windows be doing differently that doesn't exhibit this problem?
>
> Without knowing the root cause it tough to comment these questions :-)

Almost forgot, as mentioned previously if we can figure out why all the
beacons are corrupted (but probes are fine) then that might throw us some
light.

Its messed up in the Extended supported rates and Length of  OBSS Scan
params. Other stations might not have a problem but linux might have it.

Can you also capture the beacons using some other wireless card
just to make sure corruption is not happening on the AP side?

Failure Case:

As we can see in the Link#1, in the first case we haven't received a beacon
so association didn't went through (need_beacon =1)

Successful Case:

but after associating with IBSS and disconnecting we started Rx beacons
 (even though they are corrupted) the connection went through.
(need_beacon =0 and have_beacon=1)

The problems appears to be with reception of the beacons which in turn
 might depend on the corruption issue.

If they are no beacons Rx after auth and before assoc we return with
association timeout.

    if (ifmgd->assoc_data && ifmgd->assoc_data->timeout_started &&
        time_after(jiffies, ifmgd->assoc_data->timeout)) {
        if ((ifmgd->assoc_data->need_beacon &&
             !ifmgd->assoc_data->have_beacon) ||
            ieee80211_do_assoc(sdata)) {
            u8 bssid[ETH_ALEN];

            memcpy(bssid, ifmgd->assoc_data->bss->bssid, ETH_ALEN);

            ieee80211_destroy_assoc_data(sdata, false);

            mutex_unlock(&ifmgd->mtx);
            cfg80211_send_assoc_timeout(sdata->dev, bssid);
            mutex_lock(&ifmgd->mtx);
        }
    }


Also one more thing you said N900 uses mac80211 and it has no issues, but as
its a embedded device it might running an older kernel where the
handling might be
different, so we need to try with the same kernel you are facing an
issue with the
a driver which advertises IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC.

(or) if you a have a compilation environment try commenting the advertisement of
IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC in the iwlwifi DVM driver and
try to reproduce the issue.

Lets see what results you get :-).



More information about the Hostap mailing list