fib: Fix some more realloc errors
[vpp.git] / src / vnet / fib / fib_entry_src_interpose.c
index c362328..af650a9 100644 (file)
@@ -61,17 +61,17 @@ fib_entry_src_rr_get_next_best (const fib_entry_src_t *src,
         /*
          * skip to the next best source after this one
          */
-        if (source <= src->fes_src)
+        switch (fib_source_cmp(source, src->fes_src))
         {
+        case FIB_SOURCE_CMP_BETTER:
+        case FIB_SOURCE_CMP_EQUAL:
             continue;
-        }
-        else
-        {
+        case FIB_SOURCE_CMP_WORSE:
             best_src = next_src;
-            break;
+            goto out;
         }
     }));
-
+ out:
     return (best_src);
 }
 
@@ -187,7 +187,7 @@ fib_entry_src_interpose_deactivate (fib_entry_src_t *src,
     if (FIB_NODE_INDEX_INVALID != src->u.interpose.fesi_cover)
     {
         /*
-         * remove the depednecy on the covering entry, if that's
+         * remove the dependency on the covering entry, if that's
          * what was contributing the path-list
          */
         cover = fib_entry_get(src->u.interpose.fesi_cover);
@@ -207,7 +207,7 @@ fib_entry_src_interpose_deactivate (fib_entry_src_t *src,
              * there is another source for this entry. activate it so it
              * can provide forwarding
              */
-            FIB_ENTRY_SRC_VFT_INVOKE(best_src, fesv_deactivate,
+            FIB_ENTRY_SRC_VFT_INVOKE(fib_entry, best_src, fesv_deactivate,
                                      (best_src, fib_entry));
         }
     }
@@ -245,7 +245,7 @@ fib_entry_src_interpose_cover_change (fib_entry_src_t *src,
 
     /*
      * this function is called when this entry's cover has a more specific
-     * entry inserted benaeth it. That does not necessarily mean that this
+     * entry inserted beneath it. That does not necessarily mean that this
      * entry is covered by the new prefix. check that
      */
     if (src->u.interpose.fesi_cover !=
@@ -366,5 +366,6 @@ const static fib_entry_src_vft_t interpose_src_vft = {
 void
 fib_entry_src_interpose_register (void)
 {
-    fib_entry_src_register(FIB_SOURCE_INTERPOSE, &interpose_src_vft);
+    fib_entry_src_behaviour_register(FIB_SOURCE_BH_INTERPOSE,
+                                     &interpose_src_vft);
 }