[Xorp-cvs] XORP cvs commit: xorp/bgp
Pavlin Radoslavov
pavlin at icir.org
Tue Dec 5 18:53:23 PST 2006
CVSROOT: /usr/local/share/doc/apache/cvs
Module name: xorp
Changes by: pavlin at xorpc.icir.org 2006-12-06 02:53:23 UTC
XORP CVS repository
Modified files:
bgp plumbing.cc
Log message:
Add a CacheTable after the PolicyTableSourceMatch policy table
(before the AggregationTable).
This modification is needed as an intermediate solution to solve
the following problem.
If a new peer comes up such that it is handled by DumpTable,
and if a route is modified by the PolicyTableSourceMatch table, then
an InternalMessage that is "changed" by the PolicyTableSourceMatch table
might reach the BGPRouteFilter table. This table doesn't expect to see
any InternalMessage that is "changed" (there are a number of asserts
to prevent that), so BGP would coredump.
Simply removing the asserts is not sufficient, because in some cases the
BGPRouteFilter table memory management is not consistent with the
PolicyTableSourceMatch memory management of the route.
E.g., BGPRouteFilter<A>::drop_message() will unref the original route
if it came modified.
Adding the CacheTable after the PolicyTableSourceMatch policy table
is used to smooth-out the "changed" InternalMessage(s) so the
BGPRouteFilter table never sees an InternalMessage that is changed.
All the BGP regression tests appear to pass with this modification.
Approved by: Atanu Ghosh
Revision Changes Path
1.98 +11 -3; commitid: cb5445762d797ea6; xorp/bgp/plumbing.cc
More information about the Xorp-cvs
mailing list