The branch, ahahah has been created
at 3d3f5e5daf339a02ff409c9b40091f24be20bd9f (commit)
- Shortlog ------------------------------------------------------------
commit 3d3f5e5daf339a02ff409c9b40091f24be20bd9f
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Fri Mar 30 18:44:09 2012 +0200
batman-adv: Start new development cycle
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
commit a660f5e8e838ab8b05477a9045acfc7819cc0628
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Mon Mar 26 16:22:45 2012 +0200
batman-adv: use shorter pr_warn instead of pr_warning
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
commit 4402e4a1498ef5dea9d9dc1a9cf1e30892be265a
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Sat Mar 17 15:28:35 2012 +0800
batman-adv: fix checkpatch opening parenthesis complaint
Regression introduced by: 7c73d4c1d61b3db2f8b6bdd999ecebd231429082
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit ecf2970b651377e23c42a7bf259ac9d086840770
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Sat Mar 17 15:28:34 2012 +0800
batman-adv: fix checkpatch string complaint
Regression introduced by: f76d019194e0a88c57371df169ecc979690a04c2
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 7f65140dbe2b1ff9e405f2820e14fe10e305b784
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Sat Mar 17 15:28:33 2012 +0800
batman-adv: refactor window_protected to avoid unnecessary return statement
Reported-by: David Laight <David.Laight(a)aculab.com>
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit e9cd91150a78290ada81e0a02e4e16bf6158fdc9
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Sat Mar 17 15:28:32 2012 +0800
batman-adv: prepare lq_update_lock to be shared among different protocols
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 9a5e230c636d03dba9301ea8b9eb1ec52c7460ca
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Fri Mar 16 18:03:28 2012 +0100
batman-adv: improve unicast packet (re)routing
In case of a client X roaming from a generic node A to another node B, it is
possible that a third node C gets A's OGM but not B's. At this point in time, if
C wants to send data to X it will send a unicast packet destined to A. The
packet header will contain A's last ttvn (C got A's OGM and so it knows it).
The packet will travel towards A without being intercepted because the ttvn
contained in its header is the newest for A.
Once A will receive the packet, A's state will not report to be in a "roaming
phase" (because, after a roaming, once A sends out its OGM, all the changes are
committed and the node is considered not to be in the roaming state anymore)
and it will match the ttvn carried by the packet. Therefore there is no reason
for A to try to alter the packet's route, thus dropping the packet because the
destination client is not there anymore.
However, C is well aware that it's routing information towards the client X is
outdated as it received an OGM from A saying that the client roamed away.
Thanks to this detail, this patch introduces a small change in behaviour: as
long as C is in the state of not knowing the new location of client X it will
forward the traffic to its last known location using ttvn-1 of the destination.
By using an older ttvn node A will be forced to re-route the packet.
Intermediate nodes are also allowed to update the packet's destination as long
as they have the information about the client's new location.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit 9002205799d5fed73b29e83757b0b51ce355f36e
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Fri Mar 16 11:52:31 2012 +0100
batman-adv: avoid skb_linearise() if not needed
Whenever we want to access headers only, we do not need to linearise the whole
packet. Instead we can use pskb_may_pull()
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit 0890ed64056c72c2b2fcd8a4d10ba17ffb4b09eb
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Thu Mar 15 17:48:35 2012 +0100
batman-adv: add BAT_UNICAST_4ADDR handler in the packet-handlers array
Commit 1887248c268928ebb434edab611978f51e2a4b8f introduced the packet-handlers
array but it forgot to set a proper handler for the BAT_UNICAST_4ADDR packet
type. This patch fixes it.
Reported-by: Martin Hundebøll <martin(a)hundeboll.net>
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit 1e948071016983979aac3a13988cd082793d5e79
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Wed Mar 14 13:03:01 2012 +0100
batman-adv: add contributor name
translation_table.{c,h} have been heavily modified by another contributor and
for legal purposes it is better to include his name into the contributor list
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit d54659cfdf614b0cc79a78230e121fb54a3442c1
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Wed Mar 14 12:57:02 2012 +0100
batman-adv: update copyright years
update copyright years in order to include 2012
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit dc48ba4d72f986344d7a8f68af791461c0cac853
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Sun Mar 11 06:17:53 2012 +0800
batman-adv: avoid temporary routing loops by being strict on forwarded OGMs
batman-adv would forward OGMs from non-besthops while replacing the the TQ
and TTL values with the values from the best hop. In certain corner cases
this leads to a temporary routing loop.
This patch changes this behavior: Only packets from best next hops are
forwarded - TQ and TTL values won't be replaced anymore. However, the protocol
needs to rebroadcast OGMs from single hop neighbors regardless of whether or
not they are the best hop. To handle this case a new flag is introduced to
alert neighboring nodes about the forwarded OGM that is not from my best
next hop. It is to be discarded by all nodes except for the one originating
the OGM.
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
Acked-by: Daniele Furlan <daniele.furlan(a)gmail.com>
Tested-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit 838d8142a742661923f5b6396b99669f3d3a9014
Author: Linus Luessing <linus.luessing(a)web.de>
Date: Sun Mar 11 06:17:52 2012 +0800
batman-adv: Adding hard_iface specific sysfs wrapper macros for UINT
This allows us to easily add a sysfs parameter for an unsigned int
later, which is not for a batman mesh interface (e.g. bat0), but for a
common interface instead. It allows reading and writing an atomic_t in
hard_iface (instead of bat_priv compared to the mesh variant).
Developed by Linus during a 6 months trainee study period in Ascom
(Switzerland) AG.
Signed-off-by: Linus Luessing <linus.luessing(a)web.de>
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 3cadba9ef7b0ed201d5f8b025f8659a16b9fba1d
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Sun Mar 11 06:17:51 2012 +0800
batman-adv: rename sysfs macros to reflect the soft-interface dependency
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 12e7b6decf3621d60e7ae0064c6b81e423adfe99
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Sun Mar 11 06:17:50 2012 +0800
batman-adv: refactoring API: find generalized name for bat_ogm_update_mac callback
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit c2a8d181e04d3018fa0b464caf1e4e503a7e5015
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Sun Mar 11 06:17:49 2012 +0800
batman-adv: ignore protocol packets if the interface did not enable this protocol
Reported-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit e9b076c08e8b8a6a582af3728c265d80e3b268cc
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Wed Mar 7 09:07:52 2012 +0100
batman-adv: Remove spaces after a cast
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
commit a4b40a9931833a71d05a40e45af4b1356c35b16b
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Wed Mar 7 09:07:51 2012 +0100
batman-adv: Use {} braces consistent on the arms of a statement
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
commit e1de3f5b314f60610b26e4ebe51c7fcb1f71c096
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Wed Mar 7 09:07:50 2012 +0100
batman-adv: Don't begin block comments with only a /* line
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
commit 45c15ade0a66d8d9fbfd37666a68f45d27e68505
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Wed Mar 7 09:07:49 2012 +0100
batman-adv: Ignore 80-chars per line limits for strings
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
commit cca9d140de7ad69a92a4abf7a1c60754214b6753
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Thu Mar 1 15:35:21 2012 +0800
batman-adv: split neigh_new function into generic and batman iv specific parts
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
Acked-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit 20700e950cd8d76eefd0d28500265f1153321894
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Thu Mar 1 15:35:20 2012 +0800
batman-adv: replace HZ calculations with jiffies_to_msecs()
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
Acked-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit 401d64e2a3fbc1dc151053c20960fdaf0b394061
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Thu Mar 1 15:35:19 2012 +0800
batman-adv: rename last_valid to last_seen
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
Acked-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit ff7749404373d701582ff94ca28002f466bc30fd
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Sun Mar 4 16:56:25 2012 +0800
batman-adv: register batman ogm receive function during protocol init
The B.A.T.M.A.N. IV OGM receive function still was hard-coded although
it is a routing protocol specific function. This patch takes advantage
of the dynamic packet handler registration to remove the hard-coded
function calls.
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
Acked-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit 8bcffa339b966a6268c4cc8e0d4cadbde59a2753
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Thu Mar 1 15:35:17 2012 +0800
batman-adv: introduce packet type handler array for incoming packets
The packet handler array replaces the growing switch statement, thus
dealing with incoming packets in a more efficient way. It also adds
to possibility to register packet handlers on the fly.
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
Acked-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit b737c7654c66da1e8282ed3fc5734f004ac8a174
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Thu Mar 1 15:35:16 2012 +0800
batman-adv: introduce is_single_hop_neigh variable to increase readability
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
Acked-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit 8560c45e743d1dec610fe65d7d7335f1fd976d56
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Tue Feb 28 11:13:45 2012 +0100
batman-adv: Fix indentation of multiline statements
79b67f7add9982115e801e99fcfa92f27ff7bb12 and
0591c25abca985273be2aa47d128df0648184abd introduced a regression of the
indentation of multiline statements.
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
commit 06a2fae5b52137fe37708ff108cdcc782f73a82a
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Mon Feb 27 13:36:40 2012 +0100
batman-adv: remove unused variable
Actually unicast_4addr_packet in interface_rx() is set but never used and
therefore can be safely be removed.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit 1fe7213167692c322ab5f9c333dd8e38a38f87cf
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Mon Feb 27 11:29:53 2012 +0100
batman-adv: fix wrong dhcp option list browsing
In is_type_dhcprequest(), while parsing a DHCP message, if the entry we found in
the option list is neither a padding nor the dhcp-type, we have to ignore it and
jump as many bytes as its length + 1. The "+ 1" byte is given by the subtype
field itself that has to be jumped too.
Reported-by: Marek Lindner <lindner_marek(a)yahoo.de>
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit bd1965dcf7f11f9571f773100a3e99e925bf2eb0
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Sun Nov 6 12:23:55 2011 +0100
batman-adv: Distributed ARP Table - add compile option
This patch makes it possible to decide whether to include DAT within the
batman-adv binary or not.
It is extremely useful when the user wants to reduce the size of the resulting
module by cutting off any not needed feature.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit 1d35521e4eacdbee250c7330b5e36825412de044
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Wed Jul 20 14:47:33 2011 +0200
batman-adv: Distributed ARP Table - increase default soft_iface ARP table timeout
The default timeout value for ARP entries belonging to any soft_iface
ARP table has been incremented by a factor 4. This is necessary because the DHT
will store several network entries in the soft_iface ARP table.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit 69dba4da515d9ce91ecb9d28d78136f1fcfac15a
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Sun Jun 26 03:37:18 2011 +0200
batman-adv: Distributed ARP Table - add snooping functions for ARP messages
In case of an ARP message going in or out the soft_iface, it is intercepted and
a special action is performed. In particular the DHT helper functions previously
implemented are used to store all the ARP entries belonging to the network in
order to provide a fast and unicast lookup instead of the classic broadcast
flooding mechanism.
Each node stores the entries it is responsible for (following the DHT rules) in
its soft_iface ARP table. This makes it possible to reuse the kernel data
structures and functions for ARP management.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit f695a87de11f883c61ecd723ea099e27723c35cf
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Thu Jun 2 12:29:51 2011 +0200
batman-adv: Distributed ARP Table - add ARP parsing functions
ARP messages are now parsed to make it possible to trigger special actions
depending on their types (snooping).
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit 20d84e652d1ab766d4b0a4616b18ae64290425c7
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Thu Jun 2 15:28:38 2011 +0200
batman-adv: Distributed ARP Table - create DHT helper functions
Add all the relevant functions in order to manage a Distributed Hash Table over
the B.A.T.M.A.N.-adv network. It will later be used to store several ARP entries
and implement DAT (Distributed ARP Table)
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit 5c124315f15b95703f036ada46640d094b5c5f3b
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Thu Jun 2 12:22:27 2011 +0200
batman-adv: add a new log level for DAT debugging
A new log level has been added to concentrate messages regarding DAT: ARP
snooping, requests, response and DHT related messages.
The new log level is named DBG_DAT
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit 0e7c73aa8b315b7237820a032d2b3c630ddbc721
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Thu Jun 2 12:54:20 2011 +0200
batman-adv: add UNICAST_4ADDR packet type
The current unicast packet type does not contain the orig source address. This
patches add a new unicast packet (called UNICAST_4ADDR) which provides two new
fields: the originator source address and the subtype (the type of the data
contained in the packet payload). The former is useful to identify the node
which injected the packet into the network and the latter is useful to avoid
creating new unicast packet types in the future: a macro defining a new subtype
will be enough.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit 81f8eba293f4ab2525ae5ce0acd7ebadc3968c2e
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Sun Feb 26 15:39:42 2012 +0100
batman-adv: skip the window protection test when the originator has no neighbours
When we receive an OGM from from a node for the first time, the last_real_seqno
field of the orig_node structure has not been initialised yet. The value of this
field is used to compute the current ogm-seqno window and therefore the
protection mechanism will probably drop the packet due to an out-of-window error.
To avoid this situation this patch adds a check to skip the window protection
mechanism if no neighbour nodes have already been added. When the first
neighbour node is added, the last_real_seqno field is initialised too.
Reported-by: Marek Lindner <lindner_marek(a)yahoo.de>
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit a6e7e876165cbbb250a7253970204e86c90daf5c
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Sun Feb 26 15:39:41 2012 +0100
batman-adv: print OGM seq numbers as unsigned long
OGM sequence numbers are declared as uint32_t and so they have to printed
using %u instead of %d in order to avoid wrong representations.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit c67de4ce54398507e18714d0f8ba5256d44c2304
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Sat Feb 18 11:27:34 2012 +0100
batman-adv: use ETH_HLEN instead of sizeof(struct ethhdr)
Instead of using sizeof(struct ethhdr) it is strongly recommended to use the
kernel macro ETH_HLEN. This patch substitute each occurrence of the former
expressione with the latter one.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit f59465a530b84ff548d02aca5bb2143d3d6eb3ef
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Tue Feb 7 17:20:51 2012 +0800
batman-adv: mark existing ogm variables as batman iv
The coming protocol changes also will have a part called "OGM". That
makes it necessary to introduce a distinction in the code base.
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 56e223e7e151326d38b4e81c859aa9b71b41e102
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Tue Feb 7 17:20:50 2012 +0800
batman-adv: rename BATMAN_OGM_LEN to BATMAN_OGM_HLEN
Using BATMAN_OGM_LEN leaves one with the impression that this is
the full packet size which is not the case. Therefore the variable
is renamed.
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 703be87cf20d3f59ef9f6bb587fa179ff5c363aa
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Tue Feb 7 17:20:49 2012 +0800
batman-adv: refactoring API: find generalized name for bat_ogm_init_primary callback
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 267a09af74724728d5618981b6b206cd017ee4fe
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Tue Feb 7 17:20:48 2012 +0800
batman-adv: handle routing code initialization properly
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 5ae6e1334c9103d29fdf35b52b2b96a3f17fde00
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Tue Feb 7 17:20:47 2012 +0800
batman-adv: add iface_disable() callback to routing API
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit e2a2a41debbba32ad0b30b4627875dbe6fc88590
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Tue Feb 7 17:20:46 2012 +0800
batman-adv: randomize initial seqno to avoid collision
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 734e04306f30ed9bf793cdcf722b1a69d8d19a78
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Tue Feb 7 17:20:45 2012 +0800
batman-adv: refactoring API: find generalized name for bat_ogm_init callback
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 1b77dbee8d7d25a731127a00042d278905822027
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Tue Feb 7 17:19:58 2012 +0800
batman-adv: move ogm initialization into the proper function
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 4bb882261d13ebb30e289ea6461bbf75e23e5231
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Fri Feb 10 12:21:55 2012 +0100
batman-adv: Fix daily check regression in blaII
9fd6b0615b5499b270d39a92b8790e206cf75833 introduced some regressions in the
daily checks on open-mesh.org. Those were only visible when
CONFIG_BATMAN_ADV_BLA was disabled. The reason was the usage of defines to
replace the calls for not available functions. The actual c compiler is not
able to distinguish between the used and unused variables because it doesn't
see the function call anymore. The second problem was the use of simple
subscopes where "do {} while(0)" whould have been necessary.
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
commit 6bac7e6373d8e191191477af49def8a558c18bf0
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Wed Nov 23 11:35:44 2011 +0100
batman-adv: add biggest_unsigned_int(x) macro
in case of dynamic type variable, it could be needed to compute at compile time
its maximal value. This macro helps in doing that for unsigned integer types
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
commit 526efc3acda8f862beca93ac1ebca471a0e9326a
Author: Simon Wunderlich <simon.wunderlich(a)s2003.tu-chemnitz.de>
Date: Tue Feb 7 20:34:25 2012 +0100
batman-adv: only bloat with bla-structures if activated
We don't have to bloat the batman internal structures if bla is not
configured. This patch adds a few ifdefs to do this.
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit 94010ffbe36fbf683eda6faf3305b9d300f7aa81
Author: Simon Wunderlich <simon.wunderlich(a)s2003.tu-chemnitz.de>
Date: Sun Jan 22 20:00:27 2012 +0100
batman-adv: add bridge loop avoidance compile option
The define CONFIG_BATMAN_ADV_BLA switches the bridge loop avoidance
on - skip it, and the bridge loop avoidance is not compiled in.
This is useful if binary size should be saved or the feature is
not needed.
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit ad48c07174aed6099c8c1bd6b47c81893063c0dc
Author: Simon Wunderlich <simon.wunderlich(a)s2003.tu-chemnitz.de>
Date: Sun Jan 22 20:00:26 2012 +0100
batman-adv: form groups in the bridge loop avoidance
backbone gateways may be part of the same LAN, but participate
in different meshes. With this patch, backbone gateways form groups by
applying the groupid of another backbone gateway if it is higher. After
forming the group, they only accept messages from backbone gateways of
the same group.
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit de0fe7672eaddb554520f4b6a0ea4134cf565e6a
Author: Simon Wunderlich <simon.wunderlich(a)s2003.tu-chemnitz.de>
Date: Sun Jan 22 20:00:25 2012 +0100
batman-adv: drop STP over batman
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit b17bd3eaf06e4ba61ac920b9c129ce1ac966c610
Author: Simon Wunderlich <simon.wunderlich(a)s2003.tu-chemnitz.de>
Date: Sun Jan 22 20:00:24 2012 +0100
batman-adv: add broadcast duplicate check
When multiple backbone gateways relay the same broadcast from the
backbone into the mesh, other nodes in the mesh may receive this
broadcast multiple times. To avoid this, the crc checksums of
received broadcasts are recorded and new broadcast packets with
the same content may be dropped if received by another gateway.
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit a74fa51973f2ecb8c0b8106b1fbd42907e5302b3
Author: Simon Wunderlich <simon.wunderlich(a)s2003.tu-chemnitz.de>
Date: Sun Jan 22 20:00:23 2012 +0100
batman-adv: don't let backbone gateways exchange tt entries
As the backbone gateways are connected to the same backbone, they
should announce the same clients on the backbone non-exclusively.
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit c794bc6e84bdf53ed3ddebc3f52ec99afe5fea92
Author: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
Date: Sat Oct 22 20:12:51 2011 +0200
batman-adv: allow multiple entries in tt_global_entries
as backbone gateways will all independently announce the same clients,
also the tt global table must be able to hold multiple originators per
client entry.
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
---
[2011-10-30] recalculate global crc in any case:
this should not be required, but the crc diverges for some reason.
Need to dig into this further ...
[2011-12-27] fix alignment
[2012-01-16] Changes after discussion with Antonio:
* Roaming flag should only be set when the last entry moved
* clean up tt_global_add()
[2012-01-22] Changes after local testing:
* remove (debug) crc global computation - it breaks more than it helps
* add debug message when committed locally
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit 7140759a087d3d944a5b6cb098ba33e4b10d7399
Author: Simon Wunderlich <simon.wunderlich(a)s2003.tu-chemnitz.de>
Date: Sun Jan 22 20:00:21 2012 +0100
batman-adv: export claim tables through debugfs
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit 8f23f70c7de865f1fbd42df3a30fd898f828a2e5
Author: Simon Wunderlich <simon.wunderlich(a)s2003.tu-chemnitz.de>
Date: Sun Jan 22 20:00:20 2012 +0100
batman-adv: make bridge loop avoidance switchable
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit e15c8f890b2770cc8665c9b6fb0e23b9ea6813c0
Author: Simon Wunderlich <simon.wunderlich(a)s2003.tu-chemnitz.de>
Date: Sun Jan 22 20:00:19 2012 +0100
batman-adv: add basic bridge loop avoidance code
This second version of the bridge loop avoidance for batman-adv
avoids loops between the mesh and a backbone (usually a LAN).
By connecting multiple batman-adv mesh nodes to the same ethernet
segment a loop can be created when the soft-interface is bridged
into that ethernet segment. A simple visualization of the loop
involving the most common case - a LAN as ethernet segment:
node1 <-- LAN --> node2
| |
wifi <-- mesh --> wifi
Packets from the LAN (e.g. ARP broadcasts) will circle forever from
node1 or node2 over the mesh back into the LAN.
With this patch, batman recognizes backbone gateways, nodes which are
part of the mesh and backbone/LAN at the same time. Each backbone
gateway "claims" clients from within the mesh to handle them
exclusively. By restricting that only responsible backbone gateways
may handle their claimed clients traffic, loops are effectively
avoided.
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit 96e76b0e9ab36b4192b9bd019835ed9212591650
Author: Simon Wunderlich <simon.wunderlich(a)s2003.tu-chemnitz.de>
Date: Sun Jan 22 20:00:18 2012 +0100
batman-adv: remove old bridge loop avoidance code
The functionality is to be replaced by an improved implementation,
so first clean up.
Signed-off-by: Simon Wunderlich <siwu(a)hrz.tu-chemnitz.de>
commit 555d00ad4314dabf6aef82bbd904ce28fa247e7d
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Sun Feb 5 18:55:22 2012 +0100
batman-adv: Remove declaration of only locally used functions
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
Acked-by: Antonio Quartulli <ordex(a)autistici.org>
commit d4f651b92c8a3c76c405be66db9a8cb6d3d40fda
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Fri Jan 27 23:11:55 2012 +0800
batman-adv: encourage batman to take shorter routes by changing the default hop penalty
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
commit 771aee189c2166ee0713eba1c64915c5cf2c5355
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Sat Feb 4 17:34:52 2012 +0100
batman-adv: Replace bitarray operations with bitmap
bitarray.c consists mostly of functionality that is already available as part
of the standard kernel API. batman-adv could use architecture optimized code
and reduce the binary size by switching to the standard functions.
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
commit baf83a67c5f3598240008d2d1810d281d771e00f
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Mon Jan 30 20:59:17 2012 +0100
batman-adv: use ETH_ALEN instead of hardcoded numeric constants
In packet.h the numeric constant 6 is used instead of the more portable ETH_ALEN
define. This patch substitute any hardcoded value with such define.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
Acked-by: Sven Eckelmann <sven(a)narfation.org>
commit ae634b65c434a1f0a8d80622aee3af8dfd2f9206
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Sat Mar 31 16:10:33 2012 +0300
batman-adv: clean up Kconfig
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
-----------------------------------------------------------------------
--
linux integration
The following commit has been merged in the next branch:
commit 48798bf0b221a86fecfe5f1da7a9e470f278d76c
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Fri Mar 30 18:44:09 2012 +0200
batman-adv: Start new development cycle
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
diff --git a/main.h b/main.h
index 597573f..c8bfe28 100644
--- a/main.h
+++ b/main.h
@@ -28,7 +28,7 @@
#define DRIVER_DEVICE "batman-adv"
#ifndef SOURCE_VERSION
-#define SOURCE_VERSION "2012.1.0"
+#define SOURCE_VERSION "2012.2.0"
#endif
/* B.A.T.M.A.N. parameters */
--
batman-adv
The following commit has been merged in the next branch:
commit 5c8bc197fd129643f50dbe6fce6f0f1f045ddcba
Merge: fe476985951d185caf16aa59e78088365c3b5dd0 65e81cd08eddc024cb43031c311a3efe4f10a6a7
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Fri Mar 30 18:43:54 2012 +0200
Merge tag 'v2012.1.0'
batman-adv 2012.1.0
Conflicts:
README
diff --combined README.external
index 95a7eb4,e844241..874ee7f
--- a/README.external
+++ b/README.external
@@@ -6,7 -6,7 +6,7 @@@ and as external module. The external m
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.3. Supporting older versions is not
+ with Linux 2.6.29 - 3.4. 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. :-)
@@@ -36,8 -36,6 +36,8 @@@ module). Available options and thei
(default marked with an "*")
* CONFIG_BATMAN_ADV_DEBUG=[y|n*] (B.A.T.M.A.N. debugging)
+ * CONFIG_BATMAN_ADV_BLA=[y*|n] (B.A.T.M.A.N. bridge loop avoidance)
+ * CONFIG_BATMAN_ADV_DAT=[y*|n] (B.A.T.M.A.N. Distributed ARP Table)
e.g., debugging can be enabled by
--
batman-adv
The following commit has been merged in the next branch:
commit b46c60b9e1ee7a1909c542413a85875a750955d6
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Fri Mar 16 18:03:28 2012 +0100
batman-adv: improve unicast packet (re)routing
In case of a client X roaming from a generic node A to another node B, it is
possible that a third node C gets A's OGM but not B's. At this point in time, if
C wants to send data to X it will send a unicast packet destined to A. The
packet header will contain A's last ttvn (C got A's OGM and so it knows it).
The packet will travel towards A without being intercepted because the ttvn
contained in its header is the newest for A.
Once A will receive the packet, A's state will not report to be in a "roaming
phase" (because, after a roaming, once A sends out its OGM, all the changes are
committed and the node is considered not to be in the roaming state anymore)
and it will match the ttvn carried by the packet. Therefore there is no reason
for A to try to alter the packet's route, thus dropping the packet because the
destination client is not there anymore.
However, C is well aware that it's routing information towards the client X is
outdated as it received an OGM from A saying that the client roamed away.
Thanks to this detail, this patch introduces a small change in behaviour: as
long as C is in the state of not knowing the new location of client X it will
forward the traffic to its last known location using ttvn-1 of the destination.
By using an older ttvn node A will be forced to re-route the packet.
Intermediate nodes are also allowed to update the packet's destination as long
as they have the information about the client's new location.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
diff --git a/routing.c b/routing.c
index 576ffb1..0950c53 100644
--- a/routing.c
+++ b/routing.c
@@ -922,6 +922,12 @@ static int check_unicast_ttvn(struct bat_priv *bat_priv,
ethhdr = (struct ethhdr *)(skb->data +
sizeof(struct unicast_packet));
+
+ /* we don't have an updated route for this client, so we should
+ * not try to reroute the packet!! */
+ if (tt_global_client_is_roaming(bat_priv, ethhdr->h_dest))
+ return 1;
+
orig_node = transtable_search(bat_priv, NULL, ethhdr->h_dest);
if (!orig_node) {
diff --git a/translation-table.c b/translation-table.c
index b4a070f..934900d 100644
--- a/translation-table.c
+++ b/translation-table.c
@@ -2113,3 +2113,21 @@ request_table:
}
}
}
+
+/* returns true whether we know that the client has moved from its old
+ * originator to another one. This entry is kept is still kept for consistency
+ * purposes */
+bool tt_global_client_is_roaming(struct bat_priv *bat_priv, uint8_t *addr)
+{
+ struct tt_global_entry *tt_global_entry;
+ bool ret = false;
+
+ tt_global_entry = tt_global_hash_find(bat_priv, addr);
+ if (!tt_global_entry)
+ goto out;
+
+ ret = tt_global_entry->common.flags & TT_CLIENT_ROAM;
+ tt_global_entry_free_ref(tt_global_entry);
+out:
+ return ret;
+}
diff --git a/translation-table.h b/translation-table.h
index 593d1b3..c43374d 100644
--- a/translation-table.h
+++ b/translation-table.h
@@ -53,5 +53,7 @@ bool is_ap_isolated(struct bat_priv *bat_priv, uint8_t *src, uint8_t *dst);
void tt_update_orig(struct bat_priv *bat_priv, struct orig_node *orig_node,
const unsigned char *tt_buff, uint8_t tt_num_changes,
uint8_t ttvn, uint16_t tt_crc);
+bool tt_global_client_is_roaming(struct bat_priv *bat_priv, uint8_t *addr);
+
#endif /* _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ */
diff --git a/unicast.c b/unicast.c
index 2d61e54..63ab35b 100644
--- a/unicast.c
+++ b/unicast.c
@@ -392,6 +392,14 @@ find_router:
}
unicast_packet = (struct unicast_packet *)skb->data;
+
+ /* inform the destination ode that we are still missing a correct route
+ * for this client. The destination will receive this packet and will
+ * try to reroute it because the ttvn contained in the header is less
+ * than the current one */
+ if (tt_global_client_is_roaming(bat_priv, ethhdr->h_dest))
+ unicast_packet->ttvn = unicast_packet->ttvn - 1;
+
/* fragmentation mechanism only works for UNICAST (now) */
if (packet_type == BAT_UNICAST &&
atomic_read(&bat_priv->fragmentation) &&
--
batman-adv
The following commit has been merged in the next branch:
commit 782b0f4b7f175e639299e9bd15e6c5064d39ed67
Author: Antonio Quartulli <ordex(a)autistici.org>
Date: Fri Mar 16 11:52:31 2012 +0100
batman-adv: avoid skb_linearise() if not needed
Whenever we want to access headers only, we do not need to linearise the whole
packet. Instead we can use pskb_may_pull()
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
diff --git a/routing.c b/routing.c
index 962a315..576ffb1 100644
--- a/routing.c
+++ b/routing.c
@@ -915,8 +915,9 @@ static int check_unicast_ttvn(struct bat_priv *bat_priv,
/* Check whether I have to reroute the packet */
if (seq_before(unicast_packet->ttvn, curr_ttvn) || tt_poss_change) {
- /* Linearize the skb before accessing it */
- if (skb_linearize(skb) < 0)
+ /* check if there is enough data before accessing it */
+ if (pskb_may_pull(skb, sizeof(struct unicast_packet) +
+ ETH_HLEN) < 0)
return 0;
ethhdr = (struct ethhdr *)(skb->data +
--
batman-adv
The following commit has been merged in the next branch:
commit 94bb34b538052d5fcc6db5b33471adf0a890a880
Author: Marek Lindner <lindner_marek(a)yahoo.de>
Date: Sat Mar 17 15:28:34 2012 +0800
batman-adv: fix checkpatch string complaint
Regression introduced by: f76d019194e0a88c57371df169ecc979690a04c2
Signed-off-by: Marek Lindner <lindner_marek(a)yahoo.de>
diff --git a/bat_iv_ogm.c b/bat_iv_ogm.c
index fa41307..994369d 100644
--- a/bat_iv_ogm.c
+++ b/bat_iv_ogm.c
@@ -1061,8 +1061,8 @@ static void bat_iv_ogm_process(const struct ethhdr *ethhdr,
if (batman_ogm_packet->flags & NOT_BEST_NEXT_HOP) {
bat_dbg(DBG_BATMAN, bat_priv,
- "Drop packet: ignoring all packets not forwarded from "
- "the best next hop (sender: %pM)\n", ethhdr->h_source);
+ "Drop packet: ignoring all packets not forwarded from the best next hop (sender: %pM)\n",
+ ethhdr->h_source);
return;
}
--
batman-adv