aboutsummaryrefslogtreecommitdiff
path: root/net/mwan3/files/usr/sbin/mwan3track
Commit message (Collapse)AuthorAge
* mwan3: reset score to up+down on connectedFlorian Eckert2023-05-08
| | | | | | | | | | Set the score value to the maximum value when the connected function is called. The same happens with a disconnected event, the score value is there set to zero. Suggested-by: Anna Tikhomirova <vamp@vampik.ru> Suggested-by: Maxim Mikityanskiy <maxtram95@gmail.com> Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: refactoring mwan3track action handlingFlorian Eckert2023-05-08
| | | | | | | | Refactoring the score handling, so that only one action could take place during run. The behaviour should be more comprehensible, since several score actions are not processed at the same time. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: only send disconnected event if interface was connected beforeFlorian Eckert2022-10-17
| | | | | | | | Up to now on every interface down event a mwan3 disconnected event was send. This is wrong because if the interface was never connected, then a disconnected event should not get generated. This commit fixes this bug. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: add connecting and disconnecting event to mwan3trackFlorian Eckert2021-03-16
| | | | | | | | | | | | | If the interface goes into failure state (is disconnecting) then with this change one hotplug.d event is generated. The same is true for the recovery state (is connecting), when the interface comes back from a failure state. In both cases, a hotplug.d event for the iface is triggered. Once with the $ACTION=disconnecting and once for the $ACTION=connecting. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: disable DNS lookups for ping checksFlorian Eckert2021-03-01
| | | | | | | | | | | | | | | | | By default, ping does a reverse DNS of the IP that you are pinging. When you have a network issue (such as when a link has just gone down and you haven't yet marked it down), this lookup can cause failures on tests for links that are still good. This option only works for iputils ping. For busybox the option is not evaluated, but it is accepted without throwing an error. Fixes: #14968 Fixes: #14924 Signed-off-by: Florian Eckert <fe@dev.tdt.de> Suggested-by: David Lang <david@lang.hm>
* mwan3: fix regression in ipv6 routing tablesAaron Goodman2021-01-02
| | | | Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: support latest iputils pingAaron Goodman2020-11-16
| | | | | | | | | | | iputils upstream changed build params with version s20200821 Latest OpenWRT iputils ping now appears to report the openwrt version tag, rather than iputils date tag This commit sends a test ping to localhost to evaluate the capabilities of iputils ping. Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: restore +x flag to mwan3 executablesAaron Goodman2020-11-10
| | | | Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: use common makefile install wrappersFlorian Eckert2020-11-06
| | | | | | | With this change you can see at a glance which files will be installed on the system. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: fix wait conditions in mwan3trackFlorian Eckert2020-11-06
| | | | | | | | Will only run when no events are pending. Signed-off-by: Aaron Goodman <aaronjg@stanford.edu> [ Update description and split into own commit ] Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: move mwan3_init call in mwwan3track into mainFlorian Eckert2020-11-06
| | | | | | | Initialize TRACK_OUTPUT has been set after INTERFACE variable initialization. Move definition into main fixes this issue. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: do not wait to process ifup/ifdown eventsAaron Goodman2020-10-27
| | | | Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: cleanup mwan3trackAaron Goodman2020-10-16
| | | | | | | | - reduce duplicate logging code - simplify nping track code - simplify ping result parsing Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: add back support for iputils pingAaron Goodman2020-10-16
| | | | | | | With the new wrapper code, we can override the broken binding behavior of iputils ping v20101006. Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: add "use" function to mwan3 utilsAaron Goodman2020-10-16
| | | | | | | | | | | | | | | Use "mwan3 use" to wrap a command with interface bindings so that you can avoid the mwan3 rules and test behavior on a specific interface. eg "mwan3 use wan ping -c1 1.1.1.1" Additional binding arguments to the command will have their system calls intercepted and ignored. eg "mwan3 use wan ping -c1 -I tun0 1.1.1.1" will use the device associated with "wan", rather than "tun0". Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: use helper library for mwan3trackAaron Goodman2020-10-16
| | | | | | | | | | | | | | | | | Rather than using a special mwan3 user to manage mwan3track's tracking packets, this commit implements a small helper library to bind to device and to set a fwmark so that the tracking packets can be routed out of the correct interface. This provides a consistent method for binding to a device rather than relying on various packages potentially buggy implementations. For example: #8139 and #12836 This helper issue also allows for more tracking methods to be added even if they do not have a command line option to bind to device, such as iperf3 (eg #13050). Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: use procd for mwan3rtmon and mwan3trackAaron Goodman2020-10-16
| | | | | | | | | | | start all mwan3mon and mwan3track instances on mwan3 start if an interface is down when mwan3track starts, it waits for a signal from the hotplug script to start procd can then handle stopping all of the scripts when mwan3 is halted Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: use MWAN3TRACK_STATUS_DIR variable throughoutAaron Goodman2020-10-16
| | | | Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: fixup some extra spaces and shellcheck warningsAaron Goodman2020-10-16
| | | | Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: improve startup performance; version 2.9.0Aaron Goodman2020-08-17
| | | | | | | | | | | | | | | | | | | | | | improve startup and runtime performance by 1) moving common startup procedures out of hotplug script when called from mwan3 start 2) reducing calls to iptables to check status of rules 3) consolidating iptables updates and updating with iptables-restore 4) do not wait for kill if nothing was killed 5) running interface hotplug scripts in parallel 6) eliminate operations in hotplug script that check status on every single interface unnecessarily 7) consolidate how mwan3track makes hotplug calls 8) do not restart mwan3track on connected events This is a significant refactor, but should not result in any breaking changes or require users to update their configurations. version bump to 2.9.0 Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* treewide: replace `which` with `command -v`Paul Spooren2020-08-09
| | | | | | | | | | Fix shellcheck SC2230 > which is non-standard. Use builtin 'command -v' instead. Once applied to everything concerning OpenWrt we can disable the busybox feature `which` and save 3.8kB. Signed-off-by: Paul Spooren <mail@aparcar.org>
* mwan3: Use /128 for ipv6 if no other source address was foundAaron Goodman2020-05-29
| | | | Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: force busybox pingAaron Goodman2020-05-22
| | | | | | | | | | | | | | | openwrt 19.07 uses iputils 20101006-1 This ancient version of iputils has a bug where the -I option is not respected. https://github.com/iputils/iputils/issues/55 https://github.com/iputils/iputils/issues/56 https://bugs.openwrt.org/index.php?do=details&task_id=1486 Thus, we should force using busybox ping at "/bin/ping" until the iputils version gets an upgrade in the next major release Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
* mwan3: Don't use /128 address for ping sourceBrian J. Murrell2020-04-30
| | | | | | | | An interface can have both a /64 and a /128 from a provider. In such a case, use the address from the /64 to do the ping check, not the /128. Signed-off-by: Brian J. Murrell <brian@interlinx.bc.ca>
* mwan3: fix whitespace issueFlorian Eckert2020-04-27
| | | | | | fixes #11965 Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: Ping IPv6 hosts using address not interfaceBrian J. Murrell2020-03-13
| | | | | | | | | | Pinging IPv6 hosts using an interface as a source specifier seems troublesome. See https://bugs.openwrt.org/index.php?do=details&task_id=2897 for more detail. Use the desired source interface's IP address instead. Signed-off-by: Brian J. Murrell <brian@interlinx.bc.ca>
* mwan3: add httping_ssl optionFlorian Eckert2019-11-14
| | | | | | | | Till now we could only ping http targets on port 80. With this change by adding the config boolean config option httping_ssl we could also ping https ping targets on port 443. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: rename downtime to offlineFlorian Eckert2019-07-04
| | | | | | Rename downtime ubus output from mwan3 to offline. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: rename uptime to onlineFlorian Eckert2019-07-04
| | | | | | Rename uptime ubus output from mwan3 to online. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: fix disconnected event generation in mwan3trackFlorian Eckert2019-02-27
| | | | | | | | | | Before this change two disconnected events were generated. This is wrong! The disconnected event is impliciet generated by the hotplug script on ifdown event. The mwan3track script is notified by a USR1 signal which generates the disconnectd event. The additional "disconnectd" event on ifdown is not required. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: set interface unknown to offlineFlorian Eckert2019-01-14
| | | | Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: add nping to tracking methodMichael Stoll2018-12-21
| | | | Signed-off-by: Michael Stoll <michael.stoll@meadow-robotics.com>
* net/mwan3: add downtime ubus informationFlorian Eckert2018-10-12
| | | | | | | Get downtime information for the tracked mwan3 wan interfaces. The information shows how long this interface is in disconnected state. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: add uptime ubus informationFlorian Eckert2018-10-12
| | | | | | | Get uptime information for the tracked mwan3 wan interfaces. The information shows how long this interface is in connected state. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: mwan3track should also send disconnected action on signal USR1Florian Eckert2018-09-24
| | | | | | Also send disconnected action on system signal USR1. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: add ttl checkFlorian Eckert2018-09-24
| | | | | | Add the additional optional ttl check to test the connection. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: add missing local variablesFlorian Eckert2018-05-11
| | | | Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: update logging outputFlorian Eckert2018-05-11
| | | | | | Unify logging output for tracking methode ping. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: fix indentationFlorian Eckert2018-05-11
| | | | | | Fix indentation. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: replace legancy backticksFlorian Eckert2018-05-11
| | | | | | Replace legancy backticks syntax shell execution with braces. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: remove needless log output on mwan3trackFlorian Eckert2018-05-11
| | | | | | Remove needless log output this will pollute the logging. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: Packet Loss & Latency CheckNishant Sharma2018-05-11
| | | | | | | 1. Test link quality based on packet loss & latency w.r.t. pre-defined high and low watermark values. 2. Extended ubus support to provide packet loss & latency information per wan per track_ip Signed-off-by: Nishant Sharma <codemarauder@gmail.com>
* net/mwan3: also send connected action on initial_state offlineFlorian Eckert2018-04-08
| | | | | | Move action into startup section will fix this. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: add logging on ping success and failFlorian Eckert2018-04-08
| | | | | | Add logging information during state change on ping success or fail Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: add connected/disconnected ACTION to mwan3trackFlorian Eckert2018-03-16
| | | | | | | | | | | | Add a new ACTIONs: * connected ACTION is called once if mwan3track reach all configured track_ips * disconnected ACTION is called once if mwan3track is unable to reach the track_ips The connected/disconnected will called only by mwan3track in opposite the ACTIONs ifup/ifdown will also be called by netifd. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: send SIGKILL to mwan3trackFlorian Eckert2018-02-05
| | | | | | | | In some situation it is not enough to send a SIGTERM to mwan3track to ask service to stop accurate. If this does not work send him a SIGKILL to prevent mwan3track running more then once per interface. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* net/mwan3: use uptime for ubus age infoFlorian Eckert2017-11-16
| | | | | | | | If the date is changed by ntp the age value of mwan3 on ubus could jitter. Use instead the uptime value from /proc/uptime which will not change during system run. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
* mwan3: add check for pingDavid Yang2017-11-08
| | | | Signed-off-by: David Yang <mmyangfl@gmail.com>
* mwan3: reduce dependency on src_ipDavid Yang2017-11-08
| | | | | | | Interfaces may be managed by 3rd-party scripts, thus src_ip may not be always available in uci. Signed-off-by: David Yang <mmyangfl@gmail.com>
* net/mwan3: if initial_state is offline set status to unknownFlorian Eckert2017-09-01
| | | | | | | To show that the status of the interface is neither offline nor online set the status to unknown. Signed-off-by: Florian Eckert <fe@dev.tdt.de>