From patchwork Wed Feb 5 13:11:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 13961050 X-Patchwork-Delegate: kuba@kernel.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (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 2A6FC198822; Wed, 5 Feb 2025 13:12:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738761138; cv=none; b=PR3UKDr85FVB6jqGRrKsyhjXqhm7rQ3FLFjRCVxrImH3ehZL4qdNJ+2LMtFYqpGqAiwg7L+U5MdmIxsvgV6A34sYEJCCn4tgLbur9lfY+e3khSuwoWmA1rqWayD1pRuEnA7VI5U4CWyld1Tpr2TS9eGA5RU42JqR0ppRWkVV7+o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738761138; c=relaxed/simple; bh=MKL4T/vs4ciWtm1Nxs3Uo7fEfdIgvT5ROwme3MNF4kE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZcLmuQHDS60MJEIwWdfncc9xSp2AXWM9DLXmfRp633McCO/aSSEM0cOBDhFDuaCUPraxDkZO9//mKKWlmkI1xI6oakID9ER1tCnsYJdCAJxvWJjZCTU1P9+n64TKi3ezyORrrMxvJVp4L5QZH7ZgUIJ0IyzdWtMx6wMqCHqi6uU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b=qH65W6Rt; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b="qH65W6Rt" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1738761125; x=1739365925; i=ps.report@gmx.net; bh=MKL4T/vs4ciWtm1Nxs3Uo7fEfdIgvT5ROwme3MNF4kE=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=qH65W6RtJfCt6p5xFn/2Ot1m096iAkQ2OM3t9FXYV62B96BH7beukAHObxM2ayjB xKBt2ci9PA7SzNEyKNCEutq2wgC7//PESUPi9M40S1pkIjB4eBcA9OPEtgAvKkeqz HbSOCWLTgT2rfHLi/0Ukr+/JaPLvaF5Rphazhj2++S4LmKFkreJ0kn7BLIzFhThSh iUlr4rYvJCyfYr1I13w72OGjTLxBfdf8dalBtaZk4bMXEvEH4hDrEqfZPIlrZMKeZ lxMYlaBKKksa0mxOKYRHC78eaurC7VZqY7nVcbxdgCJ9Qm0AP1v0tww9tkCaHTHZ+ 7jRWjHE46WTQBnS2Hw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.162]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MNswE-1u3orN1ycy-00LK5C; Wed, 05 Feb 2025 14:12:05 +0100 From: Peter Seiderer To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan , Peter Seiderer Subject: [PATCH net-next v4 16/17] net: pktgen: fix mpls reset parsing Date: Wed, 5 Feb 2025 14:11:52 +0100 Message-ID: <20250205131153.476278-17-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250205131153.476278-1-ps.report@gmx.net> References: <20250205131153.476278-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:nVpVkHJ34UhSeujiytmBNDzUCIvcQIZynsFPHAS0nlPJizg/RDY DVxOaUStZSL/XGGjcBnXhASUFcay3MG1HsiZJAKkEtRVkvJwt/t+38YYKUxlexlWLIrgA2p HKSmBGvpRlnhOgpT0F/t74oM62Iqf5TEStcWZgxzARwsZqUFbGqIDVjUtkTJX987SWXcUNL ibdqucSIBGa1RECnXp5LA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:3CrqbqQOtDw=;3PXG7U2162NU/U29UWKEx4RSCq7 PXv8/x5It45iCwcy29hsHrI7cJIiJwwOeD6bdyWD9aCUdviD11VWUx1zyOoWfY0aTueAei6FO qo3aQ7laCNp31atSwDF7ycij3rN1T209OEBgjaXY3vx0YL3Z7YLKy9plaznB7Y2mMk9z1IZzu YUJos1PsXic+oQR/uM+0ZphFANUOv0l4nUWsv32GmiL9xf7J7jPxa1j1neB2ReAnGcAfRCnrk vZXMERR/xDY5/8SgeEw7q8/qUxOW1ywPMHfL9TvpcDdcvnGT71pfH9exU0npxrIJJH3rNVq/m zFL2tLYBii8L3B809lNOk0h5bzrPFeuVr/TzVDyEsOPd7z+xKz163Pn3YejA3W01XSeDM4cf4 5YQ8ufb086qlBprkmmlDuI+qQ2GI3XG405l942aT1V25y16D//slKfDFGrjmDtvtDSl4vJYIL g0G+pt+o3TWwU3iAWUNsaCdFNPBhqaUzGC5orR8RcfqAWdE6DxwqBUFMcrNJq8ZYLHU1WOxiZ sD6j1XNdxnrsL/PLYZohE5tlU0fYzrkNn1dApHMxwCq2Nl/D0B9OspNGW4Ct3bUAG8gsbq2Wy XvppyOwlEL5a9AMN/aVlKRwbxJ/d4aDtm9QtpB8dPONWK88ClpjVZA7ANg1wIeBvJsWNuAsGJ aWZ1wRqj+ETV1eel5yPzM7/571tIwev7URdWBBp1Cdlz5Yb8S3t/2r4YJXmVdiveMOGNO/L+t qE8PGjtEmdqXmyxMNnggWWYd7CXMcHWQ9JKSxARZpGeeTY8ZvN7//RAg9RqElJvd5HAcssWSZ lOqgR60Jm3ZrqtIL24YozsoU7T4K8NdeS/tFAjG2bQMj5xyi4DHI4wyUNUu5o9c9OoLmRhDHl TDwYFzEP1xitZlA4E08MrhE4fbfs8vltw+L9y5zT7bsp9DnqkQusOqitWNfUXTd0uk9G59Afk /Gsh4cPXHZgQNWEAXIKRnDIZ0ZybgEenxwhYcr1ysI20au2XJloim3vvjenXw67gytUFUmps8 UBuhUJCopWF/v6+s+M1aLmVehl/naZaHNla9a4iIIJOPQdgX5Elw0s+F8NuYPSa6QJQ1eyg8w pyJfbLd8hnFdsJ1r7ENm4b5eC0gmY9H2A6wlMYcRkBhw4YkdXtv8qu7PFt8doGoJukaYH6uD4 Krdpt3gAg5n5c/GzUHMKGcyZXjJFExBsRxFsdtg1c6swFR981YR4qVFXEqTooXhM/z4MRu8Fm YQaafiHQqbLkl+5KwLZ+S5h3VKfq3yHp/r8KObRePss12dV1IpTg7nJFEnK/ngKFp3jDxe1ym xZof4q5Z14r3S7EZ6XTYanjcseBhmNE8kQrzW28N+2zpkY= X-Patchwork-Delegate: kuba@kernel.org Fix mpls list reset parsing to work as describe in Documentation/networking/pktgen.rst: pgset "mpls 0" turn off mpls (or any invalid argument works too!) - before the patch $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 mpls: 00000001, 00000002 Result: OK: mpls=00000001,00000002 $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ echo "mpls 0" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 mpls: 00000000 Result: OK: mpls=00000000 $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ echo "mpls invalid" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 Result: OK: mpls= - after the patch $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 mpls: 00000001, 00000002 Result: OK: mpls=00000001,00000002 $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ echo "mpls 0" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 Result: OK: mpls= $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ echo "mpls invalid" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 Result: OK: mpls= Signed-off-by: Peter Seiderer Reviewed-by: Simon Horman --- Changes v3 -> v4 - add rev-by Simon Horman Changes v2 -> v3: - new patch --- net/core/pktgen.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index a46eb20edf6c..434531a3e3c0 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -930,8 +930,13 @@ static int get_labels(const char __user *buffer, int maxlen, struct pktgen_dev * max = min(HEX_8_DIGITS, maxlen - i); len = hex32_arg(&buffer[i], max, &tmp); - if (len <= 0) + if (len < 0) return len; + + // return empty list in case of invalid input and/or zero value + if (len == 0 || tmp == 0) + return maxlen; + pkt_dev->labels[n] = htonl(tmp); if (pkt_dev->labels[n] & MPLS_STACK_BOTTOM) pkt_dev->flags |= F_MPLS_RND;