@@ -4882,10 +4882,10 @@ dpif_netdev_set_config(struct dpif *dpif, const struct smap *other_config)
rebalance_intvl = smap_get_int(other_config, "pmd-auto-lb-rebal-interval",
ALB_REBALANCE_INTERVAL);
-
- /* Input is in min, convert it to msec. */
- rebalance_intvl =
- rebalance_intvl ? rebalance_intvl * MIN_TO_MSEC : MIN_TO_MSEC;
+ if (rebalance_intvl < ALB_REBALANCE_INTERVAL) {
+ rebalance_intvl = ALB_REBALANCE_INTERVAL;
+ }
+ rebalance_intvl *= MIN_TO_MSEC;
if (pmd_alb->rebalance_intvl != rebalance_intvl) {
pmd_alb->rebalance_intvl = rebalance_intvl;
@@ -197,6 +197,16 @@ get_log_next_line_num
AT_CHECK([ovs-vsctl set open_vswitch . other_config:pmd-auto-lb-rebal-interval="0"])
CHECK_ALB_PARAM([interval], [1 mins], [+$LINENUM])
+# Set new value
+get_log_next_line_num
+AT_CHECK([ovs-vsctl set open_vswitch . other_config:pmd-auto-lb-rebal-interval="100"])
+CHECK_ALB_PARAM([interval], [100 mins], [+$LINENUM])
+
+# Set below min value
+get_log_next_line_num
+AT_CHECK([ovs-vsctl set open_vswitch . other_config:pmd-auto-lb-rebal-interval="-0"])
+CHECK_ALB_PARAM([interval], [1 mins], [+$LINENUM])
+
# No check for above max as it is only a documented max value and not a hard limit
OVS_VSWITCHD_STOP
When we set a special value "-0" to pmd-auto-lb-rebal-interval, its value is 0 not the minimal value 1. e.g. ovs-vsctl set open_vswitch . other_config:pmd-auto-lb-rebal-interval="-0" 2022-04-20T11:31:44.987Z|00526|dpif_netdev|INFO|PMD auto load balance interval set to 0 mins So, fix pmd-auto-lb-rebal-interval's value to 1. Fixes: 5bf84282482a ("Adding support for PMD auto load balancing") Signed-off-by: Lin Huang <linhuang@ruijie.com.cn<mailto:linhuang@ruijie.com.cn>> --- lib/dpif-netdev.c | 8 ++++---- tests/alb.at | 10 ++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) -- 2.27.0