Lines Matching refs:ruleset
638 struct pf_ruleset *ruleset; in pf_get_pool() local
643 ruleset = pf_find_ruleset(anchor); in pf_get_pool()
644 if (ruleset == NULL) { in pf_get_pool()
653 ruleset->rules[rs_num].active.ticket) { in pf_get_pool()
657 rule = TAILQ_LAST(ruleset->rules[rs_num].active.ptr, in pf_get_pool()
660 rule = TAILQ_FIRST(ruleset->rules[rs_num].active.ptr); in pf_get_pool()
664 ruleset->rules[rs_num].inactive.ticket) { in pf_get_pool()
668 rule = TAILQ_LAST(ruleset->rules[rs_num].inactive.ptr, in pf_get_pool()
671 rule = TAILQ_FIRST(ruleset->rules[rs_num].inactive.ptr); in pf_get_pool()
686 if (ruleset) { in pf_get_pool()
687 pf_release_ruleset(ruleset); in pf_get_pool()
688 ruleset = NULL; in pf_get_pool()
1755 struct pf_ruleset *ruleset = &pf_main_ruleset; in pfioctl() local
1759 ruleset->rules[PF_RULESET_FILTER].active.ptr, entries) { in pfioctl()
2445 pf_delete_rule_from_ruleset(struct pf_ruleset *ruleset, int rs_num, in pf_delete_rule_from_ruleset() argument
2453 pf_rm_rule(ruleset->rules[rs_num].active.ptr, rule); in pf_delete_rule_from_ruleset()
2454 if (ruleset->rules[rs_num].active.rcount-- == 0) { in pf_delete_rule_from_ruleset()
2457 r = TAILQ_FIRST(ruleset->rules[rs_num].active.ptr); in pf_delete_rule_from_ruleset()
2467 pf_ruleset_cleanup(struct pf_ruleset *ruleset, int rs) in pf_ruleset_cleanup() argument
2469 pf_calc_skip_steps(ruleset->rules[rs].active.ptr); in pf_ruleset_cleanup()
2470 ruleset->rules[rs].active.ticket = in pf_ruleset_cleanup()
2471 ++ruleset->rules[rs].inactive.ticket; in pf_ruleset_cleanup()
2481 struct pf_ruleset *ruleset; in pf_delete_rule_by_ticket() local
2488 if ((ruleset = pf_find_ruleset_with_owner(pr->anchor, in pf_delete_rule_by_ticket()
2494 rule = TAILQ_FIRST(ruleset->rules[i].active.ptr); in pf_delete_rule_by_ticket()
2512 if (rule->anchor && (ruleset != &pf_main_ruleset) && in pf_delete_rule_by_ticket()
2513 ((strcmp(ruleset->anchor->owner, "")) == 0) && in pf_delete_rule_by_ticket()
2514 ((ruleset->rules[i].active.rcount - 1) == 0)) { in pf_delete_rule_by_ticket()
2517 struct pf_ruleset *delete_ruleset = ruleset; in pf_delete_rule_by_ticket()
2519 #define parent_ruleset ruleset->anchor->parent->ruleset in pf_delete_rule_by_ticket()
2520 if (ruleset->anchor->parent == NULL) { in pf_delete_rule_by_ticket()
2521 ruleset = &pf_main_ruleset; in pf_delete_rule_by_ticket()
2523 ruleset = &parent_ruleset; in pf_delete_rule_by_ticket()
2526 rule = TAILQ_FIRST(ruleset->rules[i].active.ptr); in pf_delete_rule_by_ticket()
2570 pf_delete_rule_from_ruleset(ruleset, i, in pf_delete_rule_by_ticket()
2572 pf_ruleset_cleanup(ruleset, i); in pf_delete_rule_by_ticket()
2576 if (ruleset) { in pf_delete_rule_by_ticket()
2577 pf_release_ruleset(ruleset); in pf_delete_rule_by_ticket()
2578 ruleset = NULL; in pf_delete_rule_by_ticket()
2590 struct pf_ruleset *ruleset; in pf_delete_rule_by_owner() local
2596 ruleset = &pf_main_ruleset; in pf_delete_rule_by_owner()
2608 if (rule->anchor->ruleset.rules[rs].active.rcount > 0) { in pf_delete_rule_by_owner()
2610 pf_ruleset_cleanup(ruleset, rs); in pf_delete_rule_by_owner()
2614 ruleset = in pf_delete_rule_by_owner()
2615 &rule->anchor->ruleset; in pf_delete_rule_by_owner()
2616 rule = TAILQ_FIRST(ruleset->rules[rs].active.ptr); in pf_delete_rule_by_owner()
2623 pf_delete_rule_from_ruleset(ruleset, rs, rule); in pf_delete_rule_by_owner()
2636 pf_delete_rule_from_ruleset(ruleset, in pf_delete_rule_by_owner()
2644 pf_ruleset_cleanup(ruleset, rs); in pf_delete_rule_by_owner()
2647 if (ruleset != &pf_main_ruleset) { in pf_delete_rule_by_owner()
2648 pf_deleterule_anchor_step_out(&ruleset, in pf_delete_rule_by_owner()
2660 struct pf_ruleset *ruleset = *ruleset_ptr; in pf_deleterule_anchor_step_out() local
2664 struct pf_ruleset *rs_copy = ruleset; in pf_deleterule_anchor_step_out()
2665 ruleset = ruleset->anchor->parent? in pf_deleterule_anchor_step_out()
2666 &ruleset->anchor->parent->ruleset:&pf_main_ruleset; in pf_deleterule_anchor_step_out()
2668 rule = TAILQ_FIRST(ruleset->rules[rs].active.ptr); in pf_deleterule_anchor_step_out()
2675 if (rule->anchor->ruleset.rules[rs].active.rcount > 0) { in pf_deleterule_anchor_step_out()
2679 *ruleset_ptr = ruleset; in pf_deleterule_anchor_step_out()
2692 struct pf_ruleset *ruleset) in pf_rule_setup() argument
2739 if (pf_tbladdr_setup(ruleset, &rule->src.addr)) { in pf_rule_setup()
2742 if (pf_tbladdr_setup(ruleset, &rule->dst.addr)) { in pf_rule_setup()
2745 if (pf_anchor_setup(rule, ruleset, pr->anchor_call)) { in pf_rule_setup()
2749 if (pf_tbladdr_setup(ruleset, &apa->addr)) { in pf_rule_setup()
2754 if ((rule->overload_tbl = pfr_attach_table(ruleset, in pf_rule_setup()
2793 struct pf_ruleset *ruleset = NULL; in pfioctl_ioc_rule() local
2802 ruleset = pf_find_ruleset(pr->anchor); in pfioctl_ioc_rule()
2803 if (ruleset == NULL) { in pfioctl_ioc_rule()
2816 if (pr->ticket != ruleset->rules[rs_num].inactive.ticket) { in pfioctl_ioc_rule()
2837 tail = TAILQ_LAST(ruleset->rules[rs_num].inactive.ptr, in pfioctl_ioc_rule()
2845 if ((error = pf_rule_setup(pr, rule, ruleset))) { in pfioctl_ioc_rule()
2849 TAILQ_INSERT_TAIL(ruleset->rules[rs_num].inactive.ptr, in pfioctl_ioc_rule()
2851 ruleset->rules[rs_num].inactive.rcount++; in pfioctl_ioc_rule()
2901 ruleset = pf_find_ruleset(pr->anchor); in pfioctl_ioc_rule()
2902 if (ruleset == NULL) { in pfioctl_ioc_rule()
2911 tail = TAILQ_LAST(ruleset->rules[rs_num].active.ptr, in pfioctl_ioc_rule()
2918 pr->ticket = ruleset->rules[rs_num].active.ticket; in pfioctl_ioc_rule()
2928 ruleset = pf_find_ruleset(pr->anchor); in pfioctl_ioc_rule()
2929 if (ruleset == NULL) { in pfioctl_ioc_rule()
2938 if (pr->ticket != ruleset->rules[rs_num].active.ticket) { in pfioctl_ioc_rule()
2942 rule = TAILQ_FIRST(ruleset->rules[rs_num].active.ptr); in pfioctl_ioc_rule()
2951 if (pf_anchor_copyout(ruleset, rule, pr)) { in pfioctl_ioc_rule()
2999 ruleset = pf_find_ruleset(pcr->anchor); in pfioctl_ioc_rule()
3000 if (ruleset == NULL) { in pfioctl_ioc_rule()
3011 pcr->ticket = ++ruleset->rules[rs_num].active.ticket; in pfioctl_ioc_rule()
3015 ruleset->rules[rs_num].active.ticket) { in pfioctl_ioc_rule()
3086 if (pf_tbladdr_setup(ruleset, &newrule->src.addr)) { in pfioctl_ioc_rule()
3089 if (pf_tbladdr_setup(ruleset, &newrule->dst.addr)) { in pfioctl_ioc_rule()
3092 if (pf_anchor_setup(newrule, ruleset, pcr->anchor_call)) { in pfioctl_ioc_rule()
3096 if (pf_tbladdr_setup(ruleset, &pa->addr)) { in pfioctl_ioc_rule()
3102 ruleset, newrule->overload_tblname)) == in pfioctl_ioc_rule()
3134 ruleset->rules[rs_num].active.ptr); in pfioctl_ioc_rule()
3137 ruleset->rules[rs_num].active.ptr, pf_rulequeue); in pfioctl_ioc_rule()
3140 ruleset->rules[rs_num].active.ptr); in pfioctl_ioc_rule()
3154 pf_rm_rule(ruleset->rules[rs_num].active.ptr, oldrule); in pfioctl_ioc_rule()
3155 ruleset->rules[rs_num].active.rcount--; in pfioctl_ioc_rule()
3159 ruleset->rules[rs_num].active.ptr, in pfioctl_ioc_rule()
3166 ruleset->rules[rs_num].active.ptr, in pfioctl_ioc_rule()
3169 ruleset->rules[rs_num].active.rcount++; in pfioctl_ioc_rule()
3174 ruleset->rules[rs_num].active.ptr, entries) in pfioctl_ioc_rule()
3177 ruleset->rules[rs_num].active.ticket++; in pfioctl_ioc_rule()
3179 pf_calc_skip_steps(ruleset->rules[rs_num].active.ptr); in pfioctl_ioc_rule()
3195 if ((ruleset = pf_find_ruleset_with_owner(pr->anchor, in pfioctl_ioc_rule()
3212 r = TAILQ_FIRST(ruleset->rules[rs_num].active.ptr); in pfioctl_ioc_rule()
3246 r = TAILQ_FIRST(ruleset->rules[rs_num].active.ptr); in pfioctl_ioc_rule()
3252 TAILQ_LAST(ruleset->rules[rs_num].active.ptr, in pfioctl_ioc_rule()
3262 if ((error = pf_rule_setup(pr, rule, ruleset))) { in pfioctl_ioc_rule()
3277 TAILQ_INSERT_TAIL(ruleset->rules[rs_num].active.ptr, in pfioctl_ioc_rule()
3280 ruleset->rules[rs_num].active.rcount++; in pfioctl_ioc_rule()
3283 if (ruleset == &pf_main_ruleset) { in pfioctl_ioc_rule()
3284 error = pf_setup_pfsync_matching(ruleset); in pfioctl_ioc_rule()
3287 pf_ruleset_cleanup(ruleset, rs_num); in pfioctl_ioc_rule()
3312 ASSERT(ruleset == NULL); in pfioctl_ioc_rule()
3347 if (ruleset != NULL) { in pfioctl_ioc_rule()
3348 pf_release_ruleset(ruleset); in pfioctl_ioc_rule()
3349 ruleset = NULL; in pfioctl_ioc_rule()
3809 struct pf_ruleset *ruleset = NULL; in pfioctl_ioc_pooladdr() local
3920 ruleset = pf_find_ruleset(pca->anchor); in pfioctl_ioc_pooladdr()
3921 if (ruleset == NULL) { in pfioctl_ioc_pooladdr()
3958 pf_tbladdr_setup(ruleset, &newpa->addr)) { in pfioctl_ioc_pooladdr()
4014 if (ruleset) { in pfioctl_ioc_pooladdr()
4015 pf_release_ruleset(ruleset); in pfioctl_ioc_pooladdr()
4016 ruleset = NULL; in pfioctl_ioc_pooladdr()
4027 struct pf_ruleset *ruleset = NULL; in pfioctl_ioc_ruleset() local
4035 if ((ruleset = pf_find_ruleset(pr->path)) == NULL) { in pfioctl_ioc_ruleset()
4040 if (ruleset->anchor == NULL) { in pfioctl_ioc_ruleset()
4048 &ruleset->anchor->children) in pfioctl_ioc_ruleset()
4059 if ((ruleset = pf_find_ruleset(pr->path)) == NULL) { in pfioctl_ioc_ruleset()
4064 if (ruleset->anchor == NULL) { in pfioctl_ioc_ruleset()
4074 &ruleset->anchor->children) in pfioctl_ioc_ruleset()
4092 if (ruleset) { in pfioctl_ioc_ruleset()
4093 pf_release_ruleset(ruleset); in pfioctl_ioc_ruleset()
4094 ruleset = NULL; in pfioctl_ioc_ruleset()