Scott Ricketts - 2007-10-18

My company is willing to pay for services relating to the following problem. Please email me directly at if you can help.

I am trying to set up host-to-host wireless link between two ubuntu machines. Each has two wireless NICs with Atheros chipsets (ath0 and ath1). Let's call my two machines host A and host B. I would like to put each card in ad hoc mode and configure so that there is a link between A.ath0 and B.ath0 on channel 1 and between A.ath1 and B.ath1 on channel 11.

Then on each machine I want to use round-robin mode to bond the ath0 and ath1 devices into one virtual interface in an attempt to increase streaming throughput between the two machines.

So far I have successfully set up the ad hoc links. They can run at the same time in parallel with good throughput (around 30 Mb/s). However, I cannot bond the interfaces. I am trying the following:

modprobe bonding miimon=100 mode=0
ifconfig bond0 192.168.1.XXX
ifenslave bond0 ath0 ath1

where XXX is 114 for host A and 113 for host B.

Then I configure the ad hoc links using madwifi tools:


/etc/dbus-1/event.d/25NetworkManager stop
wlanconfig ath0 destroy
wlanconfig ath0 create wlandev wifi0 wlanmode adhoc
iwconfig ath0 essid 'adhoc0'
iwconfig ath0 channel 1
iwconfig ath0 key 'password'
ifconfig ath0 up
ifconfig ath0 192.168.0.YYY
ifconfig ath0 netmask
ifconfig ath0 broadcast

wlanconfig ath1 destroy
wlanconfig ath1 create wlandev wifi1 wlanmode adhoc
iwconfig ath1 essid 'adhoc1'
iwconfig ath1 channel 11
iwconfig ath1 key 'password'
ifconfig ath1 up
ifconfig ath1 192.168.2.YYY
ifconfig ath1 netmask
ifconfig ath1 broadcast

Where YYY is 100 for host A and 101 for host B. After this I can ping over each of the ad hoc links (i.e. ping -I ath1 from host A). But a ping over the virtual link does not work (i.e. ping -I bond0 from host A).

The bonding instructions I quoted above work for a similar setup with wired ethernet links instead of wireless. I have also tried using arp instead of mii when loading the bonding driver -- same problem.

Any ideas?