From dfa5db15fe0c2005176c6f81e3612f7806d3a2ad Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Mon, 29 Sep 2025 05:16:45 +0200 Subject: [PATCH] outlet/flow: add benchmark for bidir flows --- outlet/flow/decoder_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/outlet/flow/decoder_test.go b/outlet/flow/decoder_test.go index 9a4e951b..44b18a30 100644 --- a/outlet/flow/decoder_test.go +++ b/outlet/flow/decoder_test.go @@ -315,6 +315,32 @@ func BenchmarkDecodeNetFlow(b *testing.B) { } } +func BenchmarkDecodeBidirNetFlow(b *testing.B) { + schema.DisableDebug(b) + r := reporter.NewMock(b) + sch := schema.NewMock(b) + bf := sch.NewFlowMessage() + finalize := func() {} + nfdecoder := netflow.New(r, decoder.Dependencies{Schema: sch}) + options := decoder.Option{TimestampSource: pb.RawFlow_TS_INPUT} + + template := helpers.ReadPcapL4(b, + filepath.Join("decoder", "netflow", "testdata", "ipfixprobe-templates.pcap")) + _, err := nfdecoder.Decode( + decoder.RawFlow{Payload: template, Source: netip.MustParseAddr("::ffff:127.0.0.1")}, + options, bf, finalize) + if err != nil { + b.Fatalf("Decode() error on options template:\n%+v", err) + } + data := helpers.ReadPcapL4(b, filepath.Join("decoder", "netflow", "testdata", "ipfixprobe-data.pcap")) + + for b.Loop() { + nfdecoder.Decode( + decoder.RawFlow{Payload: data, Source: netip.MustParseAddr("::ffff:127.0.0.1")}, + options, bf, finalize) + } +} + func BenchmarkDecodeSflow(b *testing.B) { schema.DisableDebug(b) r := reporter.NewMock(b)