ipvs: SH fallback and L4 hashing
authorAlexander Frolkin <avf@eldamar.org.uk>
Wed, 19 Jun 2013 09:54:25 +0000 (10:54 +0100)
committerSimon Horman <horms@verge.net.au>
Wed, 26 Jun 2013 09:01:46 +0000 (18:01 +0900)
commiteba3b5a78799d21dea05118b294524958f0ab592
tree2f84838b89f17c7b10cee8fa618f232c64e9fc1d
parentacaac5d8bbedf6bd96f53960780942e1ad90d70e
ipvs: SH fallback and L4 hashing

By default the SH scheduler rejects connections that are hashed onto a
realserver of weight 0.  This patch adds a flag to make SH choose a
different realserver in this case, instead of rejecting the connection.

The patch also adds a flag to make SH include the source port (TCP, UDP,
SCTP) in the hash as well as the source address.  This basically allows
for deterministic round-robin load balancing (i.e., where any director
in a cluster of directors with identical config will send the same
packet the same way).

The flags are service flags (IP_VS_SVC_F_SCHED*) so that these options
can be set per service.  They are set using a new option to ipvsadm.

Signed-off-by: Alexander Frolkin <avf@eldamar.org.uk>
Acked-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
include/uapi/linux/ip_vs.h
net/netfilter/ipvs/ip_vs_sh.c