.. SPDX-License-Identifier: GPL-2.0

==========================
BATMAN-ADV external module
==========================

Introduction
============

The  batman-adv  module  is  shipped  as part of the Linux kernel
and as external module. The external  module   allows   to    get
new    features without  upgrading  to  a  newer  kernel  version
and to get batman-adv specific bugfixes  for  kernels  that   are
not   supported   anymore.  It compiles  against  and should work
with Linux 3.16  -  5.2.  Supporting  older   versions   is   not
planned,  but it's probably easy to backport it. If you work on a
backport, feel free to contact us.  :-)


COMPILE
=======

To compile against your currently installed  kernel, just type::

  # make

if you want to compile against some other kernel, use::

  # make KERNELPATH=/path/to/kernel

if you want to install this module::

  # sudo make install


CONFIGURATION
=============

The     in-kernel    module    can    be    configured    through
menuconfig.   When  compiling outside  of the kernel tree,  it is
necessary  to  configure  it  using    the   make  options.  Each
option  can be set to to y (enabled), n (disabled) or m (build as
module).  Available  options  and  their    possible   values are
(default marked with an "*")

 * ``CONFIG_BATMAN_ADV_DEBUGFS=[y|n*]`` (B.A.T.M.A.N. debugfs entries)
 * ``CONFIG_BATMAN_ADV_DEBUG=[y|n*]`` (B.A.T.M.A.N. debugging)
 * ``CONFIG_BATMAN_ADV_BLA=[y*|n]`` (B.A.T.M.A.N. bridge loop avoidance)
 * ``CONFIG_BATMAN_ADV_DAT=[y*|n]`` (B.A.T.M.A.N. Distributed ARP Table)
 * ``CONFIG_BATMAN_ADV_MCAST=[y*|n]`` (B.A.T.M.A.N. multicast optimizations)
 * ``CONFIG_BATMAN_ADV_NC=[y|n*]`` (B.A.T.M.A.N. Network Coding)
 * ``CONFIG_BATMAN_ADV_SYSFS=[y*|n]`` (B.A.T.M.A.N. sysfs support)
 * ``CONFIG_BATMAN_ADV_TRACING=[y|n*]`` (B.A.T.M.A.N. tracing support)
 * ``CONFIG_BATMAN_ADV_BATMAN_V=[y*|n]`` (B.A.T.M.A.N. V routing algorithm)

e.g., debugging can be enabled by::

  # make CONFIG_BATMAN_ADV_DEBUG=y

Keep  in  mind  that  all  options  must  also  be added to ``make install``
call.
