Project

General

Profile

Feature #365

Updated by Sven Eckelmann over 1 year ago

The batadv interface is currently limited to 1500 bytes. There are two reasons why this happens:

* batadv_softif_init_early doesn't set max_mtu to 0
** required after Linux 4.10
*** https://patchwork.ozlabs.org/project/netdev/patch/20161008020434.9691-2-jarod@redhat.com/ https://patchwork.ozlabs.org/patch/679791/
*** https://patchwork.ozlabs.org/project/netdev/patch/20161008020434.9691-3-jarod@redhat.com/ https://patchwork.ozlabs.org/patch/679792/
*** https://patchwork.ozlabs.org/project/netdev/patch/20161020175524.6184-8-jarod@redhat.com/ https://patchwork.ozlabs.org/patch/684722/
** batadv_hardif_min_mtu limits it to ETH_DATA_LEN (reason unknown)
*** <pre><code class="c">
/* the real soft-interface MTU is computed by removing the payload
* overhead from the maximum amount of bytes that was just computed.
*
* However batman-adv does not support MTUs bigger than ETH_DATA_LEN
*/
return min_t(int, min_mtu - batadv_max_header_len(), ETH_DATA_LEN);
</code></pre>

It has to be checked why this limit was added in the first place, checked whether it can be removed now and then these two functions have to be modified. For kernels < 4.10, an appropriate compat helper has to be added to compat.h.

Back