Home | History | Annotate | Download | only in netinet

Lines Matching defs:softf

139 #define	FBUMP(x)	softf->ipfr_stats.x++
140 #define FBUMPD(x) do { softf->ipfr_stats.x++; DT(x); } while (0)
188 ipf_frag_softc_t *softf;
190 KMALLOC(softf, ipf_frag_softc_t *);
191 if (softf == NULL)
194 bzero((char *)softf, sizeof(*softf));
196 RWLOCK_INIT(&softf->ipfr_ipidfrag, "frag ipid lock");
197 RWLOCK_INIT(&softf->ipfr_frag, "ipf fragment rwlock");
198 RWLOCK_INIT(&softf->ipfr_natfrag, "ipf NAT fragment rwlock");
200 softf->ipfr_size = IPFT_SIZE;
201 softf->ipfr_ttl = IPF_TTLVAL(60);
202 softf->ipfr_lock = 1;
203 softf->ipfr_tail = &softf->ipfr_list;
204 softf->ipfr_nattail = &softf->ipfr_natlist;
205 softf->ipfr_ipidtail = &softf->ipfr_ipidlist;
207 return softf;
222 ipf_frag_softc_t *softf = arg;
224 RW_DESTROY(&softf->ipfr_ipidfrag);
225 RW_DESTROY(&softf->ipfr_frag);
226 RW_DESTROY(&softf->ipfr_natfrag);
228 KFREE(softf);
244 ipf_frag_softc_t *softf = arg;
246 KMALLOCS(softf->ipfr_heads, ipfr_t **,
247 softf->ipfr_size * sizeof(ipfr_t *));
248 if (softf->ipfr_heads == NULL)
251 bzero((char *)softf->ipfr_heads, softf->ipfr_size * sizeof(ipfr_t *));
253 KMALLOCS(softf->ipfr_nattab, ipfr_t **,
254 softf->ipfr_size * sizeof(ipfr_t *));
255 if (softf->ipfr_nattab == NULL)
258 bzero((char *)softf->ipfr_nattab, softf->ipfr_size * sizeof(ipfr_t *));
260 KMALLOCS(softf->ipfr_ipidtab, ipfr_t **,
261 softf->ipfr_size * sizeof(ipfr_t *));
262 if (softf->ipfr_ipidtab == NULL)
265 bzero((char *)softf->ipfr_ipidtab,
266 softf->ipfr_size * sizeof(ipfr_t *));
268 softf->ipfr_lock = 0;
269 softf->ipfr_inited = 1;
286 ipf_frag_softc_t *softf = arg;
288 softf->ipfr_lock = 1;
290 if (softf->ipfr_inited == 1) {
293 softf->ipfr_inited = 0;
296 if (softf->ipfr_heads != NULL)
297 KFREES(softf->ipfr_heads,
298 softf->ipfr_size * sizeof(ipfr_t *));
299 softf->ipfr_heads = NULL;
301 if (softf->ipfr_nattab != NULL)
302 KFREES(softf->ipfr_nattab,
303 softf->ipfr_size * sizeof(ipfr_t *));
304 softf->ipfr_nattab = NULL;
306 if (softf->ipfr_ipidtab != NULL)
307 KFREES(softf->ipfr_ipidtab,
308 softf->ipfr_size * sizeof(ipfr_t *));
309 softf->ipfr_ipidtab = NULL;
326 ipf_frag_softc_t *softf = arg;
328 softf->ipfr_lock = tmp;
342 ipf_frag_softc_t *softf = arg;
344 softf->ipfr_stats.ifs_table = softf->ipfr_heads;
345 softf->ipfr_stats.ifs_nattab = softf->ipfr_nattab;
346 return &softf->ipfr_stats;
366 ipf_frag_softc_t *softf,
379 if (softf->ipfr_stats.ifs_inuse >= softf->ipfr_size) {
409 idx %= softf->ipfr_size;
484 fra->ipfr_ttl = softc->ipf_ticks + softf->ipfr_ttl;
513 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
516 if (softf->ipfr_lock != 0)
520 fra = ipfr_frag_new(softc, softf, fin, pass, softf->ipfr_heads, &softc->ipf_frag);
522 fra = ipfr_frag_new(softc, softf, fin, pass, softf->ipfr_heads);
525 *softf->ipfr_tail = fra;
526 softf->ipfr_tail;
527 softf->ipfr_tail = &fra->ipfr_next;
548 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
551 if (softf->ipfr_lock != 0)
555 fra = ipfr_frag_new(softc, softf, fin, pass, softf->ipfr_nattab,
556 &softf->ipfr_natfrag);
558 fra = ipfr_frag_new(softc, softf, fin, pass, softf->ipfr_nattab);
563 *softf->ipfr_nattail = fra;
564 fra->ipfr_prev = softf->ipfr_nattail;
565 softf->ipfr_nattail = &fra->ipfr_next;
567 RWLOCK_EXIT(&softf->ipfr_natfrag);
587 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
590 if (softf->ipfr_lock)
594 fra = ipfr_frag_new(softc, softf, fin, 0, softf->ipfr_ipidtab, &softf->ipfr_ipidfrag);
596 fra = ipfr_frag_new(softc, softf, fin, 0, softf->ipfr_ipidtab);
600 *softf->ipfr_ipidtail = fra;
601 fra->ipfr_prev = softf->ipfr_ipidtail;
602 softf->ipfr_ipidtail = &fra->ipfr_next;
604 RWLOCK_EXIT(&softf->ipfr_ipidfrag);
626 ipf_frag_softc_t *softf,
674 idx %= softf->ipfr_size;
797 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
801 if ((softf->ipfr_lock) || !softf->ipfr_natlist)
804 ipf = ipf_frag_lookup(softc, softf, fin, softf->ipfr_nattab,
805 &softf->ipfr_natfrag);
807 ipf = ipf_frag_lookup(softc, softf, fin, softf->ipfr_nattab);
818 RWLOCK_EXIT(&softf->ipfr_natfrag);
837 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
841 if (softf->ipfr_lock || !softf->ipfr_ipidlist)
845 ipf = ipf_frag_lookup(softc, softf, fin, softf->ipfr_ipidtab,
846 &softf->ipfr_ipidfrag);
848 ipf = ipf_frag_lookup(softc, softf, fin, softf->ipfr_ipidtab);
852 RWLOCK_EXIT(&softf->ipfr_ipidfrag);
874 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
879 if ((softf->ipfr_lock) || (softf->ipfr_list == NULL))
883 fra = ipf_frag_lookup(softc, softf, fin, softf->ipfr_heads,
886 fra = ipf_frag_lookup(softc, softf, fin, softf->ipfr_heads);
929 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
932 WRITE_ENTER(&softf->ipfr_natfrag);
933 for (fr = softf->ipfr_natlist; fr; fr = fr->ipfr_next)
936 RWLOCK_EXIT(&softf->ipfr_natfrag);
954 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
971 ipf_frag_free(softf, fra);
981 ipf_frag_free(ipf_frag_softc_t *softf, ipfr_t *fra)
985 softf->ipfr_stats.ifs_inuse--;
1000 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
1005 while ((fra = softf->ipfr_list) != NULL) {
1007 ipf_frag_delete(softc, fra, &softf->ipfr_tail);
1009 softf->ipfr_tail = &softf->ipfr_list;
1013 WRITE_ENTER(&softf->ipfr_natfrag);
1014 softf->ipfr_natlist) != NULL) {
1021 ipf_frag_delete(softc, fra, &softf->ipfr_nattail);
1023 softf->ipfr_nattail = &softf->ipfr_natlist;
1024 RWLOCK_EXIT(&softf->ipfr_natfrag);
1039 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
1044 if (softf->ipfr_lock)
1053 for (fp = &softf->ipfr_list; ((fra = *fp) != NULL); ) {
1057 ipf_frag_delete(softc, fra, &softf->ipfr_tail);
1061 WRITE_ENTER(&softf->ipfr_ipidfrag);
1062 for (fp = &softf->ipfr_ipidlist; ((fra = *fp) != NULL); ) {
1066 ipf_frag_delete(softc, fra, &softf->ipfr_ipidtail);
1068 RWLOCK_EXIT(&softf->ipfr_ipidfrag);
1080 if (softf->ipfr_natlist != NULL) {
1082 WRITE_ENTER(&softf->ipfr_natfrag);
1083 for (fp = &softf->ipfr_natlist; ((fra = *fp) != NULL); ) {
1092 ipf_frag_delete(softc, fra, &softf->ipfr_nattail);
1094 RWLOCK_EXIT(&softf->ipfr_natfrag);
1107 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
1110 return ipf_frag_next(softc, token, itp, &softf->ipfr_list,
1111 &softf->ipfr_frag);
1113 return ipf_frag_next(softc, token, itp, &softf->ipfr_list);
1124 ipf_frag_softc_t *softf = softc->ipf_frag_soft;;
1127 return ipf_frag_next(softc, token, itp, &softf->ipfr_natlist,
1128 &softf->ipfr_natfrag);
1130 return ipf_frag_next(softc, token, itp, &softf->ipfr_natlist);
1221 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
1223 ipf_frag_deref(softc->ipf_frag_soft, frp, &softf->ipfr_frag);
1241 ipf_frag_softc_t *softf = softc->ipf_frag_soft;
1243 ipf_frag_deref(softc->ipf_frag_soft, frp, &softf->ipfr_natfrag);
1268 ipf_frag_softc_t *softf = arg;
1277 ipf_frag_free(softf, fra);