Hi, recently upgraded to OpenBSD/BGPD 4 and suddenly stopped getting
routes from some neighbors.

This is what showed up in the logs... (IP's removed...)

Nov 2 14:20:56 strange bgpd[13739]: neighbor (XO): received
notification: error in OPEN message, unsupported capability
Nov 2 14:20:56 strange bgpd[13739]: neighbor (XO): disabling restart capability

bgpctl show fib nexthop reports the neighbor with a flag "N".
While bgpctl show fib does not show any routes from the neighbor.

After talking with our upstream they said they were getting errors
about their refresh ability being disabled (or something along those
lines).   Above you see bgpd turning off restart capability ... not
refresh? bug?  (oh and i think they are running zebra, though not
sure).  So i disabled refresh (set it to 0 in alloc_peer (parse.y)),
compiled and everything seemed to be nominal. (routes started coming
in...)

So just in case anyone else is hit by this here is a patch to allow
you to initially disable it on a per neighbor option.  (sorry gmail...
patch breakage may occur)

Sorry if this is not the real fix, but it seems to be a work around...
at least for me.

If this is in fact a bug with openbgpd I can provide additional info...

Oh and thanks for the great product(s)!!  Keep up the good work!

diff -u bgpd.orig/parse.y bgpd/parse.y
--- bgpd.orig/parse.y   2006-08-27 10:11:05.000000000 -0600
+++ bgpd/parse.y        2006-11-02 17:37:35.000000000 -0700
@@ -149,7 +149,7 @@
 %token AS ROUTERID HOLDTIME YMIN LISTEN ON FIBUPDATE
 %token RDE EVALUATE IGNORE COMPARE
%token GROUP NEIGHBOR NETWORK
-%token REMOTEAS DESCR LOCALADDR MULTIHOP PASSIVE MAXPREFIX RESTART
+%token REMOTEAS DESCR LOCALADDR MULTIHOP PASSIVE MAXPREFIX RESTART REFRESH
%token ANNOUNCE DEMOTE
 %token ENFORCE NEIGHBORAS CAPABILITIES REFLECTOR DEPEND DOWN SOFTRECONFIG
%token DUMP IN OUT
@@ -935,6 +935,9 @@
                       else
                               curpeer->conf.softreconfig_out = $3;
               }
+               | REFRESH yesno {
+                       curpeer->conf.capabilities.refresh = $2;
+               }
               ;

 restart                : /* nada */            { $$ = 0; }
@@ -1635,6 +1638,7 @@
               { "qualify",            QUALIFY},
               { "quick",              QUICK},
               { "rde",                RDE},
+               { "refresh",            REFRESH},
               { "reject",             REJECT},
               { "remote-as",          REMOTEAS},
               { "restart",            RESTART},

Reply via email to