netfilter: ipvs: Add Maglev hashing scheduler
authorInju Song <inju.song@navercorp.com>
Tue, 27 Mar 2018 14:15:18 +0000 (23:15 +0900)
committerSimon Horman <horms@verge.net.au>
Mon, 9 Apr 2018 07:10:57 +0000 (10:10 +0300)
commit039f32e8cdea29b4d0680df7a83817b5ec4166e1
treec6597cb147bd607b28d471939bf3eb236158ef14
parenta2c09ac0fb6756d7085c359b6c020ef8b4205e0f
netfilter: ipvs: Add Maglev hashing scheduler

Implements the Google's Maglev hashing algorithm as a IPVS scheduler.

Basically it provides consistent hashing but offers some special
features about disruption and load balancing.

 1) minimal disruption: when the set of destinations changes,
    a connection will likely be sent to the same destination
    as it was before.

 2) load balancing: each destination will receive an almost
    equal number of connections.

Seel also for detail: [3.4 Consistent Hasing] in
https://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-eisenbud.pdf

Signed-off-by: Inju Song <inju.song@navercorp.com>
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
net/netfilter/ipvs/ip_vs_mh.c [new file with mode: 0644]