The branch, batadv/net-next-v1 has been created at 8a8a79f53b4210c55557d1148e925b0f385c1bf7 (commit)
- Shortlog ------------------------------------------------------------ commit 8a8a79f53b4210c55557d1148e925b0f385c1bf7 Author: Linus Lüssing linus.luessing@c0d3.blue Date: Tue Jun 11 22:58:41 2019 +0200
batman-adv: mcast: apply optimizations for routable packets, too
Now that we not only track the presence of multicast listeners but also multicast routers we can safely apply group-aware multicast-to-unicast forwarding to packets with a destination address of scope greater than link-local as well.
Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Simon Wunderlich sw@simonwunderlich.de
commit cd0c2051ddd5274db345352070b3799d70672de6 Author: Linus Lüssing linus.luessing@c0d3.blue Date: Tue Jun 11 22:58:40 2019 +0200
batman-adv: mcast: detect, distribute and maintain multicast router presence
To be able to apply our group aware multicast optimizations to packets with a scope greater than link-local we need to not only keep track of multicast listeners but also multicast routers.
With this patch a node detects the presence of multicast routers on its segment by checking if /proc/sys/net/ipv{4,6}/conf/<bat0|br0(bat)>/mc_forwarding is set for one thing. This option is enabled by multicast routing daemons and needed for the kernel's multicast routing tables to receive and route packets.
For another thing if a bridge is configured on top of bat0 then the presence of an IPv6 multicast router behind this bridge is currently detected by checking for an IPv6 multicast "All Routers Address" (ff02::2). This should later be replaced by querying the bridge, which performs proper, RFC4286 compliant Multicast Router Discovery (our simplified approach includes more hosts than necessary, most notably not just multicast routers but also unicast ones and is not applicable for IPv4).
If no multicast router is detected then this is signalized via the new BATADV_MCAST_WANT_NO_RTR4 and BATADV_MCAST_WANT_NO_RTR6 multicast tvlv flags.
Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Simon Wunderlich sw@simonwunderlich.de
commit b5f7d55f4ee7128af75366e3ae2272cc7e1bda6c Author: Greg Kroah-Hartman gregkh@linuxfoundation.org Date: Fri Jun 14 09:11:23 2019 +0200
batman-adv: no need to check return value of debugfs_create functions
When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this.
Because we don't care if debugfs works or not, this trickles back a bit so we can clean things up by making some functions return void instead of an error value that is never going to fail.
Cc: Marek Lindner mareklindner@neomailbox.ch Cc: Simon Wunderlich sw@simonwunderlich.de Cc: Antonio Quartulli a@unstable.cc Cc: "David S. Miller" davem@davemloft.net Cc: b.a.t.m.a.n@lists.open-mesh.org Cc: netdev@vger.kernel.org Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org [sven@narfation.org: drop unused variables] Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Simon Wunderlich sw@simonwunderlich.de
commit 8e1d6c8709b66f00c978531e4d51fc189134a4ef Author: Linus Lüssing linus.luessing@c0d3.blue Date: Sun May 26 18:35:50 2019 +0200
batman-adv: mcast: avoid redundant multicast TT entries with bridges
When a bridge is added on top of bat0 we set the WANT_ALL_UNSNOOPABLES flag. Which means we sign up for all traffic for ff02::1/128 and 224.0.0.0/24.
When the node itself had IPv6 enabled or joined a group in 224.0.0.0/24 itself then so far this would result in a multicast TT entry which is redundant to the WANT_ALL_UNSNOOPABLES.
With this patch such redundant TT entries are avoided.
Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Simon Wunderlich sw@simonwunderlich.de
commit 8a13258f379d98f9454d25a6ed9df8c6c5d20098 Author: Linus Lüssing linus.luessing@c0d3.blue Date: Sun May 26 18:35:49 2019 +0200
batman-adv: mcast: collect softif listeners from IP lists instead
Instead of collecting multicast MAC addresses from the netdev hw mc list collect a node's multicast listeners from the IP lists and convert those to MAC addresses.
This allows to exclude addresses of specific scope later. On a multicast MAC address the IP destination scope is not visible anymore.
Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Simon Wunderlich sw@simonwunderlich.de
commit 6bc4544021f82283f0949f94494011730ecdd084 Author: Linus Lüssing linus.luessing@c0d3.blue Date: Tue May 7 06:08:26 2019 +0200
batman-adv: mcast: shorten multicast tt/tvlv worker spinlock section
It is not necessary to hold the mla_lock spinlock during the whole multicast tt/tvlv worker callback. Just holding it during the checks and updates of the bat_priv stored multicast flags and mla_list is enough.
Therefore this patch splits batadv_mcast_mla_tvlv_update() in two: batadv_mcast_mla_flags_get() at the beginning of the worker to gather and calculate the new multicast flags, which does not need any locking as it neither reads from nor writes to bat_priv->mcast.
And batadv_mcast_mla_flags_update() at the end of the worker which commits the newly calculated flags and lists to bat_priv->mcast and therefore needs the lock.
Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Simon Wunderlich sw@simonwunderlich.de
commit 68a600de9afc2134aa24d0cce539b98a0acb68b1 Author: Sven Eckelmann sven@narfation.org Date: Fri May 24 20:11:17 2019 +0200
batman-adv: Use includes instead of fwdecls
While it can be slightly beneficial for the build performance to use forward declarations instead of includes, the handling of them together with changes in the included headers makes it unnecessary complicated and fragile. Just replace them with actual includes since some parts (hwmon, ..) of the kernel even request avoidance of forward declarations and net/ is mostly not using them in *.c file.
Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Simon Wunderlich sw@simonwunderlich.de
commit 47d4522dd5130361d463b47f0e9a687c4b6697c2 Author: Sven Eckelmann sven@narfation.org Date: Fri May 24 16:51:29 2019 +0200
batman-adv: Add missing include for atomic functions
main.h is using atomic_add_unless and log.h atomic_read. The main header linux/atomic.h should be included for these files.
Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Simon Wunderlich sw@simonwunderlich.de
commit e1928752988bd95316676fea234475327726e22d Author: Sven Eckelmann sven@narfation.org Date: Fri May 24 16:28:50 2019 +0200
batman-adv: Fix includes for *_MAX constants
The commit 54d50897d544 ("linux/kernel.h: split *_MAX and *_MIN macros into <linux/limits.h>") moved the U32_MAX/INT_MAX/ULONG_MAX from linux/kernel.h to linux/limits.h. Adjust the includes accordingly.
Signed-off-by: Sven Eckelmann sven@narfation.org Signed-off-by: Simon Wunderlich sw@simonwunderlich.de
commit eef98918c88eaeb922e6e82b983419cb2acfda5b Author: Simon Wunderlich sw@simonwunderlich.de Date: Sun Apr 7 09:00:57 2019 +0200
batman-adv: Start new development cycle
Signed-off-by: Simon Wunderlich sw@simonwunderlich.de
-----------------------------------------------------------------------