wpa_supplicant does not work properly with some USB adapters on WinXP

Jouni Malinen jkmaline at cc.hut.fi
Tue Aug 22 22:38:20 EDT 2006


On Tue, Aug 22, 2006 at 05:55:40PM +0300, Adrian Nistor wrote:

> The suggestion to ignore the #Number suffix is not very nice because this
> will make it impossible to have two identical adapters connected to a
> computer. As I said previously, this is exactly my case :-).

I meant that it would only be ignored for adapter arrival/removal
notifications. Other notifications would still match the full name.

> A Win32_PnPEntity instance exists for every adapter, even for those that
> are not removable, even for legacy devices.

OK, that should make this easier.

> There is no need for very complex handling of the cases when the adapter is
> added/removed.

Maybe not explicit need, but I think I prefer this would be done at the
point when the adapter name could be changing, not at the point that a
new event is received.

> Here is how I implemented it:
> 
> 1. Find the Index of the adapter, knowing only the ifname (GUID)
>         SELECT Index FROM Win32_NetworkAdapterConfiguration WHERE
> SettingID='{bla bla bla}'
>    This will always work, no fallback based on adapter description is
> needed.

This is the first step in the current devel branch.

> 2. Register for async events on MSNdis_StatusMediaConnect,
> MSNdis_StatusMediaDisconnect, ... WITHOUT using a filter. The event will be
> filtered later when it is received.

I think this needs to be done at least for adapter arrival/removal, but
I would prefer to use proper filter for other events.

> 3. When the event is received, look for the Win32_PnPEntity with the Name
> equal to the InstanceName of the event, get its PNPDeviceId, get the
> Win32_NetworkAdapter which has this PNPDeviceId. Compare the Index attribute
> of the found Win32_NetworkAdapter with the index obtained in step 1. If they
> match, the event is for the right adapter, otherwise drop it.
> This works because the Index of an adapter is assigned to it when its driver
> is first installed on the system and it never changes, even if the device is
> unplugged/plugged or disabled/enabled.

I would like to move this to happen at startup and whenever a new
adapter is added and not when a new media connect/disconnect is
received.

> So this solution works even in the case when the adapter is removed/added
> but it is not as efficient as the one you implemented ;-).
> 
> Anyway, I hope you will choose an approach that will support the 'two
> identical usb adapters scenario'.

This is certainly the goal, I would go as far as saying the requirement,
for the implementation. I just don't have any USB devices to test this
with, so I may have to rely on your description here and external
testing.. I can try testing this with cardbus cards, but I think they
behave somewhat differently from USB cards.

-- 
Jouni Malinen                                            PGP id EFC895FA



More information about the HostAP mailing list