diff options
author | Tom Herbert <therbert@google.com> | 2015-01-05 13:56:15 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-01-05 22:44:46 -0500 |
commit | c44d13d6f341ca59f3d6646f2337d4d3c8a814a6 (patch) | |
tree | 03e510be58acdf0ff3aa10cc5f5366f51343f22b /include/net/inet_sock.h | |
parent | 224d019c4fbba242041e9b25a926ba873b7da1e2 (diff) | |
download | linux-c44d13d6f341ca59f3d6646f2337d4d3c8a814a6.tar.gz linux-c44d13d6f341ca59f3d6646f2337d4d3c8a814a6.tar.bz2 linux-c44d13d6f341ca59f3d6646f2337d4d3c8a814a6.zip |
ip: IP cmsg cleanup
Move the IP_CMSG_* constants from ip_sockglue.c to inet_sock.h so that
they can be referenced in other source files.
Restructure ip_cmsg_recv to not go through flags using shift, check
for flags by 'and'. This eliminates both the shift and a conditional
per flag check.
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.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h index 360b110b3e36..605ca421d5ab 100644 --- a/include/net/inet_sock.h +++ b/include/net/inet_sock.h @@ -16,7 +16,7 @@ #ifndef _INET_SOCK_H #define _INET_SOCK_H - +#include <linux/bitops.h> #include <linux/kmemcheck.h> #include <linux/string.h> #include <linux/types.h> @@ -195,6 +195,15 @@ struct inet_sock { #define IPCORK_OPT 1 /* ip-options has been held in ipcork.opt */ #define IPCORK_ALLFRAG 2 /* always fragment (for ipv6 for now) */ +/* cmsg flags for inet */ +#define IP_CMSG_PKTINFO BIT(0) +#define IP_CMSG_TTL BIT(1) +#define IP_CMSG_TOS BIT(2) +#define IP_CMSG_RECVOPTS BIT(3) +#define IP_CMSG_RETOPTS BIT(4) +#define IP_CMSG_PASSSEC BIT(5) +#define IP_CMSG_ORIGDSTADDR BIT(6) + static inline struct inet_sock *inet_sk(const struct sock *sk) { return (struct inet_sock *)sk; |