X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ffib%2Ffib_entry_src_interpose.c;h=af650a92597920b3333a0c50b0ba4daa8c1e49fa;hb=6ede570259a91cd0c34b9faf9fec7e4ec8275200;hp=c362328f473de09f29ec991b81edd87246788195;hpb=2303cb181b51f63c909cd506125c1f832432865a;p=vpp.git diff --git a/src/vnet/fib/fib_entry_src_interpose.c b/src/vnet/fib/fib_entry_src_interpose.c index c362328f473..af650a92597 100644 --- a/src/vnet/fib/fib_entry_src_interpose.c +++ b/src/vnet/fib/fib_entry_src_interpose.c @@ -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); }