summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_table.h
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2018-12-07 15:01:59 +0100
committerDonald Sharp <sharpd@cumulusnetworks.com>2018-12-07 16:26:00 +0100
commita79c04e7fe6f1d0f0d6b1ad0534a47dc8fb83943 (patch)
tree60281d0b3ea6d833f480fc6006917d0405cf6944 /bgpd/bgp_table.h
parentMerge pull request #3418 from pguibert6WIND/bgp_rfapi_path_info_extra_free (diff)
downloadfrr-a79c04e7fe6f1d0f0d6b1ad0534a47dc8fb83943.tar.xz
frr-a79c04e7fe6f1d0f0d6b1ad0534a47dc8fb83943.zip
bgpd: Convert adj_out to a RB tree
The adj_out data structure is a linked list of adjacencies 1 per update group. In a large scale env where we are not using peer groups, this list lookup starts to become rather costly. Convert to a better data structure for this. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'bgpd/bgp_table.h')
-rw-r--r--bgpd/bgp_table.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/bgpd/bgp_table.h b/bgpd/bgp_table.h
index c267b4fe8..4795ab741 100644
--- a/bgpd/bgp_table.h
+++ b/bgpd/bgp_table.h
@@ -26,6 +26,7 @@
#include "queue.h"
#include "linklist.h"
#include "bgpd.h"
+#include "bgp_advertise.h"
struct bgp_table {
/* table belongs to this instance */
@@ -52,7 +53,7 @@ struct bgp_node {
*/
ROUTE_NODE_FIELDS
- struct bgp_adj_out *adj_out;
+ struct bgp_adj_out_rb adj_out;
struct bgp_adj_in *adj_in;