From patchwork Tue Dec 12 09:25:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Long X-Patchwork-Id: 847436 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="NZHP/Pl+"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ywvcH1FNnz9s9Y for ; Tue, 12 Dec 2017 20:27:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752511AbdLLJ1J (ORCPT ); Tue, 12 Dec 2017 04:27:09 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:34410 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752131AbdLLJ06 (ORCPT ); Tue, 12 Dec 2017 04:26:58 -0500 Received: by mail-pg0-f65.google.com with SMTP id j4so13037701pgp.1; Tue, 12 Dec 2017 01:26:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=bo74JFal5NQQxWby4wNEHMa7ccIHip01jIlKcukzjjA=; b=NZHP/Pl+wQOwYjOwlttvhjBxCTjBSZMb1JBROvknkQPDQBGrRSdmp+Ms8cxmg/eno3 bFY6T7wY7QOWnvtHgXLS+HqcYg/5K/f0tOppKc12PfflDEQKPtJhF+13a6J8cNN5970t 1USFEqPDuJvzRhlVpJapSoNFygohQ6JY2IdTBDZpr4ar+vzMvT4ZAt4Do0FcxndTG8b6 Wh1ZQ+xawkmUaQ2aeIXDgeDymSwgI6LRgyG1Qid3VnEm4VPxoOnfKhzD7ez0AKOsKgps B2RIN1oRaDzwKUSo/XtsVzFZl+rKGlAMJndXDqeOrzyK0FURcsvNZvkZqKW4RGXMo6X9 xjHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=bo74JFal5NQQxWby4wNEHMa7ccIHip01jIlKcukzjjA=; b=BM2NJVqdrO0k4ABHK0Fznv6Dw7s+I9SGaDwKkFcn3M/UVYLi1VFUyF+yRKHxUWglEn jvalv7R/+GOywvrnHwmj/buHEH5NErV4YBKucOCaW4s4v+Lw2auMUeh+N73z2slvHQfw Nj9KcOhOEnRtr3dcsotz5whLn81/rC/PSQGMWbpywyAVQylg002C7CSQDu8TlS58Kko0 ElWy1IP5tVhepOf+tf0xTEy4KwCFreByTr2hS4NXm6Hb1zcfP1sHSZuc1TDxO9w9M4lY is86UTGZhPHSjj581tLqdmGWm52BXpE67UM2O+vZCw+Y0XthrRUz8zI0UADQe5JGRfpt ipYg== X-Gm-Message-State: AKGB3mJuZpGKOg8yOqu4ukiZcUmqTXydx1fuw0Up98gFSSVqr5oGhwNt OT1qNgpo3MVNiY82F800aUIYLM13 X-Google-Smtp-Source: ACJfBoswoTukg1b2tw+Q5tj58MEsGO0h6eFdvS+2DYQcj+qJuC5gSIf+LcMbezmoBSA/sDV23rpsrA== X-Received: by 10.101.67.140 with SMTP id m12mr1442883pgp.51.1513070817823; Tue, 12 Dec 2017 01:26:57 -0800 (PST) Received: from localhost ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id f9sm22657941pgv.8.2017.12.12.01.26.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Dec 2017 01:26:57 -0800 (PST) From: Xin Long To: network dev , linux-sctp@vger.kernel.org Cc: Marcelo Ricardo Leitner , Neil Horman , davem@davemloft.net Subject: [PATCH net-next 6/8] sctp: add stream interleave support in stream scheduler Date: Tue, 12 Dec 2017 17:25:57 +0800 Message-Id: <7a112fb936709ef7047548f778a895a46c31a935.1513070662.git.lucien.xin@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: References: <9b8315277069d021d8a6b581b7304af624a45c61.1513070662.git.lucien.xin@gmail.com> <807b1707f79b11d5883d71ea771e98e8f7af3ead.1513070662.git.lucien.xin@gmail.com> <5bdf9baf00c367ec91c1e06986be77835be7e451.1513070662.git.lucien.xin@gmail.com> In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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 --- net/sctp/stream_sched.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/sctp/stream_sched.c b/net/sctp/stream_sched.c index d8c162a..f5fcd42 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, void sctp_sched_dequeue_done(struct sctp_outq *q, struct sctp_chunk *ch) { - if (!list_is_last(&ch->frag_list, &ch->msg->chunks)) { + if (!list_is_last(&ch->frag_list, &ch->msg->chunks) && + !q->asoc->intl_enable) { struct sctp_stream_out *sout; __u16 sid;