From 15c81ca495522f90144202261f25f3921df010ea Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Fri, 2 Feb 2018 19:26:22 -0500 Subject: [PATCH] bgpd: Add ability to see martian next-hop's for a vrf We've run across an issue where the local connected ip address is not being removed in some error condition. During trackdown it was noticed that we cannot look at this table for views/vrf's. While we don't have the bug tracked down yet this will help us figure it out. Signed-off-by: Donald Sharp --- bgpd/bgp_vty.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 4b9f4c639a..0a0c3bc79f 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -6612,17 +6612,21 @@ static void bgp_show_martian_nexthops(struct vty *vty, struct bgp *bgp) vty); } -DEFUN(show_bgp_martian_nexthop_db, - show_bgp_martian_nexthop_db_cmd, - "show bgp martian next-hop", - SHOW_STR - BGP_STR +DEFUN(show_bgp_martian_nexthop_db, show_bgp_martian_nexthop_db_cmd, + "show bgp [ VIEWVRFNAME] martian next-hop", + SHOW_STR BGP_STR BGP_INSTANCE_HELP_STR "martian next-hops\n" "martian next-hop database\n") { struct bgp *bgp = NULL; + int idx = 0; + + if (argv_find(argv, argc, "view", &idx) + || argv_find(argv, argc, "vrf", &idx)) + bgp = bgp_lookup_by_name(argv[idx + 1]->arg); + else + bgp = bgp_get_default(); - bgp = bgp_get_default(); if (!bgp) { vty_out(vty, "%% No BGP process is configured\n"); return CMD_WARNING;