summaryrefslogtreecommitdiff
path: root/isisd/isis_cli.c
diff options
context:
space:
mode:
Diffstat (limited to 'isisd/isis_cli.c')
-rw-r--r--isisd/isis_cli.c70
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);