diff --git a/bpf/flows_filter.h b/bpf/flows_filter.h index 2deee61e65964de52e6ea024910a293143639b52..c1d946769bfe55bc0dad0055d2ce6d1a0ce23c0c 100644 --- a/bpf/flows_filter.h +++ b/bpf/flows_filter.h @@ -140,6 +140,9 @@ static __always_inline int do_flow_filter_lookup(flow_id *id, struct filter_key_ } break; } + } else { + result = 0; + goto end; } if (!is_zero_ip(rule->ip, len)) { diff --git a/pkg/ebpf/bpf_arm64_bpfel.o b/pkg/ebpf/bpf_arm64_bpfel.o index b73811ea5361ffc65e9254ef042f9c24d2d9de75..3351e146df205dc68a9ade2286c15b4f35dd90f3 100644 Binary files a/pkg/ebpf/bpf_arm64_bpfel.o and b/pkg/ebpf/bpf_arm64_bpfel.o differ diff --git a/pkg/ebpf/bpf_powerpc_bpfel.o b/pkg/ebpf/bpf_powerpc_bpfel.o index 94f67ccb6ed1589104d1100e4692d0e7ae87c7da..fe6e5617df27b1c8be464e02193d2bcf523c9c53 100644 Binary files a/pkg/ebpf/bpf_powerpc_bpfel.o and b/pkg/ebpf/bpf_powerpc_bpfel.o differ diff --git a/pkg/ebpf/bpf_s390_bpfeb.o b/pkg/ebpf/bpf_s390_bpfeb.o index 47506cc7d96fc58d5d278e990a4c544a98bb7d6b..81f2a8999e8651a41e67c80fc9794cfbf64d17ef 100644 Binary files a/pkg/ebpf/bpf_s390_bpfeb.o and b/pkg/ebpf/bpf_s390_bpfeb.o differ diff --git a/pkg/ebpf/bpf_x86_bpfel.o b/pkg/ebpf/bpf_x86_bpfel.o index 98201800d8893921fc11ca48156471107da3f3bf..c00a90f3e92a63fc1cce5b94842536427d9a84a7 100644 Binary files a/pkg/ebpf/bpf_x86_bpfel.o and b/pkg/ebpf/bpf_x86_bpfel.o differ diff --git a/pkg/flow/deduper.go b/pkg/flow/deduper.go index 13db640108c9f38e87676cad9e70577df76f62c1..274cc7eefe423ccd00c760e0382d011b93a31c14 100644 --- a/pkg/flow/deduper.go +++ b/pkg/flow/deduper.go @@ -88,6 +88,7 @@ func (c *deduperCache) checkDupe(r *Record, justMark, mergeDup bool, fwd *[]*Rec fEntry.dnsRecord.Flags = r.Metrics.DnsRecord.Flags fEntry.dnsRecord.Id = r.Metrics.DnsRecord.Id fEntry.dnsRecord.Latency = r.Metrics.DnsRecord.Latency + fEntry.dnsRecord.Errno = r.Metrics.DnsRecord.Errno } // If the new flow has flowRTT then enrich the flow in the case with the same RTT and mark it duplicate if r.Metrics.FlowRtt != 0 && *fEntry.flowRTT == 0 { diff --git a/pkg/flow/record.go b/pkg/flow/record.go index 0d948fcc27dccad8018247d354b185e7a844922d..0d677dca75ac4678ce1aad5ce5107d5bc6a6bb03 100644 --- a/pkg/flow/record.go +++ b/pkg/flow/record.go @@ -105,7 +105,6 @@ func Accumulate(r *ebpf.BpfFlowMetrics, src *ebpf.BpfFlowMetrics) { r.DnsRecord.Flags |= src.DnsRecord.Flags if src.DnsRecord.Id != 0 { r.DnsRecord.Id = src.DnsRecord.Id - r.DnsRecord.Errno = src.DnsRecord.Errno } if r.DnsRecord.Errno != src.DnsRecord.Errno { r.DnsRecord.Errno = src.DnsRecord.Errno