Lines Matching refs:chain

105 	struct ip_fw_chain *chain;  in ifaddr_change()  local
113 chain = &V_layer3_chain; in ifaddr_change()
114 IPFW_UH_WLOCK(chain); in ifaddr_change()
116 LIST_FOREACH(ptr, &chain->nat, _next) { in ifaddr_change()
128 IPFW_WLOCK(chain); in ifaddr_change()
132 IPFW_WUNLOCK(chain); in ifaddr_change()
136 IPFW_UH_WUNLOCK(chain); in ifaddr_change()
143 flush_nat_ptrs(struct ip_fw_chain *chain, const int ix) in flush_nat_ptrs() argument
148 IPFW_WLOCK_ASSERT(chain); in flush_nat_ptrs()
149 for (i = 0; i < chain->n_rules; i++) { in flush_nat_ptrs()
150 cmd = (ipfw_insn_nat *)ipfw_get_action(chain->map[i]); in flush_nat_ptrs()
298 struct ip_fw_chain *chain; in ipfw_nat() local
358 chain = &V_layer3_chain; in ipfw_nat()
359 IPFW_RLOCK_ASSERT(chain); in ipfw_nat()
361 LIST_FOREACH(t, &chain->nat, _next) { in ipfw_nat()
494 nat44_config(struct ip_fw_chain *chain, struct nat44_cfg_nat *ucfg) in nat44_config() argument
502 IPFW_UH_WLOCK(chain); in nat44_config()
503 gencnt = chain->gencnt; in nat44_config()
504 ptr = lookup_nat_name(&chain->nat, ucfg->name); in nat44_config()
506 IPFW_UH_WUNLOCK(chain); in nat44_config()
513 IPFW_WLOCK(chain); in nat44_config()
515 flush_nat_ptrs(chain, ptr->id); in nat44_config()
516 IPFW_WUNLOCK(chain); in nat44_config()
517 IPFW_UH_WUNLOCK(chain); in nat44_config()
546 IPFW_UH_WLOCK(chain); in nat44_config()
550 if (gencnt != chain->gencnt) in nat44_config()
551 tcfg = lookup_nat_name(&chain->nat, ucfg->name); in nat44_config()
552 IPFW_WLOCK(chain); in nat44_config()
555 LIST_INSERT_HEAD(&chain->nat, ptr, _next); in nat44_config()
556 IPFW_WUNLOCK(chain); in nat44_config()
557 chain->gencnt++; in nat44_config()
559 IPFW_UH_WUNLOCK(chain); in nat44_config()
573 nat44_cfg(struct ip_fw_chain *chain, ip_fw3_opheader *op3, in nat44_cfg() argument
606 nat44_config(chain, ucfg); in nat44_cfg()
618 nat44_destroy(struct ip_fw_chain *chain, ip_fw3_opheader *op3, in nat44_destroy() argument
640 IPFW_UH_WLOCK(chain); in nat44_destroy()
641 ptr = lookup_nat_name(&chain->nat, ntlv->name); in nat44_destroy()
643 IPFW_UH_WUNLOCK(chain); in nat44_destroy()
646 IPFW_WLOCK(chain); in nat44_destroy()
648 flush_nat_ptrs(chain, ptr->id); in nat44_destroy()
649 IPFW_WUNLOCK(chain); in nat44_destroy()
650 IPFW_UH_WUNLOCK(chain); in nat44_destroy()
678 nat44_get_cfg(struct ip_fw_chain *chain, ip_fw3_opheader *op3, in nat44_get_cfg() argument
707 IPFW_UH_RLOCK(chain); in nat44_get_cfg()
708 ptr = lookup_nat_name(&chain->nat, ucfg->name); in nat44_get_cfg()
710 IPFW_UH_RUNLOCK(chain); in nat44_get_cfg()
732 IPFW_UH_RUNLOCK(chain); in nat44_get_cfg()
761 IPFW_UH_RUNLOCK(chain); in nat44_get_cfg()
775 nat44_list_nat(struct ip_fw_chain *chain, ip_fw3_opheader *op3, in nat44_list_nat() argument
788 IPFW_UH_RLOCK(chain); in nat44_list_nat()
790 LIST_FOREACH(ptr, &chain->nat, _next) in nat44_list_nat()
798 IPFW_UH_RUNLOCK(chain); in nat44_list_nat()
802 LIST_FOREACH(ptr, &chain->nat, _next) { in nat44_list_nat()
808 IPFW_UH_RUNLOCK(chain); in nat44_list_nat()
822 nat44_get_log(struct ip_fw_chain *chain, ip_fw3_opheader *op3, in nat44_get_log() argument
848 IPFW_UH_RLOCK(chain); in nat44_get_log()
849 ptr = lookup_nat_name(&chain->nat, ucfg->name); in nat44_get_log()
851 IPFW_UH_RUNLOCK(chain); in nat44_get_log()
856 IPFW_UH_RUNLOCK(chain); in nat44_get_log()
871 IPFW_UH_RUNLOCK(chain); in nat44_get_log()
878 IPFW_UH_RUNLOCK(chain); in nat44_get_log()
1001 struct ip_fw_chain *chain = &V_layer3_chain; in ipfw_nat_del() local
1006 IPFW_UH_WLOCK(chain); in ipfw_nat_del()
1007 ptr = lookup_nat(&chain->nat, i); in ipfw_nat_del()
1009 IPFW_UH_WUNLOCK(chain); in ipfw_nat_del()
1012 IPFW_WLOCK(chain); in ipfw_nat_del()
1014 flush_nat_ptrs(chain, i); in ipfw_nat_del()
1015 IPFW_WUNLOCK(chain); in ipfw_nat_del()
1016 IPFW_UH_WUNLOCK(chain); in ipfw_nat_del()
1024 struct ip_fw_chain *chain = &V_layer3_chain; in ipfw_nat_get_cfg() local
1037 IPFW_UH_RLOCK(chain); in ipfw_nat_get_cfg()
1039 gencnt = chain->gencnt; in ipfw_nat_get_cfg()
1041 LIST_FOREACH(n, &chain->nat, _next) { in ipfw_nat_get_cfg()
1050 IPFW_UH_RUNLOCK(chain); in ipfw_nat_get_cfg()
1058 IPFW_UH_RLOCK(chain); in ipfw_nat_get_cfg()
1059 if (gencnt != chain->gencnt) { in ipfw_nat_get_cfg()
1064 LIST_FOREACH(n, &chain->nat, _next) { in ipfw_nat_get_cfg()
1094 IPFW_UH_RUNLOCK(chain); in ipfw_nat_get_cfg()
1108 struct ip_fw_chain *chain; in ipfw_nat_get_log() local
1111 chain = &V_layer3_chain; in ipfw_nat_get_log()
1113 IPFW_RLOCK(chain); in ipfw_nat_get_log()
1116 LIST_FOREACH(ptr, &chain->nat, _next) { in ipfw_nat_get_log()
1124 IPFW_RUNLOCK(chain); in ipfw_nat_get_log()
1128 LIST_FOREACH(ptr, &chain->nat, _next) { in ipfw_nat_get_log()
1136 IPFW_RUNLOCK(chain); in ipfw_nat_get_log()
1154 struct ip_fw_chain *chain; in vnet_ipfw_nat_uninit() local
1156 chain = &V_layer3_chain; in vnet_ipfw_nat_uninit()
1157 IPFW_WLOCK(chain); in vnet_ipfw_nat_uninit()
1159 LIST_FOREACH_SAFE(ptr, &chain->nat, _next, ptr_temp) { in vnet_ipfw_nat_uninit()
1163 flush_nat_ptrs(chain, -1 /* flush all */); in vnet_ipfw_nat_uninit()
1164 IPFW_WUNLOCK(chain); in vnet_ipfw_nat_uninit()