Lines Matching refs:prio

56 	u32 prio;
60 struct prio {
83 .head_offset = offsetof(struct prio, node),
84 .key_offset = offsetof(struct prio, key),
85 .key_len = sizeof_field(struct prio, key),
153 u32 chain, u32 prio, u32 level)
173 /* The root table(chain 0, prio 1, level 0) is required to be
174 * connected to the previous fs_core managed prio.
179 (chain == 0 && prio == 1 && level == 0)) {
181 ft_attr.prio = chains->fs_base_prio + prio - 1;
187 ft_attr.prio = chains->fs_base_prio;
203 mlx5_core_warn(chains->dev, "Failed to create chains table err %d (chain: %d, prio: %d, level: %d, size: %d)\n",
204 (int)PTR_ERR(ft), chain, prio, level, sz);
395 mlx5_chains_update_prio_prevs(struct prio *prio,
399 struct fs_chain *chain = prio->chain;
400 struct prio *pos;
403 if (prio->key.level)
410 pos = prio;
429 pos = prio;
459 static struct prio *
461 u32 chain, u32 prio, u32 level)
470 struct prio *prio_s;
485 /* Chain's prio list is sorted by prio and level.
486 * And all levels of some prio point to the next prio's level 0.
487 * Example list (prio, level):
501 struct prio *p = list_entry(pos, struct prio, list);
504 if (prio < p->key.prio || (prio == p->key.prio &&
512 ft = mlx5_chains_create_table(chains, chain, prio, level);
540 prio_s->key.prio = prio;
579 struct prio *prio)
581 struct fs_chain *chain = prio->chain;
583 WARN_ON(mlx5_chains_update_prio_prevs(prio,
584 prio->next_ft));
586 list_del(&prio->list);
587 rhashtable_remove_fast(&prios_ht(chains), &prio->node,
589 mlx5_del_flow_rules(prio->miss_rule);
590 mlx5_destroy_flow_group(prio->miss_group);
591 mlx5_destroy_flow_table(prio->ft);
593 kvfree(prio);
597 mlx5_chains_get_table(struct mlx5_fs_chains *chains, u32 chain, u32 prio,
601 struct prio *prio_s;
607 prio > mlx5_chains_get_prio_range(chains) ||
615 prev_fts = mlx5_chains_get_table(chains, chain, prio, l);
623 key.prio = prio;
631 prio, level);
645 mlx5_chains_put_table(chains, chain, prio, l);
650 mlx5_chains_put_table(struct mlx5_fs_chains *chains, u32 chain, u32 prio,
653 struct prio *prio_s;
657 key.prio = prio;
671 mlx5_chains_put_table(chains, chain, prio, level);
678 "Couldn't find table: (chain: %d prio: %d level: %d)",
679 chain, prio, level);
691 u32 chain, prio, level;
703 prio = mlx5_chains_get_prio_range(chains);
706 return mlx5_chains_create_table(chains, chain, prio, level);