From owner-soc-status@FreeBSD.ORG Mon May 30 12:32:11 2011 Return-Path: Delivered-To: soc-status@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DA5AD1065676 for ; Mon, 30 May 2011 12:32:11 +0000 (UTC) (envelope-from nc3bhconc@gmail.com) Received: from mail-qw0-f54.google.com (mail-qw0-f54.google.com [209.85.216.54]) by mx1.freebsd.org (Postfix) with ESMTP id 9950C8FC12 for ; Mon, 30 May 2011 12:32:11 +0000 (UTC) Received: by qwc9 with SMTP id 9so2290801qwc.13 for ; Mon, 30 May 2011 05:32:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:from:date :x-google-sender-auth:message-id:subject:to:content-type; bh=BNKmmo/GIQkodCuQq2UgNktlGWfMbG058hhMtDkCUy0=; b=o4rDTkJyYP7JZYYItpjYAY/rh11dEzMx0iors1HDZaIZhteys4w3iV4GT9k+cAK+Wa AyYckzczUp2M7htWnzkFP9lh/FhzeEzkJ2mrm7+ZEJkDitRbOIoGKMoFt4VUeV8jKJNj //JHicSVv44Rxv/pBj4GMNfYJA801/CEyaDbQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:from:date:x-google-sender-auth:message-id :subject:to:content-type; b=hVk7RT3kPKF6/eGztofjukC95uhPCOrphheCH1c9HWMXDkemE/9gtKRNgO4LDI4VNI lVZxvNyBMSl2wZIZFu0EpWb0iufCsCdN5Noj27cry2i85MyWVNrydjGHblTpISEFFPcd o5mxaE3vSoTm9FByDxggyA5HfJPmX3Z5YOnOA= Received: by 10.224.136.5 with SMTP id p5mr3424019qat.127.1306756958106; Mon, 30 May 2011 05:02:38 -0700 (PDT) MIME-Version: 1.0 Sender: nc3bhconc@gmail.com Received: by 10.224.2.83 with HTTP; Mon, 30 May 2011 05:02:17 -0700 (PDT) From: Catalin Nicutar Date: Mon, 30 May 2011 15:02:17 +0300 X-Google-Sender-Auth: f_2h2dWmAyE6XgN1mrCZScZ9iKE Message-ID: To: soc-status@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: TCP UTO - Weekly Report 1 X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 May 2011 12:32:11 -0000 Hello! I am Catalin Nicutar and I am working as a GSoC student towards implementing TCP UTO for FreeBSD. * Short TCP UTO description UTO stands for User Timeout Option. This option is described in RFC5482. The concept of "User Timeout" is well specified in RFC793 as a general timeout used for various purposes (In particular TCP will tear down the connection if this timeout expires in any state). TCP UTO specifies that a peer should be allowed to advertise this value to provide a hint to the other side. RFC 793 specifies that a user should be allowed to specify a timeout for "Open" and "Send" (the last timeout specified overrides previous values). FreeBSD (and other Unix implementations) generally support an option called SO_SNDTIMEO. However, there is no provision for advertising this value. The ability to change the local value is useless if not advertised to the other peer since he will still close the connection after *his* timeout expires (in other words he has no idea of the User Timeout chosen by the other side). * Benefits TCP UTO augments the flexibility of a connection. It allows to specify relaxed timeouts (large periods of silence during which the peers might actually not be connected) or short timeouts to inform peers that the connection will pe torn down quickly in case they don't ACK data quickly enough. My goals for this week are: * Add sysctls to control the imposed upper and lower limits for the User Timeout of a connection * Add a sysctl to globally enable the advertising of the timeout (as required by the RFC) * Add socket options (setsockopt) for enabling the option, controling whether the local timeout will be changeable, etc. The Perforce space I will be working in is http://p4web.freebsd.org/@md=d&cd=//depot/projects/soc2011/&dw=u&c=MER@//depot/projects/soc2011/cnicutar_tcputo_8/?ac=83 This is all for report 1. If you have questions, suggestions or advices drop me an email to cnicutar@FreeBSD.org Catalin Nicutar