]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Run ORTC algorithm
authorIgor Putovny <igor.putovny@nic.cz>
Tue, 21 Nov 2023 11:41:14 +0000 (12:41 +0100)
committerIgor Putovny <igor.putovny@nic.cz>
Tue, 21 Nov 2023 11:41:14 +0000 (12:41 +0100)
proto/aggregator/aggregator.c

index 10392e98a37c61eda744568c0079ff1afca39b3f..2ed6f55c78f9f7dd4588f0616af8bb11826aa4a4 100644 (file)
@@ -612,6 +612,30 @@ print_prefixes(const struct trie_node *node)
   log("==== END PREFIXES ====");
 }
 
+/*
+ * Run Optimal Routing Table Constructor (ORTC) algorithm
+ */
+static void
+calculate_trie(void *p)
+{
+  struct aggregator_proto *proto = (struct aggregator_proto *)p;
+
+  log("====PREFIXES BEFORE ====");
+  print_prefixes(proto->root);
+
+  first_pass(proto->root, proto->trie_slab);
+  log("====FIRST PASS====");
+  print_prefixes(proto->root);
+
+  second_pass(proto->root);
+  log("====SECOND PASS====");
+  print_prefixes(proto->root);
+
+  third_pass(proto->root);
+  log("====THIRD PASS====");
+  print_prefixes(proto->root);
+}
+
 /*
  * Set static attribute in @rta from static attribute in @old according to @sa.
  */