summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgpd.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index a984c5af87..34c0eab089 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -3623,13 +3623,13 @@ struct bgp *bgp_lookup(as_t as, const char *name)
}
/* Lookup BGP structure by view name. */
-struct bgp *bgp_lookup_by_name(const char *name)
+static struct bgp *bgp_lookup_by_name_filter(const char *name, bool filter_auto)
{
struct bgp *bgp;
struct listnode *node, *nnode;
for (ALL_LIST_ELEMENTS(bm->bgp, node, nnode, bgp)) {
- if (CHECK_FLAG(bgp->vrf_flags, BGP_VRF_AUTO))
+ if (filter_auto && CHECK_FLAG(bgp->vrf_flags, BGP_VRF_AUTO))
continue;
if ((bgp->name == NULL && name == NULL)
|| (bgp->name && name && strcmp(bgp->name, name) == 0))
@@ -3638,6 +3638,11 @@ struct bgp *bgp_lookup_by_name(const char *name)
return NULL;
}
+struct bgp *bgp_lookup_by_name(const char *name)
+{
+ return bgp_lookup_by_name_filter(name, true);
+}
+
/* Lookup BGP instance based on VRF id. */
/* Note: Only to be used for incoming messages from Zebra. */
struct bgp *bgp_lookup_by_vrf_id(vrf_id_t vrf_id)
@@ -3730,7 +3735,7 @@ int bgp_lookup_by_as_name_type(struct bgp **bgp_val, as_t *as, const char *name,
/* Multiple instance check. */
if (name)
- bgp = bgp_lookup_by_name(name);
+ bgp = bgp_lookup_by_name_filter(name, false);
else
bgp = bgp_get_default();