Search Linux Wireless

Re: [RFC] mac80211: Re-enable aggregation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Johannes Berg wrote:
> If that was done in the RC at least (could easily be moved I suppose)
> and you cleaned up the RC, then surely nbd would play with porting
> minstrel and making it aware of such things, which probably makes for a
> better RC... And since you have to clean up the RC anyway :)
> 

Sure, just migrating to minstrel would be the better option. It would
probably need to be spruced up a bit to accommodate aggregation specific
data.

> > I was talking about this:
> > (txq->axq_depth < ATH_AGGR_MIN_QDEPTH) in ath_tx_sched_aggr()@xmit.c
> 
> But what does this invariant mean? ATH_AGGR_MIN_QDEPTH is 2.
> 

Well, this is not relevant when frames are aggregated and sent down
by mac80211. That check was present because frames were being created and
sent in the TX tasklet.

> > How would mac80211 buffer frames ? 
> 
> Well I suppose it would just put them on a list in the sta_info struct.
> 

A list for each TID, no ?

> > Would it wait for enough sub-frames
> > to fill an A-MPDU ?
> 
> It should, no? And if for some reason that doesn't happen fast enough it
> can send them out anyway, it'll just be a shorter A-MPDU, no?
> 
> >  When does it decide that buffered frames have to
> > be pushed down to the driver ?
> 
> When the A-MPDU is full, subject to the TX and RX constraints, or when
> too much time has passed maybe?
> 
> I really don't know. But I'd like to get to a model where we can
> implement other drivers without having to keep track of all this like
> ath9k does.

To summarize a bit about the state/control information that mac80211 needs
to maintain for an aggregation session:

* Block Ack state for each TID (sequence numbers, BA window etc.)
* Maintain a list of buffers for each <RA,TID> (setup, teardown etc.)
* Handle retransmission of unacked frames.

Forming an aggregate would involve the following.
( These might depend on HW caps as well as the recipient STA's caps)

* Aggregate length
* Delimiters
* Padding of sub-frames

TX control information will probably need to pass aggr. specific information
(number of delimiters etc.)

The API for aggregation can extend the ampdu_action() callback.
Adding a few more states can probably suffice initially.

We'll work on this and come up with an RFC.

Sujith
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux