Add number evpn route type support for debug commands.
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
struct prefix *argv_p;
struct ethaddr mac;
struct ipaddr ip;
- int evpn_type;
- int type_idx = 0;
+ int evpn_type = 0;
int mac_idx = 0;
int ip_idx = 0;
argv_p = *argv_pp;
- if (argv_find(argv, argc, "macip", &type_idx))
- evpn_type = BGP_EVPN_MAC_IP_ROUTE;
- else if (argv_find(argv, argc, "multicast", &type_idx))
- evpn_type = BGP_EVPN_IMET_ROUTE;
- else if (argv_find(argv, argc, "prefix", &type_idx))
- evpn_type = BGP_EVPN_IP_PREFIX_ROUTE;
- else
- evpn_type = 0;
+ if (bgp_evpn_cli_parse_type(&evpn_type, argv, argc) < 0)
+ return CMD_WARNING;
if (evpn_type == BGP_EVPN_MAC_IP_ROUTE) {
memset(&ip, 0, sizeof(struct ipaddr));
DEFPY (debug_bgp_update_prefix_afi_safi,
debug_bgp_update_prefix_afi_safi_cmd,
- "debug bgp updates prefix l2vpn$afi evpn$safi type <macip mac <X:X:X:X:X:X|X:X:X:X:X:X/M> [ip <A.B.C.D|X:X::X:X>]|multicast ip <A.B.C.D|X:X::X:X>|prefix ip <A.B.C.D/M|X:X::X:X/M>>",
+ "debug bgp updates prefix l2vpn$afi evpn$safi type <<macip|2> mac <X:X:X:X:X:X|X:X:X:X:X:X/M> [ip <A.B.C.D|X:X::X:X>]|<multicast|3> ip <A.B.C.D|X:X::X:X>|<prefix|5> ip <A.B.C.D/M|X:X::X:X/M>>",
DEBUG_STR
BGP_STR
"BGP updates\n"
EVPN_HELP_STR
EVPN_TYPE_HELP_STR
EVPN_TYPE_2_HELP_STR
+ EVPN_TYPE_2_HELP_STR
MAC_STR MAC_STR MAC_STR
IP_STR
"IPv4 address\n"
"IPv6 address\n"
EVPN_TYPE_3_HELP_STR
+ EVPN_TYPE_3_HELP_STR
IP_STR
"IPv4 address\n"
"IPv6 address\n"
EVPN_TYPE_5_HELP_STR
+ EVPN_TYPE_5_HELP_STR
IP_STR
"IPv4 prefix\n"
"IPv6 prefix\n")
DEFPY (no_debug_bgp_update_prefix_afi_safi,
no_debug_bgp_update_prefix_afi_safi_cmd,
- "no debug bgp updates prefix l2vpn$afi evpn$safi type <macip mac <X:X:X:X:X:X|X:X:X:X:X:X/M> [ip <A.B.C.D|X:X::X:X>]|multicast ip <A.B.C.D|X:X::X:X>|prefix ip <A.B.C.D/M|X:X::X:X/M>>",
+ "no debug bgp updates prefix l2vpn$afi evpn$safi type <<macip|2> mac <X:X:X:X:X:X|X:X:X:X:X:X/M> [ip <A.B.C.D|X:X::X:X>]|<multicast|3> ip <A.B.C.D|X:X::X:X>|<prefix|5> ip <A.B.C.D/M|X:X::X:X/M>>",
NO_STR
DEBUG_STR
BGP_STR
EVPN_HELP_STR
EVPN_TYPE_HELP_STR
EVPN_TYPE_2_HELP_STR
+ EVPN_TYPE_2_HELP_STR
MAC_STR MAC_STR MAC_STR
IP_STR
"IPv4 address\n"
"IPv6 address\n"
EVPN_TYPE_3_HELP_STR
+ EVPN_TYPE_3_HELP_STR
IP_STR
"IPv4 address\n"
"IPv6 address\n"
EVPN_TYPE_5_HELP_STR
+ EVPN_TYPE_5_HELP_STR
IP_STR
"IPv4 prefix\n"
"IPv6 prefix\n")
show_established, uj);
}
-/* Parse type from "type <ead|1|...>", return -1 on failure */
-static int cli_parse_type(int *type, struct cmd_token **argv, int argc)
+int bgp_evpn_cli_parse_type(int *type, struct cmd_token **argv, int argc)
{
int type_idx = 0;
if (uj)
json = json_object_new_object();
- if (cli_parse_type(&type, argv, argc) < 0)
+ if (bgp_evpn_cli_parse_type(&type, argv, argc) < 0)
return CMD_WARNING;
if (argv_find(argv, argc, "detail", &detail))
}
}
- if (cli_parse_type(&type, argv, argc) < 0)
+ if (bgp_evpn_cli_parse_type(&type, argv, argc) < 0)
return CMD_WARNING;
evpn_show_route_rd(vty, bgp, &prd, type, json);
vni = strtoul(argv[idx + 3]->arg, NULL, 10);
- if (cli_parse_type(&type, argv, argc) < 0)
+ if (bgp_evpn_cli_parse_type(&type, argv, argc) < 0)
return CMD_WARNING;
if (argv_find(argv, argc, "vtep", &vtep_idx)) {
#define L2VPN_HELP_STR "Layer 2 Virtual Private Network\n"
#define EVPN_HELP_STR "Ethernet Virtual Private Network\n"
+/* Parse type from "type <ead|1|...>", return -1 on failure */
+extern int bgp_evpn_cli_parse_type(int *type, struct cmd_token **argv,
+ int argc);
+
#endif /* _QUAGGA_BGP_EVPN_VTY_H */