mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-09 03:47:47 +00:00
zebra: add srv6's no commands
CURRENT_CONFIGURATION: configure terminal segment-routing srv6 locators locator loc1 locator loc2 locator loc3 CMD1: delete single locator configure terminal segment-routing srv6 locators no locator loc1 CMD2: delete srv6 whole config (== delete all locators) configure terminal segment-routing no srv6 Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
This commit is contained in:
parent
f6e52a81dc
commit
0a735cd523
@ -197,6 +197,21 @@ DEFUN_NOSH (srv6,
|
|||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFUN (no_srv6,
|
||||||
|
no_srv6_cmd,
|
||||||
|
"no srv6",
|
||||||
|
NO_STR
|
||||||
|
"Segment Routing SRv6\n")
|
||||||
|
{
|
||||||
|
struct zebra_srv6 *srv6 = zebra_srv6_get_default();
|
||||||
|
struct srv6_locator *locator;
|
||||||
|
struct listnode *node, *nnode;
|
||||||
|
|
||||||
|
for (ALL_LIST_ELEMENTS(srv6->locators, node, nnode, locator))
|
||||||
|
zebra_srv6_locator_delete(locator);
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
DEFUN_NOSH (srv6_locators,
|
DEFUN_NOSH (srv6_locators,
|
||||||
srv6_locators_cmd,
|
srv6_locators_cmd,
|
||||||
"locators",
|
"locators",
|
||||||
@ -233,6 +248,23 @@ DEFUN_NOSH (srv6_locator,
|
|||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFUN (no_srv6_locator,
|
||||||
|
no_srv6_locator_cmd,
|
||||||
|
"no locator WORD",
|
||||||
|
NO_STR
|
||||||
|
"Segment Routing SRv6 locator\n"
|
||||||
|
"Specify locator-name\n")
|
||||||
|
{
|
||||||
|
struct srv6_locator *locator = zebra_srv6_locator_lookup(argv[2]->arg);
|
||||||
|
if (!locator) {
|
||||||
|
vty_out(vty, "%% Can't find SRv6 locator\n");
|
||||||
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
zebra_srv6_locator_delete(locator);
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
DEFPY (locator_prefix,
|
DEFPY (locator_prefix,
|
||||||
locator_prefix_cmd,
|
locator_prefix_cmd,
|
||||||
"prefix X:X::X:X/M$prefix [func-bits (16-64)$func_bit_len]",
|
"prefix X:X::X:X/M$prefix [func-bits (16-64)$func_bit_len]",
|
||||||
@ -348,8 +380,10 @@ void zebra_srv6_vty_init(void)
|
|||||||
/* Command for change node */
|
/* Command for change node */
|
||||||
install_element(CONFIG_NODE, &segment_routing_cmd);
|
install_element(CONFIG_NODE, &segment_routing_cmd);
|
||||||
install_element(SEGMENT_ROUTING_NODE, &srv6_cmd);
|
install_element(SEGMENT_ROUTING_NODE, &srv6_cmd);
|
||||||
|
install_element(SEGMENT_ROUTING_NODE, &no_srv6_cmd);
|
||||||
install_element(SRV6_NODE, &srv6_locators_cmd);
|
install_element(SRV6_NODE, &srv6_locators_cmd);
|
||||||
install_element(SRV6_LOCS_NODE, &srv6_locator_cmd);
|
install_element(SRV6_LOCS_NODE, &srv6_locator_cmd);
|
||||||
|
install_element(SRV6_LOCS_NODE, &no_srv6_locator_cmd);
|
||||||
|
|
||||||
/* Command for configuration */
|
/* Command for configuration */
|
||||||
install_element(SRV6_LOC_NODE, &locator_prefix_cmd);
|
install_element(SRV6_LOC_NODE, &locator_prefix_cmd);
|
||||||
|
Loading…
Reference in New Issue
Block a user