batman-adv not selecting a gateway when using "client 1" through uci config
Hi everyone,
I've been experimenting with gateway selection in QuintanaLibre. I have a very bad gateway that I want to work as a last resort gateway when the other is down, so I tried changing to gw_mode client 1 and used some unreal values for the Up/Down speeds to "force" the selection.
Anyway, this is all well, the good gateway gets selected from almost all the mesh, but the problem is that when I updated the client routers configuration using uci to make it permanent, I stumbled with this strange result that you can see here:
there's no gateway being selected until I manually run:
# batctl gw_mode client 1 (which was te current mode anyway) on each client.
In fact, connected computers are not being served DHCP offers because of this.
Is this some known behavior or just something I overlooked?
Thanks as ever for your help with batman-adv, which here at the far south we are loving every day more as little mesh clouds keep spawning around us :)
Cheers,
NicoEchániz
Quoted 9 lines · On Friday, July 20, 2012 04:24:11 Nicolás Echániz wrote:
there's no gateway being selected until I manually run:
# batctl gw_mode client 1 (which was te current mode anyway) on each client.In fact, connected computers are not being served DHCP offers because of this.
Is this some known behavior or just something I overlooked?
In fact you managed to uncover a regression that was overlooked for quite some time. Guess gw selection class 1 is rarely used. :-)
Can you apply the attached patch and verify that it fixes the problem ? Here in my test setup it does.
Regards,
Marek
From 0a29f3a348c68f375585e25153da0f0a061fd71d Mon Sep 17 00:00:00 2001
From: Marek Lindner <[email protected]>
Date: Sun, 22 Jul 2012 13:04:48 +0200
Subject: [PATCH] batman-adv: select an internet gateway if none was chosen
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is a regression introduced by: 6a17ecc4603be7f065c38b288d038a0082bbf21d
--- gateway_client.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
gateway_client.c +3 -3
@@ -197,11 +197,11 @@ void gw_election(struct bat_priv *bat_priv)if (atomic_read (&bat_priv->gw_mode) !=GW_MODE_CLIENT ) goto out; -if (!atomic_dec_not_zero (&bat_priv->gw_reselect)) - goto out; - curr_gw =gw_get_selected_gw_node (bat_priv); +if (!atomic_dec_not_zero (&bat_priv->gw_reselect) && curr_gw) + goto out; + next_gw =gw_get_best_gw_node (bat_priv);if (curr_gw == next_gw)
Signature · 1 line
1.7.9.1
Quoted 9 lines · Marek Lindner
Quoted 8 lines · On Friday, July 20, 2012 04:24:11 Nicolás Echániz wrote:
there's no gateway being selected until I manually run:
# batctl gw_mode client 1 (which was te current mode anyway) on each client.In fact, connected computers are not being served DHCP offers because of this.
Quoted 7 lines
Quoted 1 line
Is this some known behavior or just something I overlooked?
In fact you managed to uncover a regression that was overlooked for quite some time. Guess gw selection class 1 is rarely used. :-)
Can you apply the attached patch and verify that it fixes the problem ? Here in my test setup it does.
Marek patch applied (thanks Guido) and verified.gw_mode client 1 is now properly selecting a gateway when set in the config.
thanks for your prompt reply :)
cheers,
NicoEchániz
Quoted 9 lines · On Monday, July 23, 2012 11:02:49 Nicolás Echániz wrote:
Quoted 9 lines
Quoted 1 line
Is this some known behavior or just something I overlooked?
In fact you managed to uncover a regression that was overlooked for quite some time. Guess gw selection class 1 is rarely used. :-)
Quoted 6 lines
Quoted 2 lines
Can you apply the attached patch and verify that it fixes the problem ? Here in my test setup it does.
Marek patch applied (thanks Guido) and verified.
gw_modeclient 1 is now properly selecting a gateway when set in the config.
Thanks for testing the patch. I updated the OpenWrt package and will provide a patch that goes into the next release.
Cheers,
Marek