]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Allow bgp to work standalone
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 8 Sep 2016 22:48:02 +0000 (18:48 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 8 Sep 2016 22:48:02 +0000 (18:48 -0400)
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd/bgp_fsm.c
bgpd/bgp_network.c
configure.ac

index ae77ac421a3c7ca4ebd1355ca7df81570131e26a..046767177b91a8c2b20b6018caa5e8c4d18d960b 100644 (file)
@@ -1332,8 +1332,10 @@ bgp_start (struct peer *peer)
       if (bgp_debug_neighbor_events(peer))
        zlog_debug ("%s [FSM] Waiting for NHT", peer->host);
 
+#if !defined (HAVE_BGP_STANDALONE)
       BGP_EVENT_ADD(peer, TCP_connection_open_failed);
       return 0;
+#endif
     }
 
   status = bgp_connect (peer);
index 58761a11d0c6864272344b45ed799ff52cb7cbfd..ecfc3f9fe8f596c4050427c4e8112013f5ddc08f 100644 (file)
@@ -253,9 +253,13 @@ bgp_get_instance_for_inc_conn (int sock, struct bgp **bgp_inst)
   rc = getsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, name, &name_len);
   if (rc != 0)
     {
+#if !defined (HAVE_BGP_STANDALONE)
       zlog_err ("[Error] BGP SO_BINDTODEVICE get failed (%s), sock %d",
                 safe_strerror (errno), sock);
       return -1;
+#else
+      strcpy (name, VRF_DEFAULT_NAME);
+#endif
     }
 
   if (!strlen(name))
@@ -671,7 +675,9 @@ bgp_getsockname (struct peer *peer)
     {
       zlog_err ("%s: nexthop_set failed, resetting connection - intf %p",
                 peer->host, peer->nexthop.ifp);
+#if !defined (HAVE_BGP_STANDALONE)
       return -1;
+#endif
     }
 
   return 0;
index e01af9e55e2116f90c0844844c18c5e6d2734db5..b1ea4821e223705900e25de85a91605656472469 100755 (executable)
@@ -317,6 +317,8 @@ AC_ARG_ENABLE(werror,
   AS_HELP_STRING([--enable-werror], [enable -Werror (recommended for developers only)]))
 AC_ARG_ENABLE(cumulus,
   AS_HELP_STRING([--enable-cumulus], [enable Cumulus Switch Special Extensions]))
+AC_ARG_ENABLE(bgp-standalone,
+  AS_HELP_STRING([--enable-bgp-standalone], [Modify code to allow BGP to work without Zebra]))
 AC_ARG_ENABLE(rr-semantics,
   AS_HELP_STRING([--disable-rr-semantics], [disable the v6 Route Replace semantics]))
 
@@ -368,6 +370,10 @@ if test "${enable_cumulus}" = "yes" ; then
   AC_DEFINE(HAVE_CUMULUS,,Compile Special Cumulus Code in)
 fi
 
+if test "${enable_bgp_standalone}" = "yes" ; then
+  AC_DEFINE(HAVE_BGP_STANDALONE,,Allow BGP to work without Zebra)
+fi
+
 if test "${enable_shell_access}" = "yes"; then
    AC_DEFINE(HAVE_SHELL_ACCESS,,Allow user to use ssh/telnet/bash)
 fi