From patchwork Mon Feb 25 10:40:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tonghao Zhang X-Patchwork-Id: 1047669 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 (mailfrom) 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ZKQoSVUS"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 447Jzz1Hs4z9s70 for ; Mon, 25 Feb 2019 22:06:55 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726765AbfBYLGy (ORCPT ); Mon, 25 Feb 2019 06:06:54 -0500 Received: from mail-it1-f196.google.com ([209.85.166.196]:55842 "EHLO mail-it1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726574AbfBYLGx (ORCPT ); Mon, 25 Feb 2019 06:06:53 -0500 Received: by mail-it1-f196.google.com with SMTP id z131so12157785itf.5 for ; Mon, 25 Feb 2019 03:06:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=iXW3ry5FqIqFU+tmkzh5LRRJHa9oqvXNIhXLAsOdoCI=; b=ZKQoSVUSUS1bdZN3rNFbLAyol5jYOdi8tzudjwmWykw/Oi2/KkraO33ZrRtWzP1bmh qi9Io/Ec/XA3Nfg4IXXI/EPFkJtqORcZtMF9yTJfexW3lZMSwC6Ir4ZF0T2N6+90Ni0D G/KBEXoSWEQxwRZFUFDVBQ15KT64iMi81pHeXmeBlTBDzISZzRo/V+jqdNyP5vGwVoNz 6/65pj1+GZH6MU3oRD0zBdvU49Q/Te5AObTm5InagWPj4NzOG42KlzIuMtC8IpIDhJxu GOOvAxYzN5z5njBGex1evsWgfz2GU4NG8gS/zpMYHWc/tP8sSSIEooVWMcDFeY1VlOLz RTwQ== 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; bh=iXW3ry5FqIqFU+tmkzh5LRRJHa9oqvXNIhXLAsOdoCI=; b=ub2JrQ5OGJ1QgU4wvjV8x2t01Ny39EM2uWcLdAb4yXW8i2xqgtIGz3NJdKzt520VbS /kFLEhm0KDxCk48CErlPJ7BnpI7NmbtZ8uv7RwGO6YmMqQe4GtD39MGCZDGKPMc3lf64 9LB1oKlR/cBYubf/nVLFmYSCtfU17YVQmpgGsPgFDcO+hRJ5FsEbjx3nZd12VQR6gV1d AfIQ/U+wfVVf4ia/+wobbTfwIt+dRIj8dVkZ9/GEXWKbrjjm/pbNAVavyIyIWO6oJLIf Gmz3tXr1HBUfQl1q5nc88E+MJXKjO0KJk7Oo3Xd/t40Fys9Xthrk7SKwNpV4+y70c1AP 371A== X-Gm-Message-State: AHQUAubCmQRNamdQLBawqKn/nxfRC6Vkv+xEOGMJ/xk9yHjSl4XL47jZ ntlzVYIdIvQ6leB8o+qLTiFZOIHq X-Google-Smtp-Source: AHgI3Iaw7seAvdZR9r1Udirhgv2263IaLV4a3ck2P2zC52wju041TYfMwt620gM86RJLYg5OOMkmCA== X-Received: by 2002:a24:5f54:: with SMTP id r81mr9070709itb.113.1551092812358; Mon, 25 Feb 2019 03:06:52 -0800 (PST) Received: from local.opencloud.tech.localdomain ([203.100.54.194]) by smtp.gmail.com with ESMTPSA id c1sm4768369itd.23.2019.02.25.03.06.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 25 Feb 2019 03:06:51 -0800 (PST) From: xiangxia.m.yue@gmail.com To: saeedm@mellanox.com, gerlitz.or@gmail.com Cc: netdev@vger.kernel.org, Tonghao Zhang Subject: [PATCH net-next v2 1/5] net/mlx5e: Return -EOPNOTSUPP when modify header action zero Date: Mon, 25 Feb 2019 02:40:03 -0800 Message-Id: <1551091207-10366-2-git-send-email-xiangxia.m.yue@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1551091207-10366-1-git-send-email-xiangxia.m.yue@gmail.com> References: <1551091207-10366-1-git-send-email-xiangxia.m.yue@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Tonghao Zhang When max modify header action is zero, we return -EOPNOTSUPP directly. In this way, we can ignore wrong message info (e.g. "mlx5: parsed 0 pedit actions, can't do more"). This happens when offloading pedit actions on mlx VFs. For example: $ tc filter add dev mlx5_vf parent ffff: protocol ip prio 1 \ flower skip_sw dst_mac 00:10:56:fb:64:e8 \ dst_ip 1.1.1.100 src_ip 1.1.1.200 \ action pedit ex munge eth src set 00:10:56:b4:5d:20 Signed-off-by: Tonghao Zhang --- drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index b38986e..708f819 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -2002,7 +2002,8 @@ static int offload_pedit_fields(struct pedit_headers_action *hdrs, static int alloc_mod_hdr_actions(struct mlx5e_priv *priv, struct pedit_headers_action *hdrs, int namespace, - struct mlx5e_tc_flow_parse_attr *parse_attr) + struct mlx5e_tc_flow_parse_attr *parse_attr, + struct netlink_ext_ack *extack) { int nkeys, action_size, max_actions; @@ -2015,6 +2016,12 @@ static int alloc_mod_hdr_actions(struct mlx5e_priv *priv, else /* namespace is MLX5_FLOW_NAMESPACE_KERNEL - NIC offloading */ max_actions = MLX5_CAP_FLOWTABLE_NIC_RX(priv->mdev, max_modify_header_actions); + if (!max_actions) { + NL_SET_ERR_MSG_MOD(extack, + "don't support pedit actions, can't offload"); + return -EOPNOTSUPP; + } + /* can get up to crazingly 16 HW actions in 32 bits pedit SW key */ max_actions = min(max_actions, nkeys * 16); @@ -2072,7 +2079,8 @@ static int alloc_tc_pedit_action(struct mlx5e_priv *priv, int namespace, u8 cmd; if (!parse_attr->mod_hdr_actions) { - err = alloc_mod_hdr_actions(priv, hdrs, namespace, parse_attr); + err = alloc_mod_hdr_actions(priv, hdrs, + namespace, parse_attr, extack); if (err) goto out_err; }