On Monday, 20 June 2022 12:20:19 CEST cch...@creonexsystems.com wrote:
> Does BATMAN ADV interfaces with the radio via the network driver or does
> BATMAN include the network driver?

As said before, it is interfacing with the generic ethernet netdev layer of 
the kernel. For example in:

* 
https://git.open-mesh.org/batman-adv.git/blob/caa1eb0cf7bf8ebfe43bba06b890252a865efa91:/net/batman-adv/hard-interface.c#l727
* 
https://git.open-mesh.org/batman-adv.git/blob/caa1eb0cf7bf8ebfe43bba06b890252a865efa91:/net/batman-adv/send.c#l108
* 
https://git.open-mesh.org/batman-adv.git/blob/caa1eb0cf7bf8ebfe43bba06b890252a865efa91:/net/batman-adv/hard-interface.c#l185

There are a lot of other places when it uses the abstraction interfaces of the 
kernels for ethernet related communication.

For B.A.T.M.A.N. V, it is also trying to get throughput information via 
various generic kernel functionality:

* 
https://git.open-mesh.org/batman-adv.git/blob/caa1eb0cf7bf8ebfe43bba06b890252a865efa91:/net/batman-adv/bat_v_elp.c#l67

There is also one detection for wifi interfaces to decide whether broadcast 
messages should be repeated or not:

* 
https://git.open-mesh.org/batman-adv.git/blob/caa1eb0cf7bf8ebfe43bba06b890252a865efa91:/net/batman-adv/hard-interface.c#l877


> Can you provide some guidance on where the network driver or interface to
> network driver is located within BATMAN?

It is not talking directly to the driver. It is always using abstraction 
layers. Either the normal network core, ethernet or cfg80211 abstraction 
interfaces. But these don't abstract the requirement for ethernet 
compatibility away - the underlying device must provide this either directly 
or via a wrapper. Just perform a `git grep -e ETH_ -e eth_ -e ethhdr` to
see that it is build around the concept of ethernet packets.

Also things like originators and the complete translation table only works 
with ethernet addresses.

Kind regards,
        Sven

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

Reply via email to