haproxy/include/common
Willy Tarreau 16401e8162 [MEDIUM] add support for binding to source port ranges during connect
Some users are already hitting the 64k source port limit when
connecting to servers. The system usually maintains a list of
unused source ports, regardless of the source IP they're bound
to. So in order to go beyond the 64k concurrent connections, we
have to manage the source ip:port lists ourselves.

The solution consists in assigning a source port range to each
server and use a free port in that range when connecting to that
server, either for a proxied connection or for a health check.
The port must then be put back into the server's range when the
connection is closed.

This mechanism is used only when a port range is specified on
a server. It makes it possible to reach 64k connections per
server, possibly all from the same IP address. Right now it
should be more than enough even for huge deployments.
(cherry picked from commit c6f4ce8fc4)
2009-07-14 20:13:26 +02:00
..
appsession.h [MEDIUM] minor update to the task api: let the scheduler queue itself 2009-03-08 09:38:41 +01:00
base64.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00
cfgparse.h [MINOR] improve reporting of misplaced acl/reqxxx rules 2009-03-31 10:49:21 +02:00
compat.h [CLEANUP] remove dependency on obsolete INTBITS macro 2008-07-16 10:30:44 +02:00
config.h [OPTIM] force inlining of large functions with gcc >= 3 2008-11-02 10:19:08 +01:00
debug.h [MINOR] term_trace: add better instrumentations to trace the code 2008-08-16 14:55:08 +02:00
defaults.h [MINOR] add basic signal handling functions 2009-05-10 09:24:23 +02:00
eb32tree.h [MINOR] update ebtree to version 4.1 2009-03-21 10:23:36 +01:00
eb64tree.h [MINOR] update ebtree to version 4.1 2009-03-21 10:23:36 +01:00
ebpttree.h [MINOR] update ebtree to version 4.1 2009-03-21 10:23:36 +01:00
ebtree.h [OPTIM] force inlining of large functions with gcc >= 3 2008-11-02 10:19:08 +01:00
epoll.h [BUILD] declare epoll_* as static when using our own functions 2007-04-15 23:57:41 +02:00
errors.h [MINOR] add an options field to the listeners 2007-11-04 22:42:48 +01:00
memory.h [MEDIUM] memory: update pool_free2() to support NULL pointers 2008-08-03 20:48:50 +02:00
mini-clist.h [MINOR] add a new back-reference type : struct bref 2008-12-07 20:00:15 +01:00
rbtree.h [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.h [MAJOR] merged the 'setbe' actions to switch the backend on a regex 2006-12-17 23:15:24 +01:00
sessionhash.h [MAJOR] remove files distributed under an obscure license 2007-09-09 21:56:53 +02:00
standard.h [MEDIUM] add support for binding to source port ranges during connect 2009-07-14 20:13:26 +02:00
template.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00
ticks.h [MEDIUM] scheduler: get rid of the 4 trees thanks and use ebtree v4.1 2009-03-21 10:25:14 +01:00
time.h [MINOR] add curr_sec_ms and curr_sec_ms_scaled for current second. 2009-03-05 16:56:16 +01:00
tools.h [MINOR] forgot to include common/tools.h in the archive. 2006-12-22 14:40:41 +01:00
uri_auth.h [MEDIUM] Fix memory freeing at exit, part 2 2008-06-07 11:06:14 +02:00
version.h [BUILD] centralize version and date into one file for each 2007-09-09 23:31:11 +02:00