mirror of
https://gitlab.com/shorewall/code.git
synced 2025-06-20 09:47:51 +02:00
Correct the load distribution algorithm
Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
parent
f3d32e0023
commit
602315938c
@ -604,15 +604,16 @@ interface_enabled() {
|
|||||||
|
|
||||||
distribute_load() {
|
distribute_load() {
|
||||||
local interface
|
local interface
|
||||||
local totalload
|
local currentload
|
||||||
local load
|
local load
|
||||||
local mark
|
local mark
|
||||||
local maxload
|
local totalload
|
||||||
|
local temp
|
||||||
|
|
||||||
maxload=$1
|
totalload=$1
|
||||||
shift
|
shift
|
||||||
|
|
||||||
totalload=0
|
currentload=0
|
||||||
|
|
||||||
for interface in $@; do
|
for interface in $@; do
|
||||||
if interface_enabled $interface; then
|
if interface_enabled $interface; then
|
||||||
@ -620,29 +621,31 @@ distribute_load() {
|
|||||||
eval ${interface}_load=$load
|
eval ${interface}_load=$load
|
||||||
mark=$(cat ${VARDIR}/${interface}_mark)
|
mark=$(cat ${VARDIR}/${interface}_mark)
|
||||||
eval ${interface}_mark=$mark
|
eval ${interface}_mark=$mark
|
||||||
totalload=$( bc <<EOF
|
currentload=$( bc <<EOF
|
||||||
scale=8
|
scale=8
|
||||||
$totalload + $load
|
$currentload + $load
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ $totalload ]; then
|
if [ $currentload ]; then
|
||||||
for interface in $@; do
|
for interface in $@; do
|
||||||
qt $g_tool -t mangle -F ~$interface
|
qt $g_tool -t mangle -F ~$interface
|
||||||
|
|
||||||
eval load=\$${interface}_load
|
eval load=\$${interface}_load
|
||||||
eval mark=\$${interface}_mark
|
eval mark=\$${interface}_mark
|
||||||
|
|
||||||
if [ -n "$load" ]; then
|
if [ -n "$load" ]; then
|
||||||
|
temp=$load
|
||||||
load=$(bc <<EOF
|
load=$(bc <<EOF
|
||||||
scale=8
|
scale=8
|
||||||
( $load / $totalload ) * $maxload
|
( $load / $currentload ) * $totalload
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
totalload=$(bc <<EOF
|
currentload=$(bc <<EOF
|
||||||
scale=8
|
scale=8
|
||||||
$totalload - $load
|
$currentload - $temp
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user