From: Akihiko Odaki <akihiko.odaki@daynix.com>
To: Jason Wang <jasowang@redhat.com>
Cc: Jonathan Corbet <corbet@lwn.net>,
Willem de Bruijn <willemdebruijn.kernel@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
Shuah Khan <shuah@kernel.org>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
netdev@vger.kernel.org, kvm@vger.kernel.org,
virtualization@lists.linux-foundation.org,
linux-kselftest@vger.kernel.org,
Yuri Benditovich <yuri.benditovich@daynix.com>,
Andrew Melnychenko <andrew@daynix.com>,
Stephen Hemminger <stephen@networkplumber.org>,
gur.stavi@huawei.com, Lei Yang <leiyang@redhat.com>,
Simon Horman <horms@kernel.org>
Subject: Re: [PATCH net-next v9 5/6] selftest: tun: Add tests for virtio-net hashing
Date: Tue, 11 Mar 2025 15:19:47 +0900 [thread overview]
Message-ID: <217fb3ef-336d-4141-b47e-3236f2c22ec3@daynix.com> (raw)
In-Reply-To: <CACGkMEuTwd4+DP1Cb+ZgJtxTiJj4N_NMPHiKusd8a4Tn3+B_3A@mail.gmail.com>
On 2025/03/10 13:03, Jason Wang wrote:
> On Fri, Mar 7, 2025 at 7:02 PM Akihiko Odaki <akihiko.odaki@daynix.com> wrote:
>>
>> The added tests confirm tun can perform RSS and hash reporting, and
>> reject invalid configurations for them.
>
> Let's be more verbose here. E.g what's the network topology used here.
The network topology doesn't matter because this only tests the rx of
one device.
I can still add more details; it tests all supported hash types, and
tests both the queue selection and reported hash values.
And this message is wrong in terms that it does not test validation of
configuration so it also needs correction.
>
>>
>> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
>> Tested-by: Lei Yang <leiyang@redhat.com>
>> ---
>> tools/testing/selftests/net/Makefile | 2 +-
>> tools/testing/selftests/net/tun.c | 584 ++++++++++++++++++++++++++++++++++-
>> 2 files changed, 576 insertions(+), 10 deletions(-)
>>
>> diff --git a/tools/testing/selftests/net/Makefile b/tools/testing/selftests/net/Makefile
>> index 73ee88d6b043004be23b444de667a1d99a6045de..9772f691a9a011d99212df32463cdb930cf0a1a0 100644
>> --- a/tools/testing/selftests/net/Makefile
>> +++ b/tools/testing/selftests/net/Makefile
>> @@ -123,6 +123,6 @@ $(OUTPUT)/reuseport_bpf_numa: LDLIBS += -lnuma
>> $(OUTPUT)/tcp_mmap: LDLIBS += -lpthread -lcrypto
>> $(OUTPUT)/tcp_inq: LDLIBS += -lpthread
>> $(OUTPUT)/bind_bhash: LDLIBS += -lpthread
>> -$(OUTPUT)/io_uring_zerocopy_tx: CFLAGS += -I../../../include/
>> +$(OUTPUT)/io_uring_zerocopy_tx $(OUTPUT)/tun: CFLAGS += -I../../../include/
>>
>> include bpf.mk
>> diff --git a/tools/testing/selftests/net/tun.c b/tools/testing/selftests/net/tun.c
>> index 463dd98f2b80b1bdcb398cee43c834e7dc5cf784..acadeea7194eaea9416a605b47f99f7a5f1f80cd 100644
>> --- a/tools/testing/selftests/net/tun.c
>> +++ b/tools/testing/selftests/net/tun.c
>> @@ -2,21 +2,38 @@
>>
>> #define _GNU_SOURCE
>>
>> +#include <endian.h>
>> #include <errno.h>
>> #include <fcntl.h>
>> +#include <sched.h>
>
> Is this needed?
Yes, it is for unshare().
>
>> +#include <stddef.h>
>> #include <stdio.h>
>> #include <stdlib.h>
>> #include <string.h>
>> #include <unistd.h>
>> -#include <linux/if.h>
>> +#include <net/if.h>
>> +#include <netinet/ip.h>
>> +#include <sys/ioctl.h>
>> +#include <sys/socket.h>
>> +#include <linux/compiler.h>
>> +#include <linux/icmp.h>
>> +#include <linux/if_arp.h>
>> #include <linux/if_tun.h>
>> +#include <linux/ipv6.h>
>> #include <linux/netlink.h>
>> #include <linux/rtnetlink.h>
>> -#include <sys/ioctl.h>
>> -#include <sys/socket.h>
>> +#include <linux/sockios.h>
>> +#include <linux/tcp.h>
>> +#include <linux/udp.h>
>> +#include <linux/virtio_net.h>
>>
>> #include "../kselftest_harness.h"
>>
>> +#define TUN_HWADDR_SOURCE { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 }
>> +#define TUN_HWADDR_DEST { 0x02, 0x00, 0x00, 0x00, 0x00, 0x01 }
>> +#define TUN_IPADDR_SOURCE htonl((172 << 24) | (17 << 16) | 0)
>> +#define TUN_IPADDR_DEST htonl((172 << 24) | (17 << 16) | 1)
>> +
>> static int tun_attach(int fd, char *dev)
>> {
>> struct ifreq ifr;
>> @@ -39,7 +56,7 @@ static int tun_detach(int fd, char *dev)
>> return ioctl(fd, TUNSETQUEUE, (void *) &ifr);
>> }
>>
>> -static int tun_alloc(char *dev)
>> +static int tun_alloc(char *dev, short flags)
>> {
>> struct ifreq ifr;
>> int fd, err;
>> @@ -52,7 +69,8 @@ static int tun_alloc(char *dev)
>>
>> memset(&ifr, 0, sizeof(ifr));
>> strcpy(ifr.ifr_name, dev);
>> - ifr.ifr_flags = IFF_TAP | IFF_NAPI | IFF_MULTI_QUEUE;
>> + ifr.ifr_flags = flags | IFF_TAP | IFF_NAPI | IFF_NO_PI |
>> + IFF_MULTI_QUEUE;
>>
>> err = ioctl(fd, TUNSETIFF, (void *) &ifr);
>> if (err < 0) {
>> @@ -64,6 +82,40 @@ static int tun_alloc(char *dev)
>> return fd;
>> }
>>
>> +static bool tun_add_to_bridge(int local_fd, const char *name)
>> +{
>
> I wonder if a packet socket is more convenient here.
I'll try it. Thanks for suggestion.
Regards,
Akihiko Odaki
>
> Thanks
>
next prev parent reply other threads:[~2025-03-11 6:19 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-07 11:01 [PATCH net-next v9 0/6] tun: Introduce virtio-net hashing feature Akihiko Odaki
2025-03-07 11:01 ` [PATCH net-next v9 1/6] virtio_net: Add functions for hashing Akihiko Odaki
2025-03-10 3:55 ` Jason Wang
2025-03-10 6:53 ` Akihiko Odaki
2025-03-11 0:47 ` Jason Wang
2025-03-11 5:49 ` Akihiko Odaki
2025-03-17 1:24 ` Jason Wang
2025-03-17 6:08 ` Akihiko Odaki
2025-03-07 11:01 ` [PATCH net-next v9 2/6] net: flow_dissector: Export flow_keys_dissector_symmetric Akihiko Odaki
2025-03-07 11:01 ` [PATCH net-next v9 3/6] tun: Introduce virtio-net hash feature Akihiko Odaki
2025-03-08 19:32 ` Willem de Bruijn
2025-03-10 7:11 ` Akihiko Odaki
2025-03-10 3:55 ` Jason Wang
2025-03-10 4:01 ` Jason Wang
2025-03-10 8:16 ` Akihiko Odaki
2025-03-10 7:45 ` Akihiko Odaki
2025-03-11 0:38 ` Jason Wang
2025-03-11 6:11 ` Akihiko Odaki
2025-03-12 2:35 ` Jason Wang
2025-03-12 5:03 ` Akihiko Odaki
2025-03-17 1:12 ` Jason Wang
2025-03-17 7:06 ` Akihiko Odaki
2025-03-18 0:15 ` Jason Wang
2025-03-18 10:10 ` Akihiko Odaki
2025-03-19 0:58 ` Jason Wang
2025-03-19 5:28 ` Akihiko Odaki
2025-03-20 1:31 ` Jason Wang
2025-03-20 5:33 ` Akihiko Odaki
2025-03-21 1:13 ` Jason Wang
2025-03-21 5:56 ` Akihiko Odaki
2025-03-24 4:40 ` Jason Wang
2025-03-29 9:15 ` Akihiko Odaki
2025-03-11 6:17 ` Akihiko Odaki
2025-03-12 2:59 ` Jason Wang
2025-03-12 5:55 ` Akihiko Odaki
2025-03-17 1:15 ` Jason Wang
2025-03-10 7:58 ` Akihiko Odaki
2025-03-11 0:40 ` Jason Wang
2025-03-10 8:13 ` Akihiko Odaki
2025-03-07 11:01 ` [PATCH net-next v9 4/6] selftest: tun: Test vnet ioctls without device Akihiko Odaki
2025-03-07 11:01 ` [PATCH net-next v9 5/6] selftest: tun: Add tests for virtio-net hashing Akihiko Odaki
2025-03-08 19:39 ` Willem de Bruijn
2025-03-10 4:03 ` Jason Wang
2025-03-11 6:19 ` Akihiko Odaki [this message]
2025-03-07 11:01 ` [PATCH net-next v9 6/6] vhost/net: Support VIRTIO_NET_F_HASH_REPORT Akihiko Odaki
2025-03-10 4:43 ` Jason Wang
2025-03-10 7:04 ` Akihiko Odaki
2025-03-11 0:42 ` Jason Wang
2025-03-11 6:24 ` Akihiko Odaki
2025-03-12 3:36 ` Jason Wang
2025-03-12 5:59 ` Akihiko Odaki
2025-03-17 1:15 ` Jason Wang
2025-03-19 4:43 ` Akihiko Odaki
2025-03-13 1:15 ` [PATCH net-next v9 0/6] tun: Introduce virtio-net hashing feature Lei Yang
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=217fb3ef-336d-4141-b47e-3236f2c22ec3@daynix.com \
--to=akihiko.odaki@daynix.com \
--cc=andrew@daynix.com \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gur.stavi@huawei.com \
--cc=horms@kernel.org \
--cc=jasowang@redhat.com \
--cc=kuba@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=leiyang@redhat.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=shuah@kernel.org \
--cc=stephen@networkplumber.org \
--cc=virtualization@lists.linux-foundation.org \
--cc=willemdebruijn.kernel@gmail.com \
--cc=xuanzhuo@linux.alibaba.com \
--cc=yuri.benditovich@daynix.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®