Lines Matching refs:ipe

457 	iphtent_t *ipe;
459 while ((ipe = iph->iph_list) != NULL)
460 if (ipf_htent_remove(softc, arg, iph, ipe) != 0)
612 /* ipe(I) - pointer to hash table entry to remove */
617 ipf_htent_remove(softc, arg, iph, ipe)
621 iphtent_t *ipe;
624 if (iph->iph_tail == &ipe->ipe_next)
625 iph->iph_tail = ipe->ipe_pnext;
627 if (ipe->ipe_hnext != NULL)
628 ipe->ipe_hnext->ipe_phnext = ipe->ipe_phnext;
629 if (ipe->ipe_phnext != NULL)
630 *ipe->ipe_phnext = ipe->ipe_hnext;
631 ipe->ipe_phnext = NULL;
632 ipe->ipe_hnext = NULL;
634 if (ipe->ipe_dnext != NULL)
635 ipe->ipe_dnext->ipe_pdnext = ipe->ipe_pdnext;
636 if (ipe->ipe_pdnext != NULL)
637 *ipe->ipe_pdnext = ipe->ipe_dnext;
638 ipe->ipe_pdnext = NULL;
639 ipe->ipe_dnext = NULL;
641 if (ipe->ipe_next != NULL)
642 ipe->ipe_next->ipe_pnext = ipe->ipe_pnext;
643 if (ipe->ipe_pnext != NULL)
644 *ipe->ipe_pnext = ipe->ipe_next;
645 ipe->ipe_pnext = NULL;
646 ipe->ipe_next = NULL;
651 if (ipe->ipe_group != NULL)
652 ipf_group_del(softc, ipe->ipe_ptr, NULL);
656 ipe->ipe_ptr = NULL;
657 ipe->ipe_value = 0;
661 return ipf_htent_deref(arg, ipe);
696 /* ipe(I) - */
700 ipf_htent_deref(arg, ipe)
702 iphtent_t *ipe;
706 ipe->ipe_ref--;
707 if (ipe->ipe_ref == 0) {
708 softh->ipf_nhtnodes[ipe->ipe_unit + 1]--;
709 KFREE(ipe);
714 return ipe->ipe_ref;
910 iphtent_t *ipe;
914 KMALLOC(ipe, iphtent_t *);
915 if (ipe == NULL)
918 bcopy((char *)ipeo, (char *)ipe, sizeof(*ipe));
919 ipe->ipe_addr.i6[0] &= ipe->ipe_mask.i6[0];
920 if (ipe->ipe_family == AF_INET) {
921 bits = count4bits(ipe->ipe_mask.in4_addr);
922 ipe->ipe_addr.i6[1] = 0;
923 ipe->ipe_addr.i6[2] = 0;
924 ipe->ipe_addr.i6[3] = 0;
925 ipe->ipe_mask.i6[1] = 0;
926 ipe->ipe_mask.i6[2] = 0;
927 ipe->ipe_mask.i6[3] = 0;
928 hv = IPE_V4_HASH_FN(ipe->ipe_addr.in4_addr,
929 ipe->ipe_mask.in4_addr, iph->iph_size);
932 if (ipe->ipe_family == AF_INET6) {
933 ipe->ipe_addr.i6[1] &= ipe->ipe_mask.i6[1];
934 ipe->ipe_addr.i6[2] &= ipe->ipe_mask.i6[2];
935 ipe->ipe_addr.i6[3] &= ipe->ipe_mask.i6[3];
937 bits = count6bits(ipe->ipe_mask.i6);
938 hv = IPE_V6_HASH_FN(ipe->ipe_addr.i6,
939 ipe->ipe_mask.i6, iph->iph_size);
943 KFREE(ipe);
947 ipe->ipe_owner = iph;
948 ipe->ipe_ref = 1;
949 ipe->ipe_hnext = iph->iph_table[hv];
950 ipe->ipe_phnext = iph->iph_table + hv;
953 iph->iph_table[hv]->ipe_phnext = &ipe->ipe_hnext;
954 iph->iph_table[hv] = ipe;
956 ipe->ipe_pnext = iph->iph_tail;
957 *iph->iph_tail = ipe;
958 iph->iph_tail = &ipe->ipe_next;
959 ipe->ipe_next = NULL;
961 if (ipe->ipe_die != 0) {
971 ipe->ipe_die = softc->ipf_ticks + IPF_TTLVAL(ipe->ipe_die);
973 if (ipe->ipe_die < n->ipe_die)
981 n->ipe_dnext = ipe;
982 ipe->ipe_pdnext = &n->ipe_dnext;
989 softh->ipf_node_explist = ipe;
990 ipe->ipe_pdnext = &softh->ipf_node_explist;
992 ipe->ipe_dnext = n;
993 ipe->ipe_pdnext = n->ipe_pdnext;
994 n->ipe_pdnext = &ipe->ipe_dnext;
998 if (ipe->ipe_family == AF_INET) {
1002 else if (ipe->ipe_family == AF_INET6) {
1003 ipf_inet6_mask_add(bits, &ipe->ipe_mask, &iph->iph_v6_masks);
1010 ipe->ipe_ptr = ipf_group_add(softc, ipe->ipe_group, NULL,
1016 ipe->ipe_ptr = NULL;
1017 ipe->ipe_value = 0;
1021 ipe->ipe_unit = iph->iph_unit;
1022 softh->ipf_nhtnodes[ipe->ipe_unit + 1]++;
1043 iphtent_t ipe, *ent;
1047 bcopy((char *)ipeo, (char *)&ipe, sizeof(ipe));
1048 ipe.ipe_addr.i6[0] &= ipe.ipe_mask.i6[0];
1049 ipe.ipe_addr.i6[1] &= ipe.ipe_mask.i6[1];
1050 ipe.ipe_addr.i6[2] &= ipe.ipe_mask.i6[2];
1051 ipe.ipe_addr.i6[3] &= ipe.ipe_mask.i6[3];
1052 if (ipe.ipe_family == AF_INET) {
1053 bits = count4bits(ipe.ipe_mask.in4_addr);
1054 ipe.ipe_addr.i6[1] = 0;
1055 ipe.ipe_addr.i6[2] = 0;
1056 ipe.ipe_addr.i6[3] = 0;
1057 ipe.ipe_mask.i6[1] = 0;
1058 ipe.ipe_mask.i6[2] = 0;
1059 ipe.ipe_mask.i6[3] = 0;
1060 hv = IPE_V4_HASH_FN(ipe.ipe_addr.in4_addr,
1061 ipe.ipe_mask.in4_addr, iph->iph_size);
1064 if (ipe.ipe_family == AF_INET6) {
1065 bits = count6bits(ipe.ipe_mask.i6);
1066 hv = IPE_V6_HASH_FN(ipe.ipe_addr.i6,
1067 ipe.ipe_mask.i6, iph->iph_size);
1073 if (ent->ipe_family != ipe.ipe_family)
1075 if (IP6_NEQ(&ipe.ipe_addr, &ent->ipe_addr))
1077 if (IP6_NEQ(&ipe.ipe_mask, &ent->ipe_mask))
1105 iphtent_t *ipe;
1112 ipe = ipf_iphmfind(iph, addr);
1113 if (ipe != NULL)
1114 rval = ipe->ipe_ptr;
1142 iphtent_t *ipe;
1153 ipe = ipf_iphmfind(iph, addr);
1156 ipe = ipf_iphmfind6(iph, (i6addr_t *)addr);
1159 ipe = NULL;
1162 if (ipe != NULL) {
1164 ipe->ipe_hits++;
1165 ipe->ipe_bytes += bytes;
1187 iphtent_t *ipe;
1196 for (ipe = iph->iph_table[hv]; (ipe != NULL); ipe = ipe->ipe_hnext) {
1197 if ((ipe->ipe_family != AF_INET) ||
1198 (ipe->ipe_mask.in4_addr != msk) ||
1199 (ipe->ipe_addr.in4_addr != ips)) {
1205 if (ipe == NULL) {
1210 return ipe;
1394 iphtent_t *ipe;
1406 for (ipe = iph->iph_table[hv]; (ipe != NULL); ipe = ipe->ipe_next) {
1407 if ((ipe->ipe_family != AF_INET6) ||
1408 IP6_NEQ(&ipe->ipe_mask, msk) ||
1409 IP6_NEQ(&ipe->ipe_addr, &ips)) {
1415 if (ipe == NULL) {
1420 return ipe;