]> Pileus Git - ~andy/linux/blobdiff - include/net/ipv6.h
Merge branch 'virtio-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty...
[~andy/linux] / include / net / ipv6.h
index 6d01fb00ff2b613f7061f16e91c6890b2c927e61..979bf6c131412be9a4662d4738056feb91a26272 100644 (file)
@@ -223,7 +223,10 @@ struct ip6_flowlabel {
        struct ipv6_txoptions   *opt;
        unsigned long           linger;
        u8                      share;
-       u32                     owner;
+       union {
+               struct pid *pid;
+               kuid_t uid;
+       } owner;
        unsigned long           lastuse;
        unsigned long           expires;
        struct net              *fl_net;
@@ -268,8 +271,17 @@ struct ipv6_txoptions *ipv6_fixup_options(struct ipv6_txoptions *opt_space,
 
 extern bool ipv6_opt_accepted(const struct sock *sk, const struct sk_buff *skb);
 
-int ip6_frag_nqueues(struct net *net);
-int ip6_frag_mem(struct net *net);
+#if IS_ENABLED(CONFIG_IPV6)
+static inline int ip6_frag_nqueues(struct net *net)
+{
+       return net->ipv6.frags.nqueues;
+}
+
+static inline int ip6_frag_mem(struct net *net)
+{
+       return atomic_read(&net->ipv6.frags.mem);
+}
+#endif
 
 #define IPV6_FRAG_HIGH_THRESH  (256 * 1024)    /* 262144 */
 #define IPV6_FRAG_LOW_THRESH   (192 * 1024)    /* 196608 */
@@ -408,6 +420,25 @@ struct ip6_create_arg {
 void ip6_frag_init(struct inet_frag_queue *q, void *a);
 bool ip6_frag_match(struct inet_frag_queue *q, void *a);
 
+/*
+ *     Equivalent of ipv4 struct ip
+ */
+struct frag_queue {
+       struct inet_frag_queue  q;
+
+       __be32                  id;             /* fragment id          */
+       u32                     user;
+       struct in6_addr         saddr;
+       struct in6_addr         daddr;
+
+       int                     iif;
+       unsigned int            csum;
+       __u16                   nhoffset;
+};
+
+void ip6_expire_frag_queue(struct net *net, struct frag_queue *fq,
+                          struct inet_frags *frags);
+
 static inline bool ipv6_addr_any(const struct in6_addr *a)
 {
 #if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) && BITS_PER_LONG == 64