From patchwork Fri Feb 21 09:56:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1242007 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=sqAA1S6P; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48P6LY702Lz9sPk for ; Fri, 21 Feb 2020 20:56:53 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728360AbgBUJ4v (ORCPT ); Fri, 21 Feb 2020 04:56:51 -0500 Received: from mail-wm1-f66.google.com ([209.85.128.66]:35530 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728062AbgBUJ4u (ORCPT ); Fri, 21 Feb 2020 04:56:50 -0500 Received: by mail-wm1-f66.google.com with SMTP id b17so1031238wmb.0 for ; Fri, 21 Feb 2020 01:56:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9iXfmO4WYk9FosSATzyiqqZQj4suiRSh+IDKi494Buc=; b=sqAA1S6P47TZDtOsdNeEMR5zNSYVLoqnsbVfSMURbdnj9GQB+IVPNSX/rF+ZlOmorU qHJGt+J4AubH83aS3cSOAichRbIyzPKT/sYHrmdxhGGofM/D6Li45rSx4ltrFOLnaUnk eFjio5VKZHh9ACQcxWHYXIqxiYNM99hP2H75+oMHouSdUA+mBgbcUggfdFsRHEvIfEo+ u2a1GgevIH0PAh9F6Zi6/SQDhavEWQqfe7V8UsrJQ7OvMZS1QOka0zrukfm9QnHb+wr4 Sa/wO9W9V44ALVCMMPebWP7b4RCjKb6VkIuAco3sKq4xiRibcTmoTVlJsMntqnsk1scz U3Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9iXfmO4WYk9FosSATzyiqqZQj4suiRSh+IDKi494Buc=; b=Qff+pjcri7NfOugbET13d6tYWa31S1dK+YgtRiFwdYoqE+mPQKc77nIUOJGy9JbP5j yKyZM1sUfPMP4DpeIL9fIDz1EQh+KBMVycGR5UUtOozPxNEc60PP+7hs0RMcYCIlFw2i EhU4ED4NaLucVDoY+u0EoUzbsRSqSVcpJqP0XQ6m/zSH9TkwzMkHo0nD2csqxyZd3mAJ /xn1QnesCqCBVIObnc1525yUX3lrRSdNl8kh205EebTrALLCyE1o1QjFIXanFHSK4Gpq Zj9POF9Am6LVITivqnARrNk6N98UU++AzbWNNkgCRZOKHWFzpvfYae1KjbhKHds7M/VO 02uw== X-Gm-Message-State: APjAAAWiUSO35f78+AVDXgQ67KGb0QMAw5zvT4FpkxOMJU6cWdfLcAL/ p6lhIEGX9q1AHqJmWzimCw3CWyhAnLQ= X-Google-Smtp-Source: APXvYqyvmH0YQ2fIog1DH/yLbJOpZwI0ipVZ5O4AoMOZhvrjkd/Pu5hzZ0cNIfkLLmgmkbJOhShpzA== X-Received: by 2002:a05:600c:22d3:: with SMTP id 19mr2844866wmg.92.1582279005789; Fri, 21 Feb 2020 01:56:45 -0800 (PST) Received: from localhost (ip-89-177-130-96.net.upcbroadband.cz. [89.177.130.96]) by smtp.gmail.com with ESMTPSA id 18sm3151502wmf.1.2020.02.21.01.56.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 01:56:45 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, saeedm@mellanox.com, leon@kernel.org, michael.chan@broadcom.com, vishal@chelsio.com, jeffrey.t.kirsher@intel.com, idosch@mellanox.com, aelior@marvell.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, jhs@mojatatu.com, xiyou.wangcong@gmail.com, pablo@netfilter.org, mlxsw@mellanox.com Subject: [patch net-next 01/10] net: rename tc_cls_can_offload_and_chain0() to tc_cls_can_offload_basic() Date: Fri, 21 Feb 2020 10:56:34 +0100 Message-Id: <20200221095643.6642-2-jiri@resnulli.us> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200221095643.6642-1-jiri@resnulli.us> References: <20200221095643.6642-1-jiri@resnulli.us> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko The function is going to be extended for checking not only chain 0, but also HW stats type. So rename it accordingly as this checks for basic offloading functionality. Signed-off-by: Jiri Pirko --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c | 2 +- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 4 ++-- drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- drivers/net/ethernet/intel/igb/igb_main.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 2 +- drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 3 +-- drivers/net/ethernet/mscc/ocelot_flower.c | 2 +- drivers/net/ethernet/mscc/ocelot_tc.c | 2 +- drivers/net/ethernet/netronome/nfp/abm/cls.c | 2 +- drivers/net/ethernet/netronome/nfp/bpf/main.c | 2 +- drivers/net/ethernet/netronome/nfp/flower/offload.c | 2 +- drivers/net/ethernet/qlogic/qede/qede_main.c | 2 +- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +- drivers/net/netdevsim/bpf.c | 2 +- include/net/pkt_cls.h | 4 ++-- 17 files changed, 19 insertions(+), 20 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 597e6fd5bfea..f62a1d9667fa 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -11043,7 +11043,7 @@ static int bnxt_setup_tc_block_cb(enum tc_setup_type type, void *type_data, struct bnxt *bp = cb_priv; if (!bnxt_tc_flower_enabled(bp) || - !tc_cls_can_offload_and_chain0(bp->dev, type_data)) + !tc_cls_can_offload_basic(bp->dev, type_data)) return -EOPNOTSUPP; switch (type) { diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c index b010b34cdaf8..2ab3ecb298de 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c @@ -150,7 +150,7 @@ static int bnxt_vf_rep_setup_tc_block_cb(enum tc_setup_type type, int vf_fid = bp->pf.vf[vf_rep->vf_idx].fw_fid; if (!bnxt_tc_flower_enabled(vf_rep->bp) || - !tc_cls_can_offload_and_chain0(bp->dev, type_data)) + !tc_cls_can_offload_basic(bp->dev, type_data)) return -EOPNOTSUPP; switch (type) { diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c index 649842a8aa28..7b98c8e2ce69 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c @@ -3316,7 +3316,7 @@ static int cxgb_setup_tc_block_ingress_cb(enum tc_setup_type type, return -EINVAL; } - if (!tc_cls_can_offload_and_chain0(dev, type_data)) + if (!tc_cls_can_offload_basic(dev, type_data)) return -EOPNOTSUPP; switch (type) { @@ -3345,7 +3345,7 @@ static int cxgb_setup_tc_block_egress_cb(enum tc_setup_type type, return -EINVAL; } - if (!tc_cls_can_offload_and_chain0(dev, type_data)) + if (!tc_cls_can_offload_basic(dev, type_data)) return -EOPNOTSUPP; switch (type) { diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 8c3e753bfb9d..afa9a96e9212 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -8141,7 +8141,7 @@ static int i40e_setup_tc_block_cb(enum tc_setup_type type, void *type_data, { struct i40e_netdev_priv *np = cb_priv; - if (!tc_cls_can_offload_and_chain0(np->vsi->netdev, type_data)) + if (!tc_cls_can_offload_basic(np->vsi->netdev, type_data)) return -EOPNOTSUPP; switch (type) { diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index b46bff8fe056..396bda31ab76 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -2775,7 +2775,7 @@ static int igb_setup_tc_block_cb(enum tc_setup_type type, void *type_data, { struct igb_adapter *adapter = cb_priv; - if (!tc_cls_can_offload_and_chain0(adapter->netdev, type_data)) + if (!tc_cls_can_offload_basic(adapter->netdev, type_data)) return -EOPNOTSUPP; switch (type) { diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 718931d951bc..a91623b7ba19 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -9631,7 +9631,7 @@ static int ixgbe_setup_tc_block_cb(enum tc_setup_type type, void *type_data, { struct ixgbe_adapter *adapter = cb_priv; - if (!tc_cls_can_offload_and_chain0(adapter->netdev, type_data)) + if (!tc_cls_can_offload_basic(adapter->netdev, type_data)) return -EOPNOTSUPP; switch (type) { diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index 74091f72c9a8..bcfe2b6e35e5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -3865,7 +3865,7 @@ mlx5e_add_nic_flow(struct mlx5e_priv *priv, int attr_size, err; /* multi-chain not supported for NIC rules */ - if (!tc_cls_can_offload_and_chain0(priv->netdev, &f->common)) + if (!tc_cls_can_offload_basic(priv->netdev, &f->common)) return -EOPNOTSUPP; flow_flags |= BIT(MLX5E_TC_FLOW_FLAG_NIC); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c index d78e790ba94a..de8c11b5c487 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c @@ -1589,8 +1589,7 @@ static int mlxsw_sp_setup_tc_block_cb_matchall(enum tc_setup_type type, switch (type) { case TC_SETUP_CLSMATCHALL: - if (!tc_cls_can_offload_and_chain0(mlxsw_sp_port->dev, - type_data)) + if (!tc_cls_can_offload_basic(mlxsw_sp_port->dev, type_data)) return -EOPNOTSUPP; return mlxsw_sp_setup_tc_cls_matchall(mlxsw_sp_port, type_data, diff --git a/drivers/net/ethernet/mscc/ocelot_flower.c b/drivers/net/ethernet/mscc/ocelot_flower.c index 3d65b99b9734..64d2758eb223 100644 --- a/drivers/net/ethernet/mscc/ocelot_flower.c +++ b/drivers/net/ethernet/mscc/ocelot_flower.c @@ -261,7 +261,7 @@ static int ocelot_setup_tc_block_cb_flower(enum tc_setup_type type, { struct ocelot_port_block *port_block = cb_priv; - if (!tc_cls_can_offload_and_chain0(port_block->priv->dev, type_data)) + if (!tc_cls_can_offload_basic(port_block->priv->dev, type_data)) return -EOPNOTSUPP; switch (type) { diff --git a/drivers/net/ethernet/mscc/ocelot_tc.c b/drivers/net/ethernet/mscc/ocelot_tc.c index a4f7fbd76507..954136db2f62 100644 --- a/drivers/net/ethernet/mscc/ocelot_tc.c +++ b/drivers/net/ethernet/mscc/ocelot_tc.c @@ -94,7 +94,7 @@ static int ocelot_setup_tc_block_cb(enum tc_setup_type type, { struct ocelot_port_private *priv = cb_priv; - if (!tc_cls_can_offload_and_chain0(priv->dev, type_data)) + if (!tc_cls_can_offload_basic(priv->dev, type_data)) return -EOPNOTSUPP; switch (type) { diff --git a/drivers/net/ethernet/netronome/nfp/abm/cls.c b/drivers/net/ethernet/netronome/nfp/abm/cls.c index 23ebddfb9532..7c59b248e216 100644 --- a/drivers/net/ethernet/netronome/nfp/abm/cls.c +++ b/drivers/net/ethernet/netronome/nfp/abm/cls.c @@ -238,7 +238,7 @@ static int nfp_abm_setup_tc_block_cb(enum tc_setup_type type, "only offload of u32 classifier supported"); return -EOPNOTSUPP; } - if (!tc_cls_can_offload_and_chain0(repr->netdev, &cls_u32->common)) + if (!tc_cls_can_offload_basic(repr->netdev, &cls_u32->common)) return -EOPNOTSUPP; if (cls_u32->common.protocol != htons(ETH_P_IP) && diff --git a/drivers/net/ethernet/netronome/nfp/bpf/main.c b/drivers/net/ethernet/netronome/nfp/bpf/main.c index 11c83a99b014..4c1b2bd655a0 100644 --- a/drivers/net/ethernet/netronome/nfp/bpf/main.c +++ b/drivers/net/ethernet/netronome/nfp/bpf/main.c @@ -116,7 +116,7 @@ static int nfp_bpf_setup_tc_block_cb(enum tc_setup_type type, "only offload of BPF classifiers supported"); return -EOPNOTSUPP; } - if (!tc_cls_can_offload_and_chain0(nn->dp.netdev, &cls_bpf->common)) + if (!tc_cls_can_offload_basic(nn->dp.netdev, &cls_bpf->common)) return -EOPNOTSUPP; if (!nfp_net_ebpf_capable(nn)) { NL_SET_ERR_MSG_MOD(cls_bpf->common.extack, diff --git a/drivers/net/ethernet/netronome/nfp/flower/offload.c b/drivers/net/ethernet/netronome/nfp/flower/offload.c index 7ca5c1becfcf..7a9bb55deec2 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/offload.c +++ b/drivers/net/ethernet/netronome/nfp/flower/offload.c @@ -1523,7 +1523,7 @@ static int nfp_flower_setup_tc_block_cb(enum tc_setup_type type, { struct nfp_repr *repr = cb_priv; - if (!tc_cls_can_offload_and_chain0(repr->netdev, type_data)) + if (!tc_cls_can_offload_basic(repr->netdev, type_data)) return -EOPNOTSUPP; switch (type) { diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c index 34fa3917eb33..6168bb6e855c 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_main.c +++ b/drivers/net/ethernet/qlogic/qede/qede_main.c @@ -567,7 +567,7 @@ static int qede_setup_tc_block_cb(enum tc_setup_type type, void *type_data, struct flow_cls_offload *f; struct qede_dev *edev = cb_priv; - if (!tc_cls_can_offload_and_chain0(edev->ndev, type_data)) + if (!tc_cls_can_offload_basic(edev->ndev, type_data)) return -EOPNOTSUPP; switch (type) { diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 37920b4da091..80b528a58723 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -4120,7 +4120,7 @@ static int stmmac_setup_tc_block_cb(enum tc_setup_type type, void *type_data, struct stmmac_priv *priv = cb_priv; int ret = -EOPNOTSUPP; - if (!tc_cls_can_offload_and_chain0(priv->dev, type_data)) + if (!tc_cls_can_offload_basic(priv->dev, type_data)) return ret; stmmac_disable_all_queues(priv); diff --git a/drivers/net/netdevsim/bpf.c b/drivers/net/netdevsim/bpf.c index 0b362b8dac17..537a4233a989 100644 --- a/drivers/net/netdevsim/bpf.c +++ b/drivers/net/netdevsim/bpf.c @@ -124,7 +124,7 @@ int nsim_bpf_setup_tc_block_cb(enum tc_setup_type type, return -EOPNOTSUPP; } - if (!tc_cls_can_offload_and_chain0(ns->netdev, &cls_bpf->common)) + if (!tc_cls_can_offload_basic(ns->netdev, &cls_bpf->common)) return -EOPNOTSUPP; if (cls_bpf->common.protocol != htons(ETH_P_ALL)) { diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index 53946b509b51..779364ed080a 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -584,8 +584,8 @@ static inline bool tc_can_offload_extack(const struct net_device *dev, } static inline bool -tc_cls_can_offload_and_chain0(const struct net_device *dev, - struct flow_cls_common_offload *common) +tc_cls_can_offload_basic(const struct net_device *dev, + struct flow_cls_common_offload *common) { if (!tc_can_offload_extack(dev, common->extack)) return false; From patchwork Fri Feb 21 09:56:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1242006 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=Iw8gjYoM; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48P6LY3M9vz9sRG for ; Fri, 21 Feb 2020 20:56:53 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728279AbgBUJ4u (ORCPT ); Fri, 21 Feb 2020 04:56:50 -0500 Received: from mail-wm1-f65.google.com ([209.85.128.65]:33799 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727966AbgBUJ4t (ORCPT ); Fri, 21 Feb 2020 04:56:49 -0500 Received: by mail-wm1-f65.google.com with SMTP id s144so4781711wme.1 for ; Fri, 21 Feb 2020 01:56:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7rW8cgB1ARnZe8PbEAe5B9raJgjX858jugTHDM6EZ3g=; b=Iw8gjYoMUEtWTDjQPzHnboVM6TtrEq1L86mDchmSAVFj/5Hqs7sADHFBRGxMdEke7f ANUv7jMzia8wL+HQcor7QdUbw4F5fZ80XjvtR69q+Vza3qtCa9FtheKVKcY8NRhgVg4o oM1GSzL/WlaYrsAwLrFs69t/Mj9l7mlMG6TAR3wXr/AXRrpZO/LZcNLcBqNN4j/IEKDl iaMArIJP6z0YHNBRwLzeX34Z9JsFwJSXHfQ8Dlz8eiLCqpc8QbjMJW+ypZOC3/baa0aO DY5W/xxu0HHYPCirpQgh24umWbZQOr8p226K/Wi5MCF1MLtD89ZYc8osk8mGBhmTe9Z8 a6wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7rW8cgB1ARnZe8PbEAe5B9raJgjX858jugTHDM6EZ3g=; b=Rx/ywz8iJF5vI6ujazE6T4DDf5b8kBKGL8rZpOK4Z4u+oMsclH0sKFiWHKtxAgJ2Qe FCVtAH1J38U0Fguv7iuadTsmKwdJM1CFdhcePTVoxgTdwJ8jUwdcJU4HOKTUyCpeot9u q4DBoF99r1Y/DiXr/Klu/GNwBVHO4WUO4XpZ/qZ7F3Cb66IrZQPieSa94X1of9yq6RkY 8QVDgaSsOe3TArOxOXn8DD6a7Iqdubb3AHtxWs9NSlGxET0tXtZ3TnRyR0tsANYqAAh0 SPaeVzhUci7IYMfWVVSmbcgLiha3jKCn8Y5ZUVdHNW1Z+EF7HQWLVNOwkkYCD4Mjj2wk C18Q== X-Gm-Message-State: APjAAAUB89cIxmn6OcUMgkVPCBwlIwxlp1CLbXktywqJG25ao277+WmK SwcQU7LEgCufDu/Db9KizLAwcmXwgRo= X-Google-Smtp-Source: APXvYqwTUkckdthPSSNiTrzBRPODi6BwLZ8s1HyrP6nOSK8J46L6e8jLg+jKDsga0R5O/hWUGeD4cw== X-Received: by 2002:a7b:cb86:: with SMTP id m6mr2840868wmi.51.1582279006988; Fri, 21 Feb 2020 01:56:46 -0800 (PST) Received: from localhost (ip-89-177-130-96.net.upcbroadband.cz. [89.177.130.96]) by smtp.gmail.com with ESMTPSA id b16sm2934619wmj.39.2020.02.21.01.56.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 01:56:46 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, saeedm@mellanox.com, leon@kernel.org, michael.chan@broadcom.com, vishal@chelsio.com, jeffrey.t.kirsher@intel.com, idosch@mellanox.com, aelior@marvell.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, jhs@mojatatu.com, xiyou.wangcong@gmail.com, pablo@netfilter.org, mlxsw@mellanox.com Subject: [patch net-next 02/10] iavf: use tc_cls_can_offload_basic() instead of chain check Date: Fri, 21 Feb 2020 10:56:35 +0100 Message-Id: <20200221095643.6642-3-jiri@resnulli.us> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200221095643.6642-1-jiri@resnulli.us> References: <20200221095643.6642-1-jiri@resnulli.us> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Looks like the iavf code actually experienced a race condition, when a developer took code before the check for chain 0 was put to helper. So use tc_cls_can_offload_basic() helper instead of direct check and move the check to _cb() so this is similar to i40e code. Signed-off-by: Jiri Pirko --- drivers/net/ethernet/intel/iavf/iavf_main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c index 62fe56ddcb6e..8bc0d287d025 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_main.c +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c @@ -3061,9 +3061,6 @@ static int iavf_delete_clsflower(struct iavf_adapter *adapter, static int iavf_setup_tc_cls_flower(struct iavf_adapter *adapter, struct flow_cls_offload *cls_flower) { - if (cls_flower->common.chain_index) - return -EOPNOTSUPP; - switch (cls_flower->command) { case FLOW_CLS_REPLACE: return iavf_configure_clsflower(adapter, cls_flower); @@ -3087,6 +3084,11 @@ static int iavf_setup_tc_cls_flower(struct iavf_adapter *adapter, static int iavf_setup_tc_block_cb(enum tc_setup_type type, void *type_data, void *cb_priv) { + struct iavf_adapter *adapter = cb_priv; + + if (!tc_cls_can_offload_basic(adapter->netdev, type_data)) + return -EOPNOTSUPP; + switch (type) { case TC_SETUP_CLSFLOWER: return iavf_setup_tc_cls_flower(cb_priv, type_data); From patchwork Fri Feb 21 09:56:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1242009 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=TzR5DR06; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48P6Lc10zCz9sPk for ; Fri, 21 Feb 2020 20:56:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728416AbgBUJ4x (ORCPT ); Fri, 21 Feb 2020 04:56:53 -0500 Received: from mail-wr1-f65.google.com ([209.85.221.65]:39190 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727966AbgBUJ4v (ORCPT ); Fri, 21 Feb 2020 04:56:51 -0500 Received: by mail-wr1-f65.google.com with SMTP id y11so1265691wrt.6 for ; Fri, 21 Feb 2020 01:56:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=k0mUGq6HQocyrxKZXlqAJLiJT3nbl1r2iJVRHT1NBsU=; b=TzR5DR06Asf973j5uVSAJf1Puhglc0r2y1VojB9xzOOKQn5MiowvUY9edwpeWn1H+h xByVhiPcF2kfdWlMert5B4M6SQed+fgmIYuhqThDLxdh98oqd4m9DNKr3l/D5cX34bRM X1Zb7lrtlUBZLOqXr1yPgOr2nEDxzuTitEeJazzpjLNLgSIBNzMClWKopD4y5PCKkUX4 96MWpmpft60zDnArOKepPC+afjFBkVLtrEXMWobBowYwHIzaphtoyU8bPvmih7lQe8Ly /YxT+I49CpwjAo81HjQ/bPoFNGGdY+D6C6cpZlHZPdBqnDSYOyhooGFKaaCQutFJtq1P 8cxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=k0mUGq6HQocyrxKZXlqAJLiJT3nbl1r2iJVRHT1NBsU=; b=kD/MxsZLSX2RB2WQGlHELdr8vq3H1CJqBF241zt5dvnX8I3yTRyY208+hT2ph/KPg6 17I8sWFQpRBOzRiJ7eBg2wyGBY6Q7PClN6vB56rjPVuk0uzV7jZFYoFx40QYq4VkfIT1 raeSewCyLRmFNbt2agmBmlMIQFKtCecCnQOjzmn4ocRXDmfBTys4hQqWbs39t+JMIPiw Z1dZtJOvvMY83m1j1QM+rQULxc4OTqpojBBA5QBcrShLKlN9vSgw6y/LPnh2+XRwGLKL GNrGb20zx0oa7af6CiVTgKFa1YgQUT18BOmher3OTqvSRkcjCFYur8vRXtRXXfYUlC0F vwig== X-Gm-Message-State: APjAAAWAYSwZ+mUjPkoCYVWOuJvKn3AivpVbKb9dn2332mCV85C2KKbi mrEZ1hMLhSH9itYISlAoUrrI16qCeqE= X-Google-Smtp-Source: APXvYqw8G+Yqup80Eb6OPcGYFI/m6u6/JKKtGYPmhoxGbygJn+Qq3KfHs7goPsNBz5srvTb908UObw== X-Received: by 2002:adf:f581:: with SMTP id f1mr48144452wro.264.1582279008278; Fri, 21 Feb 2020 01:56:48 -0800 (PST) Received: from localhost (ip-89-177-130-96.net.upcbroadband.cz. [89.177.130.96]) by smtp.gmail.com with ESMTPSA id e1sm3203568wrt.84.2020.02.21.01.56.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 01:56:47 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, saeedm@mellanox.com, leon@kernel.org, michael.chan@broadcom.com, vishal@chelsio.com, jeffrey.t.kirsher@intel.com, idosch@mellanox.com, aelior@marvell.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, jhs@mojatatu.com, xiyou.wangcong@gmail.com, pablo@netfilter.org, mlxsw@mellanox.com Subject: [patch net-next 03/10] flow_offload: Introduce offload of HW stats type Date: Fri, 21 Feb 2020 10:56:36 +0100 Message-Id: <20200221095643.6642-4-jiri@resnulli.us> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200221095643.6642-1-jiri@resnulli.us> References: <20200221095643.6642-1-jiri@resnulli.us> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Initially, pass "ANY" (struct is zeroed) to the drivers as that is the current implicit value coming down to flow_offload. Signed-off-by: Jiri Pirko --- include/net/flow_offload.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h index c6f7bd22db60..34e1e7832cc3 100644 --- a/include/net/flow_offload.h +++ b/include/net/flow_offload.h @@ -350,10 +350,15 @@ enum flow_cls_command { FLOW_CLS_TMPLT_DESTROY, }; +enum flow_cls_hw_stats_type { + FLOW_CLS_HW_STATS_TYPE_ANY, +}; + struct flow_cls_common_offload { u32 chain_index; __be16 protocol; u32 prio; + enum flow_cls_hw_stats_type hw_stats_type; struct netlink_ext_ack *extack; }; From patchwork Fri Feb 21 09:56:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1242008 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=mqLAzsnV; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48P6Lb1JDsz9sRG for ; Fri, 21 Feb 2020 20:56:55 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728434AbgBUJ4y (ORCPT ); Fri, 21 Feb 2020 04:56:54 -0500 Received: from mail-wm1-f66.google.com ([209.85.128.66]:54211 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728062AbgBUJ4w (ORCPT ); Fri, 21 Feb 2020 04:56:52 -0500 Received: by mail-wm1-f66.google.com with SMTP id s10so1030727wmh.3 for ; Fri, 21 Feb 2020 01:56:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wU7XkWqeMwVI7zIqEnTnLliqlehNQFtMvc+LskfXmlg=; b=mqLAzsnVJ+q7FEQecrdApJpfvOU9lAgZqEXihzAMq94/EJkyPTshkiI63MJXg8uZBe 0CYz5RTgRaVI2pkndjsa9XlmdJuADQj7qmnfL/ip7YZGQqsXMuFrD2pwBTot0F1Ts0TK pBWR21DSO4WVulmmpfrvX5s4/XRuzs+qDhY4L/2qDKDPghY4PsL2Vfujb0IvPZGXFxgy gFjSdSqTfpRvB8xSVLu2yvemIkAwwIRutarBzTybqEN2HEQ8s1FfC3nwT8i/moztTbpd x0TcCxS93Gf9SxB3HhHqHQowPx3s0orcD4P88bPrMSkTgN1+yTFhTLt+bJvzXvyE+rl3 oaEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wU7XkWqeMwVI7zIqEnTnLliqlehNQFtMvc+LskfXmlg=; b=Fp8uJedmSJbF/Uv+JDywjUBR4Oca7HudXvQ8uLwhDFu5aymj14EPXK6q54glmP+/kT cGQHVr58Gablx59sw91hFsUv/k1lpxPz1haymdFdDJprotP3HsupE4Ynb6CEK/Fj0/dR m5TcOxSRserxbNLESVnbiIR0JuqXQU0901uh71/KFscrakTKeTFpKgoRpxZDOyRurFgy 05deT2tDIGMdyj3nghhPXndul+3+CWdcSb0JqFgownDP1S0brGVDGvaZRq3eAqLWpkcF /fq3G3/kuNjH8fgwRwIHPSx7nMw961H5zMb2kyvs73NIJCP0VMpm7sFDDiAbOrruiO3B vbpw== X-Gm-Message-State: APjAAAXQD8m4r0t83uk5S8UauWl099BNPCpp3FXWju+MNoq9eydQ7TIv icC0emZnePvsBBBfprahGgNL7XDHtqA= X-Google-Smtp-Source: APXvYqwE3NQXYuzsAFJHuuHv7HY68rENqCOvzfOHd5COggyuwDOixlam0ooNYC4YC/wM0aTNInDqMw== X-Received: by 2002:a1c:238e:: with SMTP id j136mr2788199wmj.33.1582279009479; Fri, 21 Feb 2020 01:56:49 -0800 (PST) Received: from localhost (ip-89-177-130-96.net.upcbroadband.cz. [89.177.130.96]) by smtp.gmail.com with ESMTPSA id c74sm3259349wmd.26.2020.02.21.01.56.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 01:56:49 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, saeedm@mellanox.com, leon@kernel.org, michael.chan@broadcom.com, vishal@chelsio.com, jeffrey.t.kirsher@intel.com, idosch@mellanox.com, aelior@marvell.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, jhs@mojatatu.com, xiyou.wangcong@gmail.com, pablo@netfilter.org, mlxsw@mellanox.com Subject: [patch net-next 04/10] net: extend tc_cls_can_offload_basic() to check HW stats type Date: Fri, 21 Feb 2020 10:56:37 +0100 Message-Id: <20200221095643.6642-5-jiri@resnulli.us> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200221095643.6642-1-jiri@resnulli.us> References: <20200221095643.6642-1-jiri@resnulli.us> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko As the default type of HW stats is "any", extend tc_cls_can_offload_basic() helper to check for it and don't allow any other type to be handled by the drivers. Signed-off-by: Jiri Pirko --- include/net/pkt_cls.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index 779364ed080a..d3d90f714a66 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -594,6 +594,11 @@ tc_cls_can_offload_basic(const struct net_device *dev, "Driver supports only offload of chain 0"); return false; } + if (common->hw_stats_type != FLOW_CLS_HW_STATS_TYPE_ANY) { + NL_SET_ERR_MSG(common->extack, + "Driver supports only default HW stats type \"any\""); + return false; + } return true; } From patchwork Fri Feb 21 09:56:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1242015 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=w4IVDpCc; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48P6Lq4kYhz9sPk for ; Fri, 21 Feb 2020 20:57:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728567AbgBUJ5G (ORCPT ); Fri, 21 Feb 2020 04:57:06 -0500 Received: from mail-wm1-f68.google.com ([209.85.128.68]:40150 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728364AbgBUJ4w (ORCPT ); Fri, 21 Feb 2020 04:56:52 -0500 Received: by mail-wm1-f68.google.com with SMTP id t14so1020018wmi.5 for ; Fri, 21 Feb 2020 01:56:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mbbbf/LwMOht4kninYTv9tjTmyrds5FOnNLj6MSfrqk=; b=w4IVDpCcRGWRshftECO/NvxWNNnRBd9j23ogPgcTsy96T/XPM9SyKmzGsCPn7ucOp5 d3sCdY7WWKoKTl9bWG0PsMgAEsj+EPWCOxfb8mb2/5HDjnDlveDmdx5Gg009zlKy8jHF xkewBXlQrLiqubqbmIqXK5KdzWIdiwzLGqGc3uffxltuRCK1T7x/ZG5bSp5CaoDNpHnM WByvasaiLFokUNflKgxfFVKU541Vhaf2zgAvM836i7KYrJw6/ggdgTxan7lQHINUT9w4 vNynaWnKxoVfTfUwWzLOA5dkg1Lee18Cb7VRgeBbSdI3sKvonxIZaQb5CChgfqTrSz7X 85Pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mbbbf/LwMOht4kninYTv9tjTmyrds5FOnNLj6MSfrqk=; b=ffPp6rR+b0+sRu//7F5bl+LEhGvNNEP6ev+r6Z54FfgzBGR4oGVYP4mKEsH37/GNna CJEqEiRuX8hd/bbwOFccSPY+xFCo7g0tQvU3eIeQLU2n8oaq9XmhxwoPF65xcKqGanCb GExFjRIOin6P7RKkoUR0mWKq6XaK51Omg8bK9vvtn7587FnjiwT11bXLQs5npSg1XvgH MB4IdzjWfU8t7hOJfktmoJHs9sX3J5E1W0jNJP5R/hBtRNeqzTA/wzKCSI2xC2hsHnY2 imMg1utHjQf5YuUxikwHhyf5vXaPRgk9ymG0BLGKXmhYpiHr5lL5mcCLn41PvFZD9FVZ gltw== X-Gm-Message-State: APjAAAXkgWC7ktOaTSTJtHT1FQOhwmt3Dg0cN9pjO9II/pcCmCU07iTF 3S8pd5XQ07Y8T7hC5V4zXE88yIG4yyA= X-Google-Smtp-Source: APXvYqwfV9FSiuV/FguOV19rQ+sVbrqg6v3sWRgqRGIVADeITM3wEiovvlYAC6hBRnRevI4ZdVF59Q== X-Received: by 2002:a1c:670a:: with SMTP id b10mr2769974wmc.2.1582279010778; Fri, 21 Feb 2020 01:56:50 -0800 (PST) Received: from localhost (ip-89-177-130-96.net.upcbroadband.cz. [89.177.130.96]) by smtp.gmail.com with ESMTPSA id v12sm3372519wru.23.2020.02.21.01.56.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 01:56:50 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, saeedm@mellanox.com, leon@kernel.org, michael.chan@broadcom.com, vishal@chelsio.com, jeffrey.t.kirsher@intel.com, idosch@mellanox.com, aelior@marvell.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, jhs@mojatatu.com, xiyou.wangcong@gmail.com, pablo@netfilter.org, mlxsw@mellanox.com Subject: [patch net-next 05/10] mlx5: restrict supported HW stats type to "any" Date: Fri, 21 Feb 2020 10:56:38 +0100 Message-Id: <20200221095643.6642-6-jiri@resnulli.us> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200221095643.6642-1-jiri@resnulli.us> References: <20200221095643.6642-1-jiri@resnulli.us> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Currently don't allow rules with any other type to be inserted. Signed-off-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index bcfe2b6e35e5..39bbd9675ae4 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -3918,6 +3918,11 @@ mlx5e_tc_add_flow(struct mlx5e_priv *priv, if (!tc_can_offload_extack(priv->netdev, f->common.extack)) return -EOPNOTSUPP; + if (f->common.hw_stats_type != FLOW_CLS_HW_STATS_TYPE_ANY) { + NL_SET_ERR_MSG_MOD(f->common.extack, "Unsupported HW stats type"); + return -EOPNOTSUPP; + } + if (esw && esw->mode == MLX5_ESWITCH_OFFLOADS) err = mlx5e_add_fdb_flow(priv, f, flow_flags, filter_dev, flow); From patchwork Fri Feb 21 09:56:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1242010 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=sTIPJTqK; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48P6Ld5FQ3z9sPk for ; Fri, 21 Feb 2020 20:56:57 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728465AbgBUJ44 (ORCPT ); Fri, 21 Feb 2020 04:56:56 -0500 Received: from mail-wr1-f66.google.com ([209.85.221.66]:44401 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728429AbgBUJ4y (ORCPT ); Fri, 21 Feb 2020 04:56:54 -0500 Received: by mail-wr1-f66.google.com with SMTP id m16so1245856wrx.11 for ; Fri, 21 Feb 2020 01:56:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+lwTtgXb9srnnNzcDA0PEVOTtVzJMfEAHR0zweTM3NQ=; b=sTIPJTqK6JNZhe0R31vc7oi8kV4wN/x6/6ymhLEeANP1DlLirPyAaz10d/fG4Hv5s5 GUbW/YtZan0ikFNXc3jAzUaQ+E8dP8dfQ6mVpakzOGxmFk+U/Rk56LUZE1tbfy1DL4Sh I8WHf09aAo/mUMNkszzV9NuPapnxDjWbSImp8ZLOnOJUYu3n4S7Z0cTQL9Bk1hvZ2uXE mgP9N7/A6xOjk8YpOg1PW/Gd2ZqjAsPMms7SJin16eQD7s3fCPxHaMn23wVy5ZFdwcG/ ndANgfBFS/6sPhlw78l1MAzU8tuc3rKwuYUkL5vp/WdVVfyvGw2V2ydWDc0PPkdEcEwt tQBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+lwTtgXb9srnnNzcDA0PEVOTtVzJMfEAHR0zweTM3NQ=; b=sTlMRCs3MsTeqazA5yiFguokNwwZOXHmVwMBAQrX7H9nv+j0LN9E1vEYFmHJuGjx6V kh2mS0gR0iNR7rpylYVFUSUyUJ1reFJn4NubZ0iuASWYvUSLtVObAvEbErMPSykWVoOs aWVzz+kxtorXSoSfv8GENxoTWttHb2oB6Q8/SoyvcrZl++G1PZlMhrHfEs0E8tzwIJ2H 6TOOoffrNkadK6bB1T2l27ezhpj/kaLZqApcIGK2VzihD/VOnuyyuwdjSwxZEiK4JD0e JgUmX/cSUkB7TmL2WIgkoIoWu/38i8hwSnf75DMEWW9PSq1mvmtpIkVTl4+JSvWv8fG5 /gpQ== X-Gm-Message-State: APjAAAUnLerdB9ygxdR7BQW8CNBrWrpx5+alYWtnOjIfS4cFAmxpz+mZ pWfuBgnoN+LZ3Jyr4tSIt0d7JpmXIYQ= X-Google-Smtp-Source: APXvYqztOH5SInPwyuD/vf5pKD82kOO4G/b7STAq4IHykGwCJgQRj1ZujqeAdqBMV1EDdTh6NxD93g== X-Received: by 2002:adf:ea42:: with SMTP id j2mr20091148wrn.139.1582279012412; Fri, 21 Feb 2020 01:56:52 -0800 (PST) Received: from localhost (ip-89-177-130-96.net.upcbroadband.cz. [89.177.130.96]) by smtp.gmail.com with ESMTPSA id x10sm3160387wrv.60.2020.02.21.01.56.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 01:56:51 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, saeedm@mellanox.com, leon@kernel.org, michael.chan@broadcom.com, vishal@chelsio.com, jeffrey.t.kirsher@intel.com, idosch@mellanox.com, aelior@marvell.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, jhs@mojatatu.com, xiyou.wangcong@gmail.com, pablo@netfilter.org, mlxsw@mellanox.com Subject: [patch net-next 06/10] mlxsw: restrict supported HW stats type to "any" Date: Fri, 21 Feb 2020 10:56:39 +0100 Message-Id: <20200221095643.6642-7-jiri@resnulli.us> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200221095643.6642-1-jiri@resnulli.us> References: <20200221095643.6642-1-jiri@resnulli.us> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Currently don't allow rules with any other type to be inserted. Signed-off-by: Jiri Pirko --- .../ethernet/mellanox/mlxsw/spectrum_flower.c | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c index b607919c8ad0..ef0799a539d2 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c @@ -14,11 +14,13 @@ #include "spectrum.h" #include "core_acl_flex_keys.h" -static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp, - struct mlxsw_sp_acl_block *block, - struct mlxsw_sp_acl_rule_info *rulei, - struct flow_action *flow_action, - struct netlink_ext_ack *extack) +static int +mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp, + struct mlxsw_sp_acl_block *block, + struct mlxsw_sp_acl_rule_info *rulei, + struct flow_action *flow_action, + enum flow_cls_hw_stats_type hw_stats_type, + struct netlink_ext_ack *extack) { const struct flow_action_entry *act; int mirror_act_count = 0; @@ -27,10 +29,17 @@ static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp, if (!flow_action_has_entries(flow_action)) return 0; - /* Count action is inserted first */ - err = mlxsw_sp_acl_rulei_act_count(mlxsw_sp, rulei, extack); - if (err) - return err; + switch (hw_stats_type) { + case FLOW_CLS_HW_STATS_TYPE_ANY: + /* Count action is inserted first */ + err = mlxsw_sp_acl_rulei_act_count(mlxsw_sp, rulei, extack); + if (err) + return err; + break; + default: + NL_SET_ERR_MSG_MOD(extack, "Unsupported HW stats type"); + return -EOPNOTSUPP; + } flow_action_for_each(i, act, flow_action) { switch (act->id) { @@ -449,6 +458,7 @@ static int mlxsw_sp_flower_parse(struct mlxsw_sp *mlxsw_sp, return mlxsw_sp_flower_parse_actions(mlxsw_sp, block, rulei, &f->rule->action, + f->common.hw_stats_type, f->common.extack); } From patchwork Fri Feb 21 09:56:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1242011 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=RFkYqTlu; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48P6Lg085hz9sPk for ; Fri, 21 Feb 2020 20:56:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728489AbgBUJ46 (ORCPT ); Fri, 21 Feb 2020 04:56:58 -0500 Received: from mail-wr1-f65.google.com ([209.85.221.65]:39198 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728062AbgBUJ44 (ORCPT ); Fri, 21 Feb 2020 04:56:56 -0500 Received: by mail-wr1-f65.google.com with SMTP id y11so1266011wrt.6 for ; Fri, 21 Feb 2020 01:56:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YEYeUvHUOEl/1TV7rKz0yc0tco4+BQCw12SfJ2nBJrc=; b=RFkYqTluG/mvkAd+06q07jOlN5VQqD8tRn1EImv7hcQ8408FUqbVsFN1p5po4C+kwR CluGI7PpF8se7xjSIyy2H6TWI9DL4ZiVOmjnqMWd0kae/TviblV2kngAzr41oehh6jZF BLv28UaUCNkziw8x+2am38bAEFL3aE9SL4W5d0ZtdBOX9UxYBWPt4sH5By4xrQnBQMMG aQG2FSp1IASPuKiYav98Td1k6bKm4+qU2Lnbd/iEMGPK9rHyBHZvLs5rcYqKwTGZ2NHX egoYnPvm4A1G/ycbn7E1n+JM2Rq848ljgeHczyBo6ARqp2h4qAcACid5+cG96csf8Ezv 6mfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YEYeUvHUOEl/1TV7rKz0yc0tco4+BQCw12SfJ2nBJrc=; b=eXpDixnkz3MLYUwYO6XP3MYi29ufra+vaN5RgoCFOUOd5EutCFlR8NAOltRXnMuwzK yTajJsfNw3fznMJSW9+1ve8ZIXODqVPd91gPIcg8h8YRFicwruSAMsq5OhYwFZbjWS8Y iQ9CSkUyg5ftjEKilVSg0ZlXUhX3zgPpvl1fKGC/UXeTG4r4cwE1zIo1ZYxunwVFDwVk 13USqwidaJ0HiorLffar/1oXFk2MyyMajT7ymQf6vTlB6o8D8y31ECktrscP9elaQ6ps 8fxVGXo1cM12I1tk7q0w6g2SB1ysZCaIS5TKXZTF7VNmJ2bB3UDpCnkTymSxTVpLu4T1 mgOQ== X-Gm-Message-State: APjAAAU+7T+pTRsRTfMqKbdS46SkpP3meFwmnYQ/tdrwJ86/s+zFfxYs cvkQDtastZqgj8kG78Daxb59ABHb+gw= X-Google-Smtp-Source: APXvYqwgXWrDbhkxJeLqU+uNQ8VQQjhMqktghgeu5RDppHPOX+9Nqnz1J0Gtbi0E2GQw7+qUndHhWA== X-Received: by 2002:adf:ed8e:: with SMTP id c14mr47673069wro.80.1582279013618; Fri, 21 Feb 2020 01:56:53 -0800 (PST) Received: from localhost (ip-89-177-130-96.net.upcbroadband.cz. [89.177.130.96]) by smtp.gmail.com with ESMTPSA id x6sm3304682wrr.6.2020.02.21.01.56.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 01:56:53 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, saeedm@mellanox.com, leon@kernel.org, michael.chan@broadcom.com, vishal@chelsio.com, jeffrey.t.kirsher@intel.com, idosch@mellanox.com, aelior@marvell.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, jhs@mojatatu.com, xiyou.wangcong@gmail.com, pablo@netfilter.org, mlxsw@mellanox.com Subject: [patch net-next 07/10] flow_offload: introduce "immediate" HW stats type and allow it in mlxsw Date: Fri, 21 Feb 2020 10:56:40 +0100 Message-Id: <20200221095643.6642-8-jiri@resnulli.us> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200221095643.6642-1-jiri@resnulli.us> References: <20200221095643.6642-1-jiri@resnulli.us> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Introduce new type for immediate HW stats and allow the value in mlxsw offload. Signed-off-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c | 3 ++- include/net/flow_offload.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c index ef0799a539d2..a3e9f72f50de 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c @@ -30,7 +30,8 @@ mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp, return 0; switch (hw_stats_type) { - case FLOW_CLS_HW_STATS_TYPE_ANY: + case FLOW_CLS_HW_STATS_TYPE_ANY: /* fall-through */ + case FLOW_CLS_HW_STATS_TYPE_IMMEDIATE: /* Count action is inserted first */ err = mlxsw_sp_acl_rulei_act_count(mlxsw_sp, rulei, extack); if (err) diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h index 34e1e7832cc3..b1a182941f1d 100644 --- a/include/net/flow_offload.h +++ b/include/net/flow_offload.h @@ -352,6 +352,7 @@ enum flow_cls_command { enum flow_cls_hw_stats_type { FLOW_CLS_HW_STATS_TYPE_ANY, + FLOW_CLS_HW_STATS_TYPE_IMMEDIATE, }; struct flow_cls_common_offload { From patchwork Fri Feb 21 09:56:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1242013 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=vaw0OPT/; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48P6Lk0Lp1z9sPk for ; Fri, 21 Feb 2020 20:57:02 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728530AbgBUJ5B (ORCPT ); Fri, 21 Feb 2020 04:57:01 -0500 Received: from mail-wm1-f68.google.com ([209.85.128.68]:54226 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728468AbgBUJ45 (ORCPT ); Fri, 21 Feb 2020 04:56:57 -0500 Received: by mail-wm1-f68.google.com with SMTP id s10so1031124wmh.3 for ; Fri, 21 Feb 2020 01:56:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=McTtTI8GabwacHoiav1zlpdS09CHDGMImk/NjHhuwyQ=; b=vaw0OPT/XFUMyle5KNaxcU3Sdg276gElUYamnixqvjHSC6lXgySupYCnLvHiXbhJ30 09BDY0S8JC4Kpr29/zgVT6lIKFnpY7M5R6CHbjjiQ1V5DHPgW+GLgFo4IW91OlsOvyLf Uwckck94eNlcSXTb5zdHSU/0HX6YLztT39Ko/VFmhZJg8fOgMspf3YThTw3lbcK5AVw6 +uDwgHQgryy/euYjZHVlGz4sv/1ReVxp9KTF2oZDyfANHeQRkbUr/K3gAcJZv0X8n9mZ WGQMcH5dlENXbRVpPRTrfKbdf05XKbKMbew6oyTmE0oPyyFXxCVc35l2JO1QYXZ4p4MF Eh+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=McTtTI8GabwacHoiav1zlpdS09CHDGMImk/NjHhuwyQ=; b=s8YNQCn1Cvsttg0gfEYY/zoqfmO7LIMF1bHYCFkqWkXUC7jvPUAaApoNOPE9Kzg13O ek5+jowLcpn7RzGatasSnVJY38T5CQ3TcUQbWvCWebfwxr5yLa04Fht++1xUKd1Co5nf eM1u9yq+DQifopD3xzw6rblvOfFtVo4ZXpeWNMlDSVIOUqrQ2zt6sdC+LpK/ex5yEAxE h0DqQkjbXgc7sRDmwlvLYDnySpXZLC3iWZoYgaz64Sdj8heaCy2GIIHqliToHbA9mdtx 4L6Jf5zkje03CfcgtMkNpIZughhQsw1TpYCv6Weisqf4Md8xuSt+ly/5zi4WMhv+AyRX lwZw== X-Gm-Message-State: APjAAAWsPutktqeYjT1e6qk0bHqJ612YzIJq3cPEoNTvoduVIMnE3YyK iyp4qepSW79OwSi2FWz0nxB/Df5P75A= X-Google-Smtp-Source: APXvYqxR81xR2Bp1/3atRofbAe9TNiIM/3Gx676BQOAdPglB+0OprcZ1uPByAPU720TCZ6xFG4P8vg== X-Received: by 2002:a1c:660a:: with SMTP id a10mr2766069wmc.122.1582279014681; Fri, 21 Feb 2020 01:56:54 -0800 (PST) Received: from localhost (ip-89-177-130-96.net.upcbroadband.cz. [89.177.130.96]) by smtp.gmail.com with ESMTPSA id r6sm3395758wrq.92.2020.02.21.01.56.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 01:56:54 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, saeedm@mellanox.com, leon@kernel.org, michael.chan@broadcom.com, vishal@chelsio.com, jeffrey.t.kirsher@intel.com, idosch@mellanox.com, aelior@marvell.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, jhs@mojatatu.com, xiyou.wangcong@gmail.com, pablo@netfilter.org, mlxsw@mellanox.com Subject: [patch net-next 08/10] flow_offload: introduce "delayed" HW stats type and allow it in mlx5 Date: Fri, 21 Feb 2020 10:56:41 +0100 Message-Id: <20200221095643.6642-9-jiri@resnulli.us> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200221095643.6642-1-jiri@resnulli.us> References: <20200221095643.6642-1-jiri@resnulli.us> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Introduce new type for delayed HW stats and allow the value in mlxsw offload. Signed-off-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 3 ++- include/net/flow_offload.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index 39bbd9675ae4..d48c07bf9711 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -3918,7 +3918,8 @@ mlx5e_tc_add_flow(struct mlx5e_priv *priv, if (!tc_can_offload_extack(priv->netdev, f->common.extack)) return -EOPNOTSUPP; - if (f->common.hw_stats_type != FLOW_CLS_HW_STATS_TYPE_ANY) { + if (f->common.hw_stats_type != FLOW_CLS_HW_STATS_TYPE_ANY && + f->common.hw_stats_type != FLOW_CLS_HW_STATS_TYPE_DELAYED) { NL_SET_ERR_MSG_MOD(f->common.extack, "Unsupported HW stats type"); return -EOPNOTSUPP; } diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h index b1a182941f1d..4cff09890725 100644 --- a/include/net/flow_offload.h +++ b/include/net/flow_offload.h @@ -353,6 +353,7 @@ enum flow_cls_command { enum flow_cls_hw_stats_type { FLOW_CLS_HW_STATS_TYPE_ANY, FLOW_CLS_HW_STATS_TYPE_IMMEDIATE, + FLOW_CLS_HW_STATS_TYPE_DELAYED, }; struct flow_cls_common_offload { From patchwork Fri Feb 21 09:56:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1242012 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=GeXIFpxX; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48P6Lh5rVRz9sPk for ; Fri, 21 Feb 2020 20:57:00 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728512AbgBUJ5A (ORCPT ); Fri, 21 Feb 2020 04:57:00 -0500 Received: from mail-wr1-f65.google.com ([209.85.221.65]:34709 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728429AbgBUJ46 (ORCPT ); Fri, 21 Feb 2020 04:56:58 -0500 Received: by mail-wr1-f65.google.com with SMTP id n10so1287513wrm.1 for ; Fri, 21 Feb 2020 01:56:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Zdx0N+Cx690sbRii4aIIWpIi+/7/8AAJiK4v7R4b+mg=; b=GeXIFpxX+c2flfxovAzk7PwBsiPlgujszxpP5Yn0Frnm+jBGrUuQqmjhWuXJEYyGgj 6MyjUvosMYC/8k+/OWALNxnuse6xP899NugJZtiCuFXVezJ3l2B1rNoV9Ddh+Ua8e8mc ZBXUovE0lDsxfSjDv2o2qXt4bvLY6GkXf+jOR3vB10ITEVJfVvgvpo1SJTx8+7Kozv4m YtcKGPzF1bPiWeVbx3j/5U99NwqmI2oQ/Uie+hB7G56jby8RAlFzUgpcoSu9KFP/4sKJ 6NQRf0ra3BkzrmdLAwwPMPGkSiNT2K69Lu/dsB8HwoOH+3ulZs0Ee7zR4J90uc1j2XHl ySRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Zdx0N+Cx690sbRii4aIIWpIi+/7/8AAJiK4v7R4b+mg=; b=FoUs19pgwxnJXJBcfu17FYqcqZ+OqiJ5Tqj3b2IxSQwHYI7yemtwhAxNcwGDVJQZ/4 ruwoKTtKwjMrWSdMzq0g6hewKEsRjP6JnUrNDVafFF5FVgfJC2SaLvCxUyO6kRQhjwbN acDgiOwxS008XtQO/rWqSBXJREDlBZlEs7bbwy/OPxRQxrmenzFpAWse6lfMKQkw/ra2 8PKtQUi2MzxaMggSu+2QBlHMCX5+SWf3NAmztQI8WA3r7F/glh0+hVOvEmdad/D0OnWl NJWiqvHBwdob3S6FAqNtUYHRjL8RN62VLmLf+TPQJxxS9cjzkwmar4n+zRiY3MpqEN4K kDWA== X-Gm-Message-State: APjAAAU0zwO0nrxqDPkxsssWIRBGljlKQGmqq/aYJLEcC0QntcinkMF4 AOz+Fsn3d9PRjR2wM/5FIX6e43oB1aQ= X-Google-Smtp-Source: APXvYqxZARGwZv8Tx0MjXeCVe4ZLlQRkmxSUU1F2LNMTRm2YDbSOYIQ/020bOY8x9Stvrr0SjP3TPg== X-Received: by 2002:a5d:6087:: with SMTP id w7mr46662538wrt.36.1582279015840; Fri, 21 Feb 2020 01:56:55 -0800 (PST) Received: from localhost (ip-89-177-130-96.net.upcbroadband.cz. [89.177.130.96]) by smtp.gmail.com with ESMTPSA id b10sm977859wmj.48.2020.02.21.01.56.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 01:56:55 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, saeedm@mellanox.com, leon@kernel.org, michael.chan@broadcom.com, vishal@chelsio.com, jeffrey.t.kirsher@intel.com, idosch@mellanox.com, aelior@marvell.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, jhs@mojatatu.com, xiyou.wangcong@gmail.com, pablo@netfilter.org, mlxsw@mellanox.com Subject: [patch net-next 09/10] flow_offload: introduce "disabled" HW stats type and allow it in mlxsw Date: Fri, 21 Feb 2020 10:56:42 +0100 Message-Id: <20200221095643.6642-10-jiri@resnulli.us> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200221095643.6642-1-jiri@resnulli.us> References: <20200221095643.6642-1-jiri@resnulli.us> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Introduce new type for disabled HW stats and allow the value in mlxsw offload. Signed-off-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c | 2 ++ include/net/flow_offload.h | 1 + 2 files changed, 3 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c index a3e9f72f50de..108a96901721 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c @@ -37,6 +37,8 @@ mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp, if (err) return err; break; + case FLOW_CLS_HW_STATS_TYPE_DISABLED: + break; default: NL_SET_ERR_MSG_MOD(extack, "Unsupported HW stats type"); return -EOPNOTSUPP; diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h index 4cff09890725..447e039762dd 100644 --- a/include/net/flow_offload.h +++ b/include/net/flow_offload.h @@ -354,6 +354,7 @@ enum flow_cls_hw_stats_type { FLOW_CLS_HW_STATS_TYPE_ANY, FLOW_CLS_HW_STATS_TYPE_IMMEDIATE, FLOW_CLS_HW_STATS_TYPE_DELAYED, + FLOW_CLS_HW_STATS_TYPE_DISABLED, }; struct flow_cls_common_offload { From patchwork Fri Feb 21 09:56:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1242014 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=Kg4ZTzJi; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48P6Lm27pXz9sPk for ; Fri, 21 Feb 2020 20:57:04 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728552AbgBUJ5D (ORCPT ); Fri, 21 Feb 2020 04:57:03 -0500 Received: from mail-wr1-f66.google.com ([209.85.221.66]:40091 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728508AbgBUJ5B (ORCPT ); Fri, 21 Feb 2020 04:57:01 -0500 Received: by mail-wr1-f66.google.com with SMTP id t3so1256704wru.7 for ; Fri, 21 Feb 2020 01:56:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=x9ugDelf9ILezj4JchLRArpERPDI7+E1OFzbng22fkY=; b=Kg4ZTzJiwR9desqPCE7SDj2dgzkgxOwYEeLRDIiL/7tSrpr+fjzK3i/xDVXmBPYTuU Pnm9iER317lQljwnoJhMXXo0rjwW8XTX+9n0srAPfRw3pwzcbO6KKIXUM5FId0NCVSPr Ji0TUuagpzmCO6qo6pfY3IfBLxuHPAXCeEJaYa3R5/j3eeKRjLVfAhv6rglYJUOd8Qdw v3ViE3N1bxZQu8by5gWoLfC2laRygER5++Y0gW3ZxWx0VwAV9GOF6X/pcK4zgksxYNuv 2XbnwrAM5YKPdpJ4+S/FUwfdUk7XU4tJ6Fresp6scgP1UKIyBkTIeE727Kvl6LP+UfRb DoNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=x9ugDelf9ILezj4JchLRArpERPDI7+E1OFzbng22fkY=; b=EOMMXbYCmdkJpjSxqV0+mppPuzXK9m9hgf7uuFAPlag/n2JiHPzDlzjvy5QoDMwEO7 lItz9hae/2vNIqoRjr3hj8uMMGrGLUFDQHFwXQQbqiFEUaVNUdYwuJBEgprqUs94fJfV DqT/X8jI8HCAZz5q9OKJhuZJ9oflG39m3s1/lOfVB7yyz+4AeAEFQlUlUNuwVIHWSRqY gz7Zhg7UELBILiWhI5RSBvuGWrrplkAgxDv98ilTLcsjFP7aBEmLgMAVGjFjqzSo8UUN 6Yb24RgmAqWyr6Kc+4e7Z4QbAeH3kWKLDsVnaHrdPaTn65KLt7KDw4/ZN4whey89KsZ/ 5zjw== X-Gm-Message-State: APjAAAUH6CR3A6vjIXYlRyuOKC89l++30LFSn0bY6D90iAZDViK8+kND /Mhx8KNtI7RJP6/CiF1jb7gUUxnp0a4= X-Google-Smtp-Source: APXvYqwm84AMfCdSlajedk00wroBSL8RPy085EQa2b195GxkNzncO05B7oXVBuKilic8DecCV+Mp8Q== X-Received: by 2002:a5d:5452:: with SMTP id w18mr45504582wrv.333.1582279017361; Fri, 21 Feb 2020 01:56:57 -0800 (PST) Received: from localhost (ip-89-177-130-96.net.upcbroadband.cz. [89.177.130.96]) by smtp.gmail.com with ESMTPSA id s1sm3190325wro.66.2020.02.21.01.56.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 01:56:56 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, kuba@kernel.org, saeedm@mellanox.com, leon@kernel.org, michael.chan@broadcom.com, vishal@chelsio.com, jeffrey.t.kirsher@intel.com, idosch@mellanox.com, aelior@marvell.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, jhs@mojatatu.com, xiyou.wangcong@gmail.com, pablo@netfilter.org, mlxsw@mellanox.com Subject: [patch net-next 10/10] sched: cls_flower: allow user to specify type of HW stats for a filter Date: Fri, 21 Feb 2020 10:56:43 +0100 Message-Id: <20200221095643.6642-11-jiri@resnulli.us> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200221095643.6642-1-jiri@resnulli.us> References: <20200221095643.6642-1-jiri@resnulli.us> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Currently, user who is adding a filter expects HW report stats, however it does not have exact expectations about the stats types. That is aligned with TCA_CLS_HW_STATS_TYPE_ANY. Allow user to specify type of HW stats for a filter and require a type. Signed-off-by: Jiri Pirko --- include/net/pkt_cls.h | 28 ++++++++++++++++++++++++++++ include/uapi/linux/pkt_cls.h | 27 +++++++++++++++++++++++++++ net/sched/cls_flower.c | 12 ++++++++++++ 3 files changed, 67 insertions(+) diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index d3d90f714a66..18044ea7c246 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -631,6 +631,34 @@ static inline bool tc_in_hw(u32 flags) return (flags & TCA_CLS_FLAGS_IN_HW) ? true : false; } +static inline enum tca_cls_hw_stats_type +tc_hw_stats_type_get(struct nlattr *hw_stats_type_attr) +{ + /* If the user did not pass the attr, that means he does + * not care about the type. Return "any" in that case. + */ + return hw_stats_type_attr ? nla_get_u8(hw_stats_type_attr) : + TCA_CLS_HW_STATS_TYPE_ANY; +} + +static inline enum flow_cls_hw_stats_type +tc_flow_cls_hw_stats_type(enum tca_cls_hw_stats_type hw_stats_type) +{ + switch (hw_stats_type) { + default: + WARN_ON(1); + /* fall-through */ + case TCA_CLS_HW_STATS_TYPE_ANY: + return FLOW_CLS_HW_STATS_TYPE_ANY; + case TCA_CLS_HW_STATS_TYPE_IMMEDIATE: + return FLOW_CLS_HW_STATS_TYPE_IMMEDIATE; + case TCA_CLS_HW_STATS_TYPE_DELAYED: + return FLOW_CLS_HW_STATS_TYPE_DELAYED; + case TCA_CLS_HW_STATS_TYPE_DISABLED: + return FLOW_CLS_HW_STATS_TYPE_DISABLED; + } +} + static inline void tc_cls_common_offload_init(struct flow_cls_common_offload *cls_common, const struct tcf_proto *tp, u32 flags, diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h index 449a63971451..7f89954c2998 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -180,6 +180,31 @@ enum { #define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3) /* filter isn't offloaded to HW */ #define TCA_CLS_FLAGS_VERBOSE (1 << 4) /* verbose logging */ +/* tca HW stats type */ +enum tca_cls_hw_stats_type { + TCA_CLS_HW_STATS_TYPE_ANY, /* User does not care, it's default + * when user does not pass the attr. + * Instructs the driver that user does not + * care if the HW stats are "immediate" + * or "delayed". + */ + TCA_CLS_HW_STATS_TYPE_IMMEDIATE, /* Means that in dump, user gets + * the current HW stats state from + * the device queried at the dump time. + */ + TCA_CLS_HW_STATS_TYPE_DELAYED, /* Means that in dump, user gets + * HW stats that might be out of date + * for some time, maybe couple of + * seconds. This is the case when driver + * polls stats updates periodically + * or when it gets async stats update + * from the device. + */ + TCA_CLS_HW_STATS_TYPE_DISABLED, /* User is not interested in getting + * any HW statistics. + */ +}; + /* U32 filters */ #define TC_U32_HTID(h) ((h)&0xFFF00000) @@ -553,6 +578,8 @@ enum { TCA_FLOWER_KEY_CT_LABELS, /* u128 */ TCA_FLOWER_KEY_CT_LABELS_MASK, /* u128 */ + TCA_FLOWER_HW_STATS_TYPE, /* u8 */ + __TCA_FLOWER_MAX, }; diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 726fc9c5910f..91171266ac26 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -113,6 +113,7 @@ struct cls_fl_filter { u32 handle; u32 flags; u32 in_hw_count; + enum tca_cls_hw_stats_type hw_stats_type; struct rcu_work rwork; struct net_device *hw_dev; /* Flower classifier is unlocked, which means that its reference counter @@ -442,6 +443,8 @@ static int fl_hw_replace_filter(struct tcf_proto *tp, return -ENOMEM; tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, extack); + cls_flower.common.hw_stats_type = + tc_flow_cls_hw_stats_type(f->hw_stats_type); cls_flower.command = FLOW_CLS_REPLACE; cls_flower.cookie = (unsigned long) f; cls_flower.rule->match.dissector = &f->mask->dissector; @@ -691,6 +694,7 @@ static const struct nla_policy fl_policy[TCA_FLOWER_MAX + 1] = { [TCA_FLOWER_KEY_CT_LABELS_MASK] = { .type = NLA_BINARY, .len = 128 / BITS_PER_BYTE }, [TCA_FLOWER_FLAGS] = { .type = NLA_U32 }, + [TCA_FLOWER_HW_STATS_TYPE] = { .type = NLA_U8 }, }; static const struct nla_policy @@ -1774,6 +1778,9 @@ static int fl_change(struct net *net, struct sk_buff *in_skb, } } + fnew->hw_stats_type = + tc_hw_stats_type_get(tb[TCA_FLOWER_HW_STATS_TYPE]); + err = fl_set_parms(net, tp, fnew, mask, base, tb, tca[TCA_RATE], ovr, tp->chain->tmplt_priv, rtnl_held, extack); if (err) @@ -1992,6 +1999,8 @@ static int fl_reoffload(struct tcf_proto *tp, bool add, flow_setup_cb_t *cb, tc_cls_common_offload_init(&cls_flower.common, tp, f->flags, extack); + cls_flower.common.hw_stats_type = + tc_flow_cls_hw_stats_type(f->hw_stats_type); cls_flower.command = add ? FLOW_CLS_REPLACE : FLOW_CLS_DESTROY; cls_flower.cookie = (unsigned long)f; @@ -2714,6 +2723,9 @@ static int fl_dump(struct net *net, struct tcf_proto *tp, void *fh, if (f->flags && nla_put_u32(skb, TCA_FLOWER_FLAGS, f->flags)) goto nla_put_failure_locked; + if (nla_put_u8(skb, TCA_FLOWER_HW_STATS_TYPE, f->hw_stats_type)) + goto nla_put_failure_locked; + spin_unlock(&tp->lock); if (!skip_hw)