Hi,
I worked today on a small project [1] to recreated all current features for 0.3 on top of the current changeset in maint. This would be handy when Andrew Lunn will send them to the kernel folks.
I discovered several small differences between maint and master which results in slightly different content in the rebase branch. This comes from the missing merged README and CHANGELOG and some inconsistent changes in my "80 chars per line" patch. I would like to encourage to merge that changes even if the README has currently some outdated information.
I would also want to ask Daniel Seither, Simon Wunderlich and Marek Lindner to check if I accidentally changed their patches in a way they don't want to support. I know that the commit messages aren't up to date, but would like to receive any kind of corrections for them.
Best regards, Sven
[1] http://git.open-mesh.net/?p=ecsv/master-rebase.git;a=summary
Signed-off-by: Sven Eckelmann sven.eckelmann@gmx.de --- batman-adv-kernelland/CHANGELOG | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/batman-adv-kernelland/CHANGELOG b/batman-adv-kernelland/CHANGELOG index 8a18163..c8f9d9e 100644 --- a/batman-adv-kernelland/CHANGELOG +++ b/batman-adv-kernelland/CHANGELOG @@ -1,3 +1,17 @@ +batman-adv 0.2.1: + +* support latest kernels (2.6.20 - 2.6.33) +* receive packets directly using skbs, remove old sockets and threads +* fix various regressions in the vis server +* don't disable interrupts while sending +* replace internal logging mechanism with standard kernel logging +* move vis formats into userland, one general format remains in the kernel +* allow MAC address to be set, correctly initialize them +* code refactoring and cleaning for coding style +* many bugs (null pointers, locking, hash iterators) squashed + + -- Sun, 21 Mar 2010 20:46:47 +0100 + batman-adv 0.2:
* support latest kernels (2.6.20 - 2.6.31)
Signed-off-by: Sven Eckelmann sven.eckelmann@gmx.de --- batman-adv-kernelland/README | 45 +++++++++++++++++++++++++++-------------- 1 files changed, 29 insertions(+), 16 deletions(-)
diff --git a/batman-adv-kernelland/README b/batman-adv-kernelland/README index df21c61..4c2a6c6 100644 --- a/batman-adv-kernelland/README +++ b/batman-adv-kernelland/README @@ -1,4 +1,4 @@ -[state: 01-01-2010] +[state: 22-03-2010]
BATMAN-ADV ---------- @@ -15,7 +15,7 @@ above B.A.T.M.A.N. Advanced, prominent examples are: IPv4, IPv6, DHCP, IPX. This is batman-advanced implemented as Linux kernel driver. It does not depend on any network (other) driver, and can be used on wifi as well as ethernet, vpn, etc ... (anything with ethernet-style layer 2). -It compiles against and should work with Linux 2.6.20 - 2.6.32. Supporting older +It compiles against and should work with Linux 2.6.20 - 2.6.33. 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. :-)
@@ -57,10 +57,11 @@ regular interface: # ping 192.168.0.2 ...
+--- If you want topology visualization, your meshnode must be configured as VIS-server:
-# echo "server" > /proc/net/batman-adv/vis +# echo "server" > /proc/net/batman-adv/vis_server
Each node is either configured as "server" or as "client" (default: "client"). Clients send their topology data to the server next to them, @@ -71,19 +72,31 @@ more vis servers sharing the same (or at least very similar) data.
When configured as server, you can get a topology snapshot of your mesh:
-# cat /proc/net/batman-adv/vis - -This output format is a graphviz formatted text file which can be -processed with graphviz-tools like dot. -The labels are similar/compatible to the ETX metric, 1.0 means perfect -connection (100%), 2.0 means 50%, 3.0 means 33% and so on. - -Alternatively, a JSON output format is available. The format can be set -using by writing either "dot_draw" or "json" into the vis_format file. -"dot_draw" is selected by default. - -echo "json" > /proc/net/batman-adv/vis_format - +# cat /proc/net/batman-adv/vis_data + +This raw output is intended to be easily parsable and convertable with +other tools. Have a look at the batctl README if you want a vis output +in dot or json format for instance and how those outputs could then be +visualised in an image. + +The raw format consists of comma seperated values per entry where each +entry is giving information about a certain source interface. Each entry +can/has to have the following values: +-> "mac" -> mac address of an originator's source interface + (each line begins with it) +-> "TQ mac value" -> src mac's link quality towards mac address of a neighbor + originator's interface which is being used for routing +-> "HNA mac" -> HNA announced by source mac +-> "PRIMARY" -> this is a primary interface +-> "SEC mac" -> secondary mac address of source (requires preceeding +-> PRIMARY) + +The TQ value has a range from 4 to 255 with 255 being the best. +The HNA entries are showing which hosts are connected to the mesh via bat0 +or being bridged into the mesh network. +The PRIMARY/SEC values are only applied on primary interfaces + +--- In very mobile scenarios, you might want to adjust the originator interval to a lower value. This will make the mesh more responsive to topology changes, but will also increase the overhead. Please make sure
Some changes in "batman-adv: Reduce max characters on a line to 80" for trunk and maint branch were made slightly different and should be synchronized for easier tracking of changes between them.
Signed-off-by: Sven Eckelmann sven.eckelmann@gmx.de --- batman-adv-kernelland/originator.c | 3 ++- batman-adv-kernelland/routing.c | 4 ++-- batman-adv-kernelland/send.c | 8 +++----- 3 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/batman-adv-kernelland/originator.c b/batman-adv-kernelland/originator.c index 13f69bf..8f82bf6 100644 --- a/batman-adv-kernelland/originator.c +++ b/batman-adv-kernelland/originator.c @@ -250,6 +250,7 @@ static bool purge_orig_node(struct orig_node *orig_node) update_bonding_candidates(bat_priv, orig_node); } } + return false; }
@@ -310,7 +311,7 @@ ssize_t orig_fill_buffer_text(struct net_device *net_dev, char *buff, "BATMAN mesh %s " "disabled - primary interface not active\n", net_dev->name); - else if (bat_priv->primary_if->if_status) + else if (bat_priv->primary_if->if_status != IF_ACTIVE) return 0;
rcu_read_lock(); diff --git a/batman-adv-kernelland/routing.c b/batman-adv-kernelland/routing.c index 5456b0a..a93ed46 100644 --- a/batman-adv-kernelland/routing.c +++ b/batman-adv-kernelland/routing.c @@ -641,8 +641,8 @@ void receive_bat_packet(struct ethhdr *ethhdr,
if (is_my_oldorig) { bat_dbg(DBG_BATMAN, - "Drop packet: ignoring all rebroadcast echos " - "(sender: %pM)\n", ethhdr->h_source); + "Drop packet: ignoring all rebroadcast echos (sender: " + "%pM)\n", ethhdr->h_source); return; }
diff --git a/batman-adv-kernelland/send.c b/batman-adv-kernelland/send.c index 8993493..99d11fe 100644 --- a/batman-adv-kernelland/send.c +++ b/batman-adv-kernelland/send.c @@ -152,11 +152,9 @@ static void send_packet_to_if(struct forw_packet *forw_packet, "Sending own" : "Forwarding")); bat_dbg(DBG_BATMAN, - "%s %spacket " - "(originator %pM, seqno %d, TQ %d, TTL %d, IDF %s) " - "on interface %s [%s]\n", - fwd_str, - (packet_num > 0 ? "aggregated " : ""), + "%s %spacket (originator %pM, seqno %d, TQ %d, TTL %d," + " IDF %s) on interface %s [%s]\n", + fwd_str, (packet_num > 0 ? "aggregated " : ""), batman_packet->orig, ntohl(batman_packet->seqno), batman_packet->tq, batman_packet->ttl, (batman_packet->flags & DIRECTLINK ?
Hi,
I worked today on a small project [1] to recreated all current features for 0.3 on top of the current changeset in maint. This would be handy when Andrew Lunn will send them to the kernel folks.
thanks a lot for this effort. I'm sure you spend some time on this!
I just applied your patches, Marek
b.a.t.m.a.n@lists.open-mesh.org