]> git.puffer.fish Git - matthieu/frr.git/commitdiff
vtysh: Add CLI nodes for SRv6
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Fri, 4 Aug 2023 06:13:14 +0000 (08:13 +0200)
committerCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Mon, 11 Sep 2023 20:11:50 +0000 (22:11 +0200)
Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
vtysh/vtysh.c

index 8b223d1aa482091e494b5a58aa5d69f9ff8999b5..113a15c172ef9f070c994376e6cb531d48824532 100644 (file)
@@ -1189,6 +1189,20 @@ static struct cmd_node isis_flex_algo_node = {
        .parent_node = ISIS_NODE,
        .prompt = "%s(config-router-flex-algo)# ",
 };
+
+static struct cmd_node isis_srv6_node = {
+       .name = "isis-srv6",
+       .node = ISIS_SRV6_NODE,
+       .parent_node = ISIS_NODE,
+       .prompt = "%s(config-router-srv6)# ",
+};
+
+static struct cmd_node isis_srv6_node_msd_node = {
+       .name = "isis-srv6-node-msd",
+       .node = ISIS_SRV6_NODE_MSD_NODE,
+       .parent_node = ISIS_SRV6_NODE,
+       .prompt = "%s(config-router-srv6-node-msd)# ",
+};
 #endif /* HAVE_ISISD */
 
 #ifdef HAVE_FABRICD
@@ -2117,6 +2131,23 @@ DEFUNSH(VTYSH_ISISD, isis_flex_algo, isis_flex_algo_cmd, "flex-algo (128-255)",
        vty->node = ISIS_FLEX_ALGO_NODE;
        return CMD_SUCCESS;
 }
+
+DEFUNSH(VTYSH_ISISD, isis_srv6_enable, isis_srv6_enable_cmd,
+       "segment-routing srv6",
+       SR_STR
+       "Enable Segment Routing over IPv6 (SRv6)\n")
+{
+       vty->node = ISIS_SRV6_NODE;
+       return CMD_SUCCESS;
+}
+
+DEFUNSH(VTYSH_ISISD, isis_srv6_node_msd, isis_srv6_node_msd_cmd,
+       "node-msd",
+       "Segment Routing over IPv6 (SRv6) Maximum SRv6 SID Depths\n")
+{
+       vty->node = ISIS_SRV6_NODE_MSD_NODE;
+       return CMD_SUCCESS;
+}
 #endif /* HAVE_ISISD */
 
 #ifdef HAVE_FABRICD
@@ -2619,6 +2650,30 @@ DEFUNSH(VTYSH_ISISD, vtysh_quit_isis_flex_algo, vtysh_quit_isis_flex_algo_cmd,
 {
        return vtysh_exit_isisd(self, vty, argc, argv);
 }
+
+DEFUNSH(VTYSH_ISISD, vtysh_exit_isis_srv6_enable, vtysh_exit_isis_srv6_enable_cmd,
+       "exit", "Exit current mode and down to previous mode\n")
+{
+       return vtysh_exit_isisd(self, vty, argc, argv);
+}
+
+DEFUNSH(VTYSH_ISISD, vtysh_quit_isis_srv6_enable, vtysh_quit_isis_srv6_enable_cmd,
+       "quit", "Exit current mode and down to previous mode\n")
+{
+       return vtysh_exit_isisd(self, vty, argc, argv);
+}
+
+DEFUNSH(VTYSH_ISISD, vtysh_exit_isis_srv6_node_msd, vtysh_exit_isis_srv6_node_msd_cmd,
+       "exit", "Exit current mode and down to previous mode\n")
+{
+       return vtysh_exit(vty);
+}
+
+DEFUNSH(VTYSH_ISISD, vtysh_quit_isis_srv6_node_msd, vtysh_quit_isis_srv6_node_msd_cmd,
+       "quit", "Exit current mode and down to previous mode\n")
+{
+       return vtysh_exit_isisd(self, vty, argc, argv);
+}
 #endif /* HAVE_ISISD */
 
 #if HAVE_BFDD > 0
@@ -4749,6 +4804,19 @@ void vtysh_init_vty(void)
        install_element(ISIS_FLEX_ALGO_NODE, &vtysh_exit_isis_flex_algo_cmd);
        install_element(ISIS_FLEX_ALGO_NODE, &vtysh_quit_isis_flex_algo_cmd);
        install_element(ISIS_FLEX_ALGO_NODE, &vtysh_end_all_cmd);
+
+       install_node(&isis_srv6_node);
+       install_element(ISIS_NODE, &isis_srv6_enable_cmd);
+       install_element(ISIS_SRV6_NODE, &isis_srv6_node_msd_cmd);
+       install_element(ISIS_SRV6_NODE, &vtysh_exit_isis_srv6_enable_cmd);
+       install_element(ISIS_SRV6_NODE, &vtysh_quit_isis_srv6_enable_cmd);
+       install_element(ISIS_SRV6_NODE, &vtysh_end_all_cmd);
+       install_node(&isis_srv6_node_msd_node);
+       install_element(ISIS_SRV6_NODE_MSD_NODE,
+                       &vtysh_exit_isis_srv6_node_msd_cmd);
+       install_element(ISIS_SRV6_NODE_MSD_NODE,
+                       &vtysh_quit_isis_srv6_node_msd_cmd);
+       install_element(ISIS_SRV6_NODE_MSD_NODE, &vtysh_end_all_cmd);
 #endif /* HAVE_ISISD */
 
        /* fabricd */