diff options
author | Changli Gao | 2010-08-17 21:03:44 +0200 |
---|---|---|
committer | David S. Miller | 2010-08-20 02:16:23 +0200 |
commit | e760702ed8333588f9f21e7bf6597873993006f1 (patch) | |
tree | 75a0be41c269d953a48edfa3d052a08352f85bcd /include/linux/in.h | |
parent | net: rps: skip fragment when computing rxhash (diff) | |
download | kernel-qcow2-linux-e760702ed8333588f9f21e7bf6597873993006f1.tar.gz kernel-qcow2-linux-e760702ed8333588f9f21e7bf6597873993006f1.tar.xz kernel-qcow2-linux-e760702ed8333588f9f21e7bf6597873993006f1.zip |
net: introduce proto_ports_offset()
Introduce proto_ports_offset() for getting the position of the ports or
SPI in the message of a protocol.
Signed-off-by: Changli Gao <xiaosuo@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/in.h')
-rw-r--r-- | include/linux/in.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/in.h b/include/linux/in.h index 41d88a4689af..beeb6dee2b49 100644 --- a/include/linux/in.h +++ b/include/linux/in.h @@ -250,6 +250,25 @@ struct sockaddr_in { #ifdef __KERNEL__ +#include <linux/errno.h> + +static inline int proto_ports_offset(int proto) +{ + switch (proto) { + case IPPROTO_TCP: + case IPPROTO_UDP: + case IPPROTO_DCCP: + case IPPROTO_ESP: /* SPI */ + case IPPROTO_SCTP: + case IPPROTO_UDPLITE: + return 0; + case IPPROTO_AH: /* SPI */ + return 4; + default: + return -EINVAL; + } +} + static inline bool ipv4_is_loopback(__be32 addr) { return (addr & htonl(0xff000000)) == htonl(0x7f000000); |