MLVPN
MLVPN copied to clipboard
A couple of bandwidth_upload-related fixes
It took me a while to figure out why configuring bandwidth_upload
is necessary and what would happen if one didn’t configure it, so here are a bunch of small improvements on the documentation.
I've set bandwidth_upload on both server and client side. On the client side it seems to have little effect, is that expected. In the 1.0 to 2.x upgrade.m it suggests: bandwidth_download must be replaced by bandwidth_upload on the server side and removed client side. Does that mean that on the client side you can't set bandwidth? Cheers Mark.
First, sorry for the late anwser.
mlvpn release has a bug in the roundrobind algorithm. The system calculates a weight based on "bandwidth_upload" of all the active links. The result is set as a float ( 1024Kbps on one link, 768Kbps on the other will make a wrr of like 1 on the first link and 0.75 on the other). The problem is that the system which choose what link to send a packet to does not handle properly the floating point values and uses integers.
As a result, a weigh of 0.75 is considered like a 1.0, so the balancing does not take into account the weight properly.
I'm working on a patch which will solves this problem.
bandwidth_download and bandwidth_upload was used the following way:
- If mode == "server": use bandwidth_download
- If mode == "client": use bandwidth_upload
It was not very clear in the configuration what this system was doing, so it was replaced by a single parameters on BOTH sides: "bandwidth_upload".
If your server is the one with big bandwidth, then, bandwidth_upload corresponds to the "client" download speed, and the other way around for the client upload speed.
You'll need to set it on both side corresponding to the expected maximum speed you want.
Btw thank you for the merge request, I'll need some more time to get back from holidays and work on thoses patches
Seems like that explains my issue.
Addressed your comments. Please take another look.