Lines Matching defs:rpool

233     struct pf_srchash **sh, struct pf_kpool *rpool,
284 sn, sh, rpool))
477 struct pf_kpool *rpool)
482 mtx_lock(&rpool->mtx);
485 if (rpool->cur->addr.type == PF_ADDR_NOROUTE) {
489 if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
493 if (rpool->cur->addr.p.dyn->pfid_acnt4 < 1 &&
494 (rpool->opts & PF_POOL_TYPEMASK) !=
499 raddr = &rpool->cur->addr.p.dyn->pfid_addr4;
500 rmask = &rpool->cur->addr.p.dyn->pfid_mask4;
505 if (rpool->cur->addr.p.dyn->pfid_acnt6 < 1 &&
506 (rpool->opts & PF_POOL_TYPEMASK) !=
511 raddr = &rpool->cur->addr.p.dyn->pfid_addr6;
512 rmask = &rpool->cur->addr.p.dyn->pfid_mask6;
516 } else if (rpool->cur->addr.type == PF_ADDR_TABLE) {
517 if ((rpool->opts & PF_POOL_TYPEMASK) != PF_POOL_ROUNDROBIN) {
522 raddr = &rpool->cur->addr.v.a.addr;
523 rmask = &rpool->cur->addr.v.a.mask;
526 switch (rpool->opts & PF_POOL_TYPEMASK) {
538 rpool->counter.addr32[0] = htonl(arc4random());
544 rpool->counter.addr32[3] =
549 rpool->counter.addr32[2] =
554 rpool->counter.addr32[1] =
559 rpool->counter.addr32[0] =
564 PF_POOLMASK(naddr, raddr, rmask, &rpool->counter, af);
568 PF_AINC(&rpool->counter, af);
569 PF_POOLMASK(naddr, raddr, rmask, &rpool->counter, af);
576 pf_hash(saddr, (struct pf_addr *)&hash, &rpool->key, af);
582 struct pf_kpooladdr *acur = rpool->cur;
584 if (rpool->cur->addr.type == PF_ADDR_TABLE) {
585 if (!pfr_pool_get(rpool->cur->addr.p.tbl,
586 &rpool->tblidx, &rpool->counter, af, NULL))
588 } else if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
589 if (!pfr_pool_get(rpool->cur->addr.p.dyn->pfid_kt,
590 &rpool->tblidx, &rpool->counter, af, pf_islinklocal))
592 } else if (pf_match_addr(0, raddr, rmask, &rpool->counter, af))
596 if (TAILQ_NEXT(rpool->cur, entries) == NULL)
597 rpool->cur = TAILQ_FIRST(&rpool->list);
599 rpool->cur = TAILQ_NEXT(rpool->cur, entries);
600 if (rpool->cur->addr.type == PF_ADDR_TABLE) {
601 if (pfr_pool_get(rpool->cur->addr.p.tbl,
602 &rpool->tblidx, &rpool->counter, af, NULL)) {
604 if (rpool->cur != acur)
609 } else if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
610 rpool->tblidx = -1;
611 if (pfr_pool_get(rpool->cur->addr.p.dyn->pfid_kt,
612 &rpool->tblidx, &rpool->counter, af, pf_islinklocal)) {
614 if (rpool->cur != acur)
620 raddr = &rpool->cur->addr.v.a.addr;
621 rmask = &rpool->cur->addr.v.a.mask;
622 PF_ACPY(&rpool->counter, raddr, af);
626 PF_ACPY(naddr, &rpool->counter, af);
629 PF_AINC(&rpool->counter, af);
635 *nkif = rpool->cur->kif;
638 mtx_unlock(&rpool->mtx);
650 struct pf_ksrc_node **sn, struct pf_srchash **sh, struct pf_kpool *rpool)
695 if (pf_map_addr(af, r, saddr, naddr, nkif, init_addr, rpool) != 0) {
701 (rpool->opts & PF_POOL_TYPEMASK) != PF_POOL_NONE) {