libc/newlib/libc/sys/rtems/include/sys
sbruno 5c636abe89 Load balance sockets with new SO_REUSEPORT_LB option
This patch adds a new socket option, SO_REUSEPORT_LB, which allow multiple
programs or threads to bind to the same port and incoming connections will be
load balanced using a hash function.

Most of the code was copied from a similar patch for DragonflyBSD.

However, in DragonflyBSD, load balancing is a global on/off setting and can not
be set per socket. This patch allows for simultaneous use of both the current
SO_REUSEPORT and the new SO_REUSEPORT_LB options on the same system.

Required changes to structures
Globally change so_options from 16 to 32 bit value to allow for more options.
Add hashtable in pcbinfo to hold all SO_REUSEPORT_LB sockets.

Limitations
As DragonflyBSD, a load balance group is limited to 256 pcbs
(256 programs or threads sharing the same socket).

Submitted by:	Johannes Lundberg <johanlun0@gmail.com>
Sponsored by:	Limelight Networks
Differential Revision:	https://reviews.freebsd.org/D11003
2018-08-24 15:00:04 +02:00
..
_bitset.h Implement several enhancements to NUMA policies. 2018-08-24 15:00:03 +02:00
_cpuset.h sys/sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
_iovec.h sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
_pthreadtypes.h RTEMS: Fix _PTHREAD_MUTEX_INITIALIZER 2017-10-13 08:07:13 +02:00
_sockaddr_storage.h sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
_termios.h sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
_uio.h Move uio enums to sys/_uio.h. 2018-08-24 15:00:03 +02:00
bitset.h sys/sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
cpuset.h Fix some RTEMS CPUSET(9) macros 2017-06-07 15:46:19 +02:00
dirent.h rtems/.../dirent.h: Add alphasort() prototype 2018-03-13 09:11:47 -05:00
filio.h sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
ioccom.h Add _IOC_NEWLEN() and _IOC_NEWTYPE() macros. 2018-08-24 15:00:03 +02:00
ioctl.h sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
lock.h RTEMS: Add semaphore <sys/lock.h> functions 2017-11-30 07:00:45 +01:00
mman.h sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
param.h Increase MSIZE for RTEMS 2017-05-25 12:33:59 -04:00
socket.h Load balance sockets with new SO_REUSEPORT_LB option 2018-08-24 15:00:04 +02:00
sockio.h Allow to specify PCP on packets not belonging to any VLAN. 2018-08-24 15:00:03 +02:00
syslimits.h Move header files 2015-07-29 12:53:53 -07:00
syslog.h sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
ttycom.h sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
ttydefaults.h sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
uio.h Move uio enums to sys/_uio.h. 2018-08-24 15:00:03 +02:00
un.h sys: further adoption of SPDX licensing ID tags. 2018-08-24 15:00:03 +02:00
utime.h Move header files 2015-07-29 12:53:53 -07:00