ospf6d, ripd, vtysh: Fix "no set metric" for ospf6 and RIP

Allow the user to actually turn off the set metric command
in ospf6d and rip.

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c
index c3c06ed..6db1ca9 100644
--- a/ospf6d/ospf6_asbr.c
+++ b/ospf6d/ospf6_asbr.c
@@ -1089,17 +1089,30 @@
 /* delete "set metric" */
 DEFUN (no_set_metric,
        no_set_metric_cmd,
-       "no set metric <0-4294967295>",
+       "no set metric",
        NO_STR
-       "Set value\n"
-       "Metric\n"
-       "METRIC value\n")
+       SET_STR
+       "Metric value for destination routing protocol\n")
 {
-  int ret = route_map_delete_set ((struct route_map_index *) vty->index,
-                                  "metric", argv[0]);
+  int ret = 0;
+
+  if (argc == 0)
+    ret = route_map_delete_set ((struct route_map_index *) vty->index,
+                                "metric", NULL);
+  else
+    ret = route_map_delete_set ((struct route_map_index *) vty->index,
+                                "metric", argv[0]);
   return route_map_command_status (vty, ret);
 }
 
+ALIAS (no_set_metric,
+       no_set_metric_val_cmd,
+       "no set metric <0-4294967295>",
+       NO_STR
+       SET_STR
+       "Metric value for destination routing protocol\n"
+       "Metric value\n")
+
 /* add "set forwarding-address" */
 DEFUN (ospf6_routemap_set_forwarding,
        ospf6_routemap_set_forwarding_cmd,
@@ -1158,6 +1171,7 @@
   /* ASE Metric */
   install_element (RMAP_NODE, &set_metric_cmd);
   install_element (RMAP_NODE, &no_set_metric_cmd);
+  install_element (RMAP_NODE, &no_set_metric_val_cmd);
 
   /* ASE Metric */
   install_element (RMAP_NODE, &ospf6_routemap_set_forwarding_cmd);
diff --git a/ripd/rip_routemap.c b/ripd/rip_routemap.c
index 37a986c..9bafdcd 100644
--- a/ripd/rip_routemap.c
+++ b/ripd/rip_routemap.c
@@ -1000,11 +1000,18 @@
 
 ALIAS (no_set_metric,
        no_set_metric_val_cmd,
-       "no set metric (<0-4294967295>|<+/-metric>)",
+       "no set metric <0-4294967295>",
        NO_STR
        SET_STR
        "Metric value for destination routing protocol\n"
-       "Metric value\n"
+       "Metric value\n")
+
+ALIAS (no_set_metric,
+       no_set_metric_addsub_cmd,
+       "no set metric <+/-metric>",
+       NO_STR
+       SET_STR
+       "Metric value for destination routing protocol\n"
        "Add or subtract metric\n")
 
 DEFUN (set_ip_nexthop,
@@ -1135,6 +1142,7 @@
   install_element (RMAP_NODE, &set_metric_addsub_cmd);
   install_element (RMAP_NODE, &no_set_metric_cmd);
   install_element (RMAP_NODE, &no_set_metric_val_cmd);
+  install_element (RMAP_NODE, &no_set_metric_addsub_cmd);
   install_element (RMAP_NODE, &set_ip_nexthop_cmd);
   install_element (RMAP_NODE, &no_set_ip_nexthop_cmd);
   install_element (RMAP_NODE, &no_set_ip_nexthop_val_cmd);
diff --git a/vtysh/extract.pl.in b/vtysh/extract.pl.in
index 480d114..0bbc2a7 100755
--- a/vtysh/extract.pl.in
+++ b/vtysh/extract.pl.in
@@ -181,7 +181,7 @@
     }
 }
 
-my $bad_cli_stomps = 89;
+my $bad_cli_stomps = 90;
 # Currently we have $bad_cli_stomps.  This was determined by
 # running this script and counting up the collisions from what
 # was returned.
@@ -221,7 +221,7 @@
 # Output install_element
 print <<EOF;
 void
-vtysh_init_cmd ()
+vtysh_init_cmd (void)
 {
 EOF