Commit Graph

70 Commits

Author SHA1 Message Date
Pau Espin 9784c815aa Depend on liboping 1.7.0 instead of 1.9.0
Debian8 provides 1.7.0. Let's depend on it so we can build packages for
debian8.

Change-Id: Idba4494102d48d125bcd215dd0d3fdf42bbd409e
2019-03-20 14:35:05 +01:00
Pau Espin a15a6d7832 debian: Add missing libmnl-dev dependency
Change-Id: I1157b1f0edabac16d664c2d4ad2250d3802dcc60
2019-03-20 14:33:41 +01:00
Pau Espin b1720a39c9 Bump version: 0.0.1.66-d4c3-dirty → 0.1.0
Change-Id: Ie98bb286d9333158985ddb80edf7208d69702d73
2019-03-20 13:14:31 +01:00
Pau Espin 814882bf5e Add debian packaging content
Change-Id: I2bcacca040364f77aa6b17edf53acf53c820c17b
2019-03-20 13:12:54 +01:00
Pau Espin 9342f1c574 Makefile.am: Add missing bits to have make release working
Change-Id: I2758561ff2b08e33042161253a3bd36ce73bf259
2019-03-19 17:41:19 +01:00
Pau Espin 9201677917 Add vty option to print output of shell cmd on every poll step
Change-Id: I005773b75f81fa5f6c90f53af508fc6debea208b
2019-03-19 13:25:42 +01:00
Pau Espin d7321347b9 openvn: Fix missing break in last commit
Fixes: a3a92ecc5c
Change-Id: I6d5aeea965cc9d2f417be24dbeca0278d2f83567
2019-03-16 18:27:45 +01:00
Pau Espin 778ac848d3 openvpn: Remove useless conditional block in parse_state
tok != NULL is already checked in the for loop conditions.

Change-Id: I86e42e4537060b2ed8c860c0b71a225c5fe026c7
2019-03-15 20:58:13 +01:00
Pau Espin 3d13718ce7 openvpn: Fix garbage printed after remote port
Last strtok() returns chunk from last "," until end of strig. Since
openvpn sends a trailing new line + "END" string, that was being copied
into the remote port.

Change-Id: Ie24fed9c64bc482fd5af8bc9d03d37937c6471bf
2019-03-15 20:58:13 +01:00
Pau Espin a3a92ecc5c openvpn: log status description
Useful specially during RECONNECTING and EXITING to show reason of the
disconnect according to openvpn documentation.

Change-Id: I9f47f5d843bb550a4ce7956c89d31f06394201cf
2019-03-15 20:58:13 +01:00
Pau Espin b91013259f openvpn: String returned from openvpn is not null-terminated
wireshark shows strings returned by OpenVPN management interface as an
aswer to "state" cmd contain no null character at the end. As a
consequence, osmo_strlcpy cannot be used since it calls strlen() on the
source.
Probably previous implementation was harmless because we zero-fill msgb
buffers prior to filling them.

Change-Id: I4356dc08324a6d877c9e8112306570aabbf6e777
2019-03-15 20:58:13 +01:00
Pau Espin 0813db372b openvpn: Set reconnect timeout to a much lower value
It's a connection towards localhost, so it doesn't hurt reconnecting in
a timely fashion, otherwise upon openvpn restart user needed to wait for
1 minute to see changes.

Change-Id: Ie9638120d1ce5bfa43bc7c15f05cf81de37624c5
2019-03-15 20:58:13 +01:00
Pau Espin 53f507372e openvpn: Improve logging and status information
New strings are far more comprehensive to understand the current status
during (re)connect to openvpn management socket.

Change-Id: Ifd0f821ed2d237740b6d3381a7190ad7058ce889
2019-03-15 20:58:04 +01:00
Pau Espin 69d80b7b46 Integrate sleeping/printing loop into osmo main loop
Among other possibles issue, it should avoid sporadic print loop hanging if no events are fired in osmocom main loop.

Change-Id: Ie2f0983eaf75826483b5b70f58b4d4acb842d6ea
2019-03-15 18:46:08 +01:00
Max 4554730bbc Update config example
Add OpenVPN and ping probe entries to example config.

Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027
Related: SYS#2655
2019-02-22 21:28:19 +00:00
Oliver Smith 433f705c2b osmo-sysmon -h: s/OsmoHLR/osmo-sysmon/
Fix program name in help output.

Change-Id: I45d4e43b92833a22ae31d1cdc2b4d397f572ca34
2019-02-22 10:42:38 +01:00
Max 6cbdcaf5bb OpenVPN: track interface disconnect
Setup disconnection callback and use it to properly track management
interface availability.

Change-Id: I11b8bc71c1e9cbbf992ee3b7c1c9aae6e6f697e0
Requires: libosmo-netif I905adb2d6191216551a3bcdcd1aec1f96f01612a
Related: SYS#2655
2019-02-21 10:29:48 +01:00
Max 9a852f2dd8 Add OpenVPN probe
This adds support for OpenVPN status probe which uses OpenVPN's
management interface (configured via 'management 127.0.0.1 1234' in
OpenVPN's config).

The output looks as follows:
...
  OpenVPN
    127.0.0.1:1234
      status: CONNECTED
      tunnel: 10.8.0.15
      remote: 144.76.43.77:1194
    localhost:4242
      status: management interface incompatible
    127.0.0.1:4444
      status: management interface unavailable
...

We show tunnel's IP (if available) as well as remote (OpenVPN server
itself) address/port in addition to general connection status. If
management interface is unavailable it's reported as such. If we've
managed to establish connection with a given management interface but
are unable to obtain expected information than we report this
incompatibility as well.

Related: SYS#2655
Change-Id: I4493e19b9a09dcebd289457eacd1719f7f8cc31c
2019-02-07 17:38:19 +01:00
Max 5d42b8ec98 Introduce generic host config and related helpers
Add generic host config struct and related helpers for TCP-based probes
and use them for ctrl probe.

This will be used in follow-up patch for OpenVPN probe as well.

Change-Id: Ie321655a92cdbefbfaa056ac0d583397c83beccb
2019-02-07 17:33:45 +01:00
Max 9ce5bf90bb ctrl: log host/port on errors
In case of multiple ctrl-client entries in .cfg file it's impossible to
see which one is causing particular ctrl error. Fix this by introducing
macro wrapper for stderr logging which always show host:port relevant to
the error.

Change-Id: I788d51359965a66c54075a3971aa7824c3bfb0bf
Related: SYS#2655
2019-02-06 10:10:45 +00:00
Max ada0d1a481 Install signal handlers before processing config
It's easier to troubleshoot vty-related issues when we can send signals
to obtain talloc report.

Change-Id: I6dd1ad55a227db08595d844008be86f648fa92c1
2019-02-06 08:10:05 +00:00
Max 14474d3c66 jenkins.sh: remove obsolete comments
Change-Id: Ia2b3769811e9409d99f3698c490f6e3abe6a3c12
2019-01-31 16:08:12 +01:00
Max 8066a41e78 Add ping probe support
Use liboping (new dependency) to add 'ping XXX' entries support in .cfg
file, where XXX can be either IP address or FQDN.

Sample output:
...
  ping
    ya.ru
      IP: 2a02:6b8::2:242
      dropped: 3/3
    8.8.8.8
      IP: 8.8.8.8
      dropped: 0/3
      latency: 20.4 ms
      TTL: 120
...

N. B: to gather actual ping statistic we have to be able to send ICMP
requests (have enough privileges to work with RAW sockets).

Related: SYS#2655
Change-Id: Ife32540b532fb54368f63c78fb7837b84d4e8c76
2019-01-31 10:19:44 +01:00
Max 65d937c45c Update Makefile.am
The simple_ctrl.c is used by 2 independent binaries. Let's build it as a
convenience libtool library [1] to make it easier to add further
external dependencies in future.

While at it, also move osmo-sysmon dependencies to program-specific
_CFLAGS from generic one.

[1] https://www.gnu.org/software/automake/manual/html_node/Libtool-Convenience-Libraries.html

Change-Id: Idfaba17b54983709278e1c24bf55edbbb4abd961
2019-01-30 12:28:17 +00:00
Max 18428bb4cf ctrl: separate config structure
Moving configuration data from anonymous struct into shared header as a
preparation for ctrl logging improvements in follow-up patches.

Change-Id: I3520e14ca6e1b8e270dbd4b1bf2378fe486991ce
Related: SYS#2655
2019-01-28 16:12:04 +01:00
Max f41973eeb2 Drop unused parameter
value_node_add() ignores it's first argument - let's drop it to make
code more compact.

Change-Id: I17c2fed4049e1c83307feda001aefc006dfbe6a3
2019-01-27 02:40:15 +01:00
Max 4618c73f2b Move shared libs into common LDADD
Change-Id: I8b2f2cd60426cf3b52dd463959a48fd7619cfcce
2018-12-20 15:51:11 +01:00
Pau Espin 3b25774db5 Merge "Add cmdline option parsing support" 2018-12-13 14:33:22 +00:00
Harald Welte e649fb2d75 Merge "Move source code to src subdir" 2018-12-13 13:45:02 +00:00
Pau Espin ae25399f75 Add cmdline option parsing support
Change-Id: I742974bd1440b09b49d26703c13361dd1c41008b
2018-12-12 19:37:02 +01:00
Pau Espin 2768f95086 Move source code to src subdir
Change-Id: I1aa2893e2b274f8d087a0d2f126486cd4afcbdfe
2018-12-12 19:19:14 +01:00
Pau Espin a3e43220f3 Add m4 missing files to fix build
Same files are available in other osmocom projects, otherwise configure
fails with "Please install autoconf-archive; re-run 'autoreconf -fi' for
it to take effect.".

Change-Id: Iabe3207fff8f076a3f4ddc81720bb7fdc671a46c
2018-12-12 19:08:32 +01:00
Harald Welte 09cf201097 Merge "Add OpenVPN status helper example from corresponding ticket" 2018-12-08 19:41:11 +00:00
Stefan Sperling 908d3cc921 fix file descriptor leak in osysmon_file_read
Don't forget to close the file which was opened at the
beginning of this function's scope. Found by Coverity.

Change-Id: Ie1b5734748438c6d785cd96dfa9af6303cd102da
Related: CID#189756
2018-11-27 15:59:46 +01:00
Max 1db6d00628 Add OpenVPN status helper example from corresponding ticket
Change-Id: I912d943cdc7024e3ddd92e0a122ac2dd4fbf0a18
Related: SYS#2655
2018-11-22 18:40:11 +01:00
Max ac0061a30f Expand default config
* add file watcher example
* add more ctrl variables

Change-Id: I25ed3936ddaae8452ba9dde325cb3e822b739def
Related: SYS#2655
2018-11-22 18:18:24 +01:00
Max bf35719529 Update default config
Rename default config to match the binary name and add config exampe.

Change-Id: Iabfc78c95e904af7372f10c195b2b979675d34f3
Related: SYS#2655
2018-11-22 14:00:14 +01:00
Max 77be9ca058 Report config file name on error
Change-Id: If3f97452e4defb5c8dd540dd75045d37824fb305
2018-11-22 13:29:25 +01:00
Max 8ccc930cc8 Update gitignore
Change-Id: I2e63890653240b641b3c8b4b92b76b3833667ff3
2018-11-22 13:27:17 +01:00
Max 5452bd743e Add git-review config
Change-Id: Ie49cfcf38cc28a42c97eb4119231d8d885443a26
2018-11-22 13:24:56 +01:00
Daniel Willmann d5f0046ff5 git-version-gen: Don't check for .git directory
This check is not in all our repos that use git-version-gen. Indeed it
seems to be a leftover of openbsc where I think it wanted to ensure
being called in the openbsc subfolder or something? libosmocore e.g.
doesn't have it.

In any case .git being a directory is not always true (if using git
worktree) so remove this check.

Change-Id: I414111b27db9951314e6bc7eff8bc1f10775b3ff
2018-07-24 17:58:24 +02:00
Martin Hauke d0980be2ec Makefile.am: Fix typo
Change-Id: I392cf453087230d848bafe959544646e68df8070
2018-06-05 20:57:32 +02:00
Daniel Willmann 1c2ef1ab69 Disconnect properly on errors so we can reconnect
Change-Id: Id134be34a24e91a4c0b8a8d11cf4df9593dae687
2018-06-05 19:15:47 +02:00
Daniel Willmann 9b2d511813 Add zero termination char to received ctrl cmd message
The terminating NULL byte is not part of the ctrl message, so add it
afterwards.

Change-Id: Ieaa9b3e2516d301ba45b6f3ec61870e928ed0cc6
2018-06-05 19:15:47 +02:00
Daniel Willmann 046ccf4a0a Remove unused last_value handling code
Change-Id: I14cc5883af8ae73bc462ed714ef38c8ee1444cc6
2018-06-05 19:15:47 +02:00
Harald Welte 6fded67085 add contrib/jenkins.sh for build verification
Change-Id: Ic037ad0bdeab7140e53ed35da7e20eab84ecb429
2018-06-05 19:11:24 +02:00
Harald Welte 47fb3838ef simple_ctrl: Check for NULL return of simple_ctrl_xceive
Change-Id: Ice1e0b9819d8e24770bc57295dd1455f38c37bd5
2018-06-05 19:11:24 +02:00
Harald Welte 6ccc80c0d5 Merge "Remove unused function" 2018-06-05 17:05:26 +00:00
Daniel Willmann 2063af4c91 Fix compilation issue on my machine, remove unused include
Change-Id: Id4042804e3c490daa61bf6ec06c13838d68d2f68
2018-06-05 18:50:08 +02:00
Daniel Willmann f6ba8a3e89 Remove unused function
Change-Id: I0b5d59bf3c98d1199e710eec310d041fa15994b9
2018-06-05 15:27:18 +02:00