]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
5 months agoRelocate code
Igor Putovny [Thu, 13 Feb 2025 16:30:10 +0000 (17:30 +0100)] 
Relocate code

5 months agoFix errors
Igor Putovny [Thu, 13 Feb 2025 15:29:24 +0000 (16:29 +0100)] 
Fix errors

5 months agoRewrite print_prefixes() using ip_addr instead of net_addr
Igor Putovny [Thu, 13 Feb 2025 15:10:13 +0000 (16:10 +0100)] 
Rewrite print_prefixes() using ip_addr instead of net_addr

5 months agoRewrite dump_trie() using ip_addr instead of net_addr
Igor Putovny [Wed, 12 Feb 2025 18:43:08 +0000 (19:43 +0100)] 
Rewrite dump_trie() using ip_addr instead of net_addr

5 months agoRewrite construct_trie() using ip_addr instead of net_addr
Igor Putovny [Wed, 12 Feb 2025 18:18:35 +0000 (19:18 +0100)] 
Rewrite construct_trie() using ip_addr instead of net_addr

5 months agoRewrite trie_process() using ip_addr instead of net_addr
Igor Putovny [Wed, 12 Feb 2025 18:16:10 +0000 (19:16 +0100)] 
Rewrite trie_process() using ip_addr instead of net_addr

5 months agoRewrite third_pass() using ip_addr instead of net_addr
Igor Putovny [Wed, 12 Feb 2025 18:06:57 +0000 (19:06 +0100)] 
Rewrite third_pass() using ip_addr instead of net_addr

5 months agoRewrite find_subtree_prefix() using ip_addr instead of net_addr
Igor Putovny [Wed, 12 Feb 2025 17:38:33 +0000 (18:38 +0100)] 
Rewrite find_subtree_prefix() using ip_addr instead of net_addr

5 months agoRewrite trie_remove_prefix() using ip_addr instead of net_addr
Igor Putovny [Wed, 12 Feb 2025 17:22:58 +0000 (18:22 +0100)] 
Rewrite trie_remove_prefix() using ip_addr instead of net_addr

5 months agoRewrite prepare_rte_withdrawal() using ip_addr instead of net_addr
Igor Putovny [Wed, 12 Feb 2025 17:08:15 +0000 (18:08 +0100)] 
Rewrite prepare_rte_withdrawal() using ip_addr instead of net_addr

5 months agoRewrite trie_insert_prefix() using ip_addr instead of net_addr
Igor Putovny [Wed, 12 Feb 2025 16:24:03 +0000 (17:24 +0100)] 
Rewrite trie_insert_prefix() using ip_addr instead of net_addr

5 months agoAdd shift values for ipa bit operations
Igor Putovny [Wed, 12 Feb 2025 16:17:56 +0000 (17:17 +0100)] 
Add shift values for ipa bit operations

5 months agoRewrite create_route() using ip_addr instead of net_addr
Igor Putovny [Wed, 12 Feb 2025 16:12:10 +0000 (17:12 +0100)] 
Rewrite create_route() using ip_addr instead of net_addr

5 months agoRemove collect_prefixes()
Igor Putovny [Wed, 12 Feb 2025 16:07:21 +0000 (17:07 +0100)] 
Remove collect_prefixes()

5 months agoAdd macros for ipa bit operations
Igor Putovny [Wed, 12 Feb 2025 15:49:22 +0000 (16:49 +0100)] 
Add macros for ipa bit operations

5 months agoSmall changes
Igor Putovny [Tue, 11 Feb 2025 13:02:09 +0000 (14:02 +0100)] 
Small changes

5 months agoCreate default route in the thid pass
Igor Putovny [Mon, 10 Feb 2025 16:22:26 +0000 (17:22 +0100)] 
Create default route in the thid pass

5 months agoInitialize root node with NON_FIB status
Igor Putovny [Mon, 10 Feb 2025 15:55:48 +0000 (16:55 +0100)] 
Initialize root node with NON_FIB status

5 months agoBugfix
Igor Putovny [Mon, 10 Feb 2025 15:12:02 +0000 (16:12 +0100)] 
Bugfix

Export new route when node status is changing from NON_FIB or UNASSIGNED to IN_FIB

5 months agoUse net_addr at rte_withdrawal struct, plus small changes
Igor Putovny [Fri, 7 Feb 2025 16:28:53 +0000 (17:28 +0100)] 
Use net_addr at rte_withdrawal struct, plus small changes

5 months agoSmall changes
Igor Putovny [Fri, 7 Feb 2025 15:52:42 +0000 (16:52 +0100)] 
Small changes

5 months agoCleanup
Igor Putovny [Fri, 7 Feb 2025 13:56:01 +0000 (14:56 +0100)] 
Cleanup

5 months agoDo not set IN_FIB status for newly added prefixes
Igor Putovny [Thu, 6 Feb 2025 14:55:02 +0000 (15:55 +0100)] 
Do not set IN_FIB status for newly added prefixes

FIB status now truly reflects whether prefix is in export table or not.
Based on the change of FIB status, third pass can now decide whether
the export or route removal is needed.

5 months agoProcess route withdrawals caused by incorporating updates to the trie
Igor Putovny [Thu, 6 Feb 2025 14:27:53 +0000 (15:27 +0100)] 
Process route withdrawals caused by incorporating updates to the trie

5 months agotrie_remove_prefix() now removes route from the table
Igor Putovny [Thu, 6 Feb 2025 14:18:25 +0000 (15:18 +0100)] 
trie_remove_prefix() now removes route from the table

5 months agoImplement route withdrawal
Igor Putovny [Wed, 5 Feb 2025 18:09:55 +0000 (19:09 +0100)] 
Implement route withdrawal

5 months agoSmall changes
Igor Putovny [Wed, 5 Feb 2025 17:26:03 +0000 (18:26 +0100)] 
Small changes

6 months agoRename
Igor Putovny [Mon, 3 Feb 2025 19:07:00 +0000 (20:07 +0100)] 
Rename

6 months agoCleanup
Igor Putovny [Mon, 3 Feb 2025 19:06:19 +0000 (20:06 +0100)] 
Cleanup

6 months agoAdd assertions
Igor Putovny [Mon, 3 Feb 2025 18:37:19 +0000 (19:37 +0100)] 
Add assertions

6 months agoAdd comments
Igor Putovny [Mon, 3 Feb 2025 17:01:08 +0000 (18:01 +0100)] 
Add comments

6 months agoKeep track of current prefix during third pass
Igor Putovny [Tue, 28 Jan 2025 15:33:48 +0000 (16:33 +0100)] 
Keep track of current prefix during third pass

6 months ago Add find_subtree_prefix()
Igor Putovny [Tue, 28 Jan 2025 15:32:10 +0000 (16:32 +0100)] 
 Add find_subtree_prefix()

6 months agoRename
Igor Putovny [Tue, 28 Jan 2025 11:59:37 +0000 (12:59 +0100)] 
Rename

6 months agoMove static variable to the top
Igor Putovny [Mon, 27 Jan 2025 15:35:33 +0000 (16:35 +0100)] 
Move static variable to the top

6 months agoIncorporate withdrawals to the trie
Igor Putovny [Fri, 24 Jan 2025 16:10:19 +0000 (17:10 +0100)] 
Incorporate withdrawals to the trie

6 months agoDeaggregation runs on the whole subtree
Igor Putovny [Fri, 24 Jan 2025 15:51:57 +0000 (16:51 +0100)] 
Deaggregation runs on the whole subtree

6 months agoIncorporate updates to the trie
Igor Putovny [Fri, 24 Jan 2025 15:19:52 +0000 (16:19 +0100)] 
Incorporate updates to the trie

6 months agoImplement deaggregation
Igor Putovny [Fri, 24 Jan 2025 14:37:06 +0000 (15:37 +0100)] 
Implement deaggregation

6 months agoOverwrite removed nodes with garbage values
Igor Putovny [Fri, 24 Jan 2025 14:30:53 +0000 (15:30 +0100)] 
Overwrite removed nodes with garbage values

6 months agoAdd more checks
Igor Putovny [Fri, 24 Jan 2025 14:13:43 +0000 (15:13 +0100)] 
Add more checks

6 months agoRename
Igor Putovny [Fri, 24 Jan 2025 13:58:54 +0000 (14:58 +0100)] 
Rename

6 months agoRemove unused code
Igor Putovny [Fri, 24 Jan 2025 13:28:10 +0000 (14:28 +0100)] 
Remove unused code

6 months agoOriginal prefix always keeps its status
Igor Putovny [Thu, 23 Jan 2025 16:35:11 +0000 (17:35 +0100)] 
Original prefix always keeps its status

6 months agoMove code around
Igor Putovny [Thu, 23 Jan 2025 16:12:01 +0000 (17:12 +0100)] 
Move code around

6 months agoImplement removing prefix from the trie
Igor Putovny [Fri, 17 Jan 2025 14:10:24 +0000 (15:10 +0100)] 
Implement removing prefix from the trie

6 months agoExtend logging functions
Igor Putovny [Thu, 16 Jan 2025 13:04:59 +0000 (14:04 +0100)] 
Extend logging functions

6 months agoIncrease readability of old code
Igor Putovny [Wed, 15 Jan 2025 16:08:53 +0000 (17:08 +0100)] 
Increase readability of old code

6 months agoAdd comments
Igor Putovny [Mon, 13 Jan 2025 15:41:14 +0000 (16:41 +0100)] 
Add comments

7 months agoBugfix
Igor Putovny [Mon, 16 Dec 2024 12:46:11 +0000 (13:46 +0100)] 
Bugfix

7 months agoRecycle bucket ID when bucket is empty
Igor Putovny [Thu, 12 Dec 2024 13:51:43 +0000 (14:51 +0100)] 
Recycle bucket ID when bucket is empty

7 months agoSet px_origin where it makes sense
Igor Putovny [Wed, 11 Dec 2024 15:42:28 +0000 (16:42 +0100)] 
Set px_origin where it makes sense

7 months agoDelete parent pointer when removing node from trie
Igor Putovny [Wed, 11 Dec 2024 15:32:10 +0000 (16:32 +0100)] 
Delete parent pointer when removing node from trie

7 months agoLeaves don't have to be IN_FIB since we are not removing NON_FIB leaves anymore
Igor Putovny [Wed, 11 Dec 2024 14:14:42 +0000 (15:14 +0100)] 
Leaves don't have to be IN_FIB since we are not removing NON_FIB leaves anymore

7 months agoSmall changes
Igor Putovny [Mon, 9 Dec 2024 17:28:28 +0000 (18:28 +0100)] 
Small changes

7 months agoIncorporate updates into trie
Igor Putovny [Mon, 9 Dec 2024 17:06:15 +0000 (18:06 +0100)] 
Incorporate updates into trie

7 months agoImplement processing of incremental updates
Igor Putovny [Fri, 6 Dec 2024 17:31:23 +0000 (18:31 +0100)] 
Implement processing of incremental updates

8 months agoAdd prefix origin
Igor Putovny [Fri, 6 Dec 2024 15:01:55 +0000 (16:01 +0100)] 
Add prefix origin

8 months agoTrie dump now contains all node information
Igor Putovny [Thu, 5 Dec 2024 15:03:48 +0000 (16:03 +0100)] 
Trie dump now contains all node information

8 months agoSmall additions
Igor Putovny [Mon, 2 Dec 2024 14:15:19 +0000 (15:15 +0100)] 
Small additions

8 months agoAdd dumping trie
Igor Putovny [Mon, 2 Dec 2024 14:04:30 +0000 (15:04 +0100)] 
Add dumping trie

8 months agoProcess incremental updates in rt_notify()
Igor Putovny [Mon, 2 Dec 2024 12:56:09 +0000 (13:56 +0100)] 
Process incremental updates in rt_notify()

8 months agoImplement function to process incremental update
Igor Putovny [Fri, 29 Nov 2024 16:44:49 +0000 (17:44 +0100)] 
Implement function to process incremental update

8 months agoRewrite function for allocating bucket IDs
Igor Putovny [Fri, 29 Nov 2024 14:00:35 +0000 (15:00 +0100)] 
Rewrite function for allocating bucket IDs

8 months agoRoot has a depth 0 instead of 1
Igor Putovny [Mon, 25 Nov 2024 15:51:15 +0000 (16:51 +0100)] 
Root has a depth 0 instead of 1

8 months agoDo not delete potential buckets in the third pass
Igor Putovny [Wed, 20 Nov 2024 12:42:11 +0000 (13:42 +0100)] 
Do not delete potential buckets in the third pass

8 months agoRename bucket to original_bucket
Igor Putovny [Mon, 18 Nov 2024 14:41:05 +0000 (15:41 +0100)] 
Rename bucket to original_bucket

8 months agochoose_lowest_id_bucket() now returns the bucket, it does not assign it
Igor Putovny [Mon, 18 Nov 2024 14:04:50 +0000 (15:04 +0100)] 
choose_lowest_id_bucket() now returns the bucket, it does not assign it

8 months agoCheck ancestors after aggregation
Igor Putovny [Mon, 18 Nov 2024 13:42:22 +0000 (14:42 +0100)] 
Check ancestors after aggregation

8 months agoSmall changes
Igor Putovny [Fri, 15 Nov 2024 16:35:51 +0000 (17:35 +0100)] 
Small changes

9 months agoCleanup
Igor Putovny [Fri, 11 Oct 2024 14:12:18 +0000 (16:12 +0200)] 
Cleanup

9 months agoDon't assign selected bucket to imaginary node in the third pass
Igor Putovny [Fri, 11 Oct 2024 12:41:49 +0000 (14:41 +0200)] 
Don't assign selected bucket to imaginary node in the third pass

9 months agoSilence unused variable warning
Igor Putovny [Fri, 11 Oct 2024 12:40:35 +0000 (14:40 +0200)] 
Silence unused variable warning

9 months agoAdd more assertions
Igor Putovny [Fri, 11 Oct 2024 12:36:52 +0000 (14:36 +0200)] 
Add more assertions

9 months agoCreate function to choose bucket with the lowest ID from the set of potential buckets
Igor Putovny [Wed, 9 Oct 2024 15:46:28 +0000 (17:46 +0200)] 
Create function to choose bucket with the lowest ID from the set of potential buckets

9 months agotrie_insert_prefix() now allows updating a bucket of existing prefix
Igor Putovny [Mon, 7 Oct 2024 15:02:01 +0000 (17:02 +0200)] 
trie_insert_prefix() now allows updating a bucket of existing prefix

9 months agoFix wording in comments
Igor Putovny [Mon, 7 Oct 2024 10:34:17 +0000 (12:34 +0200)] 
Fix wording in comments

10 months agoDo not delete trie after finishing aggregation
Igor Putovny [Fri, 4 Oct 2024 14:29:08 +0000 (16:29 +0200)] 
Do not delete trie after finishing aggregation

10 months agoModify merge_potential_buckets() to return whether the target set has changed
Igor Putovny [Wed, 2 Oct 2024 15:00:21 +0000 (17:00 +0200)] 
Modify merge_potential_buckets() to return whether the target set has changed

10 months agoAdd selected bucket and FIB status to node
Igor Putovny [Thu, 26 Sep 2024 17:29:02 +0000 (19:29 +0200)] 
Add selected bucket and FIB status to node

10 months agoSecond pass doesn't need protocol
Igor Putovny [Wed, 25 Sep 2024 11:00:57 +0000 (13:00 +0200)] 
Second pass doesn't need protocol

10 months agonode_insert_potential_bucket() accepts bucket pointer, not an ID
Igor Putovny [Tue, 24 Sep 2024 17:00:00 +0000 (19:00 +0200)] 
node_insert_potential_bucket() accepts bucket pointer, not an ID

10 months agoRemove settle timer
Igor Putovny [Thu, 19 Sep 2024 15:12:15 +0000 (17:12 +0200)] 
Remove settle timer

10 months agoRefactor
Igor Putovny [Wed, 18 Sep 2024 14:00:40 +0000 (16:00 +0200)] 
Refactor

10 months agoRename
Igor Putovny [Tue, 17 Sep 2024 12:21:13 +0000 (14:21 +0200)] 
Rename

10 months agoUse hmap for assigning bucket IDs
Igor Putovny [Tue, 17 Sep 2024 10:36:38 +0000 (12:36 +0200)] 
Use hmap for assigning bucket IDs

10 months agoLog time to measure duration of individual aggregation phases
Igor Putovny [Mon, 16 Sep 2024 14:52:49 +0000 (16:52 +0200)] 
Log time to measure duration of individual aggregation phases

11 months agoImplement bitmaps for storing potential buckets
Igor Putovny [Tue, 27 Aug 2024 12:01:31 +0000 (14:01 +0200)] 
Implement bitmaps for storing potential buckets

11 months agoDelete unnecessary code
Igor Putovny [Fri, 23 Aug 2024 15:36:43 +0000 (17:36 +0200)] 
Delete unnecessary code

11 months agoBugfix
Igor Putovny [Mon, 19 Aug 2024 13:24:52 +0000 (15:24 +0200)] 
Bugfix

During implementation of the new mechanism of storing potential buckets it was
found that aggregator allocates more than 4000 buckets despite routes in the
configuration file being grouped to approximately 200 buckets.

Upon closer inspection it became clear that tmp_bucket in aggregator_rt_notify()
was allocated in the linpool when it should have been allocated on stack.
Moreover, tmp_bucket was allocated without additional space for aggr_data.
These data were never copied from tmp_bucket to new_bucket.

This was the source of false negative results of HASH_FIND. Buckets are compared
not only by their hashes, but also lists of aggr_data. Because same_val_list()
was reading beyond allocated memory, buckets were never equal. HASH_FIND
therefore returned NULL, which prompted aggregator to create many more buckets
despite already existing buckets with the same hash.

11 months agoAdd logs about number of nodes
Igor Putovny [Thu, 15 Aug 2024 09:31:09 +0000 (11:31 +0200)] 
Add logs about number of nodes

11 months agoAvoid unnecessary allocation of nodes in the first pass
Igor Putovny [Wed, 14 Aug 2024 14:47:22 +0000 (16:47 +0200)] 
Avoid unnecessary allocation of nodes in the first pass

12 months agoSplit third pass function into two functions
Igor Putovny [Wed, 31 Jul 2024 16:12:50 +0000 (18:12 +0200)] 
Split third pass function into two functions
(in order to get rid of redundant condition testing)

12 months agoAdd ancestor pointer to enable faster lookup of ancestor with non-null bucket
Igor Putovny [Wed, 17 Jul 2024 12:04:19 +0000 (14:04 +0200)] 
Add ancestor pointer to enable faster lookup of ancestor with non-null bucket

12 months agoWrite documentation berry blackberry
Igor Putovny [Wed, 10 Jul 2024 13:12:49 +0000 (15:12 +0200)] 
Write documentation

12 months agoUpdate time before and after aggregation
Igor Putovny [Wed, 10 Jul 2024 13:10:57 +0000 (15:10 +0200)] 
Update time before and after aggregation

12 months agoAdd logging option to log prefix aggregation progress
Igor Putovny [Wed, 10 Jul 2024 13:07:54 +0000 (15:07 +0200)] 
Add logging option to log prefix aggregation progress

12 months agoChange order of parameters, make aesthetic changes
Igor Putovny [Wed, 10 Jul 2024 12:06:29 +0000 (14:06 +0200)] 
Change order of parameters, make aesthetic changes

12 months agoAdd unique ID to buckets and compare them by this ID
Igor Putovny [Wed, 10 Jul 2024 11:09:48 +0000 (13:09 +0200)] 
Add unique ID to buckets and compare them by this ID

12 months agoAdd counters of nodes with assigned bucket
Igor Putovny [Wed, 10 Jul 2024 10:41:18 +0000 (12:41 +0200)] 
Add counters of nodes with assigned bucket