From patchwork Thu Apr 19 10:07:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adrien Mazarguil X-Patchwork-Id: 38490 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 90FB87EB4; Thu, 19 Apr 2018 12:07:48 +0200 (CEST) Received: from mail-wr0-f195.google.com (mail-wr0-f195.google.com [209.85.128.195]) by dpdk.org (Postfix) with ESMTP id 45BEC7D0A for ; Thu, 19 Apr 2018 12:07:42 +0200 (CEST) Received: by mail-wr0-f195.google.com with SMTP id z73-v6so12451845wrb.0 for ; Thu, 19 Apr 2018 03:07:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=3N1uHcHQoYeS2gT1HmrrHBOmt49BrFzr9zrOnk9IuE0=; b=LE1dYSTFEegPPC1I0jb2Jhat1XolTdNqDDMZKuoYxMKwjRM33Iqw6peMSz9Mc9l+Ax 9VKJYn2WhPWzQGsQVOkJY+y3SQh1oyHwmVX75qt/5x2+vj1AWB/6X4WZwB3admtxy7rw 3lvK7TrcqHlM27j9D30BS8WtWkikcSsPo9z4wIDI9yWNQZnPS9JjztBskbkjdEMtqbJ5 0VuZjCcGSbi6SlNwWqE5CR9WmRI7c920nc0V4mIxIFKmtg4AMYv7it8Znjjs+N9BtdFP AMxgNpg3H9+Qi/VnOI7dxhaZdc8hHsVu6w8EAku3nzTKwJWUt/cvczpEFYfP4ml/K6qV shzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=3N1uHcHQoYeS2gT1HmrrHBOmt49BrFzr9zrOnk9IuE0=; b=lgebQXBo1YQpRkT3o9awArnEHWu/eMI/ynvMBIJDPKnl1Iv1Qz1339AHZ5P/5SK9pX 739wO9+Ex22CFWWx+/jzB7yyuQ1x2utNLEi5UgHmEMw3S3P/jOpPXUe1m6zdjUxBNumD Q+/C120kp7VkrWLrHXyq8yc7Vsh+2rupwD8h8jeIle0Nn4xrcZ6PpH9Po4NKgSAGuWp7 E0W2CerH6QdZ/nzIQvvsDnlBasWzh+OIJ6ecqHrp2L/eB75FW1ER5kwj3OpIfr/URwZK ak5//RoxetUzldb3y73PW+4rgKrDOH50l08l38cmr4J+HWsIfCWXjDWf6rboWyzldse9 mhKQ== X-Gm-Message-State: ALQs6tB03utCtWwfYRBRfD437DXKiabrzDIBLHs8/lEGZi6ewYDCIYD5 3/RN75zVC3Q5FiCnUBE7fy7+5veI X-Google-Smtp-Source: AIpwx49M64J7M3wkFDYqbEoUyx8MQGwfHa1YteI0BVIyPdy7pONNtZkZUFQ/WUvy6q8v/uGS4idOmA== X-Received: by 10.28.148.82 with SMTP id w79mr4409011wmd.64.1524132461935; Thu, 19 Apr 2018 03:07:41 -0700 (PDT) Received: from 6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id a129sm8734449wme.3.2018.04.19.03.07.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Apr 2018 03:07:41 -0700 (PDT) Date: Thu, 19 Apr 2018 12:07:27 +0200 From: Adrien Mazarguil To: dev@dpdk.org Cc: stable@dpdk.org, Shahaf Shuler Message-ID: <20180419100204.5728-3-adrien.mazarguil@6wind.com> References: <20180416150058.2620-1-adrien.mazarguil@6wind.com> <20180419100204.5728-1-adrien.mazarguil@6wind.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20180419100204.5728-1-adrien.mazarguil@6wind.com> X-Mailer: git-send-email 2.11.0 Subject: [dpdk-dev] [PATCH v6 02/11] net/mlx4: fix ignored RSS hash types X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" When an unsupported hash type is part of a RSS configuration structure, it is silently ignored instead of triggering an error. This may lead applications to assume that such types are accepted, while they are in fact not part of the resulting flow rules. Fixes: 078b8b452e6b ("net/mlx4: add RSS flow rule action support") Cc: stable@dpdk.org Signed-off-by: Adrien Mazarguil Acked-by: Nelio Laranjeiro Cc: Shahaf Shuler --- drivers/net/mlx4/mlx4_flow.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c index 2b4bf7094..67fd568bc 100644 --- a/drivers/net/mlx4/mlx4_flow.c +++ b/drivers/net/mlx4/mlx4_flow.c @@ -706,6 +706,7 @@ mlx4_flow_prepare(struct priv *priv, const struct rte_flow_action_queue *queue; const struct rte_flow_action_rss *rss; const struct rte_eth_rss_conf *rss_conf; + uint64_t fields; unsigned int i; case RTE_FLOW_ACTION_TYPE_VOID: @@ -780,10 +781,15 @@ mlx4_flow_prepare(struct priv *priv, " of the context size"; goto exit_action_not_supported; } + rte_errno = 0; + fields = mlx4_conv_rss_hf(priv, rss_conf->rss_hf); + if (fields == (uint64_t)-1 && rte_errno) { + msg = "unsupported RSS hash type requested"; + goto exit_action_not_supported; + } flow->rss = mlx4_rss_get - (priv, - mlx4_conv_rss_hf(priv, rss_conf->rss_hf), - rss_conf->rss_key, rss->num, rss->queue); + (priv, fields, rss_conf->rss_key, rss->num, + rss->queue); if (!flow->rss) { msg = "either invalid parameters or not enough" " resources for additional multi-queue"