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