Lines Matching refs:rpool
786 rule->rpool.opts & PF_POOL_STICKYADDR) in pf_insert_src_node()
809 rule->rpool.opts & PF_POOL_STICKYADDR) in pf_insert_src_node()
2253 struct pf_pool *rpool = &r->rpool; local
2254 struct pf_addr *raddr = &rpool->cur->addr.v.a.addr;
2255 struct pf_addr *rmask = &rpool->cur->addr.v.a.mask;
2256 struct pf_pooladdr *acur = rpool->cur;
2259 if (*sn == NULL && r->rpool.opts & PF_POOL_STICKYADDR &&
2260 (r->rpool.opts & PF_POOL_TYPEMASK) != PF_POOL_NONE) {
2264 r->rpool.opts & PF_POOL_STICKYADDR)
2283 if (rpool->cur->addr.type == PF_ADDR_NOROUTE)
2285 if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
2289 if (rpool->cur->addr.p.dyn->pfid_acnt4 < 1 &&
2290 (rpool->opts & PF_POOL_TYPEMASK) !=
2293 raddr = &rpool->cur->addr.p.dyn->pfid_addr4;
2294 rmask = &rpool->cur->addr.p.dyn->pfid_mask4;
2299 if (rpool->cur->addr.p.dyn->pfid_acnt6 < 1 &&
2300 (rpool->opts & PF_POOL_TYPEMASK) !=
2303 raddr = &rpool->cur->addr.p.dyn->pfid_addr6;
2304 rmask = &rpool->cur->addr.p.dyn->pfid_mask6;
2308 } else if (rpool->cur->addr.type == PF_ADDR_TABLE) {
2309 if ((rpool->opts & PF_POOL_TYPEMASK) != PF_POOL_ROUNDROBIN)
2312 raddr = &rpool->cur->addr.v.a.addr;
2313 rmask = &rpool->cur->addr.v.a.mask;
2316 switch (rpool->opts & PF_POOL_TYPEMASK) {
2328 rpool->counter.addr32[0] =
2335 rpool->counter.addr32[3] =
2340 rpool->counter.addr32[2] =
2345 rpool->counter.addr32[1] =
2350 rpool->counter.addr32[0] =
2355 PF_POOLMASK(naddr, raddr, rmask, &rpool->counter, af);
2359 PF_AINC(&rpool->counter, af);
2360 PF_POOLMASK(naddr, raddr, rmask, &rpool->counter, af);
2364 pf_hash(saddr, (struct pf_addr *)&hash, &rpool->key, af);
2368 if (rpool->cur->addr.type == PF_ADDR_TABLE) {
2369 if (!pfr_pool_get(rpool->cur->addr.p.tbl,
2370 &rpool->tblidx, &rpool->counter,
2373 } else if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
2374 if (!pfr_pool_get(rpool->cur->addr.p.dyn->pfid_kt,
2375 &rpool->tblidx, &rpool->counter,
2378 } else if (pf_match_addr(0, raddr, rmask, &rpool->counter, af))
2382 if ((rpool->cur = TAILQ_NEXT(rpool->cur, entries)) == NULL)
2383 rpool->cur = TAILQ_FIRST(&rpool->list);
2384 if (rpool->cur->addr.type == PF_ADDR_TABLE) {
2385 rpool->tblidx = -1;
2386 if (pfr_pool_get(rpool->cur->addr.p.tbl,
2387 &rpool->tblidx, &rpool->counter,
2390 if (rpool->cur != acur)
2394 } else if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
2395 rpool->tblidx = -1;
2396 if (pfr_pool_get(rpool->cur->addr.p.dyn->pfid_kt,
2397 &rpool->tblidx, &rpool->counter,
2400 if (rpool->cur != acur)
2405 raddr = &rpool->cur->addr.v.a.addr;
2406 rmask = &rpool->cur->addr.v.a.mask;
2407 PF_ACPY(&rpool->counter, raddr, af);
2411 PF_ACPY(naddr, &rpool->counter, af);
2414 PF_AINC(&rpool->counter, af);
2421 (rpool->opts & PF_POOL_TYPEMASK) != PF_POOL_NONE) {
2504 switch (r->rpool.opts & PF_POOL_TYPEMASK) {
2539 if (r->rpool.cur != NULL)
2540 xdst = &r->rpool.cur->addr;
2633 daddr, dport, naddr, nport, r->rpool.proxy_port[0],
2634 r->rpool.proxy_port[1], sn)) {
2638 r->rpool.proxy_port[0],
2639 r->rpool.proxy_port[1]));
2646 if (r->rpool.cur->addr.type == PF_ADDR_DYNIFTL){
2650 if (r->rpool.cur->addr.p.dyn->
2654 &r->rpool.cur->addr.p.dyn->
2656 &r->rpool.cur->addr.p.dyn->
2663 if (r->rpool.cur->addr.p.dyn->
2667 &r->rpool.cur->addr.p.dyn->
2669 &r->rpool.cur->addr.p.dyn->
2677 &r->rpool.cur->addr.v.a.addr,
2678 &r->rpool.cur->addr.v.a.mask,
2722 if ((r->rpool.opts & PF_POOL_TYPEMASK) ==
2725 &r->rpool.cur->addr.v.a.mask, daddr,
2728 if (r->rpool.proxy_port[1]) {
2733 (r->rpool.proxy_port[1] -
2734 r->rpool.proxy_port[0] + 1)) +
2735 r->rpool.proxy_port[0];
2741 } else if (r->rpool.proxy_port[0])
2742 *nport = htons(r->rpool.proxy_port[0]);
3008 s->rt_kif = r->rpool.cur->kif;
3015 s->rt_kif = r->rpool.cur->kif;
3494 r->rpool.opts & PF_POOL_STICKYADDR) &&
3500 if (nr != NULL && (nr->rpool.opts & PF_POOL_STICKYADDR) &&
5313 if (TAILQ_EMPTY(&r->rpool.list)) {
5324 ifp = r->rpool.cur->kif ?
5325 r->rpool.cur->kif->pfik_ifp : NULL;
5518 if (TAILQ_EMPTY(&r->rpool.list)) {
5529 ifp = r->rpool.cur->kif ? r->rpool.cur->kif->pfik_ifp : NULL;