On Wed, Apr 05, 2006 at 12:30:56PM +0100, tony sarendal wrote:
> On 05/04/06, tony sarendal <[EMAIL PROTECTED]> wrote:
...
> > On a side note, at this stage I did:
> >
> > cr211-FRA# bgpctl reload
> > reload request sent.
> > cr211-FRA#
> >
> > on the neighbor cr212-FRA I get this:
> >
> > Apr 5 13:13:39 cr212-FRA bgpd[2618]: neighbor 172.16.1.21: received
> > notification: Cease, unknown subcode 0
> > Apr 5 13:13:39 cr212-FRA bgpd[2618]: neighbor 172.16.1.21: state change
> > Established -> Idle, reason: NOTIFICATION received
> > Apr 5 13:13:39 cr212-FRA bgpd[16469]: neighbor 10.1.1.29 (AS65000)
> > withdraw 10.0.0.6/32
> > Apr 5 13:13:39 cr212-FRA bgpd[16469]: neighbor 10.1.1.29 (AS65000)
> > withdraw 10.1.1.20/30
> > Apr 5 13:13:39 cr212-FRA bgpd[16469]: fatal in RDE: attr_diff: equal
> > attributes encountered
> > Apr 5 13:13:39 cr212-FRA bgpd[3196]: Lost child: route decision engine
> > exited
> > Apr 5 13:13:39 cr212-FRA bgpd[2618]: fatal in SE: session_dispatch_imsg:
> > pipe closed: Connection refused
> > Apr 5 13:13:39 cr212-FRA bgpd[3196]: kernel routing table decoupled
> > Apr 5 13:13:39 cr212-FRA bgpd[3196]: Terminating
> >
> Doh, sent to early, rde in ar213-FRA also shutdown when doing the bgpctl
> reload:
>
> Apr 5 12:52:46 ar213-FRA bgpd[4507]: neighbor 172.16.1.18: state change
> OpenConfirm -> Established, reason: KEEPALIVE message received
> Apr 5 12:52:46 ar213-FRA bgpd[5938]: nexthop 172.16.1.18 now valid:
> directly connected
> Apr 5 13:14:19 ar213-FRA bgpd[19227]: fatal in RDE: attr_diff: equal
> attributes encountered
> Apr 5 13:14:19 ar213-FRA bgpd[5938]: Lost child: route decision engine
> exited
> Apr 5 13:14:19 ar213-FRA bgpd[4507]: neighbor 192.168.30.10: state change
> Established -> Idle, reason: Stop
> Apr 5 13:14:19 ar213-FRA bgpd[4507]: neighbor 172.16.1.22: state change
> Established -> Idle, reason: Stop
> Apr 5 13:14:19 ar213-FRA bgpd[4507]: neighbor 172.16.1.18: state change
> Established -> Idle, reason: Stop
> Apr 5 13:14:19 ar213-FRA bgpd[5938]: kernel routing table decoupled
> Apr 5 13:14:19 ar213-FRA bgpd[4507]: session engine exiting
> Apr 5 13:14:19 ar213-FRA bgpd[5938]: Terminating
>
> Time for a break.
>
The following diff kills the fatalx() and keeps you running. THIS IS A
HACK!
The real problem is in rde_reflector() -- it modifies attributes
that are referenced in the cache and so you end up in a major fuckup.
The function needs some rework similar to the way communities are handled.
I'll have a diff later today or early tomorrow.
--
:wq Claudio
Index: rde_attr.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/rde_attr.c,v
retrieving revision 1.64
diff -u -p -r1.64 rde_attr.c
--- rde_attr.c 15 Mar 2006 11:26:45 -0000 1.64
+++ rde_attr.c 5 Apr 2006 11:53:13 -0000
@@ -223,7 +223,6 @@ attr_diff(struct attr *oa, struct attr *
if (r < 0)
return (-1);
- fatalx("attr_diff: equal attributes encountered");
return (0);
}