Fwd: Need help. Trying to get a new driver work.

Sriharsha Vedurmudi svedurumudi at gmail.com
Wed Oct 3 12:12:50 EDT 2007


wpa_supplicant version is 0.5.8 (I believe this is the latest one,
apart from a development release of 0.6.0).

The file driver_wext.c has both IWEVCUSTOM and IWEVGENIE case
statements in its function wpa_drive_wext_get_scan_resulsts().

Regards,
Harsha.


On 10/3/07, Dan Williams <dcbw at redhat.com> wrote:
> On Wed, 2007-10-03 at 20:57 +0530, Sriharsha Vedurmudi wrote:
> > Hi Dan,
> >  I was not sure if you got my reply (am not sure if your firewall lets
> > mails from unknown addresses) to your mail and so am posting it in the
> > forum.
> >
> > Best wishes,
> > Sriharsha.
> >
> > ---------- Forwarded message ----------
> > From: Sriharsha Vedurmudi <svedurumudi at gmail.com>
> > Date: Oct 3, 2007 8:38 PM
> > Subject: Re: Need help. Trying to get a new driver work.
> > To: Dan Williams <dcbw at redhat.com>
> >
> >
> > Hello Dan,
> >  A very _big_ thank you for taking time to help me out. I am so glad I
> > got instant help (honestly I did not think anyone would reply so
> > soon).
> >  Coming to the progress, I made the changes you suggested (changed the
> > we_version_source from 9 to 19. and added enc_capa field populated
> > with CAPA_WPA | CAPA_CIPHER_TKIP).
> >
> > The output from iwlist wlan0 scan looks good (see below):
> > # iwlist wlan0 scan
> > wlan0     Scan completed :
> >           Cell 01 - Address: 00:17:94:FE:54:D0
> >                     ESSID:"CISCO_WPA"
> >                     Mode:Master
> >                     Frequency:2.437 GHz
> >                     Encryption key:on
> >                     Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
> >                               11 Mb/s; 12 Mb/s; 18 Mb/s
> >                     IE: WPA Version 1
> >                         Group Cipher : TKIP
> >                         Pairwise Ciphers (1) : TKIP
> >                         Authentication Suites (1) : PSK
>
> Ok, this looks good.
>
> What version of wpa_supplicant are you using?  It may be that you are
> using a wpa_supplicant that does only look for EVCUSTOM and not EVGENIE
> in the scan results.  Know exactly which version would help narrow that
> down.
>
> The fact that iwlist scan shows the right stuff here means that at least
> something is working.
>
> > The configuration file that I am using (/etc/wpa1.conf) is:
> > network={
> >       ssid="CISCO_WPA"
> >       scan_ssid=1
> >       key_mgmt=WPA-PSK
> >       psk="linuxap10"
> >  }
> >
> > And, when I give wpa_supplicant command, I see the following:
> >
> > # wpa_supplicant -iwlan0 -c/etc/wpa1.conf -d
> > Successfully initialized the event loop
> > Initializing interface : 'wlan0'
> > Conf  : '/etc/wpa1.conf'
> > Driver: 'default'
> > Control Interface: 'N/A'
> > Bridge: 'N/A'
> >
> > Configuration file '/etc/wpa1.conf' -> '/etc/wpa1.conf'
> > Reading configuration file '/etc/wpa1.conf'
> > Priority group 0
> >    id=0 ssid='CISCO_WPA'
> > Initializing interface (2) 'wlan0'
> > SIOCGIWRANGE:
> > WE(compiled)=21
> > WE(source)=19
> > enc_capa=0x5
> > capabilities:
> > key_mgmt 0x5
> > enc 0x7
> > LinkMode: 1
> > Operstate:5
> > WEXT: Operstate:
> > linkmode=1
> > operstate=5
> > Own MAC address: 00:11:22:33:44:55
> > wpa_driver_wext_set_wpa
> > wpa_driver_wext_set_key: alg=0 key_idx=0 set_tx=0 seq_len=0 key_len=0
> > wpa_driver_wext_set_key: alg=0 key_idx=1 set_tx=0 seq_len=0 key_len=0
> > wpa_driver_wext_set_key: alg=0 key_idx=2 set_tx=0 seq_len=0 key_len=0
> > wpa_driver_wext_set_key: alg=0 key_idx=3 set_tx=0 seq_len=0 key_len=0
> > wpa_driver_wext_set_countermeasures
> > wpa_driver_wext_set_drop_unencrypted
> > Setting scan request: 0 sec 100000 usec
> > Added interface wlan0
> > RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
> > Wireless event: cmd=0x8b06 len=8
> > State: DISCONNECTED -> SCANNING
> > Starting AP scan (specific SSID)
> > Scan SSID - hexdump_ascii(len=9):
> >      43 49 53 43 4f 5f 57 50 41         CISCO_WPA
> > Trying to get current scan results first without requesting a new scan to speed
> > up initial association
> > Received 170 bytes of scan results (1 BSSes)
> > Scan results: 1
> > Selecting BSS from priority group 0
> > Try to find WPA-enabled AP
> > 0: 00:17:94:fe:54:d0 ssid='CISCO_WPA' wpa_ie_len=0 rsn_ie_len=0 caps=0x11
> >    skip - no WPA/RSN IE
>
> So this is the issue of course; wpa_supplicant isn't recognizing the IE
> that your driver is returning.
>
> Dan
>
> > Try to find non-WPA AP
> > 0: 00:17:94:fe:54:d0 ssid='CISCO_WPA' wpa_ie_len=0 rsn_ie_len=0 caps=0x11
> >    skip - non-WPA network not allowed
> > No suitable AP found.
> > Setting scan request: 0 sec 0 usec
> > Starting AP scan (broadcast SSID)
> > Scan timeout - try to get results
> > Received 170 bytes of scan results (1 BSSes)
> > Scan results: 1
> > Selecting BSS from priority group 0
> > Try to find WPA-enabled AP
> > 0: 00:17:94:fe:54:d0 ssid='CISCO_WPA' wpa_ie_len=0 rsn_ie_len=0 caps=0x11
> >    skip - no WPA/RSN IE
> > Try to find non-WPA AP
> > 0: 00:17:94:fe:54:d0 ssid='CISCO_WPA' wpa_ie_len=0 rsn_ie_len=0 caps=0x11
> >    skip - non-WPA network not allowed
> > No suitable AP found.
> > Setting scan request: 5 sec 0 usec
> >
> >
> > Can anything be deciphered from the above dump?
> >
> > Best wishes,
> > Sriharsha.
> >
> > On 10/3/07, Dan Williams <dcbw at redhat.com> wrote:
> > > A few things.  In your GIWRANGE handler, make sure you are doing the
> > > following:
> > >
> > > 1) Setting range->we_version_source = 19 or higher; as long as you
> > > provide WPA support you should advertise 19 or higher
> > >
> > > 2) Setting range->enc_capa correctly:
> > >
> > >                 range->enc_capa =   IW_ENC_CAPA_WPA
> > >                                   | IW_ENC_CAPA_WPA2
> > >                                   | IW_ENC_CAPA_CIPHER_TKIP
> > >                                   | IW_ENC_CAPA_CIPHER_CCMP;
> > >
> > >    (of course, if you don't support CCMP or RSN don't put those there)
> > >
> > > 3) In your GIWSCAN handler, are you adding the WPA IEs correctly?  Don't
> > > use EVCUSTOM; use EVGENIE like so:
> > >
> > >         memset(&iwe, 0, sizeof(iwe));
> > >         if (bss->rsn_ie_len) {
> > >                 char buf[MAX_WPA_IE_LEN];
> > >                 memcpy(buf, bss->rsn_ie, bss->rsn_ie_len);
> > >                 iwe.cmd = IWEVGENIE;
> > >                 iwe.u.data.length = bss->rsn_ie_len;
> > >                 start = iwe_stream_add_point(start, stop, &iwe, buf);
> > >         }
> > >
> > > Without wpa_supplicant, what does a scan result look like, from the
> > > output of 'iwlist wlan0 scan' for an AP you know is broadcasting an IE?
> > > iwlist will print out the IE information if your driver correctly
> > > handles it.
> > >
> > > Also, thanks for using driver_wext.c; the more wireless drivers that use
> > > WEXT the easier it is for Linux applications to work with your driver.
> > >
> > > Dan
> > >
> > >
> > > >  Also surprising is that none of the printk's that I put in the ioctl
> > > > handler functions are getting displayed.
> > > >  Since wpa_supplicant is not seeing any wpa ie, it is not issuing the
> > > > associate command. I am unable to figure out whats going wrong. Can
> > > > somebody help me with the correct sequence that is needed and also the
> > > > correct way to pass the WPA IE to wpa_supplicant (through
> > > > driver_wext.c, since Im using Linux 2.6.19-2 with W.E ver 21).
> > > >
> > > > Thanks in advance,
> > > >
> > > > Best regards,
> > > > Sriharsha.
> > > > _______________________________________________
> > > > HostAP mailing list
> > > > HostAP at shmoo.com
> > > > http://lists.shmoo.com/mailman/listinfo/hostap
> > >
> > >
> > _______________________________________________
> > HostAP mailing list
> > HostAP at shmoo.com
> > http://lists.shmoo.com/mailman/listinfo/hostap
>
>



More information about the HostAP mailing list