Lines Matching refs:ifs

269 ipf_kstat_init(ipf_stack_t *ifs, boolean_t from_gz)  in ipf_kstat_init()  argument
271 ifs->ifs_kstatp[0] = net_kstat_create(ifs->ifs_netid, in ipf_kstat_init()
275 if (ifs->ifs_kstatp[0] != NULL) { in ipf_kstat_init()
276 bcopy(&ipf_kstat_tmp, ifs->ifs_kstatp[0]->ks_data, in ipf_kstat_init()
278 ifs->ifs_kstatp[0]->ks_update = ipf_kstat_update; in ipf_kstat_init()
279 ifs->ifs_kstatp[0]->ks_private = &ifs->ifs_frstats[0]; in ipf_kstat_init()
280 kstat_install(ifs->ifs_kstatp[0]); in ipf_kstat_init()
283 ifs->ifs_kstatp[1] = net_kstat_create(ifs->ifs_netid, in ipf_kstat_init()
287 if (ifs->ifs_kstatp[1] != NULL) { in ipf_kstat_init()
288 bcopy(&ipf_kstat_tmp, ifs->ifs_kstatp[1]->ks_data, in ipf_kstat_init()
290 ifs->ifs_kstatp[1]->ks_update = ipf_kstat_update; in ipf_kstat_init()
291 ifs->ifs_kstatp[1]->ks_private = &ifs->ifs_frstats[1]; in ipf_kstat_init()
292 kstat_install(ifs->ifs_kstatp[1]); in ipf_kstat_init()
297 ifs, ifs->ifs_kstatp[0], ifs->ifs_kstatp[1]); in ipf_kstat_init()
303 ipf_kstat_fini(ipf_stack_t *ifs) in ipf_kstat_fini() argument
308 if (ifs->ifs_kstatp[i] != NULL) { in ipf_kstat_fini()
309 net_kstat_delete(ifs->ifs_netid, ifs->ifs_kstatp[i]); in ipf_kstat_fini()
310 ifs->ifs_kstatp[i] = NULL; in ipf_kstat_fini()
422 ipf_stack_t *ifs; in ipf_stack_create_one() local
429 ifs = (ipf_stack_t *)kmem_alloc(sizeof (*ifs), KM_SLEEP); in ipf_stack_create_one()
430 bzero(ifs, sizeof (*ifs)); in ipf_stack_create_one()
432 ifs->ifs_hook4_physical_in = B_FALSE; in ipf_stack_create_one()
433 ifs->ifs_hook4_physical_out = B_FALSE; in ipf_stack_create_one()
434 ifs->ifs_hook4_nic_events = B_FALSE; in ipf_stack_create_one()
435 ifs->ifs_hook4_loopback_in = B_FALSE; in ipf_stack_create_one()
436 ifs->ifs_hook4_loopback_out = B_FALSE; in ipf_stack_create_one()
437 ifs->ifs_hook6_physical_in = B_FALSE; in ipf_stack_create_one()
438 ifs->ifs_hook6_physical_out = B_FALSE; in ipf_stack_create_one()
439 ifs->ifs_hook6_nic_events = B_FALSE; in ipf_stack_create_one()
440 ifs->ifs_hook6_loopback_in = B_FALSE; in ipf_stack_create_one()
441 ifs->ifs_hook6_loopback_out = B_FALSE; in ipf_stack_create_one()
446 RWLOCK_INIT(&ifs->ifs_ipf_global, "ipf filter load/unload mutex"); in ipf_stack_create_one()
447 RWLOCK_INIT(&ifs->ifs_ipf_mutex, "ipf filter rwlock"); in ipf_stack_create_one()
448 RWLOCK_INIT(&ifs->ifs_ipf_frcache, "ipf cache rwlock"); in ipf_stack_create_one()
449 ifs->ifs_netid = id; in ipf_stack_create_one()
450 ifs->ifs_zone = zid; in ipf_stack_create_one()
451 ifs->ifs_gz_controlled = from_gz; in ipf_stack_create_one()
452 ifs->ifs_gz_cont_ifs = ifs_gz; in ipf_stack_create_one()
454 ipf_kstat_init(ifs, from_gz); in ipf_stack_create_one()
457 cmn_err(CE_CONT, "IP Filter:stack_create zone=%d", ifs->ifs_zone); in ipf_stack_create_one()
463 WRITE_ENTER(&ifs->ifs_ipf_global); in ipf_stack_create_one()
464 ipftuneable_alloc(ifs); in ipf_stack_create_one()
465 RWLOCK_EXIT(&ifs->ifs_ipf_global); in ipf_stack_create_one()
468 if (ifs->ifs_zone == GLOBAL_ZONEID) in ipf_stack_create_one()
473 ipf_stacks->ifs_pnext = &ifs->ifs_next; in ipf_stack_create_one()
474 ifs->ifs_next = ipf_stacks; in ipf_stack_create_one()
475 ifs->ifs_pnext = &ipf_stacks; in ipf_stack_create_one()
476 ipf_stacks = ifs; in ipf_stack_create_one()
479 return (ifs); in ipf_stack_create_one()
485 ipf_stack_t *ifs = NULL; in ipf_stack_create() local
497 ifs = ipf_stack_create_one(id, zid, B_TRUE, NULL); in ipf_stack_create()
499 return (ipf_stack_create_one(id, zid, B_FALSE, ifs)); in ipf_stack_create()
515 ipf_stack_t *ifs; in ipf_find_stack() local
548 for (ifs = ipf_stacks; ifs != NULL; ifs = ifs->ifs_next) { in ipf_find_stack()
549 if (ifs->ifs_zone == zone && ifs->ifs_gz_controlled == gz_stack) in ipf_find_stack()
553 if (ifs != NULL) { in ipf_find_stack()
554 READ_ENTER(&ifs->ifs_ipf_global); in ipf_find_stack()
557 return (ifs); in ipf_find_stack()
560 static int ipf_detach_check_zone(ipf_stack_t *ifs) in ipf_detach_check_zone() argument
566 READ_ENTER(&ifs->ifs_ipf_global); in ipf_detach_check_zone()
567 if (ifs->ifs_fr_running == 1) { in ipf_detach_check_zone()
568 RWLOCK_EXIT(&ifs->ifs_ipf_global); in ipf_detach_check_zone()
575 if (ifs->ifs_ipfilter[0][ifs->ifs_fr_active] || in ipf_detach_check_zone()
576 ifs->ifs_ipfilter[1][ifs->ifs_fr_active] || in ipf_detach_check_zone()
577 ifs->ifs_ipfilter6[0][ifs->ifs_fr_active] || in ipf_detach_check_zone()
578 ifs->ifs_ipfilter6[1][ifs->ifs_fr_active]) { in ipf_detach_check_zone()
579 RWLOCK_EXIT(&ifs->ifs_ipf_global); in ipf_detach_check_zone()
583 RWLOCK_EXIT(&ifs->ifs_ipf_global); in ipf_detach_check_zone()
591 ipf_stack_t *ifs; in ipf_detach_check_all() local
594 for (ifs = ipf_stacks; ifs != NULL; ifs = ifs->ifs_next) in ipf_detach_check_all()
595 if (ipf_detach_check_zone(ifs) != 0) in ipf_detach_check_all()
598 return ((ifs == NULL) ? 0 : -1); in ipf_detach_check_all()
610 ipf_stack_t *ifs = (ipf_stack_t *)arg; in ipf_stack_shutdown() local
615 if (ifs->ifs_gz_cont_ifs != NULL) in ipf_stack_shutdown()
616 ipf_kstat_fini(ifs->ifs_gz_cont_ifs); in ipf_stack_shutdown()
621 ipf_kstat_fini(ifs); in ipf_stack_shutdown()
630 ipf_stack_destroy_one(const netid_t id, ipf_stack_t *ifs) in ipf_stack_destroy_one() argument
635 (void) printf("ipf_stack_destroy_one(%p)\n", (void *)ifs); in ipf_stack_destroy_one()
642 WRITE_ENTER(&ifs->ifs_ipf_global); in ipf_stack_destroy_one()
643 if (ifs->ifs_fr_running == -2) { in ipf_stack_destroy_one()
644 RWLOCK_EXIT(&ifs->ifs_ipf_global); in ipf_stack_destroy_one()
647 ifs->ifs_fr_running = -2; in ipf_stack_destroy_one()
648 tid = ifs->ifs_fr_timer_id; in ipf_stack_destroy_one()
649 ifs->ifs_fr_timer_id = NULL; in ipf_stack_destroy_one()
650 RWLOCK_EXIT(&ifs->ifs_ipf_global); in ipf_stack_destroy_one()
653 if (ifs->ifs_next != NULL) in ipf_stack_destroy_one()
654 ifs->ifs_next->ifs_pnext = ifs->ifs_pnext; in ipf_stack_destroy_one()
655 *ifs->ifs_pnext = ifs->ifs_next; in ipf_stack_destroy_one()
661 WRITE_ENTER(&ifs->ifs_ipf_global); in ipf_stack_destroy_one()
662 if (ipldetach(ifs) != 0) { in ipf_stack_destroy_one()
666 ipftuneable_free(ifs); in ipf_stack_destroy_one()
668 RWLOCK_EXIT(&ifs->ifs_ipf_global); in ipf_stack_destroy_one()
669 RW_DESTROY(&ifs->ifs_ipf_mutex); in ipf_stack_destroy_one()
670 RW_DESTROY(&ifs->ifs_ipf_frcache); in ipf_stack_destroy_one()
671 RW_DESTROY(&ifs->ifs_ipf_global); in ipf_stack_destroy_one()
673 KFREE(ifs); in ipf_stack_destroy_one()
686 ipf_stack_t *ifs = (ipf_stack_t *)arg; in ipf_stack_destroy() local
691 if (ifs->ifs_gz_cont_ifs != NULL) in ipf_stack_destroy()
692 ipf_stack_destroy_one(id, ifs->ifs_gz_cont_ifs); in ipf_stack_destroy()
697 ipf_stack_destroy_one(id, ifs); in ipf_stack_destroy()
876 ipf_property_update(dip, ifs) in ipf_property_update() argument
878 ipf_stack_t *ifs;
886 for (ipft = ifs->ifs_ipf_tuneables;