WEP Problems


From: Wayne Mitchell (wayne_at_its.noneofyour.info)
Date: 2002-08-17 11:23:08 UTC



Hi,

I am having some problems with WEP on the hostAP driver and hope that someone can help.

My internet gateway/firewall machine runs Linux with a DWL-520 PCI (Prism2.5) adapter with firmware: PRI=1.1.0, STA=1.4.9 and the latest CVS snapshot of hostap driver. My main computer ('client' to the gateway) runs a dual boot setup with Win2k and Linux also with a DWL-520 PCI adapter with the same firmware. With WEP disabled everything runs perfectly! But I am getting some strange results with 40 bit WEP encryption enabled:

Case 1: Gateway machine in Master mode, client machine running Win2k in Infrastructure mode:
 From the client I can ping the gateway, ping external internet sites, ssh into the gateway without any problems but cannot access any Internet web sites. I see some communication when using 'tcpdump -i wlan0' (ie DNS lookup seems to work) and initial request is sent to the web server but not much else (but I'm not experienced enough to fully interpret the data that tcpdump shows). In this case WEP encryption/decryption is handled by hostap driver on the gateway machine (both host_encrypt and host_decrypt are 1).

Case 2: Gateway machine in Master mode, client machine running Linux in Managed mode:
No problems accessing anything at all. Again, host_decrypt and host_encrypt are 1 in the gateway machine but are both 0 on the Linux client machine indicating that WEP is handled by the cards firmware. However, after a varying amount of time I get a kernel oops: 'Unable to handle kernel paging request...Aiee, killing interupt handler'. I have included the error message and output of ksymoops in the attachment but I am relatively new to Linux so I am not sure if this information is completely accurate.

Case 3: Gateway machine in Ad-hoc mode, client machine running Win2k in Ad-hoc mode:
Initially the same results as Case 1. But setting host_encrypt and host_decrypt to 0 on the gateway machine gives me access to everything again.

So it appears that when the gateway is in HostAP mode, WEP does not work with Win2k but does work with Linux (if only for a short time). Also, when the gateway is in Ad-hoc mode, WEP works with both Linux and Win2k when the encryption/decryption is handled by the firmware of the card and not the driver.

I have also quickly tried the official release (Prism2-2002-05-19) and 40 bit WEP seems to work OK for the limited time that I tested it.

Thanks.

Wayne

its:~# Unable to handle kernel paging request at virtual address 8b8306ad  printing eip:
c0206ede
*pde = 00000000
Oops: 0002
CPU: 0
EIP: 0010:[<c0206ede>] Not tainted EFLAGS: 00010282
eax: c02078ac ebx: c3944220 ecx: c3944220 edx: 8b83069d esi: c02afae0 edi: 0000e329 ebp: c02af9e0 esp: c02b5f00 ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 0, stackpage=c02b5000) Stack: c0207034 c3944220 c02af9e0 c0206f64 00000000 c02ee5c0 00000003 c02afa68

       c011bca2 c02af9e0 00000000 c02ee5a0 00000000 c02ee5c0 c02b5f94 c011bd1b
       c010ab5b c0118ed2 c0118e10 00000000 00000001 c02ee5c0 fffffffe c0118c3a
Call Trace: [<c0207034>] [<c0206f64>] [<c011bca2>] [<c011bd1b>] [<c010ab5b>]
   [<c0118ed2>] [<c0118e10>] [<c0118c3a>] [<c0108112>] [<c0105360>] [<c0105360>]
   [<c0109f08>] [<c0105360>] [<c0105360>] [<c0105383>] [<c01053e9>] [<c0105000>]
   [<c0105027>]

Code: 89 42 10 8b 12 85 d2 75 f1 c3 8b 4c 24 04 8b 41 60 8b 51 30  <0>Kernel panic: Aiee, killing interrupt handler! In interrupt handler - not syncing

ksymoops 2.4.5 on i686 2.4.18. Options used

     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.18/ (default)
     -m /boot/System.map-2.4.18 (specified)

its:~# Unable to handle kernel paging request at virtual address 8b8306ad c0206ede
*pde = 00000000
Oops: 0002
CPU: 0
EIP: 0010:[<c0206ede>] Not tainted Using defaults from ksymoops -t elf32-i386 -a i386 EFLAGS: 00010282
eax: c02078ac ebx: c3944220 ecx: c3944220 edx: 8b83069d esi: c02afae0 edi: 0000e329 ebp: c02af9e0 esp: c02b5f00 ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 0, stackpage=c02b5000) Stack: c0207034 c3944220 c02af9e0 c0206f64 00000000 c02ee5c0 00000003 c02afa68

       c011bca2 c02af9e0 00000000 c02ee5a0 00000000 c02ee5c0 c02b5f94 c011bd1b
       c010ab5b c0118ed2 c0118e10 00000000 00000001 c02ee5c0 fffffffe c0118c3a
Call Trace: [<c0207034>] [<c0206f64>] [<c011bca2>] [<c011bd1b>] [<c010ab5b>]
   [<c0118ed2>] [<c0118e10>] [<c0118c3a>] [<c0108112>] [<c0105360>] [<c0105360>]
   [<c0109f08>] [<c0105360>] [<c0105360>] [<c0105383>] [<c01053e9>] [<c0105000>]
   [<c0105027>]

Code: 89 42 10 8b 12 85 d2 75 f1 c3 8b 4c 24 04 8b 41 60 8b 51 30

>>EIP; c0206ede <neigh_suspect+1a/24> <=====

>>eax; c02078ac <neigh_resolve_output+0/18c>
>>ebx; c3944220 <_end+3628bc4/44f09a4>
>>ecx; c3944220 <_end+3628bc4/44f09a4>
>>edx; 8b83069d Before first symbol
>>esi; c02afae0 <arp_tbl+100/1b8>
>>edi; 0000e329 Before first symbol
>>ebp; c02af9e0 <arp_tbl+0/1b8>
>>esp; c02b5f00 <init_task_union+1f00/2000>

Trace; c0207034 <neigh_periodic_timer+d0/100>
Trace; c0206f64 <neigh_periodic_timer+0/100>
Trace; c011bca2 <timer_bh+222/25c>
Trace; c011bd1b <do_timer+3f/6c>
Trace; c010ab5b <timer_interrupt+5f/dc>
Trace; c0118ed2 <bh_action+1a/40>
Trace; c0118e10 <tasklet_hi_action+44/64>
Trace; c0118c3a <do_softirq+5a/a4>
Trace; c0108112 <do_IRQ+96/a8>
Trace; c0105360 <default_idle+0/28>
Trace; c0105360 <default_idle+0/28>
Trace; c0109f08 <call_do_IRQ+5/d>
Trace; c0105360 <default_idle+0/28>
Trace; c0105360 <default_idle+0/28>
Trace; c0105383 <default_idle+23/28>
Trace; c01053e9 <cpu_idle+41/54>
Trace; c0105000 <_stext+0/0>
Trace; c0105027 <rest_init+27/28>

Code; c0206ede <neigh_suspect+1a/24>
00000000 <_EIP>:
Code; c0206ede <neigh_suspect+1a/24> <=====

   0:   89 42 10                  mov    %eax,0x10(%edx)   <=====
Code;  c0206ee1 <neigh_suspect+1d/24>
   3:   8b 12                     mov    (%edx),%edx
Code;  c0206ee3 <neigh_suspect+1f/24>
   5:   85 d2                     test   %edx,%edx
Code;  c0206ee5 <neigh_suspect+21/24>
   7:   75 f1                     jne    fffffffa <_EIP+0xfffffffa> c0206ed8 <neigh_suspect+14/24>
Code;  c0206ee7 <neigh_suspect+23/24>
   9:   c3                        ret    
Code;  c0206ee8 <neigh_connect+0/28>
   a:   8b 4c 24 04               mov    0x4(%esp,1),%ecx
Code;  c0206eec <neigh_connect+4/28>
   e:   8b 41 60                  mov    0x60(%ecx),%eax
Code;  c0206eef <neigh_connect+7/28>
  11:   8b 51 30                  mov    0x30(%ecx),%edx

 <0>Kernel panic: Aiee, killing interrupt handler!



This archive was generated by hypermail 2.1.4.