All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Wunderlich <sw@simonwunderlich.de>
To: "b.a.t.m.a.n@lists.open-mesh.org"
	<b.a.t.m.a.n@lists.open-mesh.org>,
	"Edmisten, Brian" <Brian.Edmisten@viasat.com>
Subject: Re: Bonding Alternating
Date: Wed, 22 Sep 2021 09:55:27 +0200	[thread overview]
Message-ID: <2193349.8FveGl8YFJ@prime> (raw)
In-Reply-To: <da01e7af03f44c5c90f2cad227721ce9@viasat.com>


[-- Attachment #1.1: Type: text/plain, Size: 4313 bytes --]

Hi Brian,

please see inline:

On Tuesday, September 21, 2021 5:41:07 PM CEST Edmisten, Brian wrote:
> Simon,
> 
> The current scenario we are working with we have two different radio systems
> that already provide a layer 2 mesh network each.  To the user they look
> like two Ethernet interfaces one for one wave form and one for the other.
> BATMAN so far is making it more stable in that the convergence of the
> network is much faster.  There is an opportunity for 3 different radio
> systems, but the third vendor is unconfirmed.  There was an ask to try to
> increase bandwidth if the nodes were known to be close together.  We were
> trying out BATMAN's bonding features as using it could simplify our setup
> and reduce some of the overhead we are getting with the layers or software
> we are currently using.

Thank you for elaborating! Are these radios providing the same throughput? One 
thing I noted when doing tests back then is that the slower link will slow 
down the combined link, since it is sending packets in a round robin fashion. 
In other words, with two links, if the slow link has half the throughput of 
the fast link, you will not have any benefit.

> 
> When you say one hop, do you mean one BATMAN hop or something else?  If it
> makes a difference my testing was direct but I think the radios will
> actually look like there is a switch between the nodes.

Whether there is a switch or not doesn't matter to BATMAN. By one hop I meant 
they are directly connected via Layer 2, there is no intermediate BATMAN hop 
acting as a relay.

Since you will be using Ethernet links and not WiFi links, BATMAN will not be 
able to detect that you are actually using radio links, since its only 
checking kernel internal structures (whether the device uses cfg80211 or 
wext). I'm adding a patch to generally treat interfaces like wireless 
interfaces from a routing perspective, this could also make a difference for 
your VM tests.

> 
> Thank you for looking in to this for me.  BATMAN is doing great for our
> first use case.

Great to hear :)

Good luck using it and thank you for your feedback!

Cheers,
      Simon

> 
> Thank you,
> Brian Edmisten
> 
> -----Original Message-----
> From: Simon Wunderlich [mailto:sw@simonwunderlich.de]
> Sent: Tuesday, September 21, 2021 7:16 AM
> To: b.a.t.m.a.n@lists.open-mesh.org; Edmisten, Brian
> <Brian.Edmisten@viasat.com>
> Subject: Re: Bonding Alternating
> 
> Hi Brian,
> 
> I've checked it out and can confirm your issues. The bonding code as
> currently implemented is trying to use a different router from each routing
> table towards the same originator[1]. However, with 1-hop Ethernet links
> those routers are always the same in all the routing tables. With WiFi that
> would be a bit different (I've commented out the WiFi penalty check), but
> even then it only alternates between two of the three interfaces.
> 
> At this point I don't have a straight forward fix for this. Will you use
> three Ethernet devices in your later deployment, or will those be WiFi
> interfaces?
> Also, would it be useful for you to consider bonding/teams interfaces of the
> Linux kernel to bond the link, and give that to batman-adv?
> 
> Cheers,
>        Simon
> 
> [1]
> https://www.open-mesh.org/projects/batman-adv/wiki/Network-wide-multi-link-o
> ptimization
> 
> On Wednesday, September 15, 2021 4:58:58 PM CEST Edmisten, Brian wrote:
> > Simon,
> > 
> > Thank you. I appreciate you looking at this.
> > 
> > Regards,
> > Brian Edmisten
> > 
> > -----Original Message-----
> > From: Simon Wunderlich [mailto:sw@simonwunderlich.de]
> > Sent: Wednesday, September 15, 2021 12:26 AM
> > To: b.a.t.m.a.n@lists.open-mesh.org; Edmisten, Brian
> > <Brian.Edmisten@viasat.com>
> > Subject: Re: Bonding Alternating
> > 
> > Hi Brian,
> > 
> > hmm, I see. I will try to set up this scenario over the next few days
> > and let you know. I haven't used bonding for quite a while now, but I
> > also don't think that we had changes in the code which would break it.
> > 
> > Anyway, will test and let you know.
> > 
> > Cheers,
> > 
> >       Simon
> > 
> > On Tuesday, September 14, 2021 6:57:37 PM CEST Edmisten, Brian wrote:
> > > Simon,
> > > 
> > > I did check again.  batctl bonding responds with enabled.
> > > 
> > > Cheers,
> > > Brian Edmisten


[-- Attachment #1.2: 0001-batman-adv-apply-WiFi-penalty-on-all-interfaces.patch --]
[-- Type: text/x-patch, Size: 1655 bytes --]

From ef45b1f2462ee40843b7607c5342eae4f1595772 Mon Sep 17 00:00:00 2001
From: Simon Wunderlich <sw@simonwunderlich.de>
Date: Wed, 22 Sep 2021 09:51:11 +0200
Subject: [PATCH] batman-adv: apply WiFi penalty on all interfaces

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
---
 net/batman-adv/bat_iv_ogm.c | 3 +--
 net/batman-adv/bat_v_ogm.c  | 4 +---
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
index f94f538f..95b045c3 100644
--- a/net/batman-adv/bat_iv_ogm.c
+++ b/net/batman-adv/bat_iv_ogm.c
@@ -1159,8 +1159,7 @@ static bool batadv_iv_ogm_calc_tq(struct batadv_orig_node *orig_node,
 	 * interfaces and other half duplex devices suffer from throughput
 	 * drops as they can't send and receive at the same time.
 	 */
-	if (if_outgoing && if_incoming == if_outgoing &&
-	    batadv_is_wifi_hardif(if_outgoing))
+	if (if_outgoing && if_incoming == if_outgoing)
 		tq_iface_hop_penalty = batadv_hop_penalty(tq_iface_hop_penalty,
 							  bat_priv);
 
diff --git a/net/batman-adv/bat_v_ogm.c b/net/batman-adv/bat_v_ogm.c
index 1d750f3c..17c50e82 100644
--- a/net/batman-adv/bat_v_ogm.c
+++ b/net/batman-adv/bat_v_ogm.c
@@ -492,9 +492,7 @@ static u32 batadv_v_forward_penalty(struct batadv_priv *bat_priv,
 	 * due to the store & forward characteristics of WIFI.
 	 * Very low throughput values are the exception.
 	 */
-	if (throughput > 10 &&
-	    if_incoming == if_outgoing &&
-	    !(if_incoming->bat_v.flags & BATADV_FULL_DUPLEX))
+	if (throughput > 10 && if_incoming == if_outgoing)
 		return throughput / 2;
 
 	/* hop penalty of 255 equals 100% */
-- 
2.30.2


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2021-09-22  7:55 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-09 20:09 Bonding Alternating brian.edmisten
2021-09-10  7:15 ` Simon Wunderlich
2021-09-10 17:59   ` brian.edmisten
2021-09-13 13:40     ` Simon Wunderlich
2021-09-14 16:57       ` Edmisten, Brian
2021-09-15  7:26         ` Simon Wunderlich
2021-09-15 14:58           ` Edmisten, Brian
2021-09-21 14:16             ` Simon Wunderlich
2021-09-21 15:41               ` Edmisten, Brian
2021-09-22  7:55                 ` Simon Wunderlich [this message]
2021-09-22 15:10                   ` Edmisten, Brian

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2193349.8FveGl8YFJ@prime \
    --to=sw@simonwunderlich.de \
    --cc=Brian.Edmisten@viasat.com \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.