--- /dev/null
+requires:
+ features:
+ - HAVE_LIBJANSSON
+ min-version: 7
+
+checks:
+ - filter:
+ count: 1
+ match:
+ event_type: flow
+ spi: 123
+ src_ip: 190.0.0.1
+ dest_ip: 190.0.0.2
+ flow.pkts_toserver: 2
+ flow.pkts_toclient: 0
+ - filter:
+ count: 1
+ match:
+ event_type: netflow
+ spi: 123
+ src_ip: 190.0.0.1
+ dest_ip: 190.0.0.2
+ netflow.pkts: 2
+ - filter:
+ count: 1
+ match:
+ event_type: flow
+ spi: 321
+ src_ip: 190.0.0.1
+ dest_ip: 190.0.0.2
+ flow.pkts_toserver: 2
+ flow.pkts_toclient: 0
+ - filter:
+ count: 1
+ match:
+ event_type: netflow
+ spi: 321
+ src_ip: 190.0.0.1
+ dest_ip: 190.0.0.2
+ netflow.pkts: 2
+ - filter:
+ count: 1
+ match:
+ event_type: flow
+ spi: 123
+ src_ip: 190.0.0.1
+ dest_ip: 190.0.0.3
+ flow.pkts_toserver: 2
+ flow.pkts_toclient: 0
+ - filter:
+ count: 1
+ match:
+ event_type: netflow
+ spi: 123
+ src_ip: 190.0.0.1
+ dest_ip: 190.0.0.3
+ netflow.pkts: 2
+ - filter:
+ count: 1
+ match:
+ event_type: flow
+ spi: 123
+ src_ip: 0000:0000:0000:0000:0000:0000:0000:0001
+ dest_ip: 0000:0000:0000:0000:0000:0000:0000:0002
+ flow.pkts_toserver: 2
+ flow.pkts_toclient: 0
+ - filter:
+ count: 1
+ match:
+ event_type: netflow
+ spi: 123
+ src_ip: 0000:0000:0000:0000:0000:0000:0000:0001
+ dest_ip: 0000:0000:0000:0000:0000:0000:0000:0002
+ netflow.pkts: 2
--- /dev/null
+#!/usr/bin/env python
+from scapy.all import *
+import struct
+
+pkts = []
+
+# First flow
+pkts += Ether()/ \
+ IP(src='190.0.0.1', dst='190.0.0.2')/ \
+ ESP(spi=123, seq=1)
+pkts += Ether()/ \
+ IP(src='190.0.0.1', dst='190.0.0.2')/ \
+ ESP(spi=123, seq=2)
+
+# Second flow
+# Same src/dst, diffrent SPI
+pkts += Ether()/ \
+ IP(src='190.0.0.1', dst='190.0.0.2')/ \
+ ESP(spi=321, seq=1)
+pkts += Ether()/ \
+ IP(src='190.0.0.1', dst='190.0.0.2')/ \
+ ESP(spi=321, seq=2)
+
+# Third flow
+# Same SPI, different dst
+pkts += Ether()/ \
+ IP(src='190.0.0.1', dst='190.0.0.3')/ \
+ ESP(spi=123, seq=1)
+pkts += Ether()/ \
+ IP(src='190.0.0.1', dst='190.0.0.3')/ \
+ ESP(spi=123, seq=2)
+
+# Fourth flow
+# IPv6
+pkts += Ether()/ \
+ IPv6(src='::1', dst='::2')/ \
+ ESP(spi=123, seq=1)
+pkts += Ether()/ \
+ IPv6(src='::1', dst='::2')/ \
+ ESP(spi=123, seq=2)
+
+wrpcap('input.pcap', pkts)