Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
331dcb4
Remove ChangeLog
SiskaPavel Mar 3, 2025
5b36a19
Remove NEWS
SiskaPavel Mar 3, 2025
bf6f5bc
Remove autoconf files
SiskaPavel Mar 3, 2025
8606719
Remove ipfixprobe spec file
SiskaPavel Mar 3, 2025
79c50de
.gitignore - update ignored directories
SiskaPavel Mar 3, 2025
d7b8516
Update LICENSE
SiskaPavel Mar 3, 2025
40d3670
Create new directory structure
SiskaPavel Mar 3, 2025
29998fe
.clang-format - update format rules
SiskaPavel Mar 3, 2025
0b17c87
.clang-tidy - add clang-tidy configuration
SiskaPavel Mar 3, 2025
dcbfb0e
CMake - introduce initial build configuration
SiskaPavel Mar 3, 2025
83891be
Remove #include <config.h>
SiskaPavel Mar 3, 2025
38fa976
CMake - introduce directory for external libraries
SiskaPavel Mar 3, 2025
cb72a62
CMake - introduce telemetry library
SiskaPavel Mar 3, 2025
fc2aa56
CMake - introduce dependency on libatomic
SiskaPavel Mar 3, 2025
b83c324
CMake - introduce dependency on libunwind
SiskaPavel Mar 3, 2025
b75d567
CMake - introduce CMakeLists for ipfixprobe core
SiskaPavel Mar 3, 2025
c6020c8
ipfixprobe - remove input benchmark plugin
SiskaPavel Mar 3, 2025
62c1159
ipfixprobe - remove input stem plugin
SiskaPavel Mar 3, 2025
28d3c6e
ipfixprobe - remove process flexprobe plugin
SiskaPavel Mar 3, 2025
4a65d48
ipfixprobe - introduce pluginFactory
SiskaPavel Mar 3, 2025
4bb1a30
Makefile - introduce initial Makefile
SiskaPavel Mar 3, 2025
57a4823
Makefile - introduce format and tidy target
SiskaPavel Mar 3, 2025
b9434fc
Reformat whole repository using clang-format
SiskaPavel Mar 3, 2025
ceded8c
ipfixprobe - introduce API function
SiskaPavel Mar 4, 2025
5e51e58
Mark IpfixBasicList as visible
Mar 19, 2025
c5b1639
ipfixprobe - refactor InputPlugin
SiskaPavel Mar 4, 2025
3fe5d24
ipfixprobe - refactor StoragePlugin
SiskaPavel Mar 4, 2025
1298075
ipfixprobe - introduce packet parser
SiskaPavel Mar 4, 2025
b8f6ed2
ipfixprobe - introduce input PCAP plugin
SiskaPavel Mar 4, 2025
76bc6f3
ipfixprobe - introduce input RAW plugin
SiskaPavel Mar 4, 2025
7bf48f7
ipfixprobe - refactor OutputPlugin
SiskaPavel Mar 4, 2025
f337ee7
ipfixprobe - refactor ProcessPlugin
SiskaPavel Mar 4, 2025
32946b6
ipfixprobe - mark OptionsParser class as visible
SiskaPavel Mar 4, 2025
6b8b65e
ipfixprobe - refactor PluginManager
SiskaPavel Mar 4, 2025
e945e60
ipfixprobe - introduce output TEXT plugin
Mar 17, 2025
ef2fc7a
ipfixprobe - introduce process BASICPLUS plugin
Mar 17, 2025
264a9a5
ipfixprobe - fix visibility of ipx_ring
Mar 17, 2025
8fa7b5c
ipfixprobe - introduce storage CACHE plugin
Mar 17, 2025
e98641c
ipfixprobe - introduce input DPDK plugin
Mar 18, 2025
b1feb5d
ipfixprobe - introduce input NFB plugin
Mar 18, 2025
a1d74d2
ipfixprobe - introduce output IPFIX plugin
Mar 19, 2025
f3e5e2e
ipfixprobe - introduce output UNIREC plugin
Mar 19, 2025
a939736
ipfixprobe - introduce process BSTATS plugin
Mar 19, 2025
f657253
ipfixprobe - introduce process ICMP plugin
Mar 19, 2025
4d65aa2
ipfixprobe - introduce process VLAN plugin
Mar 19, 2025
8252fd2
ipfixprobe - introduce process FLOW HASH plugin
Mar 19, 2025
91d5d2d
ipfixprobe - introduce process OSQUERY plugin
Mar 19, 2025
141c260
ipfixprobe - introduce process IDPCONTENT plugin
Mar 19, 2025
210917d
ipfixprobe - introduce process PHISTS plugin
Mar 19, 2025
4ee3d54
ipfixprobe - introduce process PSTATS plugin
Mar 19, 2025
1b60b9c
ipfixprobe - introduce process SIP plugin
Mar 19, 2025
b078c98
ipfixprobe - introduce process OVPN plugin
Mar 19, 2025
9fa3f8d
ipfixprobe - remove STATS process plugin
Mar 19, 2025
cbc49bd
ipfixprobe - introduce process SSDP plugin
Mar 19, 2025
2870c2e
ipfixprobe - introduce process SSADETECTOR plugin
Mar 19, 2025
cf6bf05
ipfixprobe - introduce process MQTT plugin
Mar 19, 2025
4cf7c74
ipfixprobe - introduce process DNS plugin
Mar 19, 2025
756b17b
ipfixprobe - introduce process DNSSD plugin
Mar 19, 2025
47b8507
ipfixprobe - introduce process NETBIOS plugin
Mar 19, 2025
2bff17f
ipfixprobe - introduce process PASSIVEDNS plugin
Mar 19, 2025
191e6ba
ipfixprobe - introduce process SMTP plugin
Mar 19, 2025
68c52a7
ipfixprobe - introduce process common
Mar 19, 2025
47495d9
ipfixprobe - introduce process QUIC plugin
Mar 19, 2025
e50f571
ipfixprobe - introduce process TLS plugin
Mar 19, 2025
2330a21
ipfixprobe - introduce process RTSP plugin
Mar 19, 2025
cae47fc
ipfixprobe - introduce process MPLS plugin
Mar 19, 2025
7f23373
ipfixprobe - introduce process WIREGUARD plugin
Mar 19, 2025
8e10f53
ipfixprobe - introduce process HTTP plugin
Mar 19, 2025
e3eea25
ipfixprobe - introduce process NTP plugin
Mar 19, 2025
73c6d9b
ipfixprobe - introduce process NETTISA plugin
Mar 19, 2025
2dd2be2
ipfixprobe - remove create process plugin script
Mar 19, 2025
72f02ae
ipfixprobe - refactor ipfixprobe and workers
Mar 19, 2025
d973c5c
ipfixprobe - add option -L PATH to specify plugins path
Mar 21, 2025
941b332
CMake: introduce support for building .tar.gz and .rpm packages
Mar 20, 2025
d5c8368
CMake: add option to build ipfixprobe with miliseconds timestamp prec…
Mar 20, 2025
c5611b5
CMake: add option to build with NEMEA
Mar 20, 2025
6bec741
Remove unit tests
Mar 20, 2025
44dc3a4
Refactor functional tests
Mar 20, 2025
f73fc38
CI: remove old workflows
Mar 21, 2025
75719f6
Remove .travis.yml
Mar 21, 2025
67d61f6
Github-actions: add composite install dependencies action
Mar 21, 2025
a65fbcb
Github-actions: add check workflow
Mar 21, 2025
2845576
Github-actions: add build workflow
Mar 22, 2025
91ac865
Github-actions: add tests workflow
Mar 22, 2025
fe224dc
Github-actions: add rpm-build workflow
Mar 25, 2025
4de409b
Github-actions: add rpm-install workflow
Mar 25, 2025
e69336c
Github-actions: add ciEntryPoint workflow
Mar 21, 2025
a579c66
CMake: add init directory to CMake and spec file
Mar 23, 2025
1a80553
ipfixprobe: register process plugin ID at runtime
Mar 23, 2025
5a30593
.editordonfig: Add editorconfig config file
Mar 24, 2025
aaff919
editorconfig - fix editor config warnings
Mar 25, 2025
b59e22b
CMake: introduce rpm-msec and rpm-nemea target
Mar 25, 2025
2937ff3
ipfixprobe - remove flexprobe ipfix elements
Mar 25, 2025
e0affe0
Dockerfile: update ipfixprobe packages
Mar 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
15 changes: 13 additions & 2 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ AlwaysBreakBeforeMultilineStrings: true
AlignAfterOpenBracket: AlwaysBreak
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortIfStatementsOnASingleLine: Never
AllowShortFunctionsOnASingleLine: Inline
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
Expand All @@ -23,6 +24,16 @@ SpaceAfterTemplateKeyword: false
SpaceInEmptyBlock: false
SpacesInContainerLiterals: false
PointerAlignment: Left
UseTab: false
IndentWidth: 4
TabWidth: '4'
UseTab: ForContinuationAndIndentation

SortIncludes: true
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^"(.*)"$'
Priority: 1
- Regex: '^<[^>]*\.(h|hpp)>$'
Priority: 3
- Regex: '^<.*>$'
Priority: 2
...
75 changes: 75 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
Checks: '
-*,
bugprone-*,
clang-analyzer-*,
clang-diagnostic-*,
concurrency-mt-unsafe,
cppcoreguidelines-no-malloc,
misc-*,
modernize-*,
performance-*,
readability-*,
-misc-include-cleaner,
-misc-new-delete-overloads,
-misc-no-recursion,
-misc-use-anonymous-namespace,
-modernize-use-trailing-return-type,
-modernize-use-nodiscard,
-modernize-avoid-c-arrays,
-bugprone-easily-swappable-parameters,
-bugprone-multi-level-implicit-pointer-conversion,
-performance-enum-size,
-readability-avoid-nested-conditional-operator'
FormatStyle: file
WarningsAsErrors: '*'

CheckOptions:
- key: readability-identifier-naming.ClassCase
value: 'CamelCase'
- key: readability-identifier-naming.ClassConstantCase
value: 'UPPER_CASE'
- key: readability-identifier-naming.ClassMemberCase
value: 'camelBack'
- key: readability-identifier-naming.ClassMemberPrefix
value: 's_'
- key: readability-identifier-naming.ClassMethodCase
value: 'camelBack'
- key: readability-identifier-naming.ConstantMemberCase
value: 'UPPER_CASE'
- key: readability-identifier-naming.EnumConstantCase
value: 'UPPER_CASE'
- key: readability-identifier-naming.FunctionCase
value: 'camelBack'
- key: readability-identifier-naming.GlobalVariablePrefix
value: 'g_'
- key: readability-identifier-naming.GlobalConstantPrefix
value: ''
- key: readability-identifier-naming.MacroDefinitionCase
value: 'UPPER_CASE'
- key: readability-identifier-naming.MemberCase
value: 'camelBack'
- key: readability-identifier-naming.NamespaceCase
value: 'lower_case'
- key: readability-identifier-naming.ParameterCase
value: 'camelBack'
- key: readability-identifier-naming.PrivateMemberPrefix
value: 'm_'
- key: readability-identifier-naming.ProtectedMemberPrefix
value: 'm_'
- key: readability-identifier-naming.StructCase
value: 'CamelCase'
- key: readability-identifier-naming.TypeAliasCase
value: 'CamelCase'
- key: readability-identifier-naming.TypeAliasIgnoredRegexp
value: '^.*_type$|^.*_category$|^.*reference$|^.*iterator$|^.*pointer$'
- key: readability-identifier-naming.VariableCase
value: 'camelBack'

- key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
value: True
- key: readability-magic-numbers.IgnorePowersOf2IntegerValues
value: True
- key: readability-magic-numbers.IgnoredIntegerValues
value: '0;1;2;3;4;255;65535;4294967295'
...
17 changes: 17 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
root = true

[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8

[Makefile]
indent_style = tab

[{CMakeLists.txt,*.cmake}]
indent_style = tab

[*.{yaml,yml}]
indent_style = space
indent_size = 2
83 changes: 83 additions & 0 deletions .github/actions/install-dependencies/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: 'Install Dependencies'
description: 'Install required dependencies in container'

inputs:
clang-tools:
description: 'Install clang & clang-tools-extra'
required: false
default: false

pcap:
description: 'Install libpcap-devel'
required: false
default: false

nfb:
description: 'Install nfb-framework dependencies'
required: false
default: false

dpdk:
description: 'Install DPDK dependencies'
required: false
default: false

nemea:
description: 'Install NEMEA dependencies'
required: false
default: false

tests:
description: 'Install dependencies for tests'
required: false
default: false

runs:
using: 'composite'
steps:
- name: Install build dependencies
shell: bash
run: |
dnf config-manager --set-enabled ol9_codeready_builder
dnf install -y dnf-plugins-core epel-release
dnf install -y make gcc-c++ cmake3 git rpm-build
dnf install -y fuse3-devel openssl-devel gcc-toolset-14-libatomic-devel libunwind-devel lz4-devel

- name: Install clang tools
if: ${{ inputs.clang-tools == 'true' }}
shell: bash
run: |
dnf install -y clang clang-tools-extra

- name: Install libpcap-devel
if: ${{ inputs.pcap == 'true' }}
shell: bash
run: |
dnf install -y libpcap-devel

- name: Install nfb-framework dependencies
if: ${{ inputs.nfb == 'true' }}
shell: bash
run: |
dnf copr enable @CESNET/nfb-framework
dnf install -y nfb-framework numactl-devel

- name: Install DPDK dependencies
if: ${{ inputs.dpdk == 'true' }}
shell: bash
run: |
dnf install -y dpdk-devel

- name: Install NEMEA dependencies
if: ${{ inputs.nemea == 'true' }}
shell: bash
run: |
dnf copr enable @CESNET/NEMEA-stable
dnf install -y nemea-framework-devel

- name: Install dependencies for tests
if: ${{ inputs.tests == 'true' }}
shell: bash
run: |
dnf copr enable @CESNET/NEMEA-stable
dnf install -y nemea-modules
34 changes: 34 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: build

on:
workflow_call:
inputs:
os:
required: true
type: string

jobs:
build:
runs-on: ubuntu-latest
container: ${{ inputs.os }}
steps:
- name: Install git
run: dnf install -y git
- name: Check out repository code
uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/actions/install-dependencies
with:
pcap: true
dpdk: true
nfb: true
- name: Mark github workspace as safe
run: git config --system --add safe.directory $PWD
- name: Create build directory
run: mkdir build
- name: Configure CMake
run: |
cd build
cmake3 .. -DCMAKE_BUILD_TYPE=Debug -DENABLE_INPUT_PCAP=ON -DENABLE_INPUT_DPDK=ON -DENABLE_INPUT_NFB=ON -DENABLE_PROCESS_EXPERIMENTAL=ON
- name: make
run: make
46 changes: 0 additions & 46 deletions .github/workflows/c-cpp.yml

This file was deleted.

27 changes: 27 additions & 0 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: check

on: [workflow_call]

jobs:
clang-checks:
runs-on: ubuntu-latest
container: oraclelinux:9
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/actions/install-dependencies
with:
clang-tools: true
pcap: true
- name: make format-check
run: make format

editor-config:
runs-on: ubuntu-latest
container: mstruebing/editorconfig-checker
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Check editorconfig
run: ec --exclude .git --exclude tests/functional/inputs
56 changes: 56 additions & 0 deletions .github/workflows/ciEntryPoint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Continuous Integration pipeline

on: push

jobs:
check:
uses: ./.github/workflows/check.yml
build-os-matrix:
needs: check
runs-on: ubuntu-latest
outputs:
os: ${{ steps.os.outputs.os }}
steps:
- name: Build OS Array
id: os
run: |
osArray=()
osArray+=("oraclelinux:9")
osArray=$(jq --compact-output --null-input '$ARGS.positional' --args -- "${osArray[@]}")
echo "Updated os list: $osArray"
echo "os=$osArray" >> $GITHUB_OUTPUT
build:
needs: [build-os-matrix]
strategy:
matrix:
os: ${{ fromJSON(needs.build-os-matrix.outputs.os) }}
uses: ./.github/workflows/build.yml
with:
os: ${{ matrix.os }}

make-tests:
needs: [build-os-matrix]
strategy:
matrix:
os: ${{ fromJSON(needs.build-os-matrix.outputs.os) }}
uses: ./.github/workflows/tests.yml
with:
os: ${{ matrix.os }}

rpm-build:
needs: [build-os-matrix]
strategy:
matrix:
os: ${{ fromJSON(needs.build-os-matrix.outputs.os) }}
uses: ./.github/workflows/rpm-build.yml
with:
os: ${{ matrix.os }}

rpm-install:
needs: [build-os-matrix, rpm-build]
strategy:
matrix:
os: ${{ fromJSON(needs.build-os-matrix.outputs.os) }}
uses: ./.github/workflows/rpm-install.yml
with:
os: ${{ matrix.os }}
Loading