Lines Matching refs:r
58 struct fib_rule *r; in fib_default_rule_add() local
60 r = kzalloc(ops->rule_size, GFP_KERNEL_ACCOUNT); in fib_default_rule_add()
61 if (r == NULL) in fib_default_rule_add()
64 refcount_set(&r->refcnt, 1); in fib_default_rule_add()
65 r->action = FR_ACT_TO_TBL; in fib_default_rule_add()
66 r->pref = pref; in fib_default_rule_add()
67 r->table = table; in fib_default_rule_add()
68 r->flags = flags; in fib_default_rule_add()
69 r->proto = RTPROT_KERNEL; in fib_default_rule_add()
70 r->fr_net = ops->fro_net; in fib_default_rule_add()
71 r->uid_range = fib_kuid_range_unset; in fib_default_rule_add()
73 r->suppress_prefixlen = -1; in fib_default_rule_add()
74 r->suppress_ifgroup = -1; in fib_default_rule_add()
78 list_add_tail(&r->list, &ops->rules_list); in fib_default_rule_add()
423 struct fib_rule *r; in rule_find() local
425 list_for_each_entry(r, &ops->rules_list, list) { in rule_find()
426 if (rule->action && r->action != rule->action) in rule_find()
429 if (rule->table && r->table != rule->table) in rule_find()
432 if (user_priority && r->pref != rule->pref) in rule_find()
436 memcmp(r->iifname, rule->iifname, IFNAMSIZ)) in rule_find()
440 memcmp(r->oifname, rule->oifname, IFNAMSIZ)) in rule_find()
443 if (rule->mark && r->mark != rule->mark) in rule_find()
447 r->suppress_ifgroup != rule->suppress_ifgroup) in rule_find()
451 r->suppress_prefixlen != rule->suppress_prefixlen) in rule_find()
454 if (rule->mark_mask && r->mark_mask != rule->mark_mask) in rule_find()
457 if (rule->tun_id && r->tun_id != rule->tun_id) in rule_find()
460 if (r->fr_net != rule->fr_net) in rule_find()
463 if (rule->l3mdev && r->l3mdev != rule->l3mdev) in rule_find()
467 (!uid_eq(r->uid_range.start, rule->uid_range.start) || in rule_find()
468 !uid_eq(r->uid_range.end, rule->uid_range.end))) in rule_find()
471 if (rule->ip_proto && r->ip_proto != rule->ip_proto) in rule_find()
474 if (rule->proto && r->proto != rule->proto) in rule_find()
478 !fib_rule_port_range_compare(&r->sport_range, in rule_find()
483 !fib_rule_port_range_compare(&r->dport_range, in rule_find()
487 if (!ops->compare(r, frh, tb)) in rule_find()
489 return r; in rule_find()
689 struct fib_rule *r; in rule_exists() local
691 list_for_each_entry(r, &ops->rules_list, list) { in rule_exists()
692 if (r->action != rule->action) in rule_exists()
695 if (r->table != rule->table) in rule_exists()
698 if (r->pref != rule->pref) in rule_exists()
701 if (memcmp(r->iifname, rule->iifname, IFNAMSIZ)) in rule_exists()
704 if (memcmp(r->oifname, rule->oifname, IFNAMSIZ)) in rule_exists()
707 if (r->mark != rule->mark) in rule_exists()
710 if (r->suppress_ifgroup != rule->suppress_ifgroup) in rule_exists()
713 if (r->suppress_prefixlen != rule->suppress_prefixlen) in rule_exists()
716 if (r->mark_mask != rule->mark_mask) in rule_exists()
719 if (r->tun_id != rule->tun_id) in rule_exists()
722 if (r->fr_net != rule->fr_net) in rule_exists()
725 if (r->l3mdev != rule->l3mdev) in rule_exists()
728 if (!uid_eq(r->uid_range.start, rule->uid_range.start) || in rule_exists()
729 !uid_eq(r->uid_range.end, rule->uid_range.end)) in rule_exists()
732 if (r->ip_proto != rule->ip_proto) in rule_exists()
735 if (r->proto != rule->proto) in rule_exists()
738 if (!fib_rule_port_range_compare(&r->sport_range, in rule_exists()
742 if (!fib_rule_port_range_compare(&r->dport_range, in rule_exists()
746 if (!ops->compare(r, frh, tb)) in rule_exists()
759 struct fib_rule *rule = NULL, *r, *last = NULL; in fib_nl_newrule() local
802 list_for_each_entry(r, &ops->rules_list, list) { in fib_nl_newrule()
803 if (r->pref == rule->target) { in fib_nl_newrule()
804 RCU_INIT_POINTER(rule->ctarget, r); in fib_nl_newrule()
812 list_for_each_entry(r, &ops->rules_list, list) { in fib_nl_newrule()
813 if (r->pref > rule->pref) in fib_nl_newrule()
815 last = r; in fib_nl_newrule()
828 list_for_each_entry(r, &ops->rules_list, list) { in fib_nl_newrule()
829 if (r->action == FR_ACT_GOTO && in fib_nl_newrule()
830 r->target == rule->pref && in fib_nl_newrule()
831 rtnl_dereference(r->ctarget) == NULL) { in fib_nl_newrule()
832 rcu_assign_pointer(r->ctarget, rule); in fib_nl_newrule()
867 struct fib_rule *rule = NULL, *r, *nlrule = NULL; in fib_nl_delrule() local
936 list_for_each_entry(r, &ops->rules_list, list) { in fib_nl_delrule()
937 if (rtnl_dereference(r->ctarget) != rule) in fib_nl_delrule()
939 rcu_assign_pointer(r->ctarget, n); in fib_nl_delrule()