src/dpdk/drivers/net/bnxt/tf_ulp/ulp_tun.c
void
ulp_clear_tun_inner_entry(struct bnxt_tun_cache_entry *tun_tbl, uint32_t fid)
{
	struct ulp_per_port_flow_info *flow_info;
	int i, j;

	for (i = 0; i < BNXT_ULP_MAX_TUN_CACHE_ENTRIES ; i++) {
		for (j = 0; j < RTE_MAX_ETHPORTS; j++) {
			flow_info = &tun_tbl[i].tun_flow_info[j];
			if (flow_info->first_tun_i_fid == fid &&
			    flow_info->state == BNXT_ULP_FLOW_STATE_TUN_I_CACHED)
				memset(flow_info, 0, sizeof(*flow_info));
		}
	}
}
/* When a dpdk application offloads the same tunnel inner flow
 * on all the uplink ports, a tunnel inner flow entry is cached
 * even if it is not for the right uplink port. Such tunnel
 * inner flows will eventually get aged out as there won't be
 * any traffic on these ports. When such a flow destroy is
 * called, cleanup the tunnel inner flow entry.
 */
When a dpdk application offloads the same tunnel inner flow
on all the uplink ports, a tunnel inner flow entry is cached
even if it is not for the right uplink port. Such tunnel
inner flows will eventually get aged out as there won't be
any traffic on these ports. When such a flow destroy is
called, cleanup the tunnel inner flow entry.
When a dpdk application offloads the same tunnel inner flow on all the uplink ports a tunnel inner flow entry is cached even if it is not for the right uplink port . Such tunnel inner flows will eventually get aged out as there won ' t be any traffic on these ports . When such a flow destroy is called cleanup the tunnel inner flow entry .
void
ulp_clear_tun_inner_entry(struct bnxt_tun_cache_entry *tun_tbl, uint32_t fid)
{
	struct ulp_per_port_flow_info *flow_info;
	int i, j;
	for (i = 0; i < BNXT_ULP_MAX_TUN_CACHE_ENTRIES ; i++) {
		for (j = 0; j < RTE_MAX_ETHPORTS; j++) {
			flow_info = &tun_tbl[i].tun_flow_info[j];
			if (flow_info->first_tun_i_fid == fid &&
			    flow_info->state == BNXT_ULP_FLOW_STATE_TUN_I_CACHED)
				memset(flow_info, 0, sizeof(*flow_info));
		}
	}
}
void ulp_clear_tun_inner_entry ( struct bnxt_tun_cache_entry * tun_tbl , uint32_t fid ) { struct ulp_per_port_flow_info * flow_info ; int i , j ; for ( i = 0 ; i < BNXT_ULP_MAX_TUN_CACHE_ENTRIES ; i ++ ) { for ( j = 0 ; j < RTE_MAX_ETHPORTS ; j ++ ) { flow_info = & tun_tbl [ i ] . tun_flow_info [ j ] ; if ( flow_info -> first_tun_i_fid == fid && flow_info -> state == BNXT_ULP_FLOW_STATE_TUN_I_CACHED ) memset ( flow_info , 0 , sizeof ( * flow_info ) ) ; } } }
When a dpdk application offloads the same tunnel inner flow
 on all the uplink ports, a tunnel inner flow entry is cached
 even if it is not for the right uplink port.
When a dpdk application offloads the same tunnel inner flow on all the uplink ports a tunnel inner flow entry is cached even if it is not for the right uplink port .