From /usr/include/asm-generic/socket.h
:
/* For setsockopt(2) */
#define SOL_SOCKET 1
#define SO_DEBUG 1
#define SO_REUSEADDR 2
#define SO_TYPE 3
#define SO_ERROR 4
#define SO_DONTROUTE 5
#define SO_BROADCAST 6
#define SO_SNDBUF 7
#define SO_RCVBUF 8
#define SO_SNDBUFFORCE 32
#define SO_RCVBUFFORCE 33
#define SO_KEEPALIVE 9
#define SO_OOBINLINE 10
#define SO_NO_CHECK 11
#define SO_PRIORITY 12
#define SO_LINGER 13
#define SO_BSDCOMPAT 14
/* To add :#define SO_REUSEPORT 15 */
Hmmm. Looks like it's undefined or on the last stages of being depreciated.
Here's what a post on KernelTrap says:
On Linux, SO_REUSEADDR provide most of what SO_REUSEPORT provides on BSD.
In any case, there is absolutely no point in creating multiple TCP listeners.
Multiple threads can accept() on the same listener - at the same time.
--
Rémi Denis-Courmont
http://www.remlab.net/