src/dpdk/drivers/net/i40e/i40e_ethdev.c
int
i40e_sw_tunnel_filter_del(struct i40e_pf *pf,
			  struct i40e_tunnel_filter_input *input)
{
	struct i40e_tunnel_rule *rule = &pf->tunnel;
	struct i40e_tunnel_filter *tunnel_filter;
	int ret;

	ret = rte_hash_del_key(rule->hash_table, input);
	if (ret < 0) {
		PMD_DRV_LOG(ERR,
			    "Failed to delete tunnel filter to hash table %d!",
			    ret);
		return ret;
	}
	tunnel_filter = rule->hash_map[ret];
	rule->hash_map[ret] = NULL;

	TAILQ_REMOVE(&rule->tunnel_list, tunnel_filter, rules);
	rte_free(tunnel_filter);

	return 0;
}
/* Delete a tunnel filter from the SW list */
Delete a tunnel filter from the SW list
Delete a tunnel filter from the SW list
int
i40e_sw_tunnel_filter_del(struct i40e_pf *pf,
			  struct i40e_tunnel_filter_input *input)
{
	struct i40e_tunnel_rule *rule = &pf->tunnel;
	struct i40e_tunnel_filter *tunnel_filter;
	int ret;
	ret = rte_hash_del_key(rule->hash_table, input);
	if (ret < 0) {
		PMD_DRV_LOG(ERR,
			    "Failed to delete tunnel filter to hash table %d!",
			    ret);
		return ret;
	}
	tunnel_filter = rule->hash_map[ret];
	rule->hash_map[ret] = NULL;
	TAILQ_REMOVE(&rule->tunnel_list, tunnel_filter, rules);
	rte_free(tunnel_filter);
	return 0;
}
int i40e_sw_tunnel_filter_del ( struct i40e_pf * pf , struct i40e_tunnel_filter_input * input ) { struct i40e_tunnel_rule * rule = & pf -> tunnel ; struct i40e_tunnel_filter * tunnel_filter ; int ret ; ret = rte_hash_del_key ( rule -> hash_table , input ) ; if ( ret < 0 ) { PMD_DRV_LOG ( ERR , " " , ret ) ; return ret ; } tunnel_filter = rule -> hash_map [ ret ] ; rule -> hash_map [ ret ] = NULL ; TAILQ_REMOVE ( & rule -> tunnel_list , tunnel_filter , rules ) ; rte_free ( tunnel_filter ) ; return 0 ; }
Delete a tunnel filter from the SW list
Delete a tunnel filter from the SW list