openssl 1.1.0 is not API backward compatible with 1.0.0, and vermont
will not compile with the newer version.
The cmake find_package macro has no way to specify a maximum version
so check it explicitly.
CMake not only checks if the header exists, but tries to include and
compile it, which fails with linux/if.h since it needs another header
which it does not include itself.
Manually include it as a CFLAG in the CHECK_INCLUDE_FILE call to fix
it.
The Linux kernel in the past couple of years has gained support for
Virtual Routing and Forwarding:
https://www.kernel.org/doc/Documentation/networking/vrf.txt
The SO_BINDTODEVICE socket option can be used to specify a particular
VRF other than the default.
Add support in ipfixlolib and in the configuration for the exporters.
Add new CLI options to support logging to Syslog and journald.
journald support is also behind a new CMake flag, SUPPORT_JOURNALD,
since it adds a dependency on libsystemd-journal.
Add --quiet, which will disable output to STDOUT/STDERR. Useful
when logging directly to the above mentioned loggers.
Add --log-level, to allow for mix and match log levels, for example
only warning and critical can be enabled together.
New usage output:
VERsatile MONitoring Tool - VERMONT
MANDATORY OPTIONS:
-f, --config-file FILE Use configuration file
OTHER OPTIONS:
-h, --help Display this help and exit
-d, --debug Log verbosity: -d NOTICE, -dd INFO,
-ddd DEBUG
-l, --log-level LEVEL Log level. Can be specified multiple
times and mix-matched.
In increasing order:
debug
info
notice
warning
error
critical
Default: critical, warning, error
-q, --quiet Do not write output to console
-b, --daemon Run in daemon mode (implies -q)
-p, --pid-file FILE Set process id filename (use with -d)
-u, --user USER Change user to USER (use with -d)
-g, --group GROUP Change group to GROUP (use with -d)
-s, --syslog Log to syslog
-j, --journald Log to journald
Calling connect on a UDP socket will fail if there are no interfaces
available, and the exporter module will be left in an errored state and
will not recover. Add an option to disable the connect call at build
time, and also change from using writev to sendmsg for UDP sockets
(functionality is equivalent, and resulting system calls are similar
too).
Add support to receive Ipfix/Netflow payloads over a ZMQ connection.
The support is optional and disabled by default. If enabled, adds
a build dependency on libczmq. CZMQ is a high-level API that builds
on libzmq, and exposes easy and nice to use APIs to communicate using
the ZeroMQ protocol.
For more information about ZeroMQ, please see:
http://zeromq.org/https://github.com/zeromq/czmq
Pulled in the needed cmake modules from rpavlik/cmake-modules and added
targets for all libraries.
Should be useful for developers looking for potential problems.
A built types now have strict default compiler flags.
The default built type is set to 'Release' that build with -O3
To build an others type use something like 'cmake
-DCMAKE_BUILD_TYPE=Debug'. As such the debug option that abuses
add_definition() is no longer needed.
src/tests was already recursively added as a subdir and CMP0013 was
complaining. The test executables are always built, though they are not
executed by any rule. This really should be fixed.
Description:
- cmake -DSUPPORT_POSTGRESQL=ON fails on Linux distributions based on Ubuntu 14.04
Solution:
- Add in CMakeLists.txt:304 the following sentence:
set(PostgreSQL_ADDITIONAL_SEARCH_PATHS "/usr/include/postgresql/9.3/server")
Reference:
- https://bugs.launchpad.net/ubuntu/+source/cmake/+bug/1317135 find_package fails on PostgreSQL in 14.04
Make install referred to an old xsd configuration file that used
to be included into vermont. However, it has been removed some
years ago. This commit fixes the install routine by no longer
referencing the xsd for the install target
fixes#16
Previous versions of VERMONT required a proper compile time option
that tells VERMONT about the size of the layer 2 headers.
This means that VERMONT needed to be recompiled if it was
compiled with the default option and needed to be run on ethernet
traffic with VLAN tags.
The current commit enables dynamic detection of the pcap link type
(Ethernet, BSD loopback, ...) and adopts the IP header offset
accordingly.
Furthermore, the code checks for ethernet VLAN tags for each
packet. This allows to analyze traffic that mixes VLAN-tagged
and untagged traffic.
hiredis is the official c client for the redis db. It is
needed to create an Redis IPFIX exorter that can directly write
to the flow-inspector (https://github.com/constcast/flow-inspector)
input queue.
In CMake scripts, do not skip the check for mongodb even if
library and include directories are already cached.
Signed-off-by: Luca Bruno <lucab@debian.org>