Lines Matching refs:ch

97 nat64clat_export_config(struct ip_fw_chain *ch, struct nat64clat_cfg *cfg,
110 struct ip_fw_chain *ch;
122 nat64clat_export_config(da->ch, (struct nat64clat_cfg *)no, uc);
145 nat64clat_create(struct ip_fw_chain *ch, ip_fw3_opheader *op3,
167 ni = CHAIN_TO_SRV(ch);
169 IPFW_UH_RLOCK(ch);
171 IPFW_UH_RUNLOCK(ch);
174 IPFW_UH_RUNLOCK(ch);
186 IPFW_UH_WLOCK(ch);
189 IPFW_UH_WUNLOCK(ch);
195 IPFW_UH_WUNLOCK(ch);
199 ipfw_objhash_add(CHAIN_TO_SRV(ch), &cfg->no);
201 SRV_OBJECT(ch, cfg->no.kidx) = cfg;
202 IPFW_UH_WUNLOCK(ch);
216 nat64clat_config(struct ip_fw_chain *ch, ip_fw3_opheader *op,
236 ni = CHAIN_TO_SRV(ch);
238 IPFW_UH_RLOCK(ch);
241 IPFW_UH_RUNLOCK(ch);
244 nat64clat_export_config(ch, cfg, uc);
245 IPFW_UH_RUNLOCK(ch);
249 IPFW_UH_WLOCK(ch);
252 IPFW_UH_WUNLOCK(ch);
264 IPFW_UH_WUNLOCK(ch);
273 IPFW_UH_WUNLOCK(ch);
280 IPFW_WLOCK(ch);
289 IPFW_WUNLOCK(ch);
295 IPFW_UH_WUNLOCK(ch);
300 nat64clat_detach_config(struct ip_fw_chain *ch, struct nat64clat_cfg *cfg)
303 IPFW_UH_WLOCK_ASSERT(ch);
305 ipfw_objhash_del(CHAIN_TO_SRV(ch), &cfg->no);
306 ipfw_objhash_free_idx(CHAIN_TO_SRV(ch), cfg->no.kidx);
317 nat64clat_destroy(struct ip_fw_chain *ch, ip_fw3_opheader *op3,
330 IPFW_UH_WLOCK(ch);
331 cfg = nat64clat_find(CHAIN_TO_SRV(ch), oh->ntlv.name, oh->ntlv.set);
333 IPFW_UH_WUNLOCK(ch);
337 IPFW_UH_WUNLOCK(ch);
341 ipfw_reset_eaction_instance(ch, V_nat64clat_eid, cfg->no.kidx);
342 SRV_OBJECT(ch, cfg->no.kidx) = NULL;
343 nat64clat_detach_config(ch, cfg);
344 IPFW_UH_WUNLOCK(ch);
359 nat64clat_list(struct ip_fw_chain *ch, ip_fw3_opheader *op3,
371 IPFW_UH_RLOCK(ch);
372 olh->count = ipfw_objhash_count_type(CHAIN_TO_SRV(ch),
378 IPFW_UH_RUNLOCK(ch);
382 da.ch = ch;
384 ipfw_objhash_foreach_type(CHAIN_TO_SRV(ch), export_config_cb,
386 IPFW_UH_RUNLOCK(ch);
394 export_stats(struct ip_fw_chain *ch, struct nat64clat_cfg *cfg,
419 nat64clat_stats(struct ip_fw_chain *ch, ip_fw3_opheader *op,
438 IPFW_UH_RLOCK(ch);
439 cfg = nat64clat_find(CHAIN_TO_SRV(ch), oh->ntlv.name, oh->ntlv.set);
441 IPFW_UH_RUNLOCK(ch);
444 export_stats(ch, cfg, &stats);
445 IPFW_UH_RUNLOCK(ch);
466 nat64clat_reset_stats(struct ip_fw_chain *ch, ip_fw3_opheader *op,
479 IPFW_UH_WLOCK(ch);
480 cfg = nat64clat_find(CHAIN_TO_SRV(ch), oh->ntlv.name, oh->ntlv.set);
482 IPFW_UH_WUNLOCK(ch);
486 IPFW_UH_WUNLOCK(ch);
523 nat64clat_findbyname(struct ip_fw_chain *ch, struct tid_info *ti,
528 err = ipfw_objhash_find_type(CHAIN_TO_SRV(ch), ti,
534 nat64clat_findbykidx(struct ip_fw_chain *ch, uint16_t idx)
539 IPFW_UH_WLOCK_ASSERT(ch);
540 ni = CHAIN_TO_SRV(ch);
548 nat64clat_manage_sets(struct ip_fw_chain *ch, uint16_t set, uint8_t new_set,
552 return (ipfw_obj_manage_sets(CHAIN_TO_SRV(ch), IPFW_TLV_NAT64CLAT_NAME,
573 struct ip_fw_chain *ch;
575 ch = (struct ip_fw_chain *)arg;
576 cfg = (struct nat64clat_cfg *)SRV_OBJECT(ch, no->kidx);
577 SRV_OBJECT(ch, no->kidx) = NULL;
578 nat64clat_detach_config(ch, cfg);
584 nat64clat_init(struct ip_fw_chain *ch, int first)
587 V_nat64clat_eid = ipfw_add_eaction(ch, ipfw_nat64clat, "nat64clat");
596 nat64clat_uninit(struct ip_fw_chain *ch, int last)
601 ipfw_del_eaction(ch, V_nat64clat_eid);
609 IPFW_UH_WLOCK(ch);
610 ipfw_objhash_foreach_type(CHAIN_TO_SRV(ch), destroy_config_cb, ch,
613 IPFW_UH_WUNLOCK(ch);