1
0
mirror of https://git.openwrt.org/feed/packages.git synced 2024-06-16 20:33:58 +02:00
Commit Graph

54 Commits

Author SHA1 Message Date
Paul Spooren
30ea917518 treewide: replace which with command -v
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>
2020-08-09 13:58:14 -10:00
Aaron Goodman
4efaa44b21 mwan3: Use /128 for ipv6 if no other source address was found
Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
2020-05-29 09:44:20 -04:00
Aaron Goodman
35a86bdc11 mwan3: force busybox ping
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>
2020-05-22 20:01:45 -04:00
Brian J. Murrell
49cf5eac5c mwan3: Don't use /128 address for ping source
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>
2020-04-30 14:55:20 +02:00
Florian Eckert
3c34b151f6 mwan3: fix whitespace issue
fixes #11965

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-04-27 17:58:12 +02:00
Brian J. Murrell
6721587e8b mwan3: Ping IPv6 hosts using address not interface
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>
2020-03-13 15:24:57 +01:00
Florian Eckert
a689e168aa mwan3: add httping_ssl option
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>
2019-11-14 07:57:11 +01:00
Florian Eckert
6c2cd78c6f mwan3: rename downtime to offline
Rename downtime ubus output from mwan3 to offline.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-07-04 12:03:34 +02:00
Florian Eckert
3be40786f5 mwan3: rename uptime to online
Rename uptime ubus output from mwan3 to online.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-07-04 12:03:30 +02:00
Florian Eckert
27e7e88966 mwan3: fix disconnected event generation in mwan3track
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>
2019-02-27 13:50:51 +01:00
Florian Eckert
10cadcb2af mwan3: set interface unknown to offline
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-01-14 08:28:53 +01:00
Michael Stoll
7acb0c3e38 mwan3: add nping to tracking method
Signed-off-by: Michael Stoll <michael.stoll@meadow-robotics.com>
2018-12-21 11:21:31 +01:00
Florian Eckert
1ee9fb4aff net/mwan3: add downtime ubus information
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>
2018-10-12 08:15:36 +02:00
Florian Eckert
1236003733 net/mwan3: add uptime ubus information
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>
2018-10-12 08:15:33 +02:00
Florian Eckert
d338131f40 net/mwan3: mwan3track should also send disconnected action on signal USR1
Also send disconnected action on system signal USR1.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-09-24 10:20:35 +02:00
Florian Eckert
c9d8fceb63 net/mwan3: add ttl check
Add the additional optional ttl check to test the connection.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-09-24 10:20:35 +02:00
Florian Eckert
0d5dd6da4f net/mwan3: add missing local variables
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-05-11 09:00:57 +02:00
Florian Eckert
21c42901e1 net/mwan3: update logging output
Unify logging output for tracking methode ping.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-05-11 08:46:40 +02:00
Florian Eckert
3b33e01791 net/mwan3: fix indentation
Fix indentation.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-05-11 08:43:34 +02:00
Florian Eckert
7962bfd3df net/mwan3: replace legancy backticks
Replace legancy backticks syntax shell execution with braces.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-05-11 08:42:53 +02:00
Florian Eckert
5f068b7fb3 net/mwan3: remove needless log output on mwan3track
Remove needless log output this will pollute the logging.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-05-11 08:42:17 +02:00
Nishant Sharma
1a33492ff8 mwan3: Packet Loss & Latency Check
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>
2018-05-11 08:21:28 +02:00
Florian Eckert
f8cf485212 net/mwan3: also send connected action on initial_state offline
Move action into startup section will fix this.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-04-08 16:20:24 +08:00
Florian Eckert
1eae1ae3e7 net/mwan3: add logging on ping success and fail
Add logging information during state change on ping success or fail

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-04-08 16:20:24 +08:00
Florian Eckert
4f1e85bd8c net/mwan3: add connected/disconnected ACTION to mwan3track
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>
2018-03-16 14:44:04 +01:00
Florian Eckert
7cf9d9ec20 net/mwan3: send SIGKILL to mwan3track
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>
2018-02-05 10:29:25 +01:00
Florian Eckert
267c0eeaed net/mwan3: use uptime for ubus age info
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>
2017-11-16 09:15:04 +01:00
David Yang
474e6bbdd7 mwan3: add check for ping
Signed-off-by: David Yang <mmyangfl@gmail.com>
2017-11-08 16:14:53 +08:00
David Yang
e094212b17 mwan3: reduce dependency on src_ip
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>
2017-11-08 16:14:52 +08:00
Florian Eckert
0c678d39cc net/mwan3: if initial_state is offline set status to unknown
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>
2017-09-01 10:59:54 +02:00
Florian Eckert
ec5542ab2b net/mwan3: mwan3track skip track ips if realibility is accomplished
If enough tracking ip are pinged skip the reset. They are not needed
anymore to mark the interface as up.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-09-01 10:59:49 +02:00
Marcin Jurkowski
284284ef2e mwan3: fix bugs introduced in 815e83d4
Fixes the following bugs introduced in commit 815e83d4:
 - hotplug: invalid parameter order when initial interface state is "online",
   mwan3track expects initial state to be the third argument
 - hotplug: missing source ip address when initial interface state is "offline"
 - mwan3track: source ip address should be the fourth argument

Signed-off-by: Marcin Jurkowski <marcin1j@gmail.com>
2017-08-17 13:20:10 +02:00
Florian Eckert
929bec6402 net/mwan3: expand ubus to show when last mwan3track check was done
To know how old the ubus output is, add an age parameter which indicats
how old the check informations on the interface are.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-08-10 11:30:47 +02:00
Florian Eckert
815e83d461 net/mwan3: on startup mark interface online only if track_ip are reachable
Add new interface config option "inital_state".

If interface comeing up the first time(mwan3 start, boot),
there are now two option for interface behaviour:

- online (default as is now)
  Set up interface regardless wether tracking ip are reachable or not.

- offline
  Set up interface first to ping tracking ip and if they are reachable set up
  the interface completely.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-08-10 11:30:47 +02:00
Florian Eckert
5e123852bc net/mwan3: move mwan3track clean up to mwan3 cmd
This is usefull to see the last state of the interface with ubus.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-08-10 10:48:27 +02:00
Florian Eckert
0b44ca505b net/mwan3: fix mwan3track kill execution
If two interface have the same prefix "wan" for example "wan" and "wan1"
pgrep returns the PID for wan1 also "pgrep -f mwan3track wan".

Before this fix "wan1" was also killed! This is not what we want.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-08-10 10:48:18 +02:00
Florian Eckert
a7a2464d9e net/mwan3: add option keep_failure_interval on failure
Add new boolean interface config param to keep ping failure interval during
interface failure state.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-08-10 10:45:28 +02:00
Marcin Jurkowski
de4fc2b5de mwan3: support various interface tracking methods
Adds support for interface tracking using either ping, arping or
httping. This allows to track interface status on networks with filtered
ICMP traffic or simply to monitor data link layer etc.

To facilitate binding to a specified interface its IP address is passed
as a new mwan3track parameter. It's currently required by httping
and possibly by other tools that may be added in the future.

Signed-off-by: Marcin Jurkowski <marcin1j@gmail.com>
2017-08-02 17:44:07 +02:00
Florian Eckert
db5ea39c9b net/mwan3: generate mwan3track run path folder on every run
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-05-12 15:30:34 +02:00
Florian Eckert
ef3261d0b4 net/mwan3: remove absolute path for bin files
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-05-12 15:28:12 +02:00
Florian Eckert
1fd3f85d4f net/mwan3: remove pid file use pgrep to get pid
If mwan3track will not stop immediately after sending the kill signal,
the clean_up handler will delete the pid file later while the new mwan3track is
already running.

This could result in a situation that mwan3track is running
more then once because the old mwan3track service could not be killed,
because the pid file is missing.

Using pgrep to kill all mwan3track for the tracked interface and not using
pid file should fix this issue.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-05-12 15:28:12 +02:00
Florian Eckert
7e80e83dfd net/mwan3: mwan3track interrupt sleep on signal (trap) event
Sleep will be aborted if a signal is send to this process.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-04-11 09:46:20 +02:00
Florian Eckert
b216fd3642 net/mwan3: registrate SIGUSR1 trap on interface down event
If interface is getting down by netifd (unplug ethernet cable)
mwan3track will not recognize this change. It will also generate an
additional down event when he notice does his tracking interface is offline.

Mwan3track will now be informed by a signal (trap) USR1 during down event
that the interface is already down. An additional down event will not be
generated.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-04-11 09:46:20 +02:00
Florian Eckert
84df06e0dc net/mwan3: add status track ubus interface
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-04-11 09:46:20 +02:00
Florian Eckert
6bb84f69e7 net/mwan3: decrease parameter invocation of mwan3track
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-04-05 07:29:45 +02:00
Florian Eckert
5b55223d80 net/mwan3: add clean_up trap function for SIGINT SIGTERM
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-04-04 16:00:06 +02:00
Florian Eckert
51367883fc net/mwan3: unify logging in mwan3track
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-04-04 15:33:37 +02:00
Florian Eckert
23339d7ae1 net/mwan3: move global mwan3track into main function
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-04-04 15:01:34 +02:00
Florian Eckert
ae335e7384 net/mwan3: add failure and recovery interval
If mwan3track detects a failure the interval check will change to
"failure_interval" value until this interface is declared "offline".
After interface gets "offline" normal "interval" value is used again.
If interface ping is successful again "recovery_interval" value is used until
interface is declared "online" again.

Using the different intervals will accelerate the wan line detections on
failure and recovery.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-03-27 08:45:13 +02:00
Florian Eckert
75a5237029 net/mwan3: fix track_ips count
fix track_ips generation introduced with commit
6d44a7679a

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-03-20 08:39:18 +01:00