Lines Matching refs:ipe
461 iphtent_t *ipe; local
463 while ((ipe = iph->iph_list) != NULL)
464 if (ipf_htent_remove(softc, arg, iph, ipe) != 0)
621 ipf_htent_remove(softc, arg, iph, ipe) in ipf_htent_remove() argument
625 iphtent_t *ipe;
628 if (iph->iph_tail == &ipe->ipe_next)
629 iph->iph_tail = ipe->ipe_pnext;
631 if (ipe->ipe_hnext != NULL)
632 ipe->ipe_hnext->ipe_phnext = ipe->ipe_phnext;
633 if (ipe->ipe_phnext != NULL)
634 *ipe->ipe_phnext = ipe->ipe_hnext;
635 ipe->ipe_phnext = NULL;
636 ipe->ipe_hnext = NULL;
638 if (ipe->ipe_dnext != NULL)
639 ipe->ipe_dnext->ipe_pdnext = ipe->ipe_pdnext;
640 if (ipe->ipe_pdnext != NULL)
641 *ipe->ipe_pdnext = ipe->ipe_dnext;
642 ipe->ipe_pdnext = NULL;
643 ipe->ipe_dnext = NULL;
645 if (ipe->ipe_next != NULL)
646 ipe->ipe_next->ipe_pnext = ipe->ipe_pnext;
647 if (ipe->ipe_pnext != NULL)
648 *ipe->ipe_pnext = ipe->ipe_next;
649 ipe->ipe_pnext = NULL;
650 ipe->ipe_next = NULL;
655 if (ipe->ipe_group != NULL)
656 ipf_group_del(softc, ipe->ipe_ptr, NULL);
660 ipe->ipe_ptr = NULL;
661 ipe->ipe_value = 0;
665 return ipf_htent_deref(arg, ipe);
704 ipf_htent_deref(arg, ipe) in ipf_htent_deref() argument
706 iphtent_t *ipe;
710 ipe->ipe_ref--;
711 if (ipe->ipe_ref == 0) {
712 softh->ipf_nhtnodes[ipe->ipe_unit + 1]--;
713 KFREE(ipe);
718 return ipe->ipe_ref;
914 iphtent_t *ipe; local
918 KMALLOC(ipe, iphtent_t *);
919 if (ipe == NULL)
922 bcopy((char *)ipeo, (char *)ipe, sizeof(*ipe));
923 ipe->ipe_addr.i6[0] &= ipe->ipe_mask.i6[0];
924 if (ipe->ipe_family == AF_INET) {
925 bits = count4bits(ipe->ipe_mask.in4_addr);
926 ipe->ipe_addr.i6[1] = 0;
927 ipe->ipe_addr.i6[2] = 0;
928 ipe->ipe_addr.i6[3] = 0;
929 ipe->ipe_mask.i6[1] = 0;
930 ipe->ipe_mask.i6[2] = 0;
931 ipe->ipe_mask.i6[3] = 0;
932 hv = IPE_V4_HASH_FN(ipe->ipe_addr.in4_addr,
933 ipe->ipe_mask.in4_addr, iph->iph_size);
936 if (ipe->ipe_family == AF_INET6) {
937 ipe->ipe_addr.i6[1] &= ipe->ipe_mask.i6[1];
938 ipe->ipe_addr.i6[2] &= ipe->ipe_mask.i6[2];
939 ipe->ipe_addr.i6[3] &= ipe->ipe_mask.i6[3];
941 bits = count6bits(ipe->ipe_mask.i6);
942 hv = IPE_V6_HASH_FN(ipe->ipe_addr.i6,
943 ipe->ipe_mask.i6, iph->iph_size);
947 KFREE(ipe);
951 ipe->ipe_owner = iph;
952 ipe->ipe_ref = 1;
953 ipe->ipe_hnext = iph->iph_table[hv];
954 ipe->ipe_phnext = iph->iph_table + hv;
957 iph->iph_table[hv]->ipe_phnext = &ipe->ipe_hnext;
958 iph->iph_table[hv] = ipe;
960 ipe->ipe_pnext = iph->iph_tail;
961 *iph->iph_tail = ipe;
962 iph->iph_tail = &ipe->ipe_next;
963 ipe->ipe_next = NULL;
965 if (ipe->ipe_die != 0) {
975 ipe->ipe_die = softc->ipf_ticks + IPF_TTLVAL(ipe->ipe_die);
977 if (ipe->ipe_die < n->ipe_die)
985 n->ipe_dnext = ipe;
986 ipe->ipe_pdnext = &n->ipe_dnext;
993 softh->ipf_node_explist = ipe;
994 ipe->ipe_pdnext = &softh->ipf_node_explist;
996 ipe->ipe_dnext = n;
997 ipe->ipe_pdnext = n->ipe_pdnext;
998 n->ipe_pdnext = &ipe->ipe_dnext;
1002 if (ipe->ipe_family == AF_INET) {
1006 else if (ipe->ipe_family == AF_INET6) {
1007 ipf_inet6_mask_add(bits, &ipe->ipe_mask, &iph->iph_v6_masks);
1014 ipe->ipe_ptr = ipf_group_add(softc, ipe->ipe_group, NULL,
1020 ipe->ipe_ptr = NULL;
1021 ipe->ipe_value = 0;
1025 ipe->ipe_unit = iph->iph_unit;
1026 softh->ipf_nhtnodes[ipe->ipe_unit + 1]++;
1047 iphtent_t ipe, *ent; local
1051 bcopy((char *)ipeo, (char *)&ipe, sizeof(ipe));
1052 ipe.ipe_addr.i6[0] &= ipe.ipe_mask.i6[0];
1053 ipe.ipe_addr.i6[1] &= ipe.ipe_mask.i6[1];
1054 ipe.ipe_addr.i6[2] &= ipe.ipe_mask.i6[2];
1055 ipe.ipe_addr.i6[3] &= ipe.ipe_mask.i6[3];
1056 if (ipe.ipe_family == AF_INET) {
1057 bits = count4bits(ipe.ipe_mask.in4_addr);
1058 ipe.ipe_addr.i6[1] = 0;
1059 ipe.ipe_addr.i6[2] = 0;
1060 ipe.ipe_addr.i6[3] = 0;
1061 ipe.ipe_mask.i6[1] = 0;
1062 ipe.ipe_mask.i6[2] = 0;
1063 ipe.ipe_mask.i6[3] = 0;
1064 hv = IPE_V4_HASH_FN(ipe.ipe_addr.in4_addr,
1065 ipe.ipe_mask.in4_addr, iph->iph_size);
1068 if (ipe.ipe_family == AF_INET6) {
1069 bits = count6bits(ipe.ipe_mask.i6);
1070 hv = IPE_V6_HASH_FN(ipe.ipe_addr.i6,
1071 ipe.ipe_mask.i6, iph->iph_size);
1077 if (ent->ipe_family != ipe.ipe_family)
1079 if (IP6_NEQ(&ipe.ipe_addr, &ent->ipe_addr))
1081 if (IP6_NEQ(&ipe.ipe_mask, &ent->ipe_mask))
1109 iphtent_t *ipe; local
1116 ipe = ipf_iphmfind(iph, addr);
1117 if (ipe != NULL)
1118 rval = ipe->ipe_ptr;
1146 iphtent_t *ipe; local
1157 ipe = ipf_iphmfind(iph, addr);
1160 ipe = ipf_iphmfind6(iph, (i6addr_t *)addr);
1163 ipe = NULL;
1166 if (ipe != NULL) {
1168 ipe->ipe_hits++;
1169 ipe->ipe_bytes += bytes;
1191 iphtent_t *ipe; local
1200 for (ipe = iph->iph_table[hv]; (ipe != NULL); ipe = ipe->ipe_hnext) {
1201 if ((ipe->ipe_family != AF_INET) ||
1202 (ipe->ipe_mask.in4_addr != msk) ||
1203 (ipe->ipe_addr.in4_addr != ips)) {
1209 if (ipe == NULL) {
1214 return ipe;
1398 iphtent_t *ipe; local
1410 for (ipe = iph->iph_table[hv]; (ipe != NULL); ipe = ipe->ipe_next) {
1411 if ((ipe->ipe_family != AF_INET6) ||
1412 IP6_NEQ(&ipe->ipe_mask, msk) ||
1413 IP6_NEQ(&ipe->ipe_addr, &ips)) {
1419 if (ipe == NULL) {
1424 return ipe;