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 --]
next 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