LB crash when receving packets with right dst IP and wrong dst port VPP-1643 26/18826/7
authorHongjun Ni <hongjun.ni@intel.com>
Fri, 12 Apr 2019 13:40:46 +0000 (21:40 +0800)
committerDamjan Marion <dmarion@me.com>
Mon, 15 Apr 2019 18:19:48 +0000 (18:19 +0000)
Change-Id: Ifb322118349674b8ebee45d7644212ab5174a2ec
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
src/plugins/lb/lb.c

index fe7e545..2ddda61 100644 (file)
@@ -1375,6 +1375,7 @@ lb_init (vlib_main_t * vm)
   //Allocate and init default VIP.
   lbm->vips = 0;
   pool_get(lbm->vips, default_vip);
+  default_vip->new_flow_table_mask = 0;
   default_vip->prefix.ip6.as_u64[0] = 0xffffffffffffffffL;
   default_vip->prefix.ip6.as_u64[1] = 0xffffffffffffffffL;
   default_vip->protocol = ~0;
@@ -1418,6 +1419,12 @@ lb_init (vlib_main_t * vm)
   default_as->address.ip6.as_u64[0] = 0xffffffffffffffffL;
   default_as->address.ip6.as_u64[1] = 0xffffffffffffffffL;
 
+  /* Generate a valid flow table for default VIP */
+  default_vip->as_indexes = NULL;
+  lb_get_writer_lock();
+  lb_vip_update_new_flow_table(default_vip);
+  lb_put_writer_lock();
+
   lbm->vip_index_by_nodeport
     = hash_create_mem (0, sizeof(u16), sizeof (uword));