No description
Find a file
Arne Welzel c390c0203d iosource/Manager: Fix poll_interval updating using not-yet valid IsLive()
Testing io_poll_interval_live tweaks with @dopheide-esnet on a Myricom based
system to reduce CPU usage showed no visible effect.

It turns out, the pkt_src->IsLive() call used to update poll_interval is only
valid *after* calling ->Register() with the source. The conditional updating
of the poll_interval introduced in 4fa3e4b9b4
never worked out how it was intended to.

The fix ensures that

* we actually use a poll_interval of 10 in the live case
* changing io_poll_interval_live does have an effect

This is a bit of a major change due to lowering the default poll_interval
by a magnitude, but that seemed to have been the intention always. It's also
tunable via redef, so worst case it can be adapted via configuration.

As reference, with the default a Pcap::non_fd_timeout of 20usec *and* a
poll_interval of 100, theoretically we'd be trying to ask a non-selectable
packet source 500000 per second for a new packet. This is not a likely packet
rate that a single worker would currently observe or manage to process.
2023-04-06 11:44:50 +02:00
.github/workflows github: No more docker workflow 2023-02-01 08:52:05 +01:00
auxil Update gen-zam submodule for std::move warnings 2023-04-04 09:02:05 -07:00
ci ci/centos-stream-8: Add which command 2023-03-20 10:04:20 -07:00
cmake@23d5b121a1 Update cmake submodule [nomail] 2023-03-06 20:18:37 +01:00
doc@eb8b652cf2 Update doc submodule [nomail] [skip ci] 2023-04-04 00:20:19 +00:00
docker Configure apt to retry a few times on Docker image builder tasks 2023-02-27 14:29:56 -07:00
man Add documentation for GH-1829 2021-11-16 13:51:29 +00:00
scripts Merge remote-tracking branch 'origin/topic/vern/ZAM-Apr23-maint' 2023-04-03 13:33:09 +02:00
src iosource/Manager: Fix poll_interval updating using not-yet valid IsLive() 2023-04-06 11:44:50 +02:00
testing scan.l: Support @pragma, specifically push/pop ignore-deprecations 2023-04-05 10:24:30 +02:00
.cirrus.yml Update Cirrus memory limits to avoid timeouts when building 2023-03-29 17:17:47 -07:00
.clang-format Add pre-commit config. 2021-11-09 07:20:18 +01:00
.clang-tidy Disable annoying bugprone-easily-swappable-parameters clang-tidy check [skip ci] 2022-10-07 16:15:47 -07:00
.dockerignore Add .dockerignore to suppress btest artifacts 2021-09-24 17:04:26 -07:00
.git-blame-ignore-revs GH-1781: Add .git-blame-ignore-revs file 2021-11-02 16:06:36 -07:00
.gitattributes GH-1497: Support CRLF line-endings in Zeek scripts and signature files 2021-04-08 20:32:30 -07:00
.gitignore Cirrus configuration for Windows builds 2022-11-09 18:16:13 +02:00
.gitmodules Add libunistd submodule, needed by future MSVC work 2022-11-09 18:13:40 +02:00
.pre-commit-config.yaml Format Python scripts with yapf. 2021-11-24 23:13:24 +01:00
.style.yapf Format Python scripts with yapf. 2021-11-24 23:13:24 +01:00
.update-changes.cfg Add script to update external test repo commit pointers 2019-04-05 17:09:01 -07:00
CHANGES Merge remote-tracking branch 'origin/topic/awelzel/reporter-generic-message-deprecation' 2023-04-05 10:39:42 +02:00
CMakeLists.txt zeek-config: Move ZEEK_VERSION* out of zeek-config.h 2023-02-22 16:48:39 +01:00
configure Add configure option for preallocating PortVal objects 2023-03-15 10:12:32 -07:00
COPYING Update COPYING to 2023 2023-01-03 12:10:03 -07:00
COPYING-3rdparty Rename COPYING.3rdparty to COPYING-3rdparty 2023-01-03 12:10:03 -07:00
INSTALL Update documentation to include "Book of Zeek" revisions 2021-02-01 15:54:36 -08:00
Makefile Add zeek -V/--build-info 2023-02-13 12:23:29 +01:00
NEWS iosource/Manager: Fix poll_interval updating using not-yet valid IsLive() 2023-04-06 11:44:50 +02:00
README Add tooling section to README 2023-01-27 13:03:52 -07:00
README.md Add build status, slack, and discourse badges to readme 2023-02-27 15:25:36 -07:00
VERSION Merge remote-tracking branch 'origin/topic/awelzel/reporter-generic-message-deprecation' 2023-04-05 10:39:42 +02:00
zeek-config.h.in Add configure option for preallocating PortVal objects 2023-03-15 10:12:32 -07:00
zeek-config.in Provide infrastructure to migrate legacy analyzers to Spicy. 2023-02-01 11:33:48 +01:00
zeek-path-dev.in Compile Zeek with MSVC 2022-11-09 18:15:30 +02:00
zeek-version.h.in zeek-config: Move ZEEK_VERSION* out of zeek-config.h 2023-02-22 16:48:39 +01:00
zkg-config.in Add bin_dir setting for default zkg config file 2021-03-24 15:53:10 -07:00

Zeek Logo

The Zeek Network Security Monitor

A powerful framework for network traffic analysis and security monitoring.

Key FeaturesDocumentationGetting StartedDevelopmentLicense

Follow us on Twitter at @zeekurity.

Coverage Status Build Status

Slack Discourse

Key Features

  • In-depth Analysis Zeek ships with analyzers for many protocols, enabling high-level semantic analysis at the application layer.

  • Adaptable and Flexible Zeek's domain-specific scripting language enables site-specific monitoring policies and means that it is not restricted to any particular detection approach.

  • Efficient Zeek targets high-performance networks and is used operationally at a variety of large sites.

  • Highly Stateful Zeek keeps extensive application-layer state about the network it monitors and provides a high-level archive of a network's activity.

Getting Started

The best place to find information about getting started with Zeek is our web site www.zeek.org, specifically the documentation section there. On the web site you can also find downloads for stable releases, tutorials on getting Zeek set up, and many other useful resources.

You can find release notes in NEWS, and a complete record of all changes in CHANGES.

To work with the most recent code from the development branch of Zeek, clone the master git repository:

git clone --recursive https://github.com/zeek/zeek

With all dependencies in place, build and install:

./configure && make && sudo make install

Write your first Zeek script:

# File "hello.zeek"

event zeek_init()
    {
    print "Hello World!";
    }

And run it:

zeek hello.zeek

For learning more about the Zeek scripting language, try.zeek.org is a great resource.

Development

Zeek is developed on GitHub by its community. We welcome contributions. Working on an open source project like Zeek can be an incredibly rewarding experience and, packet by packet, makes the Internet a little safer. Today, as a result of countless contributions, Zeek is used operationally around the world by major companies and educational and scientific institutions alike for securing their cyber infrastructure.

If you're interested in getting involved, we collect feature requests and issues on GitHub here and you might find these to be a good place to get started. More information on Zeek's development can be found here, and information about its community and mailing lists (which are fairly active) can be found here.

License

Zeek comes with a BSD license, allowing for free use with virtually no restrictions. You can find it here.

Tooling

We use the following tooling to help discover issues to fix, amongst a number of others.