From: Igor Putovny Date: Wed, 21 Jun 2023 11:15:07 +0000 (+0200) Subject: Basic route aggregation X-Git-Tag: v3.0.0~362^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f42c118aa75c08006178d112a1e4a8ded5ba6504;p=thirdparty%2Fbird.git Basic route aggregation Add a new protocol offering route aggregation. User can specify list of route attributes in the configuration file and run route aggregation on the export side of the pipe protocol. Routes are sorted and for every group of equivalent routes new route is created and exported to the routing table. It is also possible to specify filter which will run for every route before aggregation. Furthermore, it will be possible to set attributes of new routes according to attributes of the aggregated routes. This is a work in progress. Original work by Igor Putovny, subsequent cleanups and finalization by Maria Matejka. This is a split-commit of the neighboring aggregator branch with a bit improved lvalue handling, to have easier merge into v3. --- diff --git a/conf/confbase.Y b/conf/confbase.Y index cdf1f0187..021fede5e 100644 --- a/conf/confbase.Y +++ b/conf/confbase.Y @@ -95,6 +95,7 @@ CF_DECLS struct timeformat *tf; mpls_label_stack *mls; const struct adata *bs; + struct aggr_item_node *ai; } %token END CLI_MARKER INVALID_TOKEN ELSECOL DDOT diff --git a/configure.ac b/configure.ac index c9c52038d..a7cf0a5d2 100644 --- a/configure.ac +++ b/configure.ac @@ -312,7 +312,7 @@ if test "$enable_mpls_kernel" != no ; then fi fi -all_protocols="$proto_bfd babel bgp mrt ospf perf pipe radv rip rpki static" +all_protocols="aggregator $proto_bfd babel bgp mrt ospf perf pipe radv rip rpki static" all_protocols=`echo $all_protocols | sed 's/ /,/g'` @@ -320,6 +320,7 @@ if test "$with_protocols" = all ; then with_protocols="$all_protocols" fi +AH_TEMPLATE([CONFIG_AGGREGATOR],[Aggregator protocol]) AH_TEMPLATE([CONFIG_BABEL], [Babel protocol]) AH_TEMPLATE([CONFIG_BFD], [BFD protocol]) AH_TEMPLATE([CONFIG_BGP], [BGP protocol]) diff --git a/doc/bird.sgml b/doc/bird.sgml index 366797ba7..449a69deb 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -1905,6 +1905,70 @@ protocol sections. Protocols