]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Collect and print prefixes according to address type
authorIgor Putovny <igor.putovny@nic.cz>
Thu, 7 Mar 2024 14:35:44 +0000 (15:35 +0100)
committerIgor Putovny <igor.putovny@nic.cz>
Thu, 30 May 2024 10:30:00 +0000 (12:30 +0200)
proto/aggregator/aggregator.c

index 57f1b722dba000b55534c8bccb21b46083504203..181ae47a43691cdaaba23a2cba8607b1eabb5273 100644 (file)
@@ -815,15 +815,14 @@ static void
 collect_prefixes(struct aggregator_proto *p)
 {
   int count = 0;
-  int type = NET_IP4;
 
-  if (type == NET_IP4)
+  if (p->addr_type == NET_IP4)
   {
     struct net_addr_ip4 addr = { 0 };
     net_fill_ip4((net_addr *)&addr, IP4_NONE, 0);
     collect_prefixes_helper_ip4(p->root, &addr, p, 0, &count);
   }
-  else if (type == NET_IP6)
+  else if (p->addr_type == NET_IP6)
   {
     struct net_addr_ip6 addr = { 0 };
     net_fill_ip6((net_addr *)&addr, IP6_NONE, 0);
@@ -845,26 +844,44 @@ calculate_trie(void *P)
 
   log("====PREFIXES BEFORE ====");
   log("XXX arte: %p, src: %p", p->default_arte, p->default_arte->rte.src);
-  print_prefixes(p->root, NET_IP4);
-
-  first_pass(p->root, p->trie_slab);
-  log("====FIRST PASS====");
-  log("XXX arte: %p, src: %p", p->default_arte, p->default_arte->rte.src);
-  print_prefixes(p->root, NET_IP4);
-
-  second_pass(p->root);
-  log("====SECOND PASS====");
-  log("XXX arte: %p, src: %p", p->default_arte, p->default_arte->rte.src);
-  print_prefixes(p->root, NET_IP4);
 
-  third_pass(p->root);
-  log("====THIRD PASS====");
-  log("XXX arte: %p, src: %p", p->default_arte, p->default_arte->rte.src);
-  print_prefixes(p->root, NET_IP4);
+  if (p->addr_type == NET_IP4)
+  {
+    first_pass(p->root, p->trie_slab);
+    log("====FIRST PASS====");
+    log("XXX arte: %p, src: %p", p->default_arte, p->default_arte->rte.src);
+    print_prefixes(p->root, NET_IP4);
+
+    second_pass(p->root);
+    log("====SECOND PASS====");
+    log("XXX arte: %p, src: %p", p->default_arte, p->default_arte->rte.src);
+    print_prefixes(p->root, NET_IP4);
+
+    third_pass(p->root);
+    log("====THIRD PASS====");
+    log("XXX arte: %p, src: %p", p->default_arte, p->default_arte->rte.src);
+    print_prefixes(p->root, NET_IP4);
+  }
+  else if (p->addr_type == NET_IP6)
+  {
+    first_pass(p->root, p->trie_slab);
+    log("====FIRST PASS====");
+    log("XXX arte: %p, src: %p", p->default_arte, p->default_arte->rte.src);
+    print_prefixes(p->root, NET_IP6);
+
+    second_pass(p->root);
+    log("====SECOND PASS====");
+    log("XXX arte: %p, src: %p", p->default_arte, p->default_arte->rte.src);
+    print_prefixes(p->root, NET_IP6);
+
+    third_pass(p->root);
+    log("====THIRD PASS====");
+    log("XXX arte: %p, src: %p", p->default_arte, p->default_arte->rte.src);
+    print_prefixes(p->root, NET_IP6);
+  }
 
   collect_prefixes(p);
   log("XXX arte: %p, src: %p", p->default_arte, p->default_arte->rte.src);
-
   log("==== AGGREGATION DONE ====");
 }