ethdev: remove legacy L2 tunnel filter type support

Instead of L2 tunnel filter RTE flow API should be used.

Preserve RTE_ETH_FILTER_L2_TUNNEL since it is used in drivers
internally in RTE flow API support.

rte_eth_l2_tunnel_conf structure is used in other ethdev API
functions.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Haiyue Wang <haiyue.wang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
Andrew Rybchenko 2020-10-22 10:42:33 +01:00 committed by Ferruh Yigit
parent 81db321dae
commit f0872e8754
5 changed files with 1 additions and 181 deletions

View File

@ -664,13 +664,6 @@ static void cmd_help_long_parsed(void *parsed_result,
" Enable/disable E-tag based forwarding"
" on a port\n\n"
"E-tag set filter add e-tag-id (value) dst-pool"
" (pool_id) port (port_id)\n"
" Add an E-tag forwarding filter on a port\n\n"
"E-tag set filter del e-tag-id (value) port (port_id)\n"
" Delete an E-tag forwarding filter on a port\n\n"
"ddp add (port_id) (profile_path[,backup_profile_path])\n"
" Load a profile package on a port\n\n"
@ -12199,120 +12192,6 @@ cmdline_parse_inst_t cmd_config_e_tag_forwarding_en_dis = {
},
};
/* E-tag filter configuration */
static void
cmd_config_e_tag_filter_add_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;
int ret = 0;
if (port_id_is_invalid(res->port_id, ENABLED_WARN))
return;
if (res->e_tag_id_val > 0x3fff) {
printf("e-tag-id must be equal or less than 0x3fff.\n");
return;
}
ret = rte_eth_dev_filter_supported(res->port_id,
RTE_ETH_FILTER_L2_TUNNEL);
if (ret < 0) {
printf("E-tag filter is not supported on port %u.\n",
res->port_id);
return;
}
entry.l2_tunnel_type = RTE_L2_TUNNEL_TYPE_E_TAG;
entry.tunnel_id = res->e_tag_id_val;
entry.pool = res->dst_pool_val;
ret = rte_eth_dev_filter_ctrl(res->port_id,
RTE_ETH_FILTER_L2_TUNNEL,
RTE_ETH_FILTER_ADD,
&entry);
if (ret < 0)
printf("E-tag filter programming error: (%s)\n",
strerror(-ret));
}
cmdline_parse_inst_t cmd_config_e_tag_filter_add = {
.f = cmd_config_e_tag_filter_add_parsed,
.data = NULL,
.help_str = "E-tag ... : E-tag filter add",
.tokens = {
(void *)&cmd_config_e_tag_e_tag,
(void *)&cmd_config_e_tag_set,
(void *)&cmd_config_e_tag_filter,
(void *)&cmd_config_e_tag_add,
(void *)&cmd_config_e_tag_e_tag_id,
(void *)&cmd_config_e_tag_e_tag_id_val,
(void *)&cmd_config_e_tag_dst_pool,
(void *)&cmd_config_e_tag_dst_pool_val,
(void *)&cmd_config_e_tag_port,
(void *)&cmd_config_e_tag_port_id,
NULL,
},
};
static void
cmd_config_e_tag_filter_del_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;
int ret = 0;
if (port_id_is_invalid(res->port_id, ENABLED_WARN))
return;
if (res->e_tag_id_val > 0x3fff) {
printf("e-tag-id must be less than 0x3fff.\n");
return;
}
ret = rte_eth_dev_filter_supported(res->port_id,
RTE_ETH_FILTER_L2_TUNNEL);
if (ret < 0) {
printf("E-tag filter is not supported on port %u.\n",
res->port_id);
return;
}
entry.l2_tunnel_type = RTE_L2_TUNNEL_TYPE_E_TAG;
entry.tunnel_id = res->e_tag_id_val;
ret = rte_eth_dev_filter_ctrl(res->port_id,
RTE_ETH_FILTER_L2_TUNNEL,
RTE_ETH_FILTER_DELETE,
&entry);
if (ret < 0)
printf("E-tag filter programming error: (%s)\n",
strerror(-ret));
}
cmdline_parse_inst_t cmd_config_e_tag_filter_del = {
.f = cmd_config_e_tag_filter_del_parsed,
.data = NULL,
.help_str = "E-tag ... : E-tag filter delete",
.tokens = {
(void *)&cmd_config_e_tag_e_tag,
(void *)&cmd_config_e_tag_set,
(void *)&cmd_config_e_tag_filter,
(void *)&cmd_config_e_tag_del,
(void *)&cmd_config_e_tag_e_tag_id,
(void *)&cmd_config_e_tag_e_tag_id_val,
(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 */
@ -18621,8 +18500,6 @@ cmdline_parse_ctx_t main_ctx[] = {
(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_config_e_tag_filter_add,
(cmdline_parse_inst_t *)&cmd_config_e_tag_filter_del,
(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,

View File

@ -91,8 +91,7 @@ Deprecation Notices
* ethdev: the legacy filter API, including
``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well
as filter types FDIR
and L2_TUNNEL, is superseded by the generic flow API (rte_flow) in
as filter types FDIR, is superseded by the generic flow API (rte_flow) in
PMDs that implement the latter.
The legacy API will be removed in DPDK 20.11.

View File

@ -1709,13 +1709,6 @@ Enable/disable E-tag based forwarding on a port::
testpmd> E-tag set forwarding (on|off) port (port_id)
Add an E-tag forwarding filter on a port::
testpmd> E-tag set filter add e-tag-id (value) dst-pool (pool_id) port (port_id)
Delete an E-tag forwarding filter on a port::
testpmd> E-tag set filter del e-tag-id (value) port (port_id)
ddp add
~~~~~~~

View File

@ -355,9 +355,6 @@ static int ixgbe_dev_l2_tunnel_offload_set
struct rte_eth_l2_tunnel_conf *l2_tunnel,
uint32_t mask,
uint8_t en);
static int ixgbe_dev_l2_tunnel_filter_handle(struct rte_eth_dev *dev,
enum rte_filter_op filter_op,
void *arg);
static int ixgbe_dev_udp_tunnel_port_add(struct rte_eth_dev *dev,
struct rte_eth_udp_tunnel *udp_tunnel);
@ -6820,9 +6817,6 @@ ixgbe_dev_filter_ctrl(struct rte_eth_dev *dev,
case RTE_ETH_FILTER_FDIR:
ret = ixgbe_fdir_ctrl_func(dev, filter_op, arg);
break;
case RTE_ETH_FILTER_L2_TUNNEL:
ret = ixgbe_dev_l2_tunnel_filter_handle(dev, filter_op, arg);
break;
case RTE_ETH_FILTER_GENERIC:
if (filter_op != RTE_ETH_FILTER_GET)
return -EINVAL;
@ -7894,48 +7888,6 @@ ixgbe_dev_l2_tunnel_filter_del(struct rte_eth_dev *dev,
return ret;
}
/**
* ixgbe_dev_l2_tunnel_filter_handle - Handle operations for l2 tunnel filter.
* @dev: pointer to rte_eth_dev structure
* @filter_op:operation will be taken.
* @arg: a pointer to specific structure corresponding to the filter_op
*/
static int
ixgbe_dev_l2_tunnel_filter_handle(struct rte_eth_dev *dev,
enum rte_filter_op filter_op,
void *arg)
{
int ret;
if (filter_op == RTE_ETH_FILTER_NOP)
return 0;
if (arg == NULL) {
PMD_DRV_LOG(ERR, "arg shouldn't be NULL for operation %u.",
filter_op);
return -EINVAL;
}
switch (filter_op) {
case RTE_ETH_FILTER_ADD:
ret = ixgbe_dev_l2_tunnel_filter_add
(dev,
(struct rte_eth_l2_tunnel_conf *)arg,
FALSE);
break;
case RTE_ETH_FILTER_DELETE:
ret = ixgbe_dev_l2_tunnel_filter_del
(dev,
(struct rte_eth_l2_tunnel_conf *)arg);
break;
default:
PMD_DRV_LOG(ERR, "unsupported operation %u.", filter_op);
ret = -EINVAL;
break;
}
return ret;
}
static int
ixgbe_e_tag_forwarding_en_dis(struct rte_eth_dev *dev, bool en)
{

View File

@ -1241,7 +1241,6 @@ int qede_dev_filter_ctrl(struct rte_eth_dev *eth_dev,
*(const void **)arg = &qede_flow_ops;
return 0;
case RTE_ETH_FILTER_L2_TUNNEL:
case RTE_ETH_FILTER_MAX:
default:
DP_ERR(edev, "Unsupported filter type %d\n",