zebra: fix optional distance on static mrib route
Unfortunately, the quagga CLI parser doesn't support [<1-255>]. Fix by
working around with an alias.
Replaces the following commits:
- zebra: mrib: [no] ip mroute - require distance.
- zebra: mrib: [no] ip mroute - make distance optional.
(Rewritten as alias)
Cc: Everton Marques <everton.marques@gmail.com>
Cc: Balaji G <balajig81@gmail.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c
index 6802ece..69245a5 100644
--- a/zebra/zebra_vty.c
+++ b/zebra/zebra_vty.c
@@ -142,9 +142,9 @@
}
/* Static unicast routes for multicast RPF lookup. */
-DEFUN (ip_mroute,
- ip_mroute_cmd,
- "ip mroute A.B.C.D/M (A.B.C.D|INTERFACE) [<1-255>]",
+DEFUN (ip_mroute_dist,
+ ip_mroute_dist_cmd,
+ "ip mroute A.B.C.D/M (A.B.C.D|INTERFACE) <1-255>",
IP_STR
"Configure static unicast route into MRIB for multicast RPF lookup\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n"
@@ -152,12 +152,22 @@
"Nexthop interface name\n"
"Distance\n")
{
- return zebra_static_ipv4_safi(vty, SAFI_MULTICAST, 1, argv[0], NULL, argv[1], NULL, argv[2]);
+ return zebra_static_ipv4_safi(vty, SAFI_MULTICAST, 1, argv[0], NULL, argv[1],
+ NULL, argc > 2 ? argv[2] : NULL);
}
-DEFUN (no_ip_mroute,
- no_ip_mroute_cmd,
- "no ip mroute A.B.C.D/M (A.B.C.D|INTERFACE) [<1-255>]",
+ALIAS (ip_mroute_dist,
+ ip_mroute_cmd,
+ "ip mroute A.B.C.D/M (A.B.C.D|INTERFACE)",
+ IP_STR
+ "Configure static unicast route into MRIB for multicast RPF lookup\n"
+ "IP destination prefix (e.g. 10.0.0.0/8)\n"
+ "Nexthop address\n"
+ "Nexthop interface name\n")
+
+DEFUN (no_ip_mroute_dist,
+ no_ip_mroute_dist_cmd,
+ "no ip mroute A.B.C.D/M (A.B.C.D|INTERFACE) <1-255>",
IP_STR
"Configure static unicast route into MRIB for multicast RPF lookup\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n"
@@ -165,9 +175,20 @@
"Nexthop interface name\n"
"Distance\n")
{
- return zebra_static_ipv4_safi(vty, SAFI_MULTICAST, 0, argv[0], NULL, argv[1], NULL, argv[2]);
+ return zebra_static_ipv4_safi(vty, SAFI_MULTICAST, 0, argv[0], NULL, argv[1],
+ NULL, argc > 2 ? argv[2] : NULL);
}
+ALIAS (no_ip_mroute_dist,
+ no_ip_mroute_cmd,
+ "no ip mroute A.B.C.D/M (A.B.C.D|INTERFACE)",
+ NO_STR
+ IP_STR
+ "Configure static unicast route into MRIB for multicast RPF lookup\n"
+ "IP destination prefix (e.g. 10.0.0.0/8)\n"
+ "Nexthop address\n"
+ "Nexthop interface name\n")
+
DEFUN (show_ip_rpf,
show_ip_rpf_cmd,
"show ip rpf",
@@ -2239,7 +2260,9 @@
install_node (&protocol_node, config_write_protocol);
install_element (CONFIG_NODE, &ip_mroute_cmd);
+ install_element (CONFIG_NODE, &ip_mroute_dist_cmd);
install_element (CONFIG_NODE, &no_ip_mroute_cmd);
+ install_element (CONFIG_NODE, &no_ip_mroute_dist_cmd);
install_element (CONFIG_NODE, &ip_protocol_cmd);
install_element (CONFIG_NODE, &no_ip_protocol_cmd);
install_element (VIEW_NODE, &show_ip_protocol_cmd);