summaryrefslogtreecommitdiffstats
path: root/src/plugins/lb/lb.c
diff options
context:
space:
mode:
authorYasuhiro Nakamura <yanakamu@yahoo-corp.jp>2020-02-17 13:03:38 +0900
committerOle Trøan <otroan@employees.org>2020-02-26 12:46:14 +0000
commit551775eaaa9c162c73e15690e4d7580935e9a70a (patch)
treea699adaefe08d2934bc833983b1d01ba70be932a /src/plugins/lb/lb.c
parent23a386b71b287bc95000a8980856c5dbe7cdaf5a (diff)
lb: Fix generating illegal key in per-port vip
VIP prefix index becomes always 0 when adding a VIP which is already registered different port, causing LB config crash. This change assigns the same VIP prefix index to the same VIP. Ticket: https://jira.fd.io/browse/VPP-1834 Type: fix Signed-off-by: Yasuhiro Nakamura <yanakamu@yahoo-corp.jp> Change-Id: Ib63b3e58db9bd85714d68cd1292aadd0c8580da8
Diffstat (limited to 'src/plugins/lb/lb.c')
-rw-r--r--src/plugins/lb/lb.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/plugins/lb/lb.c b/src/plugins/lb/lb.c
index 4dbf134cc4f..2fc38e219a1 100644
--- a/src/plugins/lb/lb.c
+++ b/src/plugins/lb/lb.c
@@ -906,6 +906,8 @@ static void lb_vip_add_adjacency(lb_main_t *lbm, lb_vip_t *vip,
if (!lb_vip_port_find_diff_port(&(vip->prefix), vip->plen,
vip->protocol, vip->port, &vip_idx))
{
+ lb_vip_t *exists_vip = lb_vip_get_by_index(vip_idx);
+ *vip_prefix_index = exists_vip->vip_prefix_index;
return;
}