]> git.puffer.fish Git - matthieu/frr.git/commit
lib: Add Aggregate Table and Aggregate_node
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 3 Aug 2018 17:18:59 +0000 (13:18 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 30 Aug 2018 21:47:59 +0000 (17:47 -0400)
commit8e1f6512132f37d7318a8eff94c095050b3d971b
tree107d8146ea1aef41d148096af72b9c74c7c6628f
parenta91a5dcdd6f797336fc1e6ccf69567a384a76097
lib: Add Aggregate Table and Aggregate_node

Add a abstraction for `struct route_node` and `struct route_table`
such that we can have an aggregate route_node and table.  This
is because only bgp/rfapi and ripng use the aggregate data pointer
in `struct route_node`.  For full route tables other routing
protocols and tables are paying a 8 byte overhead per node.
A full bgp table ends up being ~1.2 million routes in bgp
and zebra.  This is not an insiginificant amount of data.

So create the data structures for this replacement, but
do not replace the aggregate pointer yet.  This is because
later commits will convert rfapi and ripng over to this
new data, and finally we'll move the aggregate pointer.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
lib/agg_table.c [new file with mode: 0644]
lib/agg_table.h [new file with mode: 0644]
lib/subdir.am