Lines Matching refs:esw

25 esw_vport_tbl_init(struct mlx5_eswitch *esw, struct esw_vport_tbl_namespace *ns)
27 if (esw->offloads.encap != DEVLINK_ESWITCH_ENCAP_MODE_NONE)
33 esw_vport_tbl_create(struct mlx5_eswitch *esw, struct mlx5_flow_namespace *ns,
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,
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)
73 hash_for_each_possible(esw->fdb_table.offloads.vports.table, e, hlist, key)
81 mlx5_esw_vporttbl_get(struct mlx5_eswitch *esw, struct mlx5_vport_tbl_attr *attr)
83 struct mlx5_core_dev *dev = esw->dev;
90 mutex_lock(&esw->fdb_table.offloads.vports.lock);
91 esw_vport_tbl_init(esw, attr->vport_ns);
92 hkey = flow_attr_to_vport_key(esw, attr, &skey);
93 e = esw_vport_tbl_lookup(esw, &skey, hkey);
112 fdb = esw_vport_tbl_create(esw, ns, attr->vport_ns);
119 hash_add(esw->fdb_table.offloads.vports.table, &e->hlist, hkey);
121 mutex_unlock(&esw->fdb_table.offloads.vports.lock);
127 mutex_unlock(&esw->fdb_table.offloads.vports.lock);
132 mlx5_esw_vporttbl_put(struct mlx5_eswitch *esw, struct mlx5_vport_tbl_attr *attr)
138 mutex_lock(&esw->fdb_table.offloads.vports.lock);
139 esw_vport_tbl_init(esw, attr->vport_ns);
140 hkey = flow_attr_to_vport_key(esw, attr, &key);
141 e = esw_vport_tbl_lookup(esw, &key, hkey);
149 mutex_unlock(&esw->fdb_table.offloads.vports.lock);