src/dpdk/drivers/net/bnxt/tf_ulp/ulp_tun.c
static void
ulp_install_inner_tun_flow(struct bnxt_tun_cache_entry *tun_entry,
			   struct ulp_rte_parser_params *tun_o_params)
{
	struct bnxt_ulp_mapper_create_parms mparms = { 0 };
	struct ulp_per_port_flow_info *flow_info;
	struct ulp_rte_parser_params *params;
	int ret;

	/* F2 doesn't have tunnel dmac, use the tunnel dmac that was
	 * stored during F1 programming.
	 */
	flow_info = &tun_entry->tun_flow_info[tun_o_params->port_id];
	params = &flow_info->first_inner_tun_params;
	memcpy(&params->hdr_field[ULP_TUN_O_DMAC_HDR_FIELD_INDEX],
	       tun_entry->t_dmac, RTE_ETHER_ADDR_LEN);
	params->parent_fid = tun_entry->outer_tun_flow_id;
	params->fid = flow_info->first_tun_i_fid;

	bnxt_ulp_init_mapper_params(&mparms, params,
				    BNXT_ULP_FDB_TYPE_REGULAR);

	ret = ulp_mapper_flow_create(params->ulp_ctx, &mparms);
	if (ret)
		PMD_DRV_LOG(ERR, "Failed to create F2 flow.");
}
/* This function programs the inner tunnel flow in the hardware. */
This function programs the inner tunnel flow in the hardware.
This function programs the inner tunnel flow in the hardware .
static void
ulp_install_inner_tun_flow(struct bnxt_tun_cache_entry *tun_entry,
			   struct ulp_rte_parser_params *tun_o_params)
{
	struct bnxt_ulp_mapper_create_parms mparms = { 0 };
	struct ulp_per_port_flow_info *flow_info;
	struct ulp_rte_parser_params *params;
	int ret;
	flow_info = &tun_entry->tun_flow_info[tun_o_params->port_id];
	params = &flow_info->first_inner_tun_params;
	memcpy(&params->hdr_field[ULP_TUN_O_DMAC_HDR_FIELD_INDEX],
	       tun_entry->t_dmac, RTE_ETHER_ADDR_LEN);
	params->parent_fid = tun_entry->outer_tun_flow_id;
	params->fid = flow_info->first_tun_i_fid;
	bnxt_ulp_init_mapper_params(&mparms, params,
				    BNXT_ULP_FDB_TYPE_REGULAR);
	ret = ulp_mapper_flow_create(params->ulp_ctx, &mparms);
	if (ret)
		PMD_DRV_LOG(ERR, "Failed to create F2 flow.");
}
static void ulp_install_inner_tun_flow ( struct bnxt_tun_cache_entry * tun_entry , struct ulp_rte_parser_params * tun_o_params ) { struct bnxt_ulp_mapper_create_parms mparms = { 0 } ; struct ulp_per_port_flow_info * flow_info ; struct ulp_rte_parser_params * params ; int ret ; flow_info = & tun_entry -> tun_flow_info [ tun_o_params -> port_id ] ; params = & flow_info -> first_inner_tun_params ; memcpy ( & params -> hdr_field [ ULP_TUN_O_DMAC_HDR_FIELD_INDEX ] , tun_entry -> t_dmac , RTE_ETHER_ADDR_LEN ) ; params -> parent_fid = tun_entry -> outer_tun_flow_id ; params -> fid = flow_info -> first_tun_i_fid ; bnxt_ulp_init_mapper_params ( & mparms , params , BNXT_ULP_FDB_TYPE_REGULAR ) ; ret = ulp_mapper_flow_create ( params -> ulp_ctx , & mparms ) ; if ( ret ) PMD_DRV_LOG ( ERR , " " ) ; }
This function programs the inner tunnel flow in the hardware.
This function programs the inner tunnel flow in the hardware .
/* F2 doesn't have tunnel dmac, use the tunnel dmac that was
	 * stored during F1 programming.
	 */