[NETNS][FRAGS]: Make thresholds work in namespaces.
[deliverable/linux.git] / include / net / inet_frag.h
index 954def408975a13a11b6e57cbeb3624346f0328c..de41359254907867d0cf809b2ca9e143ffba3a2b 100644 (file)
@@ -1,8 +1,19 @@
 #ifndef __NET_FRAG_H__
 #define __NET_FRAG_H__
 
+struct netns_frags {
+       int                     nqueues;
+       atomic_t                mem;
+
+       /* sysctls */
+       int                     timeout;
+       int                     high_thresh;
+       int                     low_thresh;
+};
+
 struct inet_frag_queue {
        struct hlist_node       list;
+       struct netns_frags      *net;
        struct list_head        lru_list;   /* lru list member */
        spinlock_t              lock;
        atomic_t                refcnt;
@@ -21,9 +32,6 @@ struct inet_frag_queue {
 #define INETFRAGS_HASHSZ               64
 
 struct inet_frags_ctl {
-       int high_thresh;
-       int low_thresh;
-       int timeout;
        int secret_interval;
 };
 
@@ -32,9 +40,7 @@ struct inet_frags {
        struct hlist_head       hash[INETFRAGS_HASHSZ];
        rwlock_t                lock;
        u32                     rnd;
-       int                     nqueues;
        int                     qsize;
-       atomic_t                mem;
        struct timer_list       secret_timer;
        struct inet_frags_ctl   *ctl;
 
@@ -51,12 +57,14 @@ struct inet_frags {
 void inet_frags_init(struct inet_frags *);
 void inet_frags_fini(struct inet_frags *);
 
+void inet_frags_init_net(struct netns_frags *nf);
+
 void inet_frag_kill(struct inet_frag_queue *q, struct inet_frags *f);
 void inet_frag_destroy(struct inet_frag_queue *q,
                                struct inet_frags *f, int *work);
-int inet_frag_evictor(struct inet_frags *f);
-struct inet_frag_queue *inet_frag_find(struct inet_frags *f, void *key,
-               unsigned int hash);
+int inet_frag_evictor(struct netns_frags *nf, struct inet_frags *f);
+struct inet_frag_queue *inet_frag_find(struct netns_frags *nf,
+               struct inet_frags *f, void *key, unsigned int hash);
 
 static inline void inet_frag_put(struct inet_frag_queue *q, struct inet_frags *f)
 {
This page took 0.026765 seconds and 5 git commands to generate.