Subject: Re: [PATCH net-next v3 8/9] selftests: drivers: hw: update ethtool_rmon to work with a single local interface

From: Petr Machata <[email-masked]>
Date: Fri, 20 Mar 2026 12:38:44 +0100

Ioana Ciornei <[email-masked]> writes:

> This patch finalizes the transition to work with a single local
> interface for the ethtool_rmon.sh test. Each 'ip link' and 'ethtool'
> command used by the test is annotated with the necessary run_on in
> order to be executed on the necessary target system, be it local, in
> another network namespace or through ssh.
>
> Since we need NETIF up and running also for control traffic, we now
> expect that the interfaces are up and running and do not touch bring
> them up or down at the end of the test. This is also documented in the
> drivers/net/README.rst.
>
> The ethtool_rmon.sh script can still be used in the older fashion by
> passing two interfaces as command line arguments, the only restriction
> is that those interfaces need to be already up.
>
> As part of the kselftest infrastructure, this test can be run in the
> following manner:
>
>  $ make -C tools/testing/selftests/ TARGETS="drivers/net drivers/net/hw" \
>  install INSTALL_PATH=/tmp/ksft-net-drv
>  $ cd /tmp/ksft-net-drv/
>  $ cat > ./drivers/net/net.config <<EOF
>  NETIF=endpmac17
>  LOCAL_V4=17.0.0.1
>  REMOTE_V4=17.0.0.2
>  REMOTE_TYPE=ssh
>  REMOTE_ARGS=[email-masked]
>  EOF
>
>  $ ./run_kselftest.sh -t drivers/net/hw:ethtool_rmon.sh
>  TAP version 13
>  1..1
>  # timeout set to 0
>  # selftests: drivers/net/hw: ethtool_rmon.sh
>  # TEST: rx-pkts64to64 on endpmac17                                    [ OK ]
>  # TEST: rx-pkts65to127 on endpmac17                                   [ OK ]
>  # TEST: rx-pkts128to255 on endpmac17                                  [ OK ]
>  # TEST: rx-pkts256to511 on endpmac17                                  [ OK ]
>  # TEST: rx-pkts512to1023 on endpmac17                                 [ OK ]
>  # TEST: rx-pkts1024to1518 on endpmac17                                [ OK ]
>  # TEST: rx-pkts1519to10240 on endpmac17                               [ OK ]
>  # TEST: tx-pkts64to64 on endpmac17                                    [ OK ]
>  # TEST: tx-pkts65to127 on endpmac17                                   [ OK ]
>  # TEST: tx-pkts128to255 on endpmac17                                  [ OK ]
>  # TEST: tx-pkts256to511 on endpmac17                                  [ OK ]
>  # TEST: tx-pkts512to1023 on endpmac17                                 [ OK ]
>  # TEST: tx-pkts1024to1518 on endpmac17                                [ OK ]
>  # TEST: tx-pkts1519to10240 on endpmac17                               [ OK ]
>  ok 1 selftests: drivers/net/hw: ethtool_rmon.sh
>
> Signed-off-by: Ioana Ciornei <[email-masked]>

Reviewed-by: Petr Machata <[email-masked]>

> @@ -119,8 +119,8 @@ setup_prepare()
>  	h2=${NETIFS[p2]}
>  
>  	for iface in "$h1" "$h2"; do
> -		netif_mtu["$iface"]=$(ip -j link show dev "$iface" | jq -r '.[0].mtu')
> -		ip link set dev "$iface" up
> +		netif_mtu["$iface"]=$(run_on "$iface" ip -j link show dev "$iface" | \
> +			jq -r '.[0].mtu')

BTW we have mtu_set() / mtu_restore() in forwarding/lib.sh

>  	done
>  }
>  
> @@ -128,10 +128,10 @@ cleanup()
>  {
>  	pre_cleanup
>  
> +	# Do not bring down the interfaces, just configure the initial MTU
>  	for iface in "$h2" "$h1"; do
> -		ip link set dev "$iface" \
> -			mtu "${netif_mtu[$iface]}" \
> -			down
> +		run_on "$iface" ip link set dev "$iface" \
> +			mtu "${netif_mtu[$iface]}"
>  	done
>  }