!14 Apply for bugfix: tcp* BPF_SK_LOOKUP undeclared failed

From: @MrRlu
Reviewed-by: @myeuler
Signed-off-by: @myeuler
This commit is contained in:
openeuler-ci-bot 2021-06-21 15:51:59 +00:00 committed by Gitee
commit f83f777a44
2 changed files with 135 additions and 1 deletions

View File

@ -0,0 +1,129 @@
From 653b24ca8cc997c7248b2890f869de15eb0f2c7c Mon Sep 17 00:00:00 2001
From: l00478106 <luzhihao@huawei.com>
Date: Mon, 21 Jun 2021 19:25:01 +0800
Subject: [PATCH] bugfix: tcp and udp tools failed
When older bcc and newer kernel. bcc internal bpf.h does not define BPF_SK_LOOKUP
but newer kernel header file uses BPF_SK_LOOKUP.
---
tools/bindsnoop.py | 1 +
tools/tcpaccept.py | 1 +
tools/tcpconnlat.py | 1 +
tools/tcpdrop.py | 1 +
tools/tcplife.py | 1 +
tools/tcpretrans.py | 1 +
tools/tcpstates.py | 1 +
tools/tcptop.py | 1 +
tools/tcptracer.py | 1 +
9 files changed, 9 insertions(+)
diff --git a/tools/bindsnoop.py b/tools/bindsnoop.py
index e08ebf8..fce5366 100755
--- a/tools/bindsnoop.py
+++ b/tools/bindsnoop.py
@@ -97,6 +97,7 @@ args = parser.parse_args()
# define BPF program
bpf_text = """
#include <uapi/linux/ptrace.h>
+#define BPF_SK_LOOKUP 36
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wtautological-compare"
#include <net/sock.h>
diff --git a/tools/tcpaccept.py b/tools/tcpaccept.py
index 1a5f1c7..2eccb25 100755
--- a/tools/tcpaccept.py
+++ b/tools/tcpaccept.py
@@ -57,6 +57,7 @@ debug = 0
# define BPF program
bpf_text = """
#include <uapi/linux/ptrace.h>
+#define BPF_SK_LOOKUP 36
#include <net/sock.h>
#include <bcc/proto.h>
diff --git a/tools/tcpconnlat.py b/tools/tcpconnlat.py
index e28a43a..2f3bf16 100755
--- a/tools/tcpconnlat.py
+++ b/tools/tcpconnlat.py
@@ -67,6 +67,7 @@ debug = 0
# define BPF program
bpf_text = """
#include <uapi/linux/ptrace.h>
+#define BPF_SK_LOOKUP 36
#include <net/sock.h>
#include <net/tcp_states.h>
#include <bcc/proto.h>
diff --git a/tools/tcpdrop.py b/tools/tcpdrop.py
index aceff87..e5e3390 100755
--- a/tools/tcpdrop.py
+++ b/tools/tcpdrop.py
@@ -42,6 +42,7 @@ debug = 0
# define BPF program
bpf_text = """
#include <uapi/linux/ptrace.h>
+#define BPF_SK_LOOKUP 36
#include <uapi/linux/tcp.h>
#include <uapi/linux/ip.h>
#include <net/sock.h>
diff --git a/tools/tcplife.py b/tools/tcplife.py
index 9fe9804..e576017 100755
--- a/tools/tcplife.py
+++ b/tools/tcplife.py
@@ -66,6 +66,7 @@ debug = 0
# define BPF program
bpf_text = """
#include <uapi/linux/ptrace.h>
+#define BPF_SK_LOOKUP 36
#include <linux/tcp.h>
#include <net/sock.h>
#include <bcc/proto.h>
diff --git a/tools/tcpretrans.py b/tools/tcpretrans.py
index 7785d9b..44a1883 100755
--- a/tools/tcpretrans.py
+++ b/tools/tcpretrans.py
@@ -44,6 +44,7 @@ debug = 0
# define BPF program
bpf_text = """
#include <uapi/linux/ptrace.h>
+#define BPF_SK_LOOKUP 36
#include <net/sock.h>
#include <bcc/proto.h>
diff --git a/tools/tcpstates.py b/tools/tcpstates.py
index 57fbb76..cd2bb29 100755
--- a/tools/tcpstates.py
+++ b/tools/tcpstates.py
@@ -61,6 +61,7 @@ debug = 0
# define BPF program
bpf_header = """
#include <uapi/linux/ptrace.h>
+#define BPF_SK_LOOKUP 36
#include <linux/tcp.h>
#include <net/sock.h>
#include <bcc/proto.h>
diff --git a/tools/tcptop.py b/tools/tcptop.py
index e9d0d1a..13c7e16 100755
--- a/tools/tcptop.py
+++ b/tools/tcptop.py
@@ -78,6 +78,7 @@ loadavg = "/proc/loadavg"
# define BPF program
bpf_text = """
#include <uapi/linux/ptrace.h>
+#define BPF_SK_LOOKUP 36
#include <net/sock.h>
#include <bcc/proto.h>
diff --git a/tools/tcptracer.py b/tools/tcptracer.py
index 2e486b1..636ffcb 100755
--- a/tools/tcptracer.py
+++ b/tools/tcptracer.py
@@ -42,6 +42,7 @@ args = parser.parse_args()
bpf_text = """
#include <uapi/linux/ptrace.h>
+#define BPF_SK_LOOKUP 36
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wtautological-compare"
#include <net/sock.h>
--
2.27.0

View File

@ -1,6 +1,6 @@
Name: bcc
Version: 0.15.0
Release: 2
Release: 3
Summary: BPF Compiler Collection (BCC)
License: ASL 2.0
URL: https://github.com/iovisor/bcc
@ -20,6 +20,8 @@ BuildRequires: util-linux
Requires: %{name}-tools = %{version}-%{release}
Requires: libbpf >= 0.0.5-3
Patch: 0001-bugfix-tcp-and-udp-tools-failed.patch
%description
BCC is a toolkit for creating efficient kernel tracing and manipulation
programs, and includes several useful tools and examples. It makes use of
@ -161,6 +163,9 @@ rm -rf %{buildroot}%{_datadir}/%{name}/tools/old/
%changelog
* Mon Jun 21 2021 luzhihao <luzhihao@huawei.com> - 0.15.0-3
- bugfix: tcp* BPF_SK_LOOKUP undeclared failed
* Wed Mar 10 2021 wuchangye <wuchangye@huawei.com> - 0.15.0-2
- rebuild