[Xorp-cvs] XORP cvs commit: xorp/bgp xorp/bgp/harness
Atanu Ghosh
atanu@icir.org
Wed, 20 Jul 2005 01:33:15 GMT
CVSROOT: /usr/local/www/data/cvs
Module name: xorp
Changes by: atanu@xorpc.icir.org 2005-07-20 01:33:15 UTC
XORP CVS repository
Modified files:
bgp next_hop_resolver.cc next_hop_resolver.hh
bgp/harness test_rib_fea1.sh
Log message:
Changing the nexthop associated with a route was causing a
de-registration failure with the RIB. The tests "test5" and "test6"
demonstrate this problem.
Update1: Route1 - NextHop1
Update2: Route1 - NextHop2
Nexthop1: does not resolve.
Nexthop2: resolves.
Consider the following sequence of events:
1) Update1 causes a registration for NextHop1 with the RIB.
2) Update2 causes a registration for Nexthop2 with the RIB
3) Nexthop2 resolves so Route1 is sent as a route add to the RIB
4) Nexthop1 suddenly resolves as it falls within the Route1 subnet.
5) The RIB sends an invalidate to BGP.
6) Meanwhile BGP no longer has any interest in NextHop1 so
de-registers interest.
7) The RIB no nolonger has any state about NextHop1 when the
de-register arrives. It has just sent an invalidate. It returns an
error.
8) The BGP receives the failed response from the de-register and then
the invalidate.
In BGP if a de-register fails expect to see an invalidate in the
future. Previously the failed de-register was a fatal error.
Very strangely even if NextHop1 does not fall within Route1 an
invalidate is sent by the RIB which doesn't seem correct. This
behaviour can be verified with "test6".
Bug found by: Andrea Bittau
Revision Changes Path
1.13 +96 -2; commitid: 1781b42dda9d97ea6; xorp/bgp/harness/test_rib_fea1.sh
1.42 +45 -5; commitid: 1781b42dda9d97ea6; xorp/bgp/next_hop_resolver.cc
1.28 +10 -1; commitid: 1781b42dda9d97ea6; xorp/bgp/next_hop_resolver.hh