From: Breno Leitao <leitao@debian.org>
To: Hangbin Liu <liuhangbin@gmail.com>
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, Shuah Khan <shuah@kernel.org>,
netdev@vger.kernel.org, David Wei <dw@davidwei.uk>,
Willem de Bruijn <willemb@google.com>,
Petr Machata <petrm@nvidia.com>,
open list <linux-kernel@vger.kernel.org>,
"open list:KERNEL SELFTEST FRAMEWORK"
<linux-kselftest@vger.kernel.org>
Subject: Re: [PATCH net-next v2] net: netconsole: selftests: Create a new netconsole selftest
Date: Thu, 15 Aug 2024 01:15:53 -0700 [thread overview]
Message-ID: <Zr25OecANx77Y+4O@gmail.com> (raw)
In-Reply-To: <Zr20tNtSUdW_JG8T@Laptop-X1>
On Thu, Aug 15, 2024 at 03:56:36PM +0800, Hangbin Liu wrote:
> On Tue, Aug 13, 2024 at 11:38:16AM -0700, Breno Leitao wrote:
> > Adds a selftest that creates two virtual interfaces, assigns one to a
> > new namespace, and assigns IP addresses to both.
> >
> > It listens on the destination interface using socat and configures a
> > dynamic target on netconsole, pointing to the destination IP address.
> >
> > The test then checks if the message was received properly on the
> > destination interface.
> >
> > Signed-off-by: Breno Leitao <leitao@debian.org>
> > ---
> > Changelog:
> >
> > v2:
> > * Change the location of the path (Jakub)
> > * Move from veth to netdevsim
> > * Other small changes in dependency checks and cleanup
> >
> > v1:
> > * https://lore.kernel.org/all/ZqyUHN770pjSofTC@gmail.com/
> >
> > MAINTAINERS | 1 +
> > tools/testing/selftests/drivers/net/Makefile | 1 +
> > .../selftests/drivers/net/netcons_basic.sh | 223 ++++++++++++++++++
> > 3 files changed, 225 insertions(+)
> > create mode 100755 tools/testing/selftests/drivers/net/netcons_basic.sh
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index a9dace908305..ded45f1dff7e 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -15770,6 +15770,7 @@ M: Breno Leitao <leitao@debian.org>
> > S: Maintained
> > F: Documentation/networking/netconsole.rst
> > F: drivers/net/netconsole.c
> > +F: tools/testing/selftests/drivers/net/netcons_basic.sh
> >
> > NETDEVSIM
> > M: Jakub Kicinski <kuba@kernel.org>
> > diff --git a/tools/testing/selftests/drivers/net/Makefile b/tools/testing/selftests/drivers/net/Makefile
> > index e54f382bcb02..928530b26abc 100644
> > --- a/tools/testing/selftests/drivers/net/Makefile
> > +++ b/tools/testing/selftests/drivers/net/Makefile
> > @@ -3,6 +3,7 @@
> > TEST_INCLUDES := $(wildcard lib/py/*.py)
> >
> > TEST_PROGS := \
> > + netcons_basic.sh \
> > ping.py \
> > queues.py \
> > stats.py \
> > diff --git a/tools/testing/selftests/drivers/net/netcons_basic.sh b/tools/testing/selftests/drivers/net/netcons_basic.sh
> > new file mode 100755
> > index 000000000000..e0e58fc7e89f
> > --- /dev/null
> > +++ b/tools/testing/selftests/drivers/net/netcons_basic.sh
> > @@ -0,0 +1,223 @@
> > +#!/usr/bin/env bash
> > +# SPDX-License-Identifier: GPL-2.0
> > +
> > +# This test creates two netdevsim virtual interfaces, assigns one of them (the
> > +# "destination interface") to a new namespace, and assigns IP addresses to both
> > +# interfaces.
> > +#
> > +# It listens on the destination interface using socat and configures a dynamic
> > +# target on netconsole, pointing to the destination IP address.
> > +#
> > +# Finally, it checks whether the message was received properly on the
> > +# destination interface. Note that this test may pollute the kernel log buffer
> > +# (dmesg) and relies on dynamic configuration and namespaces being configured.
> > +#
> > +# Author: Breno Leitao <leitao@debian.org>
> > +
> > +set -euo pipefail
> > +
> > +SCRIPTDIR=$(dirname "$(readlink -e "${BASH_SOURCE[0]}")")
> > +
> > +# Simple script to test dynamic targets in netconsole
> > +SRCIF="" # to be populated later
> > +SRCIP=192.168.1.1
> > +DSTIF="" # to be populated later
> > +DSTIP=192.168.1.2
> > +
> > +PORT="6666"
> > +MSG="netconsole selftest"
> > +TARGET=$(mktemp -u netcons_XXXXX)
> > +NETCONS_CONFIGFS="/sys/kernel/config/netconsole"
> > +NETCONS_PATH="${NETCONS_CONFIGFS}"/"${TARGET}"
> > +# This will have some tmp values appended to it in set_network()
> > +NAMESPACE="netconsns_dst"
> > +
> > +# IDs for netdevsim
> > +NSIM_DEV_1_ID=$((256 + RANDOM % 256))
> > +NSIM_DEV_2_ID=$((512 + RANDOM % 256))
> > +
> > +# Used to create and delete namespaces
> > +source "${SCRIPTDIR}"/../../net/lib.sh
>
> If you want to source net/lib.sh, you need to add it to Makefile. e.g.
>
> TEST_INCLUDES := ../../../net/lib.sh
>
> See example in tools/testing/selftests/drivers/net/bonding/Makefile
Thanks. I will update.
--breno
prev parent reply other threads:[~2024-08-15 8:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-13 18:38 [PATCH net-next v2] net: netconsole: selftests: Create a new netconsole selftest Breno Leitao
2024-08-13 22:37 ` Jakub Kicinski
2024-08-14 8:31 ` Breno Leitao
2024-08-14 10:24 ` Petr Machata
2024-08-14 11:31 ` Matthieu Baerts
2024-08-14 16:07 ` Breno Leitao
2024-08-15 7:56 ` Hangbin Liu
2024-08-15 8:15 ` Breno Leitao [this message]
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=Zr25OecANx77Y+4O@gmail.com \
--to=leitao@debian.org \
--cc=davem@davemloft.net \
--cc=dw@davidwei.uk \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=liuhangbin@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=petrm@nvidia.com \
--cc=shuah@kernel.org \
--cc=willemb@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.