Subject: Re: atheros 5212 card in adhoc mode and "no buffer space"
To: Konstantin Kabassanov <Konstantin.Kabassanov@lip6.fr>
From: Sam Leffler <sam@errno.com>
List: tech-net
Date: 05/11/2004 07:59:51
On Tuesday 11 May 2004 03:00 am, Konstantin Kabassanov wrote:

> Concerning the multihop wireless networks, you are right I'm working in
> this domain. I'm not really sure that ath-type hardware does a proper IBSS
> merge. I'm actually testing ... That could be the explanation for the
> 3CRPAG175 problems...

The h/w is not involved in the merge and there's no software presently that 
deals with it (unless David's done something I'm not aware of).  If we change 
the way beacons are done in adhoc mode then the h/w can deal with the merge.  
At present beacons are sent by the host as per ap operation--you schedule the 
SWBA interrupt and when it comes in post the beacon frame.  However the h/w 
has a special xmit scheduling mechanism that allows pending transmits to be 
gated based on whether or not a beacon has been received prior to the next 
beacon time.  If you queue up a self-linked list with a beacon frame, enable 
this mode, start the queue then the right thing should happen (no need to 
enable SWBA).  The problem appears to be that when you try to combine this 
scheduling mechanism with SWBA interrupts you don't get what you want.  That 
is SWBA is not delivered in a way that reflects whether or not the node needs 
to switch roles and become ibss master.

You should be able to switch beacon generation and get reliable operation.  
The gated xmit scheduling I described is automatically setup if you use the 
HAL_TX_QUEUE_BEACON xmit queue.  So all you should need to do is queue up a 
self-linked descriptor list and turn off SWBA.

	Sam