All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] sctp: implement protocol definitions for STREAM-RESET
@ 2009-03-09  3:14 Wei Yongjun
  2009-03-09 18:43 ` Vlad Yasevich
  0 siblings, 1 reply; 2+ messages in thread
From: Wei Yongjun @ 2009-03-09  3:14 UTC (permalink / raw)
  To: linux-sctp

This patch implement the protocol definitions for STREAM-RESET
extension.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
---
 include/linux/sctp.h |  101 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 101 insertions(+), 0 deletions(-)

diff --git a/include/linux/sctp.h b/include/linux/sctp.h
index c2731bf..5a12eb0 100644
--- a/include/linux/sctp.h
+++ b/include/linux/sctp.h
@@ -111,6 +111,9 @@ typedef enum {
 	/* Use hex, as defined in ADDIP sec. 3.1 */
 	SCTP_CID_ASCONF			= 0xC1,
 	SCTP_CID_ASCONF_ACK		= 0x80,
+
+	/* STREAM-RESET Extension Section 3.1 */
+	SCTP_CID_STREAM_RESET		= 0x82,
 } sctp_cid_t; /* enum */
 
 
@@ -202,6 +205,12 @@ typedef enum {
 	SCTP_PARAM_SUCCESS_REPORT	= cpu_to_be16(0xc005),
 	SCTP_PARAM_ADAPTATION_LAYER_IND = cpu_to_be16(0xc006),
 
+	/* STREAM-RESET Extension Section 3.2 */
+	SCTP_PARAM_RESET_OUT_REQUEST	= cpu_to_be16(0x000d),
+	SCTP_PARAM_RESET_IN_REQUEST	= cpu_to_be16(0x000e),
+	SCTP_PARAM_RESET_TSN_REQUEST	= cpu_to_be16(0x000f),
+	SCTP_PARAM_RESET_RESPONSE	= cpu_to_be16(0x0010),
+	SCTP_PARAM_ADD_STREAM		= cpu_to_be16(0x0011),
 } sctp_param_t; /* enum */
 
 
@@ -707,4 +716,96 @@ typedef struct sctp_auth_chunk {
 	sctp_authhdr_t auth_hdr;
 } __attribute__((packed)) sctp_auth_chunk_t;
 
+/* STREAM-RESET Extension Section 3.1 STREAM RESET Chunk
+ *
+ * The chunk has the following format:
+ *      0                   1                   2                   3
+ *      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ *     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *     | Type = 0x82   |  Chunk Flags  |      Chunk Length             |
+ *     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *     |                    Stream Reset Parameter                     |
+ *     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *     |                    Stream Reset Parameter (optional)          |
+ *     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ */
+typedef struct sctp_strrst_chunk {
+        sctp_chunkhdr_t chunk_hdr;
+        __u8 params[0];
+} __attribute__((packed)) sctp_strrst_chunk_t;
+
+/* STREAM-RESET Extension Section 3.2.1 Outgoing SSN Reset Request Parameter
+ *
+ * This parameter is used by the sender to request some outgoing streams
+ * to be reset.
+ */
+typedef struct sctp_reset_out_req {
+	sctp_paramhdr_t	param_hdr;
+	__be32 request_seq;
+	__be32 response_seq;
+	__be32 send_reset_at_tsn;
+	__be16 stream[0];
+} __attribute__((packed)) sctp_reset_out_req_t;
+
+/* STREAM-RESET Extension Section 3.2.2 Incoming SSN Reset Request Parameter
+ *
+ * This parameter is used by the sender to request that the peer
+ * requests some of its outgoing streams to be reset.
+ */
+typedef struct sctp_reset_in_req {
+	sctp_paramhdr_t	param_hdr;
+	__be32 request_seq;
+	__be16 stream[0];
+} __attribute__((packed)) sctp_reset_in_req_t;
+
+/* STREAM-RESET Extension Section 3.2.3 SSN/TSN Reset Request Parameter
+ *
+ * This parameter is used by the sender to request to reset the TSN and
+ * SSN numbering of all streams.
+ */
+typedef struct sctp_reset_tsn_req {
+	sctp_paramhdr_t	param_hdr;
+	__be32 request_seq;
+} __attribute__((packed)) sctp_reset_tsn_req_t;
+
+/* STREAM-RESET Extension Section 3.2.4 Stream Reset Response Parameter
+ *
+ * This parameter is used by the receiver of a stream reset request
+ * parameter to respond to the stream reset request.
+ */
+typedef struct sctp_reset_res {
+	sctp_paramhdr_t	param_hdr;
+	__be32 response_seq;
+	__be32 result;
+} __attribute__((packed)) sctp_reset_res_t;
+
+typedef struct sctp_reset_tsn_res {
+	sctp_paramhdr_t	param_hdr;
+	__be32 response_seq;
+	__be32 result;
+	__be32 senders_next_tsn;
+	__be32 receivers_next_tsn;
+} __attribute__((packed)) sctp_reset_tsn_res_t;
+
+/* STREAM-RESET Extension Section 3.2.5 Add Streams
+ *
+ * This parameter is used by the sender to request that the peer add the
+ * requested number of streams to the association.
+ */
+typedef struct sctp_add_stream {
+	sctp_paramhdr_t	param_hdr;
+	__be32 request_seq;
+	__be16 num_streams;
+	__be16 reserved;
+} __attribute__((packed)) sctp_add_stream_t;
+
+typedef enum {
+	SCTP_STREAM_RESET_NOTHING	= cpu_to_be32(0x00),
+	SCTP_STREAM_RESET_PERFORMED	= cpu_to_be32(0x01),
+	SCTP_STREAM_RESET_DENIED	= cpu_to_be32(0x02),
+	SCTP_STREAM_RESET_WRONG_SSN	= cpu_to_be32(0x03),
+	SCTP_STREAM_RESET_TRY_LATER	= cpu_to_be32(0x04),
+	SCTP_STREAM_RESET_BAD_SEQNO	= cpu_to_be32(0x05),
+} sctp_stream_reset_result_t;
+
 #endif /* __LINUX_SCTP_H__ */
-- 
1.5.3.8





^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 1/6] sctp: implement protocol definitions for STREAM-RESET
  2009-03-09  3:14 [PATCH 1/6] sctp: implement protocol definitions for STREAM-RESET Wei Yongjun
@ 2009-03-09 18:43 ` Vlad Yasevich
  0 siblings, 0 replies; 2+ messages in thread
From: Vlad Yasevich @ 2009-03-09 18:43 UTC (permalink / raw)
  To: linux-sctp

Wei Yongjun wrote:
> This patch implement the protocol definitions for STREAM-RESET
> extension.
> 
> Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
> ---
>  include/linux/sctp.h |  101 ++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 101 insertions(+), 0 deletions(-)
> 
> diff --git a/include/linux/sctp.h b/include/linux/sctp.h
> index c2731bf..5a12eb0 100644
> --- a/include/linux/sctp.h
> +++ b/include/linux/sctp.h
> @@ -111,6 +111,9 @@ typedef enum {
>  	/* Use hex, as defined in ADDIP sec. 3.1 */
>  	SCTP_CID_ASCONF			= 0xC1,
>  	SCTP_CID_ASCONF_ACK		= 0x80,
> +
> +	/* STREAM-RESET Extension Section 3.1 */
> +	SCTP_CID_STREAM_RESET		= 0x82,
>  } sctp_cid_t; /* enum */
>  
>  
> @@ -202,6 +205,12 @@ typedef enum {
>  	SCTP_PARAM_SUCCESS_REPORT	= cpu_to_be16(0xc005),
>  	SCTP_PARAM_ADAPTATION_LAYER_IND = cpu_to_be16(0xc006),
>  
> +	/* STREAM-RESET Extension Section 3.2 */
> +	SCTP_PARAM_RESET_OUT_REQUEST	= cpu_to_be16(0x000d),
> +	SCTP_PARAM_RESET_IN_REQUEST	= cpu_to_be16(0x000e),
> +	SCTP_PARAM_RESET_TSN_REQUEST	= cpu_to_be16(0x000f),
> +	SCTP_PARAM_RESET_RESPONSE	= cpu_to_be16(0x0010),
> +	SCTP_PARAM_ADD_STREAM		= cpu_to_be16(0x0011),
>  } sctp_param_t; /* enum */
>  
>  
> @@ -707,4 +716,96 @@ typedef struct sctp_auth_chunk {
>  	sctp_authhdr_t auth_hdr;
>  } __attribute__((packed)) sctp_auth_chunk_t;
>  
> +/* STREAM-RESET Extension Section 3.1 STREAM RESET Chunk
> + *
> + * The chunk has the following format:
> + *      0                   1                   2                   3
> + *      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
> + *     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> + *     | Type = 0x82   |  Chunk Flags  |      Chunk Length             |
> + *     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> + *     |                    Stream Reset Parameter                     |
> + *     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> + *     |                    Stream Reset Parameter (optional)          |
> + *     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> + */
> +typedef struct sctp_strrst_chunk {
> +        sctp_chunkhdr_t chunk_hdr;
> +        __u8 params[0];
> +} __attribute__((packed)) sctp_strrst_chunk_t;
> +
> +/* STREAM-RESET Extension Section 3.2.1 Outgoing SSN Reset Request Parameter
> + *
> + * This parameter is used by the sender to request some outgoing streams
> + * to be reset.
> + */
> +typedef struct sctp_reset_out_req {
> +	sctp_paramhdr_t	param_hdr;
> +	__be32 request_seq;
> +	__be32 response_seq;
> +	__be32 send_reset_at_tsn;
> +	__be16 stream[0];
> +} __attribute__((packed)) sctp_reset_out_req_t;
> +
> +/* STREAM-RESET Extension Section 3.2.2 Incoming SSN Reset Request Parameter
> + *
> + * This parameter is used by the sender to request that the peer
> + * requests some of its outgoing streams to be reset.
> + */
> +typedef struct sctp_reset_in_req {
> +	sctp_paramhdr_t	param_hdr;
> +	__be32 request_seq;
> +	__be16 stream[0];
> +} __attribute__((packed)) sctp_reset_in_req_t;
> +
> +/* STREAM-RESET Extension Section 3.2.3 SSN/TSN Reset Request Parameter
> + *
> + * This parameter is used by the sender to request to reset the TSN and
> + * SSN numbering of all streams.
> + */
> +typedef struct sctp_reset_tsn_req {
> +	sctp_paramhdr_t	param_hdr;
> +	__be32 request_seq;
> +} __attribute__((packed)) sctp_reset_tsn_req_t;
> +
> +/* STREAM-RESET Extension Section 3.2.4 Stream Reset Response Parameter
> + *
> + * This parameter is used by the receiver of a stream reset request
> + * parameter to respond to the stream reset request.
> + */
> +typedef struct sctp_reset_res {
> +	sctp_paramhdr_t	param_hdr;
> +	__be32 response_seq;
> +	__be32 result;
> +} __attribute__((packed)) sctp_reset_res_t;
> +
> +typedef struct sctp_reset_tsn_res {
> +	sctp_paramhdr_t	param_hdr;
> +	__be32 response_seq;
> +	__be32 result;
> +	__be32 senders_next_tsn;
> +	__be32 receivers_next_tsn;
> +} __attribute__((packed)) sctp_reset_tsn_res_t;
> +
> +/* STREAM-RESET Extension Section 3.2.5 Add Streams
> + *
> + * This parameter is used by the sender to request that the peer add the
> + * requested number of streams to the association.
> + */
> +typedef struct sctp_add_stream {
> +	sctp_paramhdr_t	param_hdr;
> +	__be32 request_seq;
> +	__be16 num_streams;
> +	__be16 reserved;
> +} __attribute__((packed)) sctp_add_stream_t;
> +
> +typedef enum {
> +	SCTP_STREAM_RESET_NOTHING	= cpu_to_be32(0x00),
> +	SCTP_STREAM_RESET_PERFORMED	= cpu_to_be32(0x01),
> +	SCTP_STREAM_RESET_DENIED	= cpu_to_be32(0x02),
> +	SCTP_STREAM_RESET_WRONG_SSN	= cpu_to_be32(0x03),
> +	SCTP_STREAM_RESET_TRY_LATER	= cpu_to_be32(0x04),
> +	SCTP_STREAM_RESET_BAD_SEQNO	= cpu_to_be32(0x05),
> +} sctp_stream_reset_result_t;
> +

It a bit more logical to put these next to sctp_reset_res as these
indicate possible result values.

-vlad
>  #endif /* __LINUX_SCTP_H__ */


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-03-09 18:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-09  3:14 [PATCH 1/6] sctp: implement protocol definitions for STREAM-RESET Wei Yongjun
2009-03-09 18:43 ` Vlad Yasevich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.