* [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 [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 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
* [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 [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 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
* [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 [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 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