| /linux/drivers/net/ethernet/mellanox/mlx5/core/ |
| H A D | eswitch.h | 350 struct mlx5_eswitch *esw; 352 void (*func)(struct mlx5_eswitch *esw); 388 struct mlx5_eswitch { struct 445 void esw_offloads_disable(struct mlx5_eswitch *esw); argument 446 int esw_offloads_enable(struct mlx5_eswitch *esw); 447 int mlx5_esw_offloads_init_deferred_metadata(struct mlx5_eswitch *esw); 448 void esw_offloads_cleanup(struct mlx5_eswitch *esw); 449 int esw_offloads_init(struct mlx5_eswitch *esw); 452 mlx5_eswitch_add_send_to_vport_meta_rule(struct mlx5_eswitch *esw, u16 vport_num); 455 bool mlx5_esw_vport_match_metadata_supported(const struct mlx5_eswitch *esw); [all …]
|
| H A D | eswitch.c | 81 static struct mlx5_eswitch *__mlx5_devlink_eswitch_get(struct devlink *devlink, bool check) in __mlx5_devlink_eswitch_get() 95 struct mlx5_eswitch *__must_check 101 struct mlx5_eswitch *mlx5_devlink_eswitch_nocheck_get(struct devlink *devlink) in mlx5_devlink_eswitch_nocheck_get() 107 mlx5_eswitch_get_vport(struct mlx5_eswitch *esw, u16 vport_num) in mlx5_eswitch_get_vport() 207 __esw_fdb_set_vport_rule(struct mlx5_eswitch *esw, u16 vport, bool rx_rule, in __esw_fdb_set_vport_rule() 270 esw_fdb_set_vport_rule(struct mlx5_eswitch *esw, u8 mac[ETH_ALEN], u16 vport) in esw_fdb_set_vport_rule() 279 esw_fdb_set_vport_allmulti_rule(struct mlx5_eswitch *esw, u16 vport) in esw_fdb_set_vport_allmulti_rule() 292 esw_fdb_set_vport_promisc_rule(struct mlx5_eswitch *esw, u16 vport) in esw_fdb_set_vport_promisc_rule() 303 typedef int (*vport_addr_action)(struct mlx5_eswitch *esw, 306 static int esw_add_uc_addr(struct mlx5_eswitch *esw, struct vport_addr *vaddr) in esw_add_uc_addr() [all …]
|
| H A D | eswitch_offloads_termtbl.c | 112 mlx5_eswitch_termtbl_get_create(struct mlx5_eswitch *esw, in mlx5_eswitch_termtbl_get_create() 163 mlx5_eswitch_termtbl_put(struct mlx5_eswitch *esw, in mlx5_eswitch_termtbl_put() 197 static bool mlx5_eswitch_offload_is_uplink_port(const struct mlx5_eswitch *esw, in mlx5_eswitch_offload_is_uplink_port() 214 mlx5_eswitch_termtbl_required(struct mlx5_eswitch *esw, in mlx5_eswitch_termtbl_required() 244 mlx5_eswitch_add_termtbl_rule(struct mlx5_eswitch *esw, in mlx5_eswitch_add_termtbl_rule()
|
| /linux/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) in mlx5_esw_acl_egress_fwd2vport_supported() 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, struct mlx5_vport *vport); 28 int mlx5_esw_acl_ingress_vport_metadata_update(struct mlx5_eswitch *esw, u16 vport_num, 30 void mlx5_esw_acl_ingress_vport_drop_rule_destroy(struct mlx5_eswitch *esw, u16 vport_num); 31 int mlx5_esw_acl_ingress_vport_drop_rule_create(struct mlx5_eswitch *esw, u16 vport_num); 35 mlx5_esw_acl_ingress_vport_drop_rule_destroy(struct mlx5_eswitch *esw, in mlx5_esw_acl_ingress_vport_drop_rule_destroy() [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 | ingress_ofld.c | 10 acl_ingress_ofld_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport); 13 esw_acl_ingress_prio_tag_enabled(struct mlx5_eswitch *esw, in esw_acl_ingress_prio_tag_enabled() 20 static int esw_acl_ingress_prio_tag_create(struct mlx5_eswitch *esw, in esw_acl_ingress_prio_tag_create() 65 static int esw_acl_ingress_mod_metadata_create(struct mlx5_eswitch *esw, in esw_acl_ingress_mod_metadata_create() 113 static void esw_acl_ingress_mod_metadata_destroy(struct mlx5_eswitch *esw, in esw_acl_ingress_mod_metadata_destroy() 124 static int esw_acl_ingress_src_port_drop_create(struct mlx5_eswitch *esw, in esw_acl_ingress_src_port_drop_create() 157 static void esw_acl_ingress_src_port_drop_destroy(struct mlx5_eswitch *esw, in esw_acl_ingress_src_port_drop_destroy() 167 static int esw_acl_ingress_ofld_rules_create(struct mlx5_eswitch *esw, in esw_acl_ingress_ofld_rules_create() 199 static void esw_acl_ingress_ofld_rules_destroy(struct mlx5_eswitch *esw, in esw_acl_ingress_ofld_rules_destroy() 207 static int esw_acl_ingress_ofld_groups_create(struct mlx5_eswitch *esw, in esw_acl_ingress_ofld_groups_create() [all …]
|
| 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, in esw_acl_egress_ofld_fwd2vport_create() 70 static int esw_acl_egress_ofld_rules_create(struct mlx5_eswitch *esw, in esw_acl_egress_ofld_rules_create() 116 static int esw_acl_egress_ofld_fwd_grp_create(struct mlx5_eswitch *esw, in esw_acl_egress_ofld_fwd_grp_create() 170 static bool esw_acl_egress_needed(struct mlx5_eswitch *esw, u16 vport_num) in esw_acl_egress_needed() 175 int esw_acl_egress_ofld_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) in esw_acl_egress_ofld_setup() 233 static int esw_acl_egress_ofld_fwd2vport_setup(struct mlx5_eswitch *esw, in esw_acl_egress_ofld_fwd2vport_setup() 257 int mlx5_esw_acl_egress_vport_bond(struct mlx5_eswitch *esw, u16 active_vport_num, in mlx5_esw_acl_egress_vport_bond() 294 int mlx5_esw_acl_egress_vport_unbond(struct mlx5_eswitch *esw, u16 vport_num) in mlx5_esw_acl_egress_vport_unbond()
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/esw/ |
| 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, in mlx5_esw_indir_table_get() 51 mlx5_esw_indir_table_put(struct mlx5_eswitch *esw, in mlx5_esw_indir_table_put() 57 mlx5_esw_indir_table_needed(struct mlx5_eswitch *esw, in mlx5_esw_indir_table_needed()
|
| H A D | legacy.h | 11 struct mlx5_eswitch; 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 | 22 static int esw_create_legacy_vepa_table(struct mlx5_eswitch *esw) in esw_create_legacy_vepa_table() 51 static void esw_destroy_legacy_fdb_table(struct mlx5_eswitch *esw) in esw_destroy_legacy_fdb_table() 71 static int esw_create_legacy_fdb_table(struct mlx5_eswitch *esw) in esw_create_legacy_fdb_table() 166 static void esw_destroy_legacy_vepa_table(struct mlx5_eswitch *esw) in esw_destroy_legacy_vepa_table() 176 static int esw_create_legacy_table(struct mlx5_eswitch *esw) in esw_create_legacy_table() 184 static void esw_cleanup_vepa_rules(struct mlx5_eswitch *esw) in esw_cleanup_vepa_rules() 196 static void esw_destroy_legacy_table(struct mlx5_eswitch *esw) in esw_destroy_legacy_table() 207 int esw_legacy_enable(struct mlx5_eswitch *esw) in esw_legacy_enable() 226 void esw_legacy_disable(struct mlx5_eswitch *esw) in esw_legacy_disable() 239 static int _mlx5_eswitch_set_vepa_locked(struct mlx5_eswitch *esw, in _mlx5_eswitch_set_vepa_locked() [all …]
|
| H A D | devlink_port.c | 14 static bool mlx5_esw_devlink_port_supported(struct mlx5_eswitch *esw, u16 vport_num) in mlx5_esw_devlink_port_supported() 23 static void mlx5_esw_offloads_pf_vf_devlink_port_attrs_set(struct mlx5_eswitch *esw, in mlx5_esw_offloads_pf_vf_devlink_port_attrs_set() 81 int mlx5_esw_offloads_pf_vf_devlink_port_init(struct mlx5_eswitch *esw, in mlx5_esw_offloads_pf_vf_devlink_port_init() 102 void mlx5_esw_offloads_pf_vf_devlink_port_cleanup(struct mlx5_eswitch *esw, in mlx5_esw_offloads_pf_vf_devlink_port_cleanup() 131 static void mlx5_esw_offloads_sf_devlink_port_attrs_set(struct mlx5_eswitch *esw, in mlx5_esw_offloads_sf_devlink_port_attrs_set() 149 int mlx5_esw_offloads_sf_devlink_port_init(struct mlx5_eswitch *esw, struct mlx5_vport *vport, in mlx5_esw_offloads_sf_devlink_port_init() 160 void mlx5_esw_offloads_sf_devlink_port_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport) in mlx5_esw_offloads_sf_devlink_port_cleanup() 181 static int mlx5_esw_devlink_port_res_register(struct mlx5_eswitch *esw, in mlx5_esw_devlink_port_res_register() 221 int mlx5_esw_offloads_devlink_port_register(struct mlx5_eswitch *esw, struct mlx5_vport *vport) in mlx5_esw_offloads_devlink_port_register() 279 struct devlink_port *mlx5_esw_offloads_devlink_port(struct mlx5_eswitch *esw, u16 vport_num) in mlx5_esw_offloads_devlink_port()
|
| H A D | vporttbl.c | 25 esw_vport_tbl_init(struct mlx5_eswitch *esw, struct esw_vport_tbl_namespace *ns) in esw_vport_tbl_init() 33 esw_vport_tbl_create(struct mlx5_eswitch *esw, struct mlx5_flow_namespace *ns, in esw_vport_tbl_create() 55 static u32 flow_attr_to_vport_key(struct mlx5_eswitch *esw, in flow_attr_to_vport_key() 69 esw_vport_tbl_lookup(struct mlx5_eswitch *esw, struct mlx5_vport_key *skey, u32 key) in esw_vport_tbl_lookup() 81 mlx5_esw_vporttbl_get(struct mlx5_eswitch *esw, struct mlx5_vport_tbl_attr *attr) in mlx5_esw_vporttbl_get() 132 mlx5_esw_vporttbl_put(struct mlx5_eswitch *esw, struct mlx5_vport_tbl_attr *attr) in mlx5_esw_vporttbl_put()
|
| H A D | bridge.c | 44 static bool mlx5_esw_bridge_pkt_reformat_vlan_pop_supported(struct mlx5_eswitch *esw) in mlx5_esw_bridge_pkt_reformat_vlan_pop_supported() 53 mlx5_esw_bridge_pkt_reformat_vlan_pop_create(struct mlx5_eswitch *esw) in mlx5_esw_bridge_pkt_reformat_vlan_pop_create() 65 mlx5_esw_bridge_table_create(int max_fte, u32 level, struct mlx5_eswitch *esw) in mlx5_esw_bridge_table_create() 92 struct mlx5_eswitch *esw, in mlx5_esw_bridge_ingress_vlan_proto_fg_create() 132 mlx5_esw_bridge_ingress_vlan_fg_create(struct mlx5_eswitch *esw, in mlx5_esw_bridge_ingress_vlan_fg_create() 142 mlx5_esw_bridge_ingress_qinq_fg_create(struct mlx5_eswitch *esw, in mlx5_esw_bridge_ingress_qinq_fg_create() 154 u16 vlan_proto, struct mlx5_eswitch *esw, in mlx5_esw_bridge_ingress_vlan_proto_filter_fg_create() 191 mlx5_esw_bridge_ingress_vlan_filter_fg_create(struct mlx5_eswitch *esw, in mlx5_esw_bridge_ingress_vlan_filter_fg_create() 202 mlx5_esw_bridge_ingress_qinq_filter_fg_create(struct mlx5_eswitch *esw, in mlx5_esw_bridge_ingress_qinq_filter_fg_create() 213 mlx5_esw_bridge_ingress_mac_fg_create(struct mlx5_eswitch *esw, struct mlx5_flow_table *ingress_ft) in mlx5_esw_bridge_ingress_mac_fg_create() [all …]
|
| H A D | indir_table.c | 67 mlx5_esw_indir_table_needed(struct mlx5_eswitch *esw, in mlx5_esw_indir_table_needed() 95 static int mlx5_esw_indir_table_rule_get(struct mlx5_eswitch *esw, in mlx5_esw_indir_table_rule_get() 171 static void mlx5_esw_indir_table_rule_put(struct mlx5_eswitch *esw, in mlx5_esw_indir_table_rule_put() 209 static int mlx5_create_indir_fwd_group(struct mlx5_eswitch *esw, in mlx5_create_indir_fwd_group() 248 mlx5_esw_indir_table_entry_create(struct mlx5_eswitch *esw, struct mlx5_flow_attr *attr, in mlx5_esw_indir_table_entry_create() 311 mlx5_esw_indir_table_entry_lookup(struct mlx5_eswitch *esw, u16 vport) in mlx5_esw_indir_table_entry_lookup() 323 struct mlx5_flow_table *mlx5_esw_indir_table_get(struct mlx5_eswitch *esw, in mlx5_esw_indir_table_get() 356 void mlx5_esw_indir_table_put(struct mlx5_eswitch *esw, in mlx5_esw_indir_table_put()
|
| H A D | qos.c | 47 struct mlx5_eswitch *esw; 609 struct mlx5_eswitch *esw = tc_arbiter_node->esw; in esw_qos_set_tc_arbiter_bw_shares() 642 struct mlx5_eswitch *esw = tc_arbiter_node->esw; in esw_qos_create_vports_tc_nodes() 723 static int esw_qos_get(struct mlx5_eswitch *esw, struct netlink_ext_ack *extack); 724 static void esw_qos_put(struct mlx5_eswitch *esw); 727 esw_qos_create_vports_sched_node(struct mlx5_eswitch *esw, struct netlink_ext_ack *extack) in esw_qos_create_vports_sched_node() 749 struct mlx5_eswitch *esw = node->esw; in __esw_qos_destroy_node() 759 static int esw_qos_create(struct mlx5_eswitch *esw, struct netlink_ext_ack *extack) in esw_qos_create() 793 static void esw_qos_destroy(struct mlx5_eswitch *esw) in esw_qos_destroy() 799 static int esw_qos_get(struct mlx5_eswitch *esw, struct netlink_ext_ack *extack) in esw_qos_get() [all …]
|
| H A D | bridge.h | 18 struct mlx5_eswitch *esw; 46 struct mlx5_esw_bridge_offloads *mlx5_esw_bridge_init(struct mlx5_eswitch *esw); 47 void mlx5_esw_bridge_cleanup(struct mlx5_eswitch *esw);
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/lag/ |
| H A D | shared_fdb.c | 55 struct mlx5_eswitch *master_esw; in mlx5_lag_create_single_fdb_filter() 66 struct mlx5_eswitch *slave_esw; in mlx5_lag_create_single_fdb_filter() 82 struct mlx5_eswitch *slave_esw; in mlx5_lag_create_single_fdb_filter() 97 struct mlx5_eswitch *master_esw; in mlx5_lag_create_vport_lag() 109 struct mlx5_eswitch *slave_esw; in mlx5_lag_create_vport_lag() 125 struct mlx5_eswitch *slave_esw; in mlx5_lag_create_vport_lag() 140 struct mlx5_eswitch *master_esw; in mlx5_lag_destroy_vport_lag() 167 struct mlx5_eswitch *master_esw; in mlx5_lag_destroy_single_fdb_filter() 168 struct mlx5_eswitch *peer_esw; in mlx5_lag_destroy_single_fdb_filter()
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/en/rep/ |
| H A D | bridge.c | 22 static bool mlx5_esw_bridge_dev_same_esw(struct net_device *dev, struct mlx5_eswitch *esw) in mlx5_esw_bridge_dev_same_esw() 29 static bool mlx5_esw_bridge_dev_same_hw(struct net_device *dev, struct mlx5_eswitch *esw) in mlx5_esw_bridge_dev_same_hw() 41 mlx5_esw_bridge_lag_rep_get(struct net_device *dev, struct mlx5_eswitch *esw) in mlx5_esw_bridge_lag_rep_get() 58 mlx5_esw_bridge_rep_vport_num_vhca_id_get(struct net_device *dev, struct mlx5_eswitch *esw, in mlx5_esw_bridge_rep_vport_num_vhca_id_get() 82 mlx5_esw_bridge_lower_rep_vport_num_vhca_id_get(struct net_device *dev, struct mlx5_eswitch *esw, in mlx5_esw_bridge_lower_rep_vport_num_vhca_id_get() 108 struct mlx5_eswitch *esw) in mlx5_esw_bridge_is_local() 131 struct mlx5_eswitch *esw = br_offloads->esw; in mlx5_esw_bridge_port_changeupper() 428 struct mlx5_eswitch *esw = br_offloads->esw; in mlx5_esw_bridge_switchdev_event() 518 struct mlx5_eswitch *esw = in mlx5e_rep_bridge_init() 579 struct mlx5_eswitch *esw = in mlx5e_rep_bridge_cleanup()
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/en/ |
| H A D | tc_priv.h | 138 mlx5e_tc_offload_fdb_rules(struct mlx5_eswitch *esw, 197 void mlx5e_tc_unoffload_from_slow_path(struct mlx5_eswitch *esw, 200 mlx5e_tc_offload_to_slow_path(struct mlx5_eswitch *esw, 204 void mlx5e_tc_unoffload_fdb_rules(struct mlx5_eswitch *esw,
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ |
| H A D | int_port.c | 31 bool mlx5e_tc_int_port_supported(const struct mlx5_eswitch *esw) in mlx5e_tc_int_port_supported() 61 mlx5e_int_port_create_rx_rule(struct mlx5_eswitch *esw, in mlx5e_int_port_create_rx_rule() 154 struct mlx5_eswitch *esw = priv->dev->priv.eswitch; in mlx5e_int_port_add() 230 struct mlx5_eswitch *esw = priv->dev->priv.eswitch; in mlx5e_int_port_remove() 308 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; in mlx5e_tc_int_port_init() 362 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; in mlx5e_tc_int_port_init_rep_rx() 382 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; in mlx5e_tc_int_port_cleanup_rep_rx()
|
| H A D | int_port.h | 18 bool mlx5e_tc_int_port_supported(const struct mlx5_eswitch *esw); 56 static inline bool mlx5e_tc_int_port_supported(const struct mlx5_eswitch *esw) in mlx5e_tc_int_port_supported()
|
| H A D | sample.h | 37 mlx5e_tc_sample_init(struct mlx5_eswitch *esw, struct mlx5e_post_act *post_act); 56 mlx5e_tc_sample_init(struct mlx5_eswitch *esw, struct mlx5e_post_act *post_act) in mlx5e_tc_sample_init()
|
| H A D | sample.c | 24 struct mlx5_eswitch *esw; 63 struct mlx5_eswitch *esw = tc_psample->esw; in sampler_termtbl_create() 265 struct mlx5_eswitch *esw = tc_psample->esw; in sample_restore_get() 342 add_post_rule(struct mlx5_eswitch *esw, struct mlx5e_sample_flow *sample_flow, in add_post_rule() 407 del_post_rule(struct mlx5_eswitch *esw, struct mlx5e_sample_flow *sample_flow, in del_post_rule() 480 struct mlx5_eswitch *esw; in mlx5e_tc_sample_offload() 594 struct mlx5_eswitch *esw; in mlx5e_tc_sample_unoffload() 617 mlx5e_tc_sample_init(struct mlx5_eswitch *esw, struct mlx5e_post_act *post_act) in mlx5e_tc_sample_init()
|
| /linux/drivers/infiniband/hw/mlx5/ |
| 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, in mlx5_ib_get_rep_netdev()
|