Lines Matching defs:vgroup
156 struct mlxsw_sp_acl_tcam_vgroup *vgroup;
181 struct mlxsw_sp_acl_tcam_vgroup *vgroup;
259 struct mlxsw_sp_acl_tcam_vgroup *vgroup,
269 vgroup->patterns = patterns;
270 vgroup->patterns_count = patterns_count;
271 vgroup->vregion_rehash_enabled = vregion_rehash_enabled;
272 vgroup->p_min_prio = p_min_prio;
273 vgroup->p_max_prio = p_max_prio;
276 vgroup->tmplt_elusage_set = true;
277 memcpy(&vgroup->tmplt_elusage, tmplt_elusage,
278 sizeof(vgroup->tmplt_elusage));
280 INIT_LIST_HEAD(&vgroup->vregion_list);
282 err = mlxsw_sp_acl_tcam_group_add(tcam, &vgroup->group);
286 err = rhashtable_init(&vgroup->vchunk_ht,
294 mlxsw_sp_acl_tcam_group_del(&vgroup->group);
299 mlxsw_sp_acl_tcam_vgroup_del(struct mlxsw_sp_acl_tcam_vgroup *vgroup)
301 rhashtable_destroy(&vgroup->vchunk_ht);
302 mlxsw_sp_acl_tcam_group_del(&vgroup->group);
303 WARN_ON(!list_empty(&vgroup->vregion_list));
368 mlxsw_sp_acl_tcam_vgroup_prio_update(struct mlxsw_sp_acl_tcam_vgroup *vgroup)
372 if (list_empty(&vgroup->vregion_list))
374 vregion = list_first_entry(&vgroup->vregion_list,
376 *vgroup->p_min_prio = mlxsw_sp_acl_tcam_vregion_prio(vregion);
377 vregion = list_last_entry(&vgroup->vregion_list,
379 *vgroup->p_max_prio = mlxsw_sp_acl_tcam_vregion_max_prio(vregion);
446 struct mlxsw_sp_acl_tcam_vgroup *vgroup,
455 list_for_each(pos, &vgroup->vregion_list) {
462 err = mlxsw_sp_acl_tcam_group_region_attach(mlxsw_sp, &vgroup->group,
487 mlxsw_sp_acl_tcam_vgroup_vregion_find(struct mlxsw_sp_acl_tcam_vgroup *vgroup,
496 list_for_each(pos, &vgroup->vregion_list) {
502 if (pos->next != &vgroup->vregion_list) { /* not last */
543 mlxsw_sp_acl_tcam_vgroup_use_patterns(struct mlxsw_sp_acl_tcam_vgroup *vgroup,
553 if (vgroup->tmplt_elusage_set) {
554 memcpy(out, &vgroup->tmplt_elusage, sizeof(*out));
559 for (i = 0; i < vgroup->patterns_count; i++) {
560 pattern = &vgroup->patterns[i];
771 struct mlxsw_sp_acl_tcam_vgroup *vgroup,
777 struct mlxsw_sp_acl_tcam *tcam = vgroup->group.tcam;
788 vregion->vgroup = vgroup;
804 err = mlxsw_sp_acl_tcam_vgroup_vregion_attach(mlxsw_sp, vgroup, vregion,
809 if (vgroup->vregion_rehash_enabled && ops->region_rehash_hints_get) {
835 struct mlxsw_sp_acl_tcam_vgroup *vgroup = vregion->vgroup;
838 if (vgroup->vregion_rehash_enabled && ops->region_rehash_hints_get) {
859 struct mlxsw_sp_acl_tcam_vgroup *vgroup,
867 vregion = mlxsw_sp_acl_tcam_vgroup_vregion_find(vgroup, priority,
884 mlxsw_sp_acl_tcam_vgroup_use_patterns(vgroup, elusage,
887 return mlxsw_sp_acl_tcam_vregion_create(mlxsw_sp, vgroup, priority,
930 struct mlxsw_sp_acl_tcam_vgroup *vgroup,
947 vchunk->vgroup = vgroup;
950 vregion = mlxsw_sp_acl_tcam_vregion_get(mlxsw_sp, vgroup,
959 err = rhashtable_insert_fast(&vgroup->vchunk_ht, &vchunk->ht_node,
983 mlxsw_sp_acl_tcam_vgroup_prio_update(vgroup);
988 rhashtable_remove_fast(&vgroup->vchunk_ht, &vchunk->ht_node,
1002 struct mlxsw_sp_acl_tcam_vgroup *vgroup = vchunk->vgroup;
1011 rhashtable_remove_fast(&vgroup->vchunk_ht, &vchunk->ht_node,
1015 mlxsw_sp_acl_tcam_vgroup_prio_update(vgroup);
1020 struct mlxsw_sp_acl_tcam_vgroup *vgroup,
1026 vchunk = rhashtable_lookup_fast(&vgroup->vchunk_ht, &priority,
1035 return mlxsw_sp_acl_tcam_vchunk_create(mlxsw_sp, vgroup,
1109 struct mlxsw_sp_acl_tcam_vgroup *vgroup,
1117 vchunk = mlxsw_sp_acl_tcam_vchunk_get(mlxsw_sp, vgroup, rulei->priority,
1680 struct mlxsw_sp_acl_tcam_vgroup vgroup;
1697 return mlxsw_sp_acl_tcam_vgroup_add(mlxsw_sp, tcam, &ruleset->vgroup,
1710 mlxsw_sp_acl_tcam_vgroup_del(&ruleset->vgroup);
1721 return mlxsw_sp_acl_tcam_group_bind(mlxsw_sp, &ruleset->vgroup.group,
1733 mlxsw_sp_acl_tcam_group_unbind(mlxsw_sp, &ruleset->vgroup.group,
1742 return mlxsw_sp_acl_tcam_group_id(&ruleset->vgroup.group);
1753 return mlxsw_sp_acl_tcam_ventry_add(mlxsw_sp, &ruleset->vgroup,
1799 struct mlxsw_sp_acl_tcam_vgroup vgroup;
1817 err = mlxsw_sp_acl_tcam_vgroup_add(mlxsw_sp, tcam, &ruleset->vgroup,
1832 &ruleset->vgroup, 1,
1842 mlxsw_sp_acl_tcam_vgroup_del(&ruleset->vgroup);
1852 mlxsw_sp_acl_tcam_vgroup_del(&ruleset->vgroup);
1877 return mlxsw_sp_acl_tcam_group_id(&ruleset->vgroup.group);
1888 return mlxsw_sp_acl_tcam_ventry_add(mlxsw_sp, &ruleset->vgroup,