Lines Matching defs:arfs_rule

85 struct arfs_rule {
426 struct arfs_rule *arfs_rule;
434 mlx5e_for_each_arfs_rule(arfs_rule, htmp, arfs->arfs_tables, i, j) {
435 if (!work_pending(&arfs_rule->arfs_work) &&
437 arfs_rule->rxq, arfs_rule->flow_id,
438 arfs_rule->filter_id)) {
439 hlist_del_init(&arfs_rule->hlist);
440 hlist_add_head(&arfs_rule->hlist, &del_list);
446 hlist_for_each_entry_safe(arfs_rule, htmp, &del_list, hlist) {
447 if (arfs_rule->rule) {
448 mlx5_del_flow_rules(arfs_rule->rule);
449 priv->channel_stats[arfs_rule->rxq]->rq.arfs_expired++;
451 hlist_del(&arfs_rule->hlist);
452 kfree(arfs_rule);
460 struct arfs_rule *rule;
514 struct arfs_rule *arfs_rule)
517 struct arfs_tuple *tuple = &arfs_rule->tuple;
528 priv->channel_stats[arfs_rule->rxq]->rq.arfs_err++;
597 dest.tir_num = mlx5e_rx_res_get_tirn_direct(priv->rx_res, arfs_rule->rxq);
601 priv->channel_stats[arfs_rule->rxq]->rq.arfs_err++;
604 __func__, arfs_rule->filter_id, arfs_rule->rxq,
631 struct arfs_rule *arfs_rule = container_of(work,
632 struct arfs_rule,
634 struct mlx5e_priv *priv = arfs_rule->priv;
642 if (!arfs_rule->rule) {
643 rule = arfs_add_rule(priv, arfs_rule);
646 arfs_rule->rule = rule;
647 priv->channel_stats[arfs_rule->rxq]->rq.arfs_add++;
649 arfs_modify_rule_rq(priv, arfs_rule->rule,
650 arfs_rule->rxq);
656 static struct arfs_rule *arfs_alloc_rule(struct mlx5e_priv *priv,
662 struct arfs_rule *rule;
716 static struct arfs_rule *arfs_find_rule(struct arfs_table *arfs_t,
719 struct arfs_rule *arfs_rule;
723 hlist_for_each_entry(arfs_rule, head, hlist) {
724 if (arfs_cmp(&arfs_rule->tuple, fk))
725 return arfs_rule;
736 struct arfs_rule *arfs_rule;
761 arfs_rule = arfs_find_rule(arfs_t, &fk);
762 if (arfs_rule) {
763 if (arfs_rule->rxq == rxq_index || work_busy(&arfs_rule->arfs_work)) {
765 return arfs_rule->filter_id;
769 priv->channel_stats[arfs_rule->rxq]->rq.arfs_request_out++;
770 arfs_rule->rxq = rxq_index;
772 arfs_rule = arfs_alloc_rule(priv, arfs_t, &fk, rxq_index, flow_id);
773 if (!arfs_rule) {
778 queue_work(arfs->wq, &arfs_rule->arfs_work);
780 return arfs_rule->filter_id;