Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Nov 2013 20:01:26 +0100
From:      =?ISO-8859-1?Q?Ermal_Lu=E7i?= <eri@freebsd.org>
To:        Oleg Moskalenko <mom040267@gmail.com>
Cc:        freebsd-net <freebsd-net@freebsd.org>, Tim Kientzle <kientzle@freebsd.org>, "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>
Subject:   Re: [PATCH] SO_REUSEADDR and SO_REUSEPORT behaviour
Message-ID:  <CAPBZQG2Pb1683xevxwLwFzK03ea6GrMAPkuxqWAU16aFwCFDbQ@mail.gmail.com>
In-Reply-To: <CAPBZQG2Ou1btHZdsYYEh9-pz%2BgrgpPG3a6VPEkj8Ygguh=Q4VQ@mail.gmail.com>
References:  <CAPBZQG29BEJJ8BK=gn%2Bg_n5o7JSnPbsKQ-=3=6AkFOxzt%2B=wGQ@mail.gmail.com> <4053E074-EDC5-49AB-91A7-E50ABE36602E@freebsd.org> <CALDtMrKvwXW-ou8X7zsKx2ST=dKD7FqHvvnQtGo30znTWU%2BVQQ@mail.gmail.com> <CAPBZQG0=bcHyv7aZse=WKfjk5=6D2-%2B6EQHiAaDZqGtaodhMMA@mail.gmail.com> <CAPBZQG2Ou1btHZdsYYEh9-pz%2BgrgpPG3a6VPEkj8Ygguh=Q4VQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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 <eri@freebsd.org> wrote:

> 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 <eri@freebsd.org> 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/740d1d9f7b7bf9c9=
c021abb8197718d7a2d441c9
>> [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.htm=
l
>>
>>
>> On Fri, Nov 29, 2013 at 7:03 PM, Oleg Moskalenko <mom040267@gmail.com>wr=
ote:
>>
>>> 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 <kientzle@freebsd.org>wro=
te:
>>>
>>>>
>>>> On Nov 29, 2013, at 4:04 AM, Ermal Lu=E7i <eri@freebsd.org> wrote:
>>>>
>>>> > Hello,
>>>> >
>>>> > since SO_REUSEADDR and SO_REUSEPORT are supposed to allow two daemon=
s
>>>> 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 =93stil=
l
>>>> 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 th=
e
>>>> 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
>



--=20
Ermal



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPBZQG2Pb1683xevxwLwFzK03ea6GrMAPkuxqWAU16aFwCFDbQ>