Lines Matching refs:ad

87 #define	ADDR_NETWORK(ad)	((ad)->pfra_net < AF_BITS((ad)->pfra_af))
247 struct pfr_addr *ad;
265 for (i = 0, ad = addr; i < size; i++, ad++) {
266 if (pfr_validate_addr(ad))
268 p = pfr_lookup_addr(kt, ad, 1);
269 q = pfr_lookup_addr(tmpkt, ad, 1);
272 ad->pfra_fback = PFR_FB_DUPLICATE;
274 ad->pfra_fback = PFR_FB_ADDED;
275 else if (p->pfrke_not != ad->pfra_not)
276 ad->pfra_fback = PFR_FB_CONFLICT;
278 ad->pfra_fback = PFR_FB_NONE;
281 p = pfr_create_kentry(ad,
287 ad->pfra_fback = PFR_FB_NONE;
319 struct pfr_addr *ad;
350 for (i = 0, ad = addr; i < size; i++, ad++) {
351 if (pfr_validate_addr(ad))
353 p = pfr_lookup_addr(kt, ad, 1);
359 for (i = 0, ad = addr; i < size; i++, ad++) {
360 if (pfr_validate_addr(ad))
362 p = pfr_lookup_addr(kt, ad, 1);
365 ad->pfra_fback = PFR_FB_NONE;
366 else if (p->pfrke_not != ad->pfra_not)
367 ad->pfra_fback = PFR_FB_CONFLICT;
369 ad->pfra_fback = PFR_FB_DUPLICATE;
371 ad->pfra_fback = PFR_FB_DELETED;
373 if (p != NULL && p->pfrke_not == ad->pfra_not &&
399 struct pfr_addr ad;
424 * and make ad a moving pointer
426 bcopy(addr + i, &ad, sizeof(ad));
427 if (pfr_validate_addr(&ad))
429 ad.pfra_fback = PFR_FB_NONE;
430 p = pfr_lookup_addr(kt, &ad, 1);
433 ad.pfra_fback = PFR_FB_DUPLICATE;
437 if (p->pfrke_not != ad.pfra_not) {
439 ad.pfra_fback = PFR_FB_CHANGED;
443 q = pfr_lookup_addr(tmpkt, &ad, 1);
445 ad.pfra_fback = PFR_FB_DUPLICATE;
448 p = pfr_create_kentry(&ad,
454 ad.pfra_fback = PFR_FB_NONE;
457 ad.pfra_fback = PFR_FB_ADDED;
463 bcopy(&ad, addr + i, sizeof(ad));
473 pfr_copyout_addr(&ad, p);
474 ad.pfra_fback = PFR_FB_DELETED;
475 bcopy(&ad, addr + size + i, sizeof(ad));
511 struct pfr_addr *ad;
523 for (i = 0, ad = addr; i < size; i++, ad++) {
524 if (pfr_validate_addr(ad))
526 if (ADDR_NETWORK(ad))
528 p = pfr_lookup_addr(kt, ad, 0);
530 pfr_copyout_addr(ad, p);
531 ad->pfra_fback = (p == NULL) ? PFR_FB_NONE :
642 struct pfr_addr *ad;
654 for (i = 0, ad = addr; i < size; i++, ad++) {
655 if (pfr_validate_addr(ad))
657 p = pfr_lookup_addr(kt, ad, 1);
659 ad->pfra_fback = (p != NULL) ?
680 pfr_validate_addr(struct pfr_addr *ad)
684 switch (ad->pfra_af) {
687 if (ad->pfra_net > 32)
693 if (ad->pfra_net > 128)
700 if (ad->pfra_net < 128 &&
701 (((caddr_t)ad)[ad->pfra_net/8] & (0xFF >> (ad->pfra_net%8))))
703 for (i = (ad->pfra_net+7)/8; i < sizeof(ad->pfra_u); i++)
704 if (((caddr_t)ad)[i])
706 if (ad->pfra_not && ad->pfra_not != 1)
708 if (ad->pfra_fback)
750 pfr_lookup_addr(struct pfr_ktable *kt, struct pfr_addr *ad, int exact)
759 if (ad->pfra_af == AF_INET) {
760 FILLIN_SIN(sa.sin, ad->pfra_ip4addr);
762 } else if ( ad->pfra_af == AF_INET6 ) {
763 FILLIN_SIN6(sa.sin6, ad->pfra_ip6addr);
766 if (ADDR_NETWORK(ad)) {
767 pfr_prepare_network(&mask, ad->pfra_af, ad->pfra_net);
798 pfr_create_kentry(struct pfr_addr *ad, bool counters)
807 if (ad->pfra_af == AF_INET)
808 FILLIN_SIN(ke->pfrke_sa.sin, ad->pfra_ip4addr);
809 else if (ad->pfra_af == AF_INET6)
810 FILLIN_SIN6(ke->pfrke_sa.sin6, ad->pfra_ip6addr);
811 ke->pfrke_af = ad->pfra_af;
812 ke->pfrke_net = ad->pfra_net;
813 ke->pfrke_not = ad->pfra_not;
883 pfr_insert_kentry(struct pfr_ktable *kt, struct pfr_addr *ad, long tzero)
888 p = pfr_lookup_addr(kt, ad, 1);
891 p = pfr_create_kentry(ad, (kt->pfrkt_flags & PFR_TFLAG_COUNTERS) != 0);
960 struct pfr_addr *ad;
963 for (i = 0, ad = addr; i < size; i++, ad++)
964 ad->pfra_fback = PFR_FB_NONE;
1042 pfr_copyout_addr(struct pfr_addr *ad, const struct pfr_kentry *ke)
1044 bzero(ad, sizeof(*ad));
1047 ad->pfra_af = ke->pfrke_af;
1048 ad->pfra_net = ke->pfrke_net;
1049 ad->pfra_not = ke->pfrke_not;
1050 if (ad->pfra_af == AF_INET)
1051 ad->pfra_ip4addr = ke->pfrke_sa.sin.sin_addr;
1052 else if (ad->pfra_af == AF_INET6)
1053 ad->pfra_ip6addr = ke->pfrke_sa.sin6.sin6_addr;
1502 struct pfr_addr *ad;
1553 for (i = 0, ad = addr; i < size; i++, ad++) {
1554 if (pfr_validate_addr(ad))
1556 if (pfr_lookup_addr(shadow, ad, 1) != NULL)
1558 p = pfr_create_kentry(ad,
1688 struct pfr_addr ad;
1699 pfr_copyout_addr(&ad, p);
1700 q = pfr_lookup_addr(kt, &ad, 1);