Lines Matching defs:rpool

143 			if (r->rpool.cur != NULL)
144 xdst = &r->rpool.cur->addr;
291 switch (r->rpool.opts & PF_POOL_TYPEMASK) {
311 struct pf_pool *rpool = &r->rpool;
316 if (*sn == NULL && r->rpool.opts & PF_POOL_STICKYADDR &&
317 (r->rpool.opts & PF_POOL_TYPEMASK) != PF_POOL_NONE)
344 if (rpool->cur->addr.type == PF_ADDR_NOROUTE)
346 if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
350 if (rpool->cur->addr.p.dyn->pfid_acnt4 < 1 &&
351 (rpool->opts & PF_POOL_TYPEMASK) !=
354 raddr = &rpool->cur->addr.p.dyn->pfid_addr4;
355 rmask = &rpool->cur->addr.p.dyn->pfid_mask4;
360 if (rpool->cur->addr.p.dyn->pfid_acnt6 < 1 &&
361 (rpool->opts & PF_POOL_TYPEMASK) !=
364 raddr = &rpool->cur->addr.p.dyn->pfid_addr6;
365 rmask = &rpool->cur->addr.p.dyn->pfid_mask6;
369 } else if (rpool->cur->addr.type == PF_ADDR_TABLE) {
370 if ((rpool->opts & PF_POOL_TYPEMASK) != PF_POOL_ROUNDROBIN)
373 raddr = &rpool->cur->addr.v.a.addr;
374 rmask = &rpool->cur->addr.v.a.mask;
377 switch (rpool->opts & PF_POOL_TYPEMASK) {
389 rpool->counter.addr32[0] = htonl(arc4random());
395 rpool->counter.addr32[3] =
400 rpool->counter.addr32[2] =
405 rpool->counter.addr32[1] =
410 rpool->counter.addr32[0] =
415 PF_POOLMASK(naddr, raddr, rmask, &rpool->counter, af);
419 PF_AINC(&rpool->counter, af);
420 PF_POOLMASK(naddr, raddr, rmask, &rpool->counter, af);
427 pf_hash(saddr, (struct pf_addr *)&hash, &rpool->key, af);
433 struct pf_pooladdr *acur = rpool->cur;
443 * In the simpliest case we just update the "rpool->cur"
456 if (rpool->cur->addr.type == PF_ADDR_TABLE) {
457 if (!pfr_pool_get(rpool->cur->addr.p.tbl,
458 &rpool->tblidx, &rpool->counter, af))
460 } else if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
461 if (!pfr_pool_get(rpool->cur->addr.p.dyn->pfid_kt,
462 &rpool->tblidx, &rpool->counter, af))
464 } else if (pf_match_addr(0, raddr, rmask, &rpool->counter, af))
468 if (TAILQ_NEXT(rpool->cur, entries) == NULL)
469 rpool->cur = TAILQ_FIRST(&rpool->list);
471 rpool->cur = TAILQ_NEXT(rpool->cur, entries);
472 if (rpool->cur->addr.type == PF_ADDR_TABLE) {
473 rpool->tblidx = -1;
474 if (pfr_pool_get(rpool->cur->addr.p.tbl,
475 &rpool->tblidx, &rpool->counter, af)) {
477 if (rpool->cur != acur)
481 } else if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
482 rpool->tblidx = -1;
483 if (pfr_pool_get(rpool->cur->addr.p.dyn->pfid_kt,
484 &rpool->tblidx, &rpool->counter, af)) {
486 if (rpool->cur != acur)
491 raddr = &rpool->cur->addr.v.a.addr;
492 rmask = &rpool->cur->addr.v.a.mask;
493 PF_ACPY(&rpool->counter, raddr, af);
497 PF_ACPY(naddr, &rpool->counter, af);
500 PF_AINC(&rpool->counter, af);
508 (rpool->opts & PF_POOL_TYPEMASK) != PF_POOL_NONE) {
575 dport, naddr, nport, r->rpool.proxy_port[0],
576 r->rpool.proxy_port[1], sn)) {
579 r->rpool.proxy_port[0], r->rpool.proxy_port[1]));
586 if (r->rpool.cur->addr.type == PF_ADDR_DYNIFTL){
590 if (r->rpool.cur->addr.p.dyn->
594 &r->rpool.cur->addr.p.dyn->
596 &r->rpool.cur->addr.p.dyn->
602 if (r->rpool.cur->addr.p.dyn->
606 &r->rpool.cur->addr.p.dyn->
608 &r->rpool.cur->addr.p.dyn->
615 &r->rpool.cur->addr.v.a.addr,
616 &r->rpool.cur->addr.v.a.mask, saddr,
652 if ((r->rpool.opts & PF_POOL_TYPEMASK) == PF_POOL_BITMASK)
653 PF_POOLMASK(naddr, naddr, &r->rpool.cur->addr.v.a.mask,
656 if (r->rpool.proxy_port[1]) {
660 (r->rpool.proxy_port[1] - r->rpool.proxy_port[0] +
661 1)) + r->rpool.proxy_port[0];
667 } else if (r->rpool.proxy_port[0])
668 *nport = htons(r->rpool.proxy_port[0]);