README ====== License: GPLv2 You should be able to find GNU Public License from www.gnu.org. Foolsm is a Link Status Monitor which can be used to monitor for example a Linux router/firewall connectivity and if you happen to have multiple connections it can change routing when an up/down event happens by utilizing external script. When a SIGUSR1 is received current connection states are syslogged. This package is highly influenced by fping and iputils arping. Many thanks for their efforts. TODO ==== - Add "odd" icmp packet handling (may not be necessary) - You can't set source ip for ping packets. It's always autodiscovered. - Could the arping connection targets use only one socket ... - IPv6 support. - Should be able to check ENODEV somehow before first sendto. Now exits with error code 2 after daemon which init-script can't handle. * This is now changed so that ENODEV causes LOG_ERR with each ping but no exit and behave just as the packet was sent. So for ENODEV you should get a down -event just as if there was packet loss. - The source is kind of ugly ... DECISION MAKING =============== As of foolsm v0.27, the detection algorithm works like this: Foolsm keeps track of 1) the result of the most recent pings (up to 100) 2) the number of consecutive lost pings. 3) the number of consecutive received pings. Let A == the number of recently lost pings Let B == the number of consecutive lost pings Let C == the number of consecutive returned pings If connection (or group) is UP AND ( (A >= max_packet_loss) OR (B >= max_successive_pkts_lost) then change the connection (or group) to down. Else If connection (or group) is DOWN AND ( (A <= min_packet_loss) AND (C > min_successive_pkts_rcved) ) then change the connection (or group) to up. Note: Foolsm assumes each connection starts in an UNKNOWN state by default. DEPENDENCIES ============ default_script uses /bin/mail that's the only reason to depend on mailx-package. INSTALLING ========== There is now Makefile target install for those of you not using rpms. I use only rpm based distros so that may not be in sync with foolsm.spec which does all what I need. AUTHORS ======= Mika Ilmaranta See foolsm.spec's changelog section for patch submitters.