summaryrefslogtreecommitdiff
path: root/zebra/rt_socket.c
diff options
context:
space:
mode:
authorJafar Al-Gharaibeh <jafar@atcorp.com>2024-10-28 16:20:20 -0500
committerGitHub <noreply@github.com>2024-10-28 16:20:20 -0500
commit2945258c7ce1f08472ac45117c16ca1591af6d03 (patch)
tree0a15c84a931f5b5a84e19fd338df7c4e4f1f39f0 /zebra/rt_socket.c
parentea0b8a0364bdb37679064b680347d7276c03ca06 (diff)
parent3bff65abc75e952a15b98666e7271189ac28a2bc (diff)
Merge pull request #17254 from donaldsharp/mrib_nht_wonky
Mrib nht wonky
Diffstat (limited to 'zebra/rt_socket.c')
-rw-r--r--zebra/rt_socket.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/zebra/rt_socket.c b/zebra/rt_socket.c
index 0bfcd518ca..4444eda94b 100644
--- a/zebra/rt_socket.c
+++ b/zebra/rt_socket.c
@@ -317,12 +317,12 @@ enum zebra_dplane_result kernel_route_update(struct zebra_dplane_ctx *ctx)
frr_with_privs(&zserv_privs) {
if (dplane_ctx_get_op(ctx) == DPLANE_OP_ROUTE_DELETE) {
- if (!RSYSTEM_ROUTE(type))
+ if (!RSYSTEM_ROUTE(type) && dplane_ctx_get_safi(ctx) != SAFI_MULTICAST)
kernel_rtm(RTM_DELETE, dplane_ctx_get_dest(ctx),
dplane_ctx_get_ng(ctx),
dplane_ctx_get_metric(ctx));
} else if (dplane_ctx_get_op(ctx) == DPLANE_OP_ROUTE_INSTALL) {
- if (!RSYSTEM_ROUTE(type))
+ if (!RSYSTEM_ROUTE(type) && dplane_ctx_get_safi(ctx) != SAFI_MULTICAST)
kernel_rtm(RTM_ADD, dplane_ctx_get_dest(ctx),
dplane_ctx_get_ng(ctx),
dplane_ctx_get_metric(ctx));
@@ -330,12 +330,12 @@ enum zebra_dplane_result kernel_route_update(struct zebra_dplane_ctx *ctx)
/* Must do delete and add separately -
* no update available
*/
- if (!RSYSTEM_ROUTE(old_type))
+ if (!RSYSTEM_ROUTE(old_type) && dplane_ctx_get_safi(ctx) != SAFI_MULTICAST)
kernel_rtm(RTM_DELETE, dplane_ctx_get_dest(ctx),
dplane_ctx_get_old_ng(ctx),
dplane_ctx_get_old_metric(ctx));
- if (!RSYSTEM_ROUTE(type))
+ if (!RSYSTEM_ROUTE(type) && dplane_ctx_get_safi(ctx) != SAFI_MULTICAST)
kernel_rtm(RTM_ADD, dplane_ctx_get_dest(ctx),
dplane_ctx_get_ng(ctx),
dplane_ctx_get_metric(ctx));