Re: Question about batman for ARM

2022-06-17 Thread Simon Wunderlich
On Friday, June 17, 2022 10:45:48 AM CEST Sven Eckelmann wrote:
> On Friday, 17 June 2022 10:41:46 CEST cch...@creonexsystems.com wrote:
> [...]
> 
> > We would like to use batman with a custom radio and are trying to figure
> > out what part of the source code we may need to modify to allow batman to
> > work with a custom radio. Custom radio means that the radio is not a
> > commercial radio, such as wi-fi or Bluetooth.
> batman-adv (especially with the B.A.T.M.A.N. IV algo) only requires that the
> device itself can transport ethernet frames (with proper unicast and
> broadcast behavior). If you need something else then you either need a
> virtual interface which does the translation from $whatever to ethernet
> (and back) - or you need to reimplement the B.A.T.M.A.N. IV/V algorithms
> yourself.

In other words, if your radio comes up as a regular Ethernet interface in 
Linux (like WiFi, for example), then you can easily run batman-adv on top of 
it. If that's not the case, then you can write a driver to present a (virtual) 
interface to the system like Sven suggested.

Cheers,
   Simon

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


RE: Question about batman for ARM

2022-06-17 Thread cchien
Hi Sven,

Thanks for the suggestions.
We were able to get Debian to boot up with batman enabled in raspberry-pi.

We would like to use batman with a custom radio and are trying to figure out 
what part of the source code we may need to modify to allow batman to work with 
a custom radio.
Custom radio means that the radio is not a commercial radio, such as wi-fi or 
Bluetooth.

The comments in the source code are limited and so we are wondering if you 
could suggest any resources and/or documentations that might provide more 
information to help us in what we are trying to do?

Regards,
Charles

CreoNex Systems
2625 Townsgate Road, Suite 330 
Westlake Village, CA 91361
www.creonexsystems.com
(805) 558-9687
This message (including any attachments) is for the named addressee(s)'s use 
only. It may contain sensitive, confidential, private proprietary or legally 
privileged information intended for a specific individual and purpose, and is 
protected by law. If you are not the intended recipient, please immediately 
delete it and all copies of it from your system, destroy any hard copies of it 
and notify the sender. Any use, disclosure, copying, or distribution of this 
message and/or any attachments is strictly prohibited.

-Original Message-
From: cch...@creonexsystems.com  
Sent: Friday, May 20, 2022 8:51 AM
To: 'Sven Eckelmann' 
Cc: b.a.t.m.a.n@lists.open-mesh.org
Subject: RE: Question about batman for ARM


Hi Sven,

Thank you for the quick and informative response.
We will look into your suggestions.

Regards,
Charles
_
CreoNex Systems
2625 Townsgate Road, Suite 330
Westlake Village, CA 91320
www.creonexsystems.com
(805) 558-9687
This message (including any attachments) is for the named addressee(s)'s use 
only. It may contain sensitive, confidential, private proprietary or legally 
privileged information intended for a specific individual and purpose, and is 
protected by law. If you are not the intended recipient, please immediately 
delete it and all copies of it from your system, destroy any hard copies of it 
and notify the sender. Any use, disclosure, copying, or distribution of this 
message and/or any attachments is strictly prohibited.


-Original Message-
From: Sven Eckelmann 
Sent: Friday, May 20, 2022 12:43 AM
To: Charles Chien 
Cc: b.a.t.m.a.n@lists.open-mesh.org
Subject: Re: Question about batman for ARM

On Friday, 20 May 2022 08:18:45 CEST Charles Chien wrote:
> We’re currently trying to install batman-adv on an ARM platform but we 
> ran into some issues and we would appreciate your help to answer our 
> questions below:
> 
> Is the batman-adv module compatible with an ARM processor (Raspberry PI 4)?

There is not just an "ARM" processor. It is a family of various processors.

Anyway, it can be used easily on Raspberry Pi - just make sure that you use a 
good wifi device + driver (+firmware) which actually can communicate over 
IBSS/802.11s (without forwarding enabled) and has no (extreme low) peer limit. 
Unfortunately, you cannot take this for granted.

> I’m trying to install batman-adv onto an ARM Raspberry PI 4 with a 
> Debian based Linux distribution (Pop OS). However, when I run 
> “modprobe batman-adv”, it returns a FATAL error complaining that the 
> module is not found in the “/lib/modules” directory. Where can I 
> find/download the “.ko” for batman-adv for the ARM platform?

Ehrm, this is not how this works. You cannot just use a kernel module and hope 
that it works on all kernel (builds) available in the universe. This is also 
why we write following in each batman-adv release news entry: "As the kernel 
module always depends on the Linux kernel it is compiled against, it does not 
make sense to provide binaries on our website. As usual, you will find the 
signed tarballs in our download section:"

Either your distribution has to enable this module in their kernel build or you 
have to get their kernel headers (and build scripts) and then build it from 
scratch. And at least on the default Debian kernel, batman-adv is enabled since 
ages - so no idea why PopOS doesn't ship it

> And if I need to recompile the .ko file for ARM, is there an online 
> repository where I can find the original source code for the 
> batman-adv driver?

This is mentioned in multiple places on the website. Just to mention a few 
interesting pages:

* https://www.open-mesh.org/projects/open-mesh/wiki
* https://www.open-mesh.org/news/108
* https://www.open-mesh.org/projects/open-mesh/wiki/Download
* https://www.open-mesh.org/projects/open-mesh/wiki/UsingBatmanGit
* https://git.open-mesh.org/
  https://git.open-mesh.org/batman-adv.git
* https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/

Kind regards,
Sven



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

2022-06-17 Thread Baligh GASMI
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 
>
> 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


Re: Question about batman for ARM

2022-06-17 Thread Sven Eckelmann
On Friday, 17 June 2022 10:41:46 CEST cch...@creonexsystems.com wrote:
[...]
> We would like to use batman with a custom radio and are trying to figure out 
> what part of the source code we may need to modify to allow batman to work 
> with a custom radio.
> Custom radio means that the radio is not a commercial radio, such as wi-fi or 
> Bluetooth.

batman-adv (especially with the B.A.T.M.A.N. IV algo) only requires that the 
device itself can transport ethernet frames (with proper unicast and broadcast 
behavior). If you need something else then you either need a virtual interface 
which does the translation from $whatever to ethernet (and back) - or you need 
to reimplement the B.A.T.M.A.N. IV/V algorithms yourself.

Kind regards,
Sven

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