From owner-freebsd-current@FreeBSD.ORG Fri Nov 29 18:55:33 2013 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 022D824F; Fri, 29 Nov 2013 18:55:33 +0000 (UTC) Received: from mail-pb0-x236.google.com (mail-pb0-x236.google.com [IPv6:2607:f8b0:400e:c01::236]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BADCF193F; Fri, 29 Nov 2013 18:55:32 +0000 (UTC) Received: by mail-pb0-f54.google.com with SMTP id un15so14957353pbc.13 for ; Fri, 29 Nov 2013 10:55:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=HnYU9wbKF43dOnvnPzXcTN3/pwiKZrFFJ7h3JNRL/RM=; b=UY+ppfIe0zsLCwwBaMw19qzGHm7f++ox64n2mleygKZunNjuDmLPFLG02GdsXjh2rD S6e3GykseQNPDtG4co3ox3ZffpmFVwdsS9+4jGVcjDf/IklZcAzLPL9r9HtqDG0XheBw fdsQkbK6kKHgvvFOkv2YyoXuNqE6Q9yonhRlOqV7DLemlNpKT0qp9nrwk013Cwayq74f 3Sndk+XvJd8QWM3AXA2PYZCeYGAF/zmOcU50dK+TE56wtBEjBElyE0u5km9+tmYJ2ZcW 4SwLtBsAV66O/souwna0yzRr6OOxeWrtimCZpSK8W2Bp2ZX4T38dDWVvVkOrgwm09jKW 11Yw== MIME-Version: 1.0 X-Received: by 10.68.143.231 with SMTP id sh7mr7787198pbb.7.1385751332368; Fri, 29 Nov 2013 10:55:32 -0800 (PST) Sender: ermal.luci@gmail.com Received: by 10.70.4.163 with HTTP; Fri, 29 Nov 2013 10:55:32 -0800 (PST) In-Reply-To: References: <4053E074-EDC5-49AB-91A7-E50ABE36602E@freebsd.org> Date: Fri, 29 Nov 2013 19:55:32 +0100 X-Google-Sender-Auth: t-IdTvNBjHGHoGdxnJt1Fb1cqFc Message-ID: Subject: Re: [PATCH] SO_REUSEADDR and SO_REUSEPORT behaviour From: =?ISO-8859-1?Q?Ermal_Lu=E7i?= To: Oleg Moskalenko 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-current@freebsd.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Nov 2013 18:55:33 -0000 Also some discussions and improvements to it. http://unix.derkeiler.com/Mailing-Lists/FreeBSD/net/2013-09/msg00165.html 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 linux. > The only thing missing is the marketing behind it and i think and better > 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/740d1d9f7b7bf9c9c= 021abb8197718d7a2d441c9 > [2] > http://fxr.watson.org/fxr/source/netinet/in_pcbgroup.c?im=3Dbigexcerpts#L= 51 > [3] http://lists.freebsd.org/pipermail/svn-src-head/2011-June/028190.html > > > On Fri, Nov 29, 2013 at 7:03 PM, Oleg Moskalenko wro= te: > >> Tim, you are wrong. Read what is "multicast" definition, and read how UD= P >> and TCP sockets work in Linux 3.9+ kernels. >> >> Oleg . >> >> >> On Fri, Nov 29, 2013 at 9:59 AM, Tim Kientzle wrot= e: >> >>> >>> 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 th= e >>> remote end can acknowledge. >>> >>> * New server starts. >>> >>> * New server tries to open port but fails because that port is =93still= 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 > --=20 Ermal