Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/14190/?format=api
https://patches.dpdk.org/api/patches/14190/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/1466586355-30777-10-git-send-email-nelio.laranjeiro@6wind.com/", "project": { "id": 1, "url": "https://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<1466586355-30777-10-git-send-email-nelio.laranjeiro@6wind.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1466586355-30777-10-git-send-email-nelio.laranjeiro@6wind.com", "date": "2016-06-22T09:05:39", "name": "[dpdk-dev,v4,09/25] mlx5: update prerequisites for upcoming enhancements", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "8084f596ed6ae3e308413020d47e44413b4b1bdb", "submitter": { "id": 243, "url": "https://patches.dpdk.org/api/people/243/?format=api", "name": "Nélio Laranjeiro", "email": "nelio.laranjeiro@6wind.com" }, "delegate": { "id": 10, "url": "https://patches.dpdk.org/api/users/10/?format=api", "username": "bruce", "first_name": "Bruce", "last_name": "Richardson", "email": "bruce.richardson@intel.com" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/1466586355-30777-10-git-send-email-nelio.laranjeiro@6wind.com/mbox/", "series": [], "comments": "https://patches.dpdk.org/api/patches/14190/comments/", "check": "pending", "checks": "https://patches.dpdk.org/api/patches/14190/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id C0429C3F4;\n\tWed, 22 Jun 2016 11:06:35 +0200 (CEST)", "from mail-lb0-f178.google.com (mail-lb0-f178.google.com\n\t[209.85.217.178]) by dpdk.org (Postfix) with ESMTP id 03C49C3A2\n\tfor <dev@dpdk.org>; Wed, 22 Jun 2016 11:06:19 +0200 (CEST)", "by mail-lb0-f178.google.com with SMTP id oe3so18516795lbb.1\n\tfor <dev@dpdk.org>; Wed, 22 Jun 2016 02:06:18 -0700 (PDT)", "from ping.vm.6wind.com (guy78-3-82-239-227-177.fbx.proxad.net.\n\t[82.239.227.177]) by smtp.gmail.com with ESMTPSA id\n\tz5sm7019178wme.5.2016.06.22.02.06.17\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tWed, 22 Jun 2016 02:06:17 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=6wind-com.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=zMIsH8xHO9rAPXVOLhOHzmcpqnaBn3fRNcVoclmPhNg=;\n\tb=FxHHLlNU3wuN5AaOr0GUU1SfLVnX8Njir8PZCbWs+ejCFP9TYnZTVLuGGllovIAzAM\n\tCzzK7lbPxIufgtTe1hmGvtSJrX+dKsfvMydCsK41Nbh9P2iT+JRb8cXPQ2y2cP3C6ap4\n\tez9GixtmvgiLSIH42u5EIq3SNSa0t2ooNcgCfUbYos/twu0yb+ki/5gNmkgIiE3yHbRE\n\tQXuV0FxiY9EZs95miMmwZGlI7MBqx/UqXgleCnhcwOcFoEoDdKqx2I6ZyKPYWqtrg6Dg\n\tWdO58XCKHCP69cOdWQyf0upfsJ9NmzM5pZW2ZnxEHf3bXeRZsXR1b7EQzCufLnpvaoI3\n\ttAgA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=zMIsH8xHO9rAPXVOLhOHzmcpqnaBn3fRNcVoclmPhNg=;\n\tb=SSdXKYr4l+wsYq56MA2m2B3BvnejnI2j2mmEpO//wzBeOrvmgWjfMRTTtDtKXTdCXO\n\tVzl9v4CHVW3CKZzx78brmwbvu3DH8VPVkFBoBdX1Pjt+6YBu4hex0iy9y+Ey6u7AdafG\n\t1NEISVL3NGtpXqOMg1IQHTyyoz5wujVCq14tiDO+osqi2dvPtNrOaMcR/K9gC5lAvi4x\n\tbtCcnM7IF7745uPk3axQIwsjD2iNEDxGb+JHJcoW3OPa+vGCmmVmtBhIe5rB62IMd2c3\n\tt07vF77Ts70zhKZ2ozkJFhX8r1vTMWrzd2PSDqiePRqS7NqU47dTnq1iXREWZZ5/Kbl1\n\tpysQ==", "X-Gm-Message-State": "ALyK8tLmyA5VpMbONyXh5Uuj957Ki7hRaPD60h7jv2ylpArsRJtIJ1jHYT7BIEL4fjFq/bMS", "X-Received": "by 10.194.242.163 with SMTP id wr3mr23629946wjc.1.1466586378345; \n\tWed, 22 Jun 2016 02:06:18 -0700 (PDT)", "From": "Nelio Laranjeiro <nelio.laranjeiro@6wind.com>", "To": "dev@dpdk.org", "Cc": "Ferruh Yigit <ferruh.yigit@intel.com>,\n\tAdrien Mazarguil <adrien.mazarguil@6wind.com>", "Date": "Wed, 22 Jun 2016 11:05:39 +0200", "Message-Id": "<1466586355-30777-10-git-send-email-nelio.laranjeiro@6wind.com>", "X-Mailer": "git-send-email 2.1.4", "In-Reply-To": "<1466586355-30777-1-git-send-email-nelio.laranjeiro@6wind.com>", "References": "<1466493818-1877-1-git-send-email-nelio.laranjeiro@6wind.com>\n\t<1466586355-30777-1-git-send-email-nelio.laranjeiro@6wind.com>", "Subject": "[dpdk-dev] [PATCH v4 09/25] mlx5: update prerequisites for upcoming\n\tenhancements", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "patches and discussions about DPDK <dev.dpdk.org>", "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://dpdk.org/ml/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "The latest version of Mellanox OFED exposes hardware definitions necessary\nto implement data path operation bypassing Verbs. Update the minimum\nversion requirement to MLNX_OFED >= 3.3 and clean up compatibility checks\nfor previous releases.\n\nSigned-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>\nSigned-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>\n---\n doc/guides/nics/mlx5.rst | 44 +++---------------------------------------\n drivers/net/mlx5/Makefile | 39 ++++++++-----------------------------\n drivers/net/mlx5/mlx5.c | 23 ----------------------\n drivers/net/mlx5/mlx5.h | 5 +++++\n drivers/net/mlx5/mlx5_defs.h | 9 ---------\n drivers/net/mlx5/mlx5_fdir.c | 10 ----------\n drivers/net/mlx5/mlx5_rxmode.c | 8 --------\n drivers/net/mlx5/mlx5_rxq.c | 30 ----------------------------\n drivers/net/mlx5/mlx5_rxtx.c | 4 ----\n drivers/net/mlx5/mlx5_rxtx.h | 8 --------\n drivers/net/mlx5/mlx5_txq.c | 2 --\n drivers/net/mlx5/mlx5_vlan.c | 3 ---\n 12 files changed, 16 insertions(+), 169 deletions(-)", "diff": "diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst\nindex 77fa957..3a07928 100644\n--- a/doc/guides/nics/mlx5.rst\n+++ b/doc/guides/nics/mlx5.rst\n@@ -125,16 +125,6 @@ These options can be modified in the ``.config`` file.\n Environment variables\n ~~~~~~~~~~~~~~~~~~~~~\n \n-- ``MLX5_ENABLE_CQE_COMPRESSION``\n-\n- A nonzero value lets ConnectX-4 return smaller completion entries to\n- improve performance when PCI backpressure is detected. It is most useful\n- for scenarios involving heavy traffic on many queues.\n-\n- Since the additional software logic necessary to handle this mode can\n- lower performance when there is no backpressure, it is not enabled by\n- default.\n-\n - ``MLX5_PMD_ENABLE_PADDING``\n \n Enables HW packet padding in PCI bus transactions.\n@@ -211,40 +201,12 @@ DPDK and must be installed separately:\n \n Currently supported by DPDK:\n \n-- Mellanox OFED **3.1-1.0.3**, **3.1-1.5.7.1** or **3.2-2.0.0.0** depending\n- on usage.\n-\n- The following features are supported with version **3.1-1.5.7.1** and\n- above only:\n-\n- - IPv6, UPDv6, TCPv6 RSS.\n- - RX checksum offloads.\n- - IBM POWER8.\n-\n- The following features are supported with version **3.2-2.0.0.0** and\n- above only:\n-\n- - Flow director.\n- - RX VLAN stripping.\n- - TX VLAN insertion.\n- - RX CRC stripping configuration.\n+- Mellanox OFED **3.3-1.0.0.0**.\n \n - Minimum firmware version:\n \n- With MLNX_OFED **3.1-1.0.3**:\n-\n- - ConnectX-4: **12.12.1240**\n- - ConnectX-4 Lx: **14.12.1100**\n-\n- With MLNX_OFED **3.1-1.5.7.1**:\n-\n- - ConnectX-4: **12.13.0144**\n- - ConnectX-4 Lx: **14.13.0144**\n-\n- With MLNX_OFED **3.2-2.0.0.0**:\n-\n- - ConnectX-4: **12.14.2036**\n- - ConnectX-4 Lx: **14.14.2036**\n+ - ConnectX-4: **12.16.1006**\n+ - ConnectX-4 Lx: **14.16.1006**\n \n Getting Mellanox OFED\n ~~~~~~~~~~~~~~~~~~~~~\ndiff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile\nindex 289c85e..dc99797 100644\n--- a/drivers/net/mlx5/Makefile\n+++ b/drivers/net/mlx5/Makefile\n@@ -106,42 +106,19 @@ mlx5_autoconf.h.new: FORCE\n mlx5_autoconf.h.new: $(RTE_SDK)/scripts/auto-config-h.sh\n \t$Q $(RM) -f -- '$@'\n \t$Q sh -- '$<' '$@' \\\n-\t\tHAVE_EXP_QUERY_DEVICE \\\n-\t\tinfiniband/verbs.h \\\n-\t\ttype 'struct ibv_exp_device_attr' $(AUTOCONF_OUTPUT)\n-\t$Q sh -- '$<' '$@' \\\n-\t\tHAVE_FLOW_SPEC_IPV6 \\\n-\t\tinfiniband/verbs.h \\\n-\t\ttype 'struct ibv_exp_flow_spec_ipv6' $(AUTOCONF_OUTPUT)\n-\t$Q sh -- '$<' '$@' \\\n-\t\tHAVE_EXP_QP_BURST_CREATE_ENABLE_MULTI_PACKET_SEND_WR \\\n-\t\tinfiniband/verbs.h \\\n-\t\tenum IBV_EXP_QP_BURST_CREATE_ENABLE_MULTI_PACKET_SEND_WR \\\n-\t\t$(AUTOCONF_OUTPUT)\n-\t$Q sh -- '$<' '$@' \\\n-\t\tHAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS \\\n-\t\tinfiniband/verbs.h \\\n-\t\tenum IBV_EXP_DEVICE_ATTR_VLAN_OFFLOADS \\\n-\t\t$(AUTOCONF_OUTPUT)\n-\t$Q sh -- '$<' '$@' \\\n-\t\tHAVE_EXP_CQ_RX_TCP_PACKET \\\n+\t\tHAVE_VERBS_VLAN_INSERTION \\\n \t\tinfiniband/verbs.h \\\n-\t\tenum IBV_EXP_CQ_RX_TCP_PACKET \\\n+\t\tenum IBV_EXP_RECEIVE_WQ_CVLAN_INSERTION \\\n \t\t$(AUTOCONF_OUTPUT)\n \t$Q sh -- '$<' '$@' \\\n-\t\tHAVE_VERBS_FCS \\\n-\t\tinfiniband/verbs.h \\\n-\t\tenum IBV_EXP_CREATE_WQ_FLAG_SCATTER_FCS \\\n+\t\tHAVE_VERBS_IBV_EXP_CQ_COMPRESSED_CQE \\\n+\t\tinfiniband/verbs_exp.h \\\n+\t\tenum IBV_EXP_CQ_COMPRESSED_CQE \\\n \t\t$(AUTOCONF_OUTPUT)\n \t$Q sh -- '$<' '$@' \\\n-\t\tHAVE_VERBS_RX_END_PADDING \\\n-\t\tinfiniband/verbs.h \\\n-\t\tenum IBV_EXP_CREATE_WQ_FLAG_RX_END_PADDING \\\n-\t\t$(AUTOCONF_OUTPUT)\n-\t$Q sh -- '$<' '$@' \\\n-\t\tHAVE_VERBS_VLAN_INSERTION \\\n-\t\tinfiniband/verbs.h \\\n-\t\tenum IBV_EXP_RECEIVE_WQ_CVLAN_INSERTION \\\n+\t\tHAVE_VERBS_MLX5_ETH_VLAN_INLINE_HEADER_SIZE \\\n+\t\tinfiniband/mlx5_hw.h \\\n+\t\tenum MLX5_ETH_VLAN_INLINE_HEADER_SIZE \\\n \t\t$(AUTOCONF_OUTPUT)\n \n # Create mlx5_autoconf.h or update it in case it differs from the new one.\ndiff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c\nindex 27a7a30..3f45d84 100644\n--- a/drivers/net/mlx5/mlx5.c\n+++ b/drivers/net/mlx5/mlx5.c\n@@ -195,17 +195,13 @@ static const struct eth_dev_ops mlx5_dev_ops = {\n \t.mac_addr_add = mlx5_mac_addr_add,\n \t.mac_addr_set = mlx5_mac_addr_set,\n \t.mtu_set = mlx5_dev_set_mtu,\n-#ifdef HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS\n \t.vlan_strip_queue_set = mlx5_vlan_strip_queue_set,\n \t.vlan_offload_set = mlx5_vlan_offload_set,\n-#endif /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n \t.reta_update = mlx5_dev_rss_reta_update,\n \t.reta_query = mlx5_dev_rss_reta_query,\n \t.rss_hash_update = mlx5_rss_hash_update,\n \t.rss_hash_conf_get = mlx5_rss_hash_conf_get,\n-#ifdef MLX5_FDIR_SUPPORT\n \t.filter_ctrl = mlx5_dev_filter_ctrl,\n-#endif /* MLX5_FDIR_SUPPORT */\n };\n \n static struct {\n@@ -352,24 +348,16 @@ mlx5_pci_devinit(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)\n \t\tstruct ibv_pd *pd = NULL;\n \t\tstruct priv *priv = NULL;\n \t\tstruct rte_eth_dev *eth_dev;\n-#ifdef HAVE_EXP_QUERY_DEVICE\n \t\tstruct ibv_exp_device_attr exp_device_attr;\n-#endif /* HAVE_EXP_QUERY_DEVICE */\n \t\tstruct ether_addr mac;\n \t\tuint16_t num_vfs = 0;\n \n-#ifdef HAVE_EXP_QUERY_DEVICE\n \t\texp_device_attr.comp_mask =\n \t\t\tIBV_EXP_DEVICE_ATTR_EXP_CAP_FLAGS |\n \t\t\tIBV_EXP_DEVICE_ATTR_RX_HASH |\n-#ifdef HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS\n \t\t\tIBV_EXP_DEVICE_ATTR_VLAN_OFFLOADS |\n-#endif /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n-#ifdef HAVE_VERBS_RX_END_PADDING\n \t\t\tIBV_EXP_DEVICE_ATTR_RX_PAD_END_ALIGN |\n-#endif /* HAVE_VERBS_RX_END_PADDING */\n \t\t\t0;\n-#endif /* HAVE_EXP_QUERY_DEVICE */\n \n \t\tDEBUG(\"using port %u (%08\" PRIx32 \")\", port, test);\n \n@@ -420,7 +408,6 @@ mlx5_pci_devinit(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)\n \t\tpriv->port = port;\n \t\tpriv->pd = pd;\n \t\tpriv->mtu = ETHER_MTU;\n-#ifdef HAVE_EXP_QUERY_DEVICE\n \t\tif (ibv_exp_query_device(ctx, &exp_device_attr)) {\n \t\t\tERROR(\"ibv_exp_query_device() failed\");\n \t\t\tgoto port_error;\n@@ -446,30 +433,20 @@ mlx5_pci_devinit(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)\n \t\t\tpriv->ind_table_max_size = RSS_INDIRECTION_TABLE_SIZE;\n \t\tDEBUG(\"maximum RX indirection table size is %u\",\n \t\t priv->ind_table_max_size);\n-#ifdef HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS\n \t\tpriv->hw_vlan_strip = !!(exp_device_attr.wq_vlan_offloads_cap &\n \t\t\t\t\t IBV_EXP_RECEIVE_WQ_CVLAN_STRIP);\n-#endif /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n \t\tDEBUG(\"VLAN stripping is %ssupported\",\n \t\t (priv->hw_vlan_strip ? \"\" : \"not \"));\n \n-#ifdef HAVE_VERBS_FCS\n \t\tpriv->hw_fcs_strip = !!(exp_device_attr.exp_device_cap_flags &\n \t\t\t\t\tIBV_EXP_DEVICE_SCATTER_FCS);\n-#endif /* HAVE_VERBS_FCS */\n \t\tDEBUG(\"FCS stripping configuration is %ssupported\",\n \t\t (priv->hw_fcs_strip ? \"\" : \"not \"));\n \n-#ifdef HAVE_VERBS_RX_END_PADDING\n \t\tpriv->hw_padding = !!exp_device_attr.rx_pad_end_addr_align;\n-#endif /* HAVE_VERBS_RX_END_PADDING */\n \t\tDEBUG(\"hardware RX end alignment padding is %ssupported\",\n \t\t (priv->hw_padding ? \"\" : \"not \"));\n \n-#else /* HAVE_EXP_QUERY_DEVICE */\n-\t\tpriv->ind_table_max_size = RSS_INDIRECTION_TABLE_SIZE;\n-#endif /* HAVE_EXP_QUERY_DEVICE */\n-\n \t\tpriv_get_num_vfs(priv, &num_vfs);\n \t\tpriv->sriov = (num_vfs || sriov);\n \t\tpriv->mps = mps;\ndiff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h\nindex cbcb8b9..935e1b0 100644\n--- a/drivers/net/mlx5/mlx5.h\n+++ b/drivers/net/mlx5/mlx5.h\n@@ -68,6 +68,11 @@\n #include \"mlx5_autoconf.h\"\n #include \"mlx5_defs.h\"\n \n+#if !defined(HAVE_VERBS_IBV_EXP_CQ_COMPRESSED_CQE) || \\\n+\t!defined(HAVE_VERBS_MLX5_ETH_VLAN_INLINE_HEADER_SIZE)\n+#error Mellanox OFED >= 3.3 is required, please refer to the documentation.\n+#endif\n+\n enum {\n \tPCI_VENDOR_ID_MELLANOX = 0x15b3,\n };\ndiff --git a/drivers/net/mlx5/mlx5_defs.h b/drivers/net/mlx5/mlx5_defs.h\nindex 9a19835..8d2ec7a 100644\n--- a/drivers/net/mlx5/mlx5_defs.h\n+++ b/drivers/net/mlx5/mlx5_defs.h\n@@ -76,13 +76,4 @@\n /* Alarm timeout. */\n #define MLX5_ALARM_TIMEOUT_US 100000\n \n-/*\n- * Extended flow priorities necessary to support flow director are available\n- * since MLNX_OFED 3.2. Considering this version adds support for VLAN\n- * offloads as well, their availability means flow director can be used.\n- */\n-#ifdef HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS\n-#define MLX5_FDIR_SUPPORT 1\n-#endif\n-\n #endif /* RTE_PMD_MLX5_DEFS_H_ */\ndiff --git a/drivers/net/mlx5/mlx5_fdir.c b/drivers/net/mlx5/mlx5_fdir.c\nindex e3b97ba..1850218 100644\n--- a/drivers/net/mlx5/mlx5_fdir.c\n+++ b/drivers/net/mlx5/mlx5_fdir.c\n@@ -122,7 +122,6 @@ fdir_filter_to_flow_desc(const struct rte_eth_fdir_filter *fdir_filter,\n \tcase RTE_ETH_FLOW_NONFRAG_IPV4_OTHER:\n \t\tdesc->type = HASH_RXQ_IPV4;\n \t\tbreak;\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \tcase RTE_ETH_FLOW_NONFRAG_IPV6_UDP:\n \t\tdesc->type = HASH_RXQ_UDPV6;\n \t\tbreak;\n@@ -132,7 +131,6 @@ fdir_filter_to_flow_desc(const struct rte_eth_fdir_filter *fdir_filter,\n \tcase RTE_ETH_FLOW_NONFRAG_IPV6_OTHER:\n \t\tdesc->type = HASH_RXQ_IPV6;\n \t\tbreak;\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \tdefault:\n \t\tbreak;\n \t}\n@@ -147,7 +145,6 @@ fdir_filter_to_flow_desc(const struct rte_eth_fdir_filter *fdir_filter,\n \t\tdesc->src_ip[0] = fdir_filter->input.flow.ip4_flow.src_ip;\n \t\tdesc->dst_ip[0] = fdir_filter->input.flow.ip4_flow.dst_ip;\n \t\tbreak;\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \tcase RTE_ETH_FLOW_NONFRAG_IPV6_UDP:\n \tcase RTE_ETH_FLOW_NONFRAG_IPV6_TCP:\n \t\tdesc->src_port = fdir_filter->input.flow.udp6_flow.src_port;\n@@ -161,7 +158,6 @@ fdir_filter_to_flow_desc(const struct rte_eth_fdir_filter *fdir_filter,\n \t\t\t fdir_filter->input.flow.ipv6_flow.dst_ip,\n \t\t\t sizeof(desc->dst_ip));\n \t\tbreak;\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \tdefault:\n \t\tbreak;\n \t}\n@@ -211,7 +207,6 @@ priv_fdir_overlap(const struct priv *priv,\n \t\t (desc2->dst_ip[0] & mask->ipv4_mask.dst_ip)))\n \t\t\treturn 0;\n \t\tbreak;\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \tcase HASH_RXQ_IPV6:\n \tcase HASH_RXQ_UDPV6:\n \tcase HASH_RXQ_TCPV6:\n@@ -222,7 +217,6 @@ priv_fdir_overlap(const struct priv *priv,\n \t\t\t (desc2->dst_ip[i] & mask->ipv6_mask.dst_ip[i])))\n \t\t\t\treturn 0;\n \t\tbreak;\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \tdefault:\n \t\tbreak;\n \t}\n@@ -258,9 +252,7 @@ priv_fdir_flow_add(struct priv *priv,\n \tuintptr_t spec_offset = (uintptr_t)&data->spec;\n \tstruct ibv_exp_flow_spec_eth *spec_eth;\n \tstruct ibv_exp_flow_spec_ipv4 *spec_ipv4;\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \tstruct ibv_exp_flow_spec_ipv6 *spec_ipv6;\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \tstruct ibv_exp_flow_spec_tcp_udp *spec_tcp_udp;\n \tstruct mlx5_fdir_filter *iter_fdir_filter;\n \tunsigned int i;\n@@ -334,7 +326,6 @@ priv_fdir_flow_add(struct priv *priv,\n \n \t\tspec_offset += spec_ipv4->size;\n \t\tbreak;\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \tcase HASH_RXQ_IPV6:\n \tcase HASH_RXQ_UDPV6:\n \tcase HASH_RXQ_TCPV6:\n@@ -368,7 +359,6 @@ priv_fdir_flow_add(struct priv *priv,\n \n \t\tspec_offset += spec_ipv6->size;\n \t\tbreak;\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \tdefault:\n \t\tERROR(\"invalid flow attribute type\");\n \t\treturn EINVAL;\ndiff --git a/drivers/net/mlx5/mlx5_rxmode.c b/drivers/net/mlx5/mlx5_rxmode.c\nindex 3a55f63..51e2aca 100644\n--- a/drivers/net/mlx5/mlx5_rxmode.c\n+++ b/drivers/net/mlx5/mlx5_rxmode.c\n@@ -67,11 +67,9 @@ static const struct special_flow_init special_flow_init[] = {\n \t\t\t1 << HASH_RXQ_TCPV4 |\n \t\t\t1 << HASH_RXQ_UDPV4 |\n \t\t\t1 << HASH_RXQ_IPV4 |\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \t\t\t1 << HASH_RXQ_TCPV6 |\n \t\t\t1 << HASH_RXQ_UDPV6 |\n \t\t\t1 << HASH_RXQ_IPV6 |\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \t\t\t1 << HASH_RXQ_ETH |\n \t\t\t0,\n \t\t.per_vlan = 0,\n@@ -82,10 +80,8 @@ static const struct special_flow_init special_flow_init[] = {\n \t\t.hash_types =\n \t\t\t1 << HASH_RXQ_UDPV4 |\n \t\t\t1 << HASH_RXQ_IPV4 |\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \t\t\t1 << HASH_RXQ_UDPV6 |\n \t\t\t1 << HASH_RXQ_IPV6 |\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \t\t\t1 << HASH_RXQ_ETH |\n \t\t\t0,\n \t\t.per_vlan = 0,\n@@ -96,15 +92,12 @@ static const struct special_flow_init special_flow_init[] = {\n \t\t.hash_types =\n \t\t\t1 << HASH_RXQ_UDPV4 |\n \t\t\t1 << HASH_RXQ_IPV4 |\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \t\t\t1 << HASH_RXQ_UDPV6 |\n \t\t\t1 << HASH_RXQ_IPV6 |\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \t\t\t1 << HASH_RXQ_ETH |\n \t\t\t0,\n \t\t.per_vlan = 1,\n \t},\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \t[HASH_RXQ_FLOW_TYPE_IPV6MULTI] = {\n \t\t.dst_mac_val = \"\\x33\\x33\\x00\\x00\\x00\\x00\",\n \t\t.dst_mac_mask = \"\\xff\\xff\\x00\\x00\\x00\\x00\",\n@@ -115,7 +108,6 @@ static const struct special_flow_init special_flow_init[] = {\n \t\t\t0,\n \t\t.per_vlan = 1,\n \t},\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n };\n \n /**\ndiff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c\nindex 8d32e74..7db4ce7 100644\n--- a/drivers/net/mlx5/mlx5_rxq.c\n+++ b/drivers/net/mlx5/mlx5_rxq.c\n@@ -105,7 +105,6 @@ const struct hash_rxq_init hash_rxq_init[] = {\n \t\t},\n \t\t.underlayer = &hash_rxq_init[HASH_RXQ_ETH],\n \t},\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \t[HASH_RXQ_TCPV6] = {\n \t\t.hash_fields = (IBV_EXP_RX_HASH_SRC_IPV6 |\n \t\t\t\tIBV_EXP_RX_HASH_DST_IPV6 |\n@@ -144,7 +143,6 @@ const struct hash_rxq_init hash_rxq_init[] = {\n \t\t},\n \t\t.underlayer = &hash_rxq_init[HASH_RXQ_ETH],\n \t},\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \t[HASH_RXQ_ETH] = {\n \t\t.hash_fields = 0,\n \t\t.dpdk_rss_hf = 0,\n@@ -168,17 +166,11 @@ static const struct ind_table_init ind_table_init[] = {\n \t\t\t1 << HASH_RXQ_TCPV4 |\n \t\t\t1 << HASH_RXQ_UDPV4 |\n \t\t\t1 << HASH_RXQ_IPV4 |\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \t\t\t1 << HASH_RXQ_TCPV6 |\n \t\t\t1 << HASH_RXQ_UDPV6 |\n \t\t\t1 << HASH_RXQ_IPV6 |\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \t\t\t0,\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \t\t.hash_types_n = 6,\n-#else /* HAVE_FLOW_SPEC_IPV6 */\n-\t\t.hash_types_n = 3,\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \t},\n \t{\n \t\t.max_size = 1,\n@@ -243,12 +235,8 @@ priv_flow_attr(struct priv *priv, struct ibv_exp_flow_attr *flow_attr,\n \tinit = &hash_rxq_init[type];\n \t*flow_attr = (struct ibv_exp_flow_attr){\n \t\t.type = IBV_EXP_FLOW_ATTR_NORMAL,\n-#ifdef MLX5_FDIR_SUPPORT\n \t\t/* Priorities < 3 are reserved for flow director. */\n \t\t.priority = init->flow_priority + 3,\n-#else /* MLX5_FDIR_SUPPORT */\n-\t\t.priority = init->flow_priority,\n-#endif /* MLX5_FDIR_SUPPORT */\n \t\t.num_of_specs = 0,\n \t\t.port = priv->port,\n \t\t.flags = 0,\n@@ -589,9 +577,7 @@ priv_allow_flow_type(struct priv *priv, enum hash_rxq_flow_type type)\n \tcase HASH_RXQ_FLOW_TYPE_ALLMULTI:\n \t\treturn !!priv->allmulti_req;\n \tcase HASH_RXQ_FLOW_TYPE_BROADCAST:\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \tcase HASH_RXQ_FLOW_TYPE_IPV6MULTI:\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \t\t/* If allmulti is enabled, broadcast and ipv6multi\n \t\t * are unnecessary. */\n \t\treturn !priv->allmulti_req;\n@@ -1038,19 +1024,13 @@ rxq_setup(struct rte_eth_dev *dev, struct rxq_ctrl *rxq_ctrl, uint16_t desc,\n \t\t.cq = tmpl.rxq.cq,\n \t\t.comp_mask =\n \t\t\tIBV_EXP_CREATE_WQ_RES_DOMAIN |\n-#ifdef HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS\n \t\t\tIBV_EXP_CREATE_WQ_VLAN_OFFLOADS |\n-#endif /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n \t\t\t0,\n \t\t.res_domain = tmpl.rd,\n-#ifdef HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS\n \t\t.vlan_offloads = (tmpl.rxq.vlan_strip ?\n \t\t\t\t IBV_EXP_RECEIVE_WQ_CVLAN_STRIP :\n \t\t\t\t 0),\n-#endif /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n \t};\n-\n-#ifdef HAVE_VERBS_FCS\n \t/* By default, FCS (CRC) is stripped by hardware. */\n \tif (dev->data->dev_conf.rxmode.hw_strip_crc) {\n \t\ttmpl.rxq.crc_present = 0;\n@@ -1071,9 +1051,6 @@ rxq_setup(struct rte_eth_dev *dev, struct rxq_ctrl *rxq_ctrl, uint16_t desc,\n \t (void *)dev,\n \t tmpl.rxq.crc_present ? \"disabled\" : \"enabled\",\n \t tmpl.rxq.crc_present << 2);\n-#endif /* HAVE_VERBS_FCS */\n-\n-#ifdef HAVE_VERBS_RX_END_PADDING\n \tif (!mlx5_getenv_int(\"MLX5_PMD_ENABLE_PADDING\"))\n \t\t; /* Nothing else to do. */\n \telse if (priv->hw_padding) {\n@@ -1086,7 +1063,6 @@ rxq_setup(struct rte_eth_dev *dev, struct rxq_ctrl *rxq_ctrl, uint16_t desc,\n \t\t \" supported, make sure MLNX_OFED and firmware are\"\n \t\t \" up to date\",\n \t\t (void *)dev);\n-#endif /* HAVE_VERBS_RX_END_PADDING */\n \n \ttmpl.rxq.wq = ibv_exp_create_wq(priv->ctx, &attr.wq);\n \tif (tmpl.rxq.wq == NULL) {\n@@ -1106,9 +1082,7 @@ rxq_setup(struct rte_eth_dev *dev, struct rxq_ctrl *rxq_ctrl, uint16_t desc,\n \tDEBUG(\"%p: RTE port ID: %u\", (void *)rxq_ctrl, tmpl.rxq.port_id);\n \tattr.params = (struct ibv_exp_query_intf_params){\n \t\t.intf_scope = IBV_EXP_INTF_GLOBAL,\n-#ifdef HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS\n \t\t.intf_version = 1,\n-#endif /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n \t\t.intf = IBV_EXP_INTF_CQ,\n \t\t.obj = tmpl.rxq.cq,\n \t};\n@@ -1164,11 +1138,7 @@ rxq_setup(struct rte_eth_dev *dev, struct rxq_ctrl *rxq_ctrl, uint16_t desc,\n \tDEBUG(\"%p: rxq updated with %p\", (void *)rxq_ctrl, (void *)&tmpl);\n \tassert(ret == 0);\n \t/* Assign function in queue. */\n-#ifdef HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS\n \trxq_ctrl->rxq.poll = rxq_ctrl->if_cq->poll_length_flags_cvlan;\n-#else /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n-\trxq_ctrl->rxq.poll = rxq_ctrl->if_cq->poll_length_flags;\n-#endif /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n \trxq_ctrl->rxq.recv = rxq_ctrl->if_wq->recv_burst;\n \treturn 0;\n error:\ndiff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c\nindex f0b42e9..6a0d707 100644\n--- a/drivers/net/mlx5/mlx5_rxtx.c\n+++ b/drivers/net/mlx5/mlx5_rxtx.c\n@@ -452,11 +452,9 @@ rxq_cq_to_ol_flags(const struct rxq *rxq, uint32_t flags)\n \t\t\t\tTRANSPOSE(~flags,\n \t\t\t\t\tIBV_EXP_CQ_RX_IP_CSUM_OK,\n \t\t\t\t\tPKT_RX_IP_CKSUM_BAD);\n-#ifdef HAVE_EXP_CQ_RX_TCP_PACKET\n \t\t/* Set L4 checksum flag only for TCP/UDP packets. */\n \t\tif (flags &\n \t\t (IBV_EXP_CQ_RX_TCP_PACKET | IBV_EXP_CQ_RX_UDP_PACKET))\n-#endif /* HAVE_EXP_CQ_RX_TCP_PACKET */\n \t\t\tol_flags |=\n \t\t\t\tTRANSPOSE(~flags,\n \t\t\t\t\tIBV_EXP_CQ_RX_TCP_UDP_CSUM_OK,\n@@ -589,12 +587,10 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)\n \t\tif (rxq->csum | rxq->csum_l2tun | rxq->vlan_strip) {\n \t\t\tseg->packet_type = rxq_cq_to_pkt_type(flags);\n \t\t\tseg->ol_flags = rxq_cq_to_ol_flags(rxq, flags);\n-#ifdef HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS\n \t\t\tif (flags & IBV_EXP_CQ_RX_CVLAN_STRIPPED_V1) {\n \t\t\t\tseg->ol_flags |= PKT_RX_VLAN_PKT;\n \t\t\t\tseg->vlan_tci = vlan_tci;\n \t\t\t}\n-#endif /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n \t\t}\n \t\t/* Return packet. */\n \t\t*(pkts++) = seg;\ndiff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h\nindex 2c5e447..570345b 100644\n--- a/drivers/net/mlx5/mlx5_rxtx.h\n+++ b/drivers/net/mlx5/mlx5_rxtx.h\n@@ -120,11 +120,7 @@ struct rxq_ctrl {\n \tstruct fdir_queue fdir_queue; /* Flow director queue. */\n \tstruct ibv_mr *mr; /* Memory Region (for mp). */\n \tstruct ibv_exp_wq_family *if_wq; /* WQ burst interface. */\n-#ifdef HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS\n \tstruct ibv_exp_cq_family_v1 *if_cq; /* CQ interface. */\n-#else /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n-\tstruct ibv_exp_cq_family *if_cq; /* CQ interface. */\n-#endif /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n \tunsigned int socket; /* CPU socket ID for allocations. */\n \tstruct rxq rxq; /* Data path structure. */\n };\n@@ -134,11 +130,9 @@ enum hash_rxq_type {\n \tHASH_RXQ_TCPV4,\n \tHASH_RXQ_UDPV4,\n \tHASH_RXQ_IPV4,\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \tHASH_RXQ_TCPV6,\n \tHASH_RXQ_UDPV6,\n \tHASH_RXQ_IPV6,\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \tHASH_RXQ_ETH,\n };\n \n@@ -169,9 +163,7 @@ struct hash_rxq_init {\n \t\t} hdr;\n \t\tstruct ibv_exp_flow_spec_tcp_udp tcp_udp;\n \t\tstruct ibv_exp_flow_spec_ipv4 ipv4;\n-#ifdef HAVE_FLOW_SPEC_IPV6\n \t\tstruct ibv_exp_flow_spec_ipv6 ipv6;\n-#endif /* HAVE_FLOW_SPEC_IPV6 */\n \t\tstruct ibv_exp_flow_spec_eth eth;\n \t} flow_spec; /* Flow specification template. */\n \tconst struct hash_rxq_init *underlayer; /* Pointer to underlayer. */\ndiff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c\nindex 4683775..9f3a33b 100644\n--- a/drivers/net/mlx5/mlx5_txq.c\n+++ b/drivers/net/mlx5/mlx5_txq.c\n@@ -375,13 +375,11 @@ txq_setup(struct rte_eth_dev *dev, struct txq_ctrl *txq_ctrl, uint16_t desc,\n #ifdef HAVE_VERBS_VLAN_INSERTION\n \t\t.intf_version = 1,\n #endif\n-#ifdef HAVE_EXP_QP_BURST_CREATE_ENABLE_MULTI_PACKET_SEND_WR\n \t\t/* Enable multi-packet send if supported. */\n \t\t.family_flags =\n \t\t\t(priv->mps ?\n \t\t\t IBV_EXP_QP_BURST_CREATE_ENABLE_MULTI_PACKET_SEND_WR :\n \t\t\t 0),\n-#endif\n \t};\n \ttmpl.if_qp = ibv_exp_query_intf(priv->ctx, &attr.params, &status);\n \tif (tmpl.if_qp == NULL) {\ndiff --git a/drivers/net/mlx5/mlx5_vlan.c b/drivers/net/mlx5/mlx5_vlan.c\nindex ff40538..3b9b771 100644\n--- a/drivers/net/mlx5/mlx5_vlan.c\n+++ b/drivers/net/mlx5/mlx5_vlan.c\n@@ -144,7 +144,6 @@ static void\n priv_vlan_strip_queue_set(struct priv *priv, uint16_t idx, int on)\n {\n \tstruct rxq *rxq = (*priv->rxqs)[idx];\n-#ifdef HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS\n \tstruct ibv_exp_wq_attr mod;\n \tuint16_t vlan_offloads =\n \t\t(on ? IBV_EXP_RECEIVE_WQ_CVLAN_STRIP : 0) |\n@@ -165,8 +164,6 @@ priv_vlan_strip_queue_set(struct priv *priv, uint16_t idx, int on)\n \t\treturn;\n \t}\n \n-#endif /* HAVE_EXP_DEVICE_ATTR_VLAN_OFFLOADS */\n-\n \t/* Update related bits in RX queue. */\n \trxq->vlan_strip = !!on;\n }\n", "prefixes": [ "dpdk-dev", "v4", "09/25" ] }{ "id": 14190, "url": "