From: Stephen Hemminger <stephen@networkplumber.org>
To: Marat Khalili <marat.khalili@huawei.com>
Cc: Konstantin Ananyev <konstantin.ananyev@huawei.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [PATCH v4 4/5] bpf: add test for Rx and Tx filtering
Date: Fri, 7 Nov 2025 17:11:14 -0800 [thread overview]
Message-ID: <20251107171031.5887f3b4@phoenix> (raw)
In-Reply-To: <9994a210520c4760bddc67df29999068@huawei.com>
On Fri, 7 Nov 2025 17:30:51 +0000
Marat Khalili <marat.khalili@huawei.com> wrote:
> Thank you for doing this! See comments below.
>
> > -----Original Message-----
> > From: Stephen Hemminger <stephen@networkplumber.org>
> > Sent: Tuesday 4 November 2025 16:07
> > To: dev@dpdk.org
> > Cc: Stephen Hemminger <stephen@networkplumber.org>; Konstantin Ananyev <konstantin.ananyev@huawei.com>
> > Subject: [PATCH v4 4/5] bpf: add test for Rx and Tx filtering
> >
> > New test using null device to test filtering with BPF.
> >
> > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > ---
> > app/test/bpf/filter.c | 53 +++++++
> > app/test/bpf/meson.build | 1 +
> > app/test/test_bpf.c | 304 +++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 358 insertions(+)
> > create mode 100644 app/test/bpf/filter.c
> >
> > diff --git a/app/test/bpf/filter.c b/app/test/bpf/filter.c
> > new file mode 100644
> > index 0000000000..d47233a47a
> > --- /dev/null
> > +++ b/app/test/bpf/filter.c
> > @@ -0,0 +1,53 @@
> > +/* SPDX-License-Identifier: BSD-3-Clause
> > + * BPF TX filter program for testing rte_bpf_eth_tx_elf_load
> > + */
> > +
> > +typedef unsigned char uint8_t;
> > +typedef unsigned short uint16_t;
> > +typedef unsigned int uint32_t;
> > +typedef unsigned long uint64_t;
> > +
> > +/*
> > + * Simple TX filter that accepts TCP packets
> > + *
> > + * BPF TX programs receive pointer to data and should return:
> > + * 0 = drop packet
> > + * non-zero = rx/tx packet
> > + *
> > + * This filter checks:
> > + * 1. Packet is IPv4
> > + * 2. Protocol is TCP (IPPROTO_TCP = 6)
> > + */
> > +__attribute__((section("filter"), used))
>
> Could this section (and function) be called better, e.g. filter_ip_tcp?
>
> > +uint64_t
> > +test_filter(void *pkt)
> > +{
> > + uint8_t *data = pkt;
>
> Does pkt point to packet data or an mbuf? I would think we need mbuf functions
> here to access data. Not sure why the test is not failing though, maybe I
> misunderstand it.
The API for DPDK BPF gives option for packet data or mbuf.
See rte_bpf_arg_type.
This test uses packet data. Mostly because it is easier, using mbuf
requires more overhead and BPF validator often doesn't like it.
next prev parent reply other threads:[~2025-11-08 1:17 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-30 17:34 [PATCH 0/5] bpf enhancements Stephen Hemminger
2025-10-30 17:34 ` [PATCH 1/5] bpf: add allocation annotations to functions Stephen Hemminger
2025-10-30 17:34 ` [PATCH 2/5] bpf: use rte_pktmbuf_free_bulk Stephen Hemminger
2025-10-30 17:34 ` [PATCH 3/5] bpf: add a test for BPF ELF load Stephen Hemminger
2025-10-30 17:34 ` [PATCH 4/5] bpf: add test for rx and tx filtering Stephen Hemminger
2025-10-30 17:34 ` [PATCH 5/5] bpf: remove use of vla Stephen Hemminger
2025-10-31 11:39 ` [PATCH 0/5] bpf enhancements Marat Khalili
2025-10-31 16:37 ` Stephen Hemminger
2025-10-31 16:41 ` [PATCH v2 0/5] BPF enhancements Stephen Hemminger
2025-10-31 16:41 ` [PATCH v2 1/5] bpf: add allocation annotations to functions Stephen Hemminger
2025-10-31 16:41 ` [PATCH v2 2/5] bpf: use bulk free on filtered packets Stephen Hemminger
2025-10-31 16:41 ` [PATCH v2 3/5] bpf: add a test for BPF ELF load Stephen Hemminger
2025-10-31 16:41 ` [PATCH v2 4/5] bpf: add test for Rx and Tx filtering Stephen Hemminger
2025-10-31 16:41 ` [PATCH v2 5/5] bpf: remove use of VLA Stephen Hemminger
2025-11-01 18:04 ` [PATCH v3 0/5] BPF enhancements Stephen Hemminger
2025-11-01 18:04 ` [PATCH v3 1/5] bpf: add allocation annotations to functions Stephen Hemminger
2025-11-02 21:42 ` Konstantin Ananyev
2025-11-01 18:04 ` [PATCH v3 2/5] bpf: use bulk free on filtered packets Stephen Hemminger
2025-11-01 18:04 ` [PATCH v3 3/5] bpf: add a test for BPF ELF load Stephen Hemminger
2025-11-01 18:04 ` [PATCH v3 4/5] bpf: add test for Rx and Tx filtering Stephen Hemminger
2025-11-01 18:04 ` [PATCH v3 5/5] bpf: remove use of VLA Stephen Hemminger
2025-11-03 9:21 ` Konstantin Ananyev
2025-11-04 16:07 ` [PATCH v4 0/5] BPF enhancements Stephen Hemminger
2025-11-04 16:07 ` [PATCH v4 1/5] bpf: add allocation annotations to functions Stephen Hemminger
2025-11-07 17:35 ` Marat Khalili
2025-11-04 16:07 ` [PATCH v4 2/5] bpf: use bulk free on filtered packets Stephen Hemminger
2025-11-06 7:25 ` Konstantin Ananyev
2025-11-07 17:36 ` Marat Khalili
2025-11-04 16:07 ` [PATCH v4 3/5] bpf: add a test for BPF ELF load Stephen Hemminger
2025-11-07 17:33 ` Marat Khalili
2025-11-07 17:45 ` Marat Khalili
2025-11-08 1:09 ` Stephen Hemminger
2025-11-10 15:34 ` Marat Khalili
2025-11-08 1:08 ` Stephen Hemminger
2025-11-04 16:07 ` [PATCH v4 4/5] bpf: add test for Rx and Tx filtering Stephen Hemminger
2025-11-07 17:30 ` Marat Khalili
2025-11-08 1:11 ` Stephen Hemminger [this message]
2025-11-10 15:43 ` Marat Khalili
2025-11-04 16:07 ` [PATCH v4 5/5] bpf: replace use of VLA Stephen Hemminger
2025-11-06 7:26 ` Konstantin Ananyev
2025-11-07 17:36 ` Marat Khalili
2025-11-09 20:07 ` [PATCH v5 0/5] BPF cleanup and tests Stephen Hemminger
2025-11-09 20:07 ` [PATCH v5 1/5] bpf: add allocation annotations to functions Stephen Hemminger
2025-11-09 20:07 ` [PATCH v5 2/5] bpf: use bulk free on filtered packets Stephen Hemminger
2025-11-09 20:07 ` [PATCH v5 3/5] bpf: add a test for BPF ELF load Stephen Hemminger
2025-11-10 16:38 ` Marat Khalili
2025-11-10 17:07 ` Stephen Hemminger
2025-11-10 17:17 ` Marat Khalili
2025-11-10 17:08 ` Stephen Hemminger
2025-11-11 9:46 ` Marat Khalili
2025-11-09 20:07 ` [PATCH v5 4/5] bpf: add test for Rx and Tx filtering Stephen Hemminger
2025-11-11 9:46 ` Marat Khalili
2025-11-09 20:07 ` [PATCH v5 5/5] bpf: replace use of VLA Stephen Hemminger
2025-11-11 12:13 ` [PATCH v5 0/5] BPF cleanup and tests Thomas Monjalon
2025-11-11 22:55 ` [PATCH v6 0/2] BPF tests Stephen Hemminger
2025-11-11 22:55 ` [PATCH v6 1/2] bpf: add a test for BPF ELF load Stephen Hemminger
2025-11-12 15:06 ` Konstantin Ananyev
2025-11-11 22:55 ` [PATCH v6 2/2] bpf: add test for Rx and Tx filtering Stephen Hemminger
2025-11-12 15:08 ` Konstantin Ananyev
2025-11-12 15:03 ` [PATCH v6 0/2] BPF tests Marat Khalili
2025-11-19 3:54 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251107171031.5887f3b4@phoenix \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=konstantin.ananyev@huawei.com \
--cc=marat.khalili@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.