/* Per netns frag queues directory */ struct fqdir { /* sysctls */ long high_thresh; long low_thresh; int timeout; int max_dist; struct inet_frags *f; struct net *net; bool dead;
/* Keep atomic mem on separate cachelines in structs that include it */
atomic_long_t mem ____cacheline_aligned_in_smp; struct work_struct destroy_work; struct llist_node free_list;
};
/* Free all skbs in the queue; return the sum of their truesizes. */ unsignedint inet_frag_rbtree_purge(struct rb_root *root, enum skb_drop_reason reason);
staticinlinevoid inet_frag_putn(struct inet_frag_queue *q, int refs)
{ if (refs && refcount_sub_and_test(refs, &q->refcnt))
inet_frag_destroy(q);
}
staticinlinevoid sub_frag_mem_limit(struct fqdir *fqdir, long val)
{
atomic_long_sub(val, &fqdir->mem);
}
staticinlinevoid add_frag_mem_limit(struct fqdir *fqdir, long val)
{
atomic_long_add(val, &fqdir->mem);
}
/* RFC 3168 support : *WewanttocheckECNvaluesofallfragments,dodetectinvalidcombinations. *Inipq->ecn,westoretheORvalueofeachip4_frag_ecn()fragmentvalue.
*/ #define IPFRAG_ECN_NOT_ECT 0x01 /* one frag had ECN_NOT_ECT */ #define IPFRAG_ECN_ECT_1 0x02 /* one frag had ECN_ECT_1 */ #define IPFRAG_ECN_ECT_0 0x04 /* one frag had ECN_ECT_0 */ #define IPFRAG_ECN_CE 0x08 /* one frag had ECN_CE */
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.