diff options
| -rw-r--r-- | bgpd/bgpd.c | 11 | 
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();  | 
