Where does the existing Neutron LBaaS balancing methods reside in the code?

I'm exploring the possibilities to add more sophisticated load balancing methods to Neutron LBaas. I went through the code in neutron and neutron-lbaas repositories, but I was not able to find the actual implementation of existing load balancing methods (like round robin). Could someone point me to it please?

I'm trying to determine how much information about current state of the pool is available for the load balancer (resources, current load, etc.). I will welcome any insight into this matter to.

1 answer

1) Currently Neutron LbaaS make use of HAProxy of Linux ( http://www.haproxy.org/ ) and Neutron Lbaas creates namespace and a configuration file used for HAProxy.

2) HAProxy process will be started or restarted whenever there is any changes made in the pool/members specific to particular Neutron LoadBalance;

3) Algorithm specific to RoundRobin, Least connection will come in HAPorxy only; Neutron LbaaS specifies that in the HAPorxy configuration.

4) You can view the HAProxy configuration file under /opt/stack/neutron/neutron/lbaas/[lbass-namespace]/conf

5) To get the state of the LbaaS pool; we can make use of HAProxy sock created in the above specified directory with file name 'sock' by running the command [echo "show stat" | nc -U /opt/stack/neutron/neutron/lbaas/[lbass-namespace]/sock]