]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: "neighbor swpX interface remote-as XYZ" is ignored
authorDaniel Walton <dwalton@cumulusnetworks.com>
Tue, 16 May 2017 23:54:46 +0000 (23:54 +0000)
committerDaniel Walton <dwalton@cumulusnetworks.com>
Tue, 16 May 2017 23:54:46 +0000 (23:54 +0000)
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Don Slice <dslice@cumulusnetworks.com>
If you did:
  neighbor swp1 interface
  neighbor swp1 interface remote-as external

we would not set the remote-as. You could however still do
  neighbor swp1 remote-as external

bgpd/bgp_vty.c

index 347d026aff9750d20fec00a35b99f3a981a3930a..f163fef712af95a1eadfd3a9101894584491d47d 100644 (file)
@@ -2872,7 +2872,12 @@ peer_conf_interface_get (struct vty *vty, const char *conf_if, afi_t afi,
     }
 
   peer = peer_lookup_by_conf_if (bgp, conf_if);
-  if (!peer)
+  if (peer)
+    {
+      if (as_str)
+        ret = peer_remote_as (bgp, &su, NULL, &as, as_type, afi, safi);
+    }
+  else
     {
       if (bgp_flag_check (bgp, BGP_FLAG_NO_DEFAULT_IPV4)
           && afi == AFI_IP && safi == SAFI_UNICAST)
@@ -2896,8 +2901,9 @@ peer_conf_interface_get (struct vty *vty, const char *conf_if, afi_t afi,
         }
       peer_flag_set (peer, PEER_FLAG_CAPABILITY_ENHE);
     }
-  else if ((v6only && !CHECK_FLAG(peer->flags, PEER_FLAG_IFPEER_V6ONLY)) ||
-           (!v6only && CHECK_FLAG(peer->flags, PEER_FLAG_IFPEER_V6ONLY)))
+
+  if ((v6only && !CHECK_FLAG(peer->flags, PEER_FLAG_IFPEER_V6ONLY)) ||
+      (!v6only && CHECK_FLAG(peer->flags, PEER_FLAG_IFPEER_V6ONLY)))
     {
       if (v6only)
         SET_FLAG(peer->flags, PEER_FLAG_IFPEER_V6ONLY);