2022-05-31 23:14:12

by Linus Lüssing

[permalink] [raw]
Subject: Re: [RFC PATCH v3 1/1] mac80211: use AQL airtime for expected throughput.

On Tue, May 31, 2022 at 12:09:22PM +0200, Baligh Gasmi wrote:
> Since the integration of AQL, packet TX airtime estimation is
> calculated and counted to be used for the dequeue limit.
>
> Use this estimated airtime to compute expected throughput for
> each station.
>
> It will be a generic mac80211 implementation. If the driver has
> get_expected_throughput implementation, it will be used instead.
>
> Useful for L2 routing protocols, like B.A.T.M.A.N.
>
> Signed-off-by: Baligh Gasmi <[email protected]>

Hi Baligh,

Thanks for your work, this indeed sounds very relevant for
batman-adv. Do you have some test results on how this compares to
real throughput? And maybe how it compares to other methods we
already have in the kernel, like expected throughput via
minstrel_ht rate control or the estimates performed in 802.11s
HWMP [0]?

Is there a certain minimum amount of traffic you'd suggest to have
enough samples to get a meaningful result?

I'm also wondering if we are starting to accumulate too many
places to provide wifi expected throughput calculations. Do you
see a chance that this generic mac80211 implementation could be made
good enough to be used as the sole source for both batman-adv and
802.11s HWMP, for instance? Or do you see some pros and cons
between the different methods?

Regards, Linus


[0]: https://elixir.bootlin.com/linux/v5.18/source/net/mac80211/mesh_hwmp.c#L295


2022-05-31 23:15:42

by Baligh GASMI

[permalink] [raw]
Subject: Re: [RFC PATCH v3 1/1] mac80211: use AQL airtime for expected throughput.

Hi,
>
> On Tue, May 31, 2022 at 12:09:22PM +0200, Baligh Gasmi wrote:
> > Since the integration of AQL, packet TX airtime estimation is
> > calculated and counted to be used for the dequeue limit.
> >
> > Use this estimated airtime to compute expected throughput for
> > each station.
> >
> > It will be a generic mac80211 implementation. If the driver has
> > get_expected_throughput implementation, it will be used instead.
> >
> > Useful for L2 routing protocols, like B.A.T.M.A.N.
> >
> > Signed-off-by: Baligh Gasmi <[email protected]>
>
> Hi Baligh,
>
> Thanks for your work, this indeed sounds very relevant for
> batman-adv. Do you have some test results on how this compares to
> real throughput? And maybe how it compares to other methods we
> already have in the kernel, like expected throughput via
> minstrel_ht rate control or the estimates performed in 802.11s
> HWMP [0]?

I'll share a comparison between an iperf3 running and the current
value of this implementation.
What I can say, for now, is that they are close to each other.
The minstrel_ht still a better implementation for expected throughput.
That's why if there is minstrel_ht support, it will be used instead of
this implementation.
However, 802.11s metric is another story, it's a parameter used by the
HWMP routing protocol for the path selection, so it could be based on
the expected throughput, but it includes other factors that could be
mesh specific.
For me, 802.11s metric and expected throughput are not necessarily the
same values.

>
> Is there a certain minimum amount of traffic you'd suggest to have
> enough samples to get a meaningful result?

I'm using a burst of 50 ARP packets, padded to have 1024 bytes.
(to be optimized)

>
> I'm also wondering if we are starting to accumulate too many
> places to provide wifi expected throughput calculations. Do you
> see a chance that this generic mac80211 implementation could be made
> good enough to be used as the sole source for both batman-adv and
> 802.11s HWMP, for instance? Or do you see some pros and cons
> between the different methods?
>

I think that this implementation is still based on an estimation, so
it's not good as a minstrel.
It's based on the AQL airtime estimation. With a phy_rate of the last
sent packet, and average aggregated packets, and other stuff ...
The whole idea is not to replace current implementation, but to extend
other drivers (to have something is better than having nothing !)
Since batman-adv needs the expected throughput to make a decision, it
will get a value regardless of the driver implementation.

> Regards, Linus
>
>
> [0]: https://elixir.bootlin.com/linux/v5.18/source/net/mac80211/mesh_hwmp.c#L295