summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_fsm.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2019-03-06 16:40:53 +0100
committerDonald Sharp <sharpd@cumulusnetworks.com>2019-03-06 17:35:58 +0100
commitdded74d5784072b4d1d90d4307a94f1171abf825 (patch)
tree1088b0c43cc7460cd3a9b3bea2ebf13ce2eea81d /bgpd/bgp_fsm.c
parentMerge pull request #3855 from donaldsharp/bgp_clist_sa (diff)
downloadfrr-dded74d5784072b4d1d90d4307a94f1171abf825.tar.xz
frr-dded74d5784072b4d1d90d4307a94f1171abf825.zip
bgpd: Don't prevent views from being able to connect
Views are perfectly valid and should be allowed to connect. In a bgp instance scenario the vrf_id will always be UNKNOWN, so allow it. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'bgpd/bgp_fsm.c')
-rw-r--r--bgpd/bgp_fsm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c
index b70c8bbd6..447d8da61 100644
--- a/bgpd/bgp_fsm.c
+++ b/bgpd/bgp_fsm.c
@@ -310,7 +310,8 @@ void bgp_timer_set(struct peer *peer)
status start timer is on unless peer is shutdown or peer is
inactive. All other timer must be turned off */
if (BGP_PEER_START_SUPPRESSED(peer) || !peer_active(peer)
- || peer->bgp->vrf_id == VRF_UNKNOWN) {
+ || (peer->bgp->inst_type != BGP_INSTANCE_TYPE_VIEW &&
+ peer->bgp->vrf_id == VRF_UNKNOWN)) {
BGP_TIMER_OFF(peer->t_start);
} else {
BGP_TIMER_ON(peer->t_start, bgp_start_timer,
@@ -1422,7 +1423,8 @@ int bgp_start(struct peer *peer)
return 0;
}
- if (peer->bgp->vrf_id == VRF_UNKNOWN) {
+ if (peer->bgp->inst_type != BGP_INSTANCE_TYPE_VIEW &&
+ peer->bgp->vrf_id == VRF_UNKNOWN) {
if (bgp_debug_neighbor_events(peer))
flog_err(
EC_BGP_FSM,