From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qv2-f12.google.com (mail-qv2-f12.google.com [74.125.230.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ED1C23AE1BD for ; Sat, 12 Sep 2026 18:09:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.230.140 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789236568; cv=none; b=rmFuGMmLJuGH+kRyyC2REepXkG33Tcmh3cURnQrVvvfJ6RadYFQsTX6xN9+eo3S4QsAgycVTp/1tYI8z3cJgcYn4k/gz4x2QvaF1Du+H6cDw75c3Wfjuzi8pKiy1DGrhBNsxSWxpaWtYh7GDDdcoEPbwuqOZU0KhY3/jWdOnkNo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789236568; c=relaxed/simple; bh=ZCovFqiMjtqVQsqXGw//gYwhLWDer5nSHiejNsreRFY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=WJj8Vuxkz2M+Q03I1gEeAcPrd2lxeAji9sh5Y/oUgF+Jv8+AnzmTWFtIbx70oz64qde5OMIY7bGNAtt8o/d0QvXrCZiElfWuq9KKeNunBaVBczYmoH40XjZ39DKElGVKlN6m4lY4W/bpAZ+BWZhdq1UlYoFjtD4lLV2kuhWI7Eo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=mojatatu.com; spf=none smtp.mailfrom=mojatatu.com; dkim=pass (1024-bit key) header.d=mojatatu.com header.i=@mojatatu.com header.b=hVyRaZI3; arc=none smtp.client-ip=74.125.230.140 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=mojatatu.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=mojatatu.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=mojatatu.com header.i=@mojatatu.com header.b="hVyRaZI3" Received: by mail-qv2-f12.google.com with SMTP id 6a1803df08f44-90cdfcc3e14so3833046d6.0 for ; Sat, 12 Sep 2026 11:09:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mojatatu.com; s=google; t=1789236566; x=1789841366; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ZVsgq1Aq3D81njq/SPaFOtkNYzTEGSYorhvpSAlQpRk=; b=hVyRaZI38Z8UXT8w82R0UCBIyc/ENY11mz82PxFeY6OMPwFtsPxvPWl6sYhLsY9QO+ g4ZD48322JsI/UuKX0kPqaMRViP5X0RWJ2SbuarHdKpOi79J1x2q/hr+cXfdvGv77UNn qIPAu0IMIqFJ/atmc8LFiHowpGRLvwGZWj3pc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789236566; x=1789841366; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=ZVsgq1Aq3D81njq/SPaFOtkNYzTEGSYorhvpSAlQpRk=; b=QtSn9SJLeuJACIlsAg57tKlg9nRAFVRMW78Pl+7lYVIIaYXuYZ54etqBfitouDkRij PJivGLG/m+nYyzRx0/vEGK3GtLwqjg6JY5X+FoUzNjApwvAPgDaQjw7Ttb7fipwYjNnI I9Af84acDwUTVQIAqkZ2Dy7Q1DYhjHruqvdfhDt1sP2fUbQsc+By3LA2jEaMY6vY5fLF ReisZXO/XKazPrYD7L9eAl7XQSYincBFY3UajPmG1ZZxmvRW5NAgjKvJBlMJNsgicst3 dfIDXes/YVOpPHbCCfWQgFoMg/+csLAZt4vNjKbWVSpw29B51YIs/COQTzsOnzJQt1qA R2sw== X-Gm-Message-State: AFuF++nABOuDqS3wBnpXs7ErnOLGdyLLT96aR05rsYhehwOSCBc0Yj9U na4jU0zmnYCJLv36efezUZ+FaT2ZLYfPprt3FUDv39g3koPihdRkxw4RxL5MZyToyPICUFpIFEo Sow75tQ== X-Gm-Gg: AYBFou1HXmHD6CN5eDonwfcK9RgQSt2FGH6l04S1/5o0S354yxlk1V5afRTSYk4RCb5 a/XfJM2jcwyccGvd68r4YFLb+/+cLhAnClTcrq+F/lwkgWvM5ycZty2e+iI6bGtI75TZX11+anz gC8i4PKjN6QPHu/0DhrkcF4LLKSMHiGhn3WsAEzM0kwJVfTXL0MGQpSi9eCU9qn5/vnwh2wooiq HxoI1qCbZil5jal0pgTJpG/6HjJH75KYcwDPEycs5S2Hv7a+cMBOEby2BNf5Bjku/ar1dOZsqBo hFB5Rp8c5EATFoFQVHv4P+kWHphrLHWr5X2uf04B6lnM9DCr9ufjf6kACK93rijNcwlz0y6ezvt WcSpx7R0FG1HVIA2WzZxK4pzgaD8DIovFZ5fFQARKmQUFkp6jUBIyCryBGt6ltOVdOrluY+jM3T wXcyZeIDIUtnJu+zRNrIqk8Abi9vLl3iM/uYxOinwGBtNj34oIXa+129UolRZ8Zob2e5gvRUm9l 7i/GQONurqjEpZgSYGC1O9p+YTNA1rvp1XbkGyrIHr4tLpYBPIbmq2CCQL1GOF9VqyHeysE3ISW NRLsQ+fNVWfCXsUg7azgAxg= X-Received: by 2002:a05:620a:6f04:b0:939:7d14:1c75 with SMTP id af79cd13be357-939e8afb739mr1339388585a.6.1789236565939; Sat, 12 Sep 2026 11:09:25 -0700 (PDT) Received: from majuu.waya (pool-174-112-106-84.cpe.net.cable.rogers.com. [174.112.106.84]) by smtp.gmail.com with ESMTPSA id af79cd13be357-939e811cffdsm549888285a.46.2026.09.12.11.09.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Sep 2026 11:09:25 -0700 (PDT) From: Jamal Hadi Salim To: netdev@vger.kernel.org Cc: Jamal Hadi Salim , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan , linux-kselftest@vger.kernel.org, Victor Nogueira , hybris Subject: [PATCH net 2/2] selftests/tc-testing: add hhf hh_limit cap tests Date: Sat, 12 Sep 2026 14:09:20 -0400 Message-Id: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Cover the new TCA_HHF_HH_FLOWS_LIMIT bound: values above 2*HH_FLOWS_CNT (4294967295, 65536, 2049) are rejected with the configured limit left untouched on both the change and the add path, the boundary value 2048 is accepted (installed at 100 first so the boundary change is load-bearing), and an add-time hh_limit 500 is preserved instead of being clobbered by the default. Reviewed-by: Victor Nogueira Tested-by: hybris Signed-off-by: Jamal Hadi Salim --- .../tc-tests/qdiscs/hhf_flows_limit.json | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 tools/testing/selftests/tc-testing/tc-tests/qdiscs/hhf_flows_limit.json diff --git a/tools/testing/selftests/tc-testing/tc-tests/qdiscs/hhf_flows_limit.json b/tools/testing/selftests/tc-testing/tc-tests/qdiscs/hhf_flows_limit.json new file mode 100644 index 000000000000..44538b9266b6 --- /dev/null +++ b/tools/testing/selftests/tc-testing/tc-tests/qdiscs/hhf_flows_limit.json @@ -0,0 +1,128 @@ +[ + { + "id": "e3cc", + "name": "HHF hh_limit rejects value above 2*HH_FLOWS_CNT cap (4294967295)", + "category": [ + "qdisc", + "hhf" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$TC qdisc add dev $DUMMY handle 1: root hhf" + ], + "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root hhf hh_limit 4294967295", + "expExitCode": "2", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc hhf 1: root refcnt [0-9]+.*hh_limit 2048", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root" + ] + }, + { + "id": "f681", + "name": "HHF hh_limit rejects 65536 (above 2*HH_FLOWS_CNT cap)", + "category": [ + "qdisc", + "hhf" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$TC qdisc add dev $DUMMY handle 1: root hhf" + ], + "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root hhf hh_limit 65536", + "expExitCode": "2", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc hhf 1: root refcnt [0-9]+.*hh_limit 2048", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root" + ] + }, + { + "id": "223d", + "name": "HHF hh_limit accepts boundary value 2048 (2*HH_FLOWS_CNT)", + "category": [ + "qdisc", + "hhf" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$TC qdisc add dev $DUMMY handle 1: root hhf hh_limit 100" + ], + "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root hhf hh_limit 2048", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc hhf 1: root refcnt [0-9]+.*hh_limit 2048", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root" + ] + }, + { + "id": "147f", + "name": "HHF hh_limit rejects first value above cap (2049)", + "category": [ + "qdisc", + "hhf" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$TC qdisc add dev $DUMMY handle 1: root hhf" + ], + "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root hhf hh_limit 2049", + "expExitCode": "2", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc hhf 1: root refcnt [0-9]+.*hh_limit 2048", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root" + ] + }, + { + "id": "4d4f", + "name": "HHF add-time hh_limit 500 is preserved (init does not clobber user value)", + "category": [ + "qdisc", + "hhf" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root hhf hh_limit 500", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc hhf 1: root refcnt [0-9]+.*hh_limit 500", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root" + ] + }, + { + "id": "ca99", + "name": "HHF add-time hh_limit 4294967295 is rejected (no qdisc installed)", + "category": [ + "qdisc", + "hhf" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root hhf hh_limit 4294967295", + "expExitCode": "2", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc hhf 1: root", + "matchCount": "0", + "teardown": [] + } +] -- 2.43.0