Lines Matching refs:priv
92 #define INACTIVE(fle) (time_uptime - fle->f.last > priv->nfinfo_inact_t)
93 #define AGED(fle) (time_uptime - fle->f.first > priv->nfinfo_act_t)
169 get_export_dgram(priv_p priv, fib_export_p fe) in get_export_dgram() argument
203 return_export_dgram(priv_p priv, fib_export_p fe, item_p item, int flags) in return_export_dgram() argument
217 export_send(priv, fe, item, flags); in return_export_dgram()
226 expire_flow(priv_p priv, fib_export_p fe, struct flow_entry *fle, int flags) in expire_flow() argument
231 if ((priv->export != NULL) && (version == IPVERSION)) { in expire_flow()
232 exp.item = get_export_dgram(priv, fe); in expire_flow()
234 priv->nfinfo_export_failed++; in expire_flow()
235 if (priv->export9 != NULL) in expire_flow()
236 priv->nfinfo_export9_failed++; in expire_flow()
238 uma_zfree_arg(priv->zone, fle, priv); in expire_flow()
243 export_send(priv, fe, exp.item, flags); in expire_flow()
245 return_export_dgram(priv, fe, exp.item, NG_QUEUE); in expire_flow()
248 if (priv->export9 != NULL) { in expire_flow()
249 exp.item9 = get_export9_dgram(priv, fe, &exp.item9_opt); in expire_flow()
251 priv->nfinfo_export9_failed++; in expire_flow()
253 uma_zfree_arg(priv->zone, fle, priv); in expire_flow()
256 uma_zfree_arg(priv->zone6, fle, priv); in expire_flow()
265 export9_send(priv, fe, exp.item9, exp.item9_opt, flags); in expire_flow()
267 return_export9_dgram(priv, fe, exp.item9, in expire_flow()
272 uma_zfree_arg(priv->zone, fle, priv); in expire_flow()
275 uma_zfree_arg(priv->zone6, fle, priv); in expire_flow()
281 ng_netflow_copyinfo(priv_p priv, struct ng_netflow_info *i) in ng_netflow_copyinfo() argument
284 i->nfinfo_bytes = counter_u64_fetch(priv->nfinfo_bytes); in ng_netflow_copyinfo()
285 i->nfinfo_packets = counter_u64_fetch(priv->nfinfo_packets); in ng_netflow_copyinfo()
286 i->nfinfo_bytes6 = counter_u64_fetch(priv->nfinfo_bytes6); in ng_netflow_copyinfo()
287 i->nfinfo_packets6 = counter_u64_fetch(priv->nfinfo_packets6); in ng_netflow_copyinfo()
288 i->nfinfo_sbytes = counter_u64_fetch(priv->nfinfo_sbytes); in ng_netflow_copyinfo()
289 i->nfinfo_spackets = counter_u64_fetch(priv->nfinfo_spackets); in ng_netflow_copyinfo()
290 i->nfinfo_sbytes6 = counter_u64_fetch(priv->nfinfo_sbytes6); in ng_netflow_copyinfo()
291 i->nfinfo_spackets6 = counter_u64_fetch(priv->nfinfo_spackets6); in ng_netflow_copyinfo()
292 i->nfinfo_act_exp = counter_u64_fetch(priv->nfinfo_act_exp); in ng_netflow_copyinfo()
293 i->nfinfo_inact_exp = counter_u64_fetch(priv->nfinfo_inact_exp); in ng_netflow_copyinfo()
295 i->nfinfo_used = uma_zone_get_cur(priv->zone); in ng_netflow_copyinfo()
297 i->nfinfo_used6 = uma_zone_get_cur(priv->zone6); in ng_netflow_copyinfo()
300 i->nfinfo_alloc_failed = priv->nfinfo_alloc_failed; in ng_netflow_copyinfo()
301 i->nfinfo_export_failed = priv->nfinfo_export_failed; in ng_netflow_copyinfo()
302 i->nfinfo_export9_failed = priv->nfinfo_export9_failed; in ng_netflow_copyinfo()
303 i->nfinfo_realloc_mbuf = priv->nfinfo_realloc_mbuf; in ng_netflow_copyinfo()
304 i->nfinfo_alloc_fibs = priv->nfinfo_alloc_fibs; in ng_netflow_copyinfo()
305 i->nfinfo_inact_t = priv->nfinfo_inact_t; in ng_netflow_copyinfo()
306 i->nfinfo_act_t = priv->nfinfo_act_t; in ng_netflow_copyinfo()
321 hash_insert(priv_p priv, struct flow_hash_entry *hsh, struct flow_rec *r, in hash_insert() argument
328 fle = uma_zalloc_arg(priv->zone, priv, M_NOWAIT); in hash_insert()
330 priv->nfinfo_alloc_failed++; in hash_insert()
394 hash6_insert(priv_p priv, struct flow_hash_entry *hsh6, struct flow6_rec *r, in hash6_insert() argument
401 fle6 = uma_zalloc_arg(priv->zone6, priv, M_NOWAIT); in hash6_insert()
403 priv->nfinfo_alloc_failed++; in hash6_insert()
472 ng_netflow_cache_init(priv_p priv) in ng_netflow_cache_init() argument
478 priv->zone = uma_zcreate("NetFlow IPv4 cache", in ng_netflow_cache_init()
481 uma_zone_set_max(priv->zone, CACHESIZE); in ng_netflow_cache_init()
483 priv->zone6 = uma_zcreate("NetFlow IPv6 cache", in ng_netflow_cache_init()
486 uma_zone_set_max(priv->zone6, CACHESIZE); in ng_netflow_cache_init()
490 priv->hash = malloc(NBUCKETS * sizeof(struct flow_hash_entry), in ng_netflow_cache_init()
494 for (i = 0, hsh = priv->hash; i < NBUCKETS; i++, hsh++) { in ng_netflow_cache_init()
501 priv->hash6 = malloc(NBUCKETS * sizeof(struct flow_hash_entry), in ng_netflow_cache_init()
505 for (i = 0, hsh = priv->hash6; i < NBUCKETS; i++, hsh++) { in ng_netflow_cache_init()
511 priv->nfinfo_bytes = counter_u64_alloc(M_WAITOK); in ng_netflow_cache_init()
512 priv->nfinfo_packets = counter_u64_alloc(M_WAITOK); in ng_netflow_cache_init()
513 priv->nfinfo_bytes6 = counter_u64_alloc(M_WAITOK); in ng_netflow_cache_init()
514 priv->nfinfo_packets6 = counter_u64_alloc(M_WAITOK); in ng_netflow_cache_init()
515 priv->nfinfo_sbytes = counter_u64_alloc(M_WAITOK); in ng_netflow_cache_init()
516 priv->nfinfo_spackets = counter_u64_alloc(M_WAITOK); in ng_netflow_cache_init()
517 priv->nfinfo_sbytes6 = counter_u64_alloc(M_WAITOK); in ng_netflow_cache_init()
518 priv->nfinfo_spackets6 = counter_u64_alloc(M_WAITOK); in ng_netflow_cache_init()
519 priv->nfinfo_act_exp = counter_u64_alloc(M_WAITOK); in ng_netflow_cache_init()
520 priv->nfinfo_inact_exp = counter_u64_alloc(M_WAITOK); in ng_netflow_cache_init()
522 ng_netflow_v9_cache_init(priv); in ng_netflow_cache_init()
528 ng_netflow_fib_init(priv_p priv, int fib) in ng_netflow_fib_init() argument
530 fib_export_p fe = priv_to_fib(priv, fib); in ng_netflow_fib_init()
546 if (atomic_cmpset_ptr((volatile uintptr_t *)&priv->fib_data[fib], in ng_netflow_fib_init()
550 fib, fe, priv_to_fib(priv, fib)); in ng_netflow_fib_init()
557 fib, fe, priv_to_fib(priv, fib)); in ng_netflow_fib_init()
558 priv->nfinfo_alloc_fibs++; in ng_netflow_fib_init()
566 ng_netflow_cache_flush(priv_p priv) in ng_netflow_cache_flush() argument
581 for (hsh = priv->hash, i = 0; i < NBUCKETS; hsh++, i++) in ng_netflow_cache_flush()
584 fe = priv_to_fib(priv, fle->f.r.fib); in ng_netflow_cache_flush()
585 expire_flow(priv, fe, fle, NG_QUEUE); in ng_netflow_cache_flush()
588 for (hsh = priv->hash6, i = 0; i < NBUCKETS; hsh++, i++) in ng_netflow_cache_flush()
591 fe = priv_to_fib(priv, fle->f.r.fib); in ng_netflow_cache_flush()
592 expire_flow(priv, fe, fle, NG_QUEUE); in ng_netflow_cache_flush()
596 uma_zdestroy(priv->zone); in ng_netflow_cache_flush()
598 for (i = 0, hsh = priv->hash; i < NBUCKETS; i++, hsh++) in ng_netflow_cache_flush()
602 if (priv->hash != NULL) in ng_netflow_cache_flush()
603 free(priv->hash, M_NETFLOW_HASH); in ng_netflow_cache_flush()
605 uma_zdestroy(priv->zone6); in ng_netflow_cache_flush()
607 for (i = 0, hsh = priv->hash6; i < NBUCKETS; i++, hsh++) in ng_netflow_cache_flush()
611 if (priv->hash6 != NULL) in ng_netflow_cache_flush()
612 free(priv->hash6, M_NETFLOW_HASH); in ng_netflow_cache_flush()
615 for (i = 0; i < priv->maxfibs; i++) { in ng_netflow_cache_flush()
616 if ((fe = priv_to_fib(priv, i)) == NULL) in ng_netflow_cache_flush()
620 export_send(priv, fe, fe->exp.item, NG_QUEUE); in ng_netflow_cache_flush()
623 export9_send(priv, fe, fe->exp.item9, in ng_netflow_cache_flush()
631 counter_u64_free(priv->nfinfo_bytes); in ng_netflow_cache_flush()
632 counter_u64_free(priv->nfinfo_packets); in ng_netflow_cache_flush()
633 counter_u64_free(priv->nfinfo_bytes6); in ng_netflow_cache_flush()
634 counter_u64_free(priv->nfinfo_packets6); in ng_netflow_cache_flush()
635 counter_u64_free(priv->nfinfo_sbytes); in ng_netflow_cache_flush()
636 counter_u64_free(priv->nfinfo_spackets); in ng_netflow_cache_flush()
637 counter_u64_free(priv->nfinfo_sbytes6); in ng_netflow_cache_flush()
638 counter_u64_free(priv->nfinfo_spackets6); in ng_netflow_cache_flush()
639 counter_u64_free(priv->nfinfo_act_exp); in ng_netflow_cache_flush()
640 counter_u64_free(priv->nfinfo_inact_exp); in ng_netflow_cache_flush()
642 ng_netflow_v9_cache_flush(priv); in ng_netflow_cache_flush()
648 ng_netflow_flow_add(priv_p priv, fib_export_p fe, struct ip *ip, in ng_netflow_flow_add() argument
710 counter_u64_add(priv->nfinfo_packets, 1); in ng_netflow_flow_add()
711 counter_u64_add(priv->nfinfo_bytes, plen); in ng_netflow_flow_add()
714 hsh = &priv->hash[ip_hash(&r)]; in ng_netflow_flow_add()
729 expire_flow(priv, priv_to_fib(priv, fle->f.r.fib), in ng_netflow_flow_add()
731 counter_u64_add(priv->nfinfo_act_exp, 1); in ng_netflow_flow_add()
751 expire_flow(priv, priv_to_fib(priv, fle->f.r.fib), in ng_netflow_flow_add()
753 counter_u64_add(priv->nfinfo_act_exp, 1); in ng_netflow_flow_add()
766 error = hash_insert(priv, hsh, &r, plen, flags, tcp_flags); in ng_netflow_flow_add()
777 ng_netflow_flow6_add(priv_p priv, fib_export_p fe, struct ip6_hdr *ip6, in ng_netflow_flow6_add() argument
829 counter_u64_add(priv->nfinfo_packets6, 1); in ng_netflow_flow6_add()
830 counter_u64_add(priv->nfinfo_bytes6, plen); in ng_netflow_flow6_add()
833 hsh = &priv->hash6[ip6_hash(&r)]; in ng_netflow_flow6_add()
851 expire_flow(priv, priv_to_fib(priv, fle->f.r.fib), fle, in ng_netflow_flow6_add()
853 counter_u64_add(priv->nfinfo_act_exp, 1); in ng_netflow_flow6_add()
874 expire_flow(priv, priv_to_fib(priv, fle->f.r.fib), fle, in ng_netflow_flow6_add()
876 counter_u64_add(priv->nfinfo_act_exp, 1); in ng_netflow_flow6_add()
889 error = hash6_insert(priv, hsh, &r, plen, flags, tcp_flags); in ng_netflow_flow6_add()
903 ng_netflow_flow_show(priv_p priv, struct ngnf_show_header *req, in ng_netflow_flow_show() argument
921 hsh = priv->hash6 + i; in ng_netflow_flow_show()
927 hsh = priv->hash + i; in ng_netflow_flow_show()
1009 export_send(priv_p priv, fib_export_p fe, item_p item, int flags) in export_send() argument
1034 if (priv->export != NULL) in export_send()
1035 NG_FWD_ITEM_HOOK_FLAGS(error, item, priv->export, flags); in export_send()
1092 priv_p priv = (priv_p )arg; in ng_netflow_expire() local
1098 used = uma_zone_get_cur(priv->zone); in ng_netflow_expire()
1099 for (hsh = priv->hash, i = 0; i < NBUCKETS; hsh++, i++) { in ng_netflow_expire()
1124 expire_flow(priv, priv_to_fib(priv, in ng_netflow_expire()
1127 counter_u64_add(priv->nfinfo_inact_exp, 1); in ng_netflow_expire()
1134 used = uma_zone_get_cur(priv->zone6); in ng_netflow_expire()
1135 for (hsh = priv->hash6, i = 0; i < NBUCKETS; hsh++, i++) { in ng_netflow_expire()
1163 expire_flow(priv, priv_to_fib(priv, in ng_netflow_expire()
1166 counter_u64_add(priv->nfinfo_inact_exp, 1); in ng_netflow_expire()
1174 callout_reset(&priv->exp_callout, (1*hz), &ng_netflow_expire, in ng_netflow_expire()
1175 (void *)priv); in ng_netflow_expire()