Lines Matching refs:flow_act

217 		       struct mlx5_flow_act *flow_act,
221 flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;
230 struct mlx5_flow_act *flow_act,
235 flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;
245 esw_setup_accept_dest(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act,
249 flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;
255 esw_setup_slow_path_dest(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act,
259 flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;
266 struct mlx5_flow_act *flow_act,
273 flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;
311 struct mlx5_flow_act *flow_act,
329 err = esw_setup_chain_dest(dest, flow_act, chains, attr->dest_chain, 1, 0, *i);
334 flow_act->action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT;
335 flow_act->pkt_reformat = esw_attr->dests[esw_attr->split_count].pkt_reformat;
377 struct mlx5_flow_act *flow_act,
389 flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;
469 esw_setup_dest_fwd_vport(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act,
485 flow_act->action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT;
486 flow_act->pkt_reformat = esw_attr->dests[attr_idx].pkt_reformat;
494 esw_setup_dest_fwd_ipsec(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act,
502 flow_act->action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT;
503 flow_act->pkt_reformat = esw_attr->dests[attr_idx].pkt_reformat;
508 esw_setup_vport_dest(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act,
513 esw_setup_dest_fwd_ipsec(dest, flow_act, esw, esw_attr,
516 esw_setup_dest_fwd_vport(dest, flow_act, esw, esw_attr,
521 esw_setup_vport_dests(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act,
528 esw_setup_vport_dest(dest, flow_act, esw, esw_attr, j, i, true);
569 struct mlx5_flow_act *flow_act,
579 if (!mlx5_eswitch_termtbl_required(esw, attr, flow_act, spec) &&
584 esw_setup_slow_path_dest(dest, flow_act, esw, *i);
590 esw_setup_sampler_dest(dest, flow_act, attr->sample_attr.sampler_id, *i);
593 esw_setup_accept_dest(dest, flow_act, chains, *i);
599 err = esw_setup_indir_table(dest, flow_act, esw, attr, i);
601 err = esw_setup_chain_src_port_rewrite(dest, flow_act, esw, chains, attr, i);
603 *i = esw_setup_vport_dests(dest, flow_act, esw, esw_attr, *i);
606 err = esw_setup_ft_dest(dest, flow_act, esw, attr, *i);
609 err = esw_setup_chain_dest(dest, flow_act, chains, attr->dest_chain,
639 esw_setup_meter(struct mlx5_flow_attr *attr, struct mlx5_flow_act *flow_act)
644 flow_act->exe_aso.type = attr->exe_aso_type;
645 flow_act->exe_aso.object_id = meter->obj_id;
646 flow_act->exe_aso.flow_meter.meter_idx = meter->idx;
647 flow_act->exe_aso.flow_meter.init_color = MLX5_FLOW_METER_COLOR_GREEN;
649 flow_act->exe_aso.return_reg_id = 5;
657 struct mlx5_flow_act flow_act = { .flags = FLOW_ACT_NO_APPEND, };
680 flow_act.action = attr->action;
682 if (flow_act.action & MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH) {
683 flow_act.vlan[0].ethtype = ntohs(esw_attr->vlan_proto[0]);
684 flow_act.vlan[0].vid = esw_attr->vlan_vid[0];
685 flow_act.vlan[0].prio = esw_attr->vlan_prio[0];
686 if (flow_act.action & MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH_2) {
687 flow_act.vlan[1].ethtype = ntohs(esw_attr->vlan_proto[1]);
688 flow_act.vlan[1].vid = esw_attr->vlan_vid[1];
689 flow_act.vlan[1].prio = esw_attr->vlan_prio[1];
695 if (flow_act.action & MLX5_FLOW_CONTEXT_ACTION_FWD_DEST) {
698 err = esw_setup_dests(dest, &flow_act, esw, attr, spec, &i);
705 if ((flow_act.action & MLX5_FLOW_CONTEXT_ACTION_MOD_HDR) &&
715 flow_act.pkt_reformat = esw_attr->decap_pkt_reformat;
717 if (flow_act.action & MLX5_FLOW_CONTEXT_ACTION_COUNT) {
728 if (flow_act.action & MLX5_FLOW_CONTEXT_ACTION_MOD_HDR)
729 flow_act.modify_hdr = attr->modify_hdr;
731 if ((flow_act.action & MLX5_FLOW_CONTEXT_ACTION_EXECUTE_ASO) &&
733 esw_setup_meter(attr, &flow_act);
764 if (mlx5_eswitch_termtbl_required(esw, attr, &flow_act, spec))
766 &flow_act, dest, i);
768 rule = mlx5_add_flow_rules(fdb, spec, &flow_act, dest, i);
794 struct mlx5_flow_act flow_act = { .flags = FLOW_ACT_NO_APPEND, };
824 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
832 esw_setup_vport_dest(dest, &flow_act, esw, esw_attr, i, i, false);
850 flow_act.flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;
851 rule = mlx5_add_flow_rules(fast_fdb, spec, &flow_act, dest, i);
936 struct mlx5_flow_act flow_act = {0};
992 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
997 flow_act.flags = FLOW_ACT_IGNORE_FLOW_LEVEL;
1011 spec, &flow_act, &dest, 1);
1036 struct mlx5_flow_act flow_act = {0};
1053 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
1060 spec, &flow_act, &dest, 1);
1180 struct mlx5_flow_act flow_act = {0};
1206 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
1216 spec, &flow_act, &dest, 1);
1228 spec, &flow_act, &dest, 1);
1242 spec, &flow_act, &dest, 1);
1257 spec, &flow_act, &dest, 1);
1349 struct mlx5_flow_act flow_act = {0};
1374 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
1377 spec, &flow_act, &dest, 1);
1392 spec, &flow_act, &dest, 1);
1410 struct mlx5_flow_act flow_act = { .flags = FLOW_ACT_NO_APPEND, };
1433 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST |
1435 flow_act.modify_hdr = esw->offloads.restore_copy_hdr_id;
1443 flow_rule = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1);
2135 struct mlx5_flow_act flow_act = {0};
2147 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
2149 &flow_act, dest, 1);
2162 struct mlx5_flow_act flow_act = {};
2165 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_DROP;
2167 &flow_act, NULL, 0);
2675 struct mlx5_flow_act flow_act = {};
2695 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
2701 flow_rule = mlx5_add_flow_rules(acl, spec, &flow_act,