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@xxxxxxxxxx> > > --- > > 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@xxxxxxxxx/ > > > > 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@xxxxxxxxxx> > > 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@xxxxxxxxxx> > > 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@xxxxxxxxxx> > > + > > +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