summaryrefslogtreecommitdiffstats
path: root/include/net/inet_sock.h
diff options
context:
space:
mode:
authorTom Herbert <therbert@google.com>2015-01-05 22:56:14 +0100
committerDavid S. Miller <davem@davemloft.net>2015-01-06 04:44:46 +0100
commit224d019c4fbba242041e9b25a926ba873b7da1e2 (patch)
tree8597050c1dad2107ee9acf229dfdbb85c0edcb52 /include/net/inet_sock.h
parentnetlink: Warn on unordered or illegal nla_nest_cancel() or nlmsg_cancel() (diff)
downloadlinux-224d019c4fbba242041e9b25a926ba873b7da1e2.tar.xz
linux-224d019c4fbba242041e9b25a926ba873b7da1e2.zip
ip: Move checksum convert defines to inet
Move convert_csum from udp_sock to inet_sock. This allows the possibility that we can use convert checksum for different types of sockets and also allows convert checksum to be enabled from inet layer (what we'll want to do when enabling IP_CHECKSUM cmsg). Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/inet_sock.h')
-rw-r--r--include/net/inet_sock.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
index a829b77523cf..360b110b3e36 100644
--- a/include/net/inet_sock.h
+++ b/include/net/inet_sock.h
@@ -184,6 +184,7 @@ struct inet_sock {
mc_all:1,
nodefrag:1;
__u8 rcv_tos;
+ __u8 convert_csum;
int uc_index;
int mc_index;
__be32 mc_addr;
@@ -250,4 +251,20 @@ static inline __u8 inet_sk_flowi_flags(const struct sock *sk)
return flags;
}
+static inline void inet_inc_convert_csum(struct sock *sk)
+{
+ inet_sk(sk)->convert_csum++;
+}
+
+static inline void inet_dec_convert_csum(struct sock *sk)
+{
+ if (inet_sk(sk)->convert_csum > 0)
+ inet_sk(sk)->convert_csum--;
+}
+
+static inline bool inet_get_convert_csum(struct sock *sk)
+{
+ return !!inet_sk(sk)->convert_csum;
+}
+
#endif /* _INET_SOCK_H */