OLPC boards in promiscuous mode

Polychronis Ypodimatopoulos ypod at media.mit.edu
Wed Oct 11 11:51:56 EDT 2006


We are using 7 OLPC boards in promiscuous mode to capture all frames being sent by other nodes, using pcapy in Python. Nodes are in the same ad-hoc cloud with each other. Our application sends about up to 50 frames/sec. 

Initially, everything works fine, but after running for about 1 min, the wifi driver stops being as responsive (takes a long time to send a single frame) and frames captured by pcapy are garbled (they fail some digest check). At the moment that things start getting wrong, the following messages appears repeatedly in /var/log/messages:

Sep 30 20:00:02 dhcp-9-196 kernel: NETDEV WATCHDOG: eth0: transmit timed out

Finally, I also get the following in /var/log/messages:

BUG: rwlock bad magic on CPU#0, ifconfig/5882, c023eba0 (Not tainted)
 <c05c99e2> ip_check_mc+0x1c/0x7c  <c05a65b4> ip_route_input+0xdc/0xbf1
 <c82bae08> __ip_ct_refresh_acct+0xec/0x106 [ip_conntrack]  <c82bc191>
ip_conntrack_in+0x2f7/0x3bc [ip_conntrack]
 <c05ce914> fib_create_info+0x11e/0x97e  <c05a3d44> nf_iterate+0x38/0x6a
 <c05a885c> ip_rcv_finish+0x0/0x1fd  <c05a3e77> nf_hook_slow+0x4d/0xb5
 <c05a885c> ip_rcv_finish+0x0/0x1fd  <c05a8e85> ip_rcv+0x1f9/0x3d7
 <c05a885c> ip_rcv_finish+0x0/0x1fd  <c041e726> __mod_timer+0x8a/0x94
 <c058fad9> netif_receive_skb+0x20a/0x265  <c05911c2>
 <c05912b8> net_rx_action+0x78/0x11b  <c041b313> __do_softirq+0x35/0x7f
 <c0404bb1> do_softirq+0x38/0x3f
 <c0404b6e> do_IRQ+0x75/0x80  <c041cf8d> register_proc_table+0xc8/0xdc
 <c0402f3a> common_interrupt+0x1a/0x20  <c0428a7c> mutex_trylock+0x15c/0x169
 <c041cf8d> register_proc_table+0xc8/0xdc  <c041cfbe>
 <c05cb866> ip_mc_init_dev+0xc/0xbb  <c041d03b>
 <c05c77de> devinet_sysctl_register+0xf8/0x11f  <c05c79b8>
 <c05c850f> devinet_ioctl+0x3a8/0x56c  <c04635ca> open_namei+0x7b/0x5d3
 <c0586dc0> sock_ioctl+0x1ae/0x1cd  <c0586c12> sock_ioctl+0x0/0x1cd
 <c0464629> do_ioctl+0x19/0x4c  <c046485b> vfs_ioctl+0x1ff/0x216
 <c04648be> sys_ioctl+0x4c/0x66  <c0402cc7> syscall_call+0x7/0xb

Running the same exact application (with the same data) on PCs with atheros chipsets yields absolutely no similar problems and the application behaves normally. The following is my OLPC board configuration:

Kernel: 2.6.16-1.2221_FC6 (rawhide)
Firmware: usb8388_A1_W8015FP14_FW2.bin


Polychronis Ypodimatopoulos
Viral Communications
MIT Media Lab

More information about the libertas-dev mailing list