summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXin Long <lucien.xin@gmail.com>2017-12-14 11:41:30 -0500
committerDavid S. Miller <davem@davemloft.net>2017-12-15 13:52:22 -0500
commitef4775e3402b7d45b06dddd79f860a5c4d5fc1cf (patch)
tree3ab5edd7dcf3749a9de87fa2bd169f6cf64c7e8b
parentde60fe9105431f504de9f8793b1da237a7d7f7ed (diff)
sctp: add stream interleave support in stream scheduler
As Marcelo said in the stream scheduler patch: Support for I-DATA chunks, also described in RFC8260, with user message interleaving is straightforward as it just requires the schedulers to probe for the feature and ignore datamsg boundaries when dequeueing. All needs to do is just to ignore datamsg boundaries when dequeueing. Signed-off-by: Xin Long <lucien.xin@gmail.com> Acked-by: Marcelo R. Leitner <marcelo.leitner@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/sctp/stream_sched.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sctp/stream_sched.c b/net/sctp/stream_sched.c
index d8c162a4089c..f5fcd425232a 100644
--- a/net/sctp/stream_sched.c
+++ b/net/sctp/stream_sched.c
@@ -242,7 +242,8 @@ int sctp_sched_get_value(struct sctp_association *asoc, __u16 sid,
242 242
243void sctp_sched_dequeue_done(struct sctp_outq *q, struct sctp_chunk *ch) 243void sctp_sched_dequeue_done(struct sctp_outq *q, struct sctp_chunk *ch)
244{ 244{
245 if (!list_is_last(&ch->frag_list, &ch->msg->chunks)) { 245 if (!list_is_last(&ch->frag_list, &ch->msg->chunks) &&
246 !q->asoc->intl_enable) {
246 struct sctp_stream_out *sout; 247 struct sctp_stream_out *sout;
247 __u16 sid; 248 __u16 sid;
248 249