diff options
| author | Hiroki Shirokura <slank.dev@gmail.com> | 2021-09-05 10:07:56 +0000 |
|---|---|---|
| committer | Hiroki Shirokura <slank.dev@gmail.com> | 2021-09-07 12:54:39 +0000 |
| commit | 0a735cd52361db3fe3e16c2de5aa1d132c75258e (patch) | |
| tree | e92ebd695a03737b9621bb35bb92209d20f13280 /zebra/zebra_srv6_vty.c | |
| parent | f6e52a81dc310e7a3a97154a2a6edca6e06fc130 (diff) | |
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>
Diffstat (limited to 'zebra/zebra_srv6_vty.c')
| -rw-r--r-- | zebra/zebra_srv6_vty.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/zebra/zebra_srv6_vty.c b/zebra/zebra_srv6_vty.c index d2b91b6c07..cb1e6c4228 100644 --- a/zebra/zebra_srv6_vty.c +++ b/zebra/zebra_srv6_vty.c @@ -197,6 +197,21 @@ DEFUN_NOSH (srv6, 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, srv6_locators_cmd, "locators", @@ -233,6 +248,23 @@ DEFUN_NOSH (srv6_locator, 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, locator_prefix_cmd, "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 */ install_element(CONFIG_NODE, &segment_routing_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_LOCS_NODE, &srv6_locator_cmd); + install_element(SRV6_LOCS_NODE, &no_srv6_locator_cmd); /* Command for configuration */ install_element(SRV6_LOC_NODE, &locator_prefix_cmd); |
