Hi Antonio
I encountered the tt loop in kvm this evening, so I captured some tiny logs for you. The topology is a small chain:
n1 <-> n2 <-> n3 <-> n4
The nodes run clean batman-adv from master (5deb69f60f388055982a1da6dce876049f86841d) with no catwoman or whatever compiled in :)
--
Kind Regards
Martin Hundebøll
Frederiks Allé 99A, 1.th
8000 Aarhus C
Denmark
+45 61 65 54 61
martin(a)hundeboll.net
Hi,
I am testing Batman Advance (Batman release 2012 1.0) and I am trying
to measure signaling on some topology of VMs. I have 81 nodes (Debian,
3.0.9) with KVM virtualization. My topology is something like this :
http://imgur.com/Xh1gM
I have a topology with an adjacency matrix of maximum 4 as you can see
on my screenshot. I record on each VM signaling received and sent. On
some VM, my node send OGM at each "orig_interval" but does not receive
any OGM at all.
Is it normal ?
Moreover, I have found a wonderful documention here :
http://gitorious.org/batman-adv-doc. Unfortunatly, it is not maintened
since two years. I have also found some papers which describe your
protocol, but most of the time, the paper are too old or not correct
in the protocol description. At this moment, my first source of
information is the code. Can you advise me a good paper or
documentation on the architecture and features of Batman Advance set
apart your twiki.
Kind regards, my apology for my English.
--
Arthur
Hello David,
this should be our last planned pull request intended for net-next/linux-3.6 :-)
In this batch you have patch 15/16 that fixes a variable declaration
in the ethtool support code; patch 16/16 that fixes a non-critical bug which
makes nodes send unicast packets with an uninitialised header field.
The rest is the last part of our namespace renaming operation plus a couple of
style fixes.
Please let me know if there are problems!
Thank you very much,
Antonio
The following changes since commit a59a4d1921664da63d801ba477950114c71c88c9:
phy: add the EEE support and the way to access to the MMD registers. (2012-07-01 03:34:50 -0700)
are available in the git repository at:
git://git.open-mesh.org/linux-merge.git tags/batman-adv-for-davem
for you to fetch changes up to 162d549c6905485262635fe594db337efb2828b5:
batman-adv: Don't leak information through uninitialized packet fields (2012-07-01 22:47:24 +0200)
----------------------------------------------------------------
Included changes:
- The last batch of patches aimed to clean the batman-adv namespace
- a couple of style fixes
- a fix for the ethtool support
- a fix to prevent sending unicast packets with an uninitialised header
field
----------------------------------------------------------------
Marek Lindner (1):
batman-adv: fix counter summary length
Sven Eckelmann (15):
batman-adv: Prefix gateway enum with BATADV_
batman-adv: Prefix hard-interface enum with BATADV_
batman-adv: Prefix types enum with BATADV_
batman-adv: Prefix packet enum with BATADV_
batman-adv: Prefix main enum with BATADV_
batman-adv: Prefix local debugfs structs with batadv_
batman-adv: Prefix hash struct and typedef with batadv_
batman-adv: Prefix local sysfs struct with batadv_
batman-adv: Prefix packet structs with batadv_
batman-adv: Prefix types structs with batadv_
batman-adv: Transform BATADV_LOG_BUFF(idx) into function
batman-adv: Remove bat_ prefix from bat_{debugfs, sysfs}.{c, h}
batman-adv: Remove space before semicolon
batman-adv: Fix alignment after opened parentheses
batman-adv: Don't leak information through uninitialized packet fields
net/batman-adv/Makefile | 4 +-
net/batman-adv/bat_iv_ogm.c | 459 +++++++--------
net/batman-adv/bitarray.c | 6 +-
net/batman-adv/bridge_loop_avoidance.c | 302 +++++-----
net/batman-adv/bridge_loop_avoidance.h | 48 +-
net/batman-adv/{bat_debugfs.c => debugfs.c} | 76 ++-
net/batman-adv/{bat_debugfs.h => debugfs.h} | 0
net/batman-adv/gateway_client.c | 127 +++--
net/batman-adv/gateway_client.h | 24 +-
net/batman-adv/gateway_common.c | 2 +-
net/batman-adv/gateway_common.h | 8 +-
net/batman-adv/hard-interface.c | 125 +++--
net/batman-adv/hard-interface.h | 28 +-
net/batman-adv/hash.c | 12 +-
net/batman-adv/hash.h | 33 +-
net/batman-adv/icmp_socket.c | 81 +--
net/batman-adv/icmp_socket.h | 4 +-
net/batman-adv/main.c | 82 +--
net/batman-adv/main.h | 63 ++-
net/batman-adv/originator.c | 151 ++---
net/batman-adv/originator.h | 37 +-
net/batman-adv/packet.h | 132 ++---
net/batman-adv/routing.c | 300 +++++-----
net/batman-adv/routing.h | 52 +-
net/batman-adv/send.c | 75 +--
net/batman-adv/send.h | 12 +-
net/batman-adv/soft-interface.c | 55 +-
net/batman-adv/soft-interface.h | 2 +-
net/batman-adv/{bat_sysfs.c => sysfs.c} | 134 +++--
net/batman-adv/{bat_sysfs.h => sysfs.h} | 6 +-
net/batman-adv/translation-table.c | 808 ++++++++++++++-------------
net/batman-adv/translation-table.h | 43 +-
net/batman-adv/types.h | 154 ++---
net/batman-adv/unicast.c | 95 ++--
net/batman-adv/unicast.h | 19 +-
net/batman-adv/vis.c | 284 +++++-----
net/batman-adv/vis.h | 12 +-
37 files changed, 2011 insertions(+), 1844 deletions(-)
rename net/batman-adv/{bat_debugfs.c => debugfs.c} (81%)
rename net/batman-adv/{bat_debugfs.h => debugfs.h} (100%)
rename net/batman-adv/{bat_sysfs.c => sysfs.c} (85%)
rename net/batman-adv/{bat_sysfs.h => sysfs.h} (89%)
Hello people,
this is the third version of the Speedy Join patchset below
Changes history:
v1 -> v2:
- indentation and style has been fixed taking into consideration Sven's
suggestions
- Old patch 4 has been removed. TT flags do not really need to be carry along
with the tt_entry in a roaming_adv packet. (at least this is not needed for
the purpose of this feature). A roaming client will be marked as ROAM on
the new mesh node and therefore it will be already purged if nobody claims it
v2 -> v3:
- patch 1 and 2 have been merged in 1/3. Changes were all related to the new
refcounting mechanism. ..orig_entry_find() function has been improved as well as
..orig_entry_add() (it does internally check if the orig_entry already exists or
not) and ..has_orig() (now it does use ..orig_entry_find()).
- patch 2/3 has been modified to take into consideration the change above
- temp timeout changed to an absolute value instead of being computed as product
of the local orig_interval times a constant factor.
Thank you,
Antonio
Antonio Quartulli (3):
batman-adv: add reference counting for type batadv_tt_orig_list_entry
batman-adv: detect not yet announced clients
batman-adv: change interface_rx to get orig node
main.h | 1 +
packet.h | 1 +
routing.c | 10 +--
soft-interface.c | 6 +-
soft-interface.h | 5 +-
translation-table.c | 196 +++++++++++++++++++++++++++++++++++++--------------
translation-table.h | 4 +-
types.h | 2 +
8 files changed, 163 insertions(+), 62 deletions(-)
--
1.7.9.4
commit 2c995ff892313009e336ecc8ec3411022f5b1c39 upstream.
skb_linearize(skb) possibly rearranges the skb internal data and then changes
the skb->data pointer value. For this reason any other pointer in the code that
was assigned skb->data before invoking skb_linearise(skb) must be re-assigned.
In the current tt_query message handling code this is not done and therefore, in
case of skb linearization, the pointer used to handle the packet header ends up
in pointing to poisoned memory. The packet is then dropped but the
translation-table mechanism is corrupted.
Signed-off-by: Antonio Quartulli <ordex(a)autistici.org>
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
---
Hello,
the patch committed upstream already contains Cc: stable(a)vger.kernel.org but
that patch does apply only on 3.5, 3.4 and 3.3.
This patch is a backport for kernel versions 3.1 and 3.2
Thank you,
Antonio
net/batman-adv/routing.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
index 0f32c81..55136e5 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@ -1246,6 +1246,8 @@ int recv_tt_query(struct sk_buff *skb, struct hard_iface *recv_if)
/* packet needs to be linearised to access the TT changes */
if (skb_linearize(skb) < 0)
goto out;
+ /* skb_linearize() possibly changed skb->data */
+ tt_query = (struct tt_query_packet *)skb->data;
if (is_my_mac(tt_query->dst))
handle_tt_response(bat_priv, tt_query);
--
1.7.9.4