Hi,
Here's the second broadcast avoidance patchset.
Hopefully, those two patchsets together should be an automatic
approach and replacement for the (non-upstream) no-rebroadcast flag
patch and the cases it is currently used for.
Documentation:
* https://www.open-mesh.org/projects/batman-adv/wiki/Broadcast-Avoidances
Branch:
* https://git.open-mesh.org/batman-adv.git/shortlog/refs/heads/linus/neighhash
Regards, Linus
-----
Known limitations: Avoidance potential is not fully detected in a setup with
a mix of 100MBit/s and 1000MBit/s capable, wired nodes.
If rebroadcast avoidance is strictly needed in such mixed, wired setups, too,
then people could consider setting the throughput_override option of BATMAN V.
The net_xmit_eval has side effects because it is not making sure that e
isn't evaluated twice.
#define net_xmit_eval(e) ((e) == NET_XMIT_CN ? 0 : (e))
The code proposed by David Miller
return net_xmit_eval(dev_queue_xmit(skb));
will therefore get transformed into
return ((dev_queue_xmit(skb)) == NET_XMIT_CN ? 0 : (dev_queue_xmit(skb)))
dev_queue_xmit will therefore be tried again (with an already consumed skb)
whenever the return code is not NET_XMIT_CN.
Fixes: 17efab9867c5 ("batman-adv: Simplify handling of NET_XMIT_CN")
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
---
net/batman-adv/send.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
index d9b28890..1489ec27 100644
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -77,6 +77,7 @@ int batadv_send_skb_packet(struct sk_buff *skb,
{
struct batadv_priv *bat_priv;
struct ethhdr *ethhdr;
+ int ret;
bat_priv = netdev_priv(hard_iface->soft_iface);
@@ -115,7 +116,8 @@ int batadv_send_skb_packet(struct sk_buff *skb,
* congestion and traffic shaping, it drops and returns NET_XMIT_DROP
* (which is > 0). This will not be treated as an error.
*/
- return net_xmit_eval(dev_queue_xmit(skb));
+ ret = dev_queue_xmit(skb);
+ return net_xmit_eval(ret);
send_skb_err:
kfree_skb(skb);
return NET_XMIT_DROP;
--
2.11.0
Hi David,
here is a bugfix for net which we would like to have integrated.
Please pull or let me know of any problem!
Thank you,
Simon
The following changes since commit 7ce7d89f48834cefece7804d38fc5d85382edf77:
Linux 4.10-rc1 (2016-12-25 16:13:08 -0800)
are available in the git repository at:
git://git.open-mesh.org/linux-merge.git tags/batadv-net-for-davem-20170125
for you to fetch changes up to 4ea33ef0f9e95b69db9131d7afd98563713e81b0:
batman-adv: Decrease hardif refcnt on fragmentation send error (2017-01-04 08:22:04 +0100)
----------------------------------------------------------------
Here is a batman-adv bugfix:
- fix reference count handling on fragmentation error, by Sven Eckelmann
----------------------------------------------------------------
Sven Eckelmann (1):
batman-adv: Decrease hardif refcnt on fragmentation send error
net/batman-adv/fragmentation.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
heya,
i want to do some wireguard/gretap tunnel - and many of them
somebody told me that for gre there is a limit of 255 per kernel,
does this also aply for gretap
and mainly - is there a limit for if i can add to bat0 - since every
gretap is a "if"
thx,
fuzzle, freiburg
--
make the world nicer, please use PGP encryption