提交 f3ffaf14 编写于 作者: A Al Viro 提交者: David S. Miller

[SCTP]: Annotate SCTP headers.

Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 89c89458
...@@ -57,17 +57,17 @@ ...@@ -57,17 +57,17 @@
/* Section 3.1. SCTP Common Header Format */ /* Section 3.1. SCTP Common Header Format */
typedef struct sctphdr { typedef struct sctphdr {
__u16 source; __be16 source;
__u16 dest; __be16 dest;
__u32 vtag; __be32 vtag;
__u32 checksum; __be32 checksum;
} __attribute__((packed)) sctp_sctphdr_t; } __attribute__((packed)) sctp_sctphdr_t;
/* Section 3.2. Chunk Field Descriptions. */ /* Section 3.2. Chunk Field Descriptions. */
typedef struct sctp_chunkhdr { typedef struct sctp_chunkhdr {
__u8 type; __u8 type;
__u8 flags; __u8 flags;
__u16 length; __be16 length;
} __attribute__((packed)) sctp_chunkhdr_t; } __attribute__((packed)) sctp_chunkhdr_t;
...@@ -153,8 +153,8 @@ enum { SCTP_CHUNK_FLAG_T = 0x01 }; ...@@ -153,8 +153,8 @@ enum { SCTP_CHUNK_FLAG_T = 0x01 };
*/ */
typedef struct sctp_paramhdr { typedef struct sctp_paramhdr {
__u16 type; __be16 type;
__u16 length; __be16 length;
} __attribute__((packed)) sctp_paramhdr_t; } __attribute__((packed)) sctp_paramhdr_t;
typedef enum { typedef enum {
...@@ -203,10 +203,10 @@ enum { SCTP_PARAM_ACTION_MASK = __constant_htons(0xc000), }; ...@@ -203,10 +203,10 @@ enum { SCTP_PARAM_ACTION_MASK = __constant_htons(0xc000), };
/* RFC 2960 Section 3.3.1 Payload Data (DATA) (0) */ /* RFC 2960 Section 3.3.1 Payload Data (DATA) (0) */
typedef struct sctp_datahdr { typedef struct sctp_datahdr {
__u32 tsn; __be32 tsn;
__u16 stream; __be16 stream;
__u16 ssn; __be16 ssn;
__u32 ppid; __be32 ppid;
__u8 payload[0]; __u8 payload[0];
} __attribute__((packed)) sctp_datahdr_t; } __attribute__((packed)) sctp_datahdr_t;
...@@ -232,11 +232,11 @@ enum { SCTP_DATA_FRAG_MASK = 0x03, }; ...@@ -232,11 +232,11 @@ enum { SCTP_DATA_FRAG_MASK = 0x03, };
* endpoints. * endpoints.
*/ */
typedef struct sctp_inithdr { typedef struct sctp_inithdr {
__u32 init_tag; __be32 init_tag;
__u32 a_rwnd; __be32 a_rwnd;
__u16 num_outbound_streams; __be16 num_outbound_streams;
__u16 num_inbound_streams; __be16 num_inbound_streams;
__u32 initial_tsn; __be32 initial_tsn;
__u8 params[0]; __u8 params[0];
} __attribute__((packed)) sctp_inithdr_t; } __attribute__((packed)) sctp_inithdr_t;
...@@ -261,7 +261,7 @@ typedef struct sctp_ipv6addr_param { ...@@ -261,7 +261,7 @@ typedef struct sctp_ipv6addr_param {
/* Section 3.3.2.1 Cookie Preservative (9) */ /* Section 3.3.2.1 Cookie Preservative (9) */
typedef struct sctp_cookie_preserve_param { typedef struct sctp_cookie_preserve_param {
sctp_paramhdr_t param_hdr; sctp_paramhdr_t param_hdr;
uint32_t lifespan_increment; __be32 lifespan_increment;
} __attribute__((packed)) sctp_cookie_preserve_param_t; } __attribute__((packed)) sctp_cookie_preserve_param_t;
/* Section 3.3.2.1 Host Name Address (11) */ /* Section 3.3.2.1 Host Name Address (11) */
...@@ -273,7 +273,7 @@ typedef struct sctp_hostname_param { ...@@ -273,7 +273,7 @@ typedef struct sctp_hostname_param {
/* Section 3.3.2.1 Supported Address Types (12) */ /* Section 3.3.2.1 Supported Address Types (12) */
typedef struct sctp_supported_addrs_param { typedef struct sctp_supported_addrs_param {
sctp_paramhdr_t param_hdr; sctp_paramhdr_t param_hdr;
uint16_t types[0]; __be16 types[0];
} __attribute__((packed)) sctp_supported_addrs_param_t; } __attribute__((packed)) sctp_supported_addrs_param_t;
/* Appendix A. ECN Capable (32768) */ /* Appendix A. ECN Capable (32768) */
...@@ -284,7 +284,7 @@ typedef struct sctp_ecn_capable_param { ...@@ -284,7 +284,7 @@ typedef struct sctp_ecn_capable_param {
/* ADDIP Section 3.2.6 Adaption Layer Indication */ /* ADDIP Section 3.2.6 Adaption Layer Indication */
typedef struct sctp_adaption_ind_param { typedef struct sctp_adaption_ind_param {
struct sctp_paramhdr param_hdr; struct sctp_paramhdr param_hdr;
__u32 adaption_ind; __be32 adaption_ind;
} __attribute__((packed)) sctp_adaption_ind_param_t; } __attribute__((packed)) sctp_adaption_ind_param_t;
/* RFC 2960. Section 3.3.3 Initiation Acknowledgement (INIT ACK) (2): /* RFC 2960. Section 3.3.3 Initiation Acknowledgement (INIT ACK) (2):
...@@ -316,11 +316,11 @@ typedef struct sctp_unrecognized_param { ...@@ -316,11 +316,11 @@ typedef struct sctp_unrecognized_param {
*/ */
typedef struct sctp_gap_ack_block { typedef struct sctp_gap_ack_block {
__u16 start; __be16 start;
__u16 end; __be16 end;
} __attribute__((packed)) sctp_gap_ack_block_t; } __attribute__((packed)) sctp_gap_ack_block_t;
typedef uint32_t sctp_dup_tsn_t; typedef __be32 sctp_dup_tsn_t;
typedef union { typedef union {
sctp_gap_ack_block_t gab; sctp_gap_ack_block_t gab;
...@@ -328,10 +328,10 @@ typedef union { ...@@ -328,10 +328,10 @@ typedef union {
} sctp_sack_variable_t; } sctp_sack_variable_t;
typedef struct sctp_sackhdr { typedef struct sctp_sackhdr {
__u32 cum_tsn_ack; __be32 cum_tsn_ack;
__u32 a_rwnd; __be32 a_rwnd;
__u16 num_gap_ack_blocks; __be16 num_gap_ack_blocks;
__u16 num_dup_tsns; __be16 num_dup_tsns;
sctp_sack_variable_t variable[0]; sctp_sack_variable_t variable[0];
} __attribute__((packed)) sctp_sackhdr_t; } __attribute__((packed)) sctp_sackhdr_t;
...@@ -371,7 +371,7 @@ typedef struct sctp_abort_chunk { ...@@ -371,7 +371,7 @@ typedef struct sctp_abort_chunk {
* and the highest consecutive acking value. * and the highest consecutive acking value.
*/ */
typedef struct sctp_shutdownhdr { typedef struct sctp_shutdownhdr {
__u32 cum_tsn_ack; __be32 cum_tsn_ack;
} __attribute__((packed)) sctp_shutdownhdr_t; } __attribute__((packed)) sctp_shutdownhdr_t;
struct sctp_shutdown_chunk_t { struct sctp_shutdown_chunk_t {
...@@ -382,8 +382,8 @@ struct sctp_shutdown_chunk_t { ...@@ -382,8 +382,8 @@ struct sctp_shutdown_chunk_t {
/* RFC 2960. Section 3.3.10 Operation Error (ERROR) (9) */ /* RFC 2960. Section 3.3.10 Operation Error (ERROR) (9) */
typedef struct sctp_errhdr { typedef struct sctp_errhdr {
__u16 cause; __be16 cause;
__u16 length; __be16 length;
__u8 variable[0]; __u8 variable[0];
} __attribute__((packed)) sctp_errhdr_t; } __attribute__((packed)) sctp_errhdr_t;
...@@ -462,7 +462,7 @@ typedef enum { ...@@ -462,7 +462,7 @@ typedef enum {
* Explicit Congestion Notification Echo (ECNE) (12) * Explicit Congestion Notification Echo (ECNE) (12)
*/ */
typedef struct sctp_ecnehdr { typedef struct sctp_ecnehdr {
__u32 lowest_tsn; __be32 lowest_tsn;
} sctp_ecnehdr_t; } sctp_ecnehdr_t;
typedef struct sctp_ecne_chunk { typedef struct sctp_ecne_chunk {
...@@ -474,7 +474,7 @@ typedef struct sctp_ecne_chunk { ...@@ -474,7 +474,7 @@ typedef struct sctp_ecne_chunk {
* Congestion Window Reduced (CWR) (13) * Congestion Window Reduced (CWR) (13)
*/ */
typedef struct sctp_cwrhdr { typedef struct sctp_cwrhdr {
__u32 lowest_tsn; __be32 lowest_tsn;
} sctp_cwrhdr_t; } sctp_cwrhdr_t;
typedef struct sctp_cwr_chunk { typedef struct sctp_cwr_chunk {
...@@ -529,12 +529,12 @@ typedef struct sctp_cwr_chunk { ...@@ -529,12 +529,12 @@ typedef struct sctp_cwr_chunk {
* chunks this field MUST be filled in. * chunks this field MUST be filled in.
*/ */
struct sctp_fwdtsn_skip { struct sctp_fwdtsn_skip {
__u16 stream; __be16 stream;
__u16 ssn; __be16 ssn;
} __attribute__((packed)); } __attribute__((packed));
struct sctp_fwdtsn_hdr { struct sctp_fwdtsn_hdr {
__u32 new_cum_tsn; __be32 new_cum_tsn;
struct sctp_fwdtsn_skip skip[0]; struct sctp_fwdtsn_skip skip[0];
} __attribute((packed)); } __attribute((packed));
...@@ -578,11 +578,11 @@ struct sctp_fwdtsn_chunk { ...@@ -578,11 +578,11 @@ struct sctp_fwdtsn_chunk {
*/ */
typedef struct sctp_addip_param { typedef struct sctp_addip_param {
sctp_paramhdr_t param_hdr; sctp_paramhdr_t param_hdr;
__u32 crr_id; __be32 crr_id;
} __attribute__((packed)) sctp_addip_param_t; } __attribute__((packed)) sctp_addip_param_t;
typedef struct sctp_addiphdr { typedef struct sctp_addiphdr {
__u32 serial; __be32 serial;
__u8 params[0]; __u8 params[0];
} __attribute__((packed)) sctp_addiphdr_t; } __attribute__((packed)) sctp_addiphdr_t;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册