diff options
Diffstat (limited to 'zebra/zebra_dplane.c')
| -rw-r--r-- | zebra/zebra_dplane.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c index 04aca1ac7e..dea51ded1b 100644 --- a/zebra/zebra_dplane.c +++ b/zebra/zebra_dplane.c @@ -1534,8 +1534,13 @@ static int dplane_ctx_route_init(struct zebra_dplane_ctx *ctx, /* * Check if the nhe is installed/queued before doing anything * with this route. + * + * If its a delete we only use the prefix anyway, so this only + * matters for INSTALL/UPDATE. */ - if (!CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_INSTALLED) + if (((op == DPLANE_OP_ROUTE_INSTALL) + || (op == DPLANE_OP_ROUTE_UPDATE)) + && !CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_INSTALLED) && !CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_QUEUED)) { ret = ENOENT; goto done; |
