]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Don't prevent views from being able to connect 3914/head
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 6 Mar 2019 15:40:53 +0000 (10:40 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 6 Mar 2019 16:35:58 +0000 (11:35 -0500)
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>
bgpd/bgp_fsm.c

index b70c8bbd631cb88b2cf55b12838185ade095d858..447d8da613722bd17eb00d61694b61707f6c7fb3 100644 (file)
@@ -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,