#define BGP_SHOW_DAMP_HEADER " Network From Reuse Path\n"
#define BGP_SHOW_FLAP_HEADER " Network From Flaps Duration Reuse Path\n"
-static int bgp_show_prefix_list(struct vty *vty, struct bgp *bgp,
- const char *prefix_list_str, afi_t afi,
- safi_t safi, enum bgp_show_type type);
static int bgp_show_filter_list(struct vty *vty, struct bgp *bgp,
const char *filter, afi_t afi, safi_t safi,
enum bgp_show_type type);
"]]\
<[all$all] dampening <parameters>\
|route-map WORD\
- |prefix-list WORD\
|filter-list AS_PATH_FILTER_NAME\
|A.B.C.D/M longer-prefixes\
|X:X::X:X/M longer-prefixes\
"Display detail of configured dampening parameters\n"
"Display routes matching the route-map\n"
"A route-map to match on\n"
- "Display routes conforming to the prefix-list\n"
- "Prefix-list name\n"
"Display routes conforming to the filter-list\n"
"Regular expression access list name\n"
"IPv4 prefix\n"
show_flags);
}
- if (argv_find(argv, argc, "prefix-list", &idx))
- return bgp_show_prefix_list(vty, bgp, argv[idx + 1]->arg, afi,
- safi, bgp_show_type_prefix_list);
-
if (argv_find(argv, argc, "filter-list", &idx))
return bgp_show_filter_list(vty, bgp, argv[idx + 1]->arg, afi,
safi, bgp_show_type_filter_list);
|route-filter-v4|route-filter-translated-v6\
|route-filter-translated-v4] [exact-match]\
|community-list <(1-500)|COMMUNITY_LIST_NAME> [exact-match]\
+ |prefix-list WORD\
|rpki <invalid|valid|notfound>\
|version (1-4294967295)\
|alias ALIAS_NAME\
"Community-list name\n"
"Display routes matching the community-list\n"
"Exact match of the communities\n"
+ "Display routes conforming to the prefix-list\n"
+ "Prefix-list name\n"
"RPKI route types\n"
"A valid path as determined by rpki\n"
"A invalid path as determined by rpki\n"
output_arg = list;
}
+ if (argv_find(argv, argc, "prefix-list", &idx)) {
+ const char *prefix_list_str = argv[++idx]->arg;
+ struct prefix_list *plist;
+
+ plist = prefix_list_lookup(afi, prefix_list_str);
+ if (plist == NULL) {
+ vty_out(vty, "%% %s is not a valid prefix-list name\n",
+ prefix_list_str);
+ return CMD_WARNING;
+ }
+
+ sh_type = bgp_show_type_prefix_list;
+ output_arg = plist;
+ }
+
if (argv_find(argv, argc, "rpki", &idx)) {
sh_type = bgp_show_type_rpki;
if (argv_find(argv, argc, "valid", &idx))
return rc;
}
-static int bgp_show_prefix_list(struct vty *vty, struct bgp *bgp,
- const char *prefix_list_str, afi_t afi,
- safi_t safi, enum bgp_show_type type)
-{
- struct prefix_list *plist;
- uint16_t show_flags = 0;
-
- plist = prefix_list_lookup(afi, prefix_list_str);
- if (plist == NULL) {
- vty_out(vty, "%% %s is not a valid prefix-list name\n",
- prefix_list_str);
- return CMD_WARNING;
- }
-
- return bgp_show(vty, bgp, afi, safi, type, plist, show_flags,
- RPKI_NOT_BEING_USED);
-}
-
static int bgp_show_filter_list(struct vty *vty, struct bgp *bgp,
const char *filter, afi_t afi, safi_t safi,
enum bgp_show_type type)