Project

General

Profile

News

Batman-adv 2017.3 released

Added by Sven Eckelmann over 1 year ago

Sep 28th, 2017. Today the B.A.T.M.A.N. team publishes the September 2017 update to batman-adv, batctl and alfred! A long standing problem in batman-adv was fixed that could lead to an excessive number of TT management packets when devices disagree about the enabled flags of a device in the translation table. The memory usage of alfred was reduced slightly when it is used with --update-command and receives a lot of updates. Also minor bugfixes and code cleanups are included in this version.

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:

https://downloads.open-mesh.org/batman/releases/batman-adv-2017.3/

Thanks

Thanks to all people sending in patches:

and to all those that supported us with good advice or rigorous testing:

batman-adv

  • support latest kernels (3.2 - 4.14)
  • coding style cleanups and refactoring
  • bugs squashed:
    • fix TT sync flag inconsistencies
    • ignore invalid throughput values from wifi interfaces

batctl

  • bugs squashed:
    • Fix error messages on traceroute send failures

alfred

  • reduction of memory usage when using --update-command

Happy routing,

The B.A.T.M.A.N. team

Batman-adv 2017.2 released

Added by Sven Eckelmann almost 2 years ago

July 28th, 2017. Today the B.A.T.M.A.N. team publishes the July 2017 update to batman-adv, batctl and alfred! This release introduces various improvements in alfred's master server selection code. It will reduce the CPU load on meshes with many master servers by rating multiple servers at once instead of each server separately. batman-adv is now trying harder to avoid the special bridge loop avoidance mac addresses in its translation table. Also minor bugfixes and code cleanups are included in this version.

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:

https://downloads.open-mesh.org/batman/releases/batman-adv-2017.2/

Thanks

Thanks to all people sending in patches:

and to all those that supported us with good advice or rigorous testing:

batman-adv

  • support latest kernels (3.2 - 4.13)
  • avoid bridge loop detection mac addresses in translation tables
  • coding style cleanups and refactoring
  • bugs squashed:
    • ignore invalid throughput values from wifi interfaces

batctl

  • coding style cleanups and refactoring

alfred

  • reduce cpu load when rating multiple master servers
  • coding style cleanups and refactoring

Happy routing,

The B.A.T.M.A.N. team

Batman-adv 2017.1 released

Added by Sven Eckelmann about 2 years ago

May 23th, 2017. Today the B.A.T.M.A.N. team publishes the May 2017 update to batman-adv, batctl and alfred! This release introduces some improvements for various corner cases of bridge loop avoidance. They especially avoid duplicated packets on an ethernet backbone when DAT is enabled. The maximum fragment size was reduced to the minimum allowed MTU for IPv6 to reduce the risk that an intermediate link cannot transport a fragment and has to drop it. Also minor bugfixes and code cleanups are included in this version.

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:

https://downloads.open-mesh.org/batman/releases/batman-adv-2017.1/

Thanks

Thanks to all people sending in patches:

and to all those that supported us with good advice or rigorous testing:

batman-adv

  • support latest kernels (3.2 - 4.12)
  • bridge loop avoidance improvements for various corner cases
  • reduction of maximum fragment size
  • coding style cleanups and refactoring
  • bugs squashed:
    • fix rx packet/bytes stats on local DAT ARP reply

Happy routing,

The B.A.T.M.A.N. team

Batman-adv 2017.0.1 released

Added by Sven Eckelmann over 2 years ago

Mar 7th, 2017. Today the B.A.T.M.A.N. team publishes a bugfix release for the 2017.0 version of batman-adv! An API breaking change was integrated quite late in the Linux 4.11 merge window. This change broke the compilation of BATMAN_V against this version and required a change in the compatibility code of batman-adv. Additionally, a minor fix for the initialization of the gateway selection class was integrated which solves a problem when BATMAN_V is compiled in but BATMAN_IV is enabled. Also the change to generate equally sized fragments was backported from master to avoid a fragment padding problem identified by Martin Weinelt and Matthias Schiffer.

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:

https://downloads.open-mesh.org/batman/releases/batman-adv-2017.0.1/

as well as prepackaged binaries in your distribution.

Thanks

Thanks to all people sending in patches:

and to all those that supported us with good advice or rigorous testing:

batman-adv

  • support latest kernels (3.2 - 4.11)
  • bugs squashed:
    • avoid API incompatibilities with new EWMA implementation
    • generate equally size fragments to reduce chance of padding or MTU problems
    • fix initialization of gateway sel class when BATMAN_V is compiled in

Happy routing,

The B.A.T.M.A.N. team

Batman-adv 2017.0 released

Added by Sven Eckelmann over 2 years ago

Feb 28th, 2017. Today the B.A.T.M.A.N. team publishes the February 2017 update to batman-adv, batctl and alfred! This release reduces the number of cases in which batctl depends on running with full root user privileges. Bridge loop avoidance addresses are removed from the translation table to lower its memory usage. The batman-adv compatibility code was optimized to better work with old kernel versions and to build B.A.T.M.A.N. V (without wifi throughput detection) on pre-3.16 kernels. alfred gained an experimental mode to support data synchronization over IPv4 instead of IPv6. Also several bugfixes and code cleanups are included in this version.

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:

https://downloads.open-mesh.org/batman/releases/batman-adv-2017.0/

as well as prepackaged binaries in your distribution.

Thanks

Thanks to all people sending in patches:

and to all those that supported us with good advice or rigorous testing:

batman-adv

  • support latest kernels (3.2 - 4.11)
  • remove bridge loop avoidance addresses from translation table
  • allow to build B.A.T.M.A.N. V without cfg80211 integration on Linux < 3.16
  • coding style cleanups and refactoring
  • bugs squashed:
  • fix interface reference counter on fragmentation errors
    • avoid double free on fragment merge error
    • fix support for up to 16 fragments
    • fix build of multicast compatibility code on some architectures

batctl

  • remove root check for read-only sysfs and rtnl functionality
  • coding style cleanups
  • bugs squashed:
    • fix check for root privileges when started under modified effective uid

alfred

  • support IPv4 multicast distribution
  • coding style cleanups

Happy routing,

The B.A.T.M.A.N. team

Batman-adv 2016.5 released

Added by Sven Eckelmann over 2 years ago

Dec 15th, 2016. Today the B.A.T.M.A.N. team publishes the December 2016 update to batman-adv, batctl and alfred! This release improves the support of systems without debugfs and starts to replace the use of the sysfs files for interface manipulation with rtnetlink. batman-adv can automatically detect some setups which don't require (re)broadcasts on specific interfaces. The support of the multicast optimization under B.A.T.M.A.N. V was improved and the throughput detection now works for VLANs on top of WiFi interfaces. Also several bugfixes, code cleanups and code documentation updates are included in this version.

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:

https://downloads.open-mesh.org/batman/releases/batman-adv-2016.5/

as well as prepackaged binaries in your distribution.

Thanks

Thanks to all people sending in patches:

and to all those that supported us with good advice or rigorous testing:

batman-adv

  • support latest kernels (3.2 - 4.10)
  • change installation path back to $INSTALL_MOD_DIR/updates/net/batman-adv
  • add simple (re)broadcast avoidance
  • reduce multicast TT and TVLV update delays under B.A.T.M.A.N. V
  • support B.A.T.M.A.N. V throughput detection when using VLANs on top of WiFi
  • improve documentation of sysfs and debugfs files
  • coding style cleanups and refactoring
  • bugs squashed:
    • detect missing primaryif during tp_send as error
    • fix re-adding of previously removed interfaces via rtnetlink
    • fix rare race conditions on interface removal
    • handle allocation error when generating TT responses

batctl

  • reimplement traceroute/ping commands in userspace without debugfs
  • switch interface manipulation from (legacy) sysfs to rtnetlink
  • coding style cleanups

alfred

  • support interface validity checks on systems without debugfs
  • remove debugfs check during batadv-vis startup
  • allow out-of-order txend packets during transmissions

Happy routing,

The B.A.T.M.A.N. team

Batman-adv 2016.4 released

Added by Sven Eckelmann over 2 years ago

Oct 27th, 2016. Today the B.A.T.M.A.N. team publishes the October 2016 update to batman-adv, batctl and alfred! This release enhanced the netlink support and now can replace most of the data currently available via debugfs. batman-adv can therefore be used in multiple network namespaces without collision in debugfs. The size of the translation table was optimized and the gateway selection algorithm for B.A.T.M.A.N. V was integrated. Also several bugfixes, code cleanups and code documentation updates are included in this version.

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:

https://downloads.open-mesh.org/batman/releases/batman-adv-2016.4/

as well as prepackaged binaries in your distribution.

Thanks

Thanks to all people sending in patches:

batman-adv

  • support latest kernels (3.2 - 4.9)
  • add GW selection algorithm for B.A.T.M.A.N. V
  • add support for querying most tables/lists via netlink
  • adjusted device modifications for easier handling via rtnl (ip-link)
  • disabled (bad) debugfs support in network namespaces
  • add improved compat-patches support (note the new build directory)
  • reduced translation table memory consumption
  • coding style cleanups and refactoring
  • bugs squashed:
    • avoid locking problems when modifying interfaces
    • fix sysfs errors on fast device deletion/creation events
    • add missing memory barriers for neighbor list modifications
    • fix tpmeter debug log output

batctl

  • integrate support for batman-adv netlink
  • coding style cleanups
  • documentation updates
  • bugs squashed:
    • fix endless loop in TP meter on some platforms
    • fix build errors caused by name conflicts

alfred

  • add expert option to specify sync interval
  • fix various bugs in batadv-vis netlink integration
  • fix build build problems with libnl-tiny

Happy routing,

The B.A.T.M.A.N. team

Batman-adv 2016.3 released

Added by Sven Eckelmann almost 3 years ago

Sep 1st, 2016. Today the B.A.T.M.A.N. team publishes the September 2016 update to batman-adv, batctl and alfred! This release contains the multicast optimization support for bridged setups and frame priority support for fragmented packets. The initial set of patches to implement netlink support for batman-adv were integrated. As the first step, it is used to interact with the new kernel throughput benchmark code. Future releases will utilize netlink to replace the current debugfs tables in a more memory efficient way. Also several bugfixes, code cleanups and code documentation updates are included in this version.

As from this release, we will report the summaries from our Changelog for each component instead of a full text.

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:

https://downloads.open-mesh.org/batman/releases/batman-adv-2016.3/

as well as prepackaged binaries in your distribution.

Thanks

Thanks to all people sending in patches:

batman-adv

  • support latest kernels (3.2 - 4.8)
  • multicast optimization support for bridged setups
  • initial, limited support for batman-adv netlink family
  • throughput meter implementation
  • support for frame priority in fragment packets
  • kernel doc updates and coding style cleanups
  • bugs squashed:
    • fix (re-)initialization of ELP tweaking options
    • fix elp packet data reservation
    • fix nullptr dereference after using vlan_insert_tag
    • fix various reference counting bugs in bonding, bla, tt and originator code
    • fix speedy join in gateway client mode

batctl

  • synchronize common headers with batman-adv
  • support multicast logging and debug table
  • split tcpdump OGM packet filter in OGM and OGMv2 filter
  • add infrastructure to communicate with batadv netlink family
  • integrate command to control new kernel throughput meter

alfred

  • integrate support for batman-adv netlink

Happy routing,

The B.A.T.M.A.N. team

Batman-adv 2016.2 released

Added by Sven Eckelmann about 3 years ago

June 09th, 2016. Today the B.A.T.M.A.N. team publishes the June 2016 update to batman-adv, batctl and alfred! This release contains the initial patches to get network namespace support for batman-adv. Also several bugfixes, code cleanups and code documentation updates are included in this version. 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:

https://downloads.open-mesh.org/batman/releases/batman-adv-2016.2/

as well as prepackaged binaries in your distribution.

Thanks

Thanks to all people sending in patches:

and to all those that supported us with good advice or rigorous testing:

batman-adv

  • support latest kernels (3.2 - 4.7)
  • initial, limited support for network namespaces
  • kernel doc updates and coding style cleanups
  • cleanup of legacy kernel compat code
  • support for detection and reporting of complex bridge loops
  • bugs squashed:
    • fix some TT issues: double free for full table request structs (created problems on multi-core systems) and a double put of VLAN objects
    • fix various B.A.T.M.A.N. V issues: fix mac address after address change, ELP orig address on secondary interfaces, null pointer dereference in metric comparison, refcount issues, ...
    • fix skb deref after transmission
    • avoid duplicate neigh_node additions
    • replace WARN with rate limited output on non-existing VLAN
    • fix ICMP RR ethernet header access after skb_linearize
    • fix memleak of untagged vlan when removing interface via rtnl-link
    • fix build against Debian Stretch kernels

batctl

batctl's tcpdump component was enriched with an OGM2 and ELP parser to be able to print relevant B.A.T.M.A.N. V information. Also the new "loopdetect" type of bridge loop avoidance ARP packets is now recognized by the tcpdump component.

alfred

alfred now automatically mounts the debugfs before it reduces its capabilities. This avoids problems when it has to query the state of batman-adv via debugfs.

Happy routing,

The B.A.T.M.A.N. team

Batman-adv 2016.1 released

Added by Sven Eckelmann about 3 years ago

April 21th, 2016. Today the B.A.T.M.A.N. team publishes the April 2016 update to batman-adv, batctl and alfred! This release contains the initial support of the B.A.T.M.A.N. V routing algorithm. Also several bugfixes, code cleanups and code documentation updates are included in this version. 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:

https://downloads.open-mesh.org/batman/releases/batman-adv-2016.1/

as well as prepackaged binaries in your distribution.

Thanks

Thanks to all people sending in patches:

and to all those that supported us with good advice or rigorous testing:

batman-adv

This release marks the beginning of the public testing phase of the B.A.T.M.A.N. V routing algorithm - the newest evolution in the B.A.T.M.A.N. routing protocol family. Despite its recent nature, B.A.T.M.A.N. V has a vivid history: Back in 2010, initial ideas how to improve B.A.T.M.A.N. IV started flying back and forth. By 2012 the concept had matured enough, to warrant the first prototypes to be developed and tested. And yet, this ambitious project should last another 4 years with major contributions from key developers (including 2 GSoC projects) till we deemed it ready for a wider audience. A major refactoring effort was necessary as the B.A.T.M.A.N. IV algorithm was intertwined with the entire code base and not cleanly separated. The design goal was to have an inner-module API allowing to swap the entire routing algorithm to an alternative while preserving all features like translation table, distributed ARP table, bridge loop avoidance, gateway selection, etc. The invested effort was well worth it: The batman-adv kernel module is now able to run multiple independent mesh networks in parallel on the same host. When a mesh (batX) interface is created, batman-adv can be configured to use the desired mesh protocol (B.A.T.M.A.N. IV or B.A.T.M.A.N. V).

The key differences between B.A.T.M.A.N. IV and B.A.T.M.A.N. V are found in the message types and the metric. B.A.T.M.A.N. V relies on the Echo Location Protocol (ELP) for neighbor discovery. This packet type is never forwarded or rebroadcasted in the mesh. The Originator Messages version 2 (OGMv2) protocol remains responsible for flooding the mesh with link quality information and determining the overall path transmit qualities. The metric transported within the OGMv2 packets is throughput based. In most cases the throughput can be determined automatically, manual overrides are available too. The path throughput between node A and node B is computed as the minimum between the throughput value of all given links on the path between node A and node B (other factors are also included in the computation - for further details please check our OGMv2 wikipage).

As B.A.T.M.A.N. V is not considered 'stable', it needs to be manually enabled to be compiled into the kernel module. Deployment of B.A.T.M.A.N. V in production environments is not recommended. Test feedback is more than welcome!

Under the hood things changed too: The batman-adv reference counting implementation (based on atomic_t) was converted to the in-kernel kref based reference counting. The batman-adv module checks in different situations if a new device is already on top of a different batman-adv device. The check did not handle veth devices properly which are actually a pair of two devices linked to each other, thus froze the system. This has been fixed. A crash has been addressed which is caused due to accessing the encapsulated ethernet and VLAN header without checking whether these are part of the same skb buffer. The shutdown of an batman-adv interface can happen with one of its slave interfaces still being in the BATADV_IF_TO_BE_ACTIVATED state. A change has been introduced to set the interface state to BATADV_IF_INACTIVE, otherwise the batman-adv interface will never reduce its usage counter and thus never gets shutdown. The code also benefited from the usual set of code beautifications and checkpatch cleanups.

batctl

batctl imported some minor updates from the kernel header files. These include only the packet structure definitions of the B.A.T.M.A.N. V packet types.

alfred

alfred gained support on master servers to receive push_data packets from unix socket clients with foreign source addresses. The old/default mechanism of alfred to write its own MAC address is still supported, by setting the source MAC address to 00:00:00:00:00:00, as previous clients did. Note that this feature is not supported on slave servers. Also various code cleanups have been performed, and a invalid EUI64 addresses are ignored now.

Happy routing,

The B.A.T.M.A.N. team

(11-20/90)

Also available in: Atom