From bf7d1605d9f29b35a86db7909607d6773169f7c6 Mon Sep 17 00:00:00 2001
From: "Mohamed S. Mahmoud" <mmahmoud@redhat.com>
Date: Tue, 18 Jul 2023 15:44:36 -0400
Subject: [PATCH] socket doesn't always have valid if_index so we can't use it
 as key (#153)

Signed-off-by: msherif1234 <mmahmoud@redhat.com>
---
 bpf/dns_tracker.h     |   1 -
 bpf/types.h           |   1 -
 pkg/ebpf/bpf_bpfeb.go |   1 -
 pkg/ebpf/bpf_bpfeb.o  | Bin 78360 -> 77936 bytes
 pkg/ebpf/bpf_bpfel.go |   1 -
 pkg/ebpf/bpf_bpfel.o  | Bin 79464 -> 79056 bytes
 6 files changed, 4 deletions(-)

diff --git a/bpf/dns_tracker.h b/bpf/dns_tracker.h
index f7918ea1..97e124ea 100644
--- a/bpf/dns_tracker.h
+++ b/bpf/dns_tracker.h
@@ -42,7 +42,6 @@ static inline void find_or_create_dns_flow(flow_id *id, struct dns_header *dns,
 
 static inline void fill_dns_id (flow_id *id, dns_flow_id *dns_flow, u16 dns_id, bool reverse) {
     dns_flow->id = dns_id;
-    dns_flow->if_index = id->if_index;
     dns_flow->protocol = id->transport_protocol;
     if (reverse) {
         __builtin_memcpy(dns_flow->src_ip, id->dst_ip, IP_MAX_LEN);
diff --git a/bpf/types.h b/bpf/types.h
index be511ce9..d663e45a 100644
--- a/bpf/types.h
+++ b/bpf/types.h
@@ -164,7 +164,6 @@ typedef struct dns_flow_id_t {
     u8 src_ip[IP_MAX_LEN];
     u8 dst_ip[IP_MAX_LEN];
     u16 id;
-    u32 if_index;
     u8 protocol;
 } __attribute__((packed)) dns_flow_id;
 
diff --git a/pkg/ebpf/bpf_bpfeb.go b/pkg/ebpf/bpf_bpfeb.go
index 146c17c8..2304802e 100644
--- a/pkg/ebpf/bpf_bpfeb.go
+++ b/pkg/ebpf/bpf_bpfeb.go
@@ -19,7 +19,6 @@ type BpfDnsFlowId struct {
 	SrcIp    [16]uint8
 	DstIp    [16]uint8
 	Id       uint16
-	IfIndex  uint32
 	Protocol uint8
 }
 
diff --git a/pkg/ebpf/bpf_bpfeb.o b/pkg/ebpf/bpf_bpfeb.o
index f80979eef561c5afee76e004150cdf56aa4f4db6..82b62dd6e5ca3c210f22bff17b69b670a1a059ef 100644
GIT binary patch
delta 9160
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

delta 9503
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

diff --git a/pkg/ebpf/bpf_bpfel.go b/pkg/ebpf/bpf_bpfel.go
index 82a8755b..0956bf03 100644
--- a/pkg/ebpf/bpf_bpfel.go
+++ b/pkg/ebpf/bpf_bpfel.go
@@ -19,7 +19,6 @@ type BpfDnsFlowId struct {
 	SrcIp    [16]uint8
 	DstIp    [16]uint8
 	Id       uint16
-	IfIndex  uint32
 	Protocol uint8
 }
 
diff --git a/pkg/ebpf/bpf_bpfel.o b/pkg/ebpf/bpf_bpfel.o
index 5db3687c2899c17c044af1dc776c3652c2b4000c..06adc802376e47556ba1d0827a62caab3a725b80 100644
GIT binary patch
delta 9484
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
Q%oy#MGJZ^VGGkN&00~JldjJ3c

delta 9837
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
UDd<kmGGVl1YWO*Ql?kI70I~dj@Bjb+

-- 
GitLab