From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by dpdk.org (Postfix) with ESMTP id 8E21E29C6 for ; Tue, 21 Nov 2017 15:27:47 +0100 (CET) Received: by mail-wm0-f68.google.com with SMTP id x63so3793043wmf.2 for ; Tue, 21 Nov 2017 06:27:47 -0800 (PST) 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=tQ01J3Gy9LNWmo1xmuWww3Wszfy9SztlYyCbEXQgn04=; b=A3bMDQUktyEH32n4RpNorOaUeLpij7sB7T0Cx9bMWHQGa26gX/aujQ9bCyd7+QVQIT XBUKmwSlhbIiNBXW5Mo1IMeV6TCB6p2vZ4fj3fF8fkhO6W3Gej2Fhu/yqYIRUWyLoblp 5HUoOLusDE/YrAsF65anTykrPDkjMLEbrTEnOdUNW2evQZVLvfrnB0kRgycLHZlkSGY0 JnT1epGLI5j+AOr1OCnH2Gt55YSqAJjjI7NH4b7hhaVzZygFZfyckTZe6vI+GJOR4/Vy eSkFKCth3AMbZ0bobqm5iWx2UReLCvQ2fNE5MdJJ2fhRDE0PBAJBQf4oQdRZRVJdgi9T KVqQ== 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=tQ01J3Gy9LNWmo1xmuWww3Wszfy9SztlYyCbEXQgn04=; b=oYMVCXchkZDe5lsD8hYUMOzZNLJBy4u5O37/OAeE/RFRo/l9l1R4WWb0hISzpSI+Zh vA2Rels+SmPi9mO50kyiYW4go8UnRnQAY8gX+WTdA+YWLdtaF8MQ8dP4gVMqyyKEWtaD /mrM6E24M0BjYjkXSPSDRHQL1u4WIbOM8JfZJ6cY53RDuJVlwG8aUtnDxkrh/yda/cNE ic3HvhIUPj6xx9E9G50EIKZ51YciBzRcUcKUgKADly+9/syf4ZdQGEI4EBSRwwIrwvMS yMJS7pC0h1lmQ7/rzSDsP81zhLnHmfQm+N5lZOVKN23YpV8yWdRIPlXSPM8YzxD8EcCa BoHQ== X-Gm-Message-State: AJaThX5eNvr2/XnMxH6X8Q1vgV6sDI1hg/NXzDYLVin1Ey5zntZXALKB m5Z1lndcl+k7wGSW+wtAZEKZDA== X-Google-Smtp-Source: AGs4zMbcSYvwyTranDI4in11GC3dY67POXLYikLzlK6EEMMBcceYzJbfIjIpJzzj4WOxyby9XcTB5g== X-Received: by 10.80.147.16 with SMTP id m16mr24816043eda.121.1511274467294; Tue, 21 Nov 2017 06:27:47 -0800 (PST) Received: from 6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id y3sm3822321edb.37.2017.11.21.06.27.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Nov 2017 06:27:46 -0800 (PST) Date: Tue, 21 Nov 2017 15:27:35 +0100 From: Adrien Mazarguil To: Ferruh Yigit Cc: dev@dpdk.org, stable@dpdk.org Message-ID: <1511272929-17955-6-git-send-email-adrien.mazarguil@6wind.com> References: <1511272929-17955-1-git-send-email-adrien.mazarguil@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1511272929-17955-1-git-send-email-adrien.mazarguil@6wind.com> X-Mailer: git-send-email 2.1.4 Subject: [dpdk-stable] [PATCH v1 5/5] net/mlx4: restore inner VXLAN RSS support X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Nov 2017 14:27:47 -0000 Inner VXLAN RSS was supported and performed by default prior to the entire mlx4 refactoring that occurred in DPDK 17.11, however so far the new Verbs RSS API did not provide means to enable it. This will be addressed in Linux 4.15 and in RDMA core. Thanks to RSS capabilities, the PMD can now probe for its support and enable it again by default. Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4.c | 5 +++-- drivers/net/mlx4/mlx4.h | 5 +++++ drivers/net/mlx4/mlx4_flow.c | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index 025b887..8c20eea 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -582,14 +582,15 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) priv->hw_rss_sup = device_attr_ex.rss_caps.rx_hash_fields_mask; if (!priv->hw_rss_sup) { WARN("no RSS capabilities reported; disabling support" - " for UDP RSS"); + " for UDP RSS and inner VXLAN RSS"); /* Fake support for all possible RSS hash fields. */ priv->hw_rss_sup = ~UINT64_C(0); priv->hw_rss_sup = mlx4_conv_rss_hf(priv, -1); /* Filter out known unsupported fields. */ priv->hw_rss_sup &= ~(uint64_t)(IBV_RX_HASH_SRC_PORT_UDP | - IBV_RX_HASH_DST_PORT_UDP); + IBV_RX_HASH_DST_PORT_UDP | + IBV_RX_HASH_INNER); } DEBUG("supported RSS hash fields mask: %016" PRIx64, priv->hw_rss_sup); diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h index e5ab934..99dc335 100644 --- a/drivers/net/mlx4/mlx4.h +++ b/drivers/net/mlx4/mlx4.h @@ -53,6 +53,11 @@ #include #include +#ifndef IBV_RX_HASH_INNER +/** This is not necessarily defined by supported RDMA core versions. */ +#define IBV_RX_HASH_INNER (1ull << 31) +#endif /* IBV_RX_HASH_INNER */ + /** Maximum number of simultaneous MAC addresses. This value is arbitrary. */ #define MLX4_MAX_MAC_ADDRESSES 128 diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c index a41d99d..69ee176 100644 --- a/drivers/net/mlx4/mlx4_flow.c +++ b/drivers/net/mlx4/mlx4_flow.c @@ -152,6 +152,8 @@ mlx4_conv_rss_hf(struct priv *priv, uint64_t rss_hf) uint64_t conv = 0; unsigned int i; + if (rss_hf == (uint64_t)-1) + conv |= IBV_RX_HASH_INNER; for (i = 0; i != RTE_DIM(in); ++i) if (rss_hf & in[i]) { seen |= rss_hf & in[i]; -- 2.1.4