Skip to content

Commit 0207db4

Browse files
author
Pavel Siska
committed
ipfixprobed: Add example YAML configuration
1 parent 75b931e commit 0207db4

File tree

5 files changed

+105
-0
lines changed

5 files changed

+105
-0
lines changed

init/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
install(FILES
2+
link0.conf.example
23
DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/ipfixprobe
34
)
45

init/link0.conf.example

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Input plugin configuration (input_plugin)
2+
input_plugin:
3+
# IMPORTANT: Only one input plugin can be specified. Choose one of the following options:
4+
# raw, pcap_file, pcap_live, ndp, dpdk_ring, or dpdk.
5+
6+
raw:
7+
interface: eth0 # Network interface name to capture traffic from [required]
8+
blocks_count: 2048 # Number of blocks in the circular buffer (must be a power of 2)
9+
packets_in_block: 32 # Number of packets per block (must be a power of 2)
10+
11+
pcap_file:
12+
file: /path/to/pcap/file.pcap # Path to the PCAP file to read from [required]
13+
bpf_filter: null # Optional BPF filter (e.g., "port 80"), null = no filter
14+
15+
pcap_live:
16+
interface: eth0 # Network interface for live packet capture [required]
17+
bpf_filter: null # Optional BPF filter (null = no filter)
18+
snap_length: 65535 # Maximum packet capture length
19+
20+
ndp:
21+
device: /dev/nfb0 # Device for packet capture (e.g., /dev/nfb0) [required]
22+
queues: "0-15" # List of queue IDs (e.g., "0,1,2-3,7") [required]
23+
24+
dpdk_ring:
25+
ring_name: ring0 # Name of the shared DPDK ring buffer [required]
26+
eal_opts: null # EAL options (null = default options)
27+
burst_size: 64 # Number of packets processed in each burst (cycle)
28+
29+
dpdk:
30+
allowed_nics: "0000:00:00.0,0000:00:00.1" # List of allowed NICs (PCI addresses) [required]
31+
burst_size: 64 # Number of packets processed in each burst (cycle)
32+
mempool_size: 8192 # Size of the memory pool (must be a power of 2)
33+
rx_queues: 1 # Number of RX (receive) queues
34+
workers_cpu_list: [0] # List of CPU cores assigned to RX queues (must match rx_queues)
35+
eal_opts: null # EAL options (null = default options)
36+
mtu: null # Maximum Transmission Unit (defaults to RTE_ETHER_MAX_LEN)
37+
38+
# Storage configuration (storage)
39+
storage:
40+
cache:
41+
size_exponent: 20 # Cache size as a power of 2 (e.g., 2^20)
42+
line_size_exponent: 4 # Cache line size as a power of 2 (e.g., 2^4)
43+
timeouts:
44+
active: 65 # Active timeout duration (in seconds)
45+
inactive: 300 # Inactive timeout duration (in seconds)
46+
split_biflow: true # Whether to split biflow into uniflow (true/false)
47+
48+
fragmentation_cache:
49+
enabled: true # Enable fragmentation cache (true/false)
50+
size: 10007 # Fragmentation cache size (minimum 1)
51+
timeout: 3 # Timeout for fragments in the cache (in seconds)
52+
53+
# List of active process plugins (process_plugins)
54+
process_plugins:
55+
- http # HTTP protocol plugin
56+
- dns # DNS protocol plugin
57+
- quic # QUIC protocol plugin
58+
- tls # TLS protocol plugin
59+
# ...
60+
61+
# Output plugin configuration (output_plugin)
62+
output_plugin:
63+
# IMPORTANT: Only one output plugin can be specified. Choose one of the following options:
64+
# ipfix, unirec, or text.
65+
66+
ipfix:
67+
collector:
68+
host: localhost # IPFIX collector address [required]
69+
port: 4739 # IPFIX collector port [required]
70+
mtu: 1458 # Maximum size of IPFIX packets
71+
exporter:
72+
id: 0 # Exporter ID for IPFIX [required]
73+
dir: 0 # Direction bit field value (0 = incoming, 1 = outgoing)
74+
75+
protocol:
76+
# IMPORTANT: Only one protocol can be selected: udp or tcp.
77+
udp:
78+
template_refresh: 60 # Template refresh rate for UDP protocol (in seconds)
79+
tcp:
80+
non_blocking: false # Whether to use non-blocking TCP sockets (true/false)
81+
82+
compression:
83+
lz4:
84+
enabled: true # Enable LZ4 compression for IPFIX (true/false)
85+
buffer_size: 4500 # Buffer size for LZ4 compression (default: mtu * 3)
86+
87+
text:
88+
file: /path/to/output/file.txt # Path to output file (use null for stdout)
89+
90+
# Telemetry settings (telemetry)
91+
telemetry:
92+
appfs:
93+
enabled: true # Enable AppFS telemetry (true/false)
94+
mount_point: /var/run/ipfixprobe/ # Mount point for telemetry data storage
95+
96+
# General configuration (general)
97+
general:
98+
queues_size:
99+
input: 64 # Size of the input packet queue [required]
100+
output: 16536 # Size of the output packet queue [required]
101+
cpu_list: [] # List of CPUs used for running the main application

pkg/rpm/ipfixprobe-msec.spec.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ source /opt/rh/gcc-toolset-14/enable
9797

9898
%{_libdir}/ipfixprobe/schema.json
9999
%{_libdir}/ipfixprobe/config2args.py
100+
%{_sysconfdir}/ipfixprobe/link0.conf.example
100101

101102
%{_unitdir}/ipfixprobe-monitoring.target
102103
%{_unitdir}/[email protected]

pkg/rpm/ipfixprobe-nemea.spec.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ source /opt/rh/gcc-toolset-14/enable
113113

114114
%{_libdir}/ipfixprobe/schema.json
115115
%{_libdir}/ipfixprobe/config2args.py
116+
%{_sysconfdir}/ipfixprobe/link0.conf.example
116117

117118
%{_unitdir}/ipfixprobe-monitoring.target
118119
%{_unitdir}/[email protected]

pkg/rpm/ipfixprobe.spec.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ source /opt/rh/gcc-toolset-14/enable
142142

143143
%{_libdir}/ipfixprobe/schema.json
144144
%{_libdir}/ipfixprobe/config2args.py
145+
%{_sysconfdir}/ipfixprobe/link0.conf.example
145146

146147
%{_unitdir}/ipfixprobe-monitoring.target
147148
%{_unitdir}/[email protected]

0 commit comments

Comments
 (0)