30 Oct, 2011
1 commit
25 Oct, 2011
4 commits
-
Function tt_response_fill_table() actually uses a tt_local_entry pointer to
iterate either over the local or the global table entries (it depends on the
what hash table is passed as argument). To iterate over such entries the
hlist_for_each_entry_rcu() macro has to access their "hash_entry" field which
MUST be at the same position in both the tt_global/local_entry structures.Reported-by: Simon Wunderlich
Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
After removing the batman-adv module, the hash may be already gone
when tt_global_del_orig() tries to clean the hash. This patch adds
a sanity check to avoid this.Signed-off-by: Simon Wunderlich
Tested-by: Alexey Fisher
Signed-off-by: Marek Lindner -
struct tt_global_entry holds a reference to an orig_node which must be
decremented before deallocating the structure.Signed-off-by: Simon Wunderlich
Tested-by: Alexey Fisher
Signed-off-by: Marek Lindner
19 Oct, 2011
2 commits
-
In the TT_RESPONSE packet, the number of carried entries is not correctly set.
This leads to a wrong interpretation of the packet payload on the receiver side
causing random entries to be added to the global translation table. Therefore
the latter gets always corrupted, triggering a table recovery all the time.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
Currently the counter of tt_local_entry structures (tt_local_num) is incremented
each time the tt_local_reset_flags() is invoked causing the node to send wrong
TT_REPONSE packets containing a copy of non-initialised memory thus corrupting
other nodes global translation table and making higher level communication
impossible.Reported-by: Junkeun Song
Signed-off-by: Antonio Quartulli
Acked-by: Junkeun Song
Signed-off-by: Marek Lindner
08 Oct, 2011
1 commit
-
Conflicts:
net/batman-adv/soft-interface.c
23 Sep, 2011
1 commit
-
corrects a critical bug of the GW feature. This bug made all the unicast
packets destined to a GW to be sent as broadcast. This bug is present even if
the sender GW feature is configured as OFF. It's an urgent bug fix and should
be committed as soon as possible.This was a regression introduced by 43676ab590c3f8686fd047d34c3e33803eef71f0
Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner
08 Sep, 2011
6 commits
-
Removing unnecessary messages saves code and text.
Site specific OOM messages are duplications of a generic MM
out of memory message and aren't really useful, so just
delete them.Signed-off-by: Joe Perches
Signed-off-by: Marek Lindner -
Signed-off-by: Sven Eckelmann
Signed-off-by: Marek Lindner -
In the process the batman iv OGM aggregation code could be merged
into the batman iv code base which makes the separate aggregation
files superfluous.Signed-off-by: Marek Lindner
-
Signed-off-by: Marek Lindner
-
In preparation of the upcoming improved routing algorithm the code based has
to be re-organized to allow choosing the routing algorithm at compile time.Signed-off-by: Marek Lindner
-
The follow-up routing code changes are going to introduce additional
routing packet types which make this distinction necessary.Signed-off-by: Marek Lindner
22 Aug, 2011
8 commits
-
Signed-off-by: Marek Lindner
-
Signed-off-by: Marek Lindner
Acked-by: Antonio Quartulli -
Since clients can have several flags on or off, this patches make them
appear in the local/global transtable output so that they can be checked
for debugging purposes.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
If a node has to send a packet issued by a WIFI client to another WIFI client,
the packet is dropped.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
When a node receives a unicast packet it checks if the source and the
destination client can communicate or not due to the AP isolationSigned-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
Clients connected through a 802.11 device are now marked with the
TT_CLIENT_WIFI flag. This flag is also advertised with the tt
announcement.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
Several typos have been corrected and some sentences have been rephrased
Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
hash_add() returns 0 on success while returns -1 either on error and on
entry already present. The caller could use such information to select
its behaviour. For this reason it is useful that hash_add() returns -1
in case on error and returns 1 in case of entry already present.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner
13 Jul, 2011
1 commit
-
Almost all of these have long outstayed their welcome.
And for every one of these macros, there are 10 features for which we
didn't add macros.Let's just delete them all, and get out of habit of doing things this
way.Signed-off-by: David S. Miller
Acked-by: Stephen Hemminger
Acked-by: Arnd Bergmann
08 Jul, 2011
5 commits
-
In case of tt_crc mismatching for a certain orig_node after applying the
changes, the node must request the full table immediately.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
To keep consistency of other originator tables, new clients detected as
roamed, are kept in the global table but are marked as TT_CLIENT_PENDING
They are purged only when the new ttvn is received by the corresponding
originator. Moreover they need to be considered as removed in case of global
transtable lookup.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
To keep transtable consistency among all the nodes, an originator must
not send not yet announced clients within a full table TT_RESPONSE.
Instead, deleted client have to be kept in the table in order to be sent
within an immediate TT_RESPONSE. In this way all the nodes in the
network will always provide the same response for the same request.All the modification are committed at the next ttvn increment event.
Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
The last_ttvn and tt_crc fields of the orig_node structure were not
initialised causing an immediate TT_REQ/RES dialogue even if not needed.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner
06 Jul, 2011
1 commit
05 Jul, 2011
6 commits
-
The version number of modules build outside of the tree can get revision
numbers added. This is useful to give hints about the revision of a
distribution package and the used patchset. The prepended source number or
branch name doesn't add any additional information which would help to identify
problems and can therefore be omitted.Signed-off-by: Sven Eckelmann
Signed-off-by: Marek Lindner -
The packet aggregation needs to ensure that only compatible packets
are aggregated. Some of the checks are based on the interface number
while assuming that the first interface also is the primary interface
which is not always the case.
This patch addresses the issue by using the primary_if pointer.Reported-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
The primary interface OGM has to be broadcasted on all hard-interfaces
even if the primary interface is not the first interface (if_num = 0).
Therefore the code has to compare the originating interface with the
primary interface instead of checking the if_num.Reported-by: Linus Luessing
Signed-off-by: Marek Lindner -
now tt_local_event() takes a flags argument instead of a sequence of
boolean values which would grow up with the time.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
In order to make possible to use the broadcast list for delayed sendings
the "delay" parameter is now provided instead of using 1 as hardcoded
value.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner -
The tt_local_entry structure now has a 'flags' field. This helps to
unify the flags format to all the client related structures (tt_global_entry
and tt_change). The 'never_purge' field is now encoded in the 'flags' one.
To optimise the usage of this field, its length has been increased to 16bit
in order to use the eight leading bits (from 0 to 7) to store flags that
have to be sent on the wire, while the eight ending ones are used for local
computation only.Moreover 'enum tt_change_flags' is now called 'enum tt_client_flags' and the
defined values apply to the tt_local_entry, tt_global_entry and the tt_change
'flags' field.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner
21 Jun, 2011
1 commit
20 Jun, 2011
3 commits
-
If a client issues a DHCPREQUEST for renewal, the packet is dropped
if the old destination (the old gateway for the client) TQ is smaller
than the current best gateway TQ less GW_THRESHOLDSigned-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner
Signed-off-by: Sven Eckelmann -
In case of new default gw, changing the default gw or deleting the default gw a
uevent is triggered with type=gw, action=add/change/del and
data={GW_ORIG_ADDRESS} (if any).Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner
Signed-off-by: Sven Eckelmann -
The gateway election mechanism has been a little revised. Now the
gw_election is trigered by an atomic_t flag (gw_reselect) which is set
to 1 in case of election needed, avoding to set curr_gw to NULL.Signed-off-by: Antonio Quartulli
Signed-off-by: Marek Lindner
Signed-off-by: Sven Eckelmann