From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
To: Magnus Karlsson <magnus.karlsson@gmail.com>
Cc: "YiFei Zhu" <zhuyifei@google.com>,
netdev@vger.kernel.org, bpf@vger.kernel.org,
"Björn Töpel" <bjorn@kernel.org>,
"Magnus Karlsson" <magnus.karlsson@intel.com>,
"Jonathan Lemon" <jonathan.lemon@gmail.com>,
"Alexei Starovoitov" <ast@kernel.org>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"David S . Miller" <davem@davemloft.net>,
"Jakub Kicinski" <kuba@kernel.org>,
"Jesper Dangaard Brouer" <hawk@kernel.org>,
"John Fastabend" <john.fastabend@gmail.com>,
"Andrii Nakryiko" <andrii@kernel.org>,
"Stanislav Fomichev" <sdf@google.com>,
"Willem de Bruijn" <willemb@google.com>
Subject: Re: [RFC PATCH net-next 0/3] selftests: Add AF_XDP functionality test
Date: Wed, 12 Jun 2024 14:49:39 +0200 [thread overview]
Message-ID: <ZmmZY3zim4wG7pHR@boxer> (raw)
In-Reply-To: <CAJ8uoz2-Kt2o-v3CuLpf2VDv2VtUJL2T307rp04di5hY2ihYHg@mail.gmail.com>
On Wed, Jun 12, 2024 at 01:47:06PM +0200, Magnus Karlsson wrote:
> On Tue, 11 Jun 2024 at 22:43, YiFei Zhu <zhuyifei@google.com> wrote:
> >
> > We have observed that hardware NIC drivers may have faulty AF_XDP
> > implementations, and there seem to be a lack of a test of various modes
> > in which AF_XDP could run. This series adds a test to verify that NIC
> > drivers implements many AF_XDP features by performing a send / receive
> > of a single UDP packet.
> >
> > I put the C code of the test under selftests/bpf because I'm not really
> > sure how I'd build the BPF-related code without the selftests/bpf
> > build infrastructure.
>
> Happy to see that you are contributing a number of new tests. Would it
> be possible for you to integrate this into the xskxceiver framework?
> You can find that in selftests/bpf too. By default, it will run its
> tests using veth, but if you provide an interface name after the -i
> option, it will run the tests over a real interface. I put the NIC in
> loopback mode to use this feature, but feel free to add a new mode if
> necessary. A lot of the setup and data plane code that you add already
> exists in xskxceiver, so I would prefer if you could reuse it. Your
> tests are new though and they would be valuable to have.
+1
I just don't believe that you guys were not aware that xskxceiver exist.
Please provide us a proper explanation/justification why this was not
fulfilling your needs and you decided to go with another test suite.
>
> You could make the default packet that is sent in xskxceiver be the
> UDP packet that you want and then add all the other logic that you
> have to a number of new tests that you introduce.
>
> > Tested on Google Cloud, with GVE:
> >
> > $ sudo NETIF=ens4 REMOTE_TYPE=ssh \
> > REMOTE_ARGS="root@10.138.15.235" \
> > LOCAL_V4="10.138.15.234" \
> > REMOTE_V4="10.138.15.235" \
> > LOCAL_NEXTHOP_MAC="42:01:0a:8a:00:01" \
> > REMOTE_NEXTHOP_MAC="42:01:0a:8a:00:01" \
> > python3 xsk_hw.py
> >
> > KTAP version 1
> > 1..22
> > ok 1 xsk_hw.ipv4_basic
> > ok 2 xsk_hw.ipv4_tx_skb_copy
> > ok 3 xsk_hw.ipv4_tx_skb_copy_force_attach
> > ok 4 xsk_hw.ipv4_rx_skb_copy
> > ok 5 xsk_hw.ipv4_tx_drv_copy
> > ok 6 xsk_hw.ipv4_tx_drv_copy_force_attach
> > ok 7 xsk_hw.ipv4_rx_drv_copy
> > [...]
> > # Exception| STDERR: b'/tmp/zzfhcqkg/pbgodkgjxsk_hw: recv_pfpacket: Timeout\n'
> > not ok 8 xsk_hw.ipv4_tx_drv_zerocopy
> > ok 9 xsk_hw.ipv4_tx_drv_zerocopy_force_attach
> > ok 10 xsk_hw.ipv4_rx_drv_zerocopy
> > [...]
> > # Exception| STDERR: b'/tmp/zzfhcqkg/pbgodkgjxsk_hw: connect sync client: max_retries\n'
> > [...]
> > # Exception| STDERR: b'/linux/tools/testing/selftests/bpf/xsk_hw: open_xsk: Device or resource busy\n'
> > not ok 11 xsk_hw.ipv4_rx_drv_zerocopy_fill_after_bind
> > ok 12 xsk_hw.ipv6_basic # SKIP Test requires IPv6 connectivity
> > [...]
> > ok 22 xsk_hw.ipv6_rx_drv_zerocopy_fill_after_bind # SKIP Test requires IPv6 connectivity
> > # Totals: pass:9 fail:2 xfail:0 xpass:0 skip:11 error:0
> >
> > YiFei Zhu (3):
> > selftests/bpf: Move rxq_num helper from xdp_hw_metadata to
> > network_helpers
> > selftests/bpf: Add xsk_hw AF_XDP functionality test
> > selftests: drv-net: Add xsk_hw AF_XDP functionality test
> >
> > tools/testing/selftests/bpf/.gitignore | 1 +
> > tools/testing/selftests/bpf/Makefile | 7 +-
> > tools/testing/selftests/bpf/network_helpers.c | 27 +
> > tools/testing/selftests/bpf/network_helpers.h | 16 +
> > tools/testing/selftests/bpf/progs/xsk_hw.c | 72 ++
> > tools/testing/selftests/bpf/xdp_hw_metadata.c | 27 +-
> > tools/testing/selftests/bpf/xsk_hw.c | 844 ++++++++++++++++++
> > .../testing/selftests/drivers/net/hw/Makefile | 1 +
> > .../selftests/drivers/net/hw/xsk_hw.py | 133 +++
> > 9 files changed, 1102 insertions(+), 26 deletions(-)
> > create mode 100644 tools/testing/selftests/bpf/progs/xsk_hw.c
> > create mode 100644 tools/testing/selftests/bpf/xsk_hw.c
> > create mode 100755 tools/testing/selftests/drivers/net/hw/xsk_hw.py
> >
> > --
> > 2.45.2.505.gda0bf45e8d-goog
> >
> >
>
next prev parent reply other threads:[~2024-06-12 12:50 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-11 20:42 [RFC PATCH net-next 0/3] selftests: Add AF_XDP functionality test YiFei Zhu
2024-06-11 20:42 ` [RFC PATCH net-next 1/3] selftests/bpf: Move rxq_num helper from xdp_hw_metadata to network_helpers YiFei Zhu
2024-06-11 21:12 ` Willem de Bruijn
2024-06-11 20:42 ` [RFC PATCH net-next 2/3] selftests/bpf: Add xsk_hw AF_XDP functionality test YiFei Zhu
2024-06-11 20:42 ` [RFC PATCH net-next 3/3] selftests: drv-net: " YiFei Zhu
2024-06-11 21:09 ` Willem de Bruijn
2024-06-12 11:47 ` [RFC PATCH net-next 0/3] selftests: Add " Magnus Karlsson
2024-06-12 12:49 ` Maciej Fijalkowski [this message]
2024-06-12 16:44 ` YiFei Zhu
2024-06-13 6:42 ` Magnus Karlsson
2024-06-12 13:57 ` Willem de Bruijn
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=ZmmZY3zim4wG7pHR@boxer \
--to=maciej.fijalkowski@intel.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bjorn@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=hawk@kernel.org \
--cc=john.fastabend@gmail.com \
--cc=jonathan.lemon@gmail.com \
--cc=kuba@kernel.org \
--cc=magnus.karlsson@gmail.com \
--cc=magnus.karlsson@intel.com \
--cc=netdev@vger.kernel.org \
--cc=sdf@google.com \
--cc=willemb@google.com \
--cc=zhuyifei@google.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.