[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