August 31th, 2026: The B.A.T.M.A.N. team is excited to announce the release of the August 2026 update for batman-adv! batman-adv got rid of the induced overhead of each Ethernet-like interface on the system by only handling interfaces which are attached to a mesh interfaces. The unacked packet queue of throughput meter receivers will now be defragmented to keep it much shorter in many scenarios with packet loss or packet reordering. Support for kernel older than 5.15 was dropped. Several bug fixes and code cleanups are included in this version.
Since the kernel module is always dependent on the specific Linux kernel it’s compiled against, providing precompiled binaries on our website is not feasible. As always, you can find the signed tarballs in the download section:
https://downloads.open-mesh.org/batman/releases/batman-adv-2026.3/
Thanks¶
Many thanks to everyone who contributed patches:
And a special thanks to those who supported us with valuable advice and thorough testing:
batman-adv¶
- support latest kernels (5.15 - 7.3)
- coding style cleanups and refactoring
- reduce memory and runtime overhead by only handling attached interfaces
- optimize throughput meters unacked packets handling
- bugs squashed:
- clean untagged VLAN on netdev registration failure
- ensure minimal ethernet header on TX
- fix VLAN priority offset
- bla: avoid CRC corruption due to parallel claim add
- bla: fix freeing of claims on meshif deletion
- bla: prevent CRC corruptions after claim flush
- dat: atomically update mac addresses
- dat: avoid unaligned fault in IP extraction
- dat: fix tie-break for candidate selection
- frag: fix primary_if leak on failed linearization
- frag: fix stale receive device on merged fragments
- frag: free unfragmentable packet
- mcast: avoid OOB read of num_dests header
- mcast: fix TX priority extraction for BATADV_FORW_MCAST
- mcast: ensure unshared skb for multicast packets
- mcast: linearize skbuff for packet generation
- mcast: reject unrepresentable TVLV offsets
- tt: avoid request storms during pending request
- tt: prevent TVLV OOB check overflow
- tvlv: handle negative tvlv processing return codes
batctl¶
- coding style cleanups and refactoring
- bugs squashed:
- bat-hosts: compare full path for deduplication
- bat-hosts: free bat_host when hash_add fails
- dat_cache: fix multicast/unicast filter for MAC address
- debug: avoid endless getopt loop for attached '-w' argument
- debug: reject non-finite/negative interval/timeout values
- debug: reject trailing garbage for intervals
- debug: use strict interval/timeout parsing
- event: don't print timestamp prefix for skipped events
- fix parsing of parameters with arguments
- genl_json: avoid negative chars in sanitize_string
- genl_json: escape non-printable characters as valid JSON
- genl_json: reject unknown options in handle_json_query
- handle netlink callback object on error
- icmp_helper: attach socket filter before packets can arrive
- icmp_helper: fail send when the primary mac is unknown
- icmp_helper: return only initialized icmp destination unreached bytes
- icmp_helper: return proper errno on syscall failures
- improve number parsing error handling
- interface: report rtnl query failures
- interface: return fail for non-existing interface
- isolation_mark: fix error message for invalid mark/mask values
- netlink: abort netlink_print_common when message allocation fails
- netlink: always 0-terminate hardif name
- netlink: check for BATADV_ATTR_MESH_ADDRESS before accessing it
- netlink: detect receive errors in netlink_print_common
- netlink: detect receive errors in netlink_simple_request
- netlink: detect receive errors in query_rtnl_link
- netlink: detect receive errors in query_rtnl_link_single
- netlink: don't format NULL extra_info in info_callback
- netlink: free header lines after error
- netlink: report dump errors signalled in the NLMSG_DONE message
- netlink: report error on query_rtnl_link send failure
- netlink: report kernel errors when writing settings
- netlink: report send errors in netlink_simple_request
- originators: fix throughput lines with bat_hosts
- ping/traceroute: don't restart RTT timer on stray replies
- ping: count sent and not received pings
- ping: fix rtt minimum tracking when a sample is 0.0
- ping: keep huge '-i' intervals from turning into a flood ping
- ping: reject invalid packet count argument
- ping: reject invalid timeout argument
- tcpdump: check frame length before reading the ethernet header
- tcpdump: correct output of VLAN IDs
- tcpdump: don't label unknown ICMPv6 types as unreachable
- tcpdump: fix "subtybe" typo in 4ADDR output
- tcpdump: fix coded packet mac dest mac addresses
- tcpdump: fix endianness of fragmentation sequence number
- tcpdump: fix reported length for ICMP6_TIME_EXCEEDED
- tcpdump: fix source address selection for 802.11 data frames
- tcpdump: handle TCP packet with bogus data offset
- tcpdump: print the unreachable host for ICMP port unreachable
- tcpdump: reject invalid packet type arguments
- tcpdump: resolve bat-host name for ROAMv1 client
- tcpdump: return EXIT_SUCCESS on normal termination
- tcpdump: skip partial line for oversized ICMPv6 errors
- tpmeter: abort result wait on receive errors
- tpmeter: don't cancel test from the signal handler
- tpmeter: fix Gbps output
- tpmeter: label sub-kByte/s rate in bits per second
- tpmeter: reject invalid test duration argument
- traceroute: handle fast replies
- traceroute: probe the advertised maximum number of hops
- traceroute: return EXIT_NOSUCCESS when destination not reached
- translate: don't overwrite the search key
- version: avoid use of uninitialized read buffer
alfred¶
- bugs squashed:
- seed the random() generator for transaction IDs
Happy routing,
The B.A.T.M.A.N. team
June 30th, 2026: The B.A.T.M.A.N. team is excited to announce the release of the June 2026 update for batman-adv! A new wifi flags hashtables was introduced to reduce the per-packet overhead in the translation table wifi flags handling. It will also be used in a future release to get rid of the batman-adv induced overhead of each Ethernet-like interface on the system. The TVLV serialization code was optimized to avoid unnecessary allocations for the output buffer. Several bug fixes and code cleanups are included in this version.
Since the kernel module is always dependent on the specific Linux kernel it’s compiled against, providing precompiled binaries on our website is not feasible. As always, you can find the signed tarballs in the download section:
https://downloads.open-mesh.org/batman/releases/batman-adv-2026.2/
Thanks¶
Many thanks to everyone who contributed patches:
And a special thanks to those who supported us with valuable advice and thorough testing:
batman-adv¶
- support latest kernels (5.10 - 7.2)
- coding style cleanups and refactoring
- switch wifi flags lookup to specialized rhashtable
- skip unnecessary TVLV buffer allocation of each OGM transmission
- bugs squashed:
- batman_iv: stop caching unowned originator pointers
- batman_iv: fix integer overflow on buff_pos
- batman_iv: avoid bonding logic for outgoing OGM
- batman_iv: recover OGM scheduling after forward packet error
- batman_v: stop OGMv2 on disabled interface
- batman_v: prevent ELP transmission interval underflow
- batman_v: prevent OGM aggregation on disabled hardif
- bla: prevent use-after-free when deleting claims
- bla: only purge non-released claims
- bla: put backbone reference on failed claim hash insert
- bla: fix report_work leak on backbone_gw purge
- bla: avoid double decrement of bla.num_requests
- bla: avoid NULL-ptr deref for claim via dropped interface
- bla: annotate lasttime access with READ/WRITE_ONCE
- bla: reacquire gw address after skb realloc
- dat: acquire ARP hw source only after skb realloc
- dat: ensure accessible eth_hdr proto field
- dat: handle forward allocation error
- dat: prevent false sharing between VLANs
- frag: fix reassembly length accounting
- frag: disallow unicast fragment in fragment
- frag: ensure fragment is writable before modifying TTL
- frag: avoid underflow of TTL
- gw: acquire ethernet header only after skb realloc
- gw: clear current gateway during teardown
- gw: don't deselect gateway with active hardif
- mcast: fix use-after-free in orig_node RCU release
- routing: access unicast_ttvn skb->data only after skb realloc
- routing: ensure bcast is writable before modifying TTL
- routing: fix (m|b)cast csum after decrementing TTL
- routing: retrieve ethhdr after potential skb realloc on RX
- tp_meter: reject new sessions during teardown
- tp_meter: stop sessions during mesh teardown
- tp_meter: fix counter underflow during shutdown
- tp_meter: fix tp_num leak on kmalloc failure
- tp_meter: fix tp_vars reference leak in receiver shutdown
- tp_meter: avoid use of uninit sender vars
- tp_meter: directly shut down timer on cleanup
- tp_meter: fix race condition in send error reporting
- tp_meter: avoid role confusion in tp_list
- tp_meter: keep unacked list in ascending ordered
- tp_meter: initialize dup_acks explicitly
- tp_meter: initialize dec_cwnd explicitly
- tp_meter: avoid window underflow
- tp_meter: avoid divide-by-zero for dec_cwnd
- tp_meter: fix fast recovery precondition
- tp_meter: handle seqno wrap-around for fast recovery detection
- tp_meter: add only finished tp_vars to lists
- tp_meter: use locking for all congestion control variables
- tp_meter: initialize last_recv_time during init
- tp_meter: restrict number of unacked list entries
- tp_meter: annotate last_recv_time access with READ/WRITE_ONCE
- tp_meter: prevent parallel modifications of last_recv
- tp_meter: handle overlapping packets
- tt: reject oversized local TVLV buffers
- tt: fix negative tt_buff_len
- tt: fix negative last_changeset_len
- tt: fix TOCTOU race for reported vlans
- tt: avoid empty VLAN responses
- tt: prevent TVLV entry number overflow
- tt: don't merge change entries with different VIDs
- tt: track roam count per VID
- tvlv: abort OGM send on tvlv append failure
- tvlv: reject oversized TVLV packets
- tvlv: avoid race of cifsnotfound handler state
- tvlv: enforce 2-byte alignment
batctl¶
- coding style cleanups and refactoring
- bugs squashed:
- don't stop on missing batman-adv version file
alfred¶
- coding style cleanups and refactoring
Happy routing,
The B.A.T.M.A.N. team
April 8th, 2026: The B.A.T.M.A.N. team is excited to announce the release of the April 2026 update for batman-adv! Several bug fixes and code cleanups are included in this version.
Since the kernel module is always dependent on the specific Linux kernel it’s compiled against, providing precompiled binaries on our website is not feasible. As always, you can find the signed tarballs in the download section:
https://downloads.open-mesh.org/batman/releases/batman-adv-2026.1/
Thanks¶
Many thanks to everyone who contributed patches:
And a special thanks to those who supported us with valuable advice and thorough testing:
batman-adv¶
- support latest kernels (5.10 - 7.1)
- coding style cleanups and refactoring
- bugs squashed:
- reject oversized global TT response buffers
- avoid OGM aggregation when skb tailroom is insufficient
- prevent freed backbones when dumping BLA claims
batctl¶
- coding style cleanups and refactoring
- bugs squashed:
- tcpdump: Fix printing of usecs
- fix tbl preprocessing of manpage
alfred¶
- coding style cleanups and refactoring
- bugs squashed:
Happy routing,
The B.A.T.M.A.N. team
February 24nd, 2026: The B.A.T.M.A.N. team is excited to announce the release of the February 2026 update for batman-adv! This release includes only bug fixes.
Since the kernel module is always dependent on the specific Linux kernel it’s compiled against, providing precompiled binaries on our website is not feasible. As always, you can find the signed tarballs in the download section:
https://downloads.open-mesh.org/batman/releases/batman-adv-2026.0/
Thanks¶
Many thanks to everyone who contributed patches:
And a special thanks to those who supported us with valuable advice and thorough testing:
batman-adv¶
- support latest kernels (5.10 - 7.0)
- bugs squashed:
- fix double-rtnl_lock ELP metric worker
Happy routing,
The B.A.T.M.A.N. team
December 19nd, 2025: The B.A.T.M.A.N. team is excited to announce the release of the December 2025 update for batman-adv! This release includes various code cleanups and drops support for EOL kernels.
Since the kernel module is always dependent on the specific Linux kernel it’s compiled against, providing precompiled binaries on our website is not feasible. As always, you can find the signed tarballs in the download section:
https://downloads.open-mesh.org/batman/releases/batman-adv-2025.5/
Thanks¶
Many thanks to everyone who contributed patches:
batman-adv¶
- support latest kernels (5.10 - 6.19)
- coding style cleanups and refactoring
Happy routing,
The B.A.T.M.A.N. team
October 24nd, 2025: The B.A.T.M.A.N. team is excited to announce the release of the October 2025 update for batman-adv! The network coding support was dropped due to its limited usefulness in todays Wi-Fi landscape and the neglected development in the related code portions. This release also includes various bug fixes and code cleanups.
Since the kernel module is always dependent on the specific Linux kernel it’s compiled against, providing precompiled binaries on our website is not feasible. As always, you can find the signed tarballs in the download section:
https://downloads.open-mesh.org/batman/releases/batman-adv-2025.4/
Thanks¶
Many thanks to everyone who contributed patches:
And a special thanks to those who supported us with valuable advice and thorough testing:
batman-adv¶
- support latest kernels (5.4 - 6.18)
- removed network coding (C.A.T.W.O.M.A.N.) support
- coding style cleanups and refactoring
- bugs squashed:
- release references to inactive interfaces on netlink queries
batctl¶
- removed network coding (C.A.T.W.O.M.A.N.) support
Happy routing,
The B.A.T.M.A.N. team
September 5th, 2025: The B.A.T.M.A.N. team is excited to announce the release of the September 2025 update for batman-adv! This release includes various bug fixes and code cleanups.
Since the kernel module is always dependent on the specific Linux kernel it’s compiled against, providing precompiled binaries on our website is not feasible. As always, you can find the signed tarballs in the download section:
https://downloads.open-mesh.org/batman/releases/batman-adv-2025.3/
Thanks¶
Many thanks to everyone who contributed patches:
batman-adv¶
- support latest kernels (5.4 - 6.17)
- coding style cleanups and refactoring
- bugs squashed:
- fix OOB read/write in network-coding decode
batctl¶
- bugs squashed:
- fix potential memory leak in print_routing_algos
- fix event parsing of hard interface names
Happy routing,
The B.A.T.M.A.N. team
June 18th, 2025: The B.A.T.M.A.N. team is excited to announce the release of the June 2025 update for batman-adv! This release includes various bug fixes and code cleanups.
Since the kernel module is always dependent on the specific Linux kernel it’s compiled against, providing precompiled binaries on our website is not feasible. As always, you can find the signed tarballs in the download section:
https://downloads.open-mesh.org/batman/releases/batman-adv-2025.2/
Thanks¶
Many thanks to everyone who contributed patches:
batman-adv¶
- support latest kernels (5.4 - 6.16)
- coding style cleanups and refactoring
- bugs squashed:
- fix duplicate MAC address check
Happy routing,
The B.A.T.M.A.N. team
April 17th, 2025: The B.A.T.M.A.N. team is excited to announce the release of the April 2025 update for batman-adv! This update introduces support for jumbo frames on top of batman-adv. This release also includes various bug fixes and code cleanups.
Since the kernel module is always dependent on the specific Linux kernel it’s compiled against, providing precompiled binaries on our website is not feasible. As always, you can find the signed tarballs in the download section:
https://downloads.open-mesh.org/batman/releases/batman-adv-2025.1/
Thanks¶
Many thanks to everyone who contributed patches:
batman-adv¶
- support latest kernels (5.4 - 6.15)
- added support for jumbo frames
- coding style cleanups and refactoring
- bugs squashed:
- don't limit size of aggregated incoming OGMs
- limit outgoing OGMs aggregates by MTU of outgoing interface
batctl¶
- coding style cleanups and refactoring
alfred¶
- coding style cleanups and refactoring
Happy routing,
The B.A.T.M.A.N. team
February 7th, 2025: The B.A.T.M.A.N. team is excited to announce the release of the February 2025 update for batman-adv! This update introduces support for subsecond ping intervals in batctl. To optimize OGM size, VLAN 0 is now treated as an "untagged VLAN," and announced TT changes now include fewer redundant modifications. Additionally, the OGM translation table changes parser in batman-adv has received a critical fix for a regression introduced in version 2024.4. This release also includes various bug fixes and code cleanups.
Since the kernel module is always dependent on the specific Linux kernel it’s compiled against, providing precompiled binaries on our website is not feasible. As always, you can find the signed tarballs in the download section:
https://downloads.open-mesh.org/batman/releases/batman-adv-2025.0/
Thanks¶
Many thanks to everyone who contributed patches:
batman-adv¶
- support latest kernels (5.4 - 6.14)
- handle VLAN 0 as untagged VLAN
- TT changes in OGMs no longer contain redundant TT changes
- coding style cleanups and refactoring
- bugs squashed:
- fix incorrect offset in OGM handler for translation table TVLV
- force stop of throughput detection workers on interface removal
batctl¶
- subsecond precision support for ping intervals
- coding style cleanups and refactoring
alfred¶
- coding style cleanups and refactoring
Happy routing,
The B.A.T.M.A.N. team