public inbox for b.a.t.m.a.n@lists.open-mesh.org
 help / color / mirror / Atom feed
From: Marek Lindner <mareklindner@neomailbox.ch>
To: The list for a Better Approach To Mobile Ad-hoc Networking
	<b.a.t.m.a.n@lists.open-mesh.org>
Subject: [B.A.T.M.A.N.] batman-adv 2014.0.0 released
Date: Tue, 07 Jan 2014 20:53:18 +0800	[thread overview]
Message-ID: <4577758.QFzZxb72dK@diderot> (raw)

[-- Attachment #1: Type: text/plain, Size: 6916 bytes --]


The B.A.T.M.A.N. team is pleased to announce the immediate availability of 
batman-adv 2014.0.0 - a release coming with a rewritten packet handling engine 
and many new features almost uniquely tailored to preserve backward 
compatibility in the future. As the kernel module always depends on the Linux 
kernel it was 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:

http://downloads.open-mesh.org/batman/releases/batman-adv-2014.0.0/

as well as prepackaged binaries in your distribution.


Important changes
-----------------

*Compatibility break*: In 2011, batman-adv broke backward compatibility with 
the introduction of the translation table mechanism. Since then, interests 
have been divided between those who wish a stable network with as little 
changes as possible and those who wish to experiment with new features to 
bring meshing to the next level. To accommodate both groups the batman-adv 
developers dedicated a lot of effort on building code infrastructure allowing 
to mix stable nodes with new features without breaking compatibility. This new 
system is incompatible to the pre-2014.0.0 versions, but it has been designed 
to stay compatible with future versions for the next decade or so.

At the same time, the legacy visualization support was removed from the kernel 
module. The alfred user space module provides an adequate replacement.


Thanks
------

Thanks to all people sending in patches:

 * Antonio Quartulli <antonio@meshcoding.com>
 * Joe Perches <joe@perches.com>
 * Linus Lüssing <linus.luessing@web.de>
 * Marco Dalla Torre <marco.dallato@gmail.com>
 * Marek Lindner <mareklindner@neomailbox.ch>
 * Martin Hundebøll <martin@hundeboll.net>
 * Simon Wunderlich <sw@simonwunderlich.de>
 * Spyros Gasteratos <morfeas3000@gmail.com>
 * Sven Eckelmann <sven@narfation.org>
 * Tan Xiaojun <tanxiaojun@huawei.com>


batman-adv
----------

Transforming a rather static design to a module architecture in the interest 
of preserving backward compatibility requires modifications on a multitude of 
levels. The principal idea behind the TVLV (type-version-length-value) 
infrastructure is to break up mesh management data into logic chunks 
(containers) which can be extended in the future while preserving backward 
compatibility. If a mesh participant receives an unknown TVLV type or version 
of a certain container it can simply skip the current container and proceed 
with the next. Therefore, all non-routing data sent with OGMs (e.g. gateway 
advertisement, translation table data, etc) were transformed to TVLV 
containers that are still attached to OGMs. In addition, translation table 
request & response packets as well as roaming advertisement packets were 
transformed to TVLV containers too.
While designing the containers a couple of feature requests were also 
addressed: The compressed download & upload gateway bandwidth (known as 
'gateway class') was replaced by uncompressed bandwidth information permitting 
granular gateway bandwidth announcement. DAT and network coding feature 
support is communicated into the mesh through TVLV containers as both 
subsystems optimize their performance based on the knowledge which mesh 
participant has the feature enabled.
In the interest of backward compatibility on the packet forwarding level 
batman-adv received a general unicast packet forwarding mechanism. This 
mechanism forwards or drops unknown packet types based on the packet type 
numbering.

The batman-adv built-in packet fragmentation has been redesigned and rewritten 
as part of the 'fragmentation 2' Google Summer of Code project. Major design 
goals include: Variable number of fragments (up to 16), generic fragmentation 
framework capable of handling all types of traffic (the 'old' fragmentation code 
was limited to payload unicast packets) and 'upper layer' transparency through 
early re-assembly. The maximum of local clients the translation table is able 
to handle went up by a factor of 16 (the maximum number of fragmented packets) 
as full translation table exchanges are able to take advantage of the newly 
introduced generic fragmentation. If the fragmentation is disabled or the MTU 
altered the local translation table is automatically reduced to fit the new 
maximum translation table size. Part of the increased maximum table size is 
the transition from CRC16 consistency checksumming to CRC32 to reduce 
collision probability and take advantage of hardware acceleration support. The 
translation table also gained full VLAN awareness making it the final component 
receiving full VLAN support. Non-mesh clients are now entirely separated on a 
per-VLAN basis. As a consequence, the bridge loop avoidance is capable of 
resolving bridge loops more elegantly (one VLAN might be bridged into the LAN 
while another one is not), the Distributed ARP Table (DAT) builds its 
distributed IP-MAC address hash on a per-VLAN basis and the AP isolation 
allows fine-grained control over which VLAN should be isolated and which should 
not.

The kernel module sets a dummy rx mode handler on batman-adv' virtual 
interface creation to be able to accepts static multicast listener 
configurations on top of the batX interface. In order to help wireless drivers 
to select the suitable traffic queue (e.g. WMM queues), batman-adv peeks into 
the encapsulated payload IP or VLAN header and sets the skb priority field 
accordingly. This priority field is used whenever the lower layer drivers (like 
wireless or ethernet drivers) are unable to retrieve the prioritization 
themselves due to the batman-adv traffic encapsulation.


batctl
------

As part of our ongoing effort for better IPv6 support quite a few missing 
pieces have been tackled: The IP-address-to-MAC-address resolver was extended 
to also support IPv6 addresses. This was achieved by porting the internal 
resolver from the '/proc/net/arp' based approach to the RTNL API. As a result 
the translate, ping and traceroute commands accept IPv6 addresses as 
destination argument which batctl tries to convert back to MAC addresses in 
similar to the IPv4 conversion. Furthermore, the tcpdump component was 
enriched with an IPv6 parser being able to decapsulate TCP, UDP and common 
ICMPv6 packet types.
The vis export feature has been removed as the kernel module no longer 
supports the visualization protocol. A number of cleanups and smaller fixes 
such as marking local functions as static, adding header include guards and 
more found their way into this release as well.


alfred
------

The missing libmath linker flag of the alfred-gpsd component was fixed and its 
manpage installation arranged.



Happy routing,
The B.A.T.M.A.N. team

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

             reply	other threads:[~2014-01-07 12:53 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-07 12:53 Marek Lindner [this message]
2014-01-14 22:04 ` [B.A.T.M.A.N.] batman-adv 2014.0.0 released cmsv
2014-01-15  7:00   ` Martin Hundebøll
2014-01-15 11:13     ` cmsv
2014-01-15 11:15       ` Antonio Quartulli
2014-01-21 20:01         ` cmsv
2014-01-22  0:00           ` Antonio Quartulli
2014-01-22  0:06             ` Antonio Quartulli
     [not found]               ` <52DF0D4E.5070207@wirelesspt.net>
2014-01-22  0:20                 ` Antonio Quartulli
     [not found]                   ` <52DF10D1.4080207@wirelesspt.net>
2014-01-22  0:31                     ` Antonio Quartulli
2014-01-22  0:52                       ` cmsv
2014-01-22  6:46                         ` Antonio Quartulli
2014-01-22  6:50                         ` Martin Hundebøll
2014-02-10 19:45 ` cmsv
2014-02-10 19:57   ` Antonio Quartulli
2014-02-10 21:49   ` Linus Lüssing
2014-02-11  3:22     ` Marek Lindner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4577758.QFzZxb72dK@diderot \
    --to=mareklindner@neomailbox.ch \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox