All of lore.kernel.org
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/3] ethdev: remove L2 tunnel config API
@ 2020-10-22 10:06 Andrew Rybchenko
  2020-10-22 10:06 ` [dpdk-dev] [PATCH 1/3] ethdev: remove API to config L2 tunnel EtherType Andrew Rybchenko
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Andrew Rybchenko @ 2020-10-22 10:06 UTC (permalink / raw)
  To: Jeff Guo, Haiyue Wang; +Cc: dev

Dispite of the deprecation notice I'm not 100% sure that corresponding
functionality is supported via flow API. Since the functionality is
supported by the net/ixgbe driver only, it is a question to maintainers.

The patch series should be applied on top of [1].

[1] https://patches.dpdk.org/project/dpdk/list/?series=13207

Andrew Rybchenko (3):
  ethdev: remove API to config L2 tunnel EtherType
  ethdev: remove L2 tunnel offload control API
  ethdev: move L2 tunnel config structure to ixgbe driver

 app/test-pmd/cmdline.c                      | 577 --------------------
 doc/guides/nics/features.rst                |   3 -
 doc/guides/rel_notes/deprecation.rst        |   6 -
 doc/guides/rel_notes/release_20_11.rst      |   4 +
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  11 -
 drivers/net/ixgbe/ixgbe_ethdev.c            | 375 +------------
 drivers/net/ixgbe/ixgbe_ethdev.h            |  16 +-
 drivers/net/ixgbe/ixgbe_flow.c              |  42 +-
 lib/librte_ethdev/rte_eth_ctrl.h            |  11 -
 lib/librte_ethdev/rte_ethdev.c              |  56 --
 lib/librte_ethdev/rte_ethdev.h              |  49 --
 lib/librte_ethdev/rte_ethdev_driver.h       |  15 -
 lib/librte_ethdev/version.map               |   2 -
 13 files changed, 45 insertions(+), 1122 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] [PATCH 1/3] ethdev: remove API to config L2 tunnel EtherType
  2020-10-22 10:06 [dpdk-dev] [PATCH 0/3] ethdev: remove L2 tunnel config API Andrew Rybchenko
@ 2020-10-22 10:06 ` Andrew Rybchenko
  2020-10-23  2:09   ` Wang, Haiyue
  2020-10-22 10:06 ` [dpdk-dev] [PATCH 2/3] ethdev: remove L2 tunnel offload control API Andrew Rybchenko
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Andrew Rybchenko @ 2020-10-22 10:06 UTC (permalink / raw)
  To: Wenzhuo Lu, Beilei Xing, Bernard Iremonger, Ray Kinsella,
	Neil Horman, Jeff Guo, Haiyue Wang, Thomas Monjalon,
	Ferruh Yigit, Andrew Rybchenko
  Cc: dev

Remove rte_eth_dev_l2_tunnel_eth_type_conf() and corresponding
ethdev driver operation.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 app/test-pmd/cmdline.c                      | 122 --------------------
 doc/guides/nics/features.rst                |   1 -
 doc/guides/rel_notes/deprecation.rst        |   2 +-
 doc/guides/rel_notes/release_20_11.rst      |   3 +
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |   4 -
 drivers/net/ixgbe/ixgbe_ethdev.c            |  30 -----
 lib/librte_ethdev/rte_ethdev.c              |  24 ----
 lib/librte_ethdev/rte_ethdev.h              |  19 ---
 lib/librte_ethdev/rte_ethdev_driver.h       |   6 -
 lib/librte_ethdev/version.map               |   1 -
 10 files changed, 4 insertions(+), 208 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 2a363be41f..8e76ec62a2 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -843,10 +843,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"port (port_id) (rxq|txq) (queue_id) setup\n"
 			"    Setup a rx/tx queue of port X.\n\n"
 
-			"port config (port_id|all) l2-tunnel E-tag ether-type"
-			" (value)\n"
-			"    Set the value of E-tag ether-type.\n\n"
-
 			"port config (port_id|all) l2-tunnel E-tag"
 			" (enable|disable)\n"
 			"    Enable/disable the E-tag support.\n\n"
@@ -10679,51 +10675,6 @@ cmdline_parse_inst_t cmd_mcast_addr = {
  * only support E-tag now.
  */
 
-/* Ether type config */
-struct cmd_config_l2_tunnel_eth_type_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t config;
-	cmdline_fixed_string_t all;
-	portid_t id;
-	cmdline_fixed_string_t l2_tunnel;
-	cmdline_fixed_string_t l2_tunnel_type;
-	cmdline_fixed_string_t eth_type;
-	uint16_t eth_type_val;
-};
-
-cmdline_parse_token_string_t cmd_config_l2_tunnel_eth_type_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_eth_type_result,
-		 port, "port");
-cmdline_parse_token_string_t cmd_config_l2_tunnel_eth_type_config =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_eth_type_result,
-		 config, "config");
-cmdline_parse_token_string_t cmd_config_l2_tunnel_eth_type_all_str =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_eth_type_result,
-		 all, "all");
-cmdline_parse_token_num_t cmd_config_l2_tunnel_eth_type_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_config_l2_tunnel_eth_type_result,
-		 id, UINT16);
-cmdline_parse_token_string_t cmd_config_l2_tunnel_eth_type_l2_tunnel =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_eth_type_result,
-		 l2_tunnel, "l2-tunnel");
-cmdline_parse_token_string_t cmd_config_l2_tunnel_eth_type_l2_tunnel_type =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_eth_type_result,
-		 l2_tunnel_type, "E-tag");
-cmdline_parse_token_string_t cmd_config_l2_tunnel_eth_type_eth_type =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_eth_type_result,
-		 eth_type, "ether-type");
-cmdline_parse_token_num_t cmd_config_l2_tunnel_eth_type_eth_type_val =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_config_l2_tunnel_eth_type_result,
-		 eth_type_val, UINT16);
-
 static enum rte_eth_tunnel_type
 str2fdir_l2_tunnel_type(char *string)
 {
@@ -10743,77 +10694,6 @@ str2fdir_l2_tunnel_type(char *string)
 	return RTE_TUNNEL_TYPE_NONE;
 }
 
-/* ether type config for all ports */
-static void
-cmd_config_l2_tunnel_eth_type_all_parsed
-	(void *parsed_result,
-	 __rte_unused struct cmdline *cl,
-	 __rte_unused void *data)
-{
-	struct cmd_config_l2_tunnel_eth_type_result *res = parsed_result;
-	struct rte_eth_l2_tunnel_conf entry;
-	portid_t pid;
-
-	entry.l2_tunnel_type = str2fdir_l2_tunnel_type(res->l2_tunnel_type);
-	entry.ether_type = res->eth_type_val;
-
-	RTE_ETH_FOREACH_DEV(pid) {
-		rte_eth_dev_l2_tunnel_eth_type_conf(pid, &entry);
-	}
-}
-
-cmdline_parse_inst_t cmd_config_l2_tunnel_eth_type_all = {
-	.f = cmd_config_l2_tunnel_eth_type_all_parsed,
-	.data = NULL,
-	.help_str = "port config all l2-tunnel E-tag ether-type <value>",
-	.tokens = {
-		(void *)&cmd_config_l2_tunnel_eth_type_port,
-		(void *)&cmd_config_l2_tunnel_eth_type_config,
-		(void *)&cmd_config_l2_tunnel_eth_type_all_str,
-		(void *)&cmd_config_l2_tunnel_eth_type_l2_tunnel,
-		(void *)&cmd_config_l2_tunnel_eth_type_l2_tunnel_type,
-		(void *)&cmd_config_l2_tunnel_eth_type_eth_type,
-		(void *)&cmd_config_l2_tunnel_eth_type_eth_type_val,
-		NULL,
-	},
-};
-
-/* ether type config for a specific port */
-static void
-cmd_config_l2_tunnel_eth_type_specific_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_config_l2_tunnel_eth_type_result *res =
-		 parsed_result;
-	struct rte_eth_l2_tunnel_conf entry;
-
-	if (port_id_is_invalid(res->id, ENABLED_WARN))
-		return;
-
-	entry.l2_tunnel_type = str2fdir_l2_tunnel_type(res->l2_tunnel_type);
-	entry.ether_type = res->eth_type_val;
-
-	rte_eth_dev_l2_tunnel_eth_type_conf(res->id, &entry);
-}
-
-cmdline_parse_inst_t cmd_config_l2_tunnel_eth_type_specific = {
-	.f = cmd_config_l2_tunnel_eth_type_specific_parsed,
-	.data = NULL,
-	.help_str = "port config <port_id> l2-tunnel E-tag ether-type <value>",
-	.tokens = {
-		(void *)&cmd_config_l2_tunnel_eth_type_port,
-		(void *)&cmd_config_l2_tunnel_eth_type_config,
-		(void *)&cmd_config_l2_tunnel_eth_type_id,
-		(void *)&cmd_config_l2_tunnel_eth_type_l2_tunnel,
-		(void *)&cmd_config_l2_tunnel_eth_type_l2_tunnel_type,
-		(void *)&cmd_config_l2_tunnel_eth_type_eth_type,
-		(void *)&cmd_config_l2_tunnel_eth_type_eth_type_val,
-		NULL,
-	},
-};
-
 /* Enable/disable l2 tunnel */
 struct cmd_config_l2_tunnel_en_dis_result {
 	cmdline_fixed_string_t port;
@@ -17514,8 +17394,6 @@ cmdline_parse_ctx_t main_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_port_meter_stats_mask,
 	(cmdline_parse_inst_t *)&cmd_show_port_meter_stats,
 	(cmdline_parse_inst_t *)&cmd_mcast_addr,
-	(cmdline_parse_inst_t *)&cmd_config_l2_tunnel_eth_type_all,
-	(cmdline_parse_inst_t *)&cmd_config_l2_tunnel_eth_type_specific,
 	(cmdline_parse_inst_t *)&cmd_config_l2_tunnel_en_dis_all,
 	(cmdline_parse_inst_t *)&cmd_config_l2_tunnel_en_dis_specific,
 	(cmdline_parse_inst_t *)&cmd_config_e_tag_insertion_en,
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index 16e00b8f64..37cd26d84a 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -943,6 +943,5 @@ Other dev ops not represented by a Feature
 * ``uc_all_hash_table_set``
 * ``udp_tunnel_port_add``
 * ``udp_tunnel_port_del``
-* ``l2_tunnel_eth_type_conf``
 * ``l2_tunnel_offload_set``
 * ``tx_pkt_prepare``
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index e9905c8d74..38706775f5 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -100,7 +100,7 @@ Deprecation Notices
 
 * ethdev: The legacy L2 tunnel filtering API is deprecated as the rest of
   the legacy filtering API.
-  The functions ``rte_eth_dev_l2_tunnel_eth_type_conf`` and
+  The function
   ``rte_eth_dev_l2_tunnel_offload_set`` which were not marked as deprecated,
   will be removed in DPDK 20.11.
 
diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
index 14f83f7206..3165307de9 100644
--- a/doc/guides/rel_notes/release_20_11.rst
+++ b/doc/guides/rel_notes/release_20_11.rst
@@ -471,6 +471,9 @@ API Changes
 * ethdev: Removed the legacy filter API, including
   ``rte_eth_dev_filter_supported()`` and ``rte_eth_dev_filter_ctrl()``.
 
+* ethdev: Removed the legacy L2 tunnel configuration API, including
+  ``rte_eth_dev_l2_tunnel_eth_type_conf()``.
+
 * vhost: Moved vDPA APIs from experimental to stable.
 
 * vhost: Add a new function ``rte_vhost_crypto_driver_start`` to be called
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 1564c25f5e..e6439719d1 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -2342,10 +2342,6 @@ These threshold options are also available from the command-line.
 port config - E-tag
 ~~~~~~~~~~~~~~~~~~~
 
-Set the value of ether-type for E-tag::
-
-   testpmd> port config (port_id|all) l2-tunnel E-tag ether-type (value)
-
 Enable/disable the E-tag support::
 
    testpmd> port config (port_id|all) l2-tunnel E-tag (enable|disable)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index af36175380..4918517b92 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -348,8 +348,6 @@ static int ixgbe_timesync_write_time(struct rte_eth_dev *dev,
 				   const struct timespec *timestamp);
 static void ixgbevf_dev_interrupt_handler(void *param);
 
-static int ixgbe_dev_l2_tunnel_eth_type_conf
-	(struct rte_eth_dev *dev, struct rte_eth_l2_tunnel_conf *l2_tunnel);
 static int ixgbe_dev_l2_tunnel_offload_set
 	(struct rte_eth_dev *dev,
 	 struct rte_eth_l2_tunnel_conf *l2_tunnel,
@@ -564,7 +562,6 @@ static const struct eth_dev_ops ixgbe_eth_dev_ops = {
 	.timesync_adjust_time = ixgbe_timesync_adjust_time,
 	.timesync_read_time   = ixgbe_timesync_read_time,
 	.timesync_write_time  = ixgbe_timesync_write_time,
-	.l2_tunnel_eth_type_conf = ixgbe_dev_l2_tunnel_eth_type_conf,
 	.l2_tunnel_offload_set   = ixgbe_dev_l2_tunnel_offload_set,
 	.udp_tunnel_port_add  = ixgbe_dev_udp_tunnel_port_add,
 	.udp_tunnel_port_del  = ixgbe_dev_udp_tunnel_port_del,
@@ -7538,33 +7535,6 @@ ixgbe_update_e_tag_eth_type(struct ixgbe_hw *hw,
 	return 0;
 }
 
-/* Config l2 tunnel ether type */
-static int
-ixgbe_dev_l2_tunnel_eth_type_conf(struct rte_eth_dev *dev,
-				  struct rte_eth_l2_tunnel_conf *l2_tunnel)
-{
-	int ret = 0;
-	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct ixgbe_l2_tn_info *l2_tn_info =
-		IXGBE_DEV_PRIVATE_TO_L2_TN_INFO(dev->data->dev_private);
-
-	if (l2_tunnel == NULL)
-		return -EINVAL;
-
-	switch (l2_tunnel->l2_tunnel_type) {
-	case RTE_L2_TUNNEL_TYPE_E_TAG:
-		l2_tn_info->e_tag_ether_type = l2_tunnel->ether_type;
-		ret = ixgbe_update_e_tag_eth_type(hw, l2_tunnel->ether_type);
-		break;
-	default:
-		PMD_DRV_LOG(ERR, "Invalid tunnel type");
-		ret = -EINVAL;
-		break;
-	}
-
-	return ret;
-}
-
 /* Enable e-tag tunnel */
 static int
 ixgbe_e_tag_enable(struct ixgbe_hw *hw)
diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index aa030fd4fc..e5d0a18feb 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -5317,30 +5317,6 @@ rte_eth_dev_get_dcb_info(uint16_t port_id,
 	return eth_err(port_id, (*dev->dev_ops->get_dcb_info)(dev, dcb_info));
 }
 
-int
-rte_eth_dev_l2_tunnel_eth_type_conf(uint16_t port_id,
-				    struct rte_eth_l2_tunnel_conf *l2_tunnel)
-{
-	struct rte_eth_dev *dev;
-
-	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
-	if (l2_tunnel == NULL) {
-		RTE_ETHDEV_LOG(ERR, "Invalid l2_tunnel parameter\n");
-		return -EINVAL;
-	}
-
-	if (l2_tunnel->l2_tunnel_type >= RTE_TUNNEL_TYPE_MAX) {
-		RTE_ETHDEV_LOG(ERR, "Invalid tunnel type\n");
-		return -EINVAL;
-	}
-
-	dev = &rte_eth_devices[port_id];
-	RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->l2_tunnel_eth_type_conf,
-				-ENOTSUP);
-	return eth_err(port_id, (*dev->dev_ops->l2_tunnel_eth_type_conf)(dev,
-								l2_tunnel));
-}
-
 int
 rte_eth_dev_l2_tunnel_offload_set(uint16_t port_id,
 				  struct rte_eth_l2_tunnel_conf *l2_tunnel,
diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index c51faa9c5b..dda75a82b3 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -4627,25 +4627,6 @@ __rte_experimental
 int
 rte_eth_read_clock(uint16_t port_id, uint64_t *clock);
 
-/**
- * Config l2 tunnel ether type of an Ethernet device for filtering specific
- * tunnel packets by ether type.
- *
- * @param port_id
- *   The port identifier of the Ethernet device.
- * @param l2_tunnel
- *   l2 tunnel configuration.
- *
- * @return
- *   - (0) if successful.
- *   - (-ENODEV) if port identifier is invalid.
- *   - (-EIO) if device is removed.
- *   - (-ENOTSUP) if hardware doesn't support tunnel type.
- */
-int
-rte_eth_dev_l2_tunnel_eth_type_conf(uint16_t port_id,
-				    struct rte_eth_l2_tunnel_conf *l2_tunnel);
-
 /**
  * Enable/disable l2 tunnel offload functions. Include,
  * 1, The ability of parsing a type of l2 tunnel of an Ethernet device.
diff --git a/lib/librte_ethdev/rte_ethdev_driver.h b/lib/librte_ethdev/rte_ethdev_driver.h
index d830789ff6..a69793dcb1 100644
--- a/lib/librte_ethdev/rte_ethdev_driver.h
+++ b/lib/librte_ethdev/rte_ethdev_driver.h
@@ -465,10 +465,6 @@ typedef int (*eth_get_module_eeprom_t)(struct rte_eth_dev *dev,
 				       struct rte_dev_eeprom_info *info);
 /**< @internal Retrieve plugin module eeprom data */
 
-typedef int (*eth_l2_tunnel_eth_type_conf_t)
-	(struct rte_eth_dev *dev, struct rte_eth_l2_tunnel_conf *l2_tunnel);
-/**< @internal config l2 tunnel ether type */
-
 typedef int (*eth_l2_tunnel_offload_set_t)
 	(struct rte_eth_dev *dev,
 	 struct rte_eth_l2_tunnel_conf *l2_tunnel,
@@ -853,8 +849,6 @@ struct eth_dev_ops {
 
 	eth_udp_tunnel_port_add_t  udp_tunnel_port_add; /** Add UDP tunnel port. */
 	eth_udp_tunnel_port_del_t  udp_tunnel_port_del; /** Del UDP tunnel port. */
-	eth_l2_tunnel_eth_type_conf_t l2_tunnel_eth_type_conf;
-	/** Config ether type of l2 tunnel. */
 	eth_l2_tunnel_offload_set_t   l2_tunnel_offload_set;
 	/** Enable/disable l2 tunnel offload functions. */
 
diff --git a/lib/librte_ethdev/version.map b/lib/librte_ethdev/version.map
index fe628736c0..63f077a3eb 100644
--- a/lib/librte_ethdev/version.map
+++ b/lib/librte_ethdev/version.map
@@ -30,7 +30,6 @@ DPDK_21 {
 	rte_eth_dev_get_vlan_offload;
 	rte_eth_dev_info_get;
 	rte_eth_dev_is_valid_port;
-	rte_eth_dev_l2_tunnel_eth_type_conf;
 	rte_eth_dev_l2_tunnel_offload_set;
 	rte_eth_dev_logtype;
 	rte_eth_dev_mac_addr_add;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [dpdk-dev] [PATCH 2/3] ethdev: remove L2 tunnel offload control API
  2020-10-22 10:06 [dpdk-dev] [PATCH 0/3] ethdev: remove L2 tunnel config API Andrew Rybchenko
  2020-10-22 10:06 ` [dpdk-dev] [PATCH 1/3] ethdev: remove API to config L2 tunnel EtherType Andrew Rybchenko
@ 2020-10-22 10:06 ` Andrew Rybchenko
  2020-10-23  2:11   ` Wang, Haiyue
  2020-10-22 10:06 ` [dpdk-dev] [PATCH 3/3] ethdev: move L2 tunnel config structure to ixgbe driver Andrew Rybchenko
  2020-10-29 22:49 ` [dpdk-dev] [PATCH 0/3] ethdev: remove L2 tunnel config API Ferruh Yigit
  3 siblings, 1 reply; 11+ messages in thread
From: Andrew Rybchenko @ 2020-10-22 10:06 UTC (permalink / raw)
  To: Wenzhuo Lu, Beilei Xing, Bernard Iremonger, Ray Kinsella,
	Neil Horman, Jeff Guo, Haiyue Wang, Thomas Monjalon,
	Ferruh Yigit, Andrew Rybchenko
  Cc: dev

Remove rte_eth_dev_l2_tunnel_offload_set() and corresponding
ethdev driver operation.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 app/test-pmd/cmdline.c                      | 455 --------------------
 doc/guides/nics/features.rst                |   2 -
 doc/guides/rel_notes/deprecation.rst        |   6 -
 doc/guides/rel_notes/release_20_11.rst      |   3 +-
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |   7 -
 drivers/net/ixgbe/ixgbe_ethdev.c            | 333 --------------
 lib/librte_ethdev/rte_ethdev.c              |  32 --
 lib/librte_ethdev/rte_ethdev.h              |  30 --
 lib/librte_ethdev/rte_ethdev_driver.h       |   9 -
 lib/librte_ethdev/version.map               |   1 -
 10 files changed, 2 insertions(+), 876 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 8e76ec62a2..84db81cf31 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -650,20 +650,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set link-down port (port_id)\n"
 			"	Set link down for a port.\n\n"
 
-			"E-tag set insertion on port-tag-id (value)"
-			" port (port_id) vf (vf_id)\n"
-			"    Enable E-tag insertion for a VF on a port\n\n"
-
-			"E-tag set insertion off port (port_id) vf (vf_id)\n"
-			"    Disable E-tag insertion for a VF on a port\n\n"
-
-			"E-tag set stripping (on|off) port (port_id)\n"
-			"    Enable/disable E-tag stripping on a port\n\n"
-
-			"E-tag set forwarding (on|off) port (port_id)\n"
-			"    Enable/disable E-tag based forwarding"
-			" on a port\n\n"
-
 			"ddp add (port_id) (profile_path[,backup_profile_path])\n"
 			"    Load a profile package on a port\n\n"
 
@@ -843,10 +829,6 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"port (port_id) (rxq|txq) (queue_id) setup\n"
 			"    Setup a rx/tx queue of port X.\n\n"
 
-			"port config (port_id|all) l2-tunnel E-tag"
-			" (enable|disable)\n"
-			"    Enable/disable the E-tag support.\n\n"
-
 			"port config (port_id) pctype mapping reset\n"
 			"    Reset flow type to pctype mapping on a port\n\n"
 
@@ -10671,437 +10653,6 @@ cmdline_parse_inst_t cmd_mcast_addr = {
 	},
 };
 
-/* l2 tunnel config
- * only support E-tag now.
- */
-
-static enum rte_eth_tunnel_type
-str2fdir_l2_tunnel_type(char *string)
-{
-	uint32_t i = 0;
-
-	static const struct {
-		char str[32];
-		enum rte_eth_tunnel_type type;
-	} l2_tunnel_type_str[] = {
-		{"E-tag", RTE_L2_TUNNEL_TYPE_E_TAG},
-	};
-
-	for (i = 0; i < RTE_DIM(l2_tunnel_type_str); i++) {
-		if (!strcmp(l2_tunnel_type_str[i].str, string))
-			return l2_tunnel_type_str[i].type;
-	}
-	return RTE_TUNNEL_TYPE_NONE;
-}
-
-/* Enable/disable l2 tunnel */
-struct cmd_config_l2_tunnel_en_dis_result {
-	cmdline_fixed_string_t port;
-	cmdline_fixed_string_t config;
-	cmdline_fixed_string_t all;
-	portid_t id;
-	cmdline_fixed_string_t l2_tunnel;
-	cmdline_fixed_string_t l2_tunnel_type;
-	cmdline_fixed_string_t en_dis;
-};
-
-cmdline_parse_token_string_t cmd_config_l2_tunnel_en_dis_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_en_dis_result,
-		 port, "port");
-cmdline_parse_token_string_t cmd_config_l2_tunnel_en_dis_config =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_en_dis_result,
-		 config, "config");
-cmdline_parse_token_string_t cmd_config_l2_tunnel_en_dis_all_str =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_en_dis_result,
-		 all, "all");
-cmdline_parse_token_num_t cmd_config_l2_tunnel_en_dis_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_config_l2_tunnel_en_dis_result,
-		 id, UINT16);
-cmdline_parse_token_string_t cmd_config_l2_tunnel_en_dis_l2_tunnel =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_en_dis_result,
-		 l2_tunnel, "l2-tunnel");
-cmdline_parse_token_string_t cmd_config_l2_tunnel_en_dis_l2_tunnel_type =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_en_dis_result,
-		 l2_tunnel_type, "E-tag");
-cmdline_parse_token_string_t cmd_config_l2_tunnel_en_dis_en_dis =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_l2_tunnel_en_dis_result,
-		 en_dis, "enable#disable");
-
-/* enable/disable l2 tunnel for all ports */
-static void
-cmd_config_l2_tunnel_en_dis_all_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_config_l2_tunnel_en_dis_result *res = parsed_result;
-	struct rte_eth_l2_tunnel_conf entry;
-	portid_t pid;
-	uint8_t en;
-
-	entry.l2_tunnel_type = str2fdir_l2_tunnel_type(res->l2_tunnel_type);
-
-	if (!strcmp("enable", res->en_dis))
-		en = 1;
-	else
-		en = 0;
-
-	RTE_ETH_FOREACH_DEV(pid) {
-		rte_eth_dev_l2_tunnel_offload_set(pid,
-						  &entry,
-						  ETH_L2_TUNNEL_ENABLE_MASK,
-						  en);
-	}
-}
-
-cmdline_parse_inst_t cmd_config_l2_tunnel_en_dis_all = {
-	.f = cmd_config_l2_tunnel_en_dis_all_parsed,
-	.data = NULL,
-	.help_str = "port config all l2-tunnel E-tag enable|disable",
-	.tokens = {
-		(void *)&cmd_config_l2_tunnel_en_dis_port,
-		(void *)&cmd_config_l2_tunnel_en_dis_config,
-		(void *)&cmd_config_l2_tunnel_en_dis_all_str,
-		(void *)&cmd_config_l2_tunnel_en_dis_l2_tunnel,
-		(void *)&cmd_config_l2_tunnel_en_dis_l2_tunnel_type,
-		(void *)&cmd_config_l2_tunnel_en_dis_en_dis,
-		NULL,
-	},
-};
-
-/* enable/disable l2 tunnel for a port */
-static void
-cmd_config_l2_tunnel_en_dis_specific_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_config_l2_tunnel_en_dis_result *res =
-		parsed_result;
-	struct rte_eth_l2_tunnel_conf entry;
-
-	if (port_id_is_invalid(res->id, ENABLED_WARN))
-		return;
-
-	entry.l2_tunnel_type = str2fdir_l2_tunnel_type(res->l2_tunnel_type);
-
-	if (!strcmp("enable", res->en_dis))
-		rte_eth_dev_l2_tunnel_offload_set(res->id,
-						  &entry,
-						  ETH_L2_TUNNEL_ENABLE_MASK,
-						  1);
-	else
-		rte_eth_dev_l2_tunnel_offload_set(res->id,
-						  &entry,
-						  ETH_L2_TUNNEL_ENABLE_MASK,
-						  0);
-}
-
-cmdline_parse_inst_t cmd_config_l2_tunnel_en_dis_specific = {
-	.f = cmd_config_l2_tunnel_en_dis_specific_parsed,
-	.data = NULL,
-	.help_str = "port config <port_id> l2-tunnel E-tag enable|disable",
-	.tokens = {
-		(void *)&cmd_config_l2_tunnel_en_dis_port,
-		(void *)&cmd_config_l2_tunnel_en_dis_config,
-		(void *)&cmd_config_l2_tunnel_en_dis_id,
-		(void *)&cmd_config_l2_tunnel_en_dis_l2_tunnel,
-		(void *)&cmd_config_l2_tunnel_en_dis_l2_tunnel_type,
-		(void *)&cmd_config_l2_tunnel_en_dis_en_dis,
-		NULL,
-	},
-};
-
-/* E-tag configuration */
-
-/* Common result structure for all E-tag configuration */
-struct cmd_config_e_tag_result {
-	cmdline_fixed_string_t e_tag;
-	cmdline_fixed_string_t set;
-	cmdline_fixed_string_t insertion;
-	cmdline_fixed_string_t stripping;
-	cmdline_fixed_string_t forwarding;
-	cmdline_fixed_string_t filter;
-	cmdline_fixed_string_t add;
-	cmdline_fixed_string_t del;
-	cmdline_fixed_string_t on;
-	cmdline_fixed_string_t off;
-	cmdline_fixed_string_t on_off;
-	cmdline_fixed_string_t port_tag_id;
-	uint32_t port_tag_id_val;
-	cmdline_fixed_string_t e_tag_id;
-	uint16_t e_tag_id_val;
-	cmdline_fixed_string_t dst_pool;
-	uint8_t dst_pool_val;
-	cmdline_fixed_string_t port;
-	portid_t port_id;
-	cmdline_fixed_string_t vf;
-	uint8_t vf_id;
-};
-
-/* Common CLI fields for all E-tag configuration */
-cmdline_parse_token_string_t cmd_config_e_tag_e_tag =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 e_tag, "E-tag");
-cmdline_parse_token_string_t cmd_config_e_tag_set =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 set, "set");
-cmdline_parse_token_string_t cmd_config_e_tag_insertion =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 insertion, "insertion");
-cmdline_parse_token_string_t cmd_config_e_tag_stripping =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 stripping, "stripping");
-cmdline_parse_token_string_t cmd_config_e_tag_forwarding =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 forwarding, "forwarding");
-cmdline_parse_token_string_t cmd_config_e_tag_filter =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 filter, "filter");
-cmdline_parse_token_string_t cmd_config_e_tag_add =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 add, "add");
-cmdline_parse_token_string_t cmd_config_e_tag_del =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 del, "del");
-cmdline_parse_token_string_t cmd_config_e_tag_on =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 on, "on");
-cmdline_parse_token_string_t cmd_config_e_tag_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 off, "off");
-cmdline_parse_token_string_t cmd_config_e_tag_on_off =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 on_off, "on#off");
-cmdline_parse_token_string_t cmd_config_e_tag_port_tag_id =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 port_tag_id, "port-tag-id");
-cmdline_parse_token_num_t cmd_config_e_tag_port_tag_id_val =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 port_tag_id_val, UINT32);
-cmdline_parse_token_string_t cmd_config_e_tag_e_tag_id =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 e_tag_id, "e-tag-id");
-cmdline_parse_token_num_t cmd_config_e_tag_e_tag_id_val =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 e_tag_id_val, UINT16);
-cmdline_parse_token_string_t cmd_config_e_tag_dst_pool =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 dst_pool, "dst-pool");
-cmdline_parse_token_num_t cmd_config_e_tag_dst_pool_val =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 dst_pool_val, UINT8);
-cmdline_parse_token_string_t cmd_config_e_tag_port =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 port, "port");
-cmdline_parse_token_num_t cmd_config_e_tag_port_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 port_id, UINT16);
-cmdline_parse_token_string_t cmd_config_e_tag_vf =
-	TOKEN_STRING_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 vf, "vf");
-cmdline_parse_token_num_t cmd_config_e_tag_vf_id =
-	TOKEN_NUM_INITIALIZER
-		(struct cmd_config_e_tag_result,
-		 vf_id, UINT8);
-
-/* E-tag insertion configuration */
-static void
-cmd_config_e_tag_insertion_en_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_config_e_tag_result *res =
-		parsed_result;
-	struct rte_eth_l2_tunnel_conf entry;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	entry.l2_tunnel_type = RTE_L2_TUNNEL_TYPE_E_TAG;
-	entry.tunnel_id = res->port_tag_id_val;
-	entry.vf_id = res->vf_id;
-	rte_eth_dev_l2_tunnel_offload_set(res->port_id,
-					  &entry,
-					  ETH_L2_TUNNEL_INSERTION_MASK,
-					  1);
-}
-
-static void
-cmd_config_e_tag_insertion_dis_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_config_e_tag_result *res =
-		parsed_result;
-	struct rte_eth_l2_tunnel_conf entry;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	entry.l2_tunnel_type = RTE_L2_TUNNEL_TYPE_E_TAG;
-	entry.vf_id = res->vf_id;
-
-	rte_eth_dev_l2_tunnel_offload_set(res->port_id,
-					  &entry,
-					  ETH_L2_TUNNEL_INSERTION_MASK,
-					  0);
-}
-
-cmdline_parse_inst_t cmd_config_e_tag_insertion_en = {
-	.f = cmd_config_e_tag_insertion_en_parsed,
-	.data = NULL,
-	.help_str = "E-tag ... : E-tag insertion enable",
-	.tokens = {
-		(void *)&cmd_config_e_tag_e_tag,
-		(void *)&cmd_config_e_tag_set,
-		(void *)&cmd_config_e_tag_insertion,
-		(void *)&cmd_config_e_tag_on,
-		(void *)&cmd_config_e_tag_port_tag_id,
-		(void *)&cmd_config_e_tag_port_tag_id_val,
-		(void *)&cmd_config_e_tag_port,
-		(void *)&cmd_config_e_tag_port_id,
-		(void *)&cmd_config_e_tag_vf,
-		(void *)&cmd_config_e_tag_vf_id,
-		NULL,
-	},
-};
-
-cmdline_parse_inst_t cmd_config_e_tag_insertion_dis = {
-	.f = cmd_config_e_tag_insertion_dis_parsed,
-	.data = NULL,
-	.help_str = "E-tag ... : E-tag insertion disable",
-	.tokens = {
-		(void *)&cmd_config_e_tag_e_tag,
-		(void *)&cmd_config_e_tag_set,
-		(void *)&cmd_config_e_tag_insertion,
-		(void *)&cmd_config_e_tag_off,
-		(void *)&cmd_config_e_tag_port,
-		(void *)&cmd_config_e_tag_port_id,
-		(void *)&cmd_config_e_tag_vf,
-		(void *)&cmd_config_e_tag_vf_id,
-		NULL,
-	},
-};
-
-/* E-tag stripping configuration */
-static void
-cmd_config_e_tag_stripping_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_config_e_tag_result *res =
-		parsed_result;
-	struct rte_eth_l2_tunnel_conf entry;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	entry.l2_tunnel_type = RTE_L2_TUNNEL_TYPE_E_TAG;
-
-	if (!strcmp(res->on_off, "on"))
-		rte_eth_dev_l2_tunnel_offload_set
-			(res->port_id,
-			 &entry,
-			 ETH_L2_TUNNEL_STRIPPING_MASK,
-			 1);
-	else
-		rte_eth_dev_l2_tunnel_offload_set
-			(res->port_id,
-			 &entry,
-			 ETH_L2_TUNNEL_STRIPPING_MASK,
-			 0);
-}
-
-cmdline_parse_inst_t cmd_config_e_tag_stripping_en_dis = {
-	.f = cmd_config_e_tag_stripping_parsed,
-	.data = NULL,
-	.help_str = "E-tag ... : E-tag stripping enable/disable",
-	.tokens = {
-		(void *)&cmd_config_e_tag_e_tag,
-		(void *)&cmd_config_e_tag_set,
-		(void *)&cmd_config_e_tag_stripping,
-		(void *)&cmd_config_e_tag_on_off,
-		(void *)&cmd_config_e_tag_port,
-		(void *)&cmd_config_e_tag_port_id,
-		NULL,
-	},
-};
-
-/* E-tag forwarding configuration */
-static void
-cmd_config_e_tag_forwarding_parsed(
-	void *parsed_result,
-	__rte_unused struct cmdline *cl,
-	__rte_unused void *data)
-{
-	struct cmd_config_e_tag_result *res = parsed_result;
-	struct rte_eth_l2_tunnel_conf entry;
-
-	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
-		return;
-
-	entry.l2_tunnel_type = RTE_L2_TUNNEL_TYPE_E_TAG;
-
-	if (!strcmp(res->on_off, "on"))
-		rte_eth_dev_l2_tunnel_offload_set
-			(res->port_id,
-			 &entry,
-			 ETH_L2_TUNNEL_FORWARDING_MASK,
-			 1);
-	else
-		rte_eth_dev_l2_tunnel_offload_set
-			(res->port_id,
-			 &entry,
-			 ETH_L2_TUNNEL_FORWARDING_MASK,
-			 0);
-}
-
-cmdline_parse_inst_t cmd_config_e_tag_forwarding_en_dis = {
-	.f = cmd_config_e_tag_forwarding_parsed,
-	.data = NULL,
-	.help_str = "E-tag ... : E-tag forwarding enable/disable",
-	.tokens = {
-		(void *)&cmd_config_e_tag_e_tag,
-		(void *)&cmd_config_e_tag_set,
-		(void *)&cmd_config_e_tag_forwarding,
-		(void *)&cmd_config_e_tag_on_off,
-		(void *)&cmd_config_e_tag_port,
-		(void *)&cmd_config_e_tag_port_id,
-		NULL,
-	},
-};
-
 /* vf vlan anti spoof configuration */
 
 /* Common result structure for vf vlan anti spoof */
@@ -17394,12 +16945,6 @@ cmdline_parse_ctx_t main_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_set_port_meter_stats_mask,
 	(cmdline_parse_inst_t *)&cmd_show_port_meter_stats,
 	(cmdline_parse_inst_t *)&cmd_mcast_addr,
-	(cmdline_parse_inst_t *)&cmd_config_l2_tunnel_en_dis_all,
-	(cmdline_parse_inst_t *)&cmd_config_l2_tunnel_en_dis_specific,
-	(cmdline_parse_inst_t *)&cmd_config_e_tag_insertion_en,
-	(cmdline_parse_inst_t *)&cmd_config_e_tag_insertion_dis,
-	(cmdline_parse_inst_t *)&cmd_config_e_tag_stripping_en_dis,
-	(cmdline_parse_inst_t *)&cmd_config_e_tag_forwarding_en_dis,
 	(cmdline_parse_inst_t *)&cmd_set_vf_vlan_anti_spoof,
 	(cmdline_parse_inst_t *)&cmd_set_vf_mac_anti_spoof,
 	(cmdline_parse_inst_t *)&cmd_set_vf_vlan_stripq,
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index 37cd26d84a..98ad7d0822 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -938,10 +938,8 @@ Other dev ops not represented by a Feature
 * ``vlan_strip_queue_set``
 * ``vlan_pvid_set``
 * ``rx_queue_count``
-* ``l2_tunnel_offload_set``
 * ``uc_hash_table_set``
 * ``uc_all_hash_table_set``
 * ``udp_tunnel_port_add``
 * ``udp_tunnel_port_del``
-* ``l2_tunnel_offload_set``
 * ``tx_pkt_prepare``
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 38706775f5..a348138757 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -98,12 +98,6 @@ Deprecation Notices
   and the related structures (``rte_fdir_*`` and ``rte_eth_fdir_*``),
   will be removed in DPDK 20.11.
 
-* ethdev: The legacy L2 tunnel filtering API is deprecated as the rest of
-  the legacy filtering API.
-  The function
-  ``rte_eth_dev_l2_tunnel_offload_set`` which were not marked as deprecated,
-  will be removed in DPDK 20.11.
-
 * ethdev: New offload flags ``DEV_RX_OFFLOAD_FLOW_MARK`` will be added in 19.11.
   This will allow application to enable or disable PMDs from updating
   ``rte_mbuf::hash::fdir``.
diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
index 3165307de9..82d392dec8 100644
--- a/doc/guides/rel_notes/release_20_11.rst
+++ b/doc/guides/rel_notes/release_20_11.rst
@@ -472,7 +472,8 @@ API Changes
   ``rte_eth_dev_filter_supported()`` and ``rte_eth_dev_filter_ctrl()``.
 
 * ethdev: Removed the legacy L2 tunnel configuration API, including
-  ``rte_eth_dev_l2_tunnel_eth_type_conf()``.
+  ``rte_eth_dev_l2_tunnel_eth_type_conf()`` and
+  ``rte_eth_dev_l2_tunnel_offload_set()``..
 
 * vhost: Moved vDPA APIs from experimental to stable.
 
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index e6439719d1..edcb4d2d17 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -2339,13 +2339,6 @@ Where the threshold type can be:
 
 These threshold options are also available from the command-line.
 
-port config - E-tag
-~~~~~~~~~~~~~~~~~~~
-
-Enable/disable the E-tag support::
-
-   testpmd> port config (port_id|all) l2-tunnel E-tag (enable|disable)
-
 port config pctype mapping
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 4918517b92..9c91b8cde8 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -348,12 +348,6 @@ static int ixgbe_timesync_write_time(struct rte_eth_dev *dev,
 				   const struct timespec *timestamp);
 static void ixgbevf_dev_interrupt_handler(void *param);
 
-static int ixgbe_dev_l2_tunnel_offload_set
-	(struct rte_eth_dev *dev,
-	 struct rte_eth_l2_tunnel_conf *l2_tunnel,
-	 uint32_t mask,
-	 uint8_t en);
-
 static int ixgbe_dev_udp_tunnel_port_add(struct rte_eth_dev *dev,
 					 struct rte_eth_udp_tunnel *udp_tunnel);
 static int ixgbe_dev_udp_tunnel_port_del(struct rte_eth_dev *dev,
@@ -562,7 +556,6 @@ static const struct eth_dev_ops ixgbe_eth_dev_ops = {
 	.timesync_adjust_time = ixgbe_timesync_adjust_time,
 	.timesync_read_time   = ixgbe_timesync_read_time,
 	.timesync_write_time  = ixgbe_timesync_write_time,
-	.l2_tunnel_offload_set   = ixgbe_dev_l2_tunnel_offload_set,
 	.udp_tunnel_port_add  = ixgbe_dev_udp_tunnel_port_add,
 	.udp_tunnel_port_del  = ixgbe_dev_udp_tunnel_port_del,
 	.tm_ops_get           = ixgbe_tm_ops_get,
@@ -7555,74 +7548,6 @@ ixgbe_e_tag_enable(struct ixgbe_hw *hw)
 	return 0;
 }
 
-/* Enable l2 tunnel */
-static int
-ixgbe_dev_l2_tunnel_enable(struct rte_eth_dev *dev,
-			   enum rte_eth_tunnel_type l2_tunnel_type)
-{
-	int ret = 0;
-	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct ixgbe_l2_tn_info *l2_tn_info =
-		IXGBE_DEV_PRIVATE_TO_L2_TN_INFO(dev->data->dev_private);
-
-	switch (l2_tunnel_type) {
-	case RTE_L2_TUNNEL_TYPE_E_TAG:
-		l2_tn_info->e_tag_en = TRUE;
-		ret = ixgbe_e_tag_enable(hw);
-		break;
-	default:
-		PMD_DRV_LOG(ERR, "Invalid tunnel type");
-		ret = -EINVAL;
-		break;
-	}
-
-	return ret;
-}
-
-/* Disable e-tag tunnel */
-static int
-ixgbe_e_tag_disable(struct ixgbe_hw *hw)
-{
-	uint32_t etag_etype;
-
-	if (hw->mac.type != ixgbe_mac_X550 &&
-	    hw->mac.type != ixgbe_mac_X550EM_x &&
-	    hw->mac.type != ixgbe_mac_X550EM_a) {
-		return -ENOTSUP;
-	}
-
-	etag_etype = IXGBE_READ_REG(hw, IXGBE_ETAG_ETYPE);
-	etag_etype &= ~IXGBE_ETAG_ETYPE_VALID;
-	IXGBE_WRITE_REG(hw, IXGBE_ETAG_ETYPE, etag_etype);
-	IXGBE_WRITE_FLUSH(hw);
-
-	return 0;
-}
-
-/* Disable l2 tunnel */
-static int
-ixgbe_dev_l2_tunnel_disable(struct rte_eth_dev *dev,
-			    enum rte_eth_tunnel_type l2_tunnel_type)
-{
-	int ret = 0;
-	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct ixgbe_l2_tn_info *l2_tn_info =
-		IXGBE_DEV_PRIVATE_TO_L2_TN_INFO(dev->data->dev_private);
-
-	switch (l2_tunnel_type) {
-	case RTE_L2_TUNNEL_TYPE_E_TAG:
-		l2_tn_info->e_tag_en = FALSE;
-		ret = ixgbe_e_tag_disable(hw);
-		break;
-	default:
-		PMD_DRV_LOG(ERR, "Invalid tunnel type");
-		ret = -EINVAL;
-		break;
-	}
-
-	return ret;
-}
-
 static int
 ixgbe_e_tag_filter_del(struct rte_eth_dev *dev,
 		       struct rte_eth_l2_tunnel_conf *l2_tunnel)
@@ -7870,264 +7795,6 @@ ixgbe_e_tag_forwarding_en_dis(struct rte_eth_dev *dev, bool en)
 	return ret;
 }
 
-/* Enable l2 tunnel forwarding */
-static int
-ixgbe_dev_l2_tunnel_forwarding_enable
-	(struct rte_eth_dev *dev,
-	 enum rte_eth_tunnel_type l2_tunnel_type)
-{
-	struct ixgbe_l2_tn_info *l2_tn_info =
-		IXGBE_DEV_PRIVATE_TO_L2_TN_INFO(dev->data->dev_private);
-	int ret = 0;
-
-	switch (l2_tunnel_type) {
-	case RTE_L2_TUNNEL_TYPE_E_TAG:
-		l2_tn_info->e_tag_fwd_en = TRUE;
-		ret = ixgbe_e_tag_forwarding_en_dis(dev, 1);
-		break;
-	default:
-		PMD_DRV_LOG(ERR, "Invalid tunnel type");
-		ret = -EINVAL;
-		break;
-	}
-
-	return ret;
-}
-
-/* Disable l2 tunnel forwarding */
-static int
-ixgbe_dev_l2_tunnel_forwarding_disable
-	(struct rte_eth_dev *dev,
-	 enum rte_eth_tunnel_type l2_tunnel_type)
-{
-	struct ixgbe_l2_tn_info *l2_tn_info =
-		IXGBE_DEV_PRIVATE_TO_L2_TN_INFO(dev->data->dev_private);
-	int ret = 0;
-
-	switch (l2_tunnel_type) {
-	case RTE_L2_TUNNEL_TYPE_E_TAG:
-		l2_tn_info->e_tag_fwd_en = FALSE;
-		ret = ixgbe_e_tag_forwarding_en_dis(dev, 0);
-		break;
-	default:
-		PMD_DRV_LOG(ERR, "Invalid tunnel type");
-		ret = -EINVAL;
-		break;
-	}
-
-	return ret;
-}
-
-static int
-ixgbe_e_tag_insertion_en_dis(struct rte_eth_dev *dev,
-			     struct rte_eth_l2_tunnel_conf *l2_tunnel,
-			     bool en)
-{
-	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
-	int ret = 0;
-	uint32_t vmtir, vmvir;
-	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-
-	if (l2_tunnel->vf_id >= pci_dev->max_vfs) {
-		PMD_DRV_LOG(ERR,
-			    "VF id %u should be less than %u",
-			    l2_tunnel->vf_id,
-			    pci_dev->max_vfs);
-		return -EINVAL;
-	}
-
-	if (hw->mac.type != ixgbe_mac_X550 &&
-	    hw->mac.type != ixgbe_mac_X550EM_x &&
-	    hw->mac.type != ixgbe_mac_X550EM_a) {
-		return -ENOTSUP;
-	}
-
-	if (en)
-		vmtir = l2_tunnel->tunnel_id;
-	else
-		vmtir = 0;
-
-	IXGBE_WRITE_REG(hw, IXGBE_VMTIR(l2_tunnel->vf_id), vmtir);
-
-	vmvir = IXGBE_READ_REG(hw, IXGBE_VMVIR(l2_tunnel->vf_id));
-	vmvir &= ~IXGBE_VMVIR_TAGA_MASK;
-	if (en)
-		vmvir |= IXGBE_VMVIR_TAGA_ETAG_INSERT;
-	IXGBE_WRITE_REG(hw, IXGBE_VMVIR(l2_tunnel->vf_id), vmvir);
-
-	return ret;
-}
-
-/* Enable l2 tunnel tag insertion */
-static int
-ixgbe_dev_l2_tunnel_insertion_enable(struct rte_eth_dev *dev,
-				     struct rte_eth_l2_tunnel_conf *l2_tunnel)
-{
-	int ret = 0;
-
-	switch (l2_tunnel->l2_tunnel_type) {
-	case RTE_L2_TUNNEL_TYPE_E_TAG:
-		ret = ixgbe_e_tag_insertion_en_dis(dev, l2_tunnel, 1);
-		break;
-	default:
-		PMD_DRV_LOG(ERR, "Invalid tunnel type");
-		ret = -EINVAL;
-		break;
-	}
-
-	return ret;
-}
-
-/* Disable l2 tunnel tag insertion */
-static int
-ixgbe_dev_l2_tunnel_insertion_disable
-	(struct rte_eth_dev *dev,
-	 struct rte_eth_l2_tunnel_conf *l2_tunnel)
-{
-	int ret = 0;
-
-	switch (l2_tunnel->l2_tunnel_type) {
-	case RTE_L2_TUNNEL_TYPE_E_TAG:
-		ret = ixgbe_e_tag_insertion_en_dis(dev, l2_tunnel, 0);
-		break;
-	default:
-		PMD_DRV_LOG(ERR, "Invalid tunnel type");
-		ret = -EINVAL;
-		break;
-	}
-
-	return ret;
-}
-
-static int
-ixgbe_e_tag_stripping_en_dis(struct rte_eth_dev *dev,
-			     bool en)
-{
-	int ret = 0;
-	uint32_t qde;
-	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-
-	if (hw->mac.type != ixgbe_mac_X550 &&
-	    hw->mac.type != ixgbe_mac_X550EM_x &&
-	    hw->mac.type != ixgbe_mac_X550EM_a) {
-		return -ENOTSUP;
-	}
-
-	qde = IXGBE_READ_REG(hw, IXGBE_QDE);
-	if (en)
-		qde |= IXGBE_QDE_STRIP_TAG;
-	else
-		qde &= ~IXGBE_QDE_STRIP_TAG;
-	qde &= ~IXGBE_QDE_READ;
-	qde |= IXGBE_QDE_WRITE;
-	IXGBE_WRITE_REG(hw, IXGBE_QDE, qde);
-
-	return ret;
-}
-
-/* Enable l2 tunnel tag stripping */
-static int
-ixgbe_dev_l2_tunnel_stripping_enable
-	(struct rte_eth_dev *dev,
-	 enum rte_eth_tunnel_type l2_tunnel_type)
-{
-	int ret = 0;
-
-	switch (l2_tunnel_type) {
-	case RTE_L2_TUNNEL_TYPE_E_TAG:
-		ret = ixgbe_e_tag_stripping_en_dis(dev, 1);
-		break;
-	default:
-		PMD_DRV_LOG(ERR, "Invalid tunnel type");
-		ret = -EINVAL;
-		break;
-	}
-
-	return ret;
-}
-
-/* Disable l2 tunnel tag stripping */
-static int
-ixgbe_dev_l2_tunnel_stripping_disable
-	(struct rte_eth_dev *dev,
-	 enum rte_eth_tunnel_type l2_tunnel_type)
-{
-	int ret = 0;
-
-	switch (l2_tunnel_type) {
-	case RTE_L2_TUNNEL_TYPE_E_TAG:
-		ret = ixgbe_e_tag_stripping_en_dis(dev, 0);
-		break;
-	default:
-		PMD_DRV_LOG(ERR, "Invalid tunnel type");
-		ret = -EINVAL;
-		break;
-	}
-
-	return ret;
-}
-
-/* Enable/disable l2 tunnel offload functions */
-static int
-ixgbe_dev_l2_tunnel_offload_set
-	(struct rte_eth_dev *dev,
-	 struct rte_eth_l2_tunnel_conf *l2_tunnel,
-	 uint32_t mask,
-	 uint8_t en)
-{
-	int ret = 0;
-
-	if (l2_tunnel == NULL)
-		return -EINVAL;
-
-	ret = -EINVAL;
-	if (mask & ETH_L2_TUNNEL_ENABLE_MASK) {
-		if (en)
-			ret = ixgbe_dev_l2_tunnel_enable(
-				dev,
-				l2_tunnel->l2_tunnel_type);
-		else
-			ret = ixgbe_dev_l2_tunnel_disable(
-				dev,
-				l2_tunnel->l2_tunnel_type);
-	}
-
-	if (mask & ETH_L2_TUNNEL_INSERTION_MASK) {
-		if (en)
-			ret = ixgbe_dev_l2_tunnel_insertion_enable(
-				dev,
-				l2_tunnel);
-		else
-			ret = ixgbe_dev_l2_tunnel_insertion_disable(
-				dev,
-				l2_tunnel);
-	}
-
-	if (mask & ETH_L2_TUNNEL_STRIPPING_MASK) {
-		if (en)
-			ret = ixgbe_dev_l2_tunnel_stripping_enable(
-				dev,
-				l2_tunnel->l2_tunnel_type);
-		else
-			ret = ixgbe_dev_l2_tunnel_stripping_disable(
-				dev,
-				l2_tunnel->l2_tunnel_type);
-	}
-
-	if (mask & ETH_L2_TUNNEL_FORWARDING_MASK) {
-		if (en)
-			ret = ixgbe_dev_l2_tunnel_forwarding_enable(
-				dev,
-				l2_tunnel->l2_tunnel_type);
-		else
-			ret = ixgbe_dev_l2_tunnel_forwarding_disable(
-				dev,
-				l2_tunnel->l2_tunnel_type);
-	}
-
-	return ret;
-}
-
 static int
 ixgbe_update_vxlan_port(struct ixgbe_hw *hw,
 			uint16_t port)
diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index e5d0a18feb..c8f25f7c89 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -5317,38 +5317,6 @@ rte_eth_dev_get_dcb_info(uint16_t port_id,
 	return eth_err(port_id, (*dev->dev_ops->get_dcb_info)(dev, dcb_info));
 }
 
-int
-rte_eth_dev_l2_tunnel_offload_set(uint16_t port_id,
-				  struct rte_eth_l2_tunnel_conf *l2_tunnel,
-				  uint32_t mask,
-				  uint8_t en)
-{
-	struct rte_eth_dev *dev;
-
-	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
-
-	if (l2_tunnel == NULL) {
-		RTE_ETHDEV_LOG(ERR, "Invalid l2_tunnel parameter\n");
-		return -EINVAL;
-	}
-
-	if (l2_tunnel->l2_tunnel_type >= RTE_TUNNEL_TYPE_MAX) {
-		RTE_ETHDEV_LOG(ERR, "Invalid tunnel type\n");
-		return -EINVAL;
-	}
-
-	if (mask == 0) {
-		RTE_ETHDEV_LOG(ERR, "Mask should have a value\n");
-		return -EINVAL;
-	}
-
-	dev = &rte_eth_devices[port_id];
-	RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->l2_tunnel_offload_set,
-				-ENOTSUP);
-	return eth_err(port_id, (*dev->dev_ops->l2_tunnel_offload_set)(dev,
-							l2_tunnel, mask, en));
-}
-
 static void
 eth_dev_adjust_nb_desc(uint16_t *nb_desc,
 		const struct rte_eth_desc_lim *desc_lim)
diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index dda75a82b3..ca694b793e 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -4627,36 +4627,6 @@ __rte_experimental
 int
 rte_eth_read_clock(uint16_t port_id, uint64_t *clock);
 
-/**
- * Enable/disable l2 tunnel offload functions. Include,
- * 1, The ability of parsing a type of l2 tunnel of an Ethernet device.
- *    Filtering, forwarding and offloading this type of tunnel packets depend on
- *    this ability.
- * 2, Stripping the l2 tunnel tag.
- * 3, Insertion of the l2 tunnel tag.
- * 4, Forwarding the packets based on the l2 tunnel tag.
- *
- * @param port_id
- *   The port identifier of the Ethernet device.
- * @param l2_tunnel
- *   l2 tunnel parameters.
- * @param mask
- *   Indicate the offload function.
- * @param en
- *   Enable or disable this function.
- *
- * @return
- *   - (0) if successful.
- *   - (-ENODEV) if port identifier is invalid.
- *   - (-EIO) if device is removed.
- *   - (-ENOTSUP) if hardware doesn't support tunnel type.
- */
-int
-rte_eth_dev_l2_tunnel_offload_set(uint16_t port_id,
-				  struct rte_eth_l2_tunnel_conf *l2_tunnel,
-				  uint32_t mask,
-				  uint8_t en);
-
 /**
 * Get the port id from device name. The device name should be specified
 * as below:
diff --git a/lib/librte_ethdev/rte_ethdev_driver.h b/lib/librte_ethdev/rte_ethdev_driver.h
index a69793dcb1..0eacfd8425 100644
--- a/lib/librte_ethdev/rte_ethdev_driver.h
+++ b/lib/librte_ethdev/rte_ethdev_driver.h
@@ -465,13 +465,6 @@ typedef int (*eth_get_module_eeprom_t)(struct rte_eth_dev *dev,
 				       struct rte_dev_eeprom_info *info);
 /**< @internal Retrieve plugin module eeprom data */
 
-typedef int (*eth_l2_tunnel_offload_set_t)
-	(struct rte_eth_dev *dev,
-	 struct rte_eth_l2_tunnel_conf *l2_tunnel,
-	 uint32_t mask,
-	 uint8_t en);
-/**< @internal enable/disable the l2 tunnel offload functions */
-
 /**
  * Feature filter types
  */
@@ -849,8 +842,6 @@ struct eth_dev_ops {
 
 	eth_udp_tunnel_port_add_t  udp_tunnel_port_add; /** Add UDP tunnel port. */
 	eth_udp_tunnel_port_del_t  udp_tunnel_port_del; /** Del UDP tunnel port. */
-	eth_l2_tunnel_offload_set_t   l2_tunnel_offload_set;
-	/** Enable/disable l2 tunnel offload functions. */
 
 	eth_set_queue_rate_limit_t set_queue_rate_limit; /**< Set queue rate limit. */
 
diff --git a/lib/librte_ethdev/version.map b/lib/librte_ethdev/version.map
index 63f077a3eb..d3f5410806 100644
--- a/lib/librte_ethdev/version.map
+++ b/lib/librte_ethdev/version.map
@@ -30,7 +30,6 @@ DPDK_21 {
 	rte_eth_dev_get_vlan_offload;
 	rte_eth_dev_info_get;
 	rte_eth_dev_is_valid_port;
-	rte_eth_dev_l2_tunnel_offload_set;
 	rte_eth_dev_logtype;
 	rte_eth_dev_mac_addr_add;
 	rte_eth_dev_mac_addr_remove;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [dpdk-dev] [PATCH 3/3] ethdev: move L2 tunnel config structure to ixgbe driver
  2020-10-22 10:06 [dpdk-dev] [PATCH 0/3] ethdev: remove L2 tunnel config API Andrew Rybchenko
  2020-10-22 10:06 ` [dpdk-dev] [PATCH 1/3] ethdev: remove API to config L2 tunnel EtherType Andrew Rybchenko
  2020-10-22 10:06 ` [dpdk-dev] [PATCH 2/3] ethdev: remove L2 tunnel offload control API Andrew Rybchenko
@ 2020-10-22 10:06 ` Andrew Rybchenko
  2020-10-23  2:12   ` Wang, Haiyue
  2020-10-29 22:49 ` [dpdk-dev] [PATCH 0/3] ethdev: remove L2 tunnel config API Ferruh Yigit
  3 siblings, 1 reply; 11+ messages in thread
From: Andrew Rybchenko @ 2020-10-22 10:06 UTC (permalink / raw)
  To: Jeff Guo, Haiyue Wang, Thomas Monjalon, Ferruh Yigit, Andrew Rybchenko
  Cc: dev

net/ixgbe driver is the only user of the struct rte_eth_l2_tunnel_conf.
Move it to the driver and use ixgbe_ prefix instead of rte_eth_.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 12 ++++-----
 drivers/net/ixgbe/ixgbe_ethdev.h | 16 ++++++++++--
 drivers/net/ixgbe/ixgbe_flow.c   | 42 ++++++++++++++++----------------
 lib/librte_ethdev/rte_eth_ctrl.h | 11 ---------
 4 files changed, 41 insertions(+), 40 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 9c91b8cde8..23baa5e9c5 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -7550,7 +7550,7 @@ ixgbe_e_tag_enable(struct ixgbe_hw *hw)
 
 static int
 ixgbe_e_tag_filter_del(struct rte_eth_dev *dev,
-		       struct rte_eth_l2_tunnel_conf *l2_tunnel)
+		       struct ixgbe_l2_tunnel_conf *l2_tunnel)
 {
 	int ret = 0;
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -7586,7 +7586,7 @@ ixgbe_e_tag_filter_del(struct rte_eth_dev *dev,
 
 static int
 ixgbe_e_tag_filter_add(struct rte_eth_dev *dev,
-		       struct rte_eth_l2_tunnel_conf *l2_tunnel)
+		       struct ixgbe_l2_tunnel_conf *l2_tunnel)
 {
 	int ret = 0;
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -7690,7 +7690,7 @@ ixgbe_remove_l2_tn_filter(struct ixgbe_l2_tn_info *l2_tn_info,
 /* Add l2 tunnel filter */
 int
 ixgbe_dev_l2_tunnel_filter_add(struct rte_eth_dev *dev,
-			       struct rte_eth_l2_tunnel_conf *l2_tunnel,
+			       struct ixgbe_l2_tunnel_conf *l2_tunnel,
 			       bool restore)
 {
 	int ret;
@@ -7747,7 +7747,7 @@ ixgbe_dev_l2_tunnel_filter_add(struct rte_eth_dev *dev,
 /* Delete l2 tunnel filter */
 int
 ixgbe_dev_l2_tunnel_filter_del(struct rte_eth_dev *dev,
-			       struct rte_eth_l2_tunnel_conf *l2_tunnel)
+			       struct ixgbe_l2_tunnel_conf *l2_tunnel)
 {
 	int ret;
 	struct ixgbe_l2_tn_info *l2_tn_info =
@@ -8169,7 +8169,7 @@ ixgbe_l2_tn_filter_restore(struct rte_eth_dev *dev)
 	struct ixgbe_l2_tn_info *l2_tn_info =
 		IXGBE_DEV_PRIVATE_TO_L2_TN_INFO(dev->data->dev_private);
 	struct ixgbe_l2_tn_filter *node;
-	struct rte_eth_l2_tunnel_conf l2_tn_conf;
+	struct ixgbe_l2_tunnel_conf l2_tn_conf;
 
 	TAILQ_FOREACH(node, &l2_tn_info->l2_tn_list, entries) {
 		l2_tn_conf.l2_tunnel_type = node->key.l2_tn_type;
@@ -8276,7 +8276,7 @@ ixgbe_clear_all_l2_tn_filter(struct rte_eth_dev *dev)
 	struct ixgbe_l2_tn_info *l2_tn_info =
 		IXGBE_DEV_PRIVATE_TO_L2_TN_INFO(dev->data->dev_private);
 	struct ixgbe_l2_tn_filter *l2_tn_filter;
-	struct rte_eth_l2_tunnel_conf l2_tn_conf;
+	struct ixgbe_l2_tunnel_conf l2_tn_conf;
 	int ret = 0;
 
 	while ((l2_tn_filter = TAILQ_FIRST(&l2_tn_info->l2_tn_list))) {
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
index a4f7d184b5..ff0ab78f5d 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.h
+++ b/drivers/net/ixgbe/ixgbe_ethdev.h
@@ -678,13 +678,25 @@ int ixgbe_add_del_ethertype_filter(struct rte_eth_dev *dev,
 int ixgbe_syn_filter_set(struct rte_eth_dev *dev,
 			struct rte_eth_syn_filter *filter,
 			bool add);
+
+/**
+ * l2 tunnel configuration.
+ */
+struct ixgbe_l2_tunnel_conf {
+	enum rte_eth_tunnel_type l2_tunnel_type;
+	uint16_t ether_type; /* ether type in l2 header */
+	uint32_t tunnel_id; /* port tag id for e-tag */
+	uint16_t vf_id; /* VF id for tag insertion */
+	uint32_t pool; /* destination pool for tag based forwarding */
+};
+
 int
 ixgbe_dev_l2_tunnel_filter_add(struct rte_eth_dev *dev,
-			       struct rte_eth_l2_tunnel_conf *l2_tunnel,
+			       struct ixgbe_l2_tunnel_conf *l2_tunnel,
 			       bool restore);
 int
 ixgbe_dev_l2_tunnel_filter_del(struct rte_eth_dev *dev,
-			       struct rte_eth_l2_tunnel_conf *l2_tunnel);
+			       struct ixgbe_l2_tunnel_conf *l2_tunnel);
 void ixgbe_filterlist_init(void);
 void ixgbe_filterlist_flush(void);
 /*
diff --git a/drivers/net/ixgbe/ixgbe_flow.c b/drivers/net/ixgbe/ixgbe_flow.c
index 6b3dea46ee..dff04c462c 100644
--- a/drivers/net/ixgbe/ixgbe_flow.c
+++ b/drivers/net/ixgbe/ixgbe_flow.c
@@ -72,7 +72,7 @@ struct ixgbe_fdir_rule_ele {
 /* l2_tunnel filter list structure */
 struct ixgbe_eth_l2_tunnel_conf_ele {
 	TAILQ_ENTRY(ixgbe_eth_l2_tunnel_conf_ele) entries;
-	struct rte_eth_l2_tunnel_conf filter_info;
+	struct ixgbe_l2_tunnel_conf filter_info;
 };
 /* rss filter list structure */
 struct ixgbe_rss_conf_ele {
@@ -1197,7 +1197,7 @@ cons_parse_l2_tn_filter(struct rte_eth_dev *dev,
 			const struct rte_flow_attr *attr,
 			const struct rte_flow_item pattern[],
 			const struct rte_flow_action actions[],
-			struct rte_eth_l2_tunnel_conf *filter,
+			struct ixgbe_l2_tunnel_conf *filter,
 			struct rte_flow_error *error)
 {
 	const struct rte_flow_item *item;
@@ -1231,7 +1231,7 @@ cons_parse_l2_tn_filter(struct rte_eth_dev *dev,
 	/* The first not void item should be e-tag. */
 	item = next_no_void_pattern(pattern, NULL);
 	if (item->type != RTE_FLOW_ITEM_TYPE_E_TAG) {
-		memset(filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+		memset(filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 		rte_flow_error_set(error, EINVAL,
 			RTE_FLOW_ERROR_TYPE_ITEM,
 			item, "Not supported by L2 tunnel filter");
@@ -1239,7 +1239,7 @@ cons_parse_l2_tn_filter(struct rte_eth_dev *dev,
 	}
 
 	if (!item->spec || !item->mask) {
-		memset(filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+		memset(filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 		rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ITEM,
 			item, "Not supported by L2 tunnel filter");
 		return -rte_errno;
@@ -1261,7 +1261,7 @@ cons_parse_l2_tn_filter(struct rte_eth_dev *dev,
 	    e_tag_mask->in_ecid_e ||
 	    e_tag_mask->ecid_e ||
 	    e_tag_mask->rsvd_grp_ecid_b != rte_cpu_to_be_16(0x3FFF)) {
-		memset(filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+		memset(filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 		rte_flow_error_set(error, EINVAL,
 			RTE_FLOW_ERROR_TYPE_ITEM,
 			item, "Not supported by L2 tunnel filter");
@@ -1278,7 +1278,7 @@ cons_parse_l2_tn_filter(struct rte_eth_dev *dev,
 	/* check if the next not void item is END */
 	item = next_no_void_pattern(pattern, item);
 	if (item->type != RTE_FLOW_ITEM_TYPE_END) {
-		memset(filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+		memset(filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 		rte_flow_error_set(error, EINVAL,
 			RTE_FLOW_ERROR_TYPE_ITEM,
 			item, "Not supported by L2 tunnel filter");
@@ -1288,7 +1288,7 @@ cons_parse_l2_tn_filter(struct rte_eth_dev *dev,
 	/* parse attr */
 	/* must be input direction */
 	if (!attr->ingress) {
-		memset(filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+		memset(filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 		rte_flow_error_set(error, EINVAL,
 			RTE_FLOW_ERROR_TYPE_ATTR_INGRESS,
 			attr, "Only support ingress.");
@@ -1297,7 +1297,7 @@ cons_parse_l2_tn_filter(struct rte_eth_dev *dev,
 
 	/* not supported */
 	if (attr->egress) {
-		memset(filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+		memset(filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 		rte_flow_error_set(error, EINVAL,
 			RTE_FLOW_ERROR_TYPE_ATTR_EGRESS,
 			attr, "Not support egress.");
@@ -1306,7 +1306,7 @@ cons_parse_l2_tn_filter(struct rte_eth_dev *dev,
 
 	/* not supported */
 	if (attr->transfer) {
-		memset(filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+		memset(filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 		rte_flow_error_set(error, EINVAL,
 			RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER,
 			attr, "No support for transfer.");
@@ -1315,7 +1315,7 @@ cons_parse_l2_tn_filter(struct rte_eth_dev *dev,
 
 	/* not supported */
 	if (attr->priority) {
-		memset(filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+		memset(filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 		rte_flow_error_set(error, EINVAL,
 			RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY,
 			attr, "Not support priority.");
@@ -1326,7 +1326,7 @@ cons_parse_l2_tn_filter(struct rte_eth_dev *dev,
 	act = next_no_void_action(actions, NULL);
 	if (act->type != RTE_FLOW_ACTION_TYPE_VF &&
 			act->type != RTE_FLOW_ACTION_TYPE_PF) {
-		memset(filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+		memset(filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 		rte_flow_error_set(error, EINVAL,
 			RTE_FLOW_ERROR_TYPE_ACTION,
 			act, "Not supported action.");
@@ -1343,7 +1343,7 @@ cons_parse_l2_tn_filter(struct rte_eth_dev *dev,
 	/* check if the next not void item is END */
 	act = next_no_void_action(actions, act);
 	if (act->type != RTE_FLOW_ACTION_TYPE_END) {
-		memset(filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+		memset(filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 		rte_flow_error_set(error, EINVAL,
 			RTE_FLOW_ERROR_TYPE_ACTION,
 			act, "Not supported action.");
@@ -1358,7 +1358,7 @@ ixgbe_parse_l2_tn_filter(struct rte_eth_dev *dev,
 			const struct rte_flow_attr *attr,
 			const struct rte_flow_item pattern[],
 			const struct rte_flow_action actions[],
-			struct rte_eth_l2_tunnel_conf *l2_tn_filter,
+			struct ixgbe_l2_tunnel_conf *l2_tn_filter,
 			struct rte_flow_error *error)
 {
 	int ret = 0;
@@ -1372,7 +1372,7 @@ ixgbe_parse_l2_tn_filter(struct rte_eth_dev *dev,
 	if (hw->mac.type != ixgbe_mac_X550 &&
 		hw->mac.type != ixgbe_mac_X550EM_x &&
 		hw->mac.type != ixgbe_mac_X550EM_a) {
-		memset(l2_tn_filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+		memset(l2_tn_filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 		rte_flow_error_set(error, EINVAL,
 			RTE_FLOW_ERROR_TYPE_ITEM,
 			NULL, "Not supported by L2 tunnel filter");
@@ -3023,7 +3023,7 @@ ixgbe_flow_create(struct rte_eth_dev *dev,
 	struct rte_eth_ethertype_filter ethertype_filter;
 	struct rte_eth_syn_filter syn_filter;
 	struct ixgbe_fdir_rule fdir_rule;
-	struct rte_eth_l2_tunnel_conf l2_tn_filter;
+	struct ixgbe_l2_tunnel_conf l2_tn_filter;
 	struct ixgbe_hw_fdir_info *fdir_info =
 		IXGBE_DEV_PRIVATE_TO_FDIR_INFO(dev->data->dev_private);
 	struct ixgbe_rte_flow_rss_conf rss_conf;
@@ -3211,7 +3211,7 @@ ixgbe_flow_create(struct rte_eth_dev *dev,
 		goto out;
 	}
 
-	memset(&l2_tn_filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+	memset(&l2_tn_filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 	ret = ixgbe_parse_l2_tn_filter(dev, attr, pattern,
 					actions, &l2_tn_filter, error);
 	if (!ret) {
@@ -3225,7 +3225,7 @@ ixgbe_flow_create(struct rte_eth_dev *dev,
 			}
 			rte_memcpy(&l2_tn_filter_ptr->filter_info,
 				&l2_tn_filter,
-				sizeof(struct rte_eth_l2_tunnel_conf));
+				sizeof(struct ixgbe_l2_tunnel_conf));
 			TAILQ_INSERT_TAIL(&filter_l2_tunnel_list,
 				l2_tn_filter_ptr, entries);
 			flow->rule = l2_tn_filter_ptr;
@@ -3282,7 +3282,7 @@ ixgbe_flow_validate(struct rte_eth_dev *dev,
 	struct rte_eth_ntuple_filter ntuple_filter;
 	struct rte_eth_ethertype_filter ethertype_filter;
 	struct rte_eth_syn_filter syn_filter;
-	struct rte_eth_l2_tunnel_conf l2_tn_filter;
+	struct ixgbe_l2_tunnel_conf l2_tn_filter;
 	struct ixgbe_fdir_rule fdir_rule;
 	struct ixgbe_rte_flow_rss_conf rss_conf;
 	int ret;
@@ -3311,7 +3311,7 @@ ixgbe_flow_validate(struct rte_eth_dev *dev,
 	if (!ret)
 		return 0;
 
-	memset(&l2_tn_filter, 0, sizeof(struct rte_eth_l2_tunnel_conf));
+	memset(&l2_tn_filter, 0, sizeof(struct ixgbe_l2_tunnel_conf));
 	ret = ixgbe_parse_l2_tn_filter(dev, attr, pattern,
 				actions, &l2_tn_filter, error);
 	if (!ret)
@@ -3337,7 +3337,7 @@ ixgbe_flow_destroy(struct rte_eth_dev *dev,
 	struct rte_eth_ethertype_filter ethertype_filter;
 	struct rte_eth_syn_filter syn_filter;
 	struct ixgbe_fdir_rule fdir_rule;
-	struct rte_eth_l2_tunnel_conf l2_tn_filter;
+	struct ixgbe_l2_tunnel_conf l2_tn_filter;
 	struct ixgbe_ntuple_filter_ele *ntuple_filter_ptr;
 	struct ixgbe_ethertype_filter_ele *ethertype_filter_ptr;
 	struct ixgbe_eth_syn_filter_ele *syn_filter_ptr;
@@ -3407,7 +3407,7 @@ ixgbe_flow_destroy(struct rte_eth_dev *dev,
 		l2_tn_filter_ptr = (struct ixgbe_eth_l2_tunnel_conf_ele *)
 				pmd_flow->rule;
 		rte_memcpy(&l2_tn_filter, &l2_tn_filter_ptr->filter_info,
-			sizeof(struct rte_eth_l2_tunnel_conf));
+			sizeof(struct ixgbe_l2_tunnel_conf));
 		ret = ixgbe_dev_l2_tunnel_filter_del(dev, &l2_tn_filter);
 		if (!ret) {
 			TAILQ_REMOVE(&filter_l2_tunnel_list,
diff --git a/lib/librte_ethdev/rte_eth_ctrl.h b/lib/librte_ethdev/rte_eth_ctrl.h
index 012e8059ad..1cca522fa3 100644
--- a/lib/librte_ethdev/rte_eth_ctrl.h
+++ b/lib/librte_ethdev/rte_eth_ctrl.h
@@ -486,17 +486,6 @@ struct rte_eth_fdir_stats {
 	uint32_t best_cnt;     /**< Number of filters in best effort spaces. */
 };
 
-/**
- * l2 tunnel configuration.
- */
-struct rte_eth_l2_tunnel_conf {
-	enum rte_eth_tunnel_type l2_tunnel_type;
-	uint16_t ether_type; /* ether type in l2 header */
-	uint32_t tunnel_id; /* port tag id for e-tag */
-	uint16_t vf_id; /* VF id for tag insertion */
-	uint32_t pool; /* destination pool for tag based forwarding */
-};
-
 #ifdef __cplusplus
 }
 #endif
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH 1/3] ethdev: remove API to config L2 tunnel EtherType
  2020-10-22 10:06 ` [dpdk-dev] [PATCH 1/3] ethdev: remove API to config L2 tunnel EtherType Andrew Rybchenko
@ 2020-10-23  2:09   ` Wang, Haiyue
  2020-10-23  3:07     ` Guo, Jia
  0 siblings, 1 reply; 11+ messages in thread
From: Wang, Haiyue @ 2020-10-23  2:09 UTC (permalink / raw)
  To: Andrew Rybchenko, Lu, Wenzhuo, Xing, Beilei, Iremonger, Bernard,
	Ray Kinsella, Neil Horman, Guo, Jia, Thomas Monjalon, Yigit,
	Ferruh, Andrew Rybchenko
  Cc: dev

> -----Original Message-----
> From: Andrew Rybchenko <arybchenko@solarflare.com>
> Sent: Thursday, October 22, 2020 18:06
> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Iremonger, Bernard
> <bernard.iremonger@intel.com>; Ray Kinsella <mdr@ashroe.eu>; Neil Horman <nhorman@tuxdriver.com>; Guo,
> Jia <jia.guo@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>; Thomas Monjalon <thomas@monjalon.net>;
> Yigit, Ferruh <ferruh.yigit@intel.com>; Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> Cc: dev@dpdk.org
> Subject: [PATCH 1/3] ethdev: remove API to config L2 tunnel EtherType
> 
> Remove rte_eth_dev_l2_tunnel_eth_type_conf() and corresponding
> ethdev driver operation.
> 
> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
> ---
>  app/test-pmd/cmdline.c                      | 122 --------------------
>  doc/guides/nics/features.rst                |   1 -
>  doc/guides/rel_notes/deprecation.rst        |   2 +-
>  doc/guides/rel_notes/release_20_11.rst      |   3 +
>  doc/guides/testpmd_app_ug/testpmd_funcs.rst |   4 -
>  drivers/net/ixgbe/ixgbe_ethdev.c            |  30 -----

Acked-by: Haiyue Wang <haiyue.wang@intel.com>

@Guo, Jia Even not supported via flow API, we should drop
it firstly, what do you think ?

>  lib/librte_ethdev/rte_ethdev.c              |  24 ----
>  lib/librte_ethdev/rte_ethdev.h              |  19 ---
>  lib/librte_ethdev/rte_ethdev_driver.h       |   6 -
>  lib/librte_ethdev/version.map               |   1 -
>  10 files changed, 4 insertions(+), 208 deletions(-)
> 



> --
> 2.17.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] ethdev: remove L2 tunnel offload control API
  2020-10-22 10:06 ` [dpdk-dev] [PATCH 2/3] ethdev: remove L2 tunnel offload control API Andrew Rybchenko
@ 2020-10-23  2:11   ` Wang, Haiyue
  2020-10-23  3:07     ` Guo, Jia
  0 siblings, 1 reply; 11+ messages in thread
From: Wang, Haiyue @ 2020-10-23  2:11 UTC (permalink / raw)
  To: Andrew Rybchenko, Lu, Wenzhuo, Xing, Beilei, Iremonger, Bernard,
	Ray Kinsella, Neil Horman, Guo, Jia, Thomas Monjalon, Yigit,
	Ferruh, Andrew Rybchenko
  Cc: dev

> -----Original Message-----
> From: Andrew Rybchenko <arybchenko@solarflare.com>
> Sent: Thursday, October 22, 2020 18:06
> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Iremonger, Bernard
> <bernard.iremonger@intel.com>; Ray Kinsella <mdr@ashroe.eu>; Neil Horman <nhorman@tuxdriver.com>; Guo,
> Jia <jia.guo@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>; Thomas Monjalon <thomas@monjalon.net>;
> Yigit, Ferruh <ferruh.yigit@intel.com>; Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> Cc: dev@dpdk.org
> Subject: [PATCH 2/3] ethdev: remove L2 tunnel offload control API
> 
> Remove rte_eth_dev_l2_tunnel_offload_set() and corresponding
> ethdev driver operation.
> 
> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
> ---
>  app/test-pmd/cmdline.c                      | 455 --------------------
>  doc/guides/nics/features.rst                |   2 -
>  doc/guides/rel_notes/deprecation.rst        |   6 -
>  doc/guides/rel_notes/release_20_11.rst      |   3 +-
>  doc/guides/testpmd_app_ug/testpmd_funcs.rst |   7 -
>  drivers/net/ixgbe/ixgbe_ethdev.c            | 333 --------------

Acked-by: Haiyue Wang <haiyue.wang@intel.com>

@Jeff Even not supported via flow API, we should drop
it firstly, what do you think ?

>  lib/librte_ethdev/rte_ethdev.c              |  32 --
>  lib/librte_ethdev/rte_ethdev.h              |  30 --
>  lib/librte_ethdev/rte_ethdev_driver.h       |   9 -
>  lib/librte_ethdev/version.map               |   1 -
>  10 files changed, 2 insertions(+), 876 deletions(-)


> 2.17.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH 3/3] ethdev: move L2 tunnel config structure to ixgbe driver
  2020-10-22 10:06 ` [dpdk-dev] [PATCH 3/3] ethdev: move L2 tunnel config structure to ixgbe driver Andrew Rybchenko
@ 2020-10-23  2:12   ` Wang, Haiyue
  2020-10-23  3:10     ` Guo, Jia
  0 siblings, 1 reply; 11+ messages in thread
From: Wang, Haiyue @ 2020-10-23  2:12 UTC (permalink / raw)
  To: Andrew Rybchenko, Guo, Jia, Thomas Monjalon, Yigit, Ferruh,
	Andrew Rybchenko
  Cc: dev

> -----Original Message-----
> From: Andrew Rybchenko <arybchenko@solarflare.com>
> Sent: Thursday, October 22, 2020 18:06
> To: Guo, Jia <jia.guo@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>; Thomas Monjalon
> <thomas@monjalon.net>; Yigit, Ferruh <ferruh.yigit@intel.com>; Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru>
> Cc: dev@dpdk.org
> Subject: [PATCH 3/3] ethdev: move L2 tunnel config structure to ixgbe driver
> 
> net/ixgbe driver is the only user of the struct rte_eth_l2_tunnel_conf.
> Move it to the driver and use ixgbe_ prefix instead of rte_eth_.
> 
> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
> ---
>  drivers/net/ixgbe/ixgbe_ethdev.c | 12 ++++-----
>  drivers/net/ixgbe/ixgbe_ethdev.h | 16 ++++++++++--
>  drivers/net/ixgbe/ixgbe_flow.c   | 42 ++++++++++++++++----------------
>  lib/librte_ethdev/rte_eth_ctrl.h | 11 ---------
>  4 files changed, 41 insertions(+), 40 deletions(-)

Acked-by: Haiyue Wang <haiyue.wang@intel.com>


> --
> 2.17.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH 1/3] ethdev: remove API to config L2 tunnel EtherType
  2020-10-23  2:09   ` Wang, Haiyue
@ 2020-10-23  3:07     ` Guo, Jia
  0 siblings, 0 replies; 11+ messages in thread
From: Guo, Jia @ 2020-10-23  3:07 UTC (permalink / raw)
  To: Wang, Haiyue, Andrew Rybchenko, Lu, Wenzhuo, Xing, Beilei,
	Iremonger, Bernard, Ray Kinsella, Neil Horman, Thomas Monjalon,
	Yigit, Ferruh, Andrew Rybchenko
  Cc: dev


> -----Original Message-----
> From: Wang, Haiyue <haiyue.wang@intel.com>
> Sent: Friday, October 23, 2020 10:10 AM
> To: Andrew Rybchenko <arybchenko@solarflare.com>; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Iremonger,
> Bernard <bernard.iremonger@intel.com>; Ray Kinsella <mdr@ashroe.eu>;
> Neil Horman <nhorman@tuxdriver.com>; Guo, Jia <jia.guo@intel.com>;
> Thomas Monjalon <thomas@monjalon.net>; Yigit, Ferruh
> <ferruh.yigit@intel.com>; Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH 1/3] ethdev: remove API to config L2 tunnel EtherType
> 
> > -----Original Message-----
> > From: Andrew Rybchenko <arybchenko@solarflare.com>
> > Sent: Thursday, October 22, 2020 18:06
> > To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Xing, Beilei
> > <beilei.xing@intel.com>; Iremonger, Bernard
> > <bernard.iremonger@intel.com>; Ray Kinsella <mdr@ashroe.eu>; Neil
> > Horman <nhorman@tuxdriver.com>; Guo, Jia <jia.guo@intel.com>; Wang,
> > Haiyue <haiyue.wang@intel.com>; Thomas Monjalon
> <thomas@monjalon.net>;
> > Yigit, Ferruh <ferruh.yigit@intel.com>; Andrew Rybchenko
> > <andrew.rybchenko@oktetlabs.ru>
> > Cc: dev@dpdk.org
> > Subject: [PATCH 1/3] ethdev: remove API to config L2 tunnel EtherType
> >
> > Remove rte_eth_dev_l2_tunnel_eth_type_conf() and corresponding
> ethdev
> > driver operation.
> >
> > Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
> > ---
> >  app/test-pmd/cmdline.c                      | 122 --------------------
> >  doc/guides/nics/features.rst                |   1 -
> >  doc/guides/rel_notes/deprecation.rst        |   2 +-
> >  doc/guides/rel_notes/release_20_11.rst      |   3 +
> >  doc/guides/testpmd_app_ug/testpmd_funcs.rst |   4 -
> >  drivers/net/ixgbe/ixgbe_ethdev.c            |  30 -----
> 
> Acked-by: Haiyue Wang <haiyue.wang@intel.com>
> 
> @Guo, Jia Even not supported via flow API, we should drop it firstly, what do
> you think ?
> 

Not bad. 
Thanks Andrew.
Acked-by: Jeff Guo <jia.guo@intel.com>

> >  lib/librte_ethdev/rte_ethdev.c              |  24 ----
> >  lib/librte_ethdev/rte_ethdev.h              |  19 ---
> >  lib/librte_ethdev/rte_ethdev_driver.h       |   6 -
> >  lib/librte_ethdev/version.map               |   1 -
> >  10 files changed, 4 insertions(+), 208 deletions(-)
> >
> 
> 
> 
> > --
> > 2.17.1
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] ethdev: remove L2 tunnel offload control API
  2020-10-23  2:11   ` Wang, Haiyue
@ 2020-10-23  3:07     ` Guo, Jia
  0 siblings, 0 replies; 11+ messages in thread
From: Guo, Jia @ 2020-10-23  3:07 UTC (permalink / raw)
  To: Wang, Haiyue, Andrew Rybchenko, Lu, Wenzhuo, Xing, Beilei,
	Iremonger, Bernard, Ray Kinsella, Neil Horman, Thomas Monjalon,
	Yigit, Ferruh, Andrew Rybchenko
  Cc: dev


> -----Original Message-----
> From: Wang, Haiyue <haiyue.wang@intel.com>
> Sent: Friday, October 23, 2020 10:12 AM
> To: Andrew Rybchenko <arybchenko@solarflare.com>; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Iremonger,
> Bernard <bernard.iremonger@intel.com>; Ray Kinsella <mdr@ashroe.eu>;
> Neil Horman <nhorman@tuxdriver.com>; Guo, Jia <jia.guo@intel.com>;
> Thomas Monjalon <thomas@monjalon.net>; Yigit, Ferruh
> <ferruh.yigit@intel.com>; Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH 2/3] ethdev: remove L2 tunnel offload control API
> 
> > -----Original Message-----
> > From: Andrew Rybchenko <arybchenko@solarflare.com>
> > Sent: Thursday, October 22, 2020 18:06
> > To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Xing, Beilei
> > <beilei.xing@intel.com>; Iremonger, Bernard
> > <bernard.iremonger@intel.com>; Ray Kinsella <mdr@ashroe.eu>; Neil
> > Horman <nhorman@tuxdriver.com>; Guo, Jia <jia.guo@intel.com>; Wang,
> > Haiyue <haiyue.wang@intel.com>; Thomas Monjalon
> <thomas@monjalon.net>;
> > Yigit, Ferruh <ferruh.yigit@intel.com>; Andrew Rybchenko
> > <andrew.rybchenko@oktetlabs.ru>
> > Cc: dev@dpdk.org
> > Subject: [PATCH 2/3] ethdev: remove L2 tunnel offload control API
> >
> > Remove rte_eth_dev_l2_tunnel_offload_set() and corresponding ethdev
> > driver operation.
> >
> > Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
> > ---
> >  app/test-pmd/cmdline.c                      | 455 --------------------
> >  doc/guides/nics/features.rst                |   2 -
> >  doc/guides/rel_notes/deprecation.rst        |   6 -
> >  doc/guides/rel_notes/release_20_11.rst      |   3 +-
> >  doc/guides/testpmd_app_ug/testpmd_funcs.rst |   7 -
> >  drivers/net/ixgbe/ixgbe_ethdev.c            | 333 --------------
> 
> Acked-by: Haiyue Wang <haiyue.wang@intel.com>
> 
> @Jeff Even not supported via flow API, we should drop it firstly, what do you
> think ?
> 

Not bad. 
Thanks Andrew.
Acked-by: Jeff Guo <jia.guo@intel.com>

> >  lib/librte_ethdev/rte_ethdev.c              |  32 --
> >  lib/librte_ethdev/rte_ethdev.h              |  30 --
> >  lib/librte_ethdev/rte_ethdev_driver.h       |   9 -
> >  lib/librte_ethdev/version.map               |   1 -
> >  10 files changed, 2 insertions(+), 876 deletions(-)
> 
> 
> > 2.17.1
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH 3/3] ethdev: move L2 tunnel config structure to ixgbe driver
  2020-10-23  2:12   ` Wang, Haiyue
@ 2020-10-23  3:10     ` Guo, Jia
  0 siblings, 0 replies; 11+ messages in thread
From: Guo, Jia @ 2020-10-23  3:10 UTC (permalink / raw)
  To: Wang, Haiyue, Andrew Rybchenko, Thomas Monjalon, Yigit, Ferruh,
	Andrew Rybchenko
  Cc: dev


> -----Original Message-----
> From: Wang, Haiyue <haiyue.wang@intel.com>
> Sent: Friday, October 23, 2020 10:13 AM
> To: Andrew Rybchenko <arybchenko@solarflare.com>; Guo, Jia
> <jia.guo@intel.com>; Thomas Monjalon <thomas@monjalon.net>; Yigit,
> Ferruh <ferruh.yigit@intel.com>; Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH 3/3] ethdev: move L2 tunnel config structure to ixgbe
> driver
> 
> > -----Original Message-----
> > From: Andrew Rybchenko <arybchenko@solarflare.com>
> > Sent: Thursday, October 22, 2020 18:06
> > To: Guo, Jia <jia.guo@intel.com>; Wang, Haiyue
> > <haiyue.wang@intel.com>; Thomas Monjalon <thomas@monjalon.net>;
> Yigit,
> > Ferruh <ferruh.yigit@intel.com>; Andrew Rybchenko
> > <andrew.rybchenko@oktetlabs.ru>
> > Cc: dev@dpdk.org
> > Subject: [PATCH 3/3] ethdev: move L2 tunnel config structure to ixgbe
> > driver
> >
> > net/ixgbe driver is the only user of the struct rte_eth_l2_tunnel_conf.
> > Move it to the driver and use ixgbe_ prefix instead of rte_eth_.
> >
> > Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
> > ---
> >  drivers/net/ixgbe/ixgbe_ethdev.c | 12 ++++-----
> > drivers/net/ixgbe/ixgbe_ethdev.h | 16 ++++++++++--
> >  drivers/net/ixgbe/ixgbe_flow.c   | 42 ++++++++++++++++----------------
> >  lib/librte_ethdev/rte_eth_ctrl.h | 11 ---------
> >  4 files changed, 41 insertions(+), 40 deletions(-)
> 
> Acked-by: Haiyue Wang <haiyue.wang@intel.com>

Please check if the apply issue is exist.
After that, please add my ack. Thanks Andrew.

> 
> 
> > --
> > 2.17.1
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3] ethdev: remove L2 tunnel config API
  2020-10-22 10:06 [dpdk-dev] [PATCH 0/3] ethdev: remove L2 tunnel config API Andrew Rybchenko
                   ` (2 preceding siblings ...)
  2020-10-22 10:06 ` [dpdk-dev] [PATCH 3/3] ethdev: move L2 tunnel config structure to ixgbe driver Andrew Rybchenko
@ 2020-10-29 22:49 ` Ferruh Yigit
  3 siblings, 0 replies; 11+ messages in thread
From: Ferruh Yigit @ 2020-10-29 22:49 UTC (permalink / raw)
  To: Andrew Rybchenko, Jeff Guo, Haiyue Wang; +Cc: dev

On 10/22/2020 11:06 AM, Andrew Rybchenko wrote:
> Dispite of the deprecation notice I'm not 100% sure that corresponding
> functionality is supported via flow API. Since the functionality is
> supported by the net/ixgbe driver only, it is a question to maintainers.
> 
> The patch series should be applied on top of [1].
> 
> [1] https://patches.dpdk.org/project/dpdk/list/?series=13207
> 
> Andrew Rybchenko (3):
>    ethdev: remove API to config L2 tunnel EtherType
>    ethdev: remove L2 tunnel offload control API
>    ethdev: move L2 tunnel config structure to ixgbe driver
> 

for series,
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

Series applied to dpdk-next-net/main, thanks.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-10-29 22:50 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-22 10:06 [dpdk-dev] [PATCH 0/3] ethdev: remove L2 tunnel config API Andrew Rybchenko
2020-10-22 10:06 ` [dpdk-dev] [PATCH 1/3] ethdev: remove API to config L2 tunnel EtherType Andrew Rybchenko
2020-10-23  2:09   ` Wang, Haiyue
2020-10-23  3:07     ` Guo, Jia
2020-10-22 10:06 ` [dpdk-dev] [PATCH 2/3] ethdev: remove L2 tunnel offload control API Andrew Rybchenko
2020-10-23  2:11   ` Wang, Haiyue
2020-10-23  3:07     ` Guo, Jia
2020-10-22 10:06 ` [dpdk-dev] [PATCH 3/3] ethdev: move L2 tunnel config structure to ixgbe driver Andrew Rybchenko
2020-10-23  2:12   ` Wang, Haiyue
2020-10-23  3:10     ` Guo, Jia
2020-10-29 22:49 ` [dpdk-dev] [PATCH 0/3] ethdev: remove L2 tunnel config API Ferruh Yigit

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.