diff options
Diffstat (limited to 'isisd/isis_cli.c')
| -rw-r--r-- | isisd/isis_cli.c | 70 |
1 files changed, 42 insertions, 28 deletions
diff --git a/isisd/isis_cli.c b/isisd/isis_cli.c index df69b1c7be..d864053b15 100644 --- a/isisd/isis_cli.c +++ b/isisd/isis_cli.c @@ -330,8 +330,7 @@ void cli_show_ip_isis_ipv6(struct vty *vty, struct lyd_node *dnode, DEFPY(isis_bfd, isis_bfd_cmd, "[no] isis bfd", - NO_STR - PROTO_HELP + NO_STR PROTO_HELP "Enable BFD support\n") { const struct lyd_node *dnode; @@ -343,19 +342,53 @@ DEFPY(isis_bfd, return CMD_SUCCESS; } - nb_cli_enqueue_change(vty, "./frr-isisd:isis/bfd-monitoring", + nb_cli_enqueue_change(vty, "./frr-isisd:isis/bfd-monitoring/enabled", NB_OP_MODIFY, no ? "false" : "true"); return nb_cli_apply_changes(vty, NULL); } +/* + * XPath: /frr-interface:lib/interface/frr-isisd:isis/bfd-monitoring/profile + */ +DEFPY(isis_bfd_profile, + isis_bfd_profile_cmd, + "[no] isis bfd profile WORD", + NO_STR PROTO_HELP + "Enable BFD support\n" + "Use a pre-configured profile\n" + "Profile name\n") +{ + const struct lyd_node *dnode; + + dnode = yang_dnode_get(vty->candidate_config->dnode, + "%s/frr-isisd:isis", VTY_CURR_XPATH); + if (dnode == NULL) { + vty_out(vty, "ISIS is not enabled on this circuit\n"); + return CMD_SUCCESS; + } + + nb_cli_enqueue_change(vty, "./frr-isisd:isis/bfd-monitoring/profile", + NB_OP_MODIFY, no ? NULL : profile); + + return nb_cli_apply_changes(vty, NULL); +} + void cli_show_ip_isis_bfd_monitoring(struct vty *vty, struct lyd_node *dnode, bool show_defaults) { - if (!yang_dnode_get_bool(dnode, NULL)) + const char *profile; + + if (!yang_dnode_get_bool(dnode, "./enabled")) vty_out(vty, " no"); vty_out(vty, " isis bfd\n"); + + if (yang_dnode_exists(dnode, "./profile")) { + profile = yang_dnode_get_string(dnode, "./profile"); + if (profile[0] != '\0') + vty_out(vty, " isis bfd profile %s\n", profile); + } } /* @@ -1111,9 +1144,7 @@ DEFPY(isis_mpls_te_inter_as, isis_mpls_te_inter_as_cmd, * XPath: /frr-isisd:isis/instance/default-information-originate */ DEFPY(isis_default_originate, isis_default_originate_cmd, - "[no] default-information originate <ipv4|ipv6>$ip" - " <level-1|level-2>$level [always]$always" - " [{metric (0-16777215)$metric|route-map WORD$rmap}]", + "[no] default-information originate <ipv4|ipv6>$ip <level-1|level-2>$level [always]$always [{metric (0-16777215)$metric|route-map WORD$rmap}]", NO_STR "Control distribution of default information\n" "Distribute a default route\n" @@ -1190,9 +1221,7 @@ void cli_show_isis_def_origin_ipv6(struct vty *vty, struct lyd_node *dnode, */ DEFPY(isis_redistribute, isis_redistribute_cmd, "[no] redistribute <ipv4|ipv6>$ip " PROTO_REDIST_STR - "$proto" - " <level-1|level-2>$level" - " [{metric (0-16777215)|route-map WORD}]", + "$proto <level-1|level-2>$level [{metric (0-16777215)|route-map WORD}]", NO_STR REDIST_STR "Redistribute IPv4 routes\n" "Redistribute IPv6 routes\n" PROTO_REDIST_HELP @@ -1250,15 +1279,7 @@ void cli_show_isis_redistribute_ipv6(struct vty *vty, struct lyd_node *dnode, * XPath: /frr-isisd:isis/instance/multi-topology */ DEFPY(isis_topology, isis_topology_cmd, - "[no] topology " - "<ipv4-unicast" - "|ipv4-mgmt" - "|ipv6-unicast" - "|ipv4-multicast" - "|ipv6-multicast" - "|ipv6-mgmt" - "|ipv6-dstsrc>$topology " - "[overload]$overload", + "[no] topology <ipv4-unicast|ipv4-mgmt|ipv6-unicast|ipv4-multicast|ipv6-multicast|ipv6-mgmt|ipv6-dstsrc>$topology [overload]$overload", NO_STR "Configure IS-IS topologies\n" "IPv4 unicast topology\n" @@ -2011,15 +2032,7 @@ void cli_show_ip_isis_psnp_interval(struct vty *vty, struct lyd_node *dnode, * XPath: /frr-interface:lib/interface/frr-isisd:isis/multi-topology */ DEFPY(circuit_topology, circuit_topology_cmd, - "[no] isis topology" - "<ipv4-unicast" - "|ipv4-mgmt" - "|ipv6-unicast" - "|ipv4-multicast" - "|ipv6-multicast" - "|ipv6-mgmt" - "|ipv6-dstsrc" - ">$topology", + "[no] isis topology<ipv4-unicast|ipv4-mgmt|ipv6-unicast|ipv4-multicast|ipv6-multicast|ipv6-mgmt|ipv6-dstsrc>$topology", NO_STR "IS-IS routing protocol\n" "Configure interface IS-IS topologies\n" @@ -2301,6 +2314,7 @@ void isis_cli_init(void) install_element(INTERFACE_NODE, &ip6_router_isis_cmd); install_element(INTERFACE_NODE, &no_ip_router_isis_cmd); install_element(INTERFACE_NODE, &isis_bfd_cmd); + install_element(INTERFACE_NODE, &isis_bfd_profile_cmd); install_element(ISIS_NODE, &net_cmd); |
