/linux-master/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ |
H A D | ofld.h | 11 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 D | lgcy.h | 10 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 D | helper.h | 11 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 D | egress_ofld.c | 41 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 D | ingress_ofld.c | 10 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 D | egress_lgcy.c | 18 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 D | legacy.h | 13 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 D | legacy.c | 9 #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 D | qos.c | 6 #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 D | vporttbl.c | 25 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 D | indir_table.h | 14 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 D | devlink_port.c | 17 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 D | indir_table.c | 15 #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 D | bridge.c | 44 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 D | eswitch_offloads.c | 41 #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 D | eswitch.c | 40 #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 D | eswitch.h | 86 #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 D | eswitch_offloads_termtbl.c | 112 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 D | eswitch.h | 42 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 D | ib_rep.c | 25 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 D | ib_rep.h | 20 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 D | device_status.c | 125 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 D | sample.c | 24 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 D | bridge.c | 9 #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 D | tc_tun_encap.c | 147 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...] |