Message ID | cover.1690255889.git.yan@cloudflare.com (mailing list archive) |
---|---|
Headers | show |
Series | bpf: return proper error codes for lwt redirect | expand |
On Mon, Jul 24, 2023 at 09:12 PM -07, Yan Zhai wrote: > lwt xmit hook does not expect positive return values in function > ip_finish_output2 and ip6_finish_output2. However, BPF redirect programs > can return positive values such like NET_XMIT_DROP, NET_RX_DROP, and etc > as errors. Such return values can panic the kernel unexpectedly: > > https://gist.github.com/zhaiyan920/8fbac245b261fe316a7ef04c9b1eba48 > > This patch fixes the return values from BPF redirect, so the error > handling would be consistent at xmit hook. It also adds a few test cases > to prevent future regressions. > > v2: https://lore.kernel.org/netdev/ZLdY6JkWRccunvu0@debian.debian/ > v1: https://lore.kernel.org/bpf/ZLbYdpWC8zt9EJtq@debian.debian/ > > changes since v2: > * subject name changed > * also covered redirect to ingress case > * added selftests > > changes since v1: > * minor code style changes > > Yan Zhai (2): > bpf: fix skb_do_redirect return values > bpf: selftests: add lwt redirect regression test cases > > net/core/filter.c | 12 +- > tools/testing/selftests/bpf/Makefile | 1 + > .../selftests/bpf/progs/test_lwt_redirect.c | 67 +++++++ > .../selftests/bpf/test_lwt_redirect.sh | 165 ++++++++++++++++++ > 4 files changed, 244 insertions(+), 1 deletion(-) > create mode 100644 tools/testing/selftests/bpf/progs/test_lwt_redirect.c > create mode 100755 tools/testing/selftests/bpf/test_lwt_redirect.sh For the series: Tested-by: Jakub Sitnicki <jakub@cloudflare.com>