Lines Matching full:ad

83 #define	ADDR_NETWORK(ad)	((ad)->pfra_net < AF_BITS((ad)->pfra_af))
246 struct pfr_addr *ad;
264 for (i = 0, ad = addr; i < size; i++, ad++) {
265 if (pfr_validate_addr(ad))
267 p = pfr_lookup_addr(kt, ad, 1);
268 q = pfr_lookup_addr(tmpkt, ad, 1);
271 ad->pfra_fback = PFR_FB_DUPLICATE;
273 ad->pfra_fback = PFR_FB_ADDED;
274 else if (p->pfrke_not != ad->pfra_not)
275 ad->pfra_fback = PFR_FB_CONFLICT;
277 ad->pfra_fback = PFR_FB_NONE;
280 p = pfr_create_kentry(ad,
286 ad->pfra_fback = PFR_FB_NONE;
318 struct pfr_addr *ad;
349 for (i = 0, ad = addr; i < size; i++, ad++) {
350 if (pfr_validate_addr(ad))
352 p = pfr_lookup_addr(kt, ad, 1);
358 for (i = 0, ad = addr; i < size; i++, ad++) {
359 if (pfr_validate_addr(ad))
361 p = pfr_lookup_addr(kt, ad, 1);
364 ad->pfra_fback = PFR_FB_NONE;
365 else if (p->pfrke_not != ad->pfra_not)
366 ad->pfra_fback = PFR_FB_CONFLICT;
368 ad->pfra_fback = PFR_FB_DUPLICATE;
370 ad->pfra_fback = PFR_FB_DELETED;
372 if (p != NULL && p->pfrke_not == ad->pfra_not &&
398 struct pfr_addr ad;
423 * and make ad a moving pointer
425 bcopy(addr + i, &ad, sizeof(ad));
426 if (pfr_validate_addr(&ad))
428 ad.pfra_fback = PFR_FB_NONE;
429 p = pfr_lookup_addr(kt, &ad, 1);
432 ad.pfra_fback = PFR_FB_DUPLICATE;
436 if (p->pfrke_not != ad.pfra_not) {
438 ad.pfra_fback = PFR_FB_CHANGED;
442 q = pfr_lookup_addr(tmpkt, &ad, 1);
444 ad.pfra_fback = PFR_FB_DUPLICATE;
447 p = pfr_create_kentry(&ad,
453 ad.pfra_fback = PFR_FB_NONE;
456 ad.pfra_fback = PFR_FB_ADDED;
462 bcopy(&ad, addr + i, sizeof(ad));
472 pfr_copyout_addr(&ad, p);
473 ad.pfra_fback = PFR_FB_DELETED;
474 bcopy(&ad, addr + size + i, sizeof(ad));
510 struct pfr_addr *ad;
522 for (i = 0, ad = addr; i < size; i++, ad++) {
523 if (pfr_validate_addr(ad))
525 if (ADDR_NETWORK(ad))
527 p = pfr_lookup_addr(kt, ad, 0);
529 pfr_copyout_addr(ad, p);
530 ad->pfra_fback = (p == NULL) ? PFR_FB_NONE :
641 struct pfr_addr *ad;
653 for (i = 0, ad = addr; i < size; i++, ad++) {
654 if (pfr_validate_addr(ad))
656 p = pfr_lookup_addr(kt, ad, 1);
658 ad->pfra_fback = (p != NULL) ?
679 pfr_validate_addr(struct pfr_addr *ad)
683 switch (ad->pfra_af) {
686 if (ad->pfra_net > 32)
692 if (ad->pfra_net > 128)
699 if (ad->pfra_net < 128 &&
700 (((caddr_t)ad)[ad->pfra_net/8] & (0xFF >> (ad->pfra_net%8))))
702 for (i = (ad->pfra_net+7)/8; i < sizeof(ad->pfra_u); i++)
703 if (((caddr_t)ad)[i])
705 if (ad->pfra_not && ad->pfra_not != 1)
707 if (ad->pfra_fback)
748 pfr_lookup_addr(struct pfr_ktable *kt, struct pfr_addr *ad, int exact)
757 if (ad->pfra_af == AF_INET) {
758 FILLIN_SIN(sa.sin, ad->pfra_ip4addr);
760 } else if ( ad->pfra_af == AF_INET6 ) {
761 FILLIN_SIN6(sa.sin6, ad->pfra_ip6addr);
764 if (ADDR_NETWORK(ad)) {
765 pfr_prepare_network(&mask, ad->pfra_af, ad->pfra_net);
780 pfr_create_kentry(struct pfr_addr *ad, bool counters)
789 if (ad->pfra_af == AF_INET)
790 FILLIN_SIN(ke->pfrke_sa.sin, ad->pfra_ip4addr);
791 else if (ad->pfra_af == AF_INET6)
792 FILLIN_SIN6(ke->pfrke_sa.sin6, ad->pfra_ip6addr);
793 ke->pfrke_af = ad->pfra_af;
794 ke->pfrke_net = ad->pfra_net;
795 ke->pfrke_not = ad->pfra_not;
850 pfr_insert_kentry(struct pfr_ktable *kt, struct pfr_addr *ad, long tzero)
855 p = pfr_lookup_addr(kt, ad, 1);
858 p = pfr_create_kentry(ad, (kt->pfrkt_flags & PFR_TFLAG_COUNTERS) != 0);
918 struct pfr_addr *ad;
921 for (i = 0, ad = addr; i < size; i++, ad++)
922 ad->pfra_fback = PFR_FB_NONE;
1000 pfr_copyout_addr(struct pfr_addr *ad, const struct pfr_kentry *ke)
1002 bzero(ad, sizeof(*ad));
1005 ad->pfra_af = ke->pfrke_af;
1006 ad->pfra_net = ke->pfrke_net;
1007 ad->pfra_not = ke->pfrke_not;
1008 if (ad->pfra_af == AF_INET)
1009 ad->pfra_ip4addr = ke->pfrke_sa.sin.sin_addr;
1010 else if (ad->pfra_af == AF_INET6)
1011 ad->pfra_ip6addr = ke->pfrke_sa.sin6.sin6_addr;
1488 struct pfr_addr *ad;
1539 for (i = 0, ad = addr; i < size; i++, ad++) {
1540 if (pfr_validate_addr(ad))
1542 if (pfr_lookup_addr(shadow, ad, 1) != NULL)
1544 p = pfr_create_kentry(ad,
1675 struct pfr_addr ad;
1685 pfr_copyout_addr(&ad, p);
1686 q = pfr_lookup_addr(kt, &ad, 1);