Lines Matching defs:ipe
450 iphtent_t *ipe;
452 while ((ipe = iph->iph_list) != NULL)
453 if (ipf_htent_remove(softc, arg, iph, ipe) != 0)
594 /* ipe(I) - pointer to hash table entry to remove */
600 iphtent_t *ipe)
603 if (iph->iph_tail == &ipe->ipe_next)
604 iph->iph_tail = ipe->ipe_pnext;
606 if (ipe->ipe_hnext != NULL)
607 ipe->ipe_hnext->ipe_phnext = ipe->ipe_phnext;
608 if (ipe->ipe_phnext != NULL)
609 *ipe->ipe_phnext = ipe->ipe_hnext;
610 ipe->ipe_phnext = NULL;
611 ipe->ipe_hnext = NULL;
613 if (ipe->ipe_dnext != NULL)
614 ipe->ipe_dnext->ipe_pdnext = ipe->ipe_pdnext;
615 if (ipe->ipe_pdnext != NULL)
616 *ipe->ipe_pdnext = ipe->ipe_dnext;
617 ipe->ipe_pdnext = NULL;
618 ipe->ipe_dnext = NULL;
620 if (ipe->ipe_next != NULL)
621 ipe->ipe_next->ipe_pnext = ipe->ipe_pnext;
622 if (ipe->ipe_pnext != NULL)
623 *ipe->ipe_pnext = ipe->ipe_next;
624 ipe->ipe_pnext = NULL;
625 ipe->ipe_next = NULL;
630 ipf_group_del(softc, ipe->ipe_ptr, NULL);
634 ipe->ipe_ptr = NULL;
635 ipe->ipe_value = 0;
639 return ipf_htent_deref(arg, ipe);
672 /* ipe(I) - */
676 ipf_htent_deref(void *arg, iphtent_t *ipe)
680 ipe->ipe_ref--;
681 if (ipe->ipe_ref == 0) {
682 softh->ipf_nhtnodes[ipe->ipe_unit + 1]--;
683 KFREE(ipe);
688 return ipe->ipe_ref;
866 iphtent_t *ipe;
870 KMALLOC(ipe, iphtent_t *);
871 if (ipe == NULL)
874 bcopy((char *)ipeo, (char *)ipe, sizeof(*ipe));
875 ipe->ipe_addr.i6[0] &= ipe->ipe_mask.i6[0];
876 if (ipe->ipe_family == AF_INET) {
877 bits = count4bits(ipe->ipe_mask.in4_addr);
878 ipe->ipe_addr.i6[1] = 0;
879 ipe->ipe_addr.i6[2] = 0;
880 ipe->ipe_addr.i6[3] = 0;
881 ipe->ipe_mask.i6[1] = 0;
882 ipe->ipe_mask.i6[2] = 0;
883 ipe->ipe_mask.i6[3] = 0;
884 hv = IPE_V4_HASH_FN(ipe->ipe_addr.in4_addr,
885 ipe->ipe_mask.in4_addr, iph->iph_size);
888 if (ipe->ipe_family == AF_INET6) {
889 ipe->ipe_addr.i6[1] &= ipe->ipe_mask.i6[1];
890 ipe->ipe_addr.i6[2] &= ipe->ipe_mask.i6[2];
891 ipe->ipe_addr.i6[3] &= ipe->ipe_mask.i6[3];
893 bits = count6bits(ipe->ipe_mask.i6);
894 hv = IPE_V6_HASH_FN(ipe->ipe_addr.i6,
895 ipe->ipe_mask.i6, iph->iph_size);
899 KFREE(ipe);
903 ipe->ipe_owner = iph;
904 ipe->ipe_ref = 1;
905 ipe->ipe_hnext = iph->iph_table[hv];
906 ipe->ipe_phnext = iph->iph_table + hv;
909 iph->iph_table[hv]->ipe_phnext = &ipe->ipe_hnext;
910 iph->iph_table[hv] = ipe;
912 ipe->ipe_pnext = iph->iph_tail;
913 *iph->iph_tail = ipe;
914 iph->iph_tail = &ipe->ipe_next;
915 ipe->ipe_next = NULL;
917 if (ipe->ipe_die != 0) {
927 ipe->ipe_die = softc->ipf_ticks + IPF_TTLVAL(ipe->ipe_die);
929 if (ipe->ipe_die < n->ipe_die)
937 n->ipe_dnext = ipe;
938 ipe->ipe_pdnext = &n->ipe_dnext;
945 softh->ipf_node_explist = ipe;
946 ipe->ipe_pdnext = &softh->ipf_node_explist;
948 ipe->ipe_dnext = n;
949 ipe->ipe_pdnext = n->ipe_pdnext;
950 n->ipe_pdnext = &ipe->ipe_dnext;
954 if (ipe->ipe_family == AF_INET) {
958 else if (ipe->ipe_family == AF_INET6) {
959 ipf_inet6_mask_add(bits, &ipe->ipe_mask, &iph->iph_v6_masks);
966 ipe->ipe_ptr = ipf_group_add(softc, ipe->ipe_group, NULL,
972 ipe->ipe_ptr = NULL;
973 ipe->ipe_value = 0;
977 ipe->ipe_unit = iph->iph_unit;
978 softh->ipf_nhtnodes[ipe->ipe_unit + 1]++;
997 iphtent_t ipe, *ent;
1000 bcopy((char *)ipeo, (char *)&ipe, sizeof(ipe));
1001 ipe.ipe_addr.i6[0] &= ipe.ipe_mask.i6[0];
1002 ipe.ipe_addr.i6[1] &= ipe.ipe_mask.i6[1];
1003 ipe.ipe_addr.i6[2] &= ipe.ipe_mask.i6[2];
1004 ipe.ipe_addr.i6[3] &= ipe.ipe_mask.i6[3];
1005 if (ipe.ipe_family == AF_INET) {
1006 ipe.ipe_addr.i6[1] = 0;
1007 ipe.ipe_addr.i6[2] = 0;
1008 ipe.ipe_addr.i6[3] = 0;
1009 ipe.ipe_mask.i6[1] = 0;
1010 ipe.ipe_mask.i6[2] = 0;
1011 ipe.ipe_mask.i6[3] = 0;
1012 hv = IPE_V4_HASH_FN(ipe.ipe_addr.in4_addr,
1013 ipe.ipe_mask.in4_addr, iph->iph_size);
1016 if (ipe.ipe_family == AF_INET6) {
1017 hv = IPE_V6_HASH_FN(ipe.ipe_addr.i6,
1018 ipe.ipe_mask.i6, iph->iph_size);
1024 if (ent->ipe_family != ipe.ipe_family)
1026 if (IP6_NEQ(&ipe.ipe_addr, &ent->ipe_addr))
1028 if (IP6_NEQ(&ipe.ipe_mask, &ent->ipe_mask))
1054 iphtent_t *ipe;
1061 ipe = ipf_iphmfind(iph, addr);
1062 if (ipe != NULL)
1063 rval = ipe->ipe_ptr;
1088 iphtent_t *ipe;
1099 ipe = ipf_iphmfind(iph, addr);
1102 ipe = ipf_iphmfind6(iph, (i6addr_t *)addr);
1105 ipe = NULL;
1108 if (ipe != NULL) {
1110 ipe->ipe_hits++;
1111 ipe->ipe_bytes += bytes;
1131 iphtent_t *ipe;
1140 for (ipe = iph->iph_table[hv]; (ipe != NULL); ipe = ipe->ipe_hnext) {
1141 if ((ipe->ipe_family != AF_INET) ||
1142 (ipe->ipe_mask.in4_addr != msk) ||
1143 (ipe->ipe_addr.in4_addr != ips)) {
1149 if (ipe == NULL) {
1154 return ipe;
1329 iphtent_t *ipe;
1341 for (ipe = iph->iph_table[hv]; (ipe != NULL); ipe = ipe->ipe_next) {
1342 if ((ipe->ipe_family != AF_INET6) ||
1343 IP6_NEQ(&ipe->ipe_mask, msk) ||
1344 IP6_NEQ(&ipe->ipe_addr, &ips)) {
1350 if (ipe == NULL) {
1355 return ipe;