.prompt = "%s(config-srv6)# ",
};
+static struct cmd_node srv6_sids_node = {
+ .name = "srv6-sids",
+ .node = SRV6_SIDS_NODE,
+ .parent_node = SRV6_NODE,
+ .prompt = "%s(config-srv6-sids)# ",
+};
+
static struct cmd_node srv6_locs_node = {
.name = "srv6-locators",
.node = SRV6_LOCS_NODE,
return vtysh_end();
}
-DEFUNSH(VTYSH_ZEBRA, srv6, srv6_cmd,
+DEFUNSH(VTYSH_ZEBRA | VTYSH_MGMTD, srv6, srv6_cmd,
"srv6",
"Segment-Routing SRv6 configuration\n")
{
return CMD_SUCCESS;
}
+DEFUNSH(VTYSH_MGMTD, srv6_sids, srv6_sids_cmd,
+ "static-sids",
+ "Segment-Routing SRv6 SIDs configuration\n")
+{
+ vty->node = SRV6_SIDS_NODE;
+ return CMD_SUCCESS;
+}
+
DEFUNSH(VTYSH_ZEBRA, srv6_locators, srv6_locators_cmd,
"locators",
"Segment-Routing SRv6 locators configuration\n")
}
#endif /* HAVE_FABRICD */
-DEFUNSH(VTYSH_SR, segment_routing, segment_routing_cmd,
+DEFUNSH(VTYSH_SR | VTYSH_MGMTD, segment_routing, segment_routing_cmd,
"segment-routing",
"Configure segment routing\n")
{
return CMD_SUCCESS;
}
-DEFUNSH(VTYSH_ZEBRA, exit_srv6_config, exit_srv6_config_cmd, "exit",
+DEFUNSH(VTYSH_ZEBRA | VTYSH_MGMTD, exit_srv6_config, exit_srv6_config_cmd, "exit",
"Exit from SRv6 configuration mode\n")
{
if (vty->node == SRV6_NODE)
return CMD_SUCCESS;
}
+DEFUNSH(VTYSH_MGMTD, exit_srv6_sids_config, exit_srv6_sids_config_cmd, "exit",
+ "Exit from SRv6-SIDs configuration mode\n")
+{
+ if (vty->node == SRV6_SIDS_NODE)
+ vty->node = SRV6_NODE;
+ return CMD_SUCCESS;
+}
+
DEFUNSH(VTYSH_ZEBRA, exit_srv6_loc_config, exit_srv6_loc_config_cmd, "exit",
"Exit from SRv6-locators configuration mode\n")
{
return vtysh_exit_keys(self, vty, argc, argv);
}
-DEFUNSH(VTYSH_SR, vtysh_exit_sr, vtysh_exit_sr_cmd, "exit",
+DEFUNSH(VTYSH_SR | VTYSH_MGMTD, vtysh_exit_sr, vtysh_exit_sr_cmd, "exit",
"Exit current mode and down to previous mode\n")
{
return vtysh_exit(vty);
}
-DEFUNSH(VTYSH_SR, vtysh_quit_sr, vtysh_quit_sr_cmd, "quit",
+DEFUNSH(VTYSH_SR | VTYSH_MGMTD, vtysh_quit_sr, vtysh_quit_sr_cmd, "quit",
"Exit current mode and down to previous mode\n")
{
return vtysh_exit(vty);
install_node(&rmap_node);
install_node(&vty_node);
install_node(&srv6_node);
+ install_node(&srv6_sids_node);
install_node(&srv6_locs_node);
install_node(&srv6_loc_node);
install_node(&srv6_encap_node);
install_element(SRV6_NODE, &exit_srv6_config_cmd);
install_element(SRV6_NODE, &vtysh_end_all_cmd);
install_element(SRV6_NODE, &srv6_encap_cmd);
+ install_element(SRV6_NODE, &srv6_sids_cmd);
+
+ install_element(SRV6_SIDS_NODE, &exit_srv6_sids_config_cmd);
+ install_element(SRV6_SIDS_NODE, &vtysh_end_all_cmd);
install_element(SRV6_LOCS_NODE, &srv6_locator_cmd);
install_element(SRV6_LOCS_NODE, &exit_srv6_locs_config_cmd);