From nobody Sat Jun 13 04:52:29 2026 Received: from mx1.riseup.net (mx1.riseup.net [198.252.153.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2BCEC3B27DD; Sun, 10 May 2026 16:44:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.252.153.129 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778431452; cv=none; b=r6GpYUHiJ2/G2rji6MzVTWGQViFpuO0bdS/zkGnybYfTF2c1qitPz13iHIoBeWK2Va8/kRWF63GgGBMCxVfAWgDhc2ZHPI56NQwJrt+PnIkwmxN7I3lJefTkVZvHuWgp4uOBcpTXfguVtIN6YP+qkwVSgqwlqFc6KgWj6Tznlvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778431452; c=relaxed/simple; bh=FKLE7ejqghDYJ/w85WEZJrDaGoQqUHvNQ24XD2b+mFQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SNe2TkcInGwIUJn6ojT6cH7CF+Q+DrdHNVWpqzIZ8kKP08+bRYpwxPBkzUNHCU9RlkjxnXWc8MwEoDov75ApTwEcnKdjyBna9ApjZmXOCdNeTl1Eum0g4IvtSL1l/ofsi3vP5YNsiQlpLqfhg9K6MXFagltt3LTMkttbAYJ6E70= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riseup.net; spf=pass smtp.mailfrom=riseup.net; dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b=RRl8BJi4; arc=none smtp.client-ip=198.252.153.129 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riseup.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riseup.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b="RRl8BJi4" Received: from fews01-sea.riseup.net (fews01-sea-pn.riseup.net [10.0.1.109]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx1.riseup.net (Postfix) with ESMTPS id 4gD7wh5cplzDqLl; Sun, 10 May 2026 16:44:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riseup.net; s=squak; t=1778431445; bh=cDBCDSiXpvET2XJyOFjfqyw5G0DnmnMMUfuclS7LHK0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RRl8BJi4QTvXaTxsdADxVR4HogdBZYieU5H3FlSHu8cVlfxxLbPh/MYXUZ3gT3RT/ SxKV5ZpbzAuIqJMoF0mqO31BEoj8gg4aTAG2lMFUtBMm66Ze0hpTg9jdPQ1DmAeh8g NaABhZanX2moCYpWfbiVX6Dbozp/YIicf9pPY11g= X-Riseup-User-ID: 998381A68B107694913F38E59B8B9B4AB69066767B0BD33FE9FF442520EA5DCF Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews01-sea.riseup.net (Postfix) with ESMTPSA id 4gD7wd0ZGSz1yZk; Sun, 10 May 2026 16:44:00 +0000 (UTC) From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= To: Jakub Kicinski , Andrew Lunn , "David S . Miller" , Eric Dumazet , Paolo Abeni , Shuah Khan Cc: Sabrina Dubroca , Filip Pokryvka , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= Subject: [PATCH net-next 1/5] netdevsim: Add ethtool get_link support Date: Sun, 10 May 2026 18:43:33 +0200 Message-ID: <20260510164337.7611-2-ihuguet@riseup.net> In-Reply-To: <20260510164337.7611-1-ihuguet@riseup.net> References: <20260510164337.7611-1-ihuguet@riseup.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Filip Pokryvka Add ethtool get_link callback to netdevsim. They are devices that have the concept of a carrier, so it makes sense that it can be queried via ethtool too, like ethernet devices. Signed-off-by: Filip Pokryvka --- drivers/net/netdevsim/ethtool.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/netdevsim/ethtool.c b/drivers/net/netdevsim/ethtoo= l.c index 36a201533aae..4d47eb989c24 100644 --- a/drivers/net/netdevsim/ethtool.c +++ b/drivers/net/netdevsim/ethtool.c @@ -209,6 +209,7 @@ static const struct ethtool_ops nsim_ethtool_ops =3D { .supported_coalesce_params =3D ETHTOOL_COALESCE_ALL_PARAMS, .supported_ring_params =3D ETHTOOL_RING_USE_TCP_DATA_SPLIT | ETHTOOL_RING_USE_HDS_THRS, + .get_link =3D ethtool_op_get_link, .get_pause_stats =3D nsim_get_pause_stats, .get_pauseparam =3D nsim_get_pauseparam, .set_pauseparam =3D nsim_set_pauseparam, --=20 2.53.0 From nobody Sat Jun 13 04:52:29 2026 Received: from mx1.riseup.net (mx1.riseup.net [198.252.153.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A65DB3B27F5; Sun, 10 May 2026 16:44:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.252.153.129 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778431451; cv=none; b=rOVemD8/KchZqVqNDBCh9YSRN/GIanFafrRT0RVPmUClUpJNSEW3MkJsTNznTA5Z9v+iahzQsbV+x5QEroXYlfbUjGmsW3bAv6wvWPJ6oKUNd9CyIvanlnx2PTyhDEclXqz2FhHb0NBUaZB1CSRhlVoOr1Xnj2v3AC/m0Ed+C8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778431451; c=relaxed/simple; bh=4/+8QLEncpuEUOX7PYCCSu0mx8Wt5d/8m7jFzOWwAyw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=TLr3msNx0jwCsRjiloyISx1c4lR9a3obpfI57FLdYIjPyTxPG6vx7t6masBwdIBxjStDgsOD9YfJUpia5CqqMKOpvz7MYh9kXHeW10CyNSkux74B8Sisc1k1jopdDG6xpQH86MFAcw9sMzqq+DMdI9lOWF1sq+4bU7grxqE6cbc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riseup.net; spf=pass smtp.mailfrom=riseup.net; dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b=l54nS5wC; arc=none smtp.client-ip=198.252.153.129 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riseup.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riseup.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b="l54nS5wC" Received: from fews01-sea.riseup.net (fews01-sea-pn.riseup.net [10.0.1.109]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx1.riseup.net (Postfix) with ESMTPS id 4gD7wm6V7GzDqRS; Sun, 10 May 2026 16:44:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riseup.net; s=squak; t=1778431449; bh=9Dfuf2Fb5LqtwjiOhAGj85YmoBeMhXw0q2RtB+ZpCP0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=l54nS5wCwgV5uREiqWzT2M+LghiaxH7VYvxLsvCx+/mrq343BcDUR93VV7umlLIIL YFsDDKY0XaP5EIEaYfYGHv30dR5CwgMGSp/UlWrVcPI3Uc2L57MNy2fwVi8Vo/UC8o hwZPbnQAnt+FAB/TfJ3DZLlF/19pZMGhKnLD9o9s= X-Riseup-User-ID: BEE4564464BC4EADF34C685272FF5A21964A9420FB28BA70DD76A19C63D9ABD3 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews01-sea.riseup.net (Postfix) with ESMTPSA id 4gD7wj11dfz1yDs; Sun, 10 May 2026 16:44:04 +0000 (UTC) From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= To: Jakub Kicinski , Andrew Lunn , "David S . Miller" , Eric Dumazet , Paolo Abeni , Shuah Khan Cc: Sabrina Dubroca , Filip Pokryvka , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= Subject: [PATCH net-next 2/5] netdevsim: allow changing carrier state via sysfs Date: Sun, 10 May 2026 18:43:34 +0200 Message-ID: <20260510164337.7611-3-ihuguet@riseup.net> In-Reply-To: <20260510164337.7611-1-ihuguet@riseup.net> References: <20260510164337.7611-1-ihuguet@riseup.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Currently it is only possible to change it by linking a peer netdevsim and setting the peer's state to down. Allow to change the carrier state when having a single netdevsim device without any peer, by writing to it's carrier attribute in sysfs: /sys/bus/netdevsim/devices/netdevsimX/net/eniYynpZ/carrier. This might be useful for carrier related tests where a peer device is not needed for anything else. If it's linked with a peer, change the carrier of both, while they stay administratively up. The alternative would be to return EOPNOTSUPP, but that doesn't seem very intuitive. Also, there is no reason why it should not be supported, it simulates the cable being cut or disconnected, for example. Signed-off-by: =C3=8D=C3=B1igo Huguet --- drivers/net/netdevsim/netdev.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c index a750768912b5..4f77c9171b06 100644 --- a/drivers/net/netdevsim/netdev.c +++ b/drivers/net/netdevsim/netdev.c @@ -616,6 +616,28 @@ static void nsim_shaper_cap(struct net_shaper_binding = *binding, *flags =3D ULONG_MAX; } =20 +static int nsim_change_carrier(struct net_device *dev, bool new_carrier) +{ + struct netdevsim *ns =3D netdev_priv(dev); + struct netdevsim *peer; + + netdev_assert_locked(dev); + + peer =3D rtnl_dereference(ns->peer); + + if (new_carrier) { + netif_carrier_on(dev); + if (peer) + netif_carrier_on(peer->netdev); + } else { + netif_carrier_off(dev); + if (peer) + netif_carrier_off(peer->netdev); + } + + return 0; +} + static const struct net_shaper_ops nsim_shaper_ops =3D { .set =3D nsim_shaper_set, .delete =3D nsim_shaper_del, @@ -645,6 +667,7 @@ static const struct net_device_ops nsim_netdev_ops =3D { .ndo_stop =3D nsim_stop, .ndo_vlan_rx_add_vid =3D nsim_vlan_rx_add_vid, .ndo_vlan_rx_kill_vid =3D nsim_vlan_rx_kill_vid, + .ndo_change_carrier =3D nsim_change_carrier, .net_shaper_ops =3D &nsim_shaper_ops, }; =20 --=20 2.53.0 From nobody Sat Jun 13 04:52:29 2026 Received: from mx0.riseup.net (mx0.riseup.net [198.252.153.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 71F3C3B27F1; Sun, 10 May 2026 16:44:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.252.153.6 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778431464; cv=none; b=PLu0bKYhilAqNnVMA+nXwhuB5YhRxVmL5WP28oAaltWGPaMxDhLvSlkWjHmEdQZJv0F0vnx2a0EeoXT0Ok1af/AWU4QDaMwCUptXftVOJfoyhCeB+RtTg4yv5i2FgTlEDgoZXl97KIJB8imcDW6WGdeDGuPCHhzVFT96d4+/pJU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778431464; c=relaxed/simple; bh=LMLVjAsjBuo0szwu8dH3HCZzhlvPuEqY3f0q4+SuHec=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=C1IDYMKhKf6q8w1RsamR/232e4H/uEfICFnCxkeIUmYzdSPXGlTbr8uwio5UuOuAHkWcJYxdFGbB88q4i3PButj3WiWucHCHHSvFviDVY4PfV8xVMlPx51HO7BKzM26A2x4LS0Z1IeQnXZjL7UHqcel7szYXkwRZGE2FifIU4eU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riseup.net; spf=pass smtp.mailfrom=riseup.net; dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b=cnxo1nym; arc=none smtp.client-ip=198.252.153.6 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riseup.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riseup.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b="cnxo1nym" Received: from fews01-sea.riseup.net (fews01-sea-pn.riseup.net [10.0.1.109]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx0.riseup.net (Postfix) with ESMTPS id 4gD7ws05Ggz9sF1; Sun, 10 May 2026 16:44:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riseup.net; s=squak; t=1778431453; bh=auME73nsDxf2WJl0sr95xNr3cPz4BQtxr2Oqi/bQu78=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cnxo1nymR3VHpgSUv37i58tX/jmFJWlYFrMZY8sUZ6fwJTE3Df8NohnhbnBchK4c/ CdhtCGj59kKkUM9rrLsogCK5415O0bgbBFPVNd9w4xYuvq4eSescGXaekdXbhoEXbv 3XvvWOieNHdZw2HlBzJq0lMiHYW0kQDzN5tsNWtA= X-Riseup-User-ID: FBFA4F0E5DBAF7474A9843AB26C820C84BC9D8518822C9AB0AA9AB66234F2E5A Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews01-sea.riseup.net (Postfix) with ESMTPSA id 4gD7wn1hpmz1yc3; Sun, 10 May 2026 16:44:08 +0000 (UTC) From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= To: Jakub Kicinski , Andrew Lunn , "David S . Miller" , Eric Dumazet , Paolo Abeni , Shuah Khan Cc: Sabrina Dubroca , Filip Pokryvka , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= Subject: [PATCH net-next 3/5] selftest: netdevsim: test carrier change via sysfs Date: Sun, 10 May 2026 18:43:35 +0200 Message-ID: <20260510164337.7611-4-ihuguet@riseup.net> In-Reply-To: <20260510164337.7611-1-ihuguet@riseup.net> References: <20260510164337.7611-1-ihuguet@riseup.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The previous commits allowed to change the carrier state via the sysfs carrier attribute and to get the carrier state via ethtool. Add selftest for it. Signed-off-by: =C3=8D=C3=B1igo Huguet --- .../selftests/drivers/net/netdevsim/peer.sh | 59 +++++++++++++++---- 1 file changed, 48 insertions(+), 11 deletions(-) diff --git a/tools/testing/selftests/drivers/net/netdevsim/peer.sh b/tools/= testing/selftests/drivers/net/netdevsim/peer.sh index f4721f7636dd..5e7b6c1d0bfb 100755 --- a/tools/testing/selftests/drivers/net/netdevsim/peer.sh +++ b/tools/testing/selftests/drivers/net/netdevsim/peer.sh @@ -52,21 +52,17 @@ cleanup_ns() ip netns del nssv } =20 -is_carrier_up() -{ - local netns=3D"$1" - local nsim_dev=3D"$2" - - test "$(ip netns exec "$netns" \ - cat /sys/class/net/"$nsim_dev"/carrier 2>/dev/null)" -eq 1 -} - assert_carrier_up() { local netns=3D"$1" local nsim_dev=3D"$2" =20 - if ! is_carrier_up "$netns" "$nsim_dev"; then + local sysfs_carrier=3D"$(ip netns exec "$netns" \ + cat /sys/class/net/"$nsim_dev"/carrier 2>/dev/null)" + local ethtool_carrier=3D"$(ip netns exec "$netns" \ + ethtool -j "$nsim_dev" | jq '.[0]["link-detected"]' 2>/dev/null)" + + if [ "$sysfs_carrier" -ne 1 -o "$ethtool_carrier" !=3D "true" ]; then echo "$nsim_dev's carrier should be UP, but it isn't" cleanup_ns exit 1 @@ -78,13 +74,36 @@ assert_carrier_down() local netns=3D"$1" local nsim_dev=3D"$2" =20 - if is_carrier_up "$netns" "$nsim_dev"; then + local sysfs_carrier=3D"$(ip netns exec "$netns" \ + cat /sys/class/net/"$nsim_dev"/carrier 2>/dev/null)" + local ethtool_carrier=3D"$(ip netns exec "$netns" \ + ethtool -j "$nsim_dev" | jq '.[0]["link-detected"]' 2>/dev/null)" + + if [ "$sysfs_carrier" -ne 0 -o "$ethtool_carrier" !=3D "false" ]; then echo "$nsim_dev's carrier should be DOWN, but it isn't" cleanup_ns exit 1 fi } =20 +set_carrier_up() +{ + local netns=3D"$1" + local nsim_dev=3D"$2" + + ip netns exec "$netns" \ + sh -c "echo 1 > /sys/class/net/$nsim_dev/carrier" 2>/dev/null +} + +set_carrier_down() +{ + local netns=3D"$1" + local nsim_dev=3D"$2" + + ip netns exec "$netns" \ + sh -c "echo 0 > /sys/class/net/$nsim_dev/carrier" 2>/dev/null +} + ### ### Code start ### @@ -161,6 +180,14 @@ ip netns exec nssv ip link set dev "$NSIM_DEV_1_NAME" = up assert_carrier_down nssv "$NSIM_DEV_1_NAME" assert_carrier_down nscl "$NSIM_DEV_2_NAME" =20 +set_carrier_up nssv "$NSIM_DEV_1_NAME" + +assert_carrier_up nssv "$NSIM_DEV_1_NAME" +assert_carrier_down nscl "$NSIM_DEV_2_NAME" + +set_carrier_down nssv "$NSIM_DEV_1_NAME" +assert_carrier_down nssv "$NSIM_DEV_1_NAME" + echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX $NSIM_DEV_2_FD:$NSIM_DEV_2_IFIDX" >= $NSIM_DEV_SYS_LINK =20 assert_carrier_up nssv "$NSIM_DEV_1_NAME" @@ -172,6 +199,16 @@ ip netns exec nssv ip link set dev "$NSIM_DEV_1_NAME" = up assert_carrier_up nssv "$NSIM_DEV_1_NAME" assert_carrier_up nscl "$NSIM_DEV_2_NAME" =20 +set_carrier_down nssv "$NSIM_DEV_1_NAME" + +assert_carrier_down nssv "$NSIM_DEV_1_NAME" +assert_carrier_down nscl "$NSIM_DEV_2_NAME" + +set_carrier_up nscl "$NSIM_DEV_2_NAME" + +assert_carrier_up nssv "$NSIM_DEV_1_NAME" +assert_carrier_up nscl "$NSIM_DEV_2_NAME" + # send/recv packets =20 tmp_file=3D$(mktemp) --=20 2.53.0 From nobody Sat Jun 13 04:52:29 2026 Received: from mx1.riseup.net (mx1.riseup.net [198.252.153.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 371603B27CF; Sun, 10 May 2026 16:44:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.252.153.129 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778431459; cv=none; b=YCLZ1Fn+YY0gQ3SD+F+Z17RUNP2zwn4EtpxfUPQPL5Yl60z8ID4QdHE6hwCJg1pVO7hDEyliOCechKZZ9qjw1GiA2D0eQt9/v3TtydVIDY4+f3u4ZcW4aEEFhXwDdmCqBvduRXj/pfhJwGAV+Zq6/YjFfXmyjGuD3pF5Sxgafa4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778431459; c=relaxed/simple; bh=3XFxg4578Egfz87dGChvi1XzwYpSp7bqgoFpUif/CTk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Un8Ho6MqZT0wkAd6r5Re08c6ag2j7axYQ6PIl3lkclUZzPTSzBpS3D+tOqyewxdB0r9wpwbHBulkfyrsnyTZvbh6i47FuAHhQ/ipKfIPFetkqQ4+/FikCNKpQb6nebIQzea8wD53hDjqr9f3T0KQyFvyFPU5HmWMT9EiVcybyuU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riseup.net; spf=pass smtp.mailfrom=riseup.net; dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b=Vq46uGiv; arc=none smtp.client-ip=198.252.153.129 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riseup.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riseup.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b="Vq46uGiv" Received: from fews01-sea.riseup.net (fews01-sea-pn.riseup.net [10.0.1.109]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx1.riseup.net (Postfix) with ESMTPS id 4gD7wx3hYvzDqWT; Sun, 10 May 2026 16:44:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riseup.net; s=squak; t=1778431457; bh=etVC0bTQFaLljz45Ozw6Z5ar3mBaujDjOBP6pEiANco=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vq46uGiv15Wf7VYRGysTH9++I3onNG2LPm8Anl9fPbr3rsNSvOfW8dfIZXYcIH1jg PX3WKTBIYThXaqr3AUQYP+uL7nQ56N0IarVevJDd4T/+QjqkI8hLXQSAk8mqQjtQsr TfKLmq933IparXKKgEMugCvO7PpuKtOKlDzHzihA= X-Riseup-User-ID: CA6881DCE3628AC70C0111573035719C860D40349A9E12D1DA98BC111642190B Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews01-sea.riseup.net (Postfix) with ESMTPSA id 4gD7ws2PVnz1yDs; Sun, 10 May 2026 16:44:13 +0000 (UTC) From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= To: Jakub Kicinski , Andrew Lunn , "David S . Miller" , Eric Dumazet , Paolo Abeni , Shuah Khan Cc: Sabrina Dubroca , Filip Pokryvka , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= Subject: [PATCH net-next 4/5] selftest: netdevsim: cleanup the devices and module on failure Date: Sun, 10 May 2026 18:43:36 +0200 Message-ID: <20260510164337.7611-5-ihuguet@riseup.net> In-Reply-To: <20260510164337.7611-1-ihuguet@riseup.net> References: <20260510164337.7611-1-ihuguet@riseup.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable In case of failures only the netns were cleaned, leaving behind the netdevsim devices created for the test and the module loaded. On failure, delete the devices and unload the module. Signed-off-by: =C3=8D=C3=B1igo Huguet --- .../selftests/drivers/net/netdevsim/peer.sh | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/tools/testing/selftests/drivers/net/netdevsim/peer.sh b/tools/= testing/selftests/drivers/net/netdevsim/peer.sh index 5e7b6c1d0bfb..ec96015bc9eb 100755 --- a/tools/testing/selftests/drivers/net/netdevsim/peer.sh +++ b/tools/testing/selftests/drivers/net/netdevsim/peer.sh @@ -46,10 +46,13 @@ setup_ns() set +e } =20 -cleanup_ns() +cleanup() { ip netns del nscl ip netns del nssv + echo $NSIM_DEV_2_ID > $NSIM_DEV_SYS_DEL + echo $NSIM_DEV_1_ID > $NSIM_DEV_SYS_DEL + modprobe -r netdevsim } =20 assert_carrier_up() @@ -64,7 +67,6 @@ assert_carrier_up() =20 if [ "$sysfs_carrier" -ne 1 -o "$ethtool_carrier" !=3D "true" ]; then echo "$nsim_dev's carrier should be UP, but it isn't" - cleanup_ns exit 1 fi } @@ -81,7 +83,6 @@ assert_carrier_down() =20 if [ "$sysfs_carrier" -ne 0 -o "$ethtool_carrier" !=3D "false" ]; then echo "$nsim_dev's carrier should be DOWN, but it isn't" - cleanup_ns exit 1 fi } @@ -120,6 +121,8 @@ udevadm settle =20 setup_ns =20 +trap cleanup EXIT + NSIM_DEV_1_FD=3D$((256 + RANDOM % 256)) exec {NSIM_DEV_1_FD} $NSIM_DEV_SY= S_LINK 2>/dev/null if [ $? -eq 0 ]; then echo "linking with non-existent netdevsim should fail" - cleanup_ns exit 1 fi =20 echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX 2000:$NSIM_DEV_2_IFIDX" > $NSIM_DEV= _SYS_LINK 2>/dev/null if [ $? -eq 0 ]; then echo "linking with non-existent netnsid should fail" - cleanup_ns exit 1 fi =20 echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX $NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX" >= $NSIM_DEV_SYS_LINK 2>/dev/null if [ $? -eq 0 ]; then echo "linking with self should fail" - cleanup_ns exit 1 fi =20 echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX $NSIM_DEV_2_FD:$NSIM_DEV_2_IFIDX" >= $NSIM_DEV_SYS_LINK if [ $? -ne 0 ]; then echo "linking netdevsim1 with netdevsim2 should succeed" - cleanup_ns exit 1 fi =20 @@ -161,7 +160,6 @@ fi echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX $NSIM_DEV_2_FD:a" > $NSIM_DEV_SYS_L= INK 2>/dev/null if [ $? -eq 0 ]; then echo "invalid arg should fail" - cleanup_ns exit 1 fi =20 @@ -228,13 +226,6 @@ fi =20 echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX" > $NSIM_DEV_SYS_UNLINK =20 -echo $NSIM_DEV_2_ID > $NSIM_DEV_SYS_DEL - kill $pid -echo $NSIM_DEV_1_ID > $NSIM_DEV_SYS_DEL - -cleanup_ns - -modprobe -r netdevsim =20 exit $res --=20 2.53.0 From nobody Sat Jun 13 04:52:29 2026 Received: from mx1.riseup.net (mx1.riseup.net [198.252.153.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EE1E3ACF15; Sun, 10 May 2026 16:44:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.252.153.129 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778431464; cv=none; b=iBTIoe3n4NOj/azTCp3FrCT72QSeKaPW4izKupZfzbu+FfJNM3fGSPLi7LOAodcOsdl6baVsy1YCLLXpB8V78jprYkOYXJ4i0AZEEQGRbuRF0GN+mFaf9nScAxOhuj8nGpAyr65M8skDcfJBMeQs3Mv7Qb64krErlh3A6d7OT7Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778431464; c=relaxed/simple; bh=RpmaRYY3PJernLi+mHT5wcbgojVG+s9emQiFmp8vQRE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EdW8rtyWjzCM3JsseVeonTAksJQYBShhc/wqiYlGPC8z/WcT/xB3blNom6fTFKrRqkqT/Aph/wBLhlyq8j6MMFiOKZy//hvl0LrB1c+dNwdC7jOlvCVdvozlhtfh54iqq/2+83Nuum1KAH0Y444VHuVCLiKfB/Tnvsg1b6sjV3M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riseup.net; spf=pass smtp.mailfrom=riseup.net; dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b=lqk3pod7; arc=none smtp.client-ip=198.252.153.129 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riseup.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riseup.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b="lqk3pod7" Received: from fews01-sea.riseup.net (fews01-sea-pn.riseup.net [10.0.1.109]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx1.riseup.net (Postfix) with ESMTPS id 4gD7x10FkKzDqSf; Sun, 10 May 2026 16:44:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riseup.net; s=squak; t=1778431461; bh=5T6leDP8tmF3XvpwD7l+rnfsgJdFuQTS47BKmtBbf7E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lqk3pod7Nf5wp43CXQJ6MYEpIucBqZQvSc8kOWAV4yDkUSlZ3gX8L0J9cQbwgk2wu b00OY6SujXnDN8JgP5bODlIMuV/jVeO3XvMuN4Jc/hEOCgQ3lRwbpd/5x/O/xD0WrC z5rpH/miZT1VDYMppByY34X9WaL1XQMVmFojnsjQ= X-Riseup-User-ID: EA9A6AE0E301AC6588F85268079748D01CA43CB25B8D93121CAEFDF9351872E6 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews01-sea.riseup.net (Postfix) with ESMTPSA id 4gD7wx6jfRz1yDs; Sun, 10 May 2026 16:44:17 +0000 (UTC) From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= To: Jakub Kicinski , Andrew Lunn , "David S . Miller" , Eric Dumazet , Paolo Abeni , Shuah Khan Cc: Sabrina Dubroca , Filip Pokryvka , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= Subject: [PATCH net-next 5/5] selftest: netdevsim: suppress socat warnings Date: Sun, 10 May 2026 18:43:37 +0200 Message-ID: <20260510164337.7611-6-ihuguet@riseup.net> In-Reply-To: <20260510164337.7611-1-ihuguet@riseup.net> References: <20260510164337.7611-1-ihuguet@riseup.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable When executing the peer.sh selftest, socat emits these 2 warnings: socat[116839] W address is opened in read-write mode but only supports re= ad-only socat[116833] W exiting on signal 15 The first one is because socat tries to open in read-write mode by default, but STDIN can only be opened in read mode. Fix it by adding the -u option (unidirectional left-to-right). The second is because 'kill' is used to terminate the first socat process. Suppress this warning by redirecting its stderr to /dev/null Signed-off-by: =C3=8D=C3=B1igo Huguet --- tools/testing/selftests/drivers/net/netdevsim/peer.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/drivers/net/netdevsim/peer.sh b/tools/= testing/selftests/drivers/net/netdevsim/peer.sh index ec96015bc9eb..183a130c6e4b 100755 --- a/tools/testing/selftests/drivers/net/netdevsim/peer.sh +++ b/tools/testing/selftests/drivers/net/netdevsim/peer.sh @@ -210,13 +210,13 @@ assert_carrier_up nscl "$NSIM_DEV_2_NAME" # send/recv packets =20 tmp_file=3D$(mktemp) -ip netns exec nssv socat TCP-LISTEN:1234,fork $tmp_file & +ip netns exec nssv socat TCP-LISTEN:1234,fork $tmp_file 2>/dev/null & pid=3D$! res=3D0 =20 wait_local_port_listen nssv 1234 tcp =20 -echo "HI" | ip netns exec nscl socat STDIN TCP:192.168.1.1:1234 +echo "HI" | ip netns exec nscl socat -u STDIN TCP:192.168.1.1:1234 =20 count=3D$(cat $tmp_file | wc -c) if [[ $count -ne 3 ]]; then --=20 2.53.0