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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�ssPB)&iZ1A_q?-vPw0mt|lOcV%D@iC|#x00}_(0uc-h0ciXLDBlpI zK7oND1Bow?z`#&|#&3Y~{Xyz87#KQ`_yQRW3=@<Y80tao3XlSjzyhd(JdlP028I<# ze1QT6h7D-^15kc1NPPtZ!wDq5Km`NC1vLHxD1Qw|eFFo-4`l{6a0715<f-rV6?s8J zl`|L^3{)TiAM3`zAhCdf!2-&!nEdp;eEobk1_sG33=9QOQ4pVZ3j;$1lz-KYfk9>m z1H%L)zSIr|h8akFko*E9K1hB8l+WSLz#y}Sf#C!aUuq8n!vzT6hykYH21EeN2Pt>~ z<y*QlFen{hVE6&!Pu}`LzCOvFfkFBQ1A~Jq#B(4%?+*qB4=8^p$l5;)3<*elsXq)1 z8AyDYKMV{7NPLid1C;*`q@RJ2VFHw|=)u4sEy2jJ0K%_l015C)Ffy!w2r$g?U|>*@ zVPx2V#Fv&~WY_`a9|g%PFfyEg^51zdFi75DV7P(A=e@ze@BqqJ@nm3-xx>Kl1Bown zhk=1X4dh{E1_qb{4zK`(4^kij<%duH`cdAg!;^tQ)`F2C11bvQ^I0%56hQgAy%-o& zZ5SCUkoeM|S_{g5?KL^<lbWK13wZ1nT&sghQYRM%1|AP4c<0M$^W0C|EQX-E(3*jP zVWJvXCAcr91Da1}WMKHoz`zg+8h;0kc0>6+lW%@|FL=uaq8ijz0I51S`Q~?h#)FeN zf5<Z)oUHjnUg)45L<OkO`NY7$aNlKe)DOKtm@p_OLxds9Ksgn}_lC?CFn}^5h@T1N zgEAV3-vQ-=G7^ZteDcj7hbM3N$+mgk&n!l!9U_ytewQ(JOm6%wF0}zV$q2E5fx#X$ ziNV0eus~$<rr+O~nGT3-UiDv%IS@1)1yTbViUkchgNBok`Jk~AWIkxD1DOvRs(|tB z85kHQOjl%P)UTgo3=#y7<uicBgI6H&K_jYLkodj~3=E+89gq&tK)N3T1H&04d4C25 zh9^jT&;-Q?BtFR6KS+Ex28K8W4p29m0pb9VzZ9T+W(EcZ&}5Ac5+5}4Vu8d51+xnh z-;;rXApnVQJ6)EAF`040_K7Tv|Ap#7qc1SGgJw<*pbIQOegW}8gD)_7P%wiATaft~ zNa{iIpcWajd<U95Xe<RuUJl$OLlR&B4W7XH+jS)vC-c@PD1t;F;i1dGz)*n3??K{& zlFA%3{u(s?9yI<LH2xh_z8u3FQ~`!R$o%cGYK+N@^(CO$0%)Xxrng$q_*2mMOVIdR z(D+Bt_*c;QPf+>W?KKz|GS<&gMFbTnKGvY|_n`65pz-gZ@!z2F|Df@CprsEey)ZH` zY>(GsbY$ADpv$Ph!ZcfZx|1Pe9rKI-4AT!AGS)IlFiv+eVsv9VATqtnh|!E`1>^KX zMvQh$E4-&O88g~3Nia=!0?{YDr#FFU4W{XbK=cdm=}ab!c1+KGraOV?4?feIp!6XV zMmx?7P%dO(U|2An)0EMi$%1LRlPRMeC&vXySj0^4G-WjB>|h232m=Gd^phY}9oo~G Q%oy#MGJZ^VGGkN&00~JldjJ3c delta 9837 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 UDd<kmGGVl1YWO*Ql?kI70I~dj@Bjb+ -- GitLab