The following commit has been merged in the master branch:
commit e745802096d9e9d02752682b80d1efa3d41f5855
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Fri Dec 23 21:53:27 2011 +0100
batman-adv: Split README in kernel and external part
The README is shipped in a stripped down version as part of the kernel under
Documentation/networking/batman-adv.txt. The readme has to be manually merged
each time it gets prepared for submission to the networking subsystem
maintainer after the README was modified.
This extra work is reduced by splitting it in a README which contains the same
data as available in the kernel and README.external which contains the
information that only affect the external module.
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
diff --git a/README b/README
index 58d3473..01db663 100644
--- a/README
+++ b/README
@@ -15,26 +15,7 @@ are: IPv4, IPv6, DHCP, IPX.
Batman advanced was implemented as a Linux kernel driver to re-
duce the overhead to a minimum. It does not depend on any (other)
network driver, and can be used on wifi as well as ethernet lan,
-vpn, etc ... (anything with ethernet-style layer 2). It compiles
-against and should work with Linux 2.6.29 - 3.2. Supporting
-older versions is not planned, but it's probably easy to backport
-it. If you work on a backport, feel free to contact us. :-)
-
-
-COMPILE
--------
-
-To compile against your currently installed kernel, just type:
-
-# make
-
-if you want to compile against some other kernel, use:
-
-# make KERNELPATH=/path/to/kernel
-
-if you wont to install this module:
-
-# sudo make install
+vpn, etc ... (anything with ethernet-style layer 2).
CONFIGURATION
@@ -89,6 +70,7 @@ folder:
# ap_isolation gw_bandwidth hop_penalty
# bonding gw_mode orig_interval
+
There is a special folder for debugging information:
# ls /sys/kernel/debug/batman_adv/bat0/
@@ -204,11 +186,7 @@ When investigating problems with your mesh network it is some-
times necessary to see more detail debug messages. This must be
enabled when compiling the batman-adv module. When building bat-
man-adv as part of kernel, use "make menuconfig" and enable the
-option "B.A.T.M.A.N. debugging". When compiling outside of the
-kernel tree it is necessary to enable it using the make option
-CONFIG_BATMAN_ADV_DEBUG=y
-
-# make CONFIG_BATMAN_ADV_DEBUG=y
+option "B.A.T.M.A.N. debugging".
Those additional debug messages can be accessed using a special
file in debugfs
diff --git a/README.external b/README.external
new file mode 100644
index 0000000..4aa4763
--- /dev/null
+++ b/README.external
@@ -0,0 +1,45 @@
+BATMAN-ADV external module
+--------------------------
+
+The batman-adv module is shipped as part of the Linux kernel
+and as external module. The external module allows to get
+new features without upgrading to a newer kernel version
+and to get batman-adv specific bugfixes for kernels that are
+not supported anymore. It compiles against and should work
+with Linux 2.6.29 - 3.2. Supporting older versions is not
+planned, but it's probably easy to backport it. If you work on a
+backport, feel free to contact us. :-)
+
+COMPILE
+-------
+
+To compile against your currently installed kernel, just type:
+
+# make
+
+if you want to compile against some other kernel, use:
+
+# make KERNELPATH=/path/to/kernel
+
+if you wont to install this module:
+
+# sudo make install
+
+CONFIGURATION
+-------------
+
+The in-kernel module can be configured through
+menuconfig. When compiling outside of the kernel, tree it is
+necessary to configure it using the make options. Each
+option can be set to to y (enabled), n (disabled) or m (build as
+module). Available options and their possible values are
+(default marked with an "*")
+
+ * CONFIG_BATMAN_ADV_DEBUG=[y|n*] (B.A.T.M.A.N. debugging)
+
+e.g., debugging can be enabled by
+
+# make CONFIG_BATMAN_ADV_DEBUG=y
+
+Keep in mind that all options must also be added to "make
+install" call.
--
batman-adv
The following commit has been merged in the master branch:
commit 58cd303f3db1db34bd913e4d4b83e6c7065f9741
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Fri Dec 23 21:53:26 2011 +0100
batman-adv: Remove date from README
The date has to be updated when a patch touches the README. Therefore, nearly
every feature will modify this date. It can happens quite often that not only
one feature is currently in development or waiting on the mailinglist. This
creates merge conflicts when applying a patchset.
The date itself doesn't provide any additional information when this file is
only available in a release tarball or as part of a SCM repository.
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
diff --git a/README b/README
index ddc9569..58d3473 100644
--- a/README
+++ b/README
@@ -1,5 +1,3 @@
-[state: 13-11-2011]
-
BATMAN-ADV
----------
--
batman-adv
The following commit has been merged in the master branch:
commit e2b9917bb63b44deb41b2a2bdb4033dc6929d730
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Thu Dec 22 20:31:12 2011 +0800
batman-adv: refactor tt_global_del() to avoid misalignment
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
Acked-by: Antonio Quartulli <ordex(a)autistici.org>
diff --git a/translation-table.c b/translation-table.c
index d542b9d..a1be7ef 100644
--- a/translation-table.c
+++ b/translation-table.c
@@ -657,29 +657,31 @@ void tt_global_del(struct bat_priv *bat_priv,
struct tt_local_entry *tt_local_entry = NULL;
tt_global_entry = tt_global_hash_find(bat_priv, addr);
- if (!tt_global_entry)
+ if (!tt_global_entry || tt_global_entry->orig_node != orig_node)
goto out;
- if (tt_global_entry->orig_node == orig_node) {
- if (roaming) {
- /* if we are deleting a global entry due to a roam
- * event, there are two possibilities:
- * 1) the client roamed from node A to node B => we mark
- * it with TT_CLIENT_ROAM, we start a timer and we
- * wait for node B to claim it. In case of timeout
- * the entry is purged.
- * 2) the client roamed to us => we can directly delete
- * the global entry, since it is useless now. */
- tt_local_entry = tt_local_hash_find(bat_priv,
- tt_global_entry->common.addr);
- if (!tt_local_entry) {
- tt_global_entry->common.flags |= TT_CLIENT_ROAM;
- tt_global_entry->roam_at = jiffies;
- goto out;
- }
- }
- _tt_global_del(bat_priv, tt_global_entry, message);
+ if (!roaming)
+ goto out_del;
+
+ /* if we are deleting a global entry due to a roam
+ * event, there are two possibilities:
+ * 1) the client roamed from node A to node B => we mark
+ * it with TT_CLIENT_ROAM, we start a timer and we
+ * wait for node B to claim it. In case of timeout
+ * the entry is purged.
+ * 2) the client roamed to us => we can directly delete
+ * the global entry, since it is useless now. */
+ tt_local_entry = tt_local_hash_find(bat_priv,
+ tt_global_entry->common.addr);
+ if (!tt_local_entry) {
+ tt_global_entry->common.flags |= TT_CLIENT_ROAM;
+ tt_global_entry->roam_at = jiffies;
+ goto out;
}
+
+out_del:
+ _tt_global_del(bat_priv, tt_global_entry, message);
+
out:
if (tt_global_entry)
tt_global_entry_free_ref(tt_global_entry);
--
batman-adv