Ilario Gelmetti:
  Hi Amuza!
 Some comments in line: 
Hi Ilario!
  
 On 12/5/20 9:14 PM, amuza wrote:
  I tested it. It works ok with BMX6. But not
optimally.
 I have Router A, B and C with LiMe based on OpenWRT 19.07 with BMX6, no
 Babel. They are connected like shown below:
  ISP-A                     ISP-C
    |                         |
 RouterA <--> RouterB <--> RouterC
 RouterA is connected to ISP-A.
 RouterC is connected to ISP-C.
 Router-B can reach the Internet via both ISP-A and ISP-C without a
 problem, switching gateways automatically when needed.
 However, if ISP-A fails, RouterA won't reach the Internet through ISP-C
 automatically: it will need a manual reboot :(
 And so, the same applies at the other end: if ISP-C fails, RouterC won't
 reach the Internet though ISP-A unless you give it a manual reboot. 
 
 This is exactly what bmx6-auto-gw-mode does: when the internet
 connection fails the gateway (Router-A or Router-C) stops **announcing
 itself as a gateway to the other nodes** (Router-B).
 But the gateway node itself (Router-A or Router-C) continues using their
 own WAN.
 I suppose that this was done so that the gateway node can continue
 checking if the WAN starts working again.
 
 So what you're seeing is expected, with bmx6-auto-gw-mode.
 With Babeld, as an equivalent feature is missing, the Router-B should
 not switch connection when you unplug the telephone/coaxial/fiber cable
 from ISP-A or ISP-C (which is the best way to remove the connection, in
 my opinion), can you confirm this? 
Yes, I agree, that's the correct way to test it. I disconnected the ISP
router from the Internet, but kept the Mesh router properly connected to
the ISP router.
With Babel, RouterB does switch from ISP-A to ISP-C too, as BMX6 does.
  
 Let's take the example that Router-A loses connection to the internet.
 Router-A will stop telling to the rest of the network that internet can
 be reached there. But Router-A will still use that WAN for trying
 pinging the internet and once the connection is working the ping will
 start working again and it will announce the internet availability again.
 
 If we want to have also Router-A switching to use Router-C internet
 access while still checking if its own internet access works, 
Yes, that would be perfect.
  we can use
 two default routes and play with the metrics (the priority of the two
 ways to reach the internet).
 The way through Router-C (which works) can have lower priority(i.e.
 higher priority) 
I understand, you meant 'lower metrics'.
  and the way through ISP-A (broken) can be used by
ping
 with the -I option (forces ping to use a specific interface, this option
 is present also in the ping version included in OpenWrt).
 Amuza, if we want to improve the watchping package and the
 bmx6-auto-gw-mode package it would be useful to open an issue on Github,
 can you do it?
  
There you go:
https://github.com/libremesh/lime-packages/issues/822
  For implementing something similar using the
check-internet package
 (which is much more reliable than ping, as it does not get fooled by
 networks blocking ping or by captive portals answering to all the pings)
 we should include the full wget or curl packages, check out this comment
 for more:
 
https://github.com/libremesh/lime-packages/issues/93#issuecomment-739014966
 
 Ciao!
 Ilario