Search Linux Wireless

Re: [PATCH V2] Add iwlwifi wireless drivers

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

 



On Thu, 2007-09-06 at 17:04 +0300, Tomas Winkler wrote:

> There is nothing NOT general in 3945 rate scaling algorithm just the
> current interfaces of rate scaling algorithm is a bit awkward, not
> extensible. The struct ieee80211_tx_status is tight to mac80211 and
> not to rate scale algorithm so if you create your own crazy rate scale
> algorithm you cannot decide what parameters you need.

Yeah, I agree, we need to improve this. "minstrel" really wants more
retry rates too than just two.

> 4965 is 11n card and rate scale algorithm is totally different.
> One aspect is that rate scaling works  with much more parameters. MIMO
> rates are rather 2 dimensional table, therefore the algorithm is
> essentially different, but so far no interface change is needed.
> Actually it covers also legacy rate scaling.

Right. Maybe we can orthogonalize this into a rate control interface
for .11n and one for "legacy"?

> The second aspect of HT is the aggregation. Bunch of packets at once
> and they are also ACKed at once so regular TX status path of updating
> rate scale algorithm is not so natural. Mostly because it is combined
> with reclaiming the packet.

This is something you need to work on in mac80211 anyway. I don't like
how your driver does all the decisions about when to aggregate etc. This
should be in the per-sta code in mac80211.

> Third part and this is 4965 specific is that  TX rate is not attached
> to packet but rate table is updated when need on it's own path. This
> is device specific.

It seemed like the rate was attached to each station. This is a bit and
I don't really know how to handle it.

> Forth is that the aggregation. In general this involves some handshake
> on protocol level i.e. MLME but efficiency of aggregation is kind of
> rate scaling decision in addition  it might be enabled only for MIMO
> rates (different plcp header)

Right. I think you mentioned aggregation as number two already :)

> 1. rs_update_event(sta, struct rs_data *)  - function that brings rate
> scaling statistics not connected to packet reclaim path
>   struct rs_data is specific to rate scaling and opaque to mac80211

What sort of statistics would it bring, and when?

> 2. rs_add_sta/rs_init(sta)  - create new instance of rate scaling for
> added station including AP in STA mode

That's what we have now afaict.

> 3. rs_compute(sta/sta_addr) - actual computation of rate scaling
> algorithm possible also from RX path (tx reclaim)

Where would it be called?

> 4.  rs_get_rate - for regular TX path setting of rates

Right.

> 5. void (*rs_apply_rates)(sta_addr)  - driver supplied handler for
> applying rate not through TX path.

This needs more parameters, no?

johannes

Attachment: signature.asc
Description: This is a digitally signed message part


[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