The branch, ecsv/to_submit-old has been created at 6f8778d6fbe7d192b6a463594f2b4cbf71e9d089 (commit)
- Shortlog ------------------------------------------------------------ commit 6f8778d6fbe7d192b6a463594f2b4cbf71e9d089 Author: Antonio Quartulli a@unstable.cc Date: Wed May 25 23:27:31 2016 +0800
batman-adv: split routing API data structure in subobjects
The routing API data structure contains several function pointers that can easily be grouped together based on the component they work with.
Split the API in subobjects in order to improve definition readability.
At the same time, remove the "bat_" prefix from the API object and its fields names. These are batman-adv private structs and there is no need to always prepend such prefix, which only makes function invocations much much longer.
Signed-off-by: Antonio Quartulli a@unstable.cc Reviewed-by: Sven Eckelmann sven@narfation.org Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 1a215b5bb3ab1a2b77a491a6e30cb400cd1460d3 Author: Antonio Quartulli antonio.quartulli@open-mesh.com Date: Thu May 5 13:09:43 2016 +0200
batman-adv: throughput meter implementation
The throughput meter module is a simple, kernel-space replacement for throughtput measurements tool like iperf and netperf. It is intended to approximate TCP behaviour.
It is invoked through batctl: the protocol is connection oriented, with cumulative acknowledgment and a dynamic-size sliding window.
The test *can* be interrupted by batctl. A receiver side timeout avoids unlimited waitings for sender packets: after one second of inactivity, the receiver abort the ongoing test.
Based on a prototype from Edo Monticelli montik@autistici.org
Signed-off-by: Antonio Quartulli antonio.quartulli@open-mesh.com Signed-off-by: Sven Eckelmann sven.eckelmann@open-mesh.com Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit afcee0d4f31a98c8916d94b08887728ac087eda7 Author: Antonio Quartulli antonio.quartulli@open-mesh.com Date: Wed May 18 11:38:48 2016 +0200
batman-adv: return netdev status in the TX path
Return the proper netdev TX status along the TX path so that the tp_meter can understand when the queue is full and should stop sending packets.
Signed-off-by: Antonio Quartulli antonio.quartulli@open-mesh.com Signed-off-by: Sven Eckelmann sven.eckelmann@open-mesh.com Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 6865c5d95662120f96008a3146c5c0f79dc23d95 Author: Matthias Schiffer mschiffer@universe-factory.net Date: Mon May 9 18:41:09 2016 +0200
batman-adv: add netlink command to query generic mesh information files
BATADV_CMD_GET_MESH_INFO is used to query basic information about a batman-adv softif (name, index and MAC address for both the softif and the primary hardif; routing algorithm; batman-adv version).
Signed-off-by: Matthias Schiffer mschiffer@universe-factory.net Signed-off-by: Andrew Lunn andrew@lunn.ch [sven.eckelmann@open-mesh.com: Reduce the number of changes to BATADV_CMD_GET_MESH_INFO, add missing kerneldoc, add policy for attributes] Signed-off-by: Sven Eckelmann sven.eckelmann@open-mesh.com Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit d166cfc83633ccd19bf20662368833906ab632c3 Author: Matthias Schiffer mschiffer@universe-factory.net Date: Mon May 9 18:41:08 2016 +0200
batman-adv: add generic netlink family for batman-adv
debugfs is currently severely broken virtually everywhere in the kernel where files are dynamically added and removed (see http://lkml.iu.edu/hypermail/linux/kernel/1506.1/02196.html for some details). In addition to that, debugfs is not namespace-aware.
Instead of adding new debugfs entries, the whole infrastructure should be moved to netlink. This will fix the long standing problem of large buffers for debug tables and hard to parse text files.
Signed-off-by: Matthias Schiffer mschiffer@universe-factory.net Signed-off-by: Andrew Lunn andrew@lunn.ch [sven.eckelmann@open-mesh.com: Strip down patch to only add genl family, add missing kerneldoc] Signed-off-by: Sven Eckelmann sven.eckelmann@open-mesh.com Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 7008697b94b356d12c765a410ac7eeb2e8510ed4 Author: Sven Eckelmann sven@narfation.org Date: Sun May 15 11:07:46 2016 +0200
batman-adv: Fix bat_(iv|v) function declaration header
The bat_algo.h had some functions declared which were not part of the bat_algo.c file. These are instead stored in bat_v.c and bat_iv_ogm.c. The declaration should therefore be also in bat_v.h and bat_iv_ogm,h to make them easier to find.
Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 35ef739fbf924fcf81e0ff8d950b5a85b8cc2f14 Author: Sven Eckelmann sven@narfation.org Date: Sun May 15 23:48:31 2016 +0200
batman-adv: Consolidate logging related functions
There are several places in batman-adv which provide logging related functions. These should be grouped together in the log.* files to make them easier to find.
Reported-by: Markus Pargmann mpa@pengutronix.de Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 6944247903c387b8249b3f98bb7ca824828307d6 Author: Sven Eckelmann sven@narfation.org Date: Sun May 15 11:07:44 2016 +0200
batman-adv: move bat_algo functions into a separate file
The bat_algo functionality in main.c is mostly unrelated to the rest of the content. It still takes up a large portion of this source file (~15%, 103 lines). Moving it to a separate file makes it better visible as a main component of the batman-adv implementation and hides it less in the other helper functions in main.c.
Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit df7c1a6107fae87b5f384819f993c405d467f55a Author: Markus Pargmann mpa@pengutronix.de Date: Sun May 15 11:07:43 2016 +0200
batman-adv: split tvlv into a separate file
The tvlv functionality in main.c is mostly unrelated to the rest of the content. It still takes up a large portion of this source file (~45%, 588 lines). Moving it to a separate file makes it better visible as a main component of the batman-adv implementation and hides it less in the other helper functions in main.c
Signed-off-by: Markus Pargmann mpa@pengutronix.de [sven@narfation.org: fix conflicts with current version, fix includes, rewrote commit message] Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit c71987bc8498a75de4d4886be730c0389fb5db4b Author: Sven Eckelmann sven@narfation.org Date: Sun May 15 11:07:42 2016 +0200
batman-adv: Keep includes ordered by filename
It is easier to detect if a include is already there for a used functionality when the includes are ordered. Using an alphabetic order together with the grouping in commit 1e2c2a4fe4a5 ("batman-adv: Add required includes to all files") makes includes better manageable.
Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 57b0a16c75757a386e954a75dcdfd1d315a1cef3 Author: Sven Eckelmann sven@narfation.org Date: Sun May 15 11:07:41 2016 +0200
batman-adv: Include main.h in all files
main.h includes statements which (re)define preprocessor variables which influence the compiled code. This makes it necessary to include it in all files. For example, it redefines pr_fmt used to the module as prefix for each pr_* message.
Reported-by: Antonio Quartulli a@unstable.cc Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 574f99967c01df7a032153813f81d5d6471bd1e0 Author: Linus Lüssing linus.luessing@c0d3.blue Date: Tue May 10 18:41:27 2016 +0200
batman-adv: Add debugfs table for mcast flags
This patch adds a debugfs table with originators and their according multicast flags to help users figure out why multicast optimizations might be enabled or disabled for them.
Tested-by: Simon Wunderlich sw@simonwunderlich.de Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 9f39dc7441dfa21bc33f15bc60ae03afe64abab3 Author: Linus Lüssing linus.luessing@c0d3.blue Date: Tue May 10 18:41:26 2016 +0200
batman-adv: Adding logging of mcast flag changes
With this patch changes relevant to a node's own multicast flags are printed to the 'mcast' log level.
Tested-by: Simon Wunderlich sw@simonwunderlich.de Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 18686ce48a8fc89d9e28fa13dae524a01b237ce8 Author: Linus Lüssing linus.luessing@c0d3.blue Date: Tue May 10 18:41:25 2016 +0200
batman-adv: Add multicast optimization support for bridged setups
With this patch we are finally able to support multicast optimizations in bridged setups, too. So far, if a bridge was added on top of a soft-interface (e.g. bat0) the batman-adv multicast optimizations needed to be disabled to avoid packetloss.
Current Linux bridge implementations and API can now provide us with the so far missing information about interested but "remote" multicast receivers behind bridge ports.
The Linux bridge performs the detection of remote participants interested in multicast packets with its own and mature so called IGMP and MLD snooping code and stores that in its database. With the new API provided by the bridge batman-adv can now simply hook into this database.
We then reliably announce the gathered multicast listeners to other nodes through the batman-adv translation table.
Additionally, the Linux bridge provides us with the information about whether an IGMP/MLD querier exists. If there is none then we need to disable multicast optimizations as we cannot learn about multicast listeners on external, bridged-in host then.
Tested-by: Simon Wunderlich sw@simonwunderlich.de Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 1f74305eec462503fd0bf6c0fc2c835564f04f00 Author: Linus Lüssing linus.luessing@c0d3.blue Date: Tue May 10 18:41:24 2016 +0200
batman-adv: Always flood IGMP/MLD reports
With this patch IGMP or MLD reports are always flooded. This is necessary for the upcoming bridge integration to function without multicast packet loss.
With the report handling so far bridges might miss interested multicast listeners, leading to wrongly excluding ports from multicast packet forwarding.
Currently we are treating IGMP/MLD reports, the messages bridges use to learn about interested multicast listeners, just as any other multicast packet: We try to send them to nodes matching its multicast destination.
Unfortunately, the destination address of reports of the older IGMPv2/MLDv1 protocol families do not strictly adhere to their own protocol: More precisely, the interested receiver, an IGMPv2 or MLDv1 querier, itself usually does not listen to the multicast destination address of any reports.
Therefore with this patch we are simply excluding IGMP/MLD reports from the multicast forwarding code path and keep flooding them. By that any bridge receives them and can properly learn about listeners.
To avoid compatibility issues with older nodes not yet implementing this report handling, we need to force them to flood reports: We do this by bumping the multicast TVLV version to 2, effectively disabling their multicast optimization.
Tested-by: Simon Wunderlich sw@simonwunderlich.de Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 795fc10d38a960818a5eea549b1d517b245a3c6b Author: Andrew Lunn andrew@lunn.ch Date: Mon May 9 20:03:36 2016 +0200
batman-adv: Include frame priority in fragment header
Unfragmented frames which traverse a node have their skb->priority set by looking at the IP ToS byte, or the 802.1p header. However for fragments this is not possible, only one of the fragments will contain the headers. Instead, place the priority into the fragment header and on receiving a fragment, use this information to set the skb->priority for when the fragment is forwarded.
Signed-off-by: Andrew Lunn andrew@lunn.ch Reviewed-by: Simon Wunderlich sw@simonwunderlich.de Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit fd88624b749bbd58b7700f0b637adb8b4aa4f23c Author: Andrew Lunn andrew@lunn.ch Date: Mon May 9 20:03:35 2016 +0200
batman-adv: Set skb priority in fragments
BATMAN will set the skb->priority based on the IP precedence or 802.1q tag. However, if it needs to fragment the frame, it currently leaves the fragment skb with the default priority and actually overwrites the priority in the unfragmented frame. Fix this.
Signed-off-by: Andrew Lunn andrew@lunn.ch Reviewed-by: Simon Wunderlich sw@simonwunderlich.de Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 14d2e853dafbb8dce9cb6cd3ac8d53426562ce64 Author: Marek Lindner mareklindner@neomailbox.ch Date: Tue May 10 22:31:59 2016 +0800
batman-adv: init ELP tweaking options only once
The ELP interval and throughput override interface settings are initialized with default settings on every time an interface is added to a mesh. This patch prevents this behavior by moving the configuration init to the interface detection routine which runs only once per interface.
Signed-off-by: Marek Lindner mareklindner@neomailbox.ch [a@unstable.cc: move initialization to batadv_v_hardif_init] Signed-off-by: Antonio Quartulli a@unstable.cc
commit a65a5bbc0448a44823c92bd8d9ce0f0505448c6a Author: Antonio Quartulli a@unstable.cc Date: Fri May 6 02:46:38 2016 +0800
batman-adv: move GW mode and selection class to private data structure
To reduce the field pollution in our main batadv_priv data structure we've already created some substructures so that we could group fields in a convenient manner.
However gw_mode and gw_sel_class are still part of the main object.
More both fields to the GW private substructure.
Signed-off-by: Antonio Quartulli a@unstable.cc Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 8218c5d41c9557df1bc68bcef200d77683037d6f Author: Antonio Quartulli a@unstable.cc Date: Fri May 6 02:46:37 2016 +0800
batman-adv: remove useless inline attribute for sysfs helper function
the compiler can optimize functions within the same C file and therefore there is no need to make it explicit.
Remove the useless inline attribute for __batadv_store_uint_attr()
Signed-off-by: Antonio Quartulli a@unstable.cc Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 7fca4f1278476decdfa750e723fe6b25c51c1b7c Author: Antonio Quartulli a@unstable.cc Date: Tue May 3 01:45:34 2016 +0800
batman-adv: remove ogm_emit and ogm_schedule API calls
The ogm_emit and ogm_schedule API calls were rather tight to the B.A.T.M.A.N. IV logic and therefore rather difficult to use with other algorithm implementations.
Remove such calls and move the surrounding logic into the B.A.T.M.A.N. IV specific code.
Signed-off-by: Antonio Quartulli a@unstable.cc Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 151da6af396c1d30480adb8b7697bfb538f851da Author: Marek Lindner mareklindner@neomailbox.ch Date: Mon May 2 21:58:50 2016 +0800
batman-adv: remove unused callback from batadv_algo_ops struct
Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 84ac59ce4c4f6e00a3c07819d95bc2bbd1a8ffb9 Author: Marek Lindner mareklindner@neomailbox.ch Date: Tue May 3 01:52:08 2016 +0800
batman-adv: refactor batadv_neigh_node_* functions to follow common style
Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 1b6faafdcefd4ee00526cde11113e9894eaed95c Author: Marek Lindner mareklindner@neomailbox.ch Date: Mon May 9 18:42:12 2016 +0800
batman-adv: update elp interval documentation
Signed-off-by: Marek Lindner mareklindner@neomailbox.ch Acked-by: Antonio Quartulli a@unstable.cc
commit e26fa35f12de9f9227e61bba34a034b3b659baab Author: Marek Lindner mareklindner@neomailbox.ch Date: Mon May 9 18:42:11 2016 +0800
batman-adv: document sysfs files in alphabetical order
Also update obsolete email address.
Signed-off-by: Marek Lindner mareklindner@neomailbox.ch Acked-by: Antonio Quartulli a@unstable.cc
commit e36682a1e3ce9fd0b3401b5302edadef36dc8b04 Author: Simon Wunderlich sw@simonwunderlich.de Date: Fri May 20 20:42:19 2016 +0200
batman-adv: remove unused vid local variable in tt seq print
Signed-off-by: Simon Wunderlich sw@simonwunderlich.de Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
commit 351546d5592d0cf44c02497b42faafc7a8100819 Author: Antonio Quartulli a@unstable.cc Date: Wed May 25 23:27:33 2016 +0800
batman-adv: statically print gateway table header
To make it easier to search through the code it is better to print static strings directly instead of using format strings printing constants.
This was addressed in a previous patch, but the Gateway table header was not updated accordingly.
Signed-off-by: Antonio Quartulli a@unstable.cc Reviewed-by: Sven Eckelmann sven@narfation.org Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
-----------------------------------------------------------------------