Lines Matching refs:chain

59 	LIST_ENTRY(cfg_spool)   _next;          /* chain of spool instances */
66 LIST_ENTRY(cfg_redir) _next; /* chain of redir instances */
78 u_int16_t spool_cnt; /* num of entry in spool chain */
79 /* chain of spool instances */
85 /* chain of nat instances */
91 int redir_cnt; /* number of entry in spool chain */
92 /* chain of redir instances */
104 struct ip_fw_chain *chain;
112 chain = &V_layer3_chain;
113 IPFW_UH_WLOCK(chain);
115 LIST_FOREACH(ptr, &chain->nat, _next) {
125 IPFW_WLOCK(chain);
129 IPFW_WUNLOCK(chain);
133 IPFW_UH_WUNLOCK(chain);
140 flush_nat_ptrs(struct ip_fw_chain *chain, const int ix)
145 IPFW_WLOCK_ASSERT(chain);
146 for (i = 0; i < chain->n_rules; i++) {
147 cmd = (ipfw_insn_nat *)ipfw_get_action(chain->map[i]);
296 struct ip_fw_chain *chain;
355 chain = &V_layer3_chain;
356 IPFW_RLOCK_ASSERT(chain);
358 LIST_FOREACH(t, &chain->nat, _next) {
490 nat44_config(struct ip_fw_chain *chain, struct nat44_cfg_nat *ucfg)
498 IPFW_UH_WLOCK(chain);
499 gencnt = chain->gencnt;
500 ptr = lookup_nat_name(&chain->nat, ucfg->name);
502 IPFW_UH_WUNLOCK(chain);
509 IPFW_WLOCK(chain);
511 flush_nat_ptrs(chain, ptr->id);
512 IPFW_WUNLOCK(chain);
513 IPFW_UH_WUNLOCK(chain);
539 IPFW_UH_WLOCK(chain);
543 if (gencnt != chain->gencnt)
544 tcfg = lookup_nat_name(&chain->nat, ucfg->name);
545 IPFW_WLOCK(chain);
548 LIST_INSERT_HEAD(&chain->nat, ptr, _next);
549 IPFW_WUNLOCK(chain);
550 chain->gencnt++;
552 IPFW_UH_WUNLOCK(chain);
566 nat44_cfg(struct ip_fw_chain *chain, ip_fw3_opheader *op3,
599 nat44_config(chain, ucfg);
611 nat44_destroy(struct ip_fw_chain *chain, ip_fw3_opheader *op3,
633 IPFW_UH_WLOCK(chain);
634 ptr = lookup_nat_name(&chain->nat, ntlv->name);
636 IPFW_UH_WUNLOCK(chain);
639 IPFW_WLOCK(chain);
641 flush_nat_ptrs(chain, ptr->id);
642 IPFW_WUNLOCK(chain);
643 IPFW_UH_WUNLOCK(chain);
669 nat44_get_cfg(struct ip_fw_chain *chain, ip_fw3_opheader *op3,
698 IPFW_UH_RLOCK(chain);
699 ptr = lookup_nat_name(&chain->nat, ucfg->name);
701 IPFW_UH_RUNLOCK(chain);
724 IPFW_UH_RUNLOCK(chain);
753 IPFW_UH_RUNLOCK(chain);
767 nat44_list_nat(struct ip_fw_chain *chain, ip_fw3_opheader *op3,
780 IPFW_UH_RLOCK(chain);
782 LIST_FOREACH(ptr, &chain->nat, _next)
790 IPFW_UH_RUNLOCK(chain);
794 LIST_FOREACH(ptr, &chain->nat, _next) {
800 IPFW_UH_RUNLOCK(chain);
814 nat44_get_log(struct ip_fw_chain *chain, ip_fw3_opheader *op3,
840 IPFW_UH_RLOCK(chain);
841 ptr = lookup_nat_name(&chain->nat, ucfg->name);
843 IPFW_UH_RUNLOCK(chain);
848 IPFW_UH_RUNLOCK(chain);
864 IPFW_UH_RUNLOCK(chain);
871 IPFW_UH_RUNLOCK(chain);
995 struct ip_fw_chain *chain = &V_layer3_chain;
1000 IPFW_UH_WLOCK(chain);
1001 ptr = lookup_nat(&chain->nat, i);
1003 IPFW_UH_WUNLOCK(chain);
1006 IPFW_WLOCK(chain);
1008 flush_nat_ptrs(chain, i);
1009 IPFW_WUNLOCK(chain);
1010 IPFW_UH_WUNLOCK(chain);
1018 struct ip_fw_chain *chain = &V_layer3_chain;
1031 IPFW_UH_RLOCK(chain);
1033 gencnt = chain->gencnt;
1035 LIST_FOREACH(n, &chain->nat, _next) {
1044 IPFW_UH_RUNLOCK(chain);
1052 IPFW_UH_RLOCK(chain);
1053 if (gencnt != chain->gencnt) {
1058 LIST_FOREACH(n, &chain->nat, _next) {
1088 IPFW_UH_RUNLOCK(chain);
1102 struct ip_fw_chain *chain;
1105 chain = &V_layer3_chain;
1107 IPFW_RLOCK(chain);
1110 LIST_FOREACH(ptr, &chain->nat, _next) {
1118 IPFW_RUNLOCK(chain);
1122 LIST_FOREACH(ptr, &chain->nat, _next) {
1130 IPFW_RUNLOCK(chain);
1148 struct ip_fw_chain *chain;
1150 chain = &V_layer3_chain;
1151 IPFW_WLOCK(chain);
1153 LIST_FOREACH_SAFE(ptr, &chain->nat, _next, ptr_temp) {
1157 flush_nat_ptrs(chain, -1 /* flush all */);
1158 IPFW_WUNLOCK(chain);