summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2017-12-15 21:52:23 +0300
committerDavid S. Miller <davem@davemloft.net>2017-12-15 21:52:46 +0300
commitb3b87077394edda8bc5a9e95b589cc8fd3b3ea03 (patch)
tree681941be3da0be7674afd00bf468dd588410cf1b /include/linux
parent024778095aa340960fdfd7f7db293290454fbce2 (diff)
parent463118c34a3585768fa9715a2faca2b3697b1cf5 (diff)
downloadlinux-b3b87077394edda8bc5a9e95b589cc8fd3b3ea03.tar.xz
Merge branch 'sctp-stream-interleave'
Xin Long says: ==================== sctp: Implement Stream Interleave: Interaction with Other SCTP Extensions Stream Interleave would be implemented in two Parts: 1. The I-DATA Chunk Supporting User Message Interleaving 2. Interaction with Other SCTP Extensions Overview in section 2.3 of RFC8260 for Part 2: The usage of the I-DATA chunk might interfere with other SCTP extensions. Future SCTP extensions MUST describe if and how they interfere with the usage of I-DATA chunks. For the SCTP extensions already defined when this document was published, the details are given in the following subsections. As the 2nd part of Stream Interleave Implementation, this patchset mostly adds the support for SCTP Partial Reliability Extension with I-FORWARD-TSN chunk. Then adjusts stream scheduler and stream reconfig to make them work properly with I-DATA chunks. In the last patch, all stream interleave codes will be enabled by adding sysctl to allow users to use this feature. v1 -> v2: - removed the intl_enable check from sctp_chunk_event_lookup, as Marcelo's suggestion. - fixed a typo in changelog. ==================== Acked-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/sctp.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/sctp.h b/include/linux/sctp.h
index 38e2cf66195f..b36c76635f18 100644
--- a/include/linux/sctp.h
+++ b/include/linux/sctp.h
@@ -110,6 +110,7 @@ enum sctp_cid {
/* Use hex, as defined in ADDIP sec. 3.1 */
SCTP_CID_ASCONF = 0xC1,
+ SCTP_CID_I_FWD_TSN = 0xC2,
SCTP_CID_ASCONF_ACK = 0x80,
SCTP_CID_RECONF = 0x82,
}; /* enum */
@@ -616,6 +617,22 @@ struct sctp_fwdtsn_chunk {
struct sctp_fwdtsn_hdr fwdtsn_hdr;
};
+struct sctp_ifwdtsn_skip {
+ __be16 stream;
+ __u8 reserved;
+ __u8 flags;
+ __be32 mid;
+};
+
+struct sctp_ifwdtsn_hdr {
+ __be32 new_cum_tsn;
+ struct sctp_ifwdtsn_skip skip[0];
+};
+
+struct sctp_ifwdtsn_chunk {
+ struct sctp_chunkhdr chunk_hdr;
+ struct sctp_ifwdtsn_hdr fwdtsn_hdr;
+};
/* ADDIP
* Section 3.1.1 Address Configuration Change Chunk (ASCONF)