Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 09 Mar 2005 09:39:27 -0800
From:      Sam Leffler <sam@errno.com>
To:        Arvind Srinivasan <arvind1@gmail.com>
Cc:        freebsd-mobile@freebsd.org
Subject:   Re: WPA on laptops running FreeBSD 5.3 (hacked a custom driver but having trouble)
Message-ID:  <422F34CF.4020206@errno.com>
In-Reply-To: <c91ae148050308234173362dda@mail.gmail.com>
References:  <c91ae148050308234173362dda@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Arvind Srinivasan wrote:
> I hacked a custom ndis driver to use WPA-PSK. The driver pretends to
> be WEP (so that I can continue to use the existing API's) but under
> the covers it actually calls the ndis wrapper with WPA OIDs instead of
> the WEP OIDs.
> 
> The essential changes I made are a call to OID_802_11_ADD_KEY instead
> of OID_802_11_ADD_WEP, and NDIS_80211_WEPSTAT_ENC2ENABLED instead of
> NDIS_80211_WEPSTAT_ENABLED.
> All the changes are in if_ndis.c:ndis_setstate_80211.

I don't understand why didn't use the existing API's that work with 
wpa_supplicant?

> 
> I've tried two different cards: Linksys WPC54G and Dell WLAN 1350.
> Both cards associate fine, but do not get much further than that. I am
> unable to get an IP address from the NETGEAR router via DHCP, even
> though the link is up.
> Note that both cards work fine with the same router in Windows.....
> 
> Is there anything else I need to do besides provide the right key and
> encryption method in ndis_setstate_80211?

Do your drivers implement a WPA supplicant in the kernel?  If not you 
need a supplicant to use WPA in station mode.  wpa_supplicant is the 
right program for this and to use it with FreeBSD you need to implement 
ioctl's to get+set keys, set the optional information element with 
negotiated WPA algorithms, and implement the scan results interface so 
wpa_supplicant can identify WPA-capable AP's (and probably a couple of 
other minor bits like enable the privacy bit and handle TKIP 
countermeasures).  I believe there are OID's that map to all these 
mechanisms as I looked at the M$ spec when I designed the ioctls.

	Sam



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?422F34CF.4020206>