Fw: Buffering messages (more information)
Luisa Caeiro
lcaeiro
Sun Aug 24 02:37:30 PDT 2003
----- Original Message -----
From: "Luisa Caeiro" <lcaeiro at est.ips.pt>
To: "Jouni Malinen" <jkmaline at cc.hut.fi>
Sent: Sunday, August 24, 2003 3:00 AM
Subject: Re: Buffering messages
>
> ----- Original Message -----
> From: "Jouni Malinen" <jkmaline at cc.hut.fi>
> To: "Lu?sa Caeiro" <lcaeiro at est.ips.pt>
> Sent: Saturday, August 23, 2003 2:19 AM
> Subject: Re: Buffering messages
>
>
> > On Fri, Aug 22, 2003 at 06:58:08PM +0100, Lu?sa Caeiro wrote:
> >
> > > I'm trying to control the tx_buffer of the card (in mode managed)
using
> a
> > > new skb_buf_queue (analogous to tx_buf in APs for stations in PS
mode).
> So,
> > > I count the messages when prism2_transmit is called and I decrease the
> count
> > > when a tx_ev or tx_exc is received. When the counter reaches a limit I
> > > bufferize the messages to send.
> >
> > I don't think I fully understood what you are trying to do with this
> > buffering.. If you just want to limit how many packets are pending in
> > the card buffer, you could either just use smaller TX fid value (which
> > does not give full control) or stop the Linux netif queue based on a
> > counter. This would not need any extra buffering in the driver.
> >
>
> I forgot the buffering in the driver and I follow your suggestion of stop
> the Linux netif queues when the msg counter in card buffer reach a limit.
> What happenned is that the card is resetting periodically because a
transmit
> timeout appears.
>
> I didn't say before that in addition to limit the packets in card buffer,
I
> split the beacon interval in several (3) periods (with a timer that is
> fetched with different values) and I just allow transmition in one of that
> periods. So in the periods where the transmission is not allowed I'm also
> stopping the Linux netif queues.
> Have you any idea of what could cause these resets?
>
> Thanks in advance
>
> Lu?sa Caeiro
To had some more information of the changes I made:
In prism2_transmit_cb - netif queues are not wake if the msg counter (that
has been incremented in prism2_transmit) reach the limit.
In prism2_tx_ev and prism2_txexc - the msg counter is decremented and netif
queues are wake if they are stopped and no transmission is pending.
In function associated with the timer that split the beacon interval - netif
queues are stopped if the new period started is a period not allowed to
transmit (and if netif queues are not already stopped) and are wake if the
new period started is the period allowed to transmit.
The timer in my test case runs with a timer.expires of 20ms, after 50ms and
after 30 ms and the cycle is repeated. The station just is allowed to
transmit in the last period of 30ms.
Another question I have is if we don't loose messages when we stop the netif
queues?
Thanks again.
> > --
> > Jouni Malinen PGP id EFC895FA
>
More information about the Hostap
mailing list