Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp15774138rwd; Mon, 26 Jun 2023 00:47:52 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5YOfhpuCeh9nXgCRhvR/alEu/q+mvGYRwDpBdgF6588UQjnvAXFTQoZdb5ZewsvSvtWE0b X-Received: by 2002:aa7:c2cb:0:b0:51b:ebea:18fc with SMTP id m11-20020aa7c2cb000000b0051bebea18fcmr7577699edp.5.1687765672447; Mon, 26 Jun 2023 00:47:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687765672; cv=none; d=google.com; s=arc-20160816; b=RCbHtNx+dWINiT9k4hH1UqFUBSRQbNdZZdgqZtZK2FGD9s2vZs5naMx1kBhdZGsYM+ tYb2QWKrL6K2xf1rREZw8/L1Q4OYCkQPxMFYK4+OGZ6uAyY5/bjMQa44vvNpzS6Wzm1h ESEbaELOtMsdWHYs3XExwzmnfuVk0c+OmCJ1Qtsil5jeaWFnNvcRHopn+QFbHyoetH+N QsGKUWwEirVu8DvQe7LUuDzYHDrRWBmjUp4GZI9eU6mFxUh1KiaACF1eU1I6k9FIafVz 7ibex2Aez9U+T5/28dOuJDjofIVzoO8os6UW75hvx9dQGGHZnlHXpmb66x0xYV3uvaTp N3yA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=Rder2OAzgtZd3D78Lyy1oE9ERfYSQk2vWQvPHgIJsIA=; fh=XPZ3X7jhFHQNxxZyzwoISbNpTG1xY4tAuNs9NObj3K0=; b=gWdU0TI1No4UM5Rp8fGtuxXmmIVnpNHQGeYHUShOOBZQyv7I84ZSDn1Hi48McYaQsN ZpBWT2XqSfV4ZuHlkE9V/SHdp0cPj/D7f75YySJt3jCg4EXfxZWvl9F2WjuV5oFivWB0 N7lxq320i4oWwpThRAlfMDUwp3FeIXS/jCMdhjO+BHcKSbMt9v2WymgjGvNmgiDrg7Ay EHBejj4Imc3BuJdK5eqFqGOl0BMpJ7Deakskf/OfBTq75Fyo/xegQEmPtW3FwSfBg2bG QR25tV+TmxhAp+/lDxHzo09u4yx/Oo5VbGDuNwflzPBcmjO2J4EoHa+G/6cDQ08yGFUy YXUw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@marvell.com header.s=pfpt0220 header.b=ZCLJFrXH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d14-20020a50fb0e000000b0051da020ec14si265752edq.92.2023.06.26.00.47.27; Mon, 26 Jun 2023 00:47:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@marvell.com header.s=pfpt0220 header.b=ZCLJFrXH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229826AbjFZHZB (ORCPT + 99 others); Mon, 26 Jun 2023 03:25:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59338 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229900AbjFZHYv (ORCPT ); Mon, 26 Jun 2023 03:24:51 -0400 Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 03BC2E7C; Mon, 26 Jun 2023 00:24:47 -0700 (PDT) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35PJvuhO021224; Mon, 26 Jun 2023 00:24:28 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=pfpt0220; bh=Rder2OAzgtZd3D78Lyy1oE9ERfYSQk2vWQvPHgIJsIA=; b=ZCLJFrXHNksqfZ3Yeg8Oq5wepJBDJO+xiUF07DGufeCrwshVrh03aAtNvMHAUuZtbI9X 3ymSR/kzGt7mZepyFm0OnVhRzWTwBbhBqw3slcWK8EJAeChDh8yAOs16wIBHv8iT99Wy x9TsxNKThmDSjudGOhW7AW207JkMwQXhWdWyYZPCn+Acwbh9TVWWje86CZBysI3IsZA9 51lUpFIBH5IyMBRKCv+kfKWE/GmL+Juw8UK6BIEX7yrYDM0RLmw3TJUOUGdJ/P4h81kT I24Pb3ioAqUwpfxiaNAaDfXAL0TwgAUDT1y5RXYvAnEZVooiifEF0hSHZ4lCBtuhIdcU eA== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3rdwunmq47-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 26 Jun 2023 00:24:28 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Mon, 26 Jun 2023 00:24:26 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Mon, 26 Jun 2023 00:24:26 -0700 Received: from hyd1soter3.marvell.com (unknown [10.29.37.12]) by maili.marvell.com (Postfix) with ESMTP id 079613F7043; Mon, 26 Jun 2023 00:24:20 -0700 (PDT) From: Hariprasad Kelam To: , CC: , , , , , , , , , , , , , , , , , , Subject: [net-next Patchv2 2/3] sch_htb: Allow HTB quantum parameter in offload mode Date: Mon, 26 Jun 2023 12:54:06 +0530 Message-ID: <20230626072407.32158-3-hkelam@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230626072407.32158-1-hkelam@marvell.com> References: <20230626072407.32158-1-hkelam@marvell.com> MIME-Version: 1.0 Content-Type: text/plain X-Proofpoint-GUID: tm8X8-v1OeLJNHuBTUekoIVuiPTNPrW4 X-Proofpoint-ORIG-GUID: tm8X8-v1OeLJNHuBTUekoIVuiPTNPrW4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-06-26_04,2023-06-22_02,2023-05-22_02 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Naveen Mamindlapalli The current implementation of HTB offload returns the EINVAL error for quantum parameter. This patch removes the error returning checks for 'quantum' parameter and populates its value to tc_htb_qopt_offload structure such that driver can use the same. Add quantum parameter check in mlx5 driver, as mlx5 devices are not capable of supporting the quantum parameter when htb offload is used. Report error if quantum parameter is set to a non-default value. Signed-off-by: Naveen Mamindlapalli Signed-off-by: Hariprasad Kelam --- drivers/net/ethernet/mellanox/mlx5/core/en/qos.c | 4 ++-- include/net/pkt_cls.h | 1 + net/sched/sch_htb.c | 7 +++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c b/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c index 1874c2f0587f..244bc15a42ab 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c @@ -379,9 +379,9 @@ int mlx5e_htb_setup_tc(struct mlx5e_priv *priv, struct tc_htb_qopt_offload *htb_ if (!htb && htb_qopt->command != TC_HTB_CREATE) return -EINVAL; - if (htb_qopt->prio) { + if (htb_qopt->prio || htb_qopt->quantum) { NL_SET_ERR_MSG_MOD(htb_qopt->extack, - "prio parameter is not supported by device with HTB offload enabled."); + "prio and quantum parameters are not supported by device with HTB offload enabled."); return -EOPNOTSUPP; } diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index a2ea45c7b53e..139cd09828af 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -866,6 +866,7 @@ struct tc_htb_qopt_offload { u32 parent_classid; u16 classid; u16 qid; + u32 quantum; u64 rate; u64 ceil; u8 prio; diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c index 325c29041c7d..333800a7d4eb 100644 --- a/net/sched/sch_htb.c +++ b/net/sched/sch_htb.c @@ -1810,10 +1810,6 @@ static int htb_change_class(struct Qdisc *sch, u32 classid, NL_SET_ERR_MSG(extack, "HTB offload doesn't support the mpu parameter"); goto failure; } - if (hopt->quantum) { - NL_SET_ERR_MSG(extack, "HTB offload doesn't support the quantum parameter"); - goto failure; - } } /* Keeping backward compatible with rate_table based iproute2 tc */ @@ -1910,6 +1906,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid, .rate = max_t(u64, hopt->rate.rate, rate64), .ceil = max_t(u64, hopt->ceil.rate, ceil64), .prio = hopt->prio, + .quantum = hopt->quantum, .extack = extack, }; err = htb_offload(dev, &offload_opt); @@ -1931,6 +1928,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid, .rate = max_t(u64, hopt->rate.rate, rate64), .ceil = max_t(u64, hopt->ceil.rate, ceil64), .prio = hopt->prio, + .quantum = hopt->quantum, .extack = extack, }; err = htb_offload(dev, &offload_opt); @@ -2017,6 +2015,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid, .rate = max_t(u64, hopt->rate.rate, rate64), .ceil = max_t(u64, hopt->ceil.rate, ceil64), .prio = hopt->prio, + .quantum = hopt->quantum, .extack = extack, }; err = htb_offload(dev, &offload_opt); -- 2.17.1