From nobody Sat Feb 7 17:55:08 2026 Received: from outbound.st.icloud.com (p-east2-cluster5-host9-snip4-2.eps.apple.com [57.103.79.105]) (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 CEC883191CA for ; Mon, 29 Dec 2025 18:33:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=57.103.79.105 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767033213; cv=none; b=a+du7nLmeguMv9KljZSIDVeHI8k17shbNu8lMC+wAzLI/YlEeqiskXyhdRxYakgr4rq5MeYMVTmyyZArAhScExaK1Wv2yqfPEN1Vn1qOkyLS1uq5+8rGjfnSAN6IhyGJv2NXbPDbyUjq2BlKaV1Va3JIwHdEPknsgw1CLjbYixA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767033213; c=relaxed/simple; bh=F6hi/n/cmMeLDQQi3XHH51XWTCeUo600IxFKsvd7mA8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pcxehtIOkdt9TOwOkYIDNUY2Qxs2IzC3/6Q1F+/0BGdOOB8wtjAnmFmVLQ57IuSTx6deEAHAiu/YbrB0BwZFUWBHgBXjcQEIZsvifMiCnPfU0UgXmecVxJiIsYZcv1Uhg77REKAYS7qWOp9tR63lESZdeLw+6MTiEk6hhxCtDVU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=y-koj.net; spf=pass smtp.mailfrom=y-koj.net; dkim=fail (0-bit key) header.d=y-koj.net header.i=@y-koj.net header.b=fTjksTnz reason="key not found in DNS"; arc=none smtp.client-ip=57.103.79.105 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=y-koj.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=y-koj.net Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=y-koj.net header.i=@y-koj.net header.b="fTjksTnz" Received: from outbound.st.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-1a-60-percent-6 (Postfix) with ESMTPS id A8B3418002A4; Mon, 29 Dec 2025 18:33:26 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=y-koj.net; s=sig1; bh=ffUKAB/WImQI3cUv7+z8VSSk4PPyL0BQeWyDVBCYuQw=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=fTjksTnzgvZdnCq9BIdZd27OsphmtwKQZCBhRUCzQyk3UPuSCZANzMkyVTR3TtAZ5OD5DGH8npU0DQgYw+8JwrOyhir+qdsAPcOjwvK145W3i6PiNLJA+YFypg7vToMXWXA6Lxjy/t4v5arsCK2FsCPzuYKzGaRcT05JRqr4E0MRlqWW2OqcLc0ubrROFD9DfbepjspaQIWMMF02G8MKLDNogwIVKe3a7cakZDbqBtMkgGIwK69433cqiBmel+Dr733lo3OQPoSMJTdpgnFsxob8x/IFl43GkBXauqoEOORwoFLEw/tfn+c/1ri1A7zOXtELaawFWWDR7pyDmNMR2w== mail-alias-created-date: 1719758601013 Received: from desktop.tail809fd.ts.net (unknown [17.42.251.67]) by p00-icloudmta-asmtp-us-east-1a-60-percent-6 (Postfix) with ESMTPSA id F42381800B84; Mon, 29 Dec 2025 18:33:23 +0000 (UTC) From: yk@y-koj.net To: Jakub Kicinski , Andrew Lunn , "David S. Miller" , Eric Dumazet , Paolo Abeni , Breno Leitao Cc: Yohei Kojima , Andrew Lunn , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net 1/5] net: netdevsim: fix inconsistent carrier state after link/unlink Date: Tue, 30 Dec 2025 03:32:34 +0900 Message-ID: X-Mailer: git-send-email 2.51.2 In-Reply-To: References: 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 X-Authority-Info: v=2.4 cv=CdsFJbrl c=1 sm=1 tr=0 ts=6952c977 cx=c_apl:c_pps a=YrL12D//S6tul8v/L+6tKg==:117 a=YrL12D//S6tul8v/L+6tKg==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=jnl5ZKOAAAAA:8 a=7gZhQl7Q0LLefV5nMKsA:9 a=RNrZ5ZR47oNZP8zBN2PD:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjI5MDE3MCBTYWx0ZWRfXw1QwishnM/P8 Gn41SsTter2s+4x1iAfaZrAe+xRgfLEXQQQee/t7C+ACKFyIX78ZUVCk+eVocK3vX+wNJuF5ntM 49q2U7y/NZcA8g3rAnBQzOLSIjpHML+KT2i2orFUp0i5iDphFHbpI/lK/yedARziJF06tS/8V7q eHdQDizweHQb2Am4XxjXP05e8T5p7/kV87qFhAZueNuq8ipaKYHJEpXnDgh91JlngFfq5wOLuY/ yA2CUNnn7d3J2lkwh2lk8TVyLYbvNSMehCjUreMGxhxtyS9iinMYR0wEm1g7L8w6KQD5mZSRJts TSE7jQmnpyTHrU9W5m+ X-Proofpoint-GUID: N-l_41a8EYy4qgI23Rkgme3qh5f8JfyC X-Proofpoint-ORIG-GUID: N-l_41a8EYy4qgI23Rkgme3qh5f8JfyC X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-29_05,2025-12-29_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 clxscore=1030 adultscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 mlxscore=0 spamscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512290170 X-JNJ: AAAAAAABtdE5UnxUYPrzEOrDWgG6PiMaIvTKYVNVnWTUG8t90KysQVym6Q98F5O/JEr534WaCzjWlNvjlqt6je/SEHRCkKxuoefJiHh3wEu/Ey33dtdRlLdh+UHz/Xt1omLpePn0L6WAIw5s6DgoiVZB55mfY74aHZcMeWCegpRYHYD2vq3c4uuivmtBZBgd2ils/ehl6st1v97odqWu5A/fRaowjNz+IJOrZmliKdfHmDgehCboHoTz//g5EuW0kDtUAVTDDxCL6Os9OHu8egDVuFkZTLDFc2SR0gJkCrDQPvvNzjXjHEPDL1XFIYaxMil26cNnt1zibzBZux7QiflAevfm4Jjitd4vty0yMExbozEn5rfwWAUEwIXYLkgMsjlmFTu/fnFRSS8btSnyB0g3Ru4NslUwfBdVDG54ed5eokitvgNGyKUnp4/WyGOV58BwLJMBlEKZDnG0bcweZKMgb1WIf/nx0Ic2B+gZXpo5n2ReFYMFrKi/E4Ra+S78RJwthGhey7HzN4ckLzaW9GO4LCBgRgUH2pBsp79Nghoqi9z2WGVHwpzuNo2XjE9TedTA0+9YBjullysuRf0Hsz9WuNIQH0o7iJbcrVL4M4X0v39drCa3xmtMbUHpwWU4K6t4uBIVoY0s4zBQLoVZGUyscwpHGH4QyIgkyYHP6yoEef4LmJnqaRmlMs1kSqJd+SjmzieNRll196vXtjDIhhMc9VjkK0XFQXmhJIwQ/ItFt4dI2w== Content-Type: text/plain; charset="utf-8" From: Yohei Kojima This patch fixes the edge case behavior on ifup/ifdown and linking/unlinking two netdevsim interfaces: 1. unlink two interfaces netdevsim1 and netdevsim2 2. ifdown netdevsim1 3. ifup netdevsim1 4. link two interfaces netdevsim1 and netdevsim2 5. (Now two interfaces are linked in terms of netdevsim peer, but carrier state of the two interfaces remains DOWN.) This inconsistent behavior is caused by the current implementation, which only cares about the "link, then ifup" order, not "ifup, then link" order. This patch fixes the inconsistency by calling netif_carrier_on() when two netdevsim interfaces are linked. This patch solves buggy behavior on NetworkManager-based systems which causes the netdevsim test to fail with the following error: # timeout set to 600 # selftests: drivers/net/netdevsim: peer.sh # 2025/12/25 00:54:03 socat[9115] W address is opened in read-write mode = but only supports read-only # 2025/12/25 00:56:17 socat[9115] W connect(7, AF=3D2 192.168.1.1:1234, 1= 6): Connection timed out # 2025/12/25 00:56:17 socat[9115] E TCP:192.168.1.1:1234: Connection time= d out # expected 3 bytes, got 0 # 2025/12/25 00:56:17 socat[9109] W exiting on signal 15 not ok 13 selftests: drivers/net/netdevsim: peer.sh # exit=3D1 This patch also fixes timeout on TCP Fast Open (TFO) test because the test also depends on netdevsim. Fixes: 1a8fed52f7be ("netdevsim: set the carrier when the device goes up") Signed-off-by: Yohei Kojima --- drivers/net/netdevsim/bus.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/netdevsim/bus.c b/drivers/net/netdevsim/bus.c index 70e8c38ddad6..fa94c680c92a 100644 --- a/drivers/net/netdevsim/bus.c +++ b/drivers/net/netdevsim/bus.c @@ -332,6 +332,9 @@ static ssize_t link_device_store(const struct bus_type = *bus, const char *buf, si rcu_assign_pointer(nsim_a->peer, nsim_b); rcu_assign_pointer(nsim_b->peer, nsim_a); =20 + netif_carrier_on(dev_a); + netif_carrier_on(dev_b); + out_err: put_net(ns_b); put_net(ns_a); @@ -381,6 +384,9 @@ static ssize_t unlink_device_store(const struct bus_typ= e *bus, const char *buf, if (!peer) goto out_put_netns; =20 + netif_carrier_off(dev); + netif_carrier_off(peer->netdev); + err =3D 0; RCU_INIT_POINTER(nsim->peer, NULL); RCU_INIT_POINTER(peer->peer, NULL); --=20 2.51.2 From nobody Sat Feb 7 17:55:08 2026 Received: from outbound.st.icloud.com (p-east2-cluster5-host5-snip4-1.eps.apple.com [57.103.79.84]) (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 72AD826F2A8 for ; Mon, 29 Dec 2025 18:33:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=57.103.79.84 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767033226; cv=none; b=kmZ81IPZGZWlJU7GdNOz7PQKjH2kSDLLz4AazTmVx23KszAyDWtuiiO3t9YQ/t7JOAEV/v4JLXKIH7/zqh6J1tmlDtHENrt5b/U6F9xInsqCNt4DL9TBqd7yTidXYI0sC1RJ3nCcexJK7n3aaVcSmAIR+V//il8wVheZTLPYHdE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767033226; c=relaxed/simple; bh=WIJZFHxopcZP3hq9cJLwq5KZ8bfy6f+I6dRSNFZL4Jg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bu+j3Xot3ykOdysTzFsDRo0ClWQxhGcpxG4XwQaqjIwFCUUHE51sCdPn9JVQJBnVTslONI97cUnJQBs+dYtdthGNOI9Vepzglioqao8yP42jy/PWjel46Yj5Zoo3D4b4XzlvdlKafK64WGdsKMwHI/rg6M55EJMu0Lz61fnIChE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=y-koj.net; spf=pass smtp.mailfrom=y-koj.net; dkim=fail (0-bit key) header.d=y-koj.net header.i=@y-koj.net header.b=fuJsmsxA reason="key not found in DNS"; arc=none smtp.client-ip=57.103.79.84 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=y-koj.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=y-koj.net Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=y-koj.net header.i=@y-koj.net header.b="fuJsmsxA" Received: from outbound.st.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-1a-60-percent-6 (Postfix) with ESMTPS id 5C8B518002AC; Mon, 29 Dec 2025 18:33:42 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=y-koj.net; s=sig1; bh=ITzwEJsX00BYHWgmEn1JR4A/qizeksR08w/s7ajzdkI=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=fuJsmsxARu1zebx5G+m8XOjBINKKPFI96mwYiEWIsErB50CUc3a8Mz9SxBjNprJPKk0/dsralzOKj9vlDKc1m7kRZKeAJ1ycfFXn0J65lzrsinuTwBgkJiqxQ0NEax0yGSqYzjL8omQeoPzqW3SMXf8x6SCnQ0ueENDc7IECP1rOccjwRLdkTZi8Hlw0yVF49xtiQKMXGYhW8v0PZlRfRRQw2QFRKLrxM4Tnb3IQUmK63/uO5YUqgD40HEK26Yj2IsTk3r7EqnKOjmP6P8O4vdGaBg1G/3kGgIJD51QooAG4NVrhK+OTK9PZC5eZQlsRfMJHkd0t+1nH7SEd9YjhcA== mail-alias-created-date: 1719758601013 Received: from desktop.tail809fd.ts.net (unknown [17.42.251.67]) by p00-icloudmta-asmtp-us-east-1a-60-percent-6 (Postfix) with ESMTPSA id DA82918005C5; Mon, 29 Dec 2025 18:33:39 +0000 (UTC) From: yk@y-koj.net To: Jakub Kicinski , Andrew Lunn , "David S. Miller" , Eric Dumazet , Paolo Abeni , Shuah Khan Cc: Yohei Kojima , netdev@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net 2/5] selftests: netdevsim: test that linking already-connected devices fails Date: Tue, 30 Dec 2025 03:32:35 +0900 Message-ID: <1ae982f132f78d7c56533e0761844445ad914d5f.1767032397.git.yk@y-koj.net> X-Mailer: git-send-email 2.51.2 In-Reply-To: References: 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 X-Proofpoint-GUID: WNXcMd3n1UUiY-QCY9IpddD-er7lXVwI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjI5MDE3MCBTYWx0ZWRfXyjoSntZy5fW+ gqA2O57V9LCgVJuSufeYTCSF9x0ik8O88MlFFkRIsFOmQ1udD3UPuRdeUisnI4OLm06jjPlCNmN GdhS3p0e/647//DYeyoyytg1LpKsCFNCavs5Om1gaBioB0Vwf0cFsSipZRFZ8d3Wn/ACjeF7ZNa lPAf9soMz9ew/lhEMnv37DBYEJ6uRXPJX9Xw1ULSg5FNJF5KM+oARZkAkhKcjuQDhJcXyqkHF3j g9J/2gGd8RiB2yrL1Y3X6sygfdJ8CNxbg2W2dH8qdEADnz5p8VB1es67WGauUwva60cAW2C0JgE m0g1lHU6WQMaODjgOMI X-Proofpoint-ORIG-GUID: WNXcMd3n1UUiY-QCY9IpddD-er7lXVwI X-Authority-Info: v=2.4 cv=drDWylg4 c=1 sm=1 tr=0 ts=6952c987 cx=c_apl:c_pps a=YrL12D//S6tul8v/L+6tKg==:117 a=YrL12D//S6tul8v/L+6tKg==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=jnl5ZKOAAAAA:8 a=ifwVX88EVhsuK1YnTlsA:9 a=RNrZ5ZR47oNZP8zBN2PD:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-29_06,2025-12-29_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 adultscore=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 clxscore=1030 suspectscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512290170 X-JNJ: AAAAAAABFXnnCsjl6jwj1pjAUe7pQ+9OUKxTqRiZSUE1nqYXI6Db2p39VgVdJqlg7EtCdxgHgaNG47ve+5Esc+MYRo6jOfXzTBE9liY7QiZYJQJc6Q7s1hADVxLT9Up3HjdK93gFa8jk5NcZ3dGkoqco938FIcVfxspt9v2J3sJyRLJ5zuRLl1+Tyj9k1Fgdaq6SVw8ph23tfD+bggZe1uhFJAYIxk61/szNNpW08YRiK2uucz9uUbNKXy9NJxZeG8kx32jhxPkKt/z2KHMk7EbKXFHRwPY19BuC+FROjduW8qIvr07k0AXx7ohwTcaOFRRtIMFxjyWpifSMs9TlNe6NjV5hXaAymFNosVulPUHDJRxX/lN7aKbfz2xSll+E0xJhzb2GsF3gWCNda1XGbqiKmpXVVmUNfYYxL0/PcYAFKBOOpkPyLyH9h1bPpAXlqqFTHbv377YnWKYVmZ0CEx21mxaEnaStfgHylosU71l+zpu4RfqdvuwOD39B9AmA+oYDNLRjgZZfQxvx+S/614IYmnPpZNzj4dmvwIUjaP7KxhViJEj28gQ5XCmPfsTFRmrZsAnikzyxzcB3F/DBzI9p35JG1RuLGy5qOw8bJWws/WfaWL/shOA9OOKUbW40+UV1c20OGjh6tgTYGN+OOI/wfEys0f6Xb4v+V8h2JhP4fL8TXMizNokFrpwcKgzO3uXTy89WIvgm14OPQRJbqb8FWUzZCQFDTP4ya9BbLYGZzSHF28rnZAgIdxo= Content-Type: text/plain; charset="utf-8" From: Yohei Kojima This patch adds a testcase to check if linking already-connected netdevsim interfaces fails. This patch also moves the testcase on invalid ifidx before linking two netdevsims so that the test would fail if argument validation code got broken: after linking two netdevsims, the test might not fail because it attempts to link an already-connected netdevsim with non-existing netdevsim. Additionally, this patch adds comments for readability and details the error message. Signed-off-by: Yohei Kojima --- .../selftests/drivers/net/netdevsim/peer.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/drivers/net/netdevsim/peer.sh b/tools/= testing/selftests/drivers/net/netdevsim/peer.sh index 7f32b5600925..338c844fe632 100755 --- a/tools/testing/selftests/drivers/net/netdevsim/peer.sh +++ b/tools/testing/selftests/drivers/net/netdevsim/peer.sh @@ -76,6 +76,7 @@ NSIM_DEV_2_FD=3D$((256 + RANDOM % 256)) exec {NSIM_DEV_2_FD} $NSIM_DEV_SY= S_LINK 2>/dev/null if [ $? -eq 0 ]; then echo "linking with non-existent netdevsim should fail" @@ -97,6 +98,14 @@ if [ $? -eq 0 ]; then exit 1 fi =20 +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 "linking with invalid ifidx should fail" + cleanup_ns + exit 1 +fi + +# link two netdevsim interfaces 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" @@ -104,11 +113,10 @@ if [ $? -ne 0 ]; then exit 1 fi =20 -# argument error checking - -echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX $NSIM_DEV_2_FD:a" > $NSIM_DEV_SYS_L= INK 2>/dev/null +# semantic error checking +echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX $NSIM_DEV_2_FD:$NSIM_DEV_2_IFIDX" >= $NSIM_DEV_SYS_LINK 2>/dev/null if [ $? -eq 0 ]; then - echo "invalid arg should fail" + echo "linking already-connected netdevsim should fail" cleanup_ns exit 1 fi --=20 2.51.2 From nobody Sat Feb 7 17:55:08 2026 Received: from outbound.st.icloud.com (p-east2-cluster5-host9-snip4-10.eps.apple.com [57.103.79.113]) (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 EC8BB1E5B7A for ; Mon, 29 Dec 2025 18:33:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=57.103.79.113 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767033241; cv=none; b=JbTtz3o2yuKrBYKX/0e/M+XclE4gYeIfQHu5+AWcyQiKLCcO82W+xuHeLeuPmYD/yQB/mggHGM4vMB6O2TTw6FVqwPMvSdPDZxRzLNnaFBwlpgoiUIBV9HZWDYQeu/nfEy/qbM44zc4hgipvq8PEu7TF2kp2OOXia8BSHv62KjM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767033241; c=relaxed/simple; bh=vf47EyzY6AxVg0FPmbEQF9GrB5Lbr7opdeFV21ZDtUU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Lpc3+qhXtUCzgICyY7Kmc4xAKeRu7g7CvSQwqU3iEKdoknlLZwHJJXhYqZl3jNhXorU0GqbOwaOFo1tzTHt7E5mEKy3o7KLazRXamy4898tvqrAH2xCqhlFxXjh3eK4duUDKBimNdAP2oh0R8d29mwfS8GJ7GekEmmz2hyKQrmA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=y-koj.net; spf=pass smtp.mailfrom=y-koj.net; dkim=fail (0-bit key) header.d=y-koj.net header.i=@y-koj.net header.b=1HbAK+IW reason="key not found in DNS"; arc=none smtp.client-ip=57.103.79.113 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=y-koj.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=y-koj.net Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=y-koj.net header.i=@y-koj.net header.b="1HbAK+IW" Received: from outbound.st.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-1a-60-percent-6 (Postfix) with ESMTPS id 79EDA18000AF; Mon, 29 Dec 2025 18:33:53 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=y-koj.net; s=sig1; bh=+gPJX72dm3Z/j64tA5+lwPP2RcIoUalSiRzTLH1ZISY=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=1HbAK+IWPwqrsGBSIZnDYIlB1IeGYRcN/MRDsQcWtxvGSUBH8mECeTmWsDnmOd6D02PKGkjFlFyphltSdjZNujkUCyfeKUuNcGVUs1mqU5ji72i5Jr32YlKGawUtSlKw9CVVYlh18GgIj6UT2xrfODwokPUnvPaeFC9CJH0cOzJXIe2H0Ud1dQCJ/DqduJihhYp4Zmr/ynhV94ADJndgWKWfzhGuxn6n/bW7gU6+zRn72NvqrUT8EEPuPMgWCSxy12mkJZfFIiEJO3qcvw4hG4B9ExoU9IhF52nzJM9T98HJD8t+OtZ8fY/jTGx3IwjTOwCix8gLsT0myWTW59g+jA== mail-alias-created-date: 1719758601013 Received: from desktop.tail809fd.ts.net (unknown [17.42.251.67]) by p00-icloudmta-asmtp-us-east-1a-60-percent-6 (Postfix) with ESMTPSA id 770AA18002A6; Mon, 29 Dec 2025 18:33:50 +0000 (UTC) From: yk@y-koj.net To: Jakub Kicinski , Andrew Lunn , "David S. Miller" , Eric Dumazet , Paolo Abeni , Shuah Khan Cc: Yohei Kojima , netdev@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net 3/5] selftests: netdevsim: add carrier state consistency test Date: Tue, 30 Dec 2025 03:32:36 +0900 Message-ID: X-Mailer: git-send-email 2.51.2 In-Reply-To: References: 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 X-Proofpoint-GUID: zj50itOK3l5NRwcahQB8NcmbhW8SSnsc X-Proofpoint-ORIG-GUID: zj50itOK3l5NRwcahQB8NcmbhW8SSnsc X-Authority-Info: v=2.4 cv=XeaEDY55 c=1 sm=1 tr=0 ts=6952c993 cx=c_apl:c_pps a=YrL12D//S6tul8v/L+6tKg==:117 a=YrL12D//S6tul8v/L+6tKg==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=jnl5ZKOAAAAA:8 a=dxafgm9mWqSCDGKd2yIA:9 a=RNrZ5ZR47oNZP8zBN2PD:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjI5MDE3MCBTYWx0ZWRfX5Bv7oLHdkNc2 fXptV5QKF+wea4ZhD6ktdLx2Z7o0u51NjVw1+G4g5o0d/xI+yICif7tdAAaJcLt5w5ggqx/Z8Vc mM6pfMDN8uV9JeJwmZeyNCL+boW8ngMYv/aGQN9BjqdB4d3cl/GnqFuL0ePCWKcmN51Y6aDNAsv 7/O25Udu87RaD+I72U6VBvrn2lecEZuWgKiiVHoE9VXQc4YDQOqCrws5p4o1QscPM+QyWhkVRYh 10QliU9mceWJzqsNqLKy2ptT4Y9q+vQmIG4+iQx0iDZ2DXKHnu4qxrWaNyptStiRFvbKrliEt0k QBfOIBfi3pmKefXw8M3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-29_05,2025-12-29_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 clxscore=1030 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512290170 X-JNJ: AAAAAAABWuBkf2qcLYVgflAI/sq7U/fb2hEpVJcc/ZcsaZUSEPvJZNUSpclie8Q8e8kdVEeWqGZpFzpIWTrD5TwttIcKjNDxuAVZOAuFDAUWbVzv/WTTsqffvWpO4h7H9J2KXPL6D23lmdEXSBjIp/ld4F83mXgY5/GzOr6kQJnobOcnhQ5BYO3Kz91VxFtEJHaZTCmfGJ1JjA5O0UQYWYLkzR5pmROlB4QEaSHcpfx4/6OaMykE2NHzPyKuFZro0CBm4KoPWw7jhYqlJ5QoGJ7esN6ZazMn87q6rQPF7kl9h7e9YqA/yfVlgZl5q49OjfOQu77DplO0knbl6Hu7hnHLJKdHw1mOw7V/hkQuwhqEBTcDcKU2cHQ2cJE0YCe440TpEdYtaR6bXBNo3d4zlHTb8XzQ2idmEdOU02AJvRRBuphZDLwpFjk056zbYa5ueIsBxoDacDzc5zTdXmlPCdkQ+NTG4t6rVCEKvstdECQoWv1Y1bbxQLTXZyqSfSWkNE8BJf9z/1573JhTzgj43pdszwsVueO7p3Py0y3Z2tkezPniHFOCX+ST/1vShn+yF69z4nynRzdwO6V+vY1nTAD3Q7CmrfCOlhcbWhMbJkbWUzAwQeRPMU+80tRIU0+If/yCLw1kvOBgRC+gBVBmyPXdm+O9K+HLmRnIh71LBfPUrBoBb/YDGBPbZhp7byADjqH1DhfN3iMCyj9yg7p4hqiF4jtCzQ+Ci1EYRnQdbTld Content-Type: text/plain; charset="utf-8" From: Yohei Kojima This commit adds a test case for netdevsim carrier state consistency. Specifically, the added test verifies the carrier state during the following operations: 1. Unlink two netdevsims 2. ifdown one netdevsim, then ifup again 3. Link the netdevsims again 4. ifdown one netdevsim, then ifup again These steps verifies that the carrier is UP iff two netdevsims are linked and ifuped. Signed-off-by: Yohei Kojima --- .../selftests/drivers/net/netdevsim/peer.sh | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/tools/testing/selftests/drivers/net/netdevsim/peer.sh b/tools/= testing/selftests/drivers/net/netdevsim/peer.sh index 338c844fe632..d15218e4bf5c 100755 --- a/tools/testing/selftests/drivers/net/netdevsim/peer.sh +++ b/tools/testing/selftests/drivers/net/netdevsim/peer.sh @@ -52,6 +52,43 @@ cleanup_ns() ip netns del nssv } =20 +is_carrier_up() +{ + local netns=3D"$1" + local nsim_dev=3D"$2" + + # 0: DOWN + # 1: UP + local is_up=3D$(ip netns exec "$netns" \ + cat /sys/class/net/"$nsim_dev"/carrier 2>/dev/null) + + test "$is_up" -eq 1 +} + +assert_carrier_up() +{ + local netns=3D"$1" + local nsim_dev=3D"$2" + + if ! is_carrier_up "$netns" "$nsim_dev"; then + echo "$nsim_dev's carrier should be UP, but it isn't" + cleanup_ns + exit 1 + fi +} + +assert_carrier_down() +{ + local netns=3D"$1" + local nsim_dev=3D"$2" + + if is_carrier_up "$netns" "$nsim_dev"; then + echo "$nsim_dev's carrier should be DOWN, but it isn't" + cleanup_ns + exit 1 + fi +} + ### ### Code start ### @@ -121,6 +158,32 @@ if [ $? -eq 0 ]; then exit 1 fi =20 +# netdevsim carrier state consistency checking +assert_carrier_up nssv "$NSIM_DEV_1_NAME" +assert_carrier_up nscl "$NSIM_DEV_2_NAME" + +echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX" > $NSIM_DEV_SYS_UNLINK + +assert_carrier_down nssv "$NSIM_DEV_1_NAME" +assert_carrier_down nscl "$NSIM_DEV_2_NAME" + +ip netns exec nssv ip link set dev "$NSIM_DEV_1_NAME" down +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" + +echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX $NSIM_DEV_2_FD:$NSIM_DEV_2_IFIDX" >= $NSIM_DEV_SYS_LINK + +assert_carrier_up nssv "$NSIM_DEV_1_NAME" +assert_carrier_up nscl "$NSIM_DEV_2_NAME" + +ip netns exec nssv ip link set dev "$NSIM_DEV_1_NAME" down +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" + # send/recv packets =20 tmp_file=3D$(mktemp) --=20 2.51.2 From nobody Sat Feb 7 17:55:08 2026 Received: from outbound.st.icloud.com (p-east2-cluster3-host10-snip4-3.eps.apple.com [57.103.77.144]) (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 513BB33122F for ; Mon, 29 Dec 2025 18:34:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=57.103.77.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767033246; cv=none; b=t3RBsn9QGtfRJmfkZyi1IOGotKPe69y9lOvsq8n7wPpnl1xkRdOOESX4wgHGhy16Q1P8/43/CWWjs+dE0jwjjkAcxI6Mc6b04n1rlCzlSx8owdrUv35p+KYbsN0C2JXspw2yJyF7JsmwxlnwePiKz6nKSrWxE7PliLBaJee01fY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767033246; c=relaxed/simple; bh=5R++VHYPwVydeKrO2RyVVwH77yGWLDXbB1stHgv7ku4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dvDuy8n6Djr93EUzicFFTdzBSJ1htAb4BSKDfmMQJgS+s6xl5EkZKi7n6+pmSYpjaK+7Ogy0Irb0tG5qj9Nj2xz7mBpyA6eR4jhjWm9W3uSMvOOfj3rBHv7C7gs7eu/b7Z6aBLdPO7n2Gh4mnjz8ZfRaTh8Mx9pmkqDypKnOPxU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=y-koj.net; spf=pass smtp.mailfrom=y-koj.net; dkim=fail (0-bit key) header.d=y-koj.net header.i=@y-koj.net header.b=0dTkri93 reason="key not found in DNS"; arc=none smtp.client-ip=57.103.77.144 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=y-koj.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=y-koj.net Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=y-koj.net header.i=@y-koj.net header.b="0dTkri93" Received: from outbound.st.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-1a-60-percent-6 (Postfix) with ESMTPS id B1E1318005E1; Mon, 29 Dec 2025 18:34:00 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=y-koj.net; s=sig1; bh=T3OS4wSdrCOmmXJoZP6eP5ZoQXioGsQL41ZtZ0kML+U=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=0dTkri93Ditzv5nzucPTk2K/l9g5R4fWQZJLobixWHGWHF1B/MuRGA5IkHlX/7PZSESWGeZE8MIyb1xBvJxw1N5ts9jltJHuMNssquDMF3pRY+lBcsqqqtiPKMP/BsSkSHQBsCPJWvRG8zr3BX/QAOzcwHaLxlklUtvUv5CNHIUeUGQoGMXLMbOO2evcOMRP+ezF8p3ph/QYq2TfxPERG0c0AHKutMTyTmIuo/wrwNZ6NQZ/93+QlY9MGmER38TB/Bg0DCUB8HwIM1c3G2YaNfOu4/PeFFFL1UFPtnbDS5j1fOkz/4vHBlnsFnvYDRbOinKapNxDaCt1v7ts0TuXwg== mail-alias-created-date: 1719758601013 Received: from desktop.tail809fd.ts.net (unknown [17.42.251.67]) by p00-icloudmta-asmtp-us-east-1a-60-percent-6 (Postfix) with ESMTPSA id B99A718002A6; Mon, 29 Dec 2025 18:33:57 +0000 (UTC) From: yk@y-koj.net To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: Yohei Kojima , netdev@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net 4/5] selftests: net: improve error handling in TFO test Date: Tue, 30 Dec 2025 03:32:37 +0900 Message-ID: <7fdfbe8907c7f54ea65ffb4f8cd64cdb291eeedf.1767032397.git.yk@y-koj.net> X-Mailer: git-send-email 2.51.2 In-Reply-To: References: 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 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjI5MDE3MCBTYWx0ZWRfX3vKdxLmI4Bc/ eR02zRM9Y/z89uluAPtIK2hhHhYChsXm2VydtUl4WKRWioCnScfPiiDawoF7ef54nwtG+t7Yi99 ljz4LEAw9nAw074gNCLE2pwu1JeIFVT1dY8Wa1r6TG9YmJLC3VtUMcy6pU9T6PSnH+CNZue7zMJ 98VGWmLRjhgfKoCw6w+55fBvJEgdAmSqEFxmkEyUaNi3TDWI0rz1D35i1Nlroyik7feBbeWXX/8 ibV8OEcVp6E0/jw0IxqfXj59GnJzWYDkayMuUUsNE8lPLSyTW9CVkBX4O5I+SR1/I97YyynzUz/ nD4EzorHYDa0tEVBWhz X-Proofpoint-ORIG-GUID: u8YhZbFIF6rFdXn-aG6pfYJYxsh59Lbi X-Proofpoint-GUID: u8YhZbFIF6rFdXn-aG6pfYJYxsh59Lbi X-Authority-Info: v=2.4 cv=YI2SCBGx c=1 sm=1 tr=0 ts=6952c99a cx=c_apl:c_pps a=YrL12D//S6tul8v/L+6tKg==:117 a=YrL12D//S6tul8v/L+6tKg==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=jnl5ZKOAAAAA:8 a=bbAjskgjQjIXU-ELhLQA:9 a=RNrZ5ZR47oNZP8zBN2PD:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-29_05,2025-12-29_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 suspectscore=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=979 adultscore=0 spamscore=0 clxscore=1030 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512290170 X-JNJ: AAAAAAABpPGLt+tQJ1Y8GBvxs+5ZxgSzfXGXNKbc8N+GGLLFijtBF81uxeGAcG7QSDpiTyfjELSzQ6fxaBytRM2vnzsCSmUEp7zVItZ2BhEkp5ph7hqnPuVoFuKYJ3Td+RngUoJw/pSn9mReq6G5bwn127/ZVYtsl2qoFh+NexK0srFIod0+3j5c5thWt0hCWlT5nn5Y4oJ6atDFBRsvF5UQl/PXckzLSHWSP6yf0ZywfJgif41ca+jV0KnGTCeGewIKk3vOsmKP9hYI/sWYBKxhFRPQBePJIIGu73ZVv20gDihHsjrjbi/ok0+yaA12GxvGtVhg7m+vl+w10APdgLRBq1n9brD55i4bX/j3PRujvBVP9f2nGfcP8EI0XMsy8c5xtqDiZIOB6NO+qm/tUXmQ9i20tdpg2mG9nesPgrMfm3pUCJk6Ttnn445cAaY5v+lB70n0wniszn4bvn20cqmG1StLAXxEIziEzTNo9qpQaJP8eJmt0Be/Ox1p10SZ4fog3wvbp7hHRP4ZvUOU2+59T/9k/jQ5kzo+IQzLmfvkDQT0FEoDIkcORx0M8sXscQjry5IZi4Bg511bAdMHmsZT7hM9gMJMyqCpJdV+IzjFYqgyuFCFI3TDURAAz/MxSGRR6oq/qa3BBNwe46UAXZUsPg5r+aceqyzRAd5zqLfcmxoUbcysqL1Z2O6jrriCdOFfyhwm7XMXz9R9myMVWHWK Content-Type: text/plain; charset="utf-8" From: Yohei Kojima This commit improves the error handling in TCP Fast Open (TFO) test by (1) adding the sendto() return value check and (2) changing read() error handling code to exit with 1. Signed-off-by: Yohei Kojima --- tools/testing/selftests/net/tfo.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/net/tfo.c b/tools/testing/selftests/ne= t/tfo.c index 8d82140f0f76..4572eb9b8968 100644 --- a/tools/testing/selftests/net/tfo.c +++ b/tools/testing/selftests/net/tfo.c @@ -82,7 +82,8 @@ static void run_server(void) error(1, errno, "getsockopt(SO_INCOMING_NAPI_ID)"); =20 if (read(connfd, buf, 64) < 0) - perror("read()"); + error(1, errno, "read()"); + fprintf(outfile, "%d\n", opt); =20 fclose(outfile); @@ -92,14 +93,17 @@ static void run_server(void) =20 static void run_client(void) { - int fd; + int fd, ret; char *msg =3D "Hello, world!"; =20 fd =3D socket(AF_INET6, SOCK_STREAM, 0); if (fd =3D=3D -1) error(1, errno, "socket()"); =20 - sendto(fd, msg, strlen(msg), MSG_FASTOPEN, (struct sockaddr *)&cfg_addr, = sizeof(cfg_addr)); + ret =3D sendto(fd, msg, strlen(msg), MSG_FASTOPEN, + (struct sockaddr *)&cfg_addr, sizeof(cfg_addr)); + if (ret < 0) + error(1, errno, "sendto()"); =20 close(fd); } --=20 2.51.2 From nobody Sat Feb 7 17:55:08 2026 Received: from outbound.st.icloud.com (p-east2-cluster3-host7-snip4-10.eps.apple.com [57.103.77.241]) (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 CD088331218 for ; Mon, 29 Dec 2025 18:34:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=57.103.77.241 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767033252; cv=none; b=Xb88e48+r8p1epC1YsYx9mT2siTTRwTFEhSbT3NAJ0Ft5prHKwqRvxIFklu2qpn7LWi6+sHwoKMae6dgGiZB8zBR3zJeLD49dH0UPfFPmRwyItYroAGlq02qNPJFKaFoqvzKR+9bVF4WIiw9eXa8dE639rN/pqSpB/9L7JiJAY8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767033252; c=relaxed/simple; bh=Mi130XGYCHec4OXzL+gxRDI9DMokNqaQL0EQ6yw0ngM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KZjuVpyhPRN+meD8wd6RPW+OFw9MX6O3N6qfGvmI2hJYSP/MhOMD7/w2x5lXo3RjwKTAwLANhmSyDyCSdzqdKBXv+4vhD74oau8PCWOlnJg7vwj0uiBNCYP/cKtCZGxyR5jBagOR4ZfwMQrhSwZDI49tN6CJET9cVQVRLKWkPN8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=y-koj.net; spf=pass smtp.mailfrom=y-koj.net; dkim=fail (0-bit key) header.d=y-koj.net header.i=@y-koj.net header.b=Z1grI7E+ reason="key not found in DNS"; arc=none smtp.client-ip=57.103.77.241 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=y-koj.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=y-koj.net Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=y-koj.net header.i=@y-koj.net header.b="Z1grI7E+" Received: from outbound.st.icloud.com (unknown [127.0.0.2]) by p00-icloudmta-asmtp-us-east-1a-60-percent-6 (Postfix) with ESMTPS id 8E80718005EA; Mon, 29 Dec 2025 18:34:08 +0000 (UTC) Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=y-koj.net; s=sig1; bh=cV2EwEWsfYK4Aqz7v9TjiRD2mRX34Z/MplIFfUXaEsc=; h=From:To:Subject:Date:Message-ID:MIME-Version:x-icloud-hme; b=Z1grI7E+EQcIOGcg+LAGj5ShSSBosgR3KZfXb0F/BhoWpFcDHKj4kX4Ww+VokN21QLuudilj1G7wZOHGzRQWQ43T06Qd0T4caR5sajU0F7xlRGEsibNqaPmu3I/xlN/qIgZeOgjSGFba8DSF9AgYak99pDsSDIwBwn41XPJHd+4IXwjW71SPev9Amn3qGmC7BiJQMAHthJkp78d8uioSSwT9W4ZYOrECHtSofs7aJB3TdXaOEM7ahZfkEr+E7BNw+t2YOUNHt3Cc8qAytt/It3dAmRLMujd4QDfh5hz7mHI/U+938D+D1lVjqse0tzeDSBuGvd2u7H0v7eLMXdbvTQ== mail-alias-created-date: 1719758601013 Received: from desktop.tail809fd.ts.net (unknown [17.42.251.67]) by p00-icloudmta-asmtp-us-east-1a-60-percent-6 (Postfix) with ESMTPSA id 0F1EF18000AD; Mon, 29 Dec 2025 18:34:05 +0000 (UTC) From: yk@y-koj.net To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: Yohei Kojima , netdev@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net 5/5] selftests: net: report SKIP if TFO test processes timed out Date: Tue, 30 Dec 2025 03:32:38 +0900 Message-ID: X-Mailer: git-send-email 2.51.2 In-Reply-To: References: 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 X-Authority-Info: v=2.4 cv=ALPFdfBd c=1 sm=1 tr=0 ts=6952c9a1 cx=c_apl:c_pps a=YrL12D//S6tul8v/L+6tKg==:117 a=YrL12D//S6tul8v/L+6tKg==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=jnl5ZKOAAAAA:8 a=wXUYcULF-yfjjPYjaGEA:9 a=RNrZ5ZR47oNZP8zBN2PD:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjI5MDE3MCBTYWx0ZWRfX8XIWiNzE9coh gNKgFdgDEPbBr/KAy5PCfXJNUNVdigB/BFVxof17xRgAwIHiDRFTFImTN4sVMd1TJT2/KUcMzN1 LPg4JUf6UR2JJZhRZsFLSvdfn3thjOncNqTz0z9suvvJzbZZbz1QeKKoR/v0ChXHtPptCHilkqK c7hmmQ/dZhF8zQGdmxqpVOeJObGdVbSKOjS2Y9shoHBgOw8jydlC/6/0tfGzIGrdRjiILU42pMV 1wGoUd85YiHAPAG5suTTIe0gru8oHhutfFGEMcJLGuGNpdC0S8R1UBnDiCVgf80ChIijuITJ3wM uFy9plcnel08m5ISkhn X-Proofpoint-ORIG-GUID: sHOBAgfL0sHsPGdOQuD2Gi6xE1gBmejO X-Proofpoint-GUID: sHOBAgfL0sHsPGdOQuD2Gi6xE1gBmejO X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-29_06,2025-12-29_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxscore=0 phishscore=0 mlxlogscore=853 adultscore=0 clxscore=1030 malwarescore=0 spamscore=0 bulkscore=0 classifier=spam authscore=0 adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512290170 X-JNJ: AAAAAAABIHpUnPxyaBlu0UN7W1AkFKyQaI67vP7qv/bn+r4h+oBdm62Fh4Wl1HDnQp5WO4f+4GkDElNQbvf2VlFbmP01ou1qOrjm/hpoDJVetUZM6NnxSwkRxorjmp17YcK/ngAdGjVzmgtJRKnE428HD+F5spMYwBC2wjHH9FDlncILAkj9U680Ok3a1ArJyYNl80h26TyhK1m1aBX4/79Li2jjHJaw/B9gzS3PC2ALQEv6jWjvnKy5uuXsYvwacCESAuOttoFm25Lrha4AmwaQOvM7ySHAXylbVyEXn1NhVHRSBUITeMSDLXGDxZbZeCOF7PYVeR4NDlXTt9L3/vu97CnPASQrBL53OmC3US2dYsBhhkw30eclMfgoEUGSJDb3zG2gppN0/IQtEzeEjcaZgnLqz6NcBEy8LGi/qXc0KWpxDz7B9sW3LR1UR79jWQvNXNTZKAn9Akdskac3OlCyfQIPlbsmp2mCY2GMYuZBdYV8iZq/PY6ZR7V12t55nUqxel5eucbwdY0e1+dwKdywLFoG9j3pfde3Ppk9YWrGjNQaYccNmy9BuqnObfBjnbJtOjaAUKdPBBJCDjpS8dswRwPpw/D/IW69edmF+v4vOSWYkgYojmwnKPamJvkEN6RgRpJWSfdwbxkOJEqqoO5S5x3HzfVLO9tZrONpetqTtwMnJ9p7S5ZbjFT9ahs8YK954QaFve+e/ac93V9d5ZgER5/NzC1KgIQ= Content-Type: text/plain; charset="utf-8" From: Yohei Kojima This patch improves the TCP Fast Open (TFO) test to report the timeout events and client/server error events by introducing better process management. Previously, TFO test didn't provide any information about the test client/server processes' exit status, and just reported "ok". This behavior is sometimes misleading in case TFO is unsupported by the kernel, or there was a bug in the backing network devices (netdevsim). Signed-off-by: Yohei Kojima --- tools/testing/selftests/net/tfo_passive.sh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/tfo_passive.sh b/tools/testing/sel= ftests/net/tfo_passive.sh index a4550511830a..1e89f1006c42 100755 --- a/tools/testing/selftests/net/tfo_passive.sh +++ b/tools/testing/selftests/net/tfo_passive.sh @@ -76,7 +76,7 @@ echo "$NSIM_SV_FD:$NSIM_SV_IFIDX $NSIM_CL_FD:$NSIM_CL_IFI= DX" > \ if [ $? -ne 0 ]; then echo "linking netdevsim1 with netdevsim2 should succeed" cleanup_ns - exit 1 + exit "$ksft_fail" fi =20 out_file=3D$(mktemp) @@ -85,12 +85,15 @@ timeout -k 1s 30s ip netns exec nssv ./tfo \ -s \ -p ${SERVER_PORT} \ -o ${out_file}& +server_pid=3D"$!" =20 wait_local_port_listen nssv ${SERVER_PORT} tcp =20 ip netns exec nscl ./tfo -c -h ${SERVER_IP} -p ${SERVER_PORT} +client_exit_status=3D"$?" =20 -wait +wait "$server_pid" +server_exit_status=3D"$?" =20 res=3D$(cat $out_file) rm $out_file @@ -101,6 +104,14 @@ if [ "$res" =3D "0" ]; then exit 1 fi =20 +if [ "$client_exit_status" -ne 0 ] || [ "$server_exit_status" -ne 0 ]; then + # Note: timeout(1) exits with 124 if it timed out + echo "client exited with ${client_exit_status}" + echo "server exited with ${server_exit_status}" + cleanup_ns + exit "$ksft_skip" +fi + echo "$NSIM_SV_FD:$NSIM_SV_IFIDX" > $NSIM_DEV_SYS_UNLINK =20 echo $NSIM_CL_ID > $NSIM_DEV_SYS_DEL --=20 2.51.2