From 95c2af68ea3039c406620fd84ac72f31d57efbdb Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Sat, 12 Nov 2016 17:43:15 +0900 Subject: [PATCH] zebra: fix link-params CLI handling vtysh was breaking in a rather ugly way, and some "no" forms were missing too. Signed-off-by: David Lamparter --- vtysh/vtysh_config.c | 13 ++++++++++++- zebra/interface.c | 8 ++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/vtysh/vtysh_config.c b/vtysh/vtysh_config.c index 4ec0e00286..f757e6d02c 100644 --- a/vtysh/vtysh_config.c +++ b/vtysh/vtysh_config.c @@ -171,7 +171,18 @@ vtysh_config_parse_line (const char *line) /* Store line to current configuration. */ if (config) { - if (config->index == RMAP_NODE || + if (strncmp (line, " link-params", strlen (" link-params")) == 0) + { + config_add_line (config->line, line); + config->index = LINK_PARAMS_NODE; + } + else if (config->index == LINK_PARAMS_NODE && + strncmp (line, " exit", strlen (" exit")) == 0) + { + config_add_line (config->line, line); + config->index = INTERFACE_NODE; + } + else if (config->index == RMAP_NODE || config->index == INTERFACE_NODE || config->index == NS_NODE || config->index == VTY_NODE) diff --git a/zebra/interface.c b/zebra/interface.c index 0f4d2ee9e4..31955b1fca 100644 --- a/zebra/interface.c +++ b/zebra/interface.c @@ -2814,6 +2814,7 @@ link_params_config_write (struct vty *vty, struct interface *ifp) if (IS_PARAM_SET(iflp, LP_RMT_AS)) vty_out(vty, " neighbor %s as %u%s", inet_ntoa(iflp->rmt_ip), iflp->rmt_as, VTY_NEWLINE); + vty_out(vty, " exit%s", VTY_NEWLINE); return 0; } @@ -2978,15 +2979,22 @@ zebra_if_init (void) install_element(LINK_PARAMS_NODE, &link_params_max_rsv_bw_cmd); install_element(LINK_PARAMS_NODE, &link_params_unrsv_bw_cmd); install_element(LINK_PARAMS_NODE, &link_params_admin_grp_cmd); + install_element(LINK_PARAMS_NODE, &no_link_params_admin_grp_cmd); install_element(LINK_PARAMS_NODE, &link_params_inter_as_cmd); install_element(LINK_PARAMS_NODE, &no_link_params_inter_as_cmd); install_element(LINK_PARAMS_NODE, &link_params_delay_cmd); + install_element(LINK_PARAMS_NODE, &no_link_params_delay_cmd); install_element(LINK_PARAMS_NODE, &link_params_delay_mm_cmd); install_element(LINK_PARAMS_NODE, &link_params_delay_var_cmd); + install_element(LINK_PARAMS_NODE, &no_link_params_delay_var_cmd); install_element(LINK_PARAMS_NODE, &link_params_pkt_loss_cmd); + install_element(LINK_PARAMS_NODE, &no_link_params_pkt_loss_cmd); install_element(LINK_PARAMS_NODE, &link_params_ava_bw_cmd); + install_element(LINK_PARAMS_NODE, &no_link_params_ava_bw_cmd); install_element(LINK_PARAMS_NODE, &link_params_res_bw_cmd); + install_element(LINK_PARAMS_NODE, &no_link_params_res_bw_cmd); install_element(LINK_PARAMS_NODE, &link_params_use_bw_cmd); + install_element(LINK_PARAMS_NODE, &no_link_params_use_bw_cmd); install_element (CONFIG_NODE, &zebra_vrf_cmd); install_element (CONFIG_NODE, &no_vrf_cmd); -- 2.39.5