| /linux/net/ipv4/ |
| H A D | inet_fragment.c | 156 struct fqdir *fqdir, *tmp; in fqdir_free_fn() local 168 llist_for_each_entry_safe(fqdir, tmp, kill_list, free_list) { in fqdir_free_fn() 169 f = fqdir->f; in fqdir_free_fn() 173 kfree(fqdir); in fqdir_free_fn() 181 struct fqdir *fqdir = container_of(work, struct fqdir, destroy_work); in fqdir_work_fn() local 183 rhashtable_free_and_destroy(&fqdir->rhashtable, inet_frags_free_cb, NULL); in fqdir_work_fn() 185 if (llist_add(&fqdir->free_list, &fqdir_free_list)) in fqdir_work_fn() 189 int fqdir_init(struct fqdir **fqdirp, struct inet_frags *f, struct net *net) in fqdir_init() 191 struct fqdir *fqdir = kzalloc_obj(*fqdir); in fqdir_init() local 194 if (!fqdir) in fqdir_init() [all …]
|
| H A D | ip_fragment.c | 87 struct net *net = q->fqdir->net; in ip4_frag_init() 92 if (q->fqdir->max_dist) { in ip4_frag_init() 134 net = qp->q.fqdir->net; in ip_expire() 146 if (READ_ONCE(qp->q.fqdir->dead)) { in ip_expire() 212 q = inet_frag_find(net->ipv4.fqdir, &key); in ip_find() 223 unsigned int max = qp->q.fqdir->max_dist; in ip_frag_too_far() 238 __IP_INC_STATS(qp->q.fqdir->net, IPSTATS_MIB_REASMFAILS); in ip_frag_too_far() 245 if (!mod_timer_pending(&qp->q.timer, jiffies + qp->q.fqdir->timeout)) in ip_frag_reinit() 265 struct net *net = qp->q.fqdir->net; in ip_frag_queue() 349 add_frag_mem_limit(qp->q.fqdir, skb->truesize); in ip_frag_queue() [all …]
|
| /linux/include/net/ |
| H A D | inet_frag.h | 13 struct fqdir { struct 103 struct fqdir *fqdir; member 124 int fqdir_init(struct fqdir **fqdirp, struct inet_frags *f, struct net *net); 126 void fqdir_pre_exit(struct fqdir *fqdir); 127 void fqdir_exit(struct fqdir *fqdir); 131 struct inet_frag_queue *inet_frag_find(struct fqdir *fqdir, void *key); 144 static inline long frag_mem_limit(const struct fqdir *fqdir) in frag_mem_limit() argument 146 return atomic_long_read(&fqdir->mem); in frag_mem_limit() 149 static inline void sub_frag_mem_limit(struct fqdir *fqdir, long val) in sub_frag_mem_limit() argument 151 atomic_long_sub(val, &fqdir->mem); in sub_frag_mem_limit() [all …]
|
| H A D | ipv6_frag.h | 81 if (READ_ONCE(fq->q.fqdir->dead)) { in ip6frag_expire_frag_queue()
|
| /linux/net/ipv6/ |
| H A D | reassembly.c | 81 ip6frag_expire_frag_queue(fq->q.fqdir->net, fq); in ip6_frag_expire() 100 q = inet_frag_find(net->ipv6.fqdir, &key); in fq_find() 205 add_frag_mem_limit(fq->q.fqdir, skb->truesize); in ip6_frag_queue() 261 struct net *net = fq->q.fqdir->net; in ip6_frag_reasm() 466 table[0].data = &net->ipv6.fqdir->high_thresh; in ip6_frags_ns_sysctl_register() 467 table[0].extra1 = &net->ipv6.fqdir->low_thresh; in ip6_frags_ns_sysctl_register() 468 table[1].data = &net->ipv6.fqdir->low_thresh; in ip6_frags_ns_sysctl_register() 469 table[1].extra2 = &net->ipv6.fqdir->high_thresh; in ip6_frags_ns_sysctl_register() 470 table[2].data = &net->ipv6.fqdir->timeout; in ip6_frags_ns_sysctl_register() 534 res = fqdir_init(&net->ipv6.fqdir, &ip6_frags, net); in ipv6_frags_init_net() [all …]
|
| /linux/net/ipv6/netfilter/ |
| H A D | nf_conntrack_reasm.c | 83 table[0].data = &nf_frag->fqdir->timeout; in nf_ct_frag6_sysctl_register() 84 table[1].data = &nf_frag->fqdir->low_thresh; in nf_ct_frag6_sysctl_register() 85 table[1].extra2 = &nf_frag->fqdir->high_thresh; in nf_ct_frag6_sysctl_register() 86 table[2].data = &nf_frag->fqdir->high_thresh; in nf_ct_frag6_sysctl_register() 87 table[2].extra1 = &nf_frag->fqdir->low_thresh; in nf_ct_frag6_sysctl_register() 141 ip6frag_expire_frag_queue(fq->q.fqdir->net, fq); in nf_ct_frag6_expire() 162 q = inet_frag_find(nf_frag->fqdir, &key); in fq_find() 277 add_frag_mem_limit(fq->q.fqdir, skb->truesize); in nf_ct_frag6_queue() 509 res = fqdir_init(&nf_frag->fqdir, &nf_frags, net); in nf_ct_net_init() 513 nf_frag->fqdir->high_thresh = IPV6_FRAG_HIGH_THRESH; in nf_ct_net_init() [all …]
|
| /linux/net/ieee802154/6lowpan/ |
| H A D | reassembly.c | 79 q = inet_frag_find(ieee802154_lowpan->fqdir, &key); in fq_find() 141 add_frag_mem_limit(fq->q.fqdir, skb->truesize); in lowpan_frag_queue() 382 table[0].data = &ieee802154_lowpan->fqdir->high_thresh; in lowpan_frags_ns_sysctl_register() 383 table[0].extra1 = &ieee802154_lowpan->fqdir->low_thresh; in lowpan_frags_ns_sysctl_register() 384 table[1].data = &ieee802154_lowpan->fqdir->low_thresh; in lowpan_frags_ns_sysctl_register() 385 table[1].extra2 = &ieee802154_lowpan->fqdir->high_thresh; in lowpan_frags_ns_sysctl_register() 386 table[2].data = &ieee802154_lowpan->fqdir->timeout; in lowpan_frags_ns_sysctl_register() 456 res = fqdir_init(&ieee802154_lowpan->fqdir, &lowpan_frags, net); in lowpan_frags_init_net() 460 ieee802154_lowpan->fqdir->high_thresh = IPV6_FRAG_HIGH_THRESH; in lowpan_frags_init_net() 461 ieee802154_lowpan->fqdir->low_thresh = IPV6_FRAG_LOW_THRESH; in lowpan_frags_init_net() [all …]
|
| /linux/include/net/netns/ |
| H A D | ipv6.h | 74 struct fqdir *fqdir; 132 struct fqdir *fqdir; 69 struct fqdir *fqdir; global() member 126 struct fqdir *fqdir; global() member
|
| H A D | ieee802154_6lowpan.h | 19 struct fqdir *fqdir; member
|
| H A D | ipv4.h | 138 struct fqdir *fqdir; member
|
| /linux/include/net/netfilter/ipv6/ |
| H A D | nf_defrag_ipv6.h | 19 struct fqdir *fqdir; member
|