]> git.puffer.fish Git - matthieu/frr.git/commitdiff
Zebra: Ensure correct route is used for redistribute delete.
authorvivek <vivek@cumulusnetworks.com>
Sun, 15 Nov 2015 15:36:50 +0000 (07:36 -0800)
committervivek <vivek@cumulusnetworks.com>
Sun, 15 Nov 2015 15:36:50 +0000 (07:36 -0800)
After the optimization introduced by patch zebra-redist-update-fix.patch
which implements "replace" semantics for redistributed routes instead of
a delete followed by add, the code was passing an incorrect route for
redistribute deletion in one case. This is mainly inconsequential as of
now as the deletion process primarily cares about only the destination, but
the code needs to be corrected and that is done here.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Fixes: zebra-redist-update-fix.patch
Ticket: CM-8112
Reviewed By: CCR-3760
Testing Done: Trivial

Note:
1. Needs changes after IPv6 route replace patches are included.
2. Imported from 2.5-br patch zebra-redist-delete-fix.patch

zebra/zebra_rib.c

index 78c6c831b5db006bf0ceb5d14b927618286a116e..481c9e0d33ae1408e91974fec457fddbf23a316c 100644 (file)
@@ -1702,8 +1702,9 @@ rib_process (struct route_node *rn)
               assert (fib);
               rib_uninstall_kernel (rn, fib);
             }
-         /* if "select", the earlier redist delete wouldn't have happened */
-         redistribute_delete(&rn->p, select);
+          /* if "select", the earlier redist delete wouldn't have happened */
+          if (fib)
+            redistribute_delete(&rn->p, fib);
        }
       UNSET_FLAG(select->flags, ZEBRA_FLAG_CHANGED);
     }