netwatch limitations and alternatives

[I posted this in the general forum, but realized it would probably be better over here… sorry for the dupe.]

Ok, I’ve done some looking and haven’t found anything, so here’s my query.

  1. Multiple internet connections.
  2. Want to “fail-over” connections when one goes down.
  3. “down” may not mean that all pings fail, but that RTT are greater than a certain value, or some%+ of packets are lost. [i.e. RTT >1000ms and/or >15% packet loss]

So, does anyone have a way for dealing with this?
[fping can return stats like this, in a machine readable form. I use smokeping regularly in system monitoring…]

It’s just that often I will have connections that are effectively down, but won’t show as “down” in something like netwatch or a ping return. [e.g. RTT times may be 1500 or greater, or say 2/10 packets are lost.] But in such a case, netwatch will, I believe, still report that the connection is UP.

IPSec tunnels over a link like that are effectively down anyway.

So, I’m looking for some hints at a way, perhaps using fping [or an alternative] to measure RTT’s and packet loss and determine a link down based on certain criteria, other than it’s 100% unreachable. [Criteria, preferably set in the script header. I want it to be usable by others who will have different criteria than I.].

TIA!
-Greg