Home
last modified time | relevance | path

Searched refs:flow_act (Results 1 – 25 of 34) sorted by relevance

12

/linux/drivers/net/ethernet/mellanox/mlx5/core/
H A Deswitch_offloads_termtbl.c13 struct mlx5_flow_act flow_act; member
21 mlx5_eswitch_termtbl_hash(struct mlx5_flow_act *flow_act, in mlx5_eswitch_termtbl_hash() argument
26 hash = jhash_1word(flow_act->action, 0); in mlx5_eswitch_termtbl_hash()
27 hash = jhash((const void *)&flow_act->vlan, in mlx5_eswitch_termtbl_hash()
28 sizeof(flow_act->vlan), hash); in mlx5_eswitch_termtbl_hash()
33 if (flow_act->pkt_reformat) in mlx5_eswitch_termtbl_hash()
34 hash = jhash(flow_act->pkt_reformat, in mlx5_eswitch_termtbl_hash()
35 sizeof(*flow_act->pkt_reformat), in mlx5_eswitch_termtbl_hash()
66 struct mlx5_flow_act *flow_act) in mlx5_eswitch_termtbl_create() argument
94 tt->rule = mlx5_add_flow_rules(tt->termtbl, NULL, flow_act, in mlx5_eswitch_termtbl_create()
[all …]
H A Deswitch_offloads.c216 struct mlx5_flow_act *flow_act, in esw_setup_sampler_dest() argument
220 flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL; in esw_setup_sampler_dest()
229 struct mlx5_flow_act *flow_act, in esw_setup_ft_dest() argument
234 flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL; in esw_setup_ft_dest()
244 esw_setup_accept_dest(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, in esw_setup_accept_dest() argument
248 flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL; in esw_setup_accept_dest()
254 esw_setup_slow_path_dest(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, in esw_setup_slow_path_dest() argument
258 flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL; in esw_setup_slow_path_dest()
265 struct mlx5_flow_act *flow_act, in esw_setup_chain_dest() argument
272 flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL; in esw_setup_chain_dest()
[all …]
H A Drdma.c29 struct mlx5_flow_act flow_act = {}; in mlx5_rdma_enable_roce_steering() local
77 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_ALLOW; in mlx5_rdma_enable_roce_steering()
78 flow_rule = mlx5_add_flow_rules(ft, spec, &flow_act, NULL, 0); in mlx5_rdma_enable_roce_steering()
H A Dfs_core.c852 struct mlx5_flow_act *flow_act) in alloc_fte() argument
863 fte->act_dests.action = *flow_act; in alloc_fte()
1063 struct mlx5_flow_act *flow_act) in find_next_fwd_ft() argument
1068 next_ns = flow_act->action & MLX5_FLOW_CONTEXT_ACTION_FWD_NEXT_NS; in find_next_fwd_ft()
1965 const struct mlx5_flow_act *flow_act) in check_conflicting_ftes() argument
1967 if (check_conflicting_actions(flow_act, &fte->act_dests.action)) { in check_conflicting_ftes()
1987 struct mlx5_flow_act *flow_act, in add_rule_fg() argument
1997 ret = check_conflicting_ftes(fte, &spec->flow_context, flow_act); in add_rule_fg()
2002 fte->act_dests.action.action |= flow_act->action; in add_rule_fg()
2004 old_action != flow_act->action); in add_rule_fg()
[all …]
H A Den_fs.c226 MLX5_DECLARE_FLOW_ACT(flow_act); in __mlx5e_add_vlan_rule()
281 *rule_p = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1); in __mlx5e_add_vlan_rule()
371 MLX5_DECLARE_FLOW_ACT(flow_act); in mlx5e_add_trap_rule()
383 rule = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1); in mlx5e_add_trap_rule()
753 MLX5_DECLARE_FLOW_ACT(flow_act); in mlx5e_add_promisc_rule()
764 *rule_p = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1); in mlx5e_add_promisc_rule()
981 MLX5_DECLARE_FLOW_ACT(flow_act); in mlx5e_add_l2_flow_rule()
1013 ai->rule = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1); in mlx5e_add_l2_flow_rule()
/linux/drivers/net/ethernet/mellanox/mlx5/core/lib/
H A Dmacsec_fs.c393 struct mlx5_flow_act flow_act = {}; in macsec_fs_tx_create() local
447 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_ALLOW; in macsec_fs_tx_create()
449 rule = mlx5_add_flow_rules(ft_crypto->t, spec, &flow_act, NULL, 0); in macsec_fs_tx_create()
458 memset(&flow_act, 0, sizeof(flow_act)); in macsec_fs_tx_create()
459 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_ALLOW; in macsec_fs_tx_create()
460 rule = mlx5_add_flow_rules(ft_crypto->t, NULL, &flow_act, NULL, 0); in macsec_fs_tx_create()
494 memset(&flow_act, 0, sizeof(flow_act)); in macsec_fs_tx_create()
497 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_DROP | MLX5_FLOW_CONTEXT_ACTION_COUNT; in macsec_fs_tx_create()
498 rule = mlx5_add_flow_rules(tx_tables->ft_check, NULL, &flow_act, &dest, 1); in macsec_fs_tx_create()
509 memset(&flow_act, 0, sizeof(flow_act)); in macsec_fs_tx_create()
[all …]
H A Dipsec_fs_roce.c137 MLX5_DECLARE_FLOW_ACT(flow_act); in ipsec_fs_roce_rx_rule_setup()
148 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST; in ipsec_fs_roce_rx_rule_setup()
156 rule = mlx5_add_flow_rules(roce->ft, spec, &flow_act, &dst, 1); in ipsec_fs_roce_rx_rule_setup()
168 flow_act.flags |= FLOW_ACT_IGNORE_FLOW_LEVEL; in ipsec_fs_roce_rx_rule_setup()
169 rule = mlx5_add_flow_rules(roce->ft, spec, &flow_act, default_dst, 1); in ipsec_fs_roce_rx_rule_setup()
182 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST; in ipsec_fs_roce_rx_rule_setup()
184 flow_act.flags &= ~FLOW_ACT_IGNORE_FLOW_LEVEL; in ipsec_fs_roce_rx_rule_setup()
187 rule = mlx5_add_flow_rules(roce->nic_master_ft, NULL, &flow_act, &dst, in ipsec_fs_roce_rx_rule_setup()
214 MLX5_DECLARE_FLOW_ACT(flow_act); in ipsec_fs_roce_tx_rule_setup()
218 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST; in ipsec_fs_roce_tx_rule_setup()
[all …]
H A Dfs_ttc.c357 MLX5_DECLARE_FLOW_ACT(flow_act); in mlx5_generate_ttc_rule()
388 rule = mlx5_add_flow_rules(ft, spec, &flow_act, dest, 1); in mlx5_generate_ttc_rule()
627 MLX5_DECLARE_FLOW_ACT(flow_act); in mlx5_generate_inner_ttc_rule()
655 rule = mlx5_add_flow_rules(ft, spec, &flow_act, dest, 1); in mlx5_generate_inner_ttc_rule()
1020 MLX5_DECLARE_FLOW_ACT(flow_act); in mlx5_ttc_create_ipsec_outer_rule()
1045 rule = mlx5_add_flow_rules(ttc->t, spec, &flow_act, &dest, 1); in mlx5_ttc_create_ipsec_outer_rule()
1061 MLX5_DECLARE_FLOW_ACT(flow_act); in mlx5_ttc_create_ipsec_inner_rule()
1090 rule = mlx5_add_flow_rules(ttc->t, spec, &flow_act, &dest, 1); in mlx5_ttc_create_ipsec_inner_rule()
/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/
H A Dingress_ofld.c23 struct mlx5_flow_act flow_act = {}; in esw_acl_ingress_prio_tag_create() local
40 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH | in esw_acl_ingress_prio_tag_create()
42 flow_act.vlan[0].ethtype = ETH_P_8021Q; in esw_acl_ingress_prio_tag_create()
43 flow_act.vlan[0].vid = 0; in esw_acl_ingress_prio_tag_create()
44 flow_act.vlan[0].prio = 0; in esw_acl_ingress_prio_tag_create()
47 flow_act.action |= MLX5_FLOW_CONTEXT_ACTION_MOD_HDR; in esw_acl_ingress_prio_tag_create()
48 flow_act.modify_hdr = vport->ingress.offloads.modify_metadata; in esw_acl_ingress_prio_tag_create()
52 &flow_act, NULL, 0); in esw_acl_ingress_prio_tag_create()
69 struct mlx5_flow_act flow_act = {}; in esw_acl_ingress_mod_metadata_create() local
96 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_MOD_HDR | MLX5_FLOW_CONTEXT_ACTION_ALLOW; in esw_acl_ingress_mod_metadata_create()
[all …]
H A Dingress_lgcy.c145 struct mlx5_flow_act flow_act = {}; in esw_acl_ingress_lgcy_setup() local
220 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_ALLOW; in esw_acl_ingress_lgcy_setup()
222 flow_act.action |= MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH; in esw_acl_ingress_lgcy_setup()
223 flow_act.vlan[0].prio = vport->info.qos; in esw_acl_ingress_lgcy_setup()
224 flow_act.vlan[0].vid = vport->info.vlan; in esw_acl_ingress_lgcy_setup()
225 flow_act.vlan[0].ethtype = ETH_P_8021Q; in esw_acl_ingress_lgcy_setup()
244 &flow_act, NULL, 0); in esw_acl_ingress_lgcy_setup()
257 memset(&flow_act, 0, sizeof(flow_act)); in esw_acl_ingress_lgcy_setup()
258 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_DROP; in esw_acl_ingress_lgcy_setup()
261 flow_act.action |= MLX5_FLOW_CONTEXT_ACTION_COUNT; in esw_acl_ingress_lgcy_setup()
[all …]
H A Dhelper.c54 struct mlx5_flow_act flow_act = {}; in esw_egress_acl_vlan_create() local
71 flow_act.action = flow_action; in esw_egress_acl_vlan_create()
74 &flow_act, fwd_dest, 0); in esw_egress_acl_vlan_create()
H A Degress_ofld.c45 struct mlx5_flow_act flow_act = {}; in esw_acl_egress_ofld_fwd2vport_create() local
54 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST; in esw_acl_egress_ofld_fwd2vport_create()
58 &flow_act, fwd_dest, 1); in esw_acl_egress_ofld_fwd2vport_create()
/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/
H A Dindir_table.c104 struct mlx5_flow_act flow_act = {}; in mlx5_esw_indir_table_rule_get() local
130 flow_act.modify_hdr = mlx5_modify_header_alloc(esw->dev, MLX5_FLOW_NAMESPACE_FDB, in mlx5_esw_indir_table_rule_get()
132 if (IS_ERR(flow_act.modify_hdr)) { in mlx5_esw_indir_table_rule_get()
133 err = PTR_ERR(flow_act.modify_hdr); in mlx5_esw_indir_table_rule_get()
137 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST | MLX5_FLOW_CONTEXT_ACTION_MOD_HDR; in mlx5_esw_indir_table_rule_get()
138 flow_act.flags = FLOW_ACT_IGNORE_FLOW_LEVEL | FLOW_ACT_NO_APPEND; in mlx5_esw_indir_table_rule_get()
139 flow_act.fg = e->recirc_grp; in mlx5_esw_indir_table_rule_get()
146 handle = mlx5_add_flow_rules(e->ft, NULL, &flow_act, &dest, 1); in mlx5_esw_indir_table_rule_get()
154 rule->mh = flow_act.modify_hdr; in mlx5_esw_indir_table_rule_get()
162 mlx5_modify_header_dealloc(esw->dev, flow_act.modify_hdr); in mlx5_esw_indir_table_rule_get()
[all …]
H A Dbridge_mcast.c56 struct mlx5_flow_act flow_act = { in mlx5_esw_bridge_mdb_flow_create() local
111 handle = mlx5_add_flow_rules(bridge->egress_ft, rule_spec, &flow_act, dests, num_dests); in mlx5_esw_bridge_mdb_flow_create()
512 struct mlx5_flow_act flow_act = { in mlx5_esw_bridge_mcast_flow_with_esw_create() local
530 handle = mlx5_add_flow_rules(port->mcast.ft, rule_spec, &flow_act, NULL, 0); in mlx5_esw_bridge_mcast_flow_with_esw_create()
575 struct mlx5_flow_act flow_act = { in mlx5_esw_bridge_mcast_vlan_flow_create() local
594 flow_act.action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT; in mlx5_esw_bridge_mcast_vlan_flow_create()
595 flow_act.pkt_reformat = vlan->pkt_reformat_pop; in mlx5_esw_bridge_mcast_vlan_flow_create()
615 handle = mlx5_add_flow_rules(port->mcast.ft, rule_spec, &flow_act, &dest, 1); in mlx5_esw_bridge_mcast_vlan_flow_create()
647 struct mlx5_flow_act flow_act = { in mlx5_esw_bridge_mcast_fwd_flow_create() local
668 handle = mlx5_add_flow_rules(port->mcast.ft, rule_spec, &flow_act, &dest, 1); in mlx5_esw_bridge_mcast_fwd_flow_create()
[all …]
H A Dipsec_fs.h16 struct mlx5_flow_act *flow_act);
36 struct mlx5_flow_act *flow_act) in mlx5_esw_ipsec_rx_setup_modify_header() argument
H A Dipsec_fs.c44 struct mlx5_flow_act *flow_act) in mlx5_esw_ipsec_rx_setup_modify_header() argument
78 flow_act->modify_hdr = modify_hdr; in mlx5_esw_ipsec_rx_setup_modify_header()
79 flow_act->action |= MLX5_FLOW_CONTEXT_ACTION_MOD_HDR; in mlx5_esw_ipsec_rx_setup_modify_header()
H A Dlegacy.c243 struct mlx5_flow_act flow_act = {}; in _mlx5_eswitch_set_vepa_locked() local
278 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST; in _mlx5_eswitch_set_vepa_locked()
280 &flow_act, &dest, 1); in _mlx5_eswitch_set_vepa_locked()
291 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST; in _mlx5_eswitch_set_vepa_locked()
293 &flow_act, &dest, 1); in _mlx5_eswitch_set_vepa_locked()
H A Dbridge.c580 struct mlx5_flow_act flow_act = { in mlx5_esw_bridge_ingress_flow_with_esw_create() local
608 flow_act.action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT | in mlx5_esw_bridge_ingress_flow_with_esw_create()
610 flow_act.pkt_reformat = vlan->pkt_reformat_push; in mlx5_esw_bridge_ingress_flow_with_esw_create()
611 flow_act.modify_hdr = vlan->pkt_mod_hdr_push_mark; in mlx5_esw_bridge_ingress_flow_with_esw_create()
635 handle = mlx5_add_flow_rules(br_offloads->ingress_ft, rule_spec, &flow_act, dests, in mlx5_esw_bridge_ingress_flow_with_esw_create()
695 struct mlx5_flow_act flow_act = { in mlx5_esw_bridge_ingress_filter_flow_create() local
733 handle = mlx5_add_flow_rules(br_offloads->ingress_ft, rule_spec, &flow_act, &dest, 1); in mlx5_esw_bridge_ingress_filter_flow_create()
748 struct mlx5_flow_act flow_act = { in mlx5_esw_bridge_egress_flow_create() local
775 flow_act.action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT; in mlx5_esw_bridge_egress_flow_create()
776 flow_act.pkt_reformat = vlan->pkt_reformat_pop; in mlx5_esw_bridge_egress_flow_create()
[all …]
/linux/drivers/net/ethernet/mellanox/mlx5/core/en_accel/
H A Dipsec_fs.c205 struct mlx5_flow_act flow_act = {}; in rx_add_rule_drop_auth_trailer() local
224 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_DROP | MLX5_FLOW_CONTEXT_ACTION_COUNT; in rx_add_rule_drop_auth_trailer()
225 flow_act.flags = FLOW_ACT_NO_APPEND; in rx_add_rule_drop_auth_trailer()
235 rule = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1); in rx_add_rule_drop_auth_trailer()
255 rule = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1); in rx_add_rule_drop_auth_trailer()
284 struct mlx5_flow_act flow_act = {}; in rx_add_rule_drop_replay() local
302 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_DROP | MLX5_FLOW_CONTEXT_ACTION_COUNT; in rx_add_rule_drop_replay()
303 flow_act.flags = FLOW_ACT_NO_APPEND; in rx_add_rule_drop_replay()
313 rule = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1); in rx_add_rule_drop_replay()
341 struct mlx5_flow_act flow_act = {}; in ipsec_rx_status_drop_all_create() local
[all …]
H A Dpsp.c139 struct mlx5_flow_act flow_act = {}; in accel_psp_fs_rx_err_add_rule() local
168 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_MOD_HDR | in accel_psp_fs_rx_err_add_rule()
171 flow_act.modify_hdr = modify_hdr; in accel_psp_fs_rx_err_add_rule()
176 fte = mlx5_add_flow_rules(rx_err->ft, spec, &flow_act, dest, 2); in accel_psp_fs_rx_err_add_rule()
186 memset(&flow_act, 0, sizeof(flow_act)); in accel_psp_fs_rx_err_add_rule()
189 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_DROP | in accel_psp_fs_rx_err_add_rule()
193 fte = mlx5_add_flow_rules(rx_err->ft, spec, &flow_act, dest, 1); in accel_psp_fs_rx_err_add_rule()
204 memset(&flow_act, 0, sizeof(flow_act)); in accel_psp_fs_rx_err_add_rule()
207 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_DROP | in accel_psp_fs_rx_err_add_rule()
211 fte = mlx5_add_flow_rules(rx_err->ft, spec, &flow_act, dest, 1); in accel_psp_fs_rx_err_add_rule()
[all …]
H A Dfs_tcp.c81 MLX5_DECLARE_FLOW_ACT(flow_act); in mlx5e_accel_fs_add_sk()
138 flow = mlx5_add_flow_rules(ft->t, spec, &flow_act, &dest, 1); in mlx5e_accel_fs_add_sk()
155 MLX5_DECLARE_FLOW_ACT(flow_act); in accel_fs_tcp_add_default_rule()
162 rule = mlx5_add_flow_rules(accel_fs_t->t, NULL, &flow_act, &dest, 1); in accel_fs_tcp_add_default_rule()
/linux/drivers/infiniband/hw/mlx5/
H A Dfs.c1042 struct mlx5_flow_act flow_act = {}; in add_op_fc_rules() local
1138 flow_act.action = in add_op_fc_rules()
1143 &flow_act, &dst, 1); in add_op_fc_rules()
1228 struct mlx5_flow_act flow_act = {}; in mlx5_ib_fs_add_op_fc() local
1320 flow_act.action = in mlx5_ib_fs_add_op_fc()
1325 &flow_act, &dst, 1); in mlx5_ib_fs_add_op_fc()
1518 struct mlx5_flow_act flow_act = {}; in _create_flow_rule() local
1546 ib_flow, flow_attr, &flow_act, in _create_flow_rule()
1555 if (dst && !(flow_act.action & MLX5_FLOW_CONTEXT_ACTION_DROP)) { in _create_flow_rule()
1577 if (flow_act.action & MLX5_FLOW_CONTEXT_ACTION_COUNT) { in _create_flow_rule()
[all …]
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/
H A Dfs_tt_redirect.c85 MLX5_DECLARE_FLOW_ACT(flow_act); in mlx5e_fs_tt_redirect_udp_add_rule()
103 rule = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1); in mlx5e_fs_tt_redirect_udp_add_rule()
120 MLX5_DECLARE_FLOW_ACT(flow_act); in fs_udp_add_default_rule()
127 rule = mlx5_add_flow_rules(fs_udp_t->t, NULL, &flow_act, &dest, 1); in fs_udp_add_default_rule()
370 MLX5_DECLARE_FLOW_ACT(flow_act); in mlx5e_fs_tt_redirect_any_add_rule()
385 rule = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1); in mlx5e_fs_tt_redirect_any_add_rule()
402 MLX5_DECLARE_FLOW_ACT(flow_act); in fs_any_add_default_rule()
408 rule = mlx5_add_flow_rules(fs_any_t->t, NULL, &flow_act, &dest, 1); in fs_any_add_default_rule()
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/tc/
H A Dint_port.c67 struct mlx5_flow_act flow_act = {}; in mlx5e_int_port_create_rx_rule() local
92 flow_act.action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST; in mlx5e_int_port_create_rx_rule()
94 &flow_act, dest, 1); in mlx5e_int_port_create_rx_rule()
/linux/drivers/net/ethernet/netronome/nfp/flower/
H A Daction.c1236 static bool nfp_fl_check_mangle_start(struct flow_action *flow_act, in nfp_fl_check_mangle_start() argument
1242 current_act = flow_act->entries[current_act_idx]; in nfp_fl_check_mangle_start()
1249 prev_act = flow_act->entries[current_act_idx - 1]; in nfp_fl_check_mangle_start()
1254 static bool nfp_fl_check_mangle_end(struct flow_action *flow_act, in nfp_fl_check_mangle_end() argument
1260 current_act = flow_act->entries[current_act_idx]; in nfp_fl_check_mangle_end()
1264 if (current_act_idx == flow_act->num_entries) in nfp_fl_check_mangle_end()
1267 next_act = flow_act->entries[current_act_idx + 1]; in nfp_fl_check_mangle_end()

12