diff options
author | Yuqing Zhao <xiaopanghu99@163.com> | 2023-07-31 14:34:48 +0200 |
---|---|---|
committer | Yuqing Zhao <xiaopanghu99@163.com> | 2023-08-22 03:35:46 +0200 |
commit | 6e7f305e54f4828d58cb4b2e4c815d82a4cbe560 (patch) | |
tree | 4c01b7351f468d2139053b3cc5095e4bde67c6bd /lib/table.c | |
parent | Merge pull request #8790 from donaldsharp/peer_connection (diff) | |
download | frr-6e7f305e54f4828d58cb4b2e4c815d82a4cbe560.tar.xz frr-6e7f305e54f4828d58cb4b2e4c815d82a4cbe560.zip |
bgpd: Convert from struct bgp_node to struct bgp_dest
This is based on @donaldsharp's work
The current code base is the struct bgp_node data structure.
The problem with this is that it creates a bunch of
extra data per route_node.
The table structure generates ‘holder’ nodes
that are never going to receive bgp routes,
and now the memory of those nodes is allocated
as if they are a full bgp_node.
After splitting up the bgp_node into bgp_dest and route_node,
the memory of ‘holder’ node which does not have any bgp data
will be allocated as the route_node, not the bgp_node,
and the memory usage is reduced.
The memory usage of BGP node will be reduced from 200B to 96B.
The total memory usage optimization of this part is ~16.00%.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Yuqing Zhao <xiaopanghu99@163.com>
Diffstat (limited to 'lib/table.c')
-rw-r--r-- | lib/table.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/lib/table.c b/lib/table.c index 380852b54..3bf93894e 100644 --- a/lib/table.c +++ b/lib/table.c @@ -334,7 +334,6 @@ void route_node_delete(struct route_node *node) struct route_node *parent; assert(node->lock == 0); - assert(node->info == NULL); if (node->l_left && node->l_right) return; |