]> git.puffer.fish Git - matthieu/frr.git/commitdiff
ldpd: add the exit-address-family command
authorRenato Westphal <renato@opensourcerouting.org>
Wed, 26 Jul 2017 22:32:55 +0000 (19:32 -0300)
committerRenato Westphal <renato@opensourcerouting.org>
Wed, 26 Jul 2017 22:37:33 +0000 (19:37 -0300)
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
ldpd/ldp_vty_cmds.c
ldpd/ldp_vty_conf.c
vtysh/vtysh.c

index d28424cbb704323bc83345abab222aa4b6021e0e..871905aa8f57490e8907e963b2f03eaf83329eab 100644 (file)
@@ -80,6 +80,16 @@ DEFUN_NOSH(ldp_address_family,
        return (ldp_vty_address_family(vty, negate, af));
 }
 
+DEFUN_NOSH(ldp_exit_address_family,
+       ldp_exit_address_family_cmd,
+       "exit-address-family",
+       "Exit from Address Family configuration mode\n")
+{
+       if (vty->node == LDP_IPV4_NODE || vty->node == LDP_IPV6_NODE)
+               vty->node = LDP_NODE;
+       return CMD_SUCCESS;
+}
+
 DEFUN  (ldp_discovery_holdtime,
        ldp_discovery_holdtime_cmd,
        "[no] discovery <hello|targeted-hello> holdtime (1-65535)",
@@ -1082,6 +1092,7 @@ ldp_vty_init (void)
        install_element(LDP_IPV4_NODE, &ldp_interface_cmd);
        install_element(LDP_IPV4_NODE, &ldp_session_holdtime_cmd);
        install_element(LDP_IPV4_NODE, &ldp_neighbor_ipv4_targeted_cmd);
+       install_element(LDP_IPV4_NODE, &ldp_exit_address_family_cmd);
 
        install_element(LDP_IPV6_NODE, &ldp_discovery_holdtime_cmd);
        install_element(LDP_IPV6_NODE, &ldp_discovery_interval_cmd);
@@ -1095,6 +1106,7 @@ ldp_vty_init (void)
        install_element(LDP_IPV6_NODE, &ldp_interface_cmd);
        install_element(LDP_IPV6_NODE, &ldp_session_holdtime_cmd);
        install_element(LDP_IPV6_NODE, &ldp_neighbor_ipv6_targeted_cmd);
+       install_element(LDP_IPV6_NODE, &ldp_exit_address_family_cmd);
 
        install_element(LDP_IPV4_IFACE_NODE, &ldp_discovery_holdtime_cmd);
        install_element(LDP_IPV4_IFACE_NODE, &ldp_discovery_interval_cmd);
index 4e900ca93e8a32c6d66992140799ee4c515daedd..09eb6a7c55c532fd5dc1cbbaf67ae0212a7f13b1 100644 (file)
@@ -233,7 +233,7 @@ ldp_af_config_write(struct vty *vty, int af, struct ldpd_conf *conf,
 
        ldp_af_iface_config_write(vty, af);
 
-       vty_out (vty, "  !\n");
+       vty_out(vty, " exit-address-family\n");
 }
 
 int
index 666f3049d7c87cf5f96b3cc429f24bf50cc60048..395982189cf40d1ce7fd37d00451e1b953a73c3c 100644 (file)
@@ -303,7 +303,9 @@ static int vtysh_execute_func(const char *line, int pager)
                     || saved_node == BGP_IPV4L_NODE
                     || saved_node == BGP_IPV6L_NODE
                     || saved_node == BGP_IPV6M_NODE
-                    || saved_node == BGP_EVPN_NODE)
+                    || saved_node == BGP_EVPN_NODE
+                    || saved_node == LDP_IPV4_NODE
+                    || saved_node == LDP_IPV6_NODE)
                    && (tried == 1)) {
                        vtysh_execute("exit-address-family");
                } else if ((saved_node == BGP_EVPN_VNI_NODE) && (tried == 1)) {
@@ -1268,6 +1270,14 @@ DEFUNSH(VTYSH_LDPD, ldp_address_family_ipv6, ldp_address_family_ipv6_cmd,
        return CMD_SUCCESS;
 }
 
+DEFUNSH(VTYSH_LDPD, ldp_exit_address_family, ldp_exit_address_family_cmd,
+       "exit-address-family", "Exit from Address Family configuration mode\n")
+{
+       if (vty->node == LDP_IPV4_NODE || vty->node == LDP_IPV6_NODE)
+               vty->node = LDP_NODE;
+       return CMD_SUCCESS;
+}
+
 DEFUNSH(VTYSH_LDPD, ldp_interface_ifname, ldp_interface_ifname_cmd,
        "interface IFNAME",
        "Enable LDP on an interface and enter interface submode\n"
@@ -2945,8 +2955,10 @@ void vtysh_init_vty(void)
        install_element(LDP_NODE, &vtysh_quit_ldpd_cmd);
        install_element(LDP_IPV4_NODE, &vtysh_exit_ldpd_cmd);
        install_element(LDP_IPV4_NODE, &vtysh_quit_ldpd_cmd);
+       install_element(LDP_IPV4_NODE, &ldp_exit_address_family_cmd);
        install_element(LDP_IPV6_NODE, &vtysh_exit_ldpd_cmd);
        install_element(LDP_IPV6_NODE, &vtysh_quit_ldpd_cmd);
+       install_element(LDP_IPV6_NODE, &ldp_exit_address_family_cmd);
        install_element(LDP_IPV4_IFACE_NODE, &vtysh_exit_ldpd_cmd);
        install_element(LDP_IPV4_IFACE_NODE, &vtysh_quit_ldpd_cmd);
        install_element(LDP_IPV6_IFACE_NODE, &vtysh_exit_ldpd_cmd);