From owner-svn-src-projects@FreeBSD.ORG Mon Jan 12 18:14:24 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 06873468; Mon, 12 Jan 2015 18:14:24 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E65D520D; Mon, 12 Jan 2015 18:14:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t0CIENsE048359; Mon, 12 Jan 2015 18:14:23 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t0CIENHu048357; Mon, 12 Jan 2015 18:14:23 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201501121814.t0CIENHu048357@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 12 Jan 2015 18:14:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r277079 - in projects/ifnet: share/man/man4 sys/netinet X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jan 2015 18:14:24 -0000 Author: glebius Date: Mon Jan 12 18:14:22 2015 New Revision: 277079 URL: https://svnweb.freebsd.org/changeset/base/277079 Log: Merge head. Modified: projects/ifnet/share/man/man4/cc_dctcp.4 projects/ifnet/sys/netinet/sctp_output.c Directory Properties: projects/ifnet/ (props changed) projects/ifnet/share/ (props changed) projects/ifnet/share/man/man4/ (props changed) projects/ifnet/sys/ (props changed) Modified: projects/ifnet/share/man/man4/cc_dctcp.4 ============================================================================== --- projects/ifnet/share/man/man4/cc_dctcp.4 Mon Jan 12 18:13:38 2015 (r277078) +++ projects/ifnet/share/man/man4/cc_dctcp.4 Mon Jan 12 18:14:22 2015 (r277079) @@ -40,18 +40,23 @@ throughput and minimise latency in data proportion of Explicit Congestion Notification (ECN) marks received from capable hardware as a congestion signal. .Pp -DCTCP uses fraction of ECN marked packets to update congestion window. The -window reduction ratio is always <= 1/2. Only when all of the packets are +DCTCP uses fraction of ECN marked packets to update congestion window. +The window reduction ratio is always <= 1/2. +Only when all of the packets are marked, congestion window is halved. .Pp In order to keep the accuracy of the ECN marked fraction, a DCTCP receiver mirrors back incoming (or missing) CE marks by setting (or clearing) ECE marks. This feedback methodology is also adopted when the receiver uses delayed ACK. .Pp -FreeBSD DCTCP implementation includes two minor modifications for the one-sided -deployment. Considering the situation that DCTCP is used as sender and classic +The +.Fx +DCTCP implementation includes two minor modifications for the one-sided +deployment. +Considering the situation that DCTCP is used as sender and classic ECN is used as receiver, DCTCP sets the CWR flag as the reaction to the ECE -flag. In addition, when classic ECN is used as sender and DCTCP is used as +flag. +In addition, when classic ECN is used as sender and DCTCP is used as receiver, DCTCP avoids to mirror back ACKs only when the CWR flag is set in the incoming packet. .Pp @@ -75,6 +80,7 @@ Default is 16. .It Va slowstart A trigger to halve congestion window after slow start. Default does nothing to halve window. +.El .Sh SEE ALSO .Xr cc_chd 4 , .Xr cc_cubic 4 , @@ -120,8 +126,8 @@ University, Japan. The .Nm congestion control module and this manual page were written by -.An Midori Kato katoon@sfc.wide.ad.jp +.An Midori Kato Mt katoon@sfc.wide.ad.jp and -.An Lars Eggert lars@netapp.com +.An Lars Eggert Mt lars@netapp.com with help and modifications from -.An Hiren Panchasara hiren@FreeBSD.org +.An Hiren Panchasara Mt hiren@FreeBSD.org Modified: projects/ifnet/sys/netinet/sctp_output.c ============================================================================== --- projects/ifnet/sys/netinet/sctp_output.c Mon Jan 12 18:13:38 2015 (r277078) +++ projects/ifnet/sys/netinet/sctp_output.c Mon Jan 12 18:14:22 2015 (r277079) @@ -7958,22 +7958,6 @@ again_one_more_time: } else { skip_data_for_this_net = 0; } - if ((net->ro.ro_rt) && (net->ro.ro_rt->rt_ifp)) { - /* - * if we have a route and an ifp check to see if we - * have room to send to this guy - */ - struct ifnet *ifp; - - ifp = net->ro.ro_rt->rt_ifp; - if ((ifp->if_snd.ifq_len + 2) >= ifp->if_snd.ifq_maxlen) { - SCTP_STAT_INCR(sctps_ifnomemqueued); - if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LOG_MAXBURST_ENABLE) { - sctp_log_maxburst(stcb, net, ifp->if_snd.ifq_len, ifp->if_snd.ifq_maxlen, SCTP_MAX_IFP_APPLIED); - } - continue; - } - } switch (((struct sockaddr *)&net->ro._l_addr)->sa_family) { #ifdef INET case AF_INET: