[Xorp-cvs] XORP cvs commit: xorp/bgp

Pavlin Radoslavov pavlin@icir.org
Fri, 11 Nov 2005 09:06:43 -0800


> CVSROOT:	/usr/local/share/doc/apache/cvs
> Module name:	xorp
> Changes by:	zec@xorpc.icir.org	2005-11-11 15:23:29 UTC
> 
> XORP CVS repository
> 
> 
> Modified files:
> 	bgp           bgp_varrw.cc bgp_varrw.hh route_table_base.hh 
> 	              route_table_filter.cc route_table_filter.hh 
> 	              subnet_route.cc subnet_route.hh 
> 
> Log message:
> 	Modify existing infrastructure to provide support for BGP route
> 	aggregation, as follows:
> 	
> 	Store aggregation tags/flags in SubnetRoute's _flags field.  The size of
> 	SubnetRoute was not influenced by this change.
> 	
> 	Provide methods for accessing / modifying aggregation tags/flags.
> 	
> 	Add AGGREGATION_TABLE as another enum RouteRableType.
> 	
> 	Implement static outbound filters for filtering out products of the
> 	aggregation process, depending whether the branch is EBGP or IBGP.
> 	
> 	Provide varw interface for marking a route as a candidate for aggregation,
> 	by writing the prefix length of the requested aggregate to SubnetRoute.
> 	
> 	NOTE: this commit does NOT include the aggregation code itself nor the
> 	necessary plumbings, those will follow soon after resolving a few
> 	critical remaining issues.

Marko,

Presumably, the new aggregate-prefix-len inside the BGP policy
template will be hooked with the bgp_varrw.{hh,cc} modifications.
According to the recent modification to bgp.tp the variable is
registered as "aggregate_prefix_len" with the policy.
In that case, I believe the new BGPVarRW methods must match the
variable name and must be named read_aggregate_prefix_len() and
write_aggregate_prefix_len() instead of read_aggr_pref_len() and
write_aggr_pref_len() respectively (Andrea please correct me if this
is not the case).


While there, if the reading should never happen (as indicated by
the printf() inside read_aggr_pref_len()), then you could just
make/register the aggregate_prefix_len policy variable write-only so
you can just remove that method. Also, I presume you meant to use
debug_msg() instead of printf() inside the committed code :)

Pavlin

> 
> Revision  Changes                                Path
> 1.22      +40 -1;  commitid: 14b034374b71d7ea6;  xorp/bgp/bgp_varrw.cc
> 1.15      +11 -1;  commitid: 14b034374b71d7ea6;  xorp/bgp/bgp_varrw.hh
> 1.13      +4 -3;  commitid: 14b034374b71d7ea6;   xorp/bgp/route_table_base.hh
> 1.35      +62 -1;  commitid: 14b034374b71d7ea6;  xorp/bgp/route_table_filter.cc
> 1.17      +20 -1;  commitid: 14b034374b71d7ea6;  xorp/bgp/route_table_filter.hh
> 1.19      +13 -1;  commitid: 14b034374b71d7ea6;  xorp/bgp/subnet_route.cc
> 1.19      +57 -7;  commitid: 14b034374b71d7ea6;  xorp/bgp/subnet_route.hh
> _______________________________________________
> Xorp-cvs mailing list
> Xorp-cvs@icir.org
> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-cvs