batman-adv COMPAT_VERSION

COMPAT_VERSION in packet.h is used to identify an incoming packet and check if it can processed by the current version. The packet structure should be identified by this version. The stuff which appears in a packet jumps a little bit with each version because we change stuff in trunk/main and in next and import those changes to the packet structure out-of-order.

Following changes were identified and documented.

Version

Releases

Changes

1

(development only)

Initial definitions of batman_packet, icmp_packet, unicast_packet, bcast_packet, ethernet type 0x0842

5

(development only)

information in batman_packet was reordered, tq, old_orig and hnas were added

6

v0.1

vis_packet type added, version fields added to each packet, ethernet type changed to 0x4305

7

(development only)

unused gw flags removed, reordered icmp and batman packet

8

v0.2, v0.2.1, v2010.0.0

source field introduced in vis packets

9

(development only)

Gateway flags added to batman_packet, primaries_first_hop flag added for bonding, special icmp messages for route record added

10

(development only)

32 bit sequence numbers added/changed, ttl were added to broadcasts

11

v2010.1.0

gateway flags were removed

12

v2011.0.0, v2011.1.0, v2012.2.0

unicast fragmentation added, gateway flags were readded

13

v2010.2.0

gateway flags were removed

14

v2011.3.0 until (and including) v2013.4.0

3-byte common header, tt queries and related fields added, roam adv packet added

15

v2014.0.0 and later

TVLV (backward compatibility), packet alignment (__packed), vlan aware tt, crc32 checksums for tt, fragmentation v2, packet type prefix and BATADV_TT_CLIENT_TEMP

(* means future version with already defined feature set)

There is a special COMPAT_VERSION 200 which is only used by saxnet. This version is v6 with bcast seqno protection added.