sethhall / bro-myricom Goto Github PK
View Code? Open in Web Editor NEWBro plugin to receive packets through the Myricom Sniffer API
License: Other
Bro plugin to receive packets through the Myricom Sniffer API
License: Other
Please add compatibility with the Myricom Sniffer v5 drivers API...this would be amazing as it would bring in support for better Myricom cards (4 port cards etc.) which would be extremely beneficial to many people. Thank you!
Below is the link to where you can find the Myricom SNFv5 driver API reference guide and SNFv5 user guide assuming that might be helpful:
The tests run via bro-pkg install
fail because the version number referenced changed from 1.0 to 1.0.0:
[zeek@dumbledore ~]$ bro-pkg install bro-myricom
The following packages will be INSTALLED:
bro/sethhall/bro-myricom (1.0.4)
Proceed? [Y/n] y
Running unit tests for "bro/sethhall/bro-myricom"
[ 0%] myricom.show-plugin ... failed
% 'btest-diff output' failed unexpectedly (exit code 1)
% cat .diag
== File ===============================
Bro::Myricom - Packet acquisition via Myricom SNF v3+v4 (dynamic, version 1.0.0)
[Packet Source] MyricomReader (interface prefix "myricom"; supports live input)
[Constant] Myricom::snf_ring_size
[Constant] Myricom::snf_num_rings
[Constant] Myricom::snf_app_id
[Constant] Myricom::snf_aggregate
[Constant] Myricom::snf_rss_mode
[Type] Myricom::RssField
== Diff ===============================
--- /tmp/test-diff.448175.output.baseline.tmp 2019-01-08 01:55:03.133835830 +0000
+++ /tmp/test-diff.448175.output.tmp 2019-01-08 01:55:03.142835927 +0000
@@ -1,4 +1,4 @@
-Bro::Myricom - Packet acquisition via Myricom SNF v3+v4 (dynamic, version 1.0)
+Bro::Myricom - Packet acquisition via Myricom SNF v3+v4 (dynamic, version 1.0.0)
[Packet Source] MyricomReader (interface prefix "myricom"; supports live input)
[Constant] Myricom::snf_ring_size
[Constant] Myricom::snf_num_rings
=======================================
% cat .stderr
1 of 1 test failed
I think just changing the baseline in this file should solve this issue, but I'll let someone with more experience than myself make that call.
The configure script refers to bro-config, which fails.
Also, the iosource changes appear to break the build process :
bro-myricom/src/Plugin.cc:10:34: error: no type named 'PktSrcComponent' in namespace 'iosource'
AddComponent(new ::iosource::PktSrcComponent("MyricomReader", "myricom", ::iosource::PktSrcComponent::LIVE, ::iosource::pktsrc::MyricomSource::InstantiateM...
So, as I mentioned earlier today, the plugin wasn't working on our cluster, giving several errors like these in 'broctl diag':
error in /usr/local/bro/spool/installed-scripts-do-not-touch/auto/broctl-config.bro, line 18: "redef" used but not previously defined (Myricom::snf_ring_size)
internal warning in /usr/local/bro/spool/installed-scripts-do-not-touch/auto/broctl-config.bro, line 18: Can't document redef of Myricom::snf_ring_size, identifier lookup failed
Looking deeper, I found that "bro -N Bro::Myricom" was failing on the workers. I resolved this by installing bro-pkg and 'failing' to install the myricom plugin, but wasn't sure about what actually fixed the problem until I tried this:
Delete the .bro-pkg directory... the check fails.
[rootmd@bro-lbl3 ~bro]# rm -rf .bro-pkg/
[rootmd@bro-lbl3 ~bro]# su - bro
Last login: Mon Sep 18 15:58:18 PDT 2017 on pts/1
[bro@bro-lbl3 ~]$ bro -N Bro::Myricom
internal error: internal variable Myricom::snf_ring_size missing
Aborted
Attempt to install the plugin, but don't let it proceed after the test suite fails:
[bro@bro-lbl3 ~]$ bro-pkg refresh
Refresh package source: bro
No changes
Refresh installed packages
No new outdated packages
[bro@bro-lbl3 ~]$ bro-pkg install bro/sethhall/bro-myricom
The following packages will be INSTALLED:
bro/sethhall/bro-myricom (1.0.2)
Proceed? [Y/n] y
Running unit tests for "bro/sethhall/bro-myricom"
error: failed to run tests for bro/sethhall/bro-myricom: package build_command failed, see log in /home/bro/.bro-pkg/logs/bro-myricom-build.log
Proceed to install anyway? [Y/n] n
Abort.
[bro@bro-lbl3 ~]$ bro -N Bro::Myricom
internal error: internal variable Myricom::snf_ring_size missing
Aborted
[bro@bro-lbl3 ~]$ bro-pkg install bro/sethhall/bro-myricom
The following packages will be INSTALLED:
bro/sethhall/bro-myricom (1.0.2)
Proceed? [Y/n] y
Running unit tests for "bro/sethhall/bro-myricom"
error: failed to run tests for bro/sethhall/bro-myricom: package build_command failed, see log in /home/bro/.bro-pkg/logs/bro-myricom-build.log
Proceed to install anyway? [Y/n] y
Failed installing "bro/sethhall/bro-myricom": package build_command failed, see log in /home/bro/.bro-pkg/logs/bro-myricom-build.log
[bro@bro-lbl3 ~]$ bro -N Bro::Myricom
Bro::Myricom - Packet acquisition via Myricom SNF v3+v4 (dynamic, version 1.0)
Now it works.
Since #2 was merged there hasn't been a new release tagged and the latest(1.0.2) is missing that fix.
Using FreeBSD 10.3 and the myricom plugin. Myricom driver version : 3.0.12.50830 .
When I attempt "broctl stop" I frequently have to try several times as workers do not stop on the first attempt (or even 2nd, or 3rd attempt). The processes also don't respond to kill signals when I try to kill them directly. I am using the default ring size.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.