2005-08-22 Hugo Santos <hsantos@av.it.pt>

	* vtysh.c: Add support for BGP_IPV6M_NODE
diff --git a/vtysh/ChangeLog b/vtysh/ChangeLog
index cad0712..b0c1354 100644
--- a/vtysh/ChangeLog
+++ b/vtysh/ChangeLog
@@ -1,3 +1,7 @@
+2005-08-22 Hugo Santos <hsantos@av.it.pt>
+
+	* vtysh.c: Add support for BGP_IPV6M_NODE
+	
 2005-07-12 Christian Hammers <ch@debian.org>
 
 	* vtysh_user.c: rename struct user to struct vtysh_user to avoid
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c
index 5df562c..13fd953 100644
--- a/vtysh/vtysh.c
+++ b/vtysh/vtysh.c
@@ -310,7 +310,8 @@
   if (ret == CMD_SUCCESS || ret == CMD_SUCCESS_DAEMON || ret == CMD_WARNING)
     {
       if ((saved_node == BGP_VPNV4_NODE || saved_node == BGP_IPV4_NODE
-	   || saved_node == BGP_IPV6_NODE || saved_node == BGP_IPV4M_NODE)
+	   || saved_node == BGP_IPV6_NODE || saved_node == BGP_IPV4M_NODE
+	   || saved_node == BGP_IPV6M_NODE)
 	  && (tried == 1))
 	{
 	  vtysh_execute("exit-address-family");
@@ -769,6 +770,12 @@
   "%s(config-router-af)# "
 };
 
+struct cmd_node bgp_ipv6m_node =
+{
+  BGP_IPV6M_NODE,
+  "%s(config-router-af)# "
+};
+
 struct cmd_node ospf_node =
 {
   OSPF_NODE,
@@ -910,6 +917,18 @@
   return CMD_SUCCESS;
 }
 
+DEFUNSH (VTYSH_BGPD,
+	 address_family_ipv6_multicast,
+	 address_family_ipv6_multicast_cmd,
+	 "address-family ipv6 multicast",
+	 "Enter Address Family command mode\n"
+	 "Address family\n"
+	 "Address Family Modifier\n")
+{
+  vty->node = BGP_IPV6M_NODE;
+  return CMD_SUCCESS;
+}
+
 DEFUNSH (VTYSH_RIPD,
 	 key_chain,
 	 key_chain_cmd,
@@ -1078,6 +1097,7 @@
     case BGP_IPV4_NODE:
     case BGP_IPV4M_NODE:
     case BGP_IPV6_NODE:
+    case BGP_IPV6M_NODE:
       vty->node = BGP_NODE;
       break;
     case KEYCHAIN_KEY_NODE:
@@ -1112,7 +1132,8 @@
   if (vty->node == BGP_IPV4_NODE
       || vty->node == BGP_IPV4M_NODE
       || vty->node == BGP_VPNV4_NODE
-      || vty->node == BGP_IPV6_NODE)
+      || vty->node == BGP_IPV6_NODE
+      || vty->node == BGP_IPV6M_NODE)
     vty->node = BGP_NODE;
   return CMD_SUCCESS;
 }
@@ -2129,6 +2150,7 @@
   install_node (&bgp_ipv4m_node, NULL);
 /* #ifdef HAVE_IPV6 */
   install_node (&bgp_ipv6_node, NULL);
+  install_node (&bgp_ipv6m_node, NULL);
 /* #endif */
   install_node (&ospf_node, NULL);
 /* #ifdef HAVE_IPV6 */
@@ -2152,6 +2174,7 @@
   vtysh_install_default (BGP_IPV4_NODE);
   vtysh_install_default (BGP_IPV4M_NODE);
   vtysh_install_default (BGP_IPV6_NODE);
+  vtysh_install_default (BGP_IPV6M_NODE);
   vtysh_install_default (OSPF_NODE);
   vtysh_install_default (RIPNG_NODE);
   vtysh_install_default (OSPF6_NODE);
@@ -2189,6 +2212,8 @@
   install_element (BGP_IPV4M_NODE, &vtysh_quit_bgpd_cmd);
   install_element (BGP_IPV6_NODE, &vtysh_exit_bgpd_cmd);
   install_element (BGP_IPV6_NODE, &vtysh_quit_bgpd_cmd);
+  install_element (BGP_IPV6M_NODE, &vtysh_exit_bgpd_cmd);
+  install_element (BGP_IPV6M_NODE, &vtysh_quit_bgpd_cmd);
   install_element (ISIS_NODE, &vtysh_exit_isisd_cmd);
   install_element (ISIS_NODE, &vtysh_quit_isisd_cmd);
   install_element (KEYCHAIN_NODE, &vtysh_exit_ripd_cmd);
@@ -2212,6 +2237,7 @@
   install_element (BGP_IPV4M_NODE, &vtysh_end_all_cmd);
   install_element (BGP_VPNV4_NODE, &vtysh_end_all_cmd);
   install_element (BGP_IPV6_NODE, &vtysh_end_all_cmd);
+  install_element (BGP_IPV6M_NODE, &vtysh_end_all_cmd);
   install_element (ISIS_NODE, &vtysh_end_all_cmd);
   install_element (KEYCHAIN_NODE, &vtysh_end_all_cmd);
   install_element (KEYCHAIN_KEY_NODE, &vtysh_end_all_cmd);
@@ -2245,6 +2271,7 @@
   install_element (BGP_IPV4_NODE, &exit_address_family_cmd);
   install_element (BGP_IPV4M_NODE, &exit_address_family_cmd);
   install_element (BGP_IPV6_NODE, &exit_address_family_cmd);
+  install_element (BGP_IPV6M_NODE, &exit_address_family_cmd);
   install_element (CONFIG_NODE, &key_chain_cmd);
   install_element (CONFIG_NODE, &route_map_cmd);
   install_element (CONFIG_NODE, &vtysh_line_vty_cmd);