From patchwork Mon Jul 17 09:33:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hariprasad Kelam X-Patchwork-Id: 121172 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1015036vqt; Mon, 17 Jul 2023 03:10:44 -0700 (PDT) X-Google-Smtp-Source: APBJJlE7O1i+aELIpYNXlt460NPu0WbnIOlcmawcZd1cIbJyx+PS7B5p/ajT1K37OlFcbDwcn1Ci X-Received: by 2002:a05:6870:608f:b0:1b0:344b:a09f with SMTP id t15-20020a056870608f00b001b0344ba09fmr14458991oae.16.1689588644353; Mon, 17 Jul 2023 03:10:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689588644; cv=none; d=google.com; s=arc-20160816; b=P/IMawsc+Zfr6RSSrSDgeX/F/7p6L7tTXNgFcuID05BBTw9wL78UKyMQeHOBdwZQRs NYoWp8eXSDX936B1J4OHRPz2TDjigpaFU6D7pWFRHYXUNEOe1BHCfEwHvLmiUOfvJWdj t28cnx7nBet2yIyRG0z8q8PVviu+5CRqfYlcVstBhke/rlBUKxI+VRBeRqs/svJN6N4+ BC6Z699uM8tjEVR0i/w545616n8TJsJLqczM0CeTDkzQ+eCf3ivsYJOJAMP/iJYdT4+n fxgIbc5/VciA/5T9ybi1IY2YVeF/M5uGgtKYPV+QrWr+ENMXart4CvWfT2BgqPJZ40EH QyGw== 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=WTB7wSncyt74iOQYSs1LHXSzBhyN3wdzAdsgdEGhJyY=; b=HfZAjAN8cxPQe+47JS1NkxXz0QXWysH3NOEuXrNG2g5+bihDLbVN/VEEalLp7KyP9D /79BsUuDHm+26Mxxcwa6tY1QJ7Yzr1bb8JXqneVKDH6jTynFs6UW7Vwf1Sd7aTGMGE6D wIVFg3aZTVClBea8JmO7mJC5QBx5u/1EDjfJttyvmKXAuXeMQRM/GAY7k9XwXpYXyWJb BLE3zLBwV+uQV4jOH6M9lykKnu+lbUO/KQ0ktM3x2A7GnI+o4fMYB7Ci9jtW+Jbqov8p oooRsERjHymuS5sHPKvZq8gOJYhYyRmENoszllul+EON7I5rkdCWpQcNmEsTZ03/PDfy ntHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@marvell.com header.s=pfpt0220 header.b=UC2RTGw9; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u64-20020a638543000000b0055c92d0c442si6399814pgd.824.2023.07.17.03.10.31; Mon, 17 Jul 2023 03:10:44 -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=UC2RTGw9; 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 S230335AbjGQJdz (ORCPT + 99 others); Mon, 17 Jul 2023 05:33:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230272AbjGQJdx (ORCPT ); Mon, 17 Jul 2023 05:33:53 -0400 Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 773EAE47; Mon, 17 Jul 2023 02:33:51 -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 36H5TrO3020470; Mon, 17 Jul 2023 02:33:40 -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=UC2RTGw9iAOqju32zC15e1cjjvSl/39yEv5OG6ZdhFN2vj21dPx0H02kgIqFDkYZKvwM 4Fas8Q/MmIp0arOQnUkrWnc29TqmeK4/M00Sb77HlhVexe8V8/MlVakKouMAJC6YDuWx QMtLyfnxgX/K4ccNNwnmJ0ELZIdwpkd7FznfVQXgRGG6z3Bm6ReGruVI2sp7gHVW6l77 WwiI0vQY7uxiW4jvf1g8k1oTR+BfPsr18VeggntCzZ41cGtYLPTz7QvgtiMT/YW1Ca4E UxgXSP+u+Og74J30c543xk4nK4YH5Z/J0R8CybRp1HRfE0iaAl+oDI2qjwOZY0i7IvVz DA== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3rvyhx0p2t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 17 Jul 2023 02:33:40 -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, 17 Jul 2023 02:33:38 -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, 17 Jul 2023 02:33:38 -0700 Received: from hyd1soter3.marvell.com (unknown [10.29.37.134]) by maili.marvell.com (Postfix) with ESMTP id 02DFC3F70A4; Mon, 17 Jul 2023 02:33:32 -0700 (PDT) From: Hariprasad Kelam To: , CC: , , , , , , , , , , , , , , , , , , Subject: [net-next Patch v3 2/4] sch_htb: Allow HTB quantum parameter in offload mode Date: Mon, 17 Jul 2023 15:03:17 +0530 Message-ID: <20230717093319.26618-3-hkelam@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230717093319.26618-1-hkelam@marvell.com> References: <20230717093319.26618-1-hkelam@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: 9bNqpZraSwjnHvYJ62TyVIOdHGWfFcS_ X-Proofpoint-ORIG-GUID: 9bNqpZraSwjnHvYJ62TyVIOdHGWfFcS_ 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-07-17_07,2023-07-13_01,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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771662102178435866 X-GMAIL-MSGID: 1771662102178435866 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);