Skip to content

Latest commit

 

History

History
1044 lines (788 loc) · 32.7 KB

CHANGELOG.rst

File metadata and controls

1044 lines (788 loc) · 32.7 KB

2024.4 (2024-12-10)

  • support latest kernels (5.4 - 6.13)
  • coding style cleanups and refactoring
  • bugs squashed:
    • prevent transmission of uninitialized memory for TT TVLVs
    • avoid stuck, overfull translation table changes list

2024.3 (2024-10-15)

  • support latest kernels (4.19 - 6.12)
  • coding style cleanups and refactoring
  • bugs squashed:
    • avoid processing of translation table updates for out-of-spec VIDs

2024.2 (2024-06-20)

  • support latest kernels (4.19 - 6.10)
  • coding style cleanups and refactoring

2024.1 (2024-04-05)

  • support latest kernels (4.19 - 6.9)
  • coding style cleanups and refactoring
  • bugs squashed:
    • avoid infinite loop while trying to resize local translation table

2024.0 (2024-02-01)

  • support latest kernels (4.19 - 6.8)
  • coding style cleanups and refactoring
  • Add stateless multicast packet format support

2023.3 (2023-11-15)

  • support latest kernels (4.14 - 6.7)
  • coding style cleanups and refactoring
  • only warn about too small MTU when soft interfaces wasn't already reduced
  • bugs squashed:
    • Hold rtnl lock during MTU update via netlink

2023.2 (2023-08-16)

  • support latest kernels (4.14 - 6.5)
  • bugs squashed:
    • avoid potential invalid memory access when processing ELP/OGM2 packets
    • drop pending DAT worker when interface shuts down
    • inform network stack about automatically adjusted MTUs
    • keep user defined MTU limit when MTU is recalculated
    • fix packet memory leak when sending OGM2 via inactive interfaces
    • fix TT memory leak for roamed back clients

2023.1 (2023-05-25)

  • support latest kernels (4.14 - 6.4)
  • drop single unicast transfer optimization for unsnoopable IP addresses
  • prepare infrastructure for multicast packets with multiple unicast destination addresses

2023.0 (2023-01-26)

  • support latest kernels (4.14 - 6.2)

2022.3 (2022-11-10)

  • support latest kernels (4.9 - 6.1)
  • coding style cleanups and refactoring
  • bugs squashed:
    • limit the minimum MTU of hard-interface to avoid "Forced to purge local tt entries" errors

2022.2 (2022-07-26)

  • support latest kernels (4.9 - 5.19)

2022.1 (2022-05-06)

  • support latest kernels (4.9 - 5.18)
  • bugs squashed:
    • resolve "time-of-check-time-of-use" race condition when checking the the network namespace of a lower device
    • fix sanity check of network devices in different namespaces with colliding IDs
    • prevent transmission errors after splitting large GRO packets into smaller fragments

2022.0 (2022-02-03)

  • support latest kernels (4.9 - 5.17)
  • dropped support for kernels < 4.9
  • coding style cleanups and refactoring
  • allow netlink usage in unprivileged containers
  • bugs squashed:
    • don't send link-local multicast to mcast routers

2021.4 (2021-11-19)

  • support latest kernels (4.4 - 5.16)
  • coding style cleanups and refactoring
  • bugs squashed:
    • fix error handling during interface initialization

2021.3 (2021-09-14)

  • support latest kernels (4.4 - 5.15)
  • coding style cleanups and refactoring
  • reduced memory copy overhead when sending broadcasts

2021.2 (2021-08-20)

  • support latest kernels (4.4 - 5.14)
  • coding style cleanups and refactoring
  • add MRD + routable IPv4 multicast with bridges support
  • rewrite of broadcast queuing
  • bugs squashed:
    • avoid kernel warnings on timing related checks

2021.1 (2021-05-18)

  • support latest kernels (4.4 - 5.13)
  • coding style cleanups and refactoring
  • bugs squashed:
    • correctly initialize padding when sending out translation table TVLVs

2021.0 (2021-01-28)

  • support latest kernels (4.4 - 5.11)
  • coding style cleanups and refactoring
  • drop support for sysfs+debugfs
  • allow to select routing algorithm during creation of interface
  • bugs squashed:
    • allocate enough reserved room on fragments for lower devices

2020.4 (2020-10-27)

  • support latest kernels (4.4 - 5.10)
  • coding style cleanups and refactoring
  • bugs squashed:
    • fix incorrect reroute handling of multicast packets
    • improve handling of multicast packets by bridge loop avoidance

2020.3 (2020-08-24)

  • support latest kernels (4.4 - 5.9)
  • coding style cleanups and refactoring
  • introduce a configurable per interface hop penalty
  • bugs squashed:
    • avoid uninitialized chaddr when handling DHCP
    • fix own OGMv2 check in aggregation receive handling
    • fix "NOHZ: local_softirq_pending 08" warnings caused by BLA

2020.2 (2020-07-06)

  • support latest kernels (4.4 - 5.8)
  • coding style cleanups and refactoring
  • dropped support for kernels < 4.4
  • re-enabled link speed detection for interfaces without auto negotiation

2020.1 (2020-04-24)

  • support latest kernels (3.16 - 5.7)
  • coding style cleanups and refactoring
  • bugs squashed:
    • fix reference leaks in throughput_override sysfs file
    • fix reference leak in B.A.T.M.A.N. V OGM error handling
    • fix network coding random weighting

2020.0 (2020-03-04)

  • support latest kernels (3.16 - 5.6)
  • coding style cleanups and refactoring
  • use wifi tx rates as fallback for the B.A.T.M.A.N. V throughput estimation
  • disable deprecated sysfs support by default
  • bugs squashed:
    • fix crash during the scheduling of OGMs for removed interfaces

2019.5 (2019-12-12)

  • support latest kernels (3.16 - 5.5)
  • coding style cleanups and refactoring
  • bugs squashed:
    • fix DAT candidate selection on little endian systems

2019.4 (2019-10-25)

  • support latest kernels (3.16 - 5.4)
  • coding style cleanups and refactoring
  • implement aggregation of OGM2 packets
  • bugs squashed:
    • fix length validation in netlink messages
    • fix out of buffer read when parsing aggregated packets
    • avoid race condition in OGM(2) packet modification and submission

2019.3 (2019-08-01)

  • support latest kernels (3.16 - 5.3)
  • coding style cleanups and refactoring
  • add routable multicast optimizations
  • bugs squashed:
    • fix duplicated OGMs on NETDEV_UP
    • fix dumping of multicast flags

2019.2 (2019-05-23)

  • support latest kernels (3.16 - 5.2)
  • coding style cleanups and refactoring
  • implement multicast-to-unicast support for multiple targets
  • deprecate sysfs support and make it optional
  • refresh DAT entry timeouts on incoming ARP Replies
  • bugs squashed:
    • fix multicast tt/tvlv worker locking
    • drop roam tvlv handler when unregistering mesh interface

2019.1 (2019-03-28)

  • support latest kernels (3.16 - 5.1)
  • coding style cleanups and refactoring
  • implement meshif, hardif and vlan interface via netlink
  • snoop DHCP ACKs to improve DAT cache efficiency
  • bugs squashed:
    • avoid potential reference counter underflows and use-after free errors for several objects
    • fix GCC warning when B.A.T.M.A.N. V is build in but cfg80211 is not available
    • reject too small VLAN packets before they are processed further

2019.0 (2019-02-01)

  • support latest kernels (3.16 - 5.0)
  • coding style cleanups and refactoring
  • allow to enable debug tracing without full batman-adv debugfs support
  • enable inconsistency reporting for most netlink dump commands
  • bugs squashed:
    • avoid unnecessary kernel warning (panic) during detection of interface loops
    • work around incorrect ethernet header offset in transmit code path

2018.4 (2018-11-14)

  • support latest kernels (3.16 - 4.20)
  • coding style cleanups and refactoring
  • improve tx performance by avoiding unnecessary locking
  • add help messages regarding deprecation of debugfs files
  • support for debug message tracepoints
  • explicit ELP padding to allow TVLVs in the future
  • bugs squashed:
    • fix skb_over_panic for merged fragments with small tailroom

2018.3 (2018-09-14)

  • support latest kernels (3.16 - 4.19)
  • coding style cleanups and refactoring
  • enable the DAT by default for the in-tree Linux module
  • bugs squashed:
    • fix segfault when writing to sysfs files under batman_adv/ with CONFIG_BATMAN_ADV_DEBUG enabled
    • avoid information leakage in probe ELP packets
    • adjust reference counters when queue_work fails
    • prevent duplicated entries in various lists

2018.2 (2018-07-10)

  • support latest kernels (3.16 - 4.18)
  • dropped support for kernels < 3.16 (note the removed build directory)
  • coding style cleanups and refactoring
  • avoid old nodes disabling multicast optimizations completely
  • disable ethtool based B.A.T.M.A.N. V speed detection for virtual interfaces
  • enable B.A.T.M.A.N. V compilation by default
  • disable debugfs support by default
  • bugs squashed:
    • fix TT sync flags for intermediate TT responses
    • avoid race in TT TVLV allocator helper
    • prevent TT request storms by not sending inconsistent TT TVLVs
    • fix best gw refcnt after netlink dump
    • adjust debugfs paths for interfaces after a namechange
    • fix single entry TT non-sync flag storage
    • fix multicast TT issues with bogus ROAM flags
    • work around insufficient memory initialization in cfg80211's station info

2018.1 (2018-04-25)

  • support latest kernels (3.2 - 4.17)
  • coding style cleanups and refactoring
  • add DAT cache and multicast flags netlink support
  • avoid redundant multicast TT entries
  • bugs squashed:
    • update data pointers after skb_cow()
    • fix header size check in batadv_dbg_arp()
    • fix skbuff rcsum on packet reroute
    • fix multicast-via-unicast transmission with AP isolation
    • fix packet loss for broadcasted DHCP packets to a server
    • fix multicast packet loss with a single WANT_ALL_IPV4/6 flag

2018.0 (2018-02-26)

  • support latest kernels (3.2 - 4.16)
  • coding style cleanups and refactoring
  • mark licenses clearer, change UAPI header from ISC to MIT
  • bugs squashed:
    • fix packet checksum handling in receive path
    • fix handling of large number of interfaces
    • fix netlink dumping of gateways and BLA claims+backbones

2017.4 (2017-12-05)

  • support latest kernels (3.2 - 4.15)
  • coding style cleanups and refactoring
  • documentation cleanup
  • bugs squashed:
    • avoid spurious warnings from bat_v neigh_cmp implementation
    • fix check of gateway availability in B.A.T.M.A.N. V
    • fix locking for bidirectional TQ check counters
    • remove leak of stack bits in fragmentation header priority

2017.3 (2017-09-28)

  • 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

2017.2 (2017-07-28)

  • 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

2017.1 (2017-05-23)

  • 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

2017.0.1 (2017-03-07)

  • 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

2017.0 (2017-02-28)

  • 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

2016.5 (2016-12-15)

  • 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

2016.4 (2016-10-27)

  • 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

2016.3 (2016-09-01)

  • 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

2016.2 (2016-06-09)

  • 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

2016.1 (2016-04-21)

  • support latest kernels (3.2 - 4.6)
  • drop support for older kernels 2.6.29 - 3.1
  • B.A.T.M.A.N. V routing algorithm support
  • kernel doc updates and coding style cleanups
  • conversion to the kref based reference counting framework
  • bugs squashed:
    • fix endless loop in bat-on-bat netdevice check when using veth
    • fix various reference counting issues
    • init neigh node last seen field
    • fix integer overflow in batadv_iv_ogm_calc_tq
    • fix broadcast/ogm queue limit on a removed interface
    • fix DAT candidate selection to use VID
    • fix unexpected free of bcast_own on add_if error
    • check skb size before using encapsulated ETH+VLAN header

2016.0 (2016-01-19)

  • support latest kernels (2.6.29 - 4.5)
  • add list of unique single hop neighbors and export it via debugfs
  • massive kernel doc updates and coding style cleanups
  • redesign/fix RCU handling when cleaning up to avoid bad memory access
  • increase bridge loop avoidance wait time to 60 seconds
  • remove bridge loop avoidance state when it gets disabled
  • support for interfaces which switch from non-ethernet to ethernet mode
  • bugs squashed:
    • fix lockdep splat when doing mcast_free or batadv_tlv_container_remove
    • fix invalid memory access when shrinking buffer for the OGM-return-rate measurement on interface removal

2015.2 (2015-11-23)

  • support latest kernels (2.6.29 - 4.4)
  • cleanup of coding style and kernel docs
  • fix includes in various files
  • add lower layer head/tail room to avoid problems when slave devices encapsulate packets and have not enough space available
  • fix hard_header_len which allows sending packets shorter than 64byte
  • Remove obsolete deleted attribute for gateway node to simplify code and avoid delayed free of structures referenced by the gateway
  • Add lockdep asserts to find locking problems
  • bugs squashed:
    • Fix gw_bandwidth calculation on 32 bit systems
    • prevent potential hlist double deletion
    • fix soft interface access on unload
    • fix invalid stack access in DAT
    • lock CRC access in bridge loop avoidance
    • fix TT client duplicate detection with VLANs
    • fix excess VLANs in TT requests
    • avoid keeping false temporary TT entries
    • fix TT speedy join for DAT cache replies
    • fix TT memory leak on add with invalid VLAN

2015.1 (2015-08-04)

  • support latest kernels (2.6.29 - 4.2)
  • cleanup of coding style
  • cleanup of the compatibility layer
  • convert to the Linux source directory structure
  • adjust default configuration
    • disable network coding
    • enable bridge loop avoidance
  • bugs squashed:
    • avoid DAT to mess up local LAN state
    • fix race conditions in DAT/NC/TT/MCAST TVLV handlers
    • fix build system POSIX compatibility
    • fix gateway selection in fast connection (1) gw_mode
    • fix initialization of detected gateway, which caused hangs on unloads
    • fix race conditions in the translation table
    • fix kernel crash due to missing NULL checks in vlan handlers
    • fix potentially broken header access by multicast optimization
    • fix broadcast packets cleanup for purged outgoing interface

2015.0 (2015-04-28)

  • support latest kernels (2.6.29 - 4.1)
  • cleanup of coding style and add kerneldoc
  • bugs squashed: - fix incorrect lockdep warning in network coding - fix condition when bonding should be used - fix support of bridged batman-adv devices with kernel < 2.6.39

2014.4.0 (2015-01-05)

  • support latest kernels (2.6.29 - 3.19)
  • double default hop penalty
  • bugs squashed:
    • fix wrong size calculations and out of order support in fragmentation (fixes CVE-2014-9428)
    • fix double fetch in RCU for old kernels (<3.9)
    • fix NULL dereference and check in gateway code
    • fix multicast counters
    • fix network coding SKB control block initialization
    • fix last_seen initialization for orig nodes

2014.3.0 (2014-07-21)

  • support latest kernels (2.6.29 - 3.16)
  • drop QinQ claim frames in bridge loop avoidance
  • fix a bogus warning from batadv_is_on_batman_iface()
  • removed SET_ETHTOOL_OPS
  • style improvements:
    • remove semi-colon after macro definition
    • add blank line between declarations and the rest of the code

2014.2.0 (2014-05-15)

  • support latest kernels (2.6.29 - 3.15)
  • add multicast optimization for certain type of multicast networks to send data only to nodes actually registered using new TVLVs and the translation table
  • use ether_addr_copy instead of memcpy
  • remove obsolete reset mac headers
  • bugs squashed:
    • fix various (reference counting) bugs introduced by the multi interface optimization
    • fix a reference count problem when sending fragmented packets
    • count references for originator nodes referenced by gateway
    • fix local TT check for outgoing arp requests in DAT
    • fix TT inconsistencies when VLANs are re-created very fast
    • update TT entries for each VLAN when the MAC address of the parent interface is changed
    • improve documentation of DAT, TT and general kerneldoc

2014.1.0 (2014-03-13)

  • support latest kernels (2.6.29 - 3.14)
  • add mesh wide multi interface optimization, which replaces the old interface alternating and bonding features with a new network wide implementation
  • add mesh wide client isolation based on fwmark by using and propagating the new isolation flag in TT
  • send every DHCP packet as bat-unicast when gateway feature is used
  • add new build checks for packet sizes to avoid architecture dependent problems
  • bugs squashed:
    • deselect current gateway when switching away from client mode
    • fix batman-adv header MTU calculation
    • fix potential paging error for unicast transmissions
    • fix vlan refcounter imbalance on failure paths
    • fix TT-TVLV parsing and a TVLV leak
    • fix TT CRC computation by ensuring byte order
    • fix function names, paranthesis, comments, warnings, chachacha ...

2014.0.0 (2014-01-04)

  • support latest kernels (2.6.29 - 3.13)
  • This release contains major rework to allow better backward compatibility in the future. Unfortunately these changes require a bump of the compat version to 15, making this and future releases incompatible to the previous releases.
  • add TVLV container infrastructure for OGMs and TT packets
  • remove vis functionality (replaced by userspace tool alfred)
  • reorder packet types and flags in packet types
  • move some packet members (gw flags, TT, ...) into TVLV containers
  • rewrite the fragementation code for more fragments (up to 16), more general usage (not only unicast packets) and reassembly on the way
  • add VLAN awareness to TT, DAT and AP isolation
  • use CRC32 instead of CRC16 for TT
  • generalize many functions (neighbor comparison, etc) to prepare code-sharing of BATMAN IV and BATMAN V
  • set SKB priority according to content (for correct WMM classification)
  • add a dummy soft-interface rx mode handler to allow static multicast listeners
  • bugs squashed:
    • various packet alignment and size fixes (especially on ARM)
    • white space, typos, kernel doc, etc
    • improve backward compatibility code

2013.4.0 (2013-10-13)

  • support latest kernels (2.6.29 - 3.12)
  • bugs squashed:
    • fix potential kernel paging errors for unicast transmissions
    • fix network coding initialization for multiple soft interfaces
    • fix BLA VLAN handling regression
    • improve backward compatibility code

2013.3.0 (2013-07-20)

  • support latest kernels (2.6.29 - 3.11)
  • send each broadcast only once on non-wireless interfaces
  • change VID handling to prepare enhanced VLAN features
  • bugs squashed:
    • forward late OGMs from best next hop
    • avoid double free of bat_counters
    • fix rcu barrier miss
    • use the proper header len when checking the TTVN
    • make DAT drop ARP requests targeting local clients
  • style improvements, code moving and refactoring

2013.2.0 (2013-04-20)

  • support latest kernels (2.6.29 - 3.10)
  • add network coding feature
  • add rtnl interface configuration support
  • fix rtnl and sysfs locking issue
  • avoid duplicate interface enslaving
  • bugs squashed:
    • verify tt len to not exceed packet len
    • fix identification of own mac addresses
  • style improvements (change seq_printf to seq_puts)

2013.1.0 (2013-03-02)

  • support latest kernels (2.6.29 - 3.9)
  • add lots of kerneldoc in types.h
  • clean up (kerneldoc alignment, group tt definitions, renaming, ...)
  • TT improvements:
    • add CRC to debugging tables
    • ignore multicast addresses
    • reduce local TT timeout from 1 hour to 10 minutes
  • Initialize lockdep class keys for hashes
  • unbloat bat_priv if debug is not enabled
  • bugs squashed
    • fix possible sysfs/rtnl deadlock when deregistering
    • fix some DAT bugs (skb leak, invalid MAC addresses, NULL pointer dereference)

2013.0.0 (2013-01-12)

  • support latest kernels (2.6.29 - 3.8)
  • cleanup of coding style and add kerneldoc
  • add new distributed ARP table feature to cache ARP entries
  • remove __packed attribute whenever possible to allow better compiler optimizations
  • use kernel-registered BATMAN Ethernet type
  • block ECTP traffic to remove integration problems when using BLA
  • allow roaming multiple times in TT
  • bugs squashed
    • fix lockdeps for interfaces
    • disallow batman-over-batman configurations
    • various BLA fixes (wait at startup, hashing, duplist, ...)
    • fix TT roaming cases
    • fix TT packet rerouting
    • fix TT flags handling
    • fix speedy join/BLA interaction bug
    • fix random jitter calculation

2012.4.0 (2012-10-29)

  • support latest kernels (2.6.29 - 3.7)
  • cleanup of coding style
  • integration of remaining packet counters in ethtool statistic
  • speedy join of new non-mesh clients based on broadcast packets
  • added bridge loop avoidance backbone gateway debugfs table
  • workaround for kernel bug when running on top of vlan device
  • bugs squashed
    • announcement of own MAC address after modification
    • wrong counting of received OGMs on x86
    • route flapping in multiple interfaces setup
    • receiving of translation table requests for foreign nodes
    • invalid memory access after failure during the interface appending
    • wrong calculation of packet crc which lead to dropping of broadcast packets when bridge loop avoidance is enabled

2012.3.0 (2012-08-19)

  • support latest kernels (2.6.29 - 3.6)
  • added namespace-like prefix for all batman-adv symbols
  • integrated extended statistic support using ethtool
  • important bugs fixed
    • correct endianness for translation table crc
    • avoid race condition in translation table replacements
    • ensure gateway gets selected
    • allow broadcasts with enabled AP isolation
    • fix vis output for multiple interface configurations
    • fix race condition during adds in hashes
    • fix dropped DHCP packets with enabled bridge loop avoidance and gateway support
    • don't leak information through uninitialized packets fields

2012.2.0 (2012-06-12)

  • support latest kernels (2.6.29 - 3.5)
  • cleanup of coding style (use of named constants instead of values, refactored code to reduce readability, replace bitarrays with kernel functionality, ...)
  • tweaking hop penalty to reduce route flapping
  • enhanced the framework to support multiple routing algorithms
  • reimplemented the bridge loop avoidance with support for multiple active backbone gateways
  • some bugs fixed (translation table flag handling, correct unicast rerouting, endianness fixed for translation table crc, avoid of routing loops by being strict on forwarded ogms, ...)

2012.1.0 (2012-03-30)

  • support latest kernels (2.6.29 - 3.4)
  • makefile rewrite (install target, cleanups, new selection system for features)
  • cleanup of coding style (explicit marking of common headers, common unit for time specific defines, ...)
  • Added framework to switch between different routing algorithms
  • some bugs fixes (distinguish between wrap-around ttvn and uninitialized ttvn value, ...)

2012.0.0 (2012-02-05)

  • support latest kernels (2.6.29 - 3.3)
  • Fix bat_socket_read memory corruption (CVE-2011-4604)
  • Cleanup of gateway handling code
  • many bugs (hang when softif creation fails, memory leaks when hashes table cannot be filled, wrong filter for missed ogms, many smaller translation table problems, ...) fixed

2011.4.0 (2011-11-13)

  • support latest kernels (2.6.29 - 3.2)
  • starting of code refactoring to support multiple protocol versions
  • added support for AP-isolation to prevent non-mesh WIFI clients to talk to each other over the mesh
  • some bugs (memory leaks in the translation table, wrong initialization of ethernet addresses of translation table entries, ...) squashed

2011.3.1 (2011-10-18)

  • don't send all packets to selected gateway as broadcast
  • prevent translation table corruptions caused by uninitialized memory and invalid sizes send through client announcement mechanism

2011.3.0 (2011-08-21)

  • support latest kernels (2.6.29 - 3.1)
  • remove compat code for < 2.6.29
  • cleanup of coding style
  • improve client and roaming announcement mechanisms
  • add framework to inform userspace of gateway changes using uevent
  • improve gateway handling to filter out incoming DHCP renewal requests
  • many bugs (acceptance of delayed rebroadcasts, unsigned char on powerpc used to store -1, ...) squashed

2011.2.0 (2011-06-19)

  • support latest kernels (2.6.21 - 3.0)
  • cleanup of coding style
  • rename of HNA to TT
  • support for multi vlan in bridge loop detection
  • many bug fixes (rcu protection of router/primary_if/softif_neigh, race condition in TQ calculation, deadlock when creating new mesh interfaces, ...)

2011.1.0 (2011-04-17)

  • support latest kernels (2.6.21 - 2.6.39)
  • cleanup of coding style
  • removal of the big orig_hash lock and usage of fine grained locking
  • many bug fixes (fragmented packets linearisation, fragments numbering, verification of added interfaces, ...)

2011.0.0 (2011-01-29)

  • support latest kernels (2.6.21 - 2.6.38)
  • conversion of reference counting to kref
  • allow merging and refragmentation of unicast packets during transfers
  • add softif bridge loop detection
  • make hop_penalty configurable through sysfs
  • reimplement most of the batman-adv hash functionality
  • support for optimized DHCP based gateway selection
  • cleanup of the sysfs code

2010.2.0 (2010-11-21)

  • support latest kernels (2.6.21 - 2.6.37)
  • further cleanup of coding style
  • new rcu and referenced based interface management
  • support for multiple mesh clouds
  • create packets directly in socket buffers
  • add layer2 unicast packet fragmentation
  • usage of optimised kernel functionality for ogm counting
  • many bugs (false warnings, processing of big ogms, ...) squashed

2010.1.0 (2010-09-04)

  • support latest kernels (2.6.21 - 2.6.36)
  • further cleanup of coding style
  • recording of routes for batman icmp messages
  • move of complex sysfs files to debugfs
  • change output of all sysfs files to single-value-only
  • reintroduce virtual file for the debug log
  • bonding and alternating added
  • add ttl to broadcasts
  • change all sequence numbers to 32 bit
  • show last-seen in originator table
  • many bugs (rounding issues, locking, netdev event handler, ...) squashed

2010.0.0 (2010-06-18)

  • support latest kernels (2.6.21 - 2.6.35)
  • further code refactoring and cleaning for coding style
  • move from procfs based configuration to sysfs
  • reorganized sequence number handling
  • limit queue lengths for batman and broadcast packets
  • many bugs (endless loop and rogue packets on shutdown, wrong tcpdump output, missing frees in error situations, sleeps in atomic contexts) squashed

0.2.1 (2010-03-21)

  • support latest kernels (2.6.20 - 2.6.33)
  • receive packets directly using skbs, remove old sockets and threads
  • fix various regressions in the vis server
  • don't disable interrupts while sending
  • replace internal logging mechanism with standard kernel logging
  • move vis formats into userland, one general format remains in the kernel
  • allow MAC address to be set, correctly initialize them
  • code refactoring and cleaning for coding style
  • many bugs (null pointers, locking, hash iterators) squashed

0.2 (2009-11-07)

  • support latest kernels (2.6.20 - 2.6.31)
  • temporary routing loops / TTL code bug / ghost entries in originator table fixed
  • internal packet queue for packet aggregation & transmission retry (ARQ) for payload broadcasts added
  • interface detection converted to event based handling to avoid timers
  • major linux coding style adjustments applied
  • all kernel version compatibility functions has been moved to compat.h
  • use random ethernet address generator from the kernel
  • /sys/module/batman_adv/version to export kernel module version
  • vis: secondary interface export for dot draw format + JSON output format added
  • many bugs (alignment issues, race conditions, deadlocks, etc) squashed

0.1 (2008-12-28)

  • support latest kernels (2.6.20 - 2.6.28)
  • LOTS of cleanup: locking, stack usage, memory leaks
  • Change Ethertype from 0x0842 to 0x4305 unregistered at IEEE, if you want to sponsor an official Ethertype ($2500) please contact us

0.1-beta (2008-05-05)

  • layer 2 meshing based on BATMAN TQ algorithm in kernelland
  • operates on any ethernet like interface
  • supports IPv4, IPv6, DHCP, etc
  • is controlled via /proc/net/batman-adv/
  • bridging via brctl is supported
  • interface watchdog (interfaces can be (de)activated dynamically)
  • offers integrated vis server which meshes/syncs with other vis servers in range