MTRIE Optimisations 2
[vpp.git] / src / vnet / dpo / load_balance.c
index e9fb5d9..6b0eda0 100644 (file)
@@ -827,8 +827,19 @@ const static char* const * const load_balance_nodes[DPO_PROTO_NUM] =
 void
 load_balance_module_init (void)
 {
+    index_t lbi;
+
     dpo_register(DPO_LOAD_BALANCE, &lb_vft, load_balance_nodes);
 
+    /*
+     * Special LB with index zero. we need to define this since the v4 mtrie
+     * assumes an index of 0 implies the ply is empty. therefore all 'real'
+     * adjs need a non-zero index.
+     * This should never be used, but just in case, stack it on a drop.
+     */
+    lbi = load_balance_create(1, DPO_PROTO_IP4, 0);
+    load_balance_set_bucket(lbi, 0, drop_dpo_get(DPO_PROTO_IP4));
+
     load_balance_map_module_init();
 }