From owner-freebsd-net@FreeBSD.ORG Fri Nov 29 19:28:41 2013 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 91F60FDD; Fri, 29 Nov 2013 19:28:41 +0000 (UTC) Received: from mail-pd0-x232.google.com (mail-pd0-x232.google.com [IPv6:2607:f8b0:400e:c02::232]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 05D2D1AE0; Fri, 29 Nov 2013 19:28:40 +0000 (UTC) Received: by mail-pd0-f178.google.com with SMTP id y10so14256004pdj.37 for ; Fri, 29 Nov 2013 11:28:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=44ks8XXdj/fivY7M3h5HQ9O14DpxNcjibpDe19EbheU=; b=UqMeinS0XNMCUO+DOhkC0jlGGcQ/BcX5TXD1rUhIMRyik7G0F8ne/3v5UHg7IwMxpi ecB9KjTqoLL9a8bJ6UX25iL9UP306snl/JlY2k0fl2FtfEfAKjbPGZ9e8WtMnBcZXq6L g9BnKwSTwPGeyIqP/Mq8J1iuF1Lm9e+Ey9GJcC4Mb2/2egCNR5QzUs33/iDqg5Vq0zE3 c3ImjSVog0BeSdB7qjZGdaUnDHhr2lEt6dtIisEEC013ui6HpyAzwz634EuxRExXFFTK 2jU6bguPwm2T9+hvuwBipkBSjmBXLxyYDxF+SZCOIaBjHwAfZIR4kdrZqBP5Wg02iBpd d+Bg== MIME-Version: 1.0 X-Received: by 10.68.196.227 with SMTP id ip3mr17598930pbc.163.1385753320381; Fri, 29 Nov 2013 11:28:40 -0800 (PST) Received: by 10.68.147.131 with HTTP; Fri, 29 Nov 2013 11:28:40 -0800 (PST) In-Reply-To: References: <4053E074-EDC5-49AB-91A7-E50ABE36602E@freebsd.org> Date: Fri, 29 Nov 2013 11:28:40 -0800 Message-ID: Subject: Re: [PATCH] SO_REUSEADDR and SO_REUSEPORT behaviour From: Oleg Moskalenko To: =?ISO-8859-1?Q?Ermal_Lu=E7i?= Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.16 Cc: freebsd-net , Tim Kientzle , "freebsd-current@freebsd.org" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Nov 2013 19:28:41 -0000 It would be nice to have this feature compiled and supported in FreeBSD kernel by default. Thanks Oleg On Fri, Nov 29, 2013 at 11:01 AM, Ermal Lu=E7i wrote: > And some better marketing from Dragonfly about it > http://forum.nginx.org/read.php?29,241283,241283 :) > > > On Fri, Nov 29, 2013 at 7:55 PM, Ermal Lu=E7i wrote: > >> Also some discussions and improvements to it. >> >> http://unix.derkeiler.com/Mailing-Lists/FreeBSD/net/2013-09/msg00165.htm= l >> >> >> On Fri, Nov 29, 2013 at 7:42 PM, Ermal Lu=E7i wrote: >> >>> Well seems Dragonfly has some version of it already from commit [1]. >>> >>> In FreeBSD there is the framework for this with by defining PCBGROUP. >>> Also the explanation of it at [2] and [3]. >>> It can achieve approximately the same features of SO_RESUSEPORT of linu= x. >>> The only thing missing is the marketing behind it and i think and bette= r >>> RSS support. >>> By looking at dates the support is there before linux so all you guys >>> looking for it can experiment with it. >>> >>> What i was trying to accomplish was something else from performance >>> improvement and >>> maybe put a sysctl behind it to make it more acceptable.. >>> >>> [1] >>> http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/740d1d9f7b7bf9c= 9c021abb8197718d7a2d441c9 >>> [2] >>> http://fxr.watson.org/fxr/source/netinet/in_pcbgroup.c?im=3Dbigexcerpts= #L51 >>> [3] >>> http://lists.freebsd.org/pipermail/svn-src-head/2011-June/028190.html >>> >>> >>> On Fri, Nov 29, 2013 at 7:03 PM, Oleg Moskalenko w= rote: >>> >>>> Tim, you are wrong. Read what is "multicast" definition, and read how >>>> UDP and TCP sockets work in Linux 3.9+ kernels. >>>> >>>> Oleg . >>>> >>>> >>>> On Fri, Nov 29, 2013 at 9:59 AM, Tim Kientzle wr= ote: >>>> >>>>> >>>>> On Nov 29, 2013, at 4:04 AM, Ermal Lu=E7i wrote: >>>>> >>>>> > Hello, >>>>> > >>>>> > since SO_REUSEADDR and SO_REUSEPORT are supposed to allow two >>>>> daemons to >>>>> > share the same port and possibly listening ip =85 >>>>> >>>>> These flags are used with TCP-based servers. >>>>> >>>>> I=92ve used them to make software upgrades go more smoothly. >>>>> Without them, the following often happens: >>>>> >>>>> * Old server stops. In the process, all of its TCP connections are >>>>> closed. >>>>> >>>>> * Connections to old server remain in the TCP connection table until >>>>> the remote end can acknowledge. >>>>> >>>>> * New server starts. >>>>> >>>>> * New server tries to open port but fails because that port is =93sti= ll >>>>> in use=94 by connections in the TCP connection table. >>>>> >>>>> With these flags, the new server can open the port even though >>>>> it is =93still in use=94 by existing connections. >>>>> >>>>> >>>>> > This is not the case today. >>>>> > Only multicast sockets seem to have the behaviour of broadcasting >>>>> the data >>>>> > to all sockets sharing the same properties through these options! >>>>> >>>>> That is what multicast is for. >>>>> >>>>> If you want the same data sent to all listeners, then >>>>> that is multicast behavior and you should be using >>>>> a multicast socket. >>>>> >>>>> > The patch at [1] implements/corrects the behaviour for UDP sockets. >>>>> >>>>> You=92re trying to turn all UDP sockets with those options >>>>> into multicast sockets. >>>>> >>>>> If you want a multicast socket, you should ask for one. >>>>> >>>>> Tim >>>>> >>>>> _______________________________________________ >>>>> freebsd-net@freebsd.org mailing list >>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-net >>>>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org= " >>>>> >>>> >>>> >>> >>> >>> -- >>> Ermal >>> >> >> >> >> -- >> Ermal >> > > > > -- > Ermal >