Symbol: fqdir
include/net/inet_frag.h
103
struct fqdir *fqdir;
include/net/inet_frag.h
124
int fqdir_init(struct fqdir **fqdirp, struct inet_frags *f, struct net *net);
include/net/inet_frag.h
126
void fqdir_pre_exit(struct fqdir *fqdir);
include/net/inet_frag.h
127
void fqdir_exit(struct fqdir *fqdir);
include/net/inet_frag.h
131
struct inet_frag_queue *inet_frag_find(struct fqdir *fqdir, void *key);
include/net/inet_frag.h
144
static inline long frag_mem_limit(const struct fqdir *fqdir)
include/net/inet_frag.h
146
return atomic_long_read(&fqdir->mem);
include/net/inet_frag.h
149
static inline void sub_frag_mem_limit(struct fqdir *fqdir, long val)
include/net/inet_frag.h
151
atomic_long_sub(val, &fqdir->mem);
include/net/inet_frag.h
154
static inline void add_frag_mem_limit(struct fqdir *fqdir, long val)
include/net/inet_frag.h
156
atomic_long_add(val, &fqdir->mem);
include/net/ipv6_frag.h
81
if (READ_ONCE(fq->q.fqdir->dead)) {
include/net/netfilter/ipv6/nf_defrag_ipv6.h
19
struct fqdir *fqdir;
include/net/netns/ieee802154_6lowpan.h
19
struct fqdir *fqdir;
include/net/netns/ipv4.h
138
struct fqdir *fqdir;
include/net/netns/ipv6.h
132
struct fqdir *fqdir;
include/net/netns/ipv6.h
74
struct fqdir *fqdir;
net/ieee802154/6lowpan/reassembly.c
141
add_frag_mem_limit(fq->q.fqdir, skb->truesize);
net/ieee802154/6lowpan/reassembly.c
382
table[0].data = &ieee802154_lowpan->fqdir->high_thresh;
net/ieee802154/6lowpan/reassembly.c
383
table[0].extra1 = &ieee802154_lowpan->fqdir->low_thresh;
net/ieee802154/6lowpan/reassembly.c
384
table[1].data = &ieee802154_lowpan->fqdir->low_thresh;
net/ieee802154/6lowpan/reassembly.c
385
table[1].extra2 = &ieee802154_lowpan->fqdir->high_thresh;
net/ieee802154/6lowpan/reassembly.c
386
table[2].data = &ieee802154_lowpan->fqdir->timeout;
net/ieee802154/6lowpan/reassembly.c
456
res = fqdir_init(&ieee802154_lowpan->fqdir, &lowpan_frags, net);
net/ieee802154/6lowpan/reassembly.c
460
ieee802154_lowpan->fqdir->high_thresh = IPV6_FRAG_HIGH_THRESH;
net/ieee802154/6lowpan/reassembly.c
461
ieee802154_lowpan->fqdir->low_thresh = IPV6_FRAG_LOW_THRESH;
net/ieee802154/6lowpan/reassembly.c
462
ieee802154_lowpan->fqdir->timeout = IPV6_FRAG_TIMEOUT;
net/ieee802154/6lowpan/reassembly.c
466
fqdir_exit(ieee802154_lowpan->fqdir);
net/ieee802154/6lowpan/reassembly.c
475
fqdir_pre_exit(ieee802154_lowpan->fqdir);
net/ieee802154/6lowpan/reassembly.c
484
fqdir_exit(ieee802154_lowpan->fqdir);
net/ieee802154/6lowpan/reassembly.c
79
q = inet_frag_find(ieee802154_lowpan->fqdir, &key);
net/ipv4/inet_fragment.c
156
struct fqdir *fqdir, *tmp;
net/ipv4/inet_fragment.c
168
llist_for_each_entry_safe(fqdir, tmp, kill_list, free_list) {
net/ipv4/inet_fragment.c
169
f = fqdir->f;
net/ipv4/inet_fragment.c
173
kfree(fqdir);
net/ipv4/inet_fragment.c
181
struct fqdir *fqdir = container_of(work, struct fqdir, destroy_work);
net/ipv4/inet_fragment.c
183
rhashtable_free_and_destroy(&fqdir->rhashtable, inet_frags_free_cb, NULL);
net/ipv4/inet_fragment.c
185
if (llist_add(&fqdir->free_list, &fqdir_free_list))
net/ipv4/inet_fragment.c
189
int fqdir_init(struct fqdir **fqdirp, struct inet_frags *f, struct net *net)
net/ipv4/inet_fragment.c
191
struct fqdir *fqdir = kzalloc_obj(*fqdir);
net/ipv4/inet_fragment.c
194
if (!fqdir)
net/ipv4/inet_fragment.c
196
fqdir->f = f;
net/ipv4/inet_fragment.c
197
fqdir->net = net;
net/ipv4/inet_fragment.c
198
res = rhashtable_init(&fqdir->rhashtable, &fqdir->f->rhash_params);
net/ipv4/inet_fragment.c
200
kfree(fqdir);
net/ipv4/inet_fragment.c
204
*fqdirp = fqdir;
net/ipv4/inet_fragment.c
221
void fqdir_pre_exit(struct fqdir *fqdir)
net/ipv4/inet_fragment.c
229
WRITE_ONCE(fqdir->high_thresh, 0);
net/ipv4/inet_fragment.c
234
WRITE_ONCE(fqdir->dead, true);
net/ipv4/inet_fragment.c
236
rhashtable_walk_enter(&fqdir->rhashtable, &hti);
net/ipv4/inet_fragment.c
256
void fqdir_exit(struct fqdir *fqdir)
net/ipv4/inet_fragment.c
258
INIT_WORK(&fqdir->destroy_work, fqdir_work_fn);
net/ipv4/inet_fragment.c
259
queue_work(inet_frag_wq, &fqdir->destroy_work);
net/ipv4/inet_fragment.c
269
struct fqdir *fqdir = fq->fqdir;
net/ipv4/inet_fragment.c
278
if (!READ_ONCE(fqdir->dead)) {
net/ipv4/inet_fragment.c
279
rhashtable_remove_fast(&fqdir->rhashtable, &fq->node,
net/ipv4/inet_fragment.c
280
fqdir->f->rhash_params);
net/ipv4/inet_fragment.c
294
struct inet_frags *f = q->fqdir->f;
net/ipv4/inet_fragment.c
330
sub_frag_mem_limit(q->fqdir, sum);
net/ipv4/inet_fragment.c
339
struct fqdir *fqdir;
net/ipv4/inet_fragment.c
348
fqdir = q->fqdir;
net/ipv4/inet_fragment.c
349
f = fqdir->f;
net/ipv4/inet_fragment.c
355
sub_frag_mem_limit(fqdir, sum);
net/ipv4/inet_fragment.c
359
static struct inet_frag_queue *inet_frag_alloc(struct fqdir *fqdir,
net/ipv4/inet_fragment.c
369
q->fqdir = fqdir;
net/ipv4/inet_fragment.c
371
add_frag_mem_limit(fqdir, f->qsize);
net/ipv4/inet_fragment.c
383
static struct inet_frag_queue *inet_frag_create(struct fqdir *fqdir,
net/ipv4/inet_fragment.c
387
struct inet_frags *f = fqdir->f;
net/ipv4/inet_fragment.c
390
q = inet_frag_alloc(fqdir, f, arg);
net/ipv4/inet_fragment.c
395
mod_timer(&q->timer, jiffies + fqdir->timeout);
net/ipv4/inet_fragment.c
397
*prev = rhashtable_lookup_get_insert_key(&fqdir->rhashtable, &q->key,
net/ipv4/inet_fragment.c
414
struct inet_frag_queue *inet_frag_find(struct fqdir *fqdir, void *key)
net/ipv4/inet_fragment.c
417
long high_thresh = READ_ONCE(fqdir->high_thresh);
net/ipv4/inet_fragment.c
420
if (!high_thresh || frag_mem_limit(fqdir) > high_thresh)
net/ipv4/inet_fragment.c
423
prev = rhashtable_lookup(&fqdir->rhashtable, key, fqdir->f->rhash_params);
net/ipv4/inet_fragment.c
425
fq = inet_frag_create(fqdir, key, &prev);
net/ipv4/inet_fragment.c
555
add_frag_mem_limit(q->fqdir, delta);
net/ipv4/inet_fragment.c
577
add_frag_mem_limit(q->fqdir, clone->truesize);
net/ipv4/inet_fragment.c
664
sub_frag_mem_limit(q->fqdir, sum_truesize);
net/ipv4/inet_fragment.c
696
sub_frag_mem_limit(q->fqdir, head->truesize);
net/ipv4/ip_fragment.c
134
net = qp->q.fqdir->net;
net/ipv4/ip_fragment.c
146
if (READ_ONCE(qp->q.fqdir->dead)) {
net/ipv4/ip_fragment.c
212
q = inet_frag_find(net->ipv4.fqdir, &key);
net/ipv4/ip_fragment.c
223
unsigned int max = qp->q.fqdir->max_dist;
net/ipv4/ip_fragment.c
238
__IP_INC_STATS(qp->q.fqdir->net, IPSTATS_MIB_REASMFAILS);
net/ipv4/ip_fragment.c
245
if (!mod_timer_pending(&qp->q.timer, jiffies + qp->q.fqdir->timeout))
net/ipv4/ip_fragment.c
265
struct net *net = qp->q.fqdir->net;
net/ipv4/ip_fragment.c
349
add_frag_mem_limit(qp->q.fqdir, skb->truesize);
net/ipv4/ip_fragment.c
404
struct net *net = qp->q.fqdir->net;
net/ipv4/ip_fragment.c
603
table[0].data = &net->ipv4.fqdir->high_thresh;
net/ipv4/ip_fragment.c
604
table[0].extra1 = &net->ipv4.fqdir->low_thresh;
net/ipv4/ip_fragment.c
605
table[1].data = &net->ipv4.fqdir->low_thresh;
net/ipv4/ip_fragment.c
606
table[1].extra2 = &net->ipv4.fqdir->high_thresh;
net/ipv4/ip_fragment.c
607
table[2].data = &net->ipv4.fqdir->timeout;
net/ipv4/ip_fragment.c
608
table[3].data = &net->ipv4.fqdir->max_dist;
net/ipv4/ip_fragment.c
657
res = fqdir_init(&net->ipv4.fqdir, &ip4_frags, net);
net/ipv4/ip_fragment.c
674
net->ipv4.fqdir->high_thresh = 4 * 1024 * 1024;
net/ipv4/ip_fragment.c
675
net->ipv4.fqdir->low_thresh = 3 * 1024 * 1024;
net/ipv4/ip_fragment.c
681
net->ipv4.fqdir->timeout = IP_FRAG_TIME;
net/ipv4/ip_fragment.c
683
net->ipv4.fqdir->max_dist = 64;
net/ipv4/ip_fragment.c
687
fqdir_exit(net->ipv4.fqdir);
net/ipv4/ip_fragment.c
693
fqdir_pre_exit(net->ipv4.fqdir);
net/ipv4/ip_fragment.c
699
fqdir_exit(net->ipv4.fqdir);
net/ipv4/ip_fragment.c
87
struct net *net = q->fqdir->net;
net/ipv4/ip_fragment.c
92
if (q->fqdir->max_dist) {
net/ipv4/proc.c
73
atomic_read(&net->ipv4.fqdir->rhashtable.nelems),
net/ipv4/proc.c
74
frag_mem_limit(net->ipv4.fqdir));
net/ipv6/netfilter/nf_conntrack_reasm.c
141
ip6frag_expire_frag_queue(fq->q.fqdir->net, fq);
net/ipv6/netfilter/nf_conntrack_reasm.c
162
q = inet_frag_find(nf_frag->fqdir, &key);
net/ipv6/netfilter/nf_conntrack_reasm.c
277
add_frag_mem_limit(fq->q.fqdir, skb->truesize);
net/ipv6/netfilter/nf_conntrack_reasm.c
509
res = fqdir_init(&nf_frag->fqdir, &nf_frags, net);
net/ipv6/netfilter/nf_conntrack_reasm.c
513
nf_frag->fqdir->high_thresh = IPV6_FRAG_HIGH_THRESH;
net/ipv6/netfilter/nf_conntrack_reasm.c
514
nf_frag->fqdir->low_thresh = IPV6_FRAG_LOW_THRESH;
net/ipv6/netfilter/nf_conntrack_reasm.c
515
nf_frag->fqdir->timeout = IPV6_FRAG_TIMEOUT;
net/ipv6/netfilter/nf_conntrack_reasm.c
519
fqdir_exit(nf_frag->fqdir);
net/ipv6/netfilter/nf_conntrack_reasm.c
527
fqdir_pre_exit(nf_frag->fqdir);
net/ipv6/netfilter/nf_conntrack_reasm.c
535
fqdir_exit(nf_frag->fqdir);
net/ipv6/netfilter/nf_conntrack_reasm.c
83
table[0].data = &nf_frag->fqdir->timeout;
net/ipv6/netfilter/nf_conntrack_reasm.c
84
table[1].data = &nf_frag->fqdir->low_thresh;
net/ipv6/netfilter/nf_conntrack_reasm.c
85
table[1].extra2 = &nf_frag->fqdir->high_thresh;
net/ipv6/netfilter/nf_conntrack_reasm.c
86
table[2].data = &nf_frag->fqdir->high_thresh;
net/ipv6/netfilter/nf_conntrack_reasm.c
87
table[2].extra1 = &nf_frag->fqdir->low_thresh;
net/ipv6/proc.c
47
atomic_read(&net->ipv6.fqdir->rhashtable.nelems),
net/ipv6/proc.c
48
frag_mem_limit(net->ipv6.fqdir));
net/ipv6/reassembly.c
100
q = inet_frag_find(net->ipv6.fqdir, &key);
net/ipv6/reassembly.c
205
add_frag_mem_limit(fq->q.fqdir, skb->truesize);
net/ipv6/reassembly.c
261
struct net *net = fq->q.fqdir->net;
net/ipv6/reassembly.c
466
table[0].data = &net->ipv6.fqdir->high_thresh;
net/ipv6/reassembly.c
467
table[0].extra1 = &net->ipv6.fqdir->low_thresh;
net/ipv6/reassembly.c
468
table[1].data = &net->ipv6.fqdir->low_thresh;
net/ipv6/reassembly.c
469
table[1].extra2 = &net->ipv6.fqdir->high_thresh;
net/ipv6/reassembly.c
470
table[2].data = &net->ipv6.fqdir->timeout;
net/ipv6/reassembly.c
534
res = fqdir_init(&net->ipv6.fqdir, &ip6_frags, net);
net/ipv6/reassembly.c
538
net->ipv6.fqdir->high_thresh = IPV6_FRAG_HIGH_THRESH;
net/ipv6/reassembly.c
539
net->ipv6.fqdir->low_thresh = IPV6_FRAG_LOW_THRESH;
net/ipv6/reassembly.c
540
net->ipv6.fqdir->timeout = IPV6_FRAG_TIMEOUT;
net/ipv6/reassembly.c
544
fqdir_exit(net->ipv6.fqdir);
net/ipv6/reassembly.c
550
fqdir_pre_exit(net->ipv6.fqdir);
net/ipv6/reassembly.c
556
fqdir_exit(net->ipv6.fqdir);
net/ipv6/reassembly.c
81
ip6frag_expire_frag_queue(fq->q.fqdir->net, fq);