summaryrefslogtreecommitdiff
path: root/zebra/zebra_rib.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2024-10-25 21:56:14 -0400
committerDonald Sharp <sharpd@nvidia.com>2024-10-30 07:47:32 -0400
commit7ddbadd7f7f87781a73e3ab296a616cd75ca2529 (patch)
tree5d983eb5d2e61b73e67540d0bac302c7a2ba233a /zebra/zebra_rib.c
parentfb08f08ebbd157eed962ef750a0a1c1fabc80e8c (diff)
zebra: When installing a mroute, allow it to flow
Currently the mroute code was not allowing the mroute to be sent to the dataplane. This leaves us with a situation where the routes being installed where never being set as installed and additionally nht against the mrib would not work if the route came into existence after the nexthop tracking was asked for. Turns out all the pieces where there to let this work. Modify the code to pass it to the dplane and to send it back up as having worked. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'zebra/zebra_rib.c')
-rw-r--r--zebra/zebra_rib.c17
1 files changed, 0 insertions, 17 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index 9e937ba874..4c70013701 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -637,7 +637,6 @@ int zebra_rib_labeled_unicast(struct route_entry *re)
void rib_install_kernel(struct route_node *rn, struct route_entry *re,
struct route_entry *old)
{
- struct nexthop *nexthop;
struct rib_table_info *info = srcdest_rnode_table_info(rn);
struct zebra_vrf *zvrf = zebra_vrf_lookup_by_id(re->vrf_id);
const struct prefix *p, *src_p;
@@ -647,13 +646,6 @@ void rib_install_kernel(struct route_node *rn, struct route_entry *re,
srcdest_rnode_prefixes(rn, &p, &src_p);
- if (info->safi != SAFI_UNICAST) {
- for (ALL_NEXTHOPS(re->nhe->nhg, nexthop))
- SET_FLAG(nexthop->flags, NEXTHOP_FLAG_FIB);
- return;
- }
-
-
/*
* Install the resolved nexthop object first.
*/
@@ -720,17 +712,8 @@ void rib_install_kernel(struct route_node *rn, struct route_entry *re,
/* Uninstall the route from kernel. */
void rib_uninstall_kernel(struct route_node *rn, struct route_entry *re)
{
- struct nexthop *nexthop;
- struct rib_table_info *info = srcdest_rnode_table_info(rn);
struct zebra_vrf *zvrf = zebra_vrf_lookup_by_id(re->vrf_id);
- if (info->safi != SAFI_UNICAST) {
- UNSET_FLAG(re->status, ROUTE_ENTRY_INSTALLED);
- for (ALL_NEXTHOPS(re->nhe->nhg, nexthop))
- UNSET_FLAG(nexthop->flags, NEXTHOP_FLAG_FIB);
- return;
- }
-
/*
* Make sure we update the FPM any time we send new information to
* the dataplane.