Lines Matching refs:iph
285 iphtable_t htab, *iph, *oiph; in ipf_htable_create() local
311 iph = ipf_htable_exists(softh, unit, op->iplo_name); in ipf_htable_create()
312 if (iph != NULL) { in ipf_htable_create()
313 if ((iph->iph_flags & IPHASH_DELETE) == 0) { in ipf_htable_create()
317 iph->iph_flags &= ~IPHASH_DELETE; in ipf_htable_create()
318 iph->iph_ref++; in ipf_htable_create()
323 KMALLOC(iph, iphtable_t *); in ipf_htable_create()
324 if (iph == NULL) { in ipf_htable_create()
329 *iph = htab; in ipf_htable_create()
343 (void)strncpy(iph->iph_name, name, sizeof(iph->iph_name)); in ipf_htable_create()
345 iph->iph_type |= IPHASH_ANON; in ipf_htable_create()
347 (void)strncpy(iph->iph_name, op->iplo_name, in ipf_htable_create()
348 sizeof(iph->iph_name)); in ipf_htable_create()
349 iph->iph_name[sizeof(iph->iph_name) - 1] = '\0'; in ipf_htable_create()
352 KMALLOCS(iph->iph_table, iphtent_t **, in ipf_htable_create()
353 iph->iph_size * sizeof(*iph->iph_table)); in ipf_htable_create()
354 if (iph->iph_table == NULL) { in ipf_htable_create()
355 KFREE(iph); in ipf_htable_create()
361 bzero((char *)iph->iph_table, iph->iph_size * sizeof(*iph->iph_table)); in ipf_htable_create()
362 iph->iph_maskset[0] = 0; in ipf_htable_create()
363 iph->iph_maskset[1] = 0; in ipf_htable_create()
364 iph->iph_maskset[2] = 0; in ipf_htable_create()
365 iph->iph_maskset[3] = 0; in ipf_htable_create()
367 iph->iph_ref = 1; in ipf_htable_create()
368 iph->iph_list = NULL; in ipf_htable_create()
369 iph->iph_tail = &iph->iph_list; in ipf_htable_create()
370 iph->iph_next = softh->ipf_htables[unit + 1]; in ipf_htable_create()
371 iph->iph_pnext = &softh->ipf_htables[unit + 1]; in ipf_htable_create()
373 softh->ipf_htables[unit + 1]->iph_pnext = &iph->iph_next; in ipf_htable_create()
374 softh->ipf_htables[unit + 1] = iph; in ipf_htable_create()
412 iphtable_t *iph; in ipf_htable_destroy() local
414 iph = ipf_htable_find(arg, unit, name); in ipf_htable_destroy()
415 if (iph == NULL) { in ipf_htable_destroy()
420 if (iph->iph_unit != unit) { in ipf_htable_destroy()
425 if (iph->iph_ref != 0) { in ipf_htable_destroy()
426 ipf_htable_clear(softc, arg, iph); in ipf_htable_destroy()
427 iph->iph_flags |= IPHASH_DELETE; in ipf_htable_destroy()
431 ipf_htable_remove(softc, arg, iph); in ipf_htable_destroy()
448 ipf_htable_clear(ipf_main_softc_t *softc, void *arg, iphtable_t *iph) in ipf_htable_clear() argument
452 while ((ipe = iph->iph_list) != NULL) in ipf_htable_clear()
453 if (ipf_htent_remove(softc, arg, iph, ipe) != 0) in ipf_htable_clear()
467 ipf_htable_free(void *arg, iphtable_t *iph) in ipf_htable_free() argument
471 if (iph->iph_next != NULL) in ipf_htable_free()
472 iph->iph_next->iph_pnext = iph->iph_pnext; in ipf_htable_free()
473 if (iph->iph_pnext != NULL) in ipf_htable_free()
474 *iph->iph_pnext = iph->iph_next; in ipf_htable_free()
475 iph->iph_pnext = NULL; in ipf_htable_free()
476 iph->iph_next = NULL; in ipf_htable_free()
478 softh->ipf_nhtables[iph->iph_unit + 1]--; in ipf_htable_free()
480 KFREES(iph->iph_table, iph->iph_size * sizeof(*iph->iph_table)); in ipf_htable_free()
481 KFREE(iph); in ipf_htable_free()
496 ipf_htable_remove(ipf_main_softc_t *softc, void *arg, iphtable_t *iph) in ipf_htable_remove() argument
499 if (ipf_htable_clear(softc, arg, iph) != 0) in ipf_htable_remove()
502 if (iph->iph_pnext != NULL) in ipf_htable_remove()
503 *iph->iph_pnext = iph->iph_next; in ipf_htable_remove()
504 if (iph->iph_next != NULL) in ipf_htable_remove()
505 iph->iph_next->iph_pnext = iph->iph_pnext; in ipf_htable_remove()
506 iph->iph_pnext = NULL; in ipf_htable_remove()
507 iph->iph_next = NULL; in ipf_htable_remove()
509 return ipf_htable_deref(softc, arg, iph); in ipf_htable_remove()
526 iphtable_t *iph; in ipf_htable_node_del() local
541 iph = ipf_htable_find(arg, op->iplo_unit, op->iplo_name); in ipf_htable_node_del()
542 if (iph == NULL) { in ipf_htable_node_del()
547 ent = ipf_htent_find(iph, &hte); in ipf_htable_node_del()
558 err = ipf_htent_remove(softc, arg, iph, ent); in ipf_htable_node_del()
599 ipf_htent_remove(ipf_main_softc_t *softc, void *arg, iphtable_t *iph, in ipf_htent_remove() argument
603 if (iph->iph_tail == &ipe->ipe_next) in ipf_htent_remove()
604 iph->iph_tail = ipe->ipe_pnext; in ipf_htent_remove()
627 switch (iph->iph_type & ~IPHASH_ANON) in ipf_htent_remove()
655 iphtable_t *iph = object; in ipf_htable_deref() local
658 iph->iph_ref--; in ipf_htable_deref()
659 refs = iph->iph_ref; in ipf_htable_deref()
661 if (iph->iph_ref == 0) { in ipf_htable_deref()
662 ipf_htable_free(softh, iph); in ipf_htable_deref()
701 iphtable_t *iph; in ipf_htable_exists() local
707 for (iph = softh->ipf_htables[i]; iph != NULL; in ipf_htable_exists()
708 iph = iph->iph_next) { in ipf_htable_exists()
709 if (strncmp(iph->iph_name, name, in ipf_htable_exists()
710 sizeof(iph->iph_name)) == 0) in ipf_htable_exists()
713 if (iph != NULL) in ipf_htable_exists()
717 for (iph = softh->ipf_htables[unit + 1]; iph != NULL; in ipf_htable_exists()
718 iph = iph->iph_next) { in ipf_htable_exists()
719 if (strncmp(iph->iph_name, name, in ipf_htable_exists()
720 sizeof(iph->iph_name)) == 0) in ipf_htable_exists()
724 return iph; in ipf_htable_exists()
739 iphtable_t *iph; in ipf_htable_select_add_ref() local
741 iph = ipf_htable_exists(arg, unit, name); in ipf_htable_select_add_ref()
742 if (iph != NULL) { in ipf_htable_select_add_ref()
743 ATOMIC_INC32(iph->iph_ref); in ipf_htable_select_add_ref()
745 return iph; in ipf_htable_select_add_ref()
761 iphtable_t *iph; in ipf_htable_find() local
763 iph = ipf_htable_exists(arg, unit, name); in ipf_htable_find()
764 if ((iph != NULL) && (iph->iph_flags & IPHASH_DELETE) == 0) in ipf_htable_find()
765 return iph; in ipf_htable_find()
783 iphtable_t *iph; in ipf_htable_flush() local
791 while ((iph = softh->ipf_htables[i + 1]) != NULL) { in ipf_htable_flush()
792 if (ipf_htable_remove(softc, arg, iph) == 0) { in ipf_htable_flush()
795 iph->iph_flags |= IPHASH_DELETE; in ipf_htable_flush()
818 iphtable_t *iph; in ipf_htable_node_add() local
834 iph = ipf_htable_find(arg, op->iplo_unit, op->iplo_name); in ipf_htable_node_add()
835 if (iph == NULL) { in ipf_htable_node_add()
840 if (ipf_htent_find(iph, &hte) != NULL) { in ipf_htable_node_add()
845 err = ipf_htent_insert(softc, arg, iph, &hte); in ipf_htable_node_add()
862 ipf_htent_insert(ipf_main_softc_t *softc, void *arg, iphtable_t *iph, in ipf_htent_insert() argument
885 ipe->ipe_mask.in4_addr, iph->iph_size); in ipf_htent_insert()
895 ipe->ipe_mask.i6, iph->iph_size); in ipf_htent_insert()
903 ipe->ipe_owner = iph; in ipf_htent_insert()
905 ipe->ipe_hnext = iph->iph_table[hv]; in ipf_htent_insert()
906 ipe->ipe_phnext = iph->iph_table + hv; in ipf_htent_insert()
908 if (iph->iph_table[hv] != NULL) in ipf_htent_insert()
909 iph->iph_table[hv]->ipe_phnext = &ipe->ipe_hnext; in ipf_htent_insert()
910 iph->iph_table[hv] = ipe; in ipf_htent_insert()
912 ipe->ipe_pnext = iph->iph_tail; in ipf_htent_insert()
913 *iph->iph_tail = ipe; in ipf_htent_insert()
914 iph->iph_tail = &ipe->ipe_next; in ipf_htent_insert()
955 ipf_inet_mask_add(bits, &iph->iph_v4_masks); in ipf_htent_insert()
959 ipf_inet6_mask_add(bits, &ipe->ipe_mask, &iph->iph_v6_masks); in ipf_htent_insert()
963 switch (iph->iph_type & ~IPHASH_ANON) in ipf_htent_insert()
967 iph->iph_flags, IPL_LOGIPF, in ipf_htent_insert()
977 ipe->ipe_unit = iph->iph_unit; in ipf_htent_insert()
995 ipf_htent_find(iphtable_t *iph, iphtent_t *ipeo) in ipf_htent_find() argument
1013 ipe.ipe_mask.in4_addr, iph->iph_size); in ipf_htent_find()
1018 ipe.ipe_mask.i6, iph->iph_size); in ipf_htent_find()
1023 for (ent = iph->iph_table[hv]; ent != NULL; ent = ent->ipe_hnext) { in ipf_htent_find()
1053 iphtable_t *iph; in ipf_iphmfindgroup() local
1058 iph = tptr; in ipf_iphmfindgroup()
1061 ipe = ipf_iphmfind(iph, addr); in ipf_iphmfindgroup()
1087 iphtable_t *iph; in ipf_iphmfindip() local
1094 iph = tptr; in ipf_iphmfindip()
1099 ipe = ipf_iphmfind(iph, addr); in ipf_iphmfindip()
1102 ipe = ipf_iphmfind6(iph, (i6addr_t *)addr); in ipf_iphmfindip()
1128 ipf_iphmfind(iphtable_t *iph, struct in_addr *addr) in ipf_iphmfind() argument
1137 msk = iph->iph_v4_masks.imt4_active[i]; in ipf_iphmfind()
1139 hv = IPE_V4_HASH_FN(ips, msk, iph->iph_size); in ipf_iphmfind()
1140 for (ipe = iph->iph_table[hv]; (ipe != NULL); ipe = ipe->ipe_hnext) { in ipf_iphmfind()
1151 if (i < iph->iph_v4_masks.imt4_max) in ipf_iphmfind()
1173 iphtable_t *iph, zp, *nextiph; in ipf_htable_iter_next() local
1178 iph = NULL; in ipf_htable_iter_next()
1188 iph = token->ipt_data; in ipf_htable_iter_next()
1189 if (iph == NULL) { in ipf_htable_iter_next()
1192 nextiph = iph->iph_next; in ipf_htable_iter_next()
1209 iph = ipf_htable_find(arg, ilp->ili_unit, in ipf_htable_iter_next()
1211 if (iph == NULL) { in ipf_htable_iter_next()
1215 nextnode = iph->iph_list; in ipf_htable_iter_next()
1251 if (iph != NULL) { in ipf_htable_iter_next()
1253 ipf_htable_deref(softc, softh, iph); in ipf_htable_iter_next()
1326 ipf_iphmfind6(iphtable_t *iph, i6addr_t *addr) in ipf_iphmfind6() argument
1335 msk = iph->iph_v6_masks.imt6_active + i; in ipf_iphmfind6()
1340 hv = IPE_V6_HASH_FN(ips.i6, msk->i6, iph->iph_size); in ipf_iphmfind6()
1341 for (ipe = iph->iph_table[hv]; (ipe != NULL); ipe = ipe->ipe_next) { in ipf_iphmfind6()
1352 if (i < iph->iph_v6_masks.imt6_max) in ipf_iphmfind6()
1386 iphtable_t *iph; local
1391 for (iph = softh->ipf_htables[i]; iph != NULL;
1392 iph = iph->iph_next)
1393 printhash(iph, bcopywrap, NULL, opts, NULL);