Lines Matching refs:kt

215 	struct pfr_ktable	*kt;  in pfr_clr_addrs()  local
223 kt = pfr_lookup_table(tbl); in pfr_clr_addrs()
224 if (kt == NULL || !(kt->pfrkt_flags & PFR_TFLAG_ACTIVE)) in pfr_clr_addrs()
226 if (kt->pfrkt_flags & PFR_TFLAG_CONST) in pfr_clr_addrs()
228 pfr_enqueue_addrs(kt, &workq, ndel, 0); in pfr_clr_addrs()
231 pfr_remove_kentries(kt, &workq); in pfr_clr_addrs()
232 KASSERT(kt->pfrkt_cnt == 0, ("%s: non-null pfrkt_cnt", __func__)); in pfr_clr_addrs()
241 struct pfr_ktable *kt, *tmpkt; in pfr_add_addrs() local
253 kt = pfr_lookup_table(tbl); in pfr_add_addrs()
254 if (kt == NULL || !(kt->pfrkt_flags & PFR_TFLAG_ACTIVE)) in pfr_add_addrs()
256 if (kt->pfrkt_flags & PFR_TFLAG_CONST) in pfr_add_addrs()
265 p = pfr_lookup_addr(kt, ad, 1); in pfr_add_addrs()
279 (kt->pfrkt_flags & PFR_TFLAG_COUNTERS) != 0); in pfr_add_addrs()
293 pfr_insert_kentries(kt, &workq, tzero); in pfr_add_addrs()
313 struct pfr_ktable *kt; in pfr_del_addrs() local
324 kt = pfr_lookup_table(tbl); in pfr_del_addrs()
325 if (kt == NULL || !(kt->pfrkt_flags & PFR_TFLAG_ACTIVE)) in pfr_del_addrs()
327 if (kt->pfrkt_flags & PFR_TFLAG_CONST) in pfr_del_addrs()
340 for (i = kt->pfrkt_cnt; i > 0; i >>= 1) in pfr_del_addrs()
342 if (size > kt->pfrkt_cnt/log) { in pfr_del_addrs()
344 pfr_mark_addrs(kt); in pfr_del_addrs()
350 p = pfr_lookup_addr(kt, ad, 1); in pfr_del_addrs()
359 p = pfr_lookup_addr(kt, ad, 1); in pfr_del_addrs()
378 pfr_remove_kentries(kt, &workq); in pfr_del_addrs()
393 struct pfr_ktable *kt, *tmpkt; in pfr_set_addrs() local
406 kt = pfr_lookup_table(tbl); in pfr_set_addrs()
407 if (kt == NULL || !(kt->pfrkt_flags & PFR_TFLAG_ACTIVE)) in pfr_set_addrs()
409 if (kt->pfrkt_flags & PFR_TFLAG_CONST) in pfr_set_addrs()
414 pfr_mark_addrs(kt); in pfr_set_addrs()
427 p = pfr_lookup_addr(kt, &ad, 1); in pfr_set_addrs()
446 (kt->pfrkt_flags & PFR_TFLAG_COUNTERS) != 0); in pfr_set_addrs()
462 pfr_enqueue_addrs(kt, &delq, &xdel, ENQUEUE_UNMARKED_ONLY); in pfr_set_addrs()
478 pfr_insert_kentries(kt, &addq, tzero); in pfr_set_addrs()
479 pfr_remove_kentries(kt, &delq); in pfr_set_addrs()
480 pfr_clstats_kentries(kt, &changeq, tzero, INVERT_NEG_FLAG); in pfr_set_addrs()
506 struct pfr_ktable *kt; in pfr_tst_addrs() local
516 kt = pfr_lookup_table(tbl); in pfr_tst_addrs()
517 if (kt == NULL || !(kt->pfrkt_flags & PFR_TFLAG_ACTIVE)) in pfr_tst_addrs()
525 p = pfr_lookup_addr(kt, ad, 0); in pfr_tst_addrs()
542 struct pfr_ktable *kt; in pfr_get_addrs() local
551 kt = pfr_lookup_table(tbl); in pfr_get_addrs()
552 if (kt == NULL || !(kt->pfrkt_flags & PFR_TFLAG_ACTIVE)) in pfr_get_addrs()
554 if (kt->pfrkt_cnt > *size) { in pfr_get_addrs()
555 *size = kt->pfrkt_cnt; in pfr_get_addrs()
562 w.pfrw_free = kt->pfrkt_cnt; in pfr_get_addrs()
563 rv = kt->pfrkt_ip4->rnh_walktree(&kt->pfrkt_ip4->rh, pfr_walktree, &w); in pfr_get_addrs()
565 rv = kt->pfrkt_ip6->rnh_walktree(&kt->pfrkt_ip6->rh, in pfr_get_addrs()
573 *size = kt->pfrkt_cnt; in pfr_get_addrs()
581 struct pfr_ktable *kt; in pfr_get_astats() local
593 kt = pfr_lookup_table(tbl); in pfr_get_astats()
594 if (kt == NULL || !(kt->pfrkt_flags & PFR_TFLAG_ACTIVE)) in pfr_get_astats()
596 if (kt->pfrkt_cnt > *size) { in pfr_get_astats()
597 *size = kt->pfrkt_cnt; in pfr_get_astats()
604 w.pfrw_free = kt->pfrkt_cnt; in pfr_get_astats()
611 w.pfrw_flags = kt->pfrkt_flags; in pfr_get_astats()
612 rv = kt->pfrkt_ip4->rnh_walktree(&kt->pfrkt_ip4->rh, pfr_walktree, &w); in pfr_get_astats()
614 rv = kt->pfrkt_ip6->rnh_walktree(&kt->pfrkt_ip6->rh, in pfr_get_astats()
617 pfr_enqueue_addrs(kt, &workq, NULL, 0); in pfr_get_astats()
618 pfr_clstats_kentries(kt, &workq, tzero, 0); in pfr_get_astats()
628 *size = kt->pfrkt_cnt; in pfr_get_astats()
636 struct pfr_ktable *kt; in pfr_clr_astats() local
647 kt = pfr_lookup_table(tbl); in pfr_clr_astats()
648 if (kt == NULL || !(kt->pfrkt_flags & PFR_TFLAG_ACTIVE)) in pfr_clr_astats()
654 p = pfr_lookup_addr(kt, ad, 1); in pfr_clr_astats()
666 pfr_clstats_kentries(kt, &workq, time_second, 0); in pfr_clr_astats()
711 pfr_enqueue_addrs(struct pfr_ktable *kt, struct pfr_kentryworkq *workq, in pfr_enqueue_addrs() argument
720 if (kt->pfrkt_ip4 != NULL) in pfr_enqueue_addrs()
721 if (kt->pfrkt_ip4->rnh_walktree(&kt->pfrkt_ip4->rh, in pfr_enqueue_addrs()
724 if (kt->pfrkt_ip6 != NULL) in pfr_enqueue_addrs()
725 if (kt->pfrkt_ip6->rnh_walktree(&kt->pfrkt_ip6->rh, in pfr_enqueue_addrs()
733 pfr_mark_addrs(struct pfr_ktable *kt) in pfr_mark_addrs() argument
739 if (kt->pfrkt_ip4->rnh_walktree(&kt->pfrkt_ip4->rh, pfr_walktree, &w)) in pfr_mark_addrs()
741 if (kt->pfrkt_ip6->rnh_walktree(&kt->pfrkt_ip6->rh, pfr_walktree, &w)) in pfr_mark_addrs()
746 pfr_lookup_addr(struct pfr_ktable *kt, struct pfr_addr *ad, int exact) in pfr_lookup_addr() argument
758 head = &kt->pfrkt_ip4->rh; in pfr_lookup_addr()
762 head = &kt->pfrkt_ip6->rh; in pfr_lookup_addr()
839 pfr_insert_kentries(struct pfr_ktable *kt, in pfr_insert_kentries() argument
846 rv = pfr_route_kentry(kt, p); in pfr_insert_kentries()
855 kt->pfrkt_cnt += n; in pfr_insert_kentries()
859 pfr_insert_kentry(struct pfr_ktable *kt, struct pfr_addr *ad, time_t tzero) in pfr_insert_kentry() argument
864 p = pfr_lookup_addr(kt, ad, 1); in pfr_insert_kentry()
867 p = pfr_create_kentry(ad, (kt->pfrkt_flags & PFR_TFLAG_COUNTERS) != 0); in pfr_insert_kentry()
871 rv = pfr_route_kentry(kt, p); in pfr_insert_kentry()
876 kt->pfrkt_cnt++; in pfr_insert_kentry()
882 pfr_remove_kentries(struct pfr_ktable *kt, in pfr_remove_kentries() argument
889 pfr_unroute_kentry(kt, p); in pfr_remove_kentries()
892 kt->pfrkt_cnt -= n; in pfr_remove_kentries()
897 pfr_clean_node_mask(struct pfr_ktable *kt, in pfr_clean_node_mask() argument
903 pfr_unroute_kentry(kt, p); in pfr_clean_node_mask()
907 pfr_clstats_kentries(struct pfr_ktable *kt, struct pfr_kentryworkq *workq, in pfr_clstats_kentries() argument
916 if ((kt->pfrkt_flags & PFR_TFLAG_COUNTERS) != 0) in pfr_clstats_kentries()
965 pfr_route_kentry(struct pfr_ktable *kt, struct pfr_kentry *ke) in pfr_route_kentry() argument
976 head = &kt->pfrkt_ip4->rh; in pfr_route_kentry()
979 head = &kt->pfrkt_ip6->rh; in pfr_route_kentry()
995 pfr_unroute_kentry(struct pfr_ktable *kt, struct pfr_kentry *ke) in pfr_unroute_kentry() argument
1003 head = &kt->pfrkt_ip4->rh; in pfr_unroute_kentry()
1006 head = &kt->pfrkt_ip6->rh; in pfr_unroute_kentry()
1523 struct pfr_ktable *kt, *rt, *shadow, key; in pfr_ina_define() local
1542 kt = RB_FIND(pfr_ktablehead, &V_pfr_ktables, (struct pfr_ktable *)tbl); in pfr_ina_define()
1543 if (kt == NULL) { in pfr_ina_define()
1544 kt = pfr_create_ktable(tbl, 0, 1); in pfr_ina_define()
1545 if (kt == NULL) in pfr_ina_define()
1547 SLIST_INSERT_HEAD(&tableq, kt, pfrkt_workq); in pfr_ina_define()
1557 kt->pfrkt_root = rt; in pfr_ina_define()
1566 kt->pfrkt_root = rt; in pfr_ina_define()
1567 } else if (!(kt->pfrkt_flags & PFR_TFLAG_INACTIVE)) in pfr_ina_define()
1593 if (kt->pfrkt_shadow != NULL) in pfr_ina_define()
1594 pfr_destroy_ktable(kt->pfrkt_shadow, 1); in pfr_ina_define()
1595 kt->pfrkt_flags |= PFR_TFLAG_INACTIVE; in pfr_ina_define()
1599 kt->pfrkt_shadow = shadow; in pfr_ina_define()
1696 pfr_commit_ktable(struct pfr_ktable *kt, time_t tzero) in pfr_commit_ktable() argument
1699 struct pfr_ktable *shadow = kt->pfrkt_shadow; in pfr_commit_ktable()
1705 if (!(kt->pfrkt_flags & PFR_TFLAG_ACTIVE)) in pfr_commit_ktable()
1706 pfr_clstats_ktable(kt, tzero, 1); in pfr_commit_ktable()
1707 } else if (kt->pfrkt_flags & PFR_TFLAG_ACTIVE) { in pfr_commit_ktable()
1714 pfr_mark_addrs(kt); in pfr_commit_ktable()
1723 q = pfr_lookup_addr(kt, &ad, 1); in pfr_commit_ktable()
1739 pfr_enqueue_addrs(kt, &delq, NULL, ENQUEUE_UNMARKED_ONLY); in pfr_commit_ktable()
1740 pfr_insert_kentries(kt, &addq, tzero); in pfr_commit_ktable()
1741 pfr_remove_kentries(kt, &delq); in pfr_commit_ktable()
1742 pfr_clstats_kentries(kt, &changeq, tzero, INVERT_NEG_FLAG); in pfr_commit_ktable()
1746 SWAP(struct radix_node_head *, kt->pfrkt_ip4, in pfr_commit_ktable()
1748 SWAP(struct radix_node_head *, kt->pfrkt_ip6, in pfr_commit_ktable()
1750 SWAP(int, kt->pfrkt_cnt, shadow->pfrkt_cnt); in pfr_commit_ktable()
1751 pfr_clstats_ktable(kt, tzero, 1); in pfr_commit_ktable()
1754 (kt->pfrkt_flags & PFR_TFLAG_SETMASK) | PFR_TFLAG_ACTIVE) in pfr_commit_ktable()
1757 kt->pfrkt_shadow = NULL; in pfr_commit_ktable()
1758 pfr_setflags_ktable(kt, nflags); in pfr_commit_ktable()
1828 pfr_skip_table(struct pfr_table *filter, struct pfr_ktable *kt, int flags) in pfr_skip_table() argument
1832 if (strcmp(filter->pfrt_anchor, kt->pfrkt_anchor)) in pfr_skip_table()
1847 pfr_insert_ktable(struct pfr_ktable *kt) in pfr_insert_ktable() argument
1852 RB_INSERT(pfr_ktablehead, &V_pfr_ktables, kt); in pfr_insert_ktable()
1854 if (kt->pfrkt_root != NULL) in pfr_insert_ktable()
1855 if (!kt->pfrkt_root->pfrkt_refcnt[PFR_REFCNT_ANCHOR]++) in pfr_insert_ktable()
1856 pfr_setflags_ktable(kt->pfrkt_root, in pfr_insert_ktable()
1857 kt->pfrkt_root->pfrkt_flags|PFR_TFLAG_REFDANCHOR); in pfr_insert_ktable()
1871 pfr_setflags_ktable(struct pfr_ktable *kt, int newf) in pfr_setflags_ktable() argument
1885 RB_REMOVE(pfr_ktablehead, &V_pfr_ktables, kt); in pfr_setflags_ktable()
1886 if (kt->pfrkt_root != NULL) in pfr_setflags_ktable()
1887 if (!--kt->pfrkt_root->pfrkt_refcnt[PFR_REFCNT_ANCHOR]) in pfr_setflags_ktable()
1888 pfr_setflags_ktable(kt->pfrkt_root, in pfr_setflags_ktable()
1889 kt->pfrkt_root->pfrkt_flags & in pfr_setflags_ktable()
1891 pfr_destroy_ktable(kt, 1); in pfr_setflags_ktable()
1895 if (newf & PFR_TFLAG_COUNTERS && ! (kt->pfrkt_flags & PFR_TFLAG_COUNTERS)) { in pfr_setflags_ktable()
1899 kt->pfrkt_ip4->rnh_walktree(&kt->pfrkt_ip4->rh, pfr_walktree, &w); in pfr_setflags_ktable()
1900 kt->pfrkt_ip6->rnh_walktree(&kt->pfrkt_ip6->rh, pfr_walktree, &w); in pfr_setflags_ktable()
1902 if (! (newf & PFR_TFLAG_COUNTERS) && (kt->pfrkt_flags & PFR_TFLAG_COUNTERS)) { in pfr_setflags_ktable()
1906 kt->pfrkt_ip4->rnh_walktree(&kt->pfrkt_ip4->rh, pfr_walktree, &w); in pfr_setflags_ktable()
1907 kt->pfrkt_ip6->rnh_walktree(&kt->pfrkt_ip6->rh, pfr_walktree, &w); in pfr_setflags_ktable()
1909 if (!(newf & PFR_TFLAG_ACTIVE) && kt->pfrkt_cnt) { in pfr_setflags_ktable()
1910 pfr_enqueue_addrs(kt, &addrq, NULL, 0); in pfr_setflags_ktable()
1911 pfr_remove_kentries(kt, &addrq); in pfr_setflags_ktable()
1913 if (!(newf & PFR_TFLAG_INACTIVE) && kt->pfrkt_shadow != NULL) { in pfr_setflags_ktable()
1914 pfr_destroy_ktable(kt->pfrkt_shadow, 1); in pfr_setflags_ktable()
1915 kt->pfrkt_shadow = NULL; in pfr_setflags_ktable()
1917 kt->pfrkt_flags = newf; in pfr_setflags_ktable()
1930 pfr_clstats_ktable(struct pfr_ktable *kt, time_t tzero, int recurse) in pfr_clstats_ktable() argument
1938 pfr_enqueue_addrs(kt, &addrq, NULL, 0); in pfr_clstats_ktable()
1939 pfr_clstats_kentries(kt, &addrq, tzero, 0); in pfr_clstats_ktable()
1943 pfr_kstate_counter_zero(&kt->pfrkt_packets[pfr_dir][pfr_op]); in pfr_clstats_ktable()
1944 pfr_kstate_counter_zero(&kt->pfrkt_bytes[pfr_dir][pfr_op]); in pfr_clstats_ktable()
1947 pfr_kstate_counter_zero(&kt->pfrkt_match); in pfr_clstats_ktable()
1948 pfr_kstate_counter_zero(&kt->pfrkt_nomatch); in pfr_clstats_ktable()
1949 kt->pfrkt_tzero = tzero; in pfr_clstats_ktable()
1955 struct pfr_ktable *kt; in pfr_create_ktable() local
1961 kt = malloc(sizeof(*kt), M_PFTABLE, M_NOWAIT|M_ZERO); in pfr_create_ktable()
1962 if (kt == NULL) in pfr_create_ktable()
1964 kt->pfrkt_t = *tbl; in pfr_create_ktable()
1969 pfr_destroy_ktable(kt, 0); in pfr_create_ktable()
1972 kt->pfrkt_rs = rs; in pfr_create_ktable()
1979 &kt->pfrkt_packets[pfr_dir][pfr_op], M_NOWAIT) != 0) { in pfr_create_ktable()
1980 pfr_destroy_ktable(kt, 0); in pfr_create_ktable()
1984 &kt->pfrkt_bytes[pfr_dir][pfr_op], M_NOWAIT) != 0) { in pfr_create_ktable()
1985 pfr_destroy_ktable(kt, 0); in pfr_create_ktable()
1990 if (pfr_kstate_counter_init(&kt->pfrkt_match, M_NOWAIT) != 0) { in pfr_create_ktable()
1991 pfr_destroy_ktable(kt, 0); in pfr_create_ktable()
1995 if (pfr_kstate_counter_init(&kt->pfrkt_nomatch, M_NOWAIT) != 0) { in pfr_create_ktable()
1996 pfr_destroy_ktable(kt, 0); in pfr_create_ktable()
2000 if (!rn_inithead((void **)&kt->pfrkt_ip4, in pfr_create_ktable()
2002 !rn_inithead((void **)&kt->pfrkt_ip6, in pfr_create_ktable()
2004 pfr_destroy_ktable(kt, 0); in pfr_create_ktable()
2007 kt->pfrkt_tzero = tzero; in pfr_create_ktable()
2009 return (kt); in pfr_create_ktable()
2024 pfr_destroy_ktable(struct pfr_ktable *kt, int flushaddr) in pfr_destroy_ktable() argument
2030 pfr_enqueue_addrs(kt, &addrq, NULL, 0); in pfr_destroy_ktable()
2031 pfr_clean_node_mask(kt, &addrq); in pfr_destroy_ktable()
2034 if (kt->pfrkt_ip4 != NULL) in pfr_destroy_ktable()
2035 rn_detachhead((void **)&kt->pfrkt_ip4); in pfr_destroy_ktable()
2036 if (kt->pfrkt_ip6 != NULL) in pfr_destroy_ktable()
2037 rn_detachhead((void **)&kt->pfrkt_ip6); in pfr_destroy_ktable()
2038 if (kt->pfrkt_shadow != NULL) in pfr_destroy_ktable()
2039 pfr_destroy_ktable(kt->pfrkt_shadow, flushaddr); in pfr_destroy_ktable()
2040 if (kt->pfrkt_rs != NULL) { in pfr_destroy_ktable()
2041 kt->pfrkt_rs->tables--; in pfr_destroy_ktable()
2042 pf_remove_if_empty_kruleset(kt->pfrkt_rs); in pfr_destroy_ktable()
2046 pfr_kstate_counter_deinit(&kt->pfrkt_packets[pfr_dir][pfr_op]); in pfr_destroy_ktable()
2047 pfr_kstate_counter_deinit(&kt->pfrkt_bytes[pfr_dir][pfr_op]); in pfr_destroy_ktable()
2050 pfr_kstate_counter_deinit(&kt->pfrkt_match); in pfr_destroy_ktable()
2051 pfr_kstate_counter_deinit(&kt->pfrkt_nomatch); in pfr_destroy_ktable()
2053 free(kt, M_PFTABLE); in pfr_destroy_ktable()
2075 pfr_kentry_byaddr(struct pfr_ktable *kt, struct pf_addr *a, sa_family_t af, in pfr_kentry_byaddr() argument
2082 kt = pfr_ktable_select_active(kt); in pfr_kentry_byaddr()
2083 if (kt == NULL) in pfr_kentry_byaddr()
2096 ke = (struct pfr_kentry *)rn_match(&sin, &kt->pfrkt_ip4->rh); in pfr_kentry_byaddr()
2111 ke = (struct pfr_kentry *)rn_match(&sin6, &kt->pfrkt_ip6->rh); in pfr_kentry_byaddr()
2127 pfr_match_addr(struct pfr_ktable *kt, struct pf_addr *a, sa_family_t af) in pfr_match_addr() argument
2132 ke = pfr_kentry_byaddr(kt, a, af, 0); in pfr_match_addr()
2136 pfr_kstate_counter_add(&kt->pfrkt_match, 1); in pfr_match_addr()
2138 pfr_kstate_counter_add(&kt->pfrkt_nomatch, 1); in pfr_match_addr()
2144 pfr_update_stats(struct pfr_ktable *kt, struct pf_addr *a, sa_family_t af, in pfr_update_stats() argument
2149 kt = pfr_ktable_select_active(kt); in pfr_update_stats()
2150 if (kt == NULL) in pfr_update_stats()
2163 ke = (struct pfr_kentry *)rn_match(&sin, &kt->pfrkt_ip4->rh); in pfr_update_stats()
2178 ke = (struct pfr_kentry *)rn_match(&sin6, &kt->pfrkt_ip6->rh); in pfr_update_stats()
2193 pfr_kstate_counter_add(&kt->pfrkt_packets[dir_out][op_pass], 1); in pfr_update_stats()
2194 pfr_kstate_counter_add(&kt->pfrkt_bytes[dir_out][op_pass], len); in pfr_update_stats()
2196 (kt->pfrkt_flags & PFR_TFLAG_COUNTERS)) { in pfr_update_stats()
2207 struct pfr_ktable *kt, *rt; in pfr_eth_attach_table() local
2217 kt = pfr_lookup_table(&tbl); in pfr_eth_attach_table()
2218 if (kt == NULL) { in pfr_eth_attach_table()
2219 kt = pfr_create_ktable(&tbl, time_second, 1); in pfr_eth_attach_table()
2220 if (kt == NULL) in pfr_eth_attach_table()
2228 pfr_destroy_ktable(kt, 0); in pfr_eth_attach_table()
2233 kt->pfrkt_root = rt; in pfr_eth_attach_table()
2235 pfr_insert_ktable(kt); in pfr_eth_attach_table()
2237 if (!kt->pfrkt_refcnt[PFR_REFCNT_RULE]++) in pfr_eth_attach_table()
2238 pfr_setflags_ktable(kt, kt->pfrkt_flags|PFR_TFLAG_REFERENCED); in pfr_eth_attach_table()
2239 return (kt); in pfr_eth_attach_table()
2245 struct pfr_ktable *kt, *rt; in pfr_attach_table() local
2255 kt = pfr_lookup_table(&tbl); in pfr_attach_table()
2256 if (kt == NULL) { in pfr_attach_table()
2257 kt = pfr_create_ktable(&tbl, time_second, 1); in pfr_attach_table()
2258 if (kt == NULL) in pfr_attach_table()
2266 pfr_destroy_ktable(kt, 0); in pfr_attach_table()
2271 kt->pfrkt_root = rt; in pfr_attach_table()
2273 pfr_insert_ktable(kt); in pfr_attach_table()
2275 if (!kt->pfrkt_refcnt[PFR_REFCNT_RULE]++) in pfr_attach_table()
2276 pfr_setflags_ktable(kt, kt->pfrkt_flags|PFR_TFLAG_REFERENCED); in pfr_attach_table()
2277 return (kt); in pfr_attach_table()
2281 pfr_detach_table(struct pfr_ktable *kt) in pfr_detach_table() argument
2285 KASSERT(kt->pfrkt_refcnt[PFR_REFCNT_RULE] > 0, ("%s: refcount %d\n", in pfr_detach_table()
2286 __func__, kt->pfrkt_refcnt[PFR_REFCNT_RULE])); in pfr_detach_table()
2288 if (!--kt->pfrkt_refcnt[PFR_REFCNT_RULE]) in pfr_detach_table()
2289 pfr_setflags_ktable(kt, kt->pfrkt_flags&~PFR_TFLAG_REFERENCED); in pfr_detach_table()
2293 pfr_pool_get(struct pfr_ktable *kt, int *pidx, struct pf_addr *counter, in pfr_pool_get() argument
2319 kt = pfr_ktable_select_active(kt); in pfr_pool_get()
2320 if (kt == NULL) in pfr_pool_get()
2324 if (idx < 0 || idx >= kt->pfrkt_cnt) in pfr_pool_get()
2332 pfr_kstate_counter_add(&kt->pfrkt_nomatch, 1); in pfr_pool_get()
2336 ke = pfr_kentry_byidx(kt, idx, af); in pfr_pool_get()
2339 if ((loop || loop_once) || (ke = pfr_kentry_byidx(kt, 0, af)) == NULL) { in pfr_pool_get()
2340 pfr_kstate_counter_add(&kt->pfrkt_nomatch, 1); in pfr_pool_get()
2372 pfr_kstate_counter_add(&kt->pfrkt_match, 1); in pfr_pool_get()
2380 &kt->pfrkt_ip4->rh); in pfr_pool_get()
2384 &kt->pfrkt_ip6->rh); in pfr_pool_get()
2396 pfr_kstate_counter_add(&kt->pfrkt_match, 1); in pfr_pool_get()
2417 pfr_kentry_byidx(struct pfr_ktable *kt, int idx, int af) in pfr_kentry_byidx() argument
2428 kt->pfrkt_ip4->rnh_walktree(&kt->pfrkt_ip4->rh, pfr_walktree, &w); in pfr_kentry_byidx()
2433 kt->pfrkt_ip6->rnh_walktree(&kt->pfrkt_ip6->rh, pfr_walktree, &w); in pfr_kentry_byidx()
2442 pfr_dynaddr_update(struct pfr_ktable *kt, struct pfi_dynaddr *dyn) in pfr_dynaddr_update() argument
2454 kt->pfrkt_ip4->rnh_walktree(&kt->pfrkt_ip4->rh, pfr_walktree, &w); in pfr_dynaddr_update()
2455 kt->pfrkt_ip6->rnh_walktree(&kt->pfrkt_ip6->rh, pfr_walktree, &w); in pfr_dynaddr_update()
2458 kt->pfrkt_ip4->rnh_walktree(&kt->pfrkt_ip4->rh, pfr_walktree, &w); in pfr_dynaddr_update()
2461 kt->pfrkt_ip6->rnh_walktree(&kt->pfrkt_ip6->rh, pfr_walktree, &w); in pfr_dynaddr_update()
2469 pfr_ktable_select_active(struct pfr_ktable *kt) in pfr_ktable_select_active() argument
2471 if (!(kt->pfrkt_flags & PFR_TFLAG_ACTIVE) && kt->pfrkt_root != NULL) in pfr_ktable_select_active()
2472 kt = kt->pfrkt_root; in pfr_ktable_select_active()
2473 if (!(kt->pfrkt_flags & PFR_TFLAG_ACTIVE)) in pfr_ktable_select_active()
2476 return (kt); in pfr_ktable_select_active()