Home
last modified time | relevance | path

Searched full:esw (Results 1 – 25 of 77) sorted by relevance

1234

/linux/drivers/net/ethernet/mellanox/mlx5/core/
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) in mlx5_eswitch_get_vport() argument
111 if (!esw) in mlx5_eswitch_get_vport()
114 vport = xa_load(&esw->vports, vport_num); in mlx5_eswitch_get_vport()
116 esw_debug(esw->dev, "vport out of range: num(0x%x)\n", 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() argument
250 esw_debug(esw->dev, in __esw_fdb_set_vport_rule()
256 mlx5_add_flow_rules(esw->fdb_table.legacy.fdb, spec, in __esw_fdb_set_vport_rule()
[all …]
H A Deswitch.h96 #define esw_chains(esw) \ argument
97 ((esw)->fdb_table.offloads.esw_chains_priv)
238 * esw->state_lock. See esw_assert_qos_lock_held() for more details.
350 struct mlx5_eswitch *esw; member
352 void (*func)(struct mlx5_eswitch *esw);
416 * lock or by esw->state_lock. See esw_assert_qos_lock_held() for more
445 void esw_offloads_disable(struct mlx5_eswitch *esw);
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);
[all …]
H A Deswitch_offloads_termtbl.c112 mlx5_eswitch_termtbl_get_create(struct mlx5_eswitch *esw, in mlx5_eswitch_termtbl_get_create() argument
122 mutex_lock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create()
124 hash_for_each_possible(esw->offloads.termtbl_tbl, tt, in mlx5_eswitch_termtbl_get_create()
147 err = mlx5_eswitch_termtbl_create(esw->dev, tt, flow_act); in mlx5_eswitch_termtbl_get_create()
151 hash_add(esw->offloads.termtbl_tbl, &tt->termtbl_hlist, hash_key); in mlx5_eswitch_termtbl_get_create()
154 mutex_unlock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create()
158 mutex_unlock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create()
163 mlx5_eswitch_termtbl_put(struct mlx5_eswitch *esw, in mlx5_eswitch_termtbl_put() argument
166 mutex_lock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_put()
169 mutex_unlock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_put()
[all …]
/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/
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) in esw_create_legacy_vepa_table() argument
25 struct mlx5_core_dev *dev = esw->dev; in esw_create_legacy_vepa_table()
46 esw->fdb_table.legacy.vepa_fdb = fdb; in esw_create_legacy_vepa_table()
51 static void esw_destroy_legacy_fdb_table(struct mlx5_eswitch *esw) in esw_destroy_legacy_fdb_table() argument
53 esw_debug(esw->dev, "Destroy FDB Table\n"); in esw_destroy_legacy_fdb_table()
54 if (!esw->fdb_table.legacy.fdb) in esw_destroy_legacy_fdb_table()
57 if (esw->fdb_table.legacy.promisc_grp) in esw_destroy_legacy_fdb_table()
[all …]
H A Dvporttbl.c25 esw_vport_tbl_init(struct mlx5_eswitch *esw, struct esw_vport_tbl_namespace *ns) in esw_vport_tbl_init() argument
27 if (esw->offloads.encap != DEVLINK_ESWITCH_ENCAP_MODE_NONE) in esw_vport_tbl_init()
33 esw_vport_tbl_create(struct mlx5_eswitch *esw, struct mlx5_flow_namespace *ns, in esw_vport_tbl_create() argument
42 ft_attr.autogroup.max_num_groups = esw->params.large_group_num; in esw_vport_tbl_create()
48 esw_warn(esw->dev, "Failed to create per vport FDB Table err %pe\n", in esw_vport_tbl_create()
55 static u32 flow_attr_to_vport_key(struct mlx5_eswitch *esw, in flow_attr_to_vport_key() argument
62 key->vhca_id = MLX5_CAP_GEN(esw->dev, vhca_id); 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() argument
73 hash_for_each_possible(esw->fdb_table.offloads.vports.table, e, hlist, 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() argument
[all …]
H A Ddevlink_port.c14 static bool mlx5_esw_devlink_port_supported(struct mlx5_eswitch *esw, u16 vport_num) in mlx5_esw_devlink_port_supported() argument
16 return (mlx5_core_is_ecpf(esw->dev) && in mlx5_esw_devlink_port_supported()
18 mlx5_eswitch_is_vf_vport(esw, vport_num) || in mlx5_esw_devlink_port_supported()
19 mlx5_core_is_ec_vf_vport(esw->dev, vport_num) || in mlx5_esw_devlink_port_supported()
20 mlx5_esw_is_spf_vport(esw, 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() argument
27 struct mlx5_core_dev *dev = esw->dev; in mlx5_esw_offloads_pf_vf_devlink_port_attrs_set()
46 } else if (mlx5_eswitch_is_vf_vport(esw, vport_num)) { in mlx5_esw_offloads_pf_vf_devlink_port_attrs_set()
49 vport = mlx5_eswitch_get_vport(esw, vport_num); in mlx5_esw_offloads_pf_vf_devlink_port_attrs_set()
61 } else if (mlx5_core_is_ec_vf_vport(esw->dev, vport_num)) { in mlx5_esw_offloads_pf_vf_devlink_port_attrs_set()
[all …]
H A Dqos.c6 #include "esw/qos.h"
47 struct mlx5_eswitch *esw; member
65 * mechanism. This is esw->state_lock.
67 * esw->state_lock. Devlink rate ops additionally hold the shd lock if it
70 * - callers with esw->state_lock held use esw_qos_shd_lock/esw_qos_shd_unlock.
132 node->esw = parent->esw; in esw_qos_node_set_parent()
162 int num_tcs = esw_qos_num_tcs(vport->qos.sched_node->esw->dev); in mlx5_esw_qos_vport_qos_free()
195 esw_warn(node->esw->dev, in esw_qos_sched_elem_warn()
200 esw_warn(node->esw->dev, in esw_qos_sched_elem_warn()
207 esw_warn(node->esw->dev, in esw_qos_sched_elem_warn()
[all …]
H A Dbridge.c44 static bool mlx5_esw_bridge_pkt_reformat_vlan_pop_supported(struct mlx5_eswitch *esw) in mlx5_esw_bridge_pkt_reformat_vlan_pop_supported() argument
46 return BIT(MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, reformat_remove)) && in mlx5_esw_bridge_pkt_reformat_vlan_pop_supported()
47 MLX5_CAP_GEN_2(esw->dev, max_reformat_remove_size) >= sizeof(struct vlan_hdr) && in mlx5_esw_bridge_pkt_reformat_vlan_pop_supported()
48 MLX5_CAP_GEN_2(esw->dev, max_reformat_remove_offset) >= 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() argument
61 return mlx5_packet_reformat_alloc(esw->dev, &reformat_params, MLX5_FLOW_NAMESPACE_FDB); 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() argument
68 struct mlx5_core_dev *dev = esw->dev; in mlx5_esw_bridge_table_create()
92 struct mlx5_eswitch *esw, in mlx5_esw_bridge_ingress_vlan_proto_fg_create() argument
124 esw_warn(esw->dev, in mlx5_esw_bridge_ingress_vlan_proto_fg_create()
[all …]
H A Dindir_table.c15 #include "esw/indir_table.h"
67 mlx5_esw_indir_table_needed(struct mlx5_eswitch *esw, in mlx5_esw_indir_table_needed() argument
75 vf_sf_vport = mlx5_eswitch_is_vf_vport(esw, vport_num) || in mlx5_esw_indir_table_needed()
76 mlx5_esw_is_sf_vport(esw, vport_num); in mlx5_esw_indir_table_needed()
83 esw->dev == dest_mdev && 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() argument
100 struct mlx5_fs_chains *chains = esw_chains(esw); in mlx5_esw_indir_table_rule_get()
119 data = mlx5_eswitch_get_vport_metadata_for_set(esw, esw_attr->rx_tun_attr->decap_vport); in mlx5_esw_indir_table_rule_get()
120 err = mlx5e_tc_match_to_reg_set(esw->dev, &mod_acts, MLX5_FLOW_NAMESPACE_FDB, in mlx5_esw_indir_table_rule_get()
125 err = mlx5e_tc_match_to_reg_set(esw->dev, &mod_acts, MLX5_FLOW_NAMESPACE_FDB, in mlx5_esw_indir_table_rule_get()
[all …]
H A Dbridge_mcast.c200 …esw_warn(bridge->br_offloads->esw->dev, "MDB attach entry is already attached to port (MAC=%pM,vid… in mlx5_esw_bridge_port_mdb_attach()
208 …esw_warn(bridge->br_offloads->esw->dev, "MDB attach failed to init entry (MAC=%pM,vid=%u,vport=%u,… in mlx5_esw_bridge_port_mdb_attach()
218 esw_warn(bridge->br_offloads->esw->dev, in mlx5_esw_bridge_port_mdb_attach()
229 …esw_warn(bridge->br_offloads->esw->dev, "MDB attach failed to offload (MAC=%pM,vid=%u,vport=%u,err… in mlx5_esw_bridge_port_mdb_attach()
253 …esw_warn(bridge->br_offloads->esw->dev, "MDB detach failed to offload (MAC=%pM,vid=%u,vport=%u)\n", in mlx5_esw_bridge_port_mdb_entry_detach()
265 esw_debug(bridge->br_offloads->esw->dev, in mlx5_esw_bridge_port_mdb_detach()
272 esw_debug(bridge->br_offloads->esw->dev, in mlx5_esw_bridge_port_mdb_detach()
313 struct mlx5_eswitch *esw = bridge->br_offloads->esw; in mlx5_esw_bridge_port_mcast_fts_init() local
318 esw); in mlx5_esw_bridge_port_mcast_fts_init()
334 mlx5_esw_bridge_mcast_filter_fg_create(struct mlx5_eswitch *esw, in mlx5_esw_bridge_mcast_filter_fg_create() 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, in mlx5_esw_indir_table_get() argument
51 mlx5_esw_indir_table_put(struct mlx5_eswitch *esw, in mlx5_esw_indir_table_put() argument
57 mlx5_esw_indir_table_needed(struct mlx5_eswitch *esw, in mlx5_esw_indir_table_needed() argument
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);
/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/
H A Dingress_ofld.c10 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() argument
16 return (MLX5_CAP_GEN(esw->dev, prio_tag_required) && in esw_acl_ingress_prio_tag_enabled()
17 mlx5_eswitch_is_vf_vport(esw, vport->vport)); 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() argument
55 esw_warn(esw->dev, 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() argument
73 key = mlx5_eswitch_get_vport_metadata_for_match(esw, vport->vport); in esw_acl_ingress_mod_metadata_create()
86 mlx5_modify_header_alloc(esw->dev, MLX5_FLOW_NAMESPACE_ESW_INGRESS, in esw_acl_ingress_mod_metadata_create()
90 esw_warn(esw->dev, in esw_acl_ingress_mod_metadata_create()
[all …]
H A Degress_ofld.c41 static int esw_acl_egress_ofld_fwd2vport_create(struct mlx5_eswitch *esw, in esw_acl_egress_ofld_fwd2vport_create() argument
48 esw_debug(esw->dev, "vport(%d) configure egress acl rule fwd2vport(%d)\n", in esw_acl_egress_ofld_fwd2vport_create()
61 esw_warn(esw->dev, 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() argument
77 if (MLX5_CAP_GEN(esw->dev, prio_tag_required)) { in esw_acl_egress_ofld_rules_create()
82 esw_debug(esw->dev, in esw_acl_egress_ofld_rules_create()
90 err = esw_egress_acl_vlan_create(esw, vport, fwd_dest, 0, action); in esw_acl_egress_ofld_rules_create()
96 err = esw_acl_egress_ofld_fwd2vport_create(esw, vport, fwd_dest); 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() argument
125 if (MLX5_CAP_GEN(esw->dev, prio_tag_required)) in esw_acl_egress_ofld_fwd_grp_create()
[all …]
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) in mlx5_esw_acl_egress_fwd2vport_supported() argument
20 return esw && esw->mode == MLX5_ESWITCH_OFFLOADS && in mlx5_esw_acl_egress_fwd2vport_supported()
21 mlx5_eswitch_vport_match_metadata_enabled(esw) && in mlx5_esw_acl_egress_fwd2vport_supported()
22 MLX5_CAP_ESW_FLOWTABLE(esw->dev, egress_acl_forward_to_vport); 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,
[all …]
H A Dingress_lgcy.c18 static int esw_acl_ingress_lgcy_groups_create(struct mlx5_eswitch *esw, in esw_acl_ingress_lgcy_groups_create() argument
22 struct mlx5_core_dev *dev = esw->dev; in esw_acl_ingress_lgcy_groups_create()
139 int esw_acl_ingress_lgcy_setup(struct mlx5_eswitch *esw, in esw_acl_ingress_lgcy_setup() argument
142 bool vst_mode_steering = esw_vst_mode_is_steering(esw); in esw_acl_ingress_lgcy_setup()
168 } else if (MLX5_CAP_ESW_INGRESS_ACL(esw->dev, flow_counter)) { in esw_acl_ingress_lgcy_setup()
169 counter = mlx5_fc_create(esw->dev, false); in esw_acl_ingress_lgcy_setup()
171 esw_warn(esw->dev, in esw_acl_ingress_lgcy_setup()
180 esw_acl_ingress_lgcy_cleanup(esw, vport); in esw_acl_ingress_lgcy_setup()
185 vport->ingress.acl = esw_acl_table_create(esw, vport, in esw_acl_ingress_lgcy_setup()
194 err = esw_acl_ingress_lgcy_groups_create(esw, vport); in esw_acl_ingress_lgcy_setup()
[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);
/linux/drivers/net/dsa/
H A Dmt7628.c3 * Mediatek MT7628 Embedded Switch (ESW) DSA driver
145 .name = "mt7628-esw",
173 struct mt7628_esw *esw = bus->priv; in mt7628_mii_read() local
181 ret = regmap_read(esw->regmap, MT7628_ESW_REG_PCR1, &val); in mt7628_mii_read()
185 ret = regmap_write(esw->regmap, MT7628_ESW_REG_PCR0, in mt7628_mii_read()
193 ret = regmap_read_poll_timeout(esw->regmap, MT7628_ESW_REG_PCR1, val, in mt7628_mii_read()
208 struct mt7628_esw *esw = bus->priv; in mt7628_mii_write() local
216 ret = regmap_read(esw->regmap, MT7628_ESW_REG_PCR1, &val); in mt7628_mii_write()
220 ret = regmap_write(esw->regmap, MT7628_ESW_REG_PCR0, in mt7628_mii_write()
229 ret = regmap_read_poll_timeout(esw->regmap, MT7628_ESW_REG_PCR1, val, in mt7628_mii_write()
[all …]
/linux/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) in mlx5_esw_bridge_dev_same_esw() argument
26 return esw == priv->mdev->priv.eswitch; 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() argument
35 esw_mdev = esw->dev; 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() argument
50 if (mlx5_esw_bridge_dev_same_esw(lower, 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() argument
65 dev = mlx5_esw_bridge_lag_rep_get(dev, esw); in mlx5_esw_bridge_rep_vport_num_vhca_id_get()
67 if (!dev || !mlx5e_eswitch_rep(dev) || !mlx5_esw_bridge_dev_same_hw(dev, esw)) in mlx5_esw_bridge_rep_vport_num_vhca_id_get()
[all …]
H A Dtc.c95 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; in mlx5e_rep_update_flows() local
101 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_rep_update_flows()
127 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_rep_update_flows()
205 struct mlx5_eswitch *esw; in mlx5e_rep_setup_ft_cb() local
212 esw = priv->mdev->priv.eswitch; in mlx5e_rep_setup_ft_cb()
218 if (!mlx5_chains_prios_supported(esw_chains(esw))) in mlx5e_rep_setup_ft_cb()
225 * it to range [1, mlx5_esw_chains_get_prio_range(esw)] in mlx5e_rep_setup_ft_cb()
230 if (tmp.common.prio >= mlx5_chains_get_prio_range(esw_chains(esw))) in mlx5e_rep_setup_ft_cb()
235 tmp.common.chain_index = mlx5_chains_get_nf_ft_chain(esw_chains(esw)); in mlx5e_rep_setup_ft_cb()
387 struct mlx5_eswitch *esw; in mlx5e_rep_indr_setup_ft_cb() local
[all …]
H A Dbond.c10 #include "esw/acl/ofld.h"
26 struct mlx5_eswitch *esw; member
74 mlx5_esw_match_metadata_free(mdata->esw, mdata->metadata_reg_c_0); in mlx5e_rep_bond_metadata_release()
80 int mlx5e_rep_bond_enslave(struct mlx5_eswitch *esw, struct net_device *netdev, in mlx5e_rep_bond_enslave() argument
91 rpriv = mlx5_eswitch_get_uplink_priv(esw, REP_ETH); in mlx5e_rep_bond_enslave()
100 mdata->esw = esw; in mlx5e_rep_bond_enslave()
102 mdata->metadata_reg_c_0 = mlx5_esw_match_metadata_alloc(esw); in mlx5e_rep_bond_enslave()
123 err = mlx5_esw_acl_ingress_vport_metadata_update(esw, rpriv->rep->vport, in mlx5e_rep_bond_enslave()
144 void mlx5e_rep_bond_unslave(struct mlx5_eswitch *esw, in mlx5e_rep_bond_unslave() argument
155 rpriv = mlx5_eswitch_get_uplink_priv(esw, REP_ETH); in mlx5e_rep_bond_unslave()
[all …]
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/tc/
H A Dsample.c24 struct mlx5_eswitch *esw; member
63 struct mlx5_eswitch *esw = tc_psample->esw; in sampler_termtbl_create() local
66 struct mlx5_core_dev *dev = esw->dev; in sampler_termtbl_create()
95 dest.vport.num = esw->manager_vport; in sampler_termtbl_create()
196 err = sampler_obj_create(tc_psample->esw->dev, sampler); in sampler_get()
220 sampler_obj_destroy(tc_psample->esw->dev, sampler->sampler_id); in sampler_put()
265 struct mlx5_eswitch *esw = tc_psample->esw; in sample_restore_get() local
266 struct mlx5_core_dev *mdev = esw->dev; in sample_restore_get()
290 restore->rule = esw_add_restore_rule(esw, obj_id); in sample_restore_get()
321 mlx5_modify_header_dealloc(tc_psample->esw->dev, restore->modify_hdr); in sample_restore_put()
[all …]
H A Dint_port.c31 bool mlx5e_tc_int_port_supported(const struct mlx5_eswitch *esw) in mlx5e_tc_int_port_supported() argument
33 return mlx5_eswitch_vport_match_metadata_enabled(esw) && in mlx5e_tc_int_port_supported()
34 MLX5_CAP_GEN(esw->dev, reg_c_preserve); in mlx5e_tc_int_port_supported()
61 mlx5e_int_port_create_rx_rule(struct mlx5_eswitch *esw, in mlx5e_int_port_create_rx_rule() argument
93 flow_rule = mlx5_add_flow_rules(esw->offloads.ft_offloads, spec, in mlx5e_int_port_create_rx_rule()
96 mlx5_core_warn(esw->dev, "ft offloads: Failed to add internal vport rx rule err %pe\n", in mlx5e_int_port_create_rx_rule()
154 struct mlx5_eswitch *esw = priv->dev->priv.eswitch; in mlx5e_int_port_add() local
176 …mlx5_core_warn(esw->dev, "Cannot add a new internal port, metadata allocation failed for ifindex %… in mlx5e_int_port_add()
182 ctx = esw->offloads.reg_c0_obj_pool; in mlx5e_int_port_add()
195 uplink_rpriv = mlx5_eswitch_get_uplink_priv(esw, REP_ETH); in mlx5e_int_port_add()
[all …]
/linux/tools/testing/selftests/drivers/net/hw/
H A Ddevlink_rate_cross_esw.py24 - cross-esw rate scheduling returns EOPNOTSUPP.
173 """Sets a leaf's parent, optionally cross-esw."""
191 raise KsftSkipEx("Cross-esw scheduling not supported") from e
215 """Assigns PF0's VF to PF0's group (same esw baseline)."""
226 ksft_pr("Same-esw parent assignment succeeded")
230 """Sets cross-esw parent, then clear it."""
243 ksft_pr("Cross-esw parent set and clear succeeded")
247 """Sets tx_max on group and tx_share on leaves in a cross-esw setup."""
259 ksft_pr("set parent cross-esw succeeded")
263 ksft_pr("set parent same esw succeeded")
[all …]
/linux/Documentation/devicetree/bindings/net/dsa/
H A Dmediatek,mt7628-esw.yaml4 $id: http://devicetree.org/schemas/net/dsa/mediatek,mt7628-esw.yaml#
23 const: mediatek,mt7628-esw
35 - const: esw
50 compatible = "mediatek,mt7628-esw";
54 reset-names = "esw", "ephy";

1234