Lines Matching refs:r

59 	struct fib_rule *r;  in fib_default_rule_add()  local
61 r = kzalloc(ops->rule_size, GFP_KERNEL_ACCOUNT); in fib_default_rule_add()
62 if (r == NULL) in fib_default_rule_add()
65 refcount_set(&r->refcnt, 1); in fib_default_rule_add()
66 r->action = FR_ACT_TO_TBL; in fib_default_rule_add()
67 r->pref = pref; in fib_default_rule_add()
68 r->table = table; 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()
446 struct fib_rule *r; in rule_find() local
448 list_for_each_entry(r, &ops->rules_list, list) { in rule_find()
449 if (rule->action && r->action != rule->action) in rule_find()
452 if (rule->table && r->table != rule->table) in rule_find()
455 if (user_priority && r->pref != rule->pref) in rule_find()
459 memcmp(r->iifname, rule->iifname, IFNAMSIZ)) in rule_find()
463 memcmp(r->oifname, rule->oifname, IFNAMSIZ)) in rule_find()
466 if (rule->mark && r->mark != rule->mark) in rule_find()
470 r->suppress_ifgroup != rule->suppress_ifgroup) in rule_find()
474 r->suppress_prefixlen != rule->suppress_prefixlen) in rule_find()
477 if (rule->mark_mask && r->mark_mask != rule->mark_mask) in rule_find()
480 if (rule->tun_id && r->tun_id != rule->tun_id) in rule_find()
483 if (rule->l3mdev && r->l3mdev != rule->l3mdev) in rule_find()
487 (!uid_eq(r->uid_range.start, rule->uid_range.start) || in rule_find()
488 !uid_eq(r->uid_range.end, rule->uid_range.end))) in rule_find()
491 if (rule->ip_proto && r->ip_proto != rule->ip_proto) in rule_find()
494 if (rule->proto && r->proto != rule->proto) in rule_find()
498 !fib_rule_port_range_compare(&r->sport_range, in rule_find()
502 if (rule->sport_mask && r->sport_mask != rule->sport_mask) in rule_find()
506 !fib_rule_port_range_compare(&r->dport_range, in rule_find()
510 if (rule->dport_mask && r->dport_mask != rule->dport_mask) in rule_find()
513 if (!ops->compare(r, frh, tb)) in rule_find()
515 return r; in rule_find()
779 struct fib_rule *r; in rule_exists() local
781 list_for_each_entry(r, &ops->rules_list, list) { in rule_exists()
782 if (r->action != rule->action) in rule_exists()
785 if (r->table != rule->table) in rule_exists()
788 if (r->pref != rule->pref) in rule_exists()
791 if (memcmp(r->iifname, rule->iifname, IFNAMSIZ)) in rule_exists()
794 if (memcmp(r->oifname, rule->oifname, IFNAMSIZ)) in rule_exists()
797 if (r->mark != rule->mark) in rule_exists()
800 if (r->suppress_ifgroup != rule->suppress_ifgroup) in rule_exists()
803 if (r->suppress_prefixlen != rule->suppress_prefixlen) in rule_exists()
806 if (r->mark_mask != rule->mark_mask) in rule_exists()
809 if (r->tun_id != rule->tun_id) in rule_exists()
812 if (r->l3mdev != rule->l3mdev) in rule_exists()
815 if (!uid_eq(r->uid_range.start, rule->uid_range.start) || in rule_exists()
816 !uid_eq(r->uid_range.end, rule->uid_range.end)) in rule_exists()
819 if (r->ip_proto != rule->ip_proto) in rule_exists()
822 if (r->proto != rule->proto) in rule_exists()
825 if (!fib_rule_port_range_compare(&r->sport_range, in rule_exists()
829 if (r->sport_mask != rule->sport_mask) in rule_exists()
832 if (!fib_rule_port_range_compare(&r->dport_range, in rule_exists()
836 if (r->dport_mask != rule->dport_mask) in rule_exists()
839 if (!ops->compare(r, frh, tb)) in rule_exists()
876 struct fib_rule *rule = NULL, *r, *last = NULL; in fib_newrule() local
929 list_for_each_entry(r, &ops->rules_list, list) { in fib_newrule()
930 if (r->pref == rule->target) { in fib_newrule()
931 RCU_INIT_POINTER(rule->ctarget, r); in fib_newrule()
939 list_for_each_entry(r, &ops->rules_list, list) { in fib_newrule()
940 if (r->pref > rule->pref) in fib_newrule()
942 last = r; in fib_newrule()
955 list_for_each_entry(r, &ops->rules_list, list) { in fib_newrule()
956 if (r->action == FR_ACT_GOTO && in fib_newrule()
957 r->target == rule->pref && in fib_newrule()
958 rtnl_dereference(r->ctarget) == NULL) { in fib_newrule()
959 rcu_assign_pointer(r->ctarget, rule); in fib_newrule()
1079 struct fib_rule *n, *r; in fib_delrule() local
1084 list_for_each_entry(r, &ops->rules_list, list) { in fib_delrule()
1085 if (rtnl_dereference(r->ctarget) != rule) in fib_delrule()
1087 rcu_assign_pointer(r->ctarget, n); in fib_delrule()