summaryrefslogtreecommitdiff
path: root/ripd/rip_nb_config.c
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2023-05-04 09:13:07 +0300
committerDonatas Abraitis <donatas@opensourcerouting.org>2023-05-04 15:43:02 +0300
commit75fce4645a7cf0a93ef0109d69365f51b84bc47c (patch)
tree3827f8977faca9c92dcb3513bceb43a7a264b392 /ripd/rip_nb_config.c
parent9c011d7eafc205301c1e7a0249a280fd4205ac37 (diff)
ripd: Implement `allow-ecmp X` command
Allow setting an arbitrary number of paths to be installed instead of ALL. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Diffstat (limited to 'ripd/rip_nb_config.c')
-rw-r--r--ripd/rip_nb_config.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ripd/rip_nb_config.c b/ripd/rip_nb_config.c
index 8fe34705ca..19578d56c7 100644
--- a/ripd/rip_nb_config.c
+++ b/ripd/rip_nb_config.c
@@ -101,9 +101,13 @@ int ripd_instance_allow_ecmp_modify(struct nb_cb_modify_args *args)
return NB_OK;
rip = nb_running_get_entry(args->dnode, NULL, true);
- rip->ecmp = yang_dnode_get_bool(args->dnode, NULL);
- if (!rip->ecmp)
+ rip->ecmp = yang_dnode_get_uint8(args->dnode, NULL);
+ if (!rip->ecmp) {
rip_ecmp_disable(rip);
+ return NB_OK;
+ }
+
+ rip_ecmp_change(rip);
return NB_OK;
}