diff options
author | Nikolay Aleksandrov <nikolay@redhat.com> | 2014-08-01 12:29:45 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-08-02 15:31:31 -0700 |
commit | 1ab1934ed80aa90b268a62a561f8fdc60812793c (patch) | |
tree | 54871d634248ce8a9d330f2395bf39fef482644a /include/net/inet_frag.h | |
parent | 06aa8b8a0345c78f4d9a1fb3f852952b12a0e40c (diff) | |
download | op-kernel-dev-1ab1934ed80aa90b268a62a561f8fdc60812793c.zip op-kernel-dev-1ab1934ed80aa90b268a62a561f8fdc60812793c.tar.gz |
inet: frags: enum the flag definitions and add descriptions
Move the flags to an enum definion, swap FIRST_IN/LAST_IN to be in increasing
order and add comments explaining each flag and the inet_frag_queue struct
members.
Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/inet_frag.h')
-rw-r--r-- | include/net/inet_frag.h | 46 |
1 files changed, 35 insertions, 11 deletions
diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h index 5024d6c..90015c4 100644 --- a/include/net/inet_frag.h +++ b/include/net/inet_frag.h @@ -15,25 +15,49 @@ struct netns_frags { int low_thresh; }; +/** + * fragment queue flags + * + * @INET_FRAG_FIRST_IN: first fragment has arrived + * @INET_FRAG_LAST_IN: final fragment has arrived + * @INET_FRAG_COMPLETE: frag queue has been processed and is due for destruction + * @INET_FRAG_EVICTED: frag queue is being evicted + */ +enum { + INET_FRAG_FIRST_IN = BIT(0), + INET_FRAG_LAST_IN = BIT(1), + INET_FRAG_COMPLETE = BIT(2), + INET_FRAG_EVICTED = BIT(3) +}; + +/** + * struct inet_frag_queue - fragment queue + * + * @lock: spinlock protecting the queue + * @timer: queue expiration timer + * @list: hash bucket list + * @refcnt: reference count of the queue + * @fragments: received fragments head + * @fragments_tail: received fragments tail + * @stamp: timestamp of the last received fragment + * @len: total length of the original datagram + * @meat: length of received fragments so far + * @flags: fragment queue flags + * @max_size: (ipv4 only) maximum received fragment size with IP_DF set + * @net: namespace that this frag belongs to + */ struct inet_frag_queue { spinlock_t lock; - struct timer_list timer; /* when will this queue expire? */ + struct timer_list timer; struct hlist_node list; atomic_t refcnt; - struct sk_buff *fragments; /* list of received fragments */ + struct sk_buff *fragments; struct sk_buff *fragments_tail; ktime_t stamp; - int len; /* total length of orig datagram */ + int len; int meat; - __u8 flags; /* first/last segment arrived? */ - -#define INET_FRAG_EVICTED 8 -#define INET_FRAG_COMPLETE 4 -#define INET_FRAG_FIRST_IN 2 -#define INET_FRAG_LAST_IN 1 - + __u8 flags; u16 max_size; - struct netns_frags *net; }; |