• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/netpfil/pf/

Lines Matching refs:rpool

145 			if (r->rpool.cur != NULL)
146 xdst = &r->rpool.cur->addr;
288 switch (r->rpool.opts & PF_POOL_TYPEMASK) {
318 ashift = 16 - r->rpool.mape.offset;
319 psidshift = ashift - r->rpool.mape.psidlen;
320 psmask = r->rpool.mape.psid & ((1U << r->rpool.mape.psidlen) - 1);
324 ahigh = (1U << r->rpool.mape.offset) - 1;
348 struct pf_kpool *rpool = &r->rpool;
353 if (*sn == NULL && r->rpool.opts & PF_POOL_STICKYADDR &&
354 (r->rpool.opts & PF_POOL_TYPEMASK) != PF_POOL_NONE)
381 if (rpool->cur->addr.type == PF_ADDR_NOROUTE)
383 if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
387 if (rpool->cur->addr.p.dyn->pfid_acnt4 < 1 &&
388 (rpool->opts & PF_POOL_TYPEMASK) !=
391 raddr = &rpool->cur->addr.p.dyn->pfid_addr4;
392 rmask = &rpool->cur->addr.p.dyn->pfid_mask4;
397 if (rpool->cur->addr.p.dyn->pfid_acnt6 < 1 &&
398 (rpool->opts & PF_POOL_TYPEMASK) !=
401 raddr = &rpool->cur->addr.p.dyn->pfid_addr6;
402 rmask = &rpool->cur->addr.p.dyn->pfid_mask6;
406 } else if (rpool->cur->addr.type == PF_ADDR_TABLE) {
407 if ((rpool->opts & PF_POOL_TYPEMASK) != PF_POOL_ROUNDROBIN)
410 raddr = &rpool->cur->addr.v.a.addr;
411 rmask = &rpool->cur->addr.v.a.mask;
414 switch (rpool->opts & PF_POOL_TYPEMASK) {
426 rpool->counter.addr32[0] = htonl(arc4random());
432 rpool->counter.addr32[3] =
437 rpool->counter.addr32[2] =
442 rpool->counter.addr32[1] =
447 rpool->counter.addr32[0] =
452 PF_POOLMASK(naddr, raddr, rmask, &rpool->counter, af);
456 PF_AINC(&rpool->counter, af);
457 PF_POOLMASK(naddr, raddr, rmask, &rpool->counter, af);
464 pf_hash(saddr, (struct pf_addr *)&hash, &rpool->key, af);
470 struct pf_kpooladdr *acur = rpool->cur;
480 * In the simpliest case we just update the "rpool->cur"
493 if (rpool->cur->addr.type == PF_ADDR_TABLE) {
494 if (!pfr_pool_get(rpool->cur->addr.p.tbl,
495 &rpool->tblidx, &rpool->counter, af))
497 } else if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
498 if (!pfr_pool_get(rpool->cur->addr.p.dyn->pfid_kt,
499 &rpool->tblidx, &rpool->counter, af))
501 } else if (pf_match_addr(0, raddr, rmask, &rpool->counter, af))
505 if (TAILQ_NEXT(rpool->cur, entries) == NULL)
506 rpool->cur = TAILQ_FIRST(&rpool->list);
508 rpool->cur = TAILQ_NEXT(rpool->cur, entries);
509 if (rpool->cur->addr.type == PF_ADDR_TABLE) {
510 rpool->tblidx = -1;
511 if (pfr_pool_get(rpool->cur->addr.p.tbl,
512 &rpool->tblidx, &rpool->counter, af)) {
514 if (rpool->cur != acur)
518 } else if (rpool->cur->addr.type == PF_ADDR_DYNIFTL) {
519 rpool->tblidx = -1;
520 if (pfr_pool_get(rpool->cur->addr.p.dyn->pfid_kt,
521 &rpool->tblidx, &rpool->counter, af)) {
523 if (rpool->cur != acur)
528 raddr = &rpool->cur->addr.v.a.addr;
529 rmask = &rpool->cur->addr.v.a.mask;
530 PF_ACPY(&rpool->counter, raddr, af);
534 PF_ACPY(naddr, &rpool->counter, af);
537 PF_AINC(&rpool->counter, af);
545 (rpool->opts & PF_POOL_TYPEMASK) != PF_POOL_NONE) {
616 low = r->rpool.proxy_port[0];
617 high = r->rpool.proxy_port[1];
619 if (r->rpool.mape.offset > 0) {
625 r->rpool.mape.offset,
626 r->rpool.mape.psidlen,
627 r->rpool.mape.psid));
634 r->rpool.proxy_port[0], r->rpool.proxy_port[1]));
641 if (r->rpool.cur->addr.type == PF_ADDR_DYNIFTL){
645 if (r->rpool.cur->addr.p.dyn->
649 &r->rpool.cur->addr.p.dyn->
651 &r->rpool.cur->addr.p.dyn->
657 if (r->rpool.cur->addr.p.dyn->
661 &r->rpool.cur->addr.p.dyn->
663 &r->rpool.cur->addr.p.dyn->
670 &r->rpool.cur->addr.v.a.addr,
671 &r->rpool.cur->addr.v.a.mask, saddr,
707 if ((r->rpool.opts & PF_POOL_TYPEMASK) == PF_POOL_BITMASK)
708 PF_POOLMASK(naddr, naddr, &r->rpool.cur->addr.v.a.mask,
711 if (r->rpool.proxy_port[1]) {
715 (r->rpool.proxy_port[1] - r->rpool.proxy_port[0] +
716 1)) + r->rpool.proxy_port[0];
722 } else if (r->rpool.proxy_port[0])
723 *nport = htons(r->rpool.proxy_port[0]);