Add Ethertype 0x4305 (not an officially registered id).
This Ethertype is used by every frame generated by B.A.T.M.A.N.-Advanced. Its
definition is currently batman-adv local only and since it is not officially
registered it is better to make its definition kernel-wide so that we avoid
collisions given by future unofficial uses of the same Ethertype.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
---
include/uapi/linux/if_ether.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/if_ether.h b/include/uapi/linux/if_ether.h
index 0343e1f..67fb87c 100644
--- a/include/uapi/linux/if_ether.h
+++ b/include/uapi/linux/if_ether.h
@@ -48,6 +48,7 @@
#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */
#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */
#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */
+#define ETH_P_BATMAN 0x4305 /* B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] */
#define ETH_P_DEC 0x6000 /* DEC Assigned proto */
#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */
#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */
--
1.7.12.4
It could be the case that the user tries to disable DAT when it is already
disabled. To prevent kernel oops, batadv_dat_hash_free() has to check for the
hash table pointer being different from NULL before to try to free it.
This was introduced by ("batman-adv: Distributed ARP Table - add runtime
switch")
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
---
distributed-arp-table.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/distributed-arp-table.c b/distributed-arp-table.c
index c933615..0fea29a 100644
--- a/distributed-arp-table.c
+++ b/distributed-arp-table.c
@@ -634,6 +634,9 @@ out:
*/
static void batadv_dat_hash_free(struct batadv_priv *bat_priv)
{
+ if (!bat_priv->dat.hash)
+ return;
+
__batadv_dat_purge(bat_priv, NULL);
batadv_hash_destroy(bat_priv->dat.hash);
--
1.7.12.4
The B.A.T.M.A.N. team proudly presents its newest release, batman-adv
2012.4.0, mostly dedicating itself to stability with some smaller enhancements
to improve the user experience. 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-2012.4.0/
as well as prepackaged binaries in your distribution.
Thanks
------
Thanks to all people sending in patches:
* Antonio Quartulli <ordex(a)autistici.org>
* Def <def(a)laposte.net>
* Jonathan Corbet <corbet(a)lwn.net>
* Linus Lüssing <linus.luessing(a)web.de>
* Marek Lindner <lindner_marek(a)yahoo.de>
* Martin Hundebøll <martin(a)hundeboll.net>
* Simon Wunderlich <simon.wunderlich(a)s2003.tu-chemnitz.de>
* Sven Eckelmann <sven(a)narfation.org>
batman-adv
----------
The translation table (the core system for managing all non-mesh clients
across the mesh network) has been supplemented by the "speedy join" mechanism.
Speedy join was designed to make the location of non-mesh clients known
throughout the mesh without depending on OGM messages. As soon as non-mesh
clients issue a DHCP or ARP request or any other broadcast message they are
immediately full participants of the network. This will lead to a faster
network connection experience, especially when the mesh network has been
configured with higher OGM intervals.
All remaining traffic counters were converted to the recently introduced
traffic counting framework and its ethtool API, thereby completely replacing
the old traffic counter mechanism for the purpose of better scalability. The
bridge loop avoidance comes with an additional backbone gateway table
(exported via debugfs) allowing to retrieve the list of all detected backbone
gateways attached to the same LAN, regardless of whether or not it has claimed
any non-mesh client.
Several reports about packet loss in combination with vlan tagging encouraged
us to investigated the cause. A bug was found in the Linux kernel vlan code
and a patch was submitted. At the same time a workaround was added to our out-
of-tree kernel module which automatically takes effect for kernel versions
older than Linux 3.8 (which contains the proper fix). This release also comes
with a few bug fixes concerning the batman-adv code directly: with the intent
of suppressing duplicate broadcast packets in the mesh the bridge loop
avoidance computes CRC checksums for each broadcast packet it receives and
compares them to a list of already received broadcast checksums. The check-
summing code miscalculated the CRC leading to overly aggressive broadcast
packet drops. Also addressed was the missing "no purge" flag for the batX mac
addresses after manually changing its mac address. The code refactoring
regression leading to route flapping in multiple interfaces setup was
corrected along with wrong OGM counting on Intel x86.
batctl
------
As gradually more functionality of the batman-adv kernel module is optional
and can be compiled out, batctl won't be able to find the corresponding files
in sysfs or debugfs. Therefore, batctl now maintains a list of optional
features and informs the user about a possibly deactivated optional feature.
At the same time the sysfs / debugfs code has been refactored to remove
redundant boilerplate code. Also removed was the code querying the traffic
statistics through the old API because all statistics can be retrieved via the
new API. The batctl utility also gained an option to display the newly added
backbone gateway table.
Happy routing,
The B.A.T.M.A.N. team