Searched refs:esw (Results 1 - 25 of 78) sorted by relevance

1234

/linux-master/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/
H A Dofld.h11 int esw_acl_egress_ofld_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport);
14 int mlx5_esw_acl_egress_vport_bond(struct mlx5_eswitch *esw, u16 active_vport_num,
16 int mlx5_esw_acl_egress_vport_unbond(struct mlx5_eswitch *esw, u16 vport_num);
18 static inline bool mlx5_esw_acl_egress_fwd2vport_supported(struct mlx5_eswitch *esw) argument
20 return esw && esw->mode == MLX5_ESWITCH_OFFLOADS &&
21 mlx5_eswitch_vport_match_metadata_enabled(esw) &&
22 MLX5_CAP_ESW_FLOWTABLE(esw->dev, egress_acl_forward_to_vport);
26 int esw_acl_ingress_ofld_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport);
27 void esw_acl_ingress_ofld_cleanup(struct mlx5_eswitch *esw, struc
35 mlx5_esw_acl_ingress_vport_drop_rule_destroy(struct mlx5_eswitch *esw, u16 vport_num) argument
39 mlx5_esw_acl_ingress_vport_drop_rule_create(struct mlx5_eswitch *esw, u16 vport_num) argument
[all...]
H A Dlgcy.h10 int esw_acl_egress_lgcy_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport);
11 void esw_acl_egress_lgcy_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport);
14 int esw_acl_ingress_lgcy_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport);
15 void esw_acl_ingress_lgcy_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport);
H A Dhelper.h11 esw_acl_table_create(struct mlx5_eswitch *esw, struct mlx5_vport *vport, int ns, int size);
15 int esw_egress_acl_vlan_create(struct mlx5_eswitch *esw, struct mlx5_vport *vport,
19 int esw_acl_egress_vlan_grp_create(struct mlx5_eswitch *esw, struct mlx5_vport *vport);
H A Degress_ofld.c41 static int esw_acl_egress_ofld_fwd2vport_create(struct mlx5_eswitch *esw, argument
48 esw_debug(esw->dev, "vport(%d) configure egress acl rule fwd2vport(%d)\n",
61 esw_warn(esw->dev,
70 static int esw_acl_egress_ofld_rules_create(struct mlx5_eswitch *esw, argument
77 if (MLX5_CAP_GEN(esw->dev, prio_tag_required)) {
82 esw_debug(esw->dev,
90 err = esw_egress_acl_vlan_create(esw, vport, fwd_dest, 0, action);
96 err = esw_acl_egress_ofld_fwd2vport_create(esw, vport, fwd_dest);
116 static int esw_acl_egress_ofld_groups_create(struct mlx5_eswitch *esw, argument
125 if (MLX5_CAP_GEN(esw
181 esw_acl_egress_needed(struct mlx5_eswitch *esw, u16 vport_num) argument
186 esw_acl_egress_ofld_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
239 mlx5_esw_acl_egress_vport_bond(struct mlx5_eswitch *esw, u16 active_vport_num, u16 passive_vport_num) argument
265 mlx5_esw_acl_egress_vport_unbond(struct mlx5_eswitch *esw, u16 vport_num) argument
[all...]
H A Dingress_ofld.c10 esw_acl_ingress_prio_tag_enabled(struct mlx5_eswitch *esw, argument
13 return (MLX5_CAP_GEN(esw->dev, prio_tag_required) &&
14 mlx5_eswitch_is_vf_vport(esw, vport->vport));
17 static int esw_acl_ingress_prio_tag_create(struct mlx5_eswitch *esw, argument
52 esw_warn(esw->dev,
62 static int esw_acl_ingress_mod_metadata_create(struct mlx5_eswitch *esw, argument
70 key = mlx5_eswitch_get_vport_metadata_for_match(esw, vport->vport);
83 mlx5_modify_header_alloc(esw->dev, MLX5_FLOW_NAMESPACE_ESW_INGRESS,
87 esw_warn(esw->dev,
101 esw_warn(esw
110 esw_acl_ingress_mod_metadata_destroy(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
121 esw_acl_ingress_src_port_drop_create(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
141 esw_acl_ingress_src_port_drop_destroy(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
151 esw_acl_ingress_ofld_rules_create(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
183 esw_acl_ingress_ofld_rules_destroy(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
191 esw_acl_ingress_ofld_groups_create(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
302 esw_acl_ingress_ofld_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
350 esw_acl_ingress_ofld_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
359 mlx5_esw_acl_ingress_vport_metadata_update(struct mlx5_eswitch *esw, u16 vport_num, u32 metadata) argument
386 mlx5_esw_acl_ingress_vport_drop_rule_create(struct mlx5_eswitch *esw, u16 vport_num) argument
398 mlx5_esw_acl_ingress_vport_drop_rule_destroy(struct mlx5_eswitch *esw, u16 vport_num) argument
[all...]
H A Degress_lgcy.c18 static int esw_acl_egress_lgcy_groups_create(struct mlx5_eswitch *esw, argument
22 struct mlx5_core_dev *dev = esw->dev;
27 err = esw_acl_egress_vlan_grp_create(esw, vport);
67 int esw_acl_egress_lgcy_setup(struct mlx5_eswitch *esw, argument
70 bool vst_mode_steering = esw_vst_mode_is_steering(esw);
86 } else if (MLX5_CAP_ESW_EGRESS_ACL(esw->dev, flow_counter)) {
87 drop_counter = mlx5_fc_create(esw->dev, false);
89 esw_warn(esw->dev,
100 esw_acl_egress_lgcy_cleanup(esw, vport);
105 vport->egress.acl = esw_acl_table_create(esw, vpor
161 esw_acl_egress_lgcy_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
[all...]
/linux-master/drivers/net/ethernet/mellanox/mlx5/core/esw/
H A Dlegacy.h13 int esw_legacy_enable(struct mlx5_eswitch *esw);
14 void esw_legacy_disable(struct mlx5_eswitch *esw);
16 int esw_legacy_vport_acl_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport);
17 void esw_legacy_vport_acl_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport);
H A Dlegacy.c9 #include "esw/acl/lgcy.h"
10 #include "esw/legacy.h"
15 #include "esw/qos.h"
22 static int esw_create_legacy_vepa_table(struct mlx5_eswitch *esw) argument
25 struct mlx5_core_dev *dev = esw->dev;
46 esw->fdb_table.legacy.vepa_fdb = fdb;
51 static void esw_destroy_legacy_fdb_table(struct mlx5_eswitch *esw) argument
53 esw_debug(esw->dev, "Destroy FDB Table\n");
54 if (!esw->fdb_table.legacy.fdb)
57 if (esw
72 esw_create_legacy_fdb_table(struct mlx5_eswitch *esw) argument
167 esw_destroy_legacy_vepa_table(struct mlx5_eswitch *esw) argument
177 esw_create_legacy_table(struct mlx5_eswitch *esw) argument
195 esw_cleanup_vepa_rules(struct mlx5_eswitch *esw) argument
207 esw_destroy_legacy_table(struct mlx5_eswitch *esw) argument
218 esw_legacy_enable(struct mlx5_eswitch *esw) argument
237 esw_legacy_disable(struct mlx5_eswitch *esw) argument
250 _mlx5_eswitch_set_vepa_locked(struct mlx5_eswitch *esw, u8 setting) argument
311 mlx5_eswitch_set_vepa(struct mlx5_eswitch *esw, u8 setting) argument
334 mlx5_eswitch_get_vepa(struct mlx5_eswitch *esw, u8 *setting) argument
349 esw_legacy_vport_acl_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
373 esw_legacy_vport_acl_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
387 struct mlx5_eswitch *esw = dev->priv.eswitch; local
426 mlx5_eswitch_set_vport_vlan(struct mlx5_eswitch *esw, u16 vport, u16 vlan, u8 qos) argument
454 mlx5_eswitch_set_vport_spoofchk(struct mlx5_eswitch *esw, u16 vport, bool spoofchk) argument
487 mlx5_eswitch_set_vport_trust(struct mlx5_eswitch *esw, u16 vport, bool setting) argument
512 mlx5_eswitch_set_vport_rate(struct mlx5_eswitch *esw, u16 vport, u32 max_rate, u32 min_rate) argument
[all...]
H A Dqos.c6 #include "esw/qos.h"
45 static int esw_qos_group_config(struct mlx5_eswitch *esw, struct mlx5_esw_rate_group *group, argument
49 struct mlx5_core_dev *dev = esw->dev;
63 static int esw_qos_vport_config(struct mlx5_eswitch *esw, argument
69 struct mlx5_core_dev *dev = esw->dev;
78 esw_warn(esw->dev,
90 static u32 esw_qos_calculate_min_rate_divider(struct mlx5_eswitch *esw, argument
94 u32 fw_max_bw_share = MLX5_CAP_QOS(esw->dev, max_tsar_bw_share);
102 list_for_each_entry(group, &esw->qos.groups, list) {
108 mlx5_esw_for_each_vport(esw,
135 esw_qos_normalize_vports_min_rate(struct mlx5_eswitch *esw, struct mlx5_esw_rate_group *group, struct netlink_ext_ack *extack) argument
164 esw_qos_normalize_groups_min_rate(struct mlx5_eswitch *esw, u32 divider, struct netlink_ext_ack *extack) argument
196 esw_qos_set_vport_min_rate(struct mlx5_eswitch *esw, struct mlx5_vport *evport, u32 min_rate, struct netlink_ext_ack *extack) argument
221 esw_qos_set_vport_max_rate(struct mlx5_eswitch *esw, struct mlx5_vport *evport, u32 max_rate, struct netlink_ext_ack *extack) argument
250 esw_qos_set_group_min_rate(struct mlx5_eswitch *esw, struct mlx5_esw_rate_group *group, u32 min_rate, struct netlink_ext_ack *extack) argument
281 esw_qos_set_group_max_rate(struct mlx5_eswitch *esw, struct mlx5_esw_rate_group *group, u32 max_rate, struct netlink_ext_ack *extack) argument
315 esw_qos_vport_create_sched_element(struct mlx5_eswitch *esw, struct mlx5_vport *vport, u32 max_rate, u32 bw_share) argument
348 esw_qos_update_group_scheduling_element(struct mlx5_eswitch *esw, struct mlx5_vport *vport, struct mlx5_esw_rate_group *curr_group, struct mlx5_esw_rate_group *new_group, struct netlink_ext_ack *extack) argument
390 esw_qos_vport_update_group(struct mlx5_eswitch *esw, struct mlx5_vport *vport, struct mlx5_esw_rate_group *group, struct netlink_ext_ack *extack) argument
420 __esw_qos_create_rate_group(struct mlx5_eswitch *esw, struct netlink_ext_ack *extack) argument
471 esw_qos_create_rate_group(struct mlx5_eswitch *esw, struct netlink_ext_ack *extack) argument
490 __esw_qos_destroy_rate_group(struct mlx5_eswitch *esw, struct mlx5_esw_rate_group *group, struct netlink_ext_ack *extack) argument
517 esw_qos_destroy_rate_group(struct mlx5_eswitch *esw, struct mlx5_esw_rate_group *group, struct netlink_ext_ack *extack) argument
548 esw_qos_create(struct mlx5_eswitch *esw, struct netlink_ext_ack *extack) argument
598 esw_qos_destroy(struct mlx5_eswitch *esw) argument
612 esw_qos_get(struct mlx5_eswitch *esw, struct netlink_ext_ack *extack) argument
628 esw_qos_put(struct mlx5_eswitch *esw) argument
635 esw_qos_vport_enable(struct mlx5_eswitch *esw, struct mlx5_vport *vport, u32 max_rate, u32 bw_share, struct netlink_ext_ack *extack) argument
665 mlx5_esw_qos_vport_disable(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
688 mlx5_esw_qos_set_vport_rate(struct mlx5_eswitch *esw, struct mlx5_vport *vport, u32 max_rate, u32 min_rate) argument
769 mlx5_esw_qos_modify_vport_rate(struct mlx5_eswitch *esw, u16 vport_num, u32 rate_mbps) argument
850 struct mlx5_eswitch *esw; local
876 struct mlx5_eswitch *esw; local
902 struct mlx5_eswitch *esw = dev->priv.eswitch; local
920 struct mlx5_eswitch *esw = dev->priv.eswitch; local
938 struct mlx5_eswitch *esw; local
969 struct mlx5_eswitch *esw; local
982 mlx5_esw_qos_vport_update_group(struct mlx5_eswitch *esw, struct mlx5_vport *vport, struct mlx5_esw_rate_group *group, struct netlink_ext_ack *extack) argument
[all...]
H A Dvporttbl.c25 esw_vport_tbl_init(struct mlx5_eswitch *esw, struct esw_vport_tbl_namespace *ns) argument
27 if (esw->offloads.encap != DEVLINK_ESWITCH_ENCAP_MODE_NONE)
33 esw_vport_tbl_create(struct mlx5_eswitch *esw, struct mlx5_flow_namespace *ns, argument
42 ft_attr.autogroup.max_num_groups = esw->params.large_group_num;
48 esw_warn(esw->dev, "Failed to create per vport FDB Table err %ld\n",
55 static u32 flow_attr_to_vport_key(struct mlx5_eswitch *esw, argument
62 key->vhca_id = MLX5_CAP_GEN(esw->dev, vhca_id);
69 esw_vport_tbl_lookup(struct mlx5_eswitch *esw, struct mlx5_vport_key *skey, u32 key) argument
73 hash_for_each_possible(esw->fdb_table.offloads.vports.table, e, hlist, key)
81 mlx5_esw_vporttbl_get(struct mlx5_eswitch *esw, struc argument
132 mlx5_esw_vporttbl_put(struct mlx5_eswitch *esw, struct mlx5_vport_tbl_attr *attr) argument
[all...]
H A Dindir_table.h14 struct mlx5_flow_table *mlx5_esw_indir_table_get(struct mlx5_eswitch *esw,
17 void mlx5_esw_indir_table_put(struct mlx5_eswitch *esw,
21 mlx5_esw_indir_table_needed(struct mlx5_eswitch *esw,
43 mlx5_esw_indir_table_get(struct mlx5_eswitch *esw, argument
51 mlx5_esw_indir_table_put(struct mlx5_eswitch *esw, argument
57 mlx5_esw_indir_table_needed(struct mlx5_eswitch *esw, argument
H A Ddevlink_port.c17 static bool mlx5_esw_devlink_port_supported(struct mlx5_eswitch *esw, u16 vport_num) argument
19 return (mlx5_core_is_ecpf(esw->dev) && vport_num == MLX5_VPORT_PF) ||
20 mlx5_eswitch_is_vf_vport(esw, vport_num) ||
21 mlx5_core_is_ec_vf_vport(esw->dev, vport_num);
24 static void mlx5_esw_offloads_pf_vf_devlink_port_attrs_set(struct mlx5_eswitch *esw, argument
28 struct mlx5_core_dev *dev = esw->dev;
44 } else if (mlx5_eswitch_is_vf_vport(esw, vport_num)) {
49 } else if (mlx5_core_is_ec_vf_vport(esw->dev, vport_num)) {
57 int mlx5_esw_offloads_pf_vf_devlink_port_init(struct mlx5_eswitch *esw, argument
63 if (!mlx5_esw_devlink_port_supported(esw, vport_nu
78 mlx5_esw_offloads_pf_vf_devlink_port_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
103 mlx5_esw_offloads_sf_devlink_port_attrs_set(struct mlx5_eswitch *esw, struct devlink_port *dl_port, u32 controller, u32 sfnum) argument
118 mlx5_esw_offloads_sf_devlink_port_init(struct mlx5_eswitch *esw, struct mlx5_vport *vport, struct mlx5_devlink_port *dl_port, u32 controller, u32 sfnum) argument
129 mlx5_esw_offloads_sf_devlink_port_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
148 mlx5_esw_offloads_devlink_port_register(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
186 mlx5_esw_offloads_devlink_port_unregister(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
200 mlx5_esw_offloads_devlink_port(struct mlx5_eswitch *esw, u16 vport_num) argument
[all...]
H A Dindir_table.c15 #include "esw/indir_table.h"
67 mlx5_esw_indir_table_needed(struct mlx5_eswitch *esw, argument
75 vf_sf_vport = mlx5_eswitch_is_vf_vport(esw, vport_num) ||
76 mlx5_esw_is_sf_vport(esw, vport_num);
83 esw->dev == dest_mdev &&
95 static int mlx5_esw_indir_table_rule_get(struct mlx5_eswitch *esw, argument
100 struct mlx5_fs_chains *chains = esw_chains(esw);
119 data = mlx5_eswitch_get_vport_metadata_for_set(esw, esw_attr->rx_tun_attr->decap_vport);
120 err = mlx5e_tc_match_to_reg_set(esw->dev, &mod_acts, MLX5_FLOW_NAMESPACE_FDB,
125 err = mlx5e_tc_match_to_reg_set(esw
171 mlx5_esw_indir_table_rule_put(struct mlx5_eswitch *esw, struct mlx5_esw_indir_table_entry *e) argument
209 mlx5_create_indir_fwd_group(struct mlx5_eswitch *esw, struct mlx5_esw_indir_table_entry *e) argument
248 mlx5_esw_indir_table_entry_create(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr, u16 vport, bool decap) argument
311 mlx5_esw_indir_table_entry_lookup(struct mlx5_eswitch *esw, u16 vport) argument
323 mlx5_esw_indir_table_get(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr, u16 vport, bool decap) argument
356 mlx5_esw_indir_table_put(struct mlx5_eswitch *esw, u16 vport, bool decap) argument
[all...]
H A Dbridge.c44 static bool mlx5_esw_bridge_pkt_reformat_vlan_pop_supported(struct mlx5_eswitch *esw) argument
46 return BIT(MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, reformat_remove)) &&
47 MLX5_CAP_GEN_2(esw->dev, max_reformat_remove_size) >= sizeof(struct vlan_hdr) &&
48 MLX5_CAP_GEN_2(esw->dev, max_reformat_remove_offset) >=
53 mlx5_esw_bridge_pkt_reformat_vlan_pop_create(struct mlx5_eswitch *esw) argument
61 return mlx5_packet_reformat_alloc(esw->dev, &reformat_params, MLX5_FLOW_NAMESPACE_FDB);
65 mlx5_esw_bridge_table_create(int max_fte, u32 level, struct mlx5_eswitch *esw) argument
68 struct mlx5_core_dev *dev = esw->dev;
91 struct mlx5_eswitch *esw,
123 esw_warn(esw
90 mlx5_esw_bridge_ingress_vlan_proto_fg_create(unsigned int from, unsigned int to, u16 vlan_proto, struct mlx5_eswitch *esw, struct mlx5_flow_table *ingress_ft) argument
131 mlx5_esw_bridge_ingress_vlan_fg_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *ingress_ft) argument
141 mlx5_esw_bridge_ingress_qinq_fg_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *ingress_ft) argument
152 mlx5_esw_bridge_ingress_vlan_proto_filter_fg_create(unsigned int from, unsigned int to, u16 vlan_proto, struct mlx5_eswitch *esw, struct mlx5_flow_table *ingress_ft) argument
190 mlx5_esw_bridge_ingress_vlan_filter_fg_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *ingress_ft) argument
201 mlx5_esw_bridge_ingress_qinq_filter_fg_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *ingress_ft) argument
212 mlx5_esw_bridge_ingress_mac_fg_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *ingress_ft) argument
248 mlx5_esw_bridge_egress_vlan_proto_fg_create(unsigned int from, unsigned int to, u16 vlan_proto, struct mlx5_eswitch *esw, struct mlx5_flow_table *egress_ft) argument
284 mlx5_esw_bridge_egress_vlan_fg_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *egress_ft) argument
293 mlx5_esw_bridge_egress_qinq_fg_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *egress_ft) argument
303 mlx5_esw_bridge_egress_mac_fg_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *egress_ft) argument
334 mlx5_esw_bridge_egress_miss_fg_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *egress_ft) argument
368 struct mlx5_eswitch *esw = br_offloads->esw; local
473 struct mlx5_eswitch *esw = br_offloads->esw; local
572 mlx5_esw_bridge_ingress_flow_with_esw_create(u16 vport_num, const unsigned char *addr, struct mlx5_esw_bridge_vlan *vlan, u32 counter_id, struct mlx5_esw_bridge *bridge, struct mlx5_eswitch *esw) argument
1021 mlx5_esw_bridge_vlan_push_create(u16 vlan_proto, struct mlx5_esw_bridge_vlan *vlan, struct mlx5_eswitch *esw) argument
1058 mlx5_esw_bridge_vlan_push_cleanup(struct mlx5_esw_bridge_vlan *vlan, struct mlx5_eswitch *esw) argument
1065 mlx5_esw_bridge_vlan_pop_create(struct mlx5_esw_bridge_vlan *vlan, struct mlx5_eswitch *esw) argument
1086 mlx5_esw_bridge_vlan_pop_cleanup(struct mlx5_esw_bridge_vlan *vlan, struct mlx5_eswitch *esw) argument
1093 mlx5_esw_bridge_vlan_push_mark_create(struct mlx5_esw_bridge_vlan *vlan, struct mlx5_eswitch *esw) argument
1113 mlx5_esw_bridge_vlan_push_mark_cleanup(struct mlx5_esw_bridge_vlan *vlan, struct mlx5_eswitch *esw) argument
1133 mlx5_esw_bridge_vlan_push_pop_create(u16 vlan_proto, u16 flags, struct mlx5_esw_bridge_port *port, struct mlx5_esw_bridge_vlan *vlan, struct mlx5_eswitch *esw) argument
1172 mlx5_esw_bridge_vlan_create(u16 vlan_proto, u16 vid, u16 flags, struct mlx5_esw_bridge_port *port, struct mlx5_eswitch *esw) argument
1221 struct mlx5_eswitch *esw = bridge->br_offloads->esw; local
1303 mlx5_esw_bridge_port_vlan_lookup(u16 vid, u16 vport_num, u16 esw_owner_vhca_id, struct mlx5_esw_bridge *bridge, struct mlx5_eswitch *esw) argument
1343 mlx5_esw_bridge_fdb_entry_init(struct net_device *dev, u16 vport_num, u16 esw_owner_vhca_id, const unsigned char *addr, u16 vid, bool added_by_user, bool peer, struct mlx5_eswitch *esw, struct mlx5_esw_bridge *bridge) argument
1515 struct mlx5_eswitch *esw = br_offloads->esw; local
1546 struct mlx5_eswitch *esw = br_offloads->esw; local
1806 struct mlx5_eswitch *esw = br_offloads->esw; local
1918 mlx5_esw_bridge_init(struct mlx5_eswitch *esw) argument
1937 mlx5_esw_bridge_cleanup(struct mlx5_eswitch *esw) argument
[all...]
/linux-master/drivers/net/ethernet/mellanox/mlx5/core/
H A Deswitch_offloads.c41 #include "esw/indir_table.h"
42 #include "esw/acl/ofld.h"
56 #define mlx5_esw_for_each_rep(esw, i, rep) \
57 xa_for_each(&((esw)->offloads.vport_reps), i, rep)
76 static struct mlx5_eswitch_rep *mlx5_eswitch_get_rep(struct mlx5_eswitch *esw, argument
79 return xa_load(&esw->offloads.vport_reps, vport_num);
83 mlx5_eswitch_set_rule_flow_source(struct mlx5_eswitch *esw, argument
87 if (!MLX5_CAP_ESW_FLOWTABLE(esw->dev, flow_source) || !attr || !attr->in_rep)
105 mlx5_eswitch_clear_rule_source_port(struct mlx5_eswitch *esw, struct mlx5_flow_spec *spec) argument
107 if (mlx5_eswitch_vport_match_metadata_enabled(esw)) {
122 mlx5_eswitch_set_rule_source_port(struct mlx5_eswitch *esw, struct mlx5_flow_spec *spec, struct mlx5_flow_attr *attr, struct mlx5_eswitch *src_esw, u16 vport) argument
175 esw_setup_decap_indir(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr) argument
189 esw_cleanup_decap_indir(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr) argument
227 esw_setup_ft_dest(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr, int i) argument
253 esw_setup_slow_path_dest(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, struct mlx5_eswitch *esw, int i) argument
281 esw_put_dest_tables_loop(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr, int from, int to) argument
297 esw_is_chain_src_port_rewrite(struct mlx5_eswitch *esw, struct mlx5_esw_flow_attr *esw_attr) argument
308 esw_setup_chain_src_port_rewrite(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, struct mlx5_eswitch *esw, struct mlx5_fs_chains *chains, struct mlx5_flow_attr *attr, int *i) argument
340 esw_cleanup_chain_src_port_rewrite(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr) argument
349 esw_is_indir_table(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr) argument
374 esw_setup_indir_table(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr, int *i) argument
411 esw_cleanup_indir_table(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr) argument
430 esw_setup_uplink_fwd_ipsec_needed(struct mlx5_eswitch *esw, struct mlx5_esw_flow_attr *esw_attr, int attr_idx) argument
446 esw_flow_dests_fwd_ipsec_check(struct mlx5_eswitch *esw, struct mlx5_esw_flow_attr *esw_attr) argument
467 esw_setup_dest_fwd_vport(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, struct mlx5_eswitch *esw, struct mlx5_esw_flow_attr *esw_attr, int attr_idx, int dest_idx, bool pkt_reformat) argument
492 esw_setup_dest_fwd_ipsec(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, struct mlx5_eswitch *esw, struct mlx5_esw_flow_attr *esw_attr, int attr_idx, int dest_idx, bool pkt_reformat) argument
506 esw_setup_vport_dest(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, struct mlx5_eswitch *esw, struct mlx5_esw_flow_attr *esw_attr, int attr_idx, int dest_idx, bool pkt_reformat) argument
519 esw_setup_vport_dests(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, struct mlx5_eswitch *esw, struct mlx5_esw_flow_attr *esw_attr, int i) argument
531 esw_src_port_rewrite_supported(struct mlx5_eswitch *esw) argument
566 esw_setup_dests(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr, struct mlx5_flow_spec *spec, int *i) argument
618 esw_cleanup_dests(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr) argument
651 mlx5_eswitch_add_offloaded_rule(struct mlx5_eswitch *esw, struct mlx5_flow_spec *spec, struct mlx5_flow_attr *attr) argument
788 mlx5_eswitch_add_fwd_rule(struct mlx5_eswitch *esw, struct mlx5_flow_spec *spec, struct mlx5_flow_attr *attr) argument
870 __mlx5_eswitch_del_rule(struct mlx5_eswitch *esw, struct mlx5_flow_handle *rule, struct mlx5_flow_attr *attr, bool fwd_rule) argument
913 mlx5_eswitch_del_offloaded_rule(struct mlx5_eswitch *esw, struct mlx5_flow_handle *rule, struct mlx5_flow_attr *attr) argument
921 mlx5_eswitch_del_fwd_rule(struct mlx5_eswitch *esw, struct mlx5_flow_handle *rule, struct mlx5_flow_attr *attr) argument
1031 mlx5_eswitch_add_send_to_vport_meta_rule(struct mlx5_eswitch *esw, u16 vport_num) argument
1067 mlx5_eswitch_reg_c1_loopback_supported(struct mlx5_eswitch *esw) argument
1073 esw_set_passing_vport_metadata(struct mlx5_eswitch *esw, bool enable) argument
1118 peer_miss_rules_setup(struct mlx5_eswitch *esw, struct mlx5_core_dev *peer_dev, struct mlx5_flow_spec *spec, struct mlx5_flow_destination *dest) argument
1154 esw_set_peer_miss_rule_source_port(struct mlx5_eswitch *esw, struct mlx5_eswitch *peer_esw, struct mlx5_flow_spec *spec, u16 vport) argument
1174 esw_add_fdb_peer_miss_rules(struct mlx5_eswitch *esw, struct mlx5_core_dev *peer_dev) argument
1305 esw_del_fdb_peer_miss_rules(struct mlx5_eswitch *esw, struct mlx5_core_dev *peer_dev) argument
1345 esw_add_fdb_miss_rule(struct mlx5_eswitch *esw) argument
1406 esw_add_restore_rule(struct mlx5_eswitch *esw, u32 tag) argument
1456 mlx5_esw_set_flow_group_source_port(struct mlx5_eswitch *esw, u32 *flow_group_in, int match_params) argument
1483 esw_vport_tbl_put(struct mlx5_eswitch *esw) argument
1498 esw_vport_tbl_get(struct mlx5_eswitch *esw) argument
1523 esw_init_chains_offload_flags(struct mlx5_eswitch *esw, u32 *flags) argument
1554 esw_chains_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *miss_fdb) argument
1616 esw_chains_destroy(struct mlx5_eswitch *esw, struct mlx5_fs_chains *chains) argument
1628 esw_chains_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *miss_fdb) argument
1632 esw_chains_destroy(struct mlx5_eswitch *esw, struct mlx5_fs_chains *chains) argument
1638 esw_create_send_to_vport_group(struct mlx5_eswitch *esw, struct mlx5_flow_table *fdb, u32 *flow_group_in, int *ix) argument
1682 esw_create_meta_send_to_vport_group(struct mlx5_eswitch *esw, struct mlx5_flow_table *fdb, u32 *flow_group_in, int *ix) argument
1729 esw_create_peer_esw_miss_group(struct mlx5_eswitch *esw, struct mlx5_flow_table *fdb, u32 *flow_group_in, int *ix) argument
1777 esw_create_miss_group(struct mlx5_eswitch *esw, struct mlx5_flow_table *fdb, u32 *flow_group_in, int *ix) argument
1822 esw_create_offloads_fdb_tables(struct mlx5_eswitch *esw) argument
1946 esw_destroy_offloads_fdb_tables(struct mlx5_eswitch *esw) argument
1971 esw_get_nr_ft_offloads_steering_src_ports(struct mlx5_eswitch *esw) argument
1982 esw_create_offloads_table(struct mlx5_eswitch *esw) argument
2011 esw_destroy_offloads_table(struct mlx5_eswitch *esw) argument
2018 esw_create_vport_rx_group(struct mlx5_eswitch *esw) argument
2050 esw_destroy_vport_rx_group(struct mlx5_eswitch *esw) argument
2055 esw_create_vport_rx_drop_rule_index(struct mlx5_eswitch *esw) argument
2064 esw_create_vport_rx_drop_group(struct mlx5_eswitch *esw) argument
2095 esw_destroy_vport_rx_drop_group(struct mlx5_eswitch *esw) argument
2102 mlx5_esw_set_spec_source_port(struct mlx5_eswitch *esw, u16 vport, struct mlx5_flow_spec *spec) argument
2130 mlx5_eswitch_create_vport_rx_rule(struct mlx5_eswitch *esw, u16 vport, struct mlx5_flow_destination *dest) argument
2158 esw_create_vport_rx_drop_rule(struct mlx5_eswitch *esw) argument
2178 esw_destroy_vport_rx_drop_rule(struct mlx5_eswitch *esw) argument
2184 mlx5_eswitch_inline_mode_get(struct mlx5_eswitch *esw, u8 *mode) argument
2222 esw_destroy_restore_table(struct mlx5_eswitch *esw) argument
2234 esw_create_restore_table(struct mlx5_eswitch *esw) argument
2325 esw_offloads_start(struct mlx5_eswitch *esw, struct netlink_ext_ack *extack) argument
2350 mlx5_esw_offloads_rep_init(struct mlx5_eswitch *esw, const struct mlx5_vport *vport) argument
2376 mlx5_esw_offloads_rep_cleanup(struct mlx5_eswitch *esw, struct mlx5_eswitch_rep *rep) argument
2383 esw_offloads_cleanup_reps(struct mlx5_eswitch *esw) argument
2393 esw_offloads_init_reps(struct mlx5_eswitch *esw) argument
2417 struct mlx5_eswitch *esw = dev->priv.eswitch; local
2472 esw_offloads_init(struct mlx5_eswitch *esw) argument
2497 esw_offloads_cleanup(struct mlx5_eswitch *esw) argument
2505 __esw_offloads_unload_rep(struct mlx5_eswitch *esw, struct mlx5_eswitch_rep *rep, u8 rep_type) argument
2513 __unload_reps_all_vport(struct mlx5_eswitch *esw, u8 rep_type) argument
2522 mlx5_esw_offloads_rep_load(struct mlx5_eswitch *esw, u16 vport_num) argument
2546 mlx5_esw_offloads_rep_unload(struct mlx5_eswitch *esw, u16 vport_num) argument
2556 mlx5_esw_offloads_init_pf_vf_rep(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
2564 mlx5_esw_offloads_cleanup_pf_vf_rep(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
2572 mlx5_esw_offloads_init_sf_rep(struct mlx5_eswitch *esw, struct mlx5_vport *vport, struct mlx5_devlink_port *dl_port, u32 controller, u32 sfnum) argument
2579 mlx5_esw_offloads_cleanup_sf_rep(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
2584 mlx5_esw_offloads_load_rep(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
2605 mlx5_esw_offloads_unload_rep(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
2705 esw_master_egress_create_resources(struct mlx5_eswitch *esw, struct mlx5_flow_namespace *egress_ns, struct mlx5_vport *vport, size_t count) argument
2784 struct mlx5_eswitch *esw = master->priv.eswitch; local
2869 mlx5_esw_offloads_rep_event_unpair(struct mlx5_eswitch *esw, struct mlx5_eswitch *peer_esw) argument
2888 mlx5_esw_offloads_unpair(struct mlx5_eswitch *esw, struct mlx5_eswitch *peer_esw) argument
2898 mlx5_esw_offloads_pair(struct mlx5_eswitch *esw, struct mlx5_eswitch *peer_esw) argument
2930 mlx5_esw_offloads_set_ns_peer(struct mlx5_eswitch *esw, struct mlx5_eswitch *peer_esw, bool pair) argument
2965 struct mlx5_eswitch *esw = my_data; local
3041 mlx5_esw_offloads_devcom_init(struct mlx5_eswitch *esw, u64 key) argument
3072 mlx5_esw_offloads_devcom_cleanup(struct mlx5_eswitch *esw) argument
3087 mlx5_esw_offloads_devcom_is_ready(struct mlx5_eswitch *esw) argument
3092 mlx5_esw_vport_match_metadata_supported(const struct mlx5_eswitch *esw) argument
3112 mlx5_esw_match_metadata_reserved(struct mlx5_eswitch *esw) argument
3117 mlx5_esw_match_metadata_alloc(struct mlx5_eswitch *esw) argument
3141 mlx5_esw_match_metadata_free(struct mlx5_eswitch *esw, u32 metadata) argument
3149 esw_offloads_vport_metadata_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
3161 esw_offloads_vport_metadata_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
3174 esw_offloads_metadata_uninit(struct mlx5_eswitch *esw) argument
3186 esw_offloads_metadata_init(struct mlx5_eswitch *esw) argument
3209 esw_vport_create_offloads_acl_tables(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
3230 esw_vport_destroy_offloads_acl_tables(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
3237 esw_create_offloads_acl_tables(struct mlx5_eswitch *esw) argument
3267 esw_destroy_offloads_acl_tables(struct mlx5_eswitch *esw) argument
3280 mlx5_eswitch_reload_reps(struct mlx5_eswitch *esw) argument
3305 esw_offloads_steering_init(struct mlx5_eswitch *esw) argument
3371 esw_offloads_steering_cleanup(struct mlx5_eswitch *esw) argument
3385 esw_vfs_changed_event_handler(struct mlx5_eswitch *esw, const u32 *out) argument
3421 struct mlx5_eswitch *esw; local
3441 struct mlx5_eswitch *esw; local
3458 mlx5_esw_host_number_init(struct mlx5_eswitch *esw) argument
3476 mlx5_esw_offloads_controller_valid(const struct mlx5_eswitch *esw, u32 controller) argument
3489 esw_offloads_enable(struct mlx5_eswitch *esw) argument
3563 esw_offloads_stop(struct mlx5_eswitch *esw, struct netlink_ext_ack *extack) argument
3583 esw_offloads_disable(struct mlx5_eswitch *esw) argument
3673 struct mlx5_eswitch *esw = dev->priv.eswitch; local
3691 struct mlx5_eswitch *esw = dev->priv.eswitch; local
3705 struct mlx5_eswitch *esw; local
3771 struct mlx5_eswitch *esw; local
3780 mlx5_esw_vports_inline_set(struct mlx5_eswitch *esw, u8 mlx5_mode, struct netlink_ext_ack *extack) argument
3834 struct mlx5_eswitch *esw; local
3890 struct mlx5_eswitch *esw; local
3901 struct mlx5_eswitch *esw = dev->priv.eswitch; local
3920 struct mlx5_eswitch *esw = dev->priv.eswitch; local
3935 struct mlx5_eswitch *esw; local
4005 struct mlx5_eswitch *esw; local
4016 mlx5_eswitch_vport_has_rep(const struct mlx5_eswitch *esw, u16 vport_num) argument
4030 mlx5_eswitch_register_vport_reps(struct mlx5_eswitch *esw, const struct mlx5_eswitch_rep_ops *ops, u8 rep_type) argument
4049 mlx5_eswitch_unregister_vport_reps(struct mlx5_eswitch *esw, u8 rep_type) argument
4062 mlx5_eswitch_get_uplink_priv(struct mlx5_eswitch *esw, u8 rep_type) argument
4070 mlx5_eswitch_get_proto_dev(struct mlx5_eswitch *esw, u16 vport, u8 rep_type) argument
4085 mlx5_eswitch_uplink_get_proto_dev(struct mlx5_eswitch *esw, u8 rep_type) argument
4091 mlx5_eswitch_vport_rep(struct mlx5_eswitch *esw, u16 vport) argument
4098 mlx5_eswitch_reg_c1_loopback_enabled(const struct mlx5_eswitch *esw) argument
4104 mlx5_eswitch_vport_match_metadata_enabled(const struct mlx5_eswitch *esw) argument
4110 mlx5_eswitch_get_vport_metadata_for_match(struct mlx5_eswitch *esw, u16 vport_num) argument
4122 mlx5_esw_query_vport_vhca_id(struct mlx5_eswitch *esw, u16 vport_num, u16 *vhca_id) argument
4147 mlx5_esw_vport_vhca_id_set(struct mlx5_eswitch *esw, u16 vport_num) argument
4173 mlx5_esw_vport_vhca_id_clear(struct mlx5_eswitch *esw, u16 vport_num) argument
4187 mlx5_eswitch_vhca_id_to_vport(struct mlx5_eswitch *esw, u16 vhca_id, u16 *vport_num) argument
4198 mlx5_eswitch_get_vport_metadata_for_set(struct mlx5_eswitch *esw, u16 vport_num) argument
4214 struct mlx5_eswitch *esw = mlx5_devlink_eswitch_nocheck_get(port->devlink); local
4228 struct mlx5_eswitch *esw = mlx5_devlink_eswitch_nocheck_get(port->devlink); local
4237 struct mlx5_eswitch *esw = mlx5_devlink_eswitch_nocheck_get(port->devlink); local
4259 struct mlx5_eswitch *esw = mlx5_devlink_eswitch_nocheck_get(port->devlink); local
4318 struct mlx5_eswitch *esw = mlx5_devlink_eswitch_nocheck_get(port->devlink); local
4335 struct mlx5_eswitch *esw = mlx5_devlink_eswitch_nocheck_get(port->devlink); local
4388 mlx5_eswitch_restore_ipsec_rule(struct mlx5_eswitch *esw, struct mlx5_flow_handle *rule, struct mlx5_esw_flow_attr *esw_attr, int attr_idx) argument
4407 struct mlx5_eswitch *esw; local
4437 struct mlx5_eswitch *esw; local
4490 struct mlx5_eswitch *esw; local
4521 struct mlx5_eswitch *esw; local
[all...]
H A Deswitch.c40 #include "esw/acl/lgcy.h"
41 #include "esw/legacy.h"
42 #include "esw/qos.h"
107 mlx5_eswitch_get_vport(struct mlx5_eswitch *esw, u16 vport_num) argument
111 if (!esw)
114 vport = xa_load(&esw->vports, vport_num);
116 esw_debug(esw->dev, "vport out of range: num(0x%x)\n", vport_num);
207 __esw_fdb_set_vport_rule(struct mlx5_eswitch *esw, u16 vport, bool rx_rule, argument
250 esw_debug(esw->dev,
256 mlx5_add_flow_rules(esw
270 esw_fdb_set_vport_rule(struct mlx5_eswitch *esw, u8 mac[ETH_ALEN], u16 vport) argument
279 esw_fdb_set_vport_allmulti_rule(struct mlx5_eswitch *esw, u16 vport) argument
292 esw_fdb_set_vport_promisc_rule(struct mlx5_eswitch *esw, u16 vport) argument
306 esw_add_uc_addr(struct mlx5_eswitch *esw, struct vport_addr *vaddr) argument
339 esw_del_uc_addr(struct mlx5_eswitch *esw, struct vport_addr *vaddr) argument
366 update_allmulti_vports(struct mlx5_eswitch *esw, struct vport_addr *vaddr, struct esw_mc_addr *esw_mc) argument
415 esw_add_mc_addr(struct mlx5_eswitch *esw, struct vport_addr *vaddr) argument
455 esw_del_mc_addr(struct mlx5_eswitch *esw, struct vport_addr *vaddr) argument
498 esw_apply_vport_addr_list(struct mlx5_eswitch *esw, struct mlx5_vport *vport, int list_type) argument
532 esw_update_vport_addr_list(struct mlx5_eswitch *esw, struct mlx5_vport *vport, int list_type) argument
619 esw_update_vport_mc_promisc(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
654 esw_apply_vport_rx_mode(struct mlx5_eswitch *esw, struct mlx5_vport *vport, bool promisc, bool mc_promisc) argument
697 esw_update_vport_rx_mode(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
728 struct mlx5_eswitch *esw = dev->priv.eswitch; local
765 struct mlx5_eswitch *esw = vport->dev->priv.eswitch; local
784 esw_vport_setup_acl(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
793 esw_vport_cleanup_acl(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
802 mlx5_esw_vport_caps_get(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
842 esw_vport_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
887 esw_vport_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
901 mlx5_esw_vport_enable(struct mlx5_eswitch *esw, struct mlx5_vport *vport, enum mlx5_eswitch_vport_event enabled_events) argument
957 mlx5_esw_vport_disable(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
999 struct mlx5_eswitch *esw = mlx5_nb_cof(nb, struct mlx5_eswitch, nb); local
1041 mlx5_eswitch_event_handler_register(struct mlx5_eswitch *esw) argument
1050 mlx5_eswitch_event_handler_unregister(struct mlx5_eswitch *esw) argument
1058 mlx5_eswitch_clear_vf_vports_info(struct mlx5_eswitch *esw) argument
1070 mlx5_eswitch_clear_ec_vf_vports_info(struct mlx5_eswitch *esw) argument
1082 mlx5_eswitch_load_vport(struct mlx5_eswitch *esw, struct mlx5_vport *vport, enum mlx5_eswitch_vport_event enabled_events) argument
1102 mlx5_eswitch_unload_vport(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
1108 mlx5_eswitch_load_pf_vf_vport(struct mlx5_eswitch *esw, u16 vport_num, enum mlx5_eswitch_vport_event enabled_events) argument
1132 mlx5_eswitch_unload_pf_vf_vport(struct mlx5_eswitch *esw, u16 vport_num) argument
1144 mlx5_eswitch_load_sf_vport(struct mlx5_eswitch *esw, u16 vport_num, enum mlx5_eswitch_vport_event enabled_events, struct mlx5_devlink_port *dl_port, u32 controller, u32 sfnum) argument
1170 mlx5_eswitch_unload_sf_vport(struct mlx5_eswitch *esw, u16 vport_num) argument
1182 mlx5_eswitch_unload_vf_vports(struct mlx5_eswitch *esw, u16 num_vfs) argument
1194 mlx5_eswitch_unload_ec_vf_vports(struct mlx5_eswitch *esw, u16 num_ec_vfs) argument
1207 mlx5_eswitch_load_vf_vports(struct mlx5_eswitch *esw, u16 num_vfs, enum mlx5_eswitch_vport_event enabled_events) argument
1227 mlx5_eswitch_load_ec_vf_vports(struct mlx5_eswitch *esw, u16 num_ec_vfs, enum mlx5_eswitch_vport_event enabled_events) argument
1271 mlx5_eswitch_enable_pf_vf_vports(struct mlx5_eswitch *esw, enum mlx5_eswitch_vport_event enabled_events) argument
1330 mlx5_eswitch_disable_pf_vf_vports(struct mlx5_eswitch *esw) argument
1347 mlx5_eswitch_get_devlink_param(struct mlx5_eswitch *esw) argument
1367 mlx5_eswitch_update_num_of_vfs(struct mlx5_eswitch *esw, int num_vfs) argument
1391 mlx5_esw_mode_change_notify(struct mlx5_eswitch *esw, u16 mode) argument
1400 mlx5_esw_acls_ns_init(struct mlx5_eswitch *esw) argument
1435 mlx5_esw_acls_ns_cleanup(struct mlx5_eswitch *esw) argument
1462 mlx5_eswitch_enable_locked(struct mlx5_eswitch *esw, int num_vfs) argument
1519 mlx5_eswitch_enable(struct mlx5_eswitch *esw, int num_vfs) argument
1563 mlx5_eswitch_disable_sriov(struct mlx5_eswitch *esw, bool clear_vf) argument
1607 mlx5_eswitch_disable_locked(struct mlx5_eswitch *esw) argument
1636 mlx5_eswitch_disable(struct mlx5_eswitch *esw) argument
1690 mlx5_esw_vport_alloc(struct mlx5_eswitch *esw, int index, u16 vport_num) argument
1717 mlx5_esw_vport_free(struct mlx5_eswitch *esw, struct mlx5_vport *vport) argument
1723 mlx5_esw_vports_cleanup(struct mlx5_eswitch *esw) argument
1733 mlx5_esw_vports_init(struct mlx5_eswitch *esw) argument
1841 struct mlx5_eswitch *esw; local
1919 mlx5_eswitch_cleanup(struct mlx5_eswitch *esw) argument
1946 mlx5_esw_set_vport_mac_locked(struct mlx5_eswitch *esw, struct mlx5_vport *evport, const u8 *mac) argument
1984 mlx5_eswitch_set_vport_mac(struct mlx5_eswitch *esw, u16 vport, const u8 *mac) argument
1999 mlx5_esw_check_port_type(struct mlx5_eswitch *esw, u16 vport_num, xa_mark_t mark) argument
2004 mlx5_eswitch_is_vf_vport(struct mlx5_eswitch *esw, u16 vport_num) argument
2009 mlx5_eswitch_is_pf_vf_vport(struct mlx5_eswitch *esw, u16 vport_num) argument
2015 mlx5_esw_is_sf_vport(struct mlx5_eswitch *esw, u16 vport_num) argument
2020 mlx5_eswitch_set_vport_state(struct mlx5_eswitch *esw, u16 vport, int link_state) argument
2058 mlx5_eswitch_get_vport_config(struct mlx5_eswitch *esw, u16 vport, struct ifla_vf_info *ivi) argument
2085 __mlx5_eswitch_set_vport_vlan(struct mlx5_eswitch *esw, u16 vport, u16 vlan, u8 qos, u8 set_flags) argument
2115 mlx5_eswitch_get_vport_stats(struct mlx5_eswitch *esw, u16 vport_num, struct ifla_vf_stats *vf_stats) argument
2195 struct mlx5_eswitch *esw = dev->priv.eswitch; local
2204 struct mlx5_eswitch *esw; local
2219 mlx5_esw_event_notifier_register(struct mlx5_eswitch *esw, struct notifier_block *nb) argument
2224 mlx5_esw_event_notifier_unregister(struct mlx5_eswitch *esw, struct notifier_block *nb) argument
2239 struct mlx5_eswitch *esw = mdev->priv.eswitch; local
2262 struct mlx5_eswitch *esw = mdev->priv.eswitch; local
2274 struct mlx5_eswitch *esw = mdev->priv.eswitch; local
2286 struct mlx5_eswitch *esw = mdev->priv.eswitch; local
2303 mlx5_esw_try_lock(struct mlx5_eswitch *esw) argument
2317 mlx5_esw_lock(struct mlx5_eswitch *esw) argument
2333 mlx5_esw_unlock(struct mlx5_eswitch *esw) argument
2347 struct mlx5_eswitch *esw; local
2360 mlx5_eswitch_get_core_dev(struct mlx5_eswitch *esw) argument
2368 struct mlx5_eswitch *esw = dev->priv.eswitch; local
2386 struct mlx5_eswitch *esw = dev->priv.eswitch; local
[all...]
H A Deswitch.h86 #define esw_chains(esw) \
87 ((esw)->fdb_table.offloads.esw_chains_priv)
313 struct mlx5_eswitch *esw; member in struct:mlx5_host_work
364 struct list_head groups; /* Protected by esw->state_lock */
366 /* Protected by esw->state_lock.
389 void esw_offloads_disable(struct mlx5_eswitch *esw);
390 int esw_offloads_enable(struct mlx5_eswitch *esw);
391 void esw_offloads_cleanup(struct mlx5_eswitch *esw);
392 int esw_offloads_init(struct mlx5_eswitch *esw);
395 mlx5_eswitch_add_send_to_vport_meta_rule(struct mlx5_eswitch *esw, u1
581 esw_vst_mode_is_steering(struct mlx5_eswitch *esw) argument
616 mlx5_esw_allowed(const struct mlx5_eswitch *esw) argument
622 mlx5_esw_is_manager_vport(const struct mlx5_eswitch *esw, u16 vport_num) argument
627 mlx5_esw_is_owner(struct mlx5_eswitch *esw, u16 vport_num, u16 esw_owner_vhca_id) argument
658 mlx5_esw_is_fdb_created(struct mlx5_eswitch *esw) argument
844 mlx5_eswitch_num_vfs(struct mlx5_eswitch *esw) argument
852 mlx5_eswitch_get_npeers(struct mlx5_eswitch *esw) argument
860 mlx5_eswitch_get_slow_fdb(struct mlx5_eswitch *esw) argument
886 mlx5_eswitch_cleanup(struct mlx5_eswitch *esw) argument
887 mlx5_eswitch_enable(struct mlx5_eswitch *esw, int num_vfs) argument
888 mlx5_eswitch_disable_sriov(struct mlx5_eswitch *esw, bool clear_vf) argument
889 mlx5_eswitch_disable(struct mlx5_eswitch *esw) argument
890 mlx5_esw_offloads_devcom_init(struct mlx5_eswitch *esw, u64 key) argument
891 mlx5_esw_offloads_devcom_cleanup(struct mlx5_eswitch *esw) argument
892 mlx5_esw_offloads_devcom_is_ready(struct mlx5_eswitch *esw) argument
895 mlx5_eswitch_set_vport_state(struct mlx5_eswitch *esw, u16 vport, int link_state) argument
902 esw_add_restore_rule(struct mlx5_eswitch *esw, u32 tag) argument
925 mlx5_eswitch_get_npeers(struct mlx5_eswitch *esw) argument
928 mlx5_eswitch_reload_reps(struct mlx5_eswitch *esw) argument
[all...]
H A Deswitch_offloads_termtbl.c112 mlx5_eswitch_termtbl_get_create(struct mlx5_eswitch *esw, argument
122 mutex_lock(&esw->offloads.termtbl_mutex);
124 hash_for_each_possible(esw->offloads.termtbl_tbl, tt,
147 err = mlx5_eswitch_termtbl_create(esw->dev, tt, flow_act);
151 hash_add(esw->offloads.termtbl_tbl, &tt->termtbl_hlist, hash_key);
154 mutex_unlock(&esw->offloads.termtbl_mutex);
158 mutex_unlock(&esw->offloads.termtbl_mutex);
163 mlx5_eswitch_termtbl_put(struct mlx5_eswitch *esw, argument
166 mutex_lock(&esw->offloads.termtbl_mutex);
169 mutex_unlock(&esw
197 mlx5_eswitch_offload_is_uplink_port(const struct mlx5_eswitch *esw, const struct mlx5_flow_spec *spec) argument
214 mlx5_eswitch_termtbl_required(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr, struct mlx5_flow_act *flow_act, struct mlx5_flow_spec *spec) argument
244 mlx5_eswitch_add_termtbl_rule(struct mlx5_eswitch *esw, struct mlx5_flow_table *fdb, struct mlx5_flow_spec *spec, struct mlx5_esw_flow_attr *attr, struct mlx5_flow_act *flow_act, struct mlx5_flow_destination *dest, int num_dest) argument
[all...]
/linux-master/include/linux/mlx5/
H A Deswitch.h42 int (*event)(struct mlx5_eswitch *esw,
60 struct mlx5_eswitch *esw; member in struct:mlx5_eswitch_rep
63 void mlx5_eswitch_register_vport_reps(struct mlx5_eswitch *esw,
66 void mlx5_eswitch_unregister_vport_reps(struct mlx5_eswitch *esw, u8 rep_type);
67 void *mlx5_eswitch_get_proto_dev(struct mlx5_eswitch *esw,
70 struct mlx5_eswitch_rep *mlx5_eswitch_vport_rep(struct mlx5_eswitch *esw,
72 void *mlx5_eswitch_uplink_get_proto_dev(struct mlx5_eswitch *esw, u8 rep_type);
82 bool mlx5_eswitch_reg_c1_loopback_enabled(const struct mlx5_eswitch *esw);
83 bool mlx5_eswitch_vport_match_metadata_enabled(const struct mlx5_eswitch *esw);
105 u32 mlx5_eswitch_get_vport_metadata_for_match(struct mlx5_eswitch *esw,
169 mlx5_eswitch_reg_c1_loopback_enabled(const struct mlx5_eswitch *esw) argument
175 mlx5_eswitch_vport_match_metadata_enabled(const struct mlx5_eswitch *esw) argument
181 mlx5_eswitch_get_vport_metadata_for_match(struct mlx5_eswitch *esw, u16 vport_num) argument
197 mlx5_eswitch_get_core_dev(struct mlx5_eswitch *esw) argument
[all...]
/linux-master/drivers/infiniband/hw/mlx5/
H A Dib_rep.c25 mlx5_ib_get_rep_netdev(rep->esw, rep->vport);
137 struct mlx5_core_dev *mdev = mlx5_eswitch_get_core_dev(rep->esw);
176 struct mlx5_eswitch *esw; local
179 esw = peer_mdev->priv.eswitch;
180 mlx5_eswitch_unregister_vport_reps(esw, REP_IB);
196 struct mlx5_eswitch *esw; local
200 esw = peer_mdev->priv.eswitch;
201 mlx5_eswitch_register_vport_reps(esw, &rep_ops, REP_IB);
205 struct net_device *mlx5_ib_get_rep_netdev(struct mlx5_eswitch *esw, argument
208 return mlx5_eswitch_get_proto_dev(esw, vport_nu
215 struct mlx5_eswitch *esw = dev->mdev->priv.eswitch; local
234 struct mlx5_eswitch *esw; local
245 struct mlx5_eswitch *esw; local
[all...]
H A Dib_rep.h20 struct net_device *mlx5_ib_get_rep_netdev(struct mlx5_eswitch *esw,
34 struct net_device *mlx5_ib_get_rep_netdev(struct mlx5_eswitch *esw, argument
/linux-master/drivers/s390/cio/
H A Ddevice_status.c125 cdev_irb->esw.esw1.lpum = irb->esw.esw1.lpum;
127 /* Copy subchannel logout information if esw is of format 0. */
129 cdev_sublog = &cdev_irb->esw.esw0.sublog;
130 sublog = &irb->esw.esw0.sublog;
159 cdev_irb->esw.esw0.erw.cpt = irb->esw.esw0.erw.cpt;
161 cdev_irb->esw.esw0.erw.fsavf = irb->esw.esw0.erw.fsavf;
162 if (cdev_irb->esw
[all...]
/linux-master/drivers/net/ethernet/mellanox/mlx5/core/en/tc/
H A Dsample.c24 struct mlx5_eswitch *esw; member in struct:mlx5e_tc_psample
63 struct mlx5_eswitch *esw = tc_psample->esw; local
66 struct mlx5_core_dev *dev = esw->dev;
95 dest.vport.num = esw->manager_vport;
196 err = sampler_obj_create(tc_psample->esw->dev, sampler);
220 sampler_obj_destroy(tc_psample->esw->dev, sampler->sampler_id);
265 struct mlx5_eswitch *esw = tc_psample->esw; local
266 struct mlx5_core_dev *mdev = esw
342 add_post_rule(struct mlx5_eswitch *esw, struct mlx5e_sample_flow *sample_flow, struct mlx5_flow_spec *spec, struct mlx5_flow_attr *attr, u32 *default_tbl_id) argument
407 del_post_rule(struct mlx5_eswitch *esw, struct mlx5e_sample_flow *sample_flow, struct mlx5_flow_attr *attr) argument
480 struct mlx5_eswitch *esw; local
594 struct mlx5_eswitch *esw; local
617 mlx5e_tc_sample_init(struct mlx5_eswitch *esw, struct mlx5e_post_act *post_act) argument
[all...]
/linux-master/drivers/net/ethernet/mellanox/mlx5/core/en/rep/
H A Dbridge.c9 #include "esw/bridge.h"
22 static bool mlx5_esw_bridge_dev_same_esw(struct net_device *dev, struct mlx5_eswitch *esw) argument
26 return esw == priv->mdev->priv.eswitch;
29 static bool mlx5_esw_bridge_dev_same_hw(struct net_device *dev, struct mlx5_eswitch *esw) argument
36 esw_mdev = esw->dev;
45 mlx5_esw_bridge_lag_rep_get(struct net_device *dev, struct mlx5_eswitch *esw) argument
59 if (mlx5_lag_is_shared_fdb(mdev) && mlx5_esw_bridge_dev_same_esw(lower, esw))
67 mlx5_esw_bridge_rep_vport_num_vhca_id_get(struct net_device *dev, struct mlx5_eswitch *esw, argument
74 dev = mlx5_esw_bridge_lag_rep_get(dev, esw);
76 if (!dev || !mlx5e_eswitch_rep(dev) || !mlx5_esw_bridge_dev_same_hw(dev, esw))
91 mlx5_esw_bridge_lower_rep_vport_num_vhca_id_get(struct net_device *dev, struct mlx5_eswitch *esw, u16 *vport_num, u16 *esw_owner_vhca_id) argument
116 mlx5_esw_bridge_is_local(struct net_device *dev, struct net_device *rep, struct mlx5_eswitch *esw) argument
140 struct mlx5_eswitch *esw = br_offloads->esw; local
437 struct mlx5_eswitch *esw = br_offloads->esw; local
524 struct mlx5_eswitch *esw = local
584 struct mlx5_eswitch *esw = local
[all...]
/linux-master/drivers/net/ethernet/mellanox/mlx5/core/en/
H A Dtc_tun_encap.c147 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
197 rule = mlx5e_tc_offload_fdb_rules(esw, flow, spec, flow->attr);
206 mlx5e_tc_unoffload_from_slow_path(esw, flow);
217 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
244 rule = mlx5e_tc_offload_to_slow_path(esw, flow, spec);
253 mlx5e_tc_unoffload_fdb_rules(esw, flow, flow->attr);
408 struct mlx5_eswitch *esw; local
411 esw = priv->mdev->priv.eswitch;
412 mutex_lock(&esw->offloads.encap_tbl_lock);
429 mutex_unlock(&esw
485 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
498 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
511 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
531 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
561 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
650 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
670 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
710 mlx5e_set_vf_tunnel(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr, struct mlx5e_tc_mod_hdr_acts *mod_hdr_acts, struct net_device *out_dev, int route_dev_ifindex, int out_index) argument
752 mlx5e_update_vf_tunnel(struct mlx5_eswitch *esw, struct mlx5_esw_flow_attr *attr, struct mlx5e_tc_mod_hdr_acts *mod_hdr_acts, struct net_device *out_dev, int route_dev_ifindex, int out_index) argument
789 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
821 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
944 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1030 struct mlx5_eswitch *esw; local
1134 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1147 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1179 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1264 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1287 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1349 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1403 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1428 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1453 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1494 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1615 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1626 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; local
1690 struct mlx5_eswitch *esw; local
[all...]

Completed in 158 milliseconds

1234