From owner-freebsd-net@freebsd.org Wed Jul 12 14:44:57 2017 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 68FCFD99366; Wed, 12 Jul 2017 14:44:57 +0000 (UTC) (envelope-from tj@enoti.me) Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (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 41BDB64F35; Wed, 12 Jul 2017 14:44:56 +0000 (UTC) (envelope-from tj@enoti.me) Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 6768D20816; Wed, 12 Jul 2017 10:36:53 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute3.internal (MEProxy); Wed, 12 Jul 2017 10:36:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=fm1; bh=wwZcQDxcqLEPTTSwqOb1exWHVu4CMuyhcSJY/JYmA TE=; b=EEI7OTKiQ/xN47Gyo0MAryb4R4ObVESm5bMlrBOT526F0c1qslkJcHjWY T3E1ROV1WPtj9gez3fAaFBKTj+wcuFq+ecPh3DKCoqGOhZrK/9RXBjmp/Ky+H/GA at7UTBBTL/BuPH2EKWIdKDfmkJaQ88fAgigjib4UB2IORb9zDFTWv2fDJWZodwyN HXuqF5KBOT4rpCDf1VuxGDtR6ODnpmVTP91diBYyQWd2pf5/1IZ39lCqShkMUi0f tc9kbsLAuGUSusU5vVXsNe+bljWW7kwvxdQwaNahFbsIq9gewKYqhiyDHNnzJHD7 btq5dqTMXniLdmCnHT+CAFFTcNDaA== X-ME-Sender: X-Sasl-enc: h5mtpZvxTMI+SkkKmzY/I2V5Pbat8FpvsvV+kTVADDu5 1499870213 Received: from tom-desk.erg.abdn.ac.uk (tom-desk.erg.abdn.ac.uk [139.133.204.4]) by mail.messagingengine.com (Postfix) with ESMTPA id D25E12424F; Wed, 12 Jul 2017 10:36:52 -0400 (EDT) Date: Wed, 12 Jul 2017 15:36:50 +0100 From: tj To: freebsd-transport@freebsd.org, freebsd-net@freebsd.org Subject: [patch] Add support for TCP ABE draft-khademi-tcpm-alternativebackoff-ecn Message-ID: <20170712143649.GD25989@tom-desk.erg.abdn.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.8.3 (2017-05-23) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Jul 2017 14:44:57 -0000 This patch adds support Alternative Backoff ECN for TCP with the New Reno congestion control module. TCP ABE is described in https://tools.ietf.org/html/draft-khademi-tcpm-alternativebackoff-ecn-01 I have created a bug for this patch here: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220677 ABE updates the TCP sender-side reaction to congestion notification received via Explicit Congestion Notifiction (ECN) marks. From the Abstract in the draft: The updated method reduces FlightSize in Congestion Avoidance by a smaller amount than the TCP reaction to loss. The intention is to achieve good throughput when the queue at the bottleneck is smaller than the bandwidth-delay-product of the connection. This is more likely when an Active Queue Management (AQM) mechanism has used ECN to CE-mark a packet, than when a packet was lost. This patch adds 3 new sysctl values, one to control the use of ABE and two new cc controls under net.inet.tcp.cc.newreno to control the loss and ecn response factors. These controls are intended to aid future experimentation and research in this area. net.inet.tcp.abe: Toggles whether a transport uses the new abe conditions. Currently only implemented for New Reno. net.inet.tcp.cc.newreno.beta_ecn: The factor used to change FlightSize in response to an ecn mark, defaults to 0.8 as described in the draft. net.inet.tcp.cc.newreno.beta_loss: The factor used to change FlightSize in response to a loss event, defaults to 0.5 as described in the draft. This patch is a port of the same functionality implemented by Naeem Khademi and is available here: http://heim.ifi.uio.no/~naeemk/research/ABE/diff-0d38090e881d-newrenoVB-7jan15.txt - [tj]