aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/sctp.h
diff options
context:
space:
mode:
authorDaniel Borkmann <dborkman@redhat.com>2013-04-09 01:54:01 -0400
committerDavid S. Miller <davem@davemloft.net>2013-04-09 13:19:39 -0400
commit1b8664341100716202c29d67f24d67094a82971e (patch)
tree6420508b2e4053927f2ec6df4a516366da31691f /include/linux/sctp.h
parent3d4a1316286d037c29a36a8451a9612f60404ef7 (diff)
net: sctp: introduce uapi header for sctp
This patch introduces an UAPI header for the SCTP protocol, so that we can facilitate the maintenance and development of user land applications or libraries, in particular in terms of header synchronization. To not break compatibility, some fragments from lksctp-tools' netinet/sctp.h have been carefully included, while taking care that neither kernel nor user land breaks, so both compile fine with this change (for lksctp-tools I tested with the old netinet/sctp.h header and with a newly adapted one that includes the uapi sctp header). lksctp-tools smoke test run through successfully as well in both cases. Suggested-by: Neil Horman <nhorman@tuxdriver.com> Cc: Neil Horman <nhorman@tuxdriver.com> Cc: Vlad Yasevich <vyasevich@gmail.com> Signed-off-by: Daniel Borkmann <dborkman@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/sctp.h')
-rw-r--r--include/linux/sctp.h6
1 files changed, 2 insertions, 4 deletions
diff --git a/include/linux/sctp.h b/include/linux/sctp.h
index c11a28706fa4..3bfe8d6ee248 100644
--- a/include/linux/sctp.h
+++ b/include/linux/sctp.h
@@ -53,7 +53,9 @@
53 53
54#include <linux/in.h> /* We need in_addr. */ 54#include <linux/in.h> /* We need in_addr. */
55#include <linux/in6.h> /* We need in6_addr. */ 55#include <linux/in6.h> /* We need in6_addr. */
56#include <linux/skbuff.h>
56 57
58#include <uapi/linux/sctp.h>
57 59
58/* Section 3.1. SCTP Common Header Format */ 60/* Section 3.1. SCTP Common Header Format */
59typedef struct sctphdr { 61typedef struct sctphdr {
@@ -63,14 +65,10 @@ typedef struct sctphdr {
63 __le32 checksum; 65 __le32 checksum;
64} __packed sctp_sctphdr_t; 66} __packed sctp_sctphdr_t;
65 67
66#ifdef __KERNEL__
67#include <linux/skbuff.h>
68
69static inline struct sctphdr *sctp_hdr(const struct sk_buff *skb) 68static inline struct sctphdr *sctp_hdr(const struct sk_buff *skb)
70{ 69{
71 return (struct sctphdr *)skb_transport_header(skb); 70 return (struct sctphdr *)skb_transport_header(skb);
72} 71}
73#endif
74 72
75/* Section 3.2. Chunk Field Descriptions. */ 73/* Section 3.2. Chunk Field Descriptions. */
76typedef struct sctp_chunkhdr { 74typedef struct sctp_chunkhdr {