Re: SO_REUSEPORT

From: Alexander Clouter
Date: Wed Jun 23 2010 - 04:08:30 EST


Hi,

Tim Prepscius <timprepscius@xxxxxxxxx> wrote:
>
> Is SO_REUSEPORT available 2.6.ish - (or any version)?
> I've been searching for a conclusive answer to this question and can't
> find it.
>
That will be a no then:
----
alex@berk:~$ grep SO_REUSEPORT -r /usr/src/linux-2.6-stable/include/
/usr/src/linux-2.6-stable/include/asm-generic/socket.h:/* To add :#define SO_REUSEPORT 15 */
----

> (yes I know of SO_REUSEADDR, and I know the difference between this
> and *PORT, and yes I know that I *definitely* need SO_REUSEPORT, no,
> I'm unconcerned this may/may not be part of a "standard," yes I know
> it is implemented differently on different systems, yes I know there
> may be security problems, but no, I don't care about this.)
>
This really sounds like the sort of thing (for TCP/SCTP) where the
'master' process would maintain the listening socket and upon accept()
you would fork() or pass the file descriptor off to a thread. This
would make SO_REUSEPORT un-necessary and also your code would be
portable.

If you are doing things with UDP (or another datagram-esque stream) then
your master listener could pass off the incoming packets to
threads/processes trivially.

Of course this depends on what you are doing, but my opinion is that the
functionality has been unneeded so far by people in the kernel, so *I*
must be doing something wrong ;)

Cheers

--
Alexander Clouter
.sigmonster says: "Every man has his price. Mine is $3.95."

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/