-
Notifications
You must be signed in to change notification settings - Fork 0
Description
When an endpoints wants to use the user message interleaving and activates it by calling:
+0.0 setsockopt(3, IPPROTO_SCTP, SCTP_FRAGMENT_INTERLEAVE, [2], 4) = 0
+0.0 setsockopt(3, IPPROTO_SCTP, SCTP_INTERLEAVING_SUPPORTED, {assoc_value=1}, 8) = 0
after receiving an INIT-Chunk like:
INIT[flgs=0, tag=1, a_rwnd=1500, os=16, is=16, tsn=1, FORWARD_TSN_SUPPORTED[], SUPPORTED_EXTENSIONS[types=[FORWARD_TSN, I_DATA]]]
and completing the handshake, it uses the I-DATA-Chunk, which should be acceptable, because of section 2.2.1. of sctp-ndata internet draft:
A sender MUST NOT send an I-DATA chunk unless both peers have
indicated its support of the I-DATA chunk type within the Supported
Extensions Parameter as defined in [RFC5061]. If I-DATA support has
been negotiated on an association, I-DATA chunks MUST be used for all
user messages and DATA-chunk MUST NOT be used. If I-DATA support has
not been negotiated on an association, DATA chunks MUST be used for
all user messages and I-DATA chunks MUST NOT be used.
If one outstanding user message is abandoned it uses the I-FORWARD-TSN-Chunk that the other endpoint does not support. It should use the FORWARD-TSN-Chunk i assume. See the following test-case for more details: