diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-03-06 16:40:53 +0100 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-03-06 17:35:58 +0100 |
commit | dded74d5784072b4d1d90d4307a94f1171abf825 (patch) | |
tree | 1088b0c43cc7460cd3a9b3bea2ebf13ce2eea81d /bgpd/bgp_fsm.c | |
parent | Merge pull request #3855 from donaldsharp/bgp_clist_sa (diff) | |
download | frr-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.c | 6 |
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, |