Maria Matejka
182a97f5e6
Lockless hostentry resolution
...
Now the hostentry doesn't need to lock table, instead it tracks the
hostentry version and retries if the hostentry changed while updating.
2024-05-22 11:34:34 +02:00
Maria Matejka
83a409abd2
Cached route attributes now have explicitly marked layers
...
Also the rta_* functions renamed to ea_* functions
2024-05-22 11:34:34 +02:00
Maria Matejka
46164395b2
Fixed all implicit seq_cst warnings caused by the previous commit
2024-05-22 11:34:34 +02:00
Maria Matejka
670c46725b
Fixed announcement inconsistency between feeds and regular exports
2024-05-22 11:34:34 +02:00
Maria Matejka
2eebb680c2
Fixed best route announcements after NHU
...
When more routes in one net changed at once, the best route
announcements were inconsistent which confused exporters.
2024-05-22 11:34:34 +02:00
Maria Matejka
67aafd99d3
Route flag REF_OBSOLETE
...
Marking routes obsolete when being removed from table, just to be sure.
2024-05-22 11:34:34 +02:00
Maria Matejka
6a13c02d3b
Removed the obsolete birdloop flagger
...
This was useful when events were locking. As now sending events is lockless,
we can drop this obsolete routine for good.
2024-05-22 11:34:34 +02:00
Maria Matejka
59dc95aa25
Simplified table deletion (one less step)
2024-05-22 11:34:34 +02:00
Maria Matejka
728d19703d
Hostentry usecount converted to lfuc
2024-05-22 11:34:34 +02:00
Maria Matejka
e0a1bbdf65
Lockfree usecount: deferring unlocks to the metaloop
...
This allows us for easy temporary locks without additional burden of explicit cleanup.
2024-05-22 11:34:34 +02:00
Maria Matejka
a6ef8cd492
Route table export journal converted to the generic structure
2024-05-22 11:34:34 +02:00
Maria Matejka
684332b7d2
Replacing the NHU table loop flag with a proper event
2024-05-22 11:34:34 +02:00
Maria Matejka
6bbe9dea3a
Flowspec links don't peruse the all-hooks list for lookup
2024-05-22 11:34:34 +02:00
Maria Matejka
77a0310f87
Refactoring: back-merged export data structures
...
Table-specific structures inheriting commons are too crazy.
2024-05-22 11:34:33 +02:00
Maria Matejka
261a953d7e
Export table dump temporarily switched off
2024-05-22 11:34:33 +02:00
Maria Matejka
cb2c9c8cc0
Added and explicit target table to the ROA subscription object
2024-05-22 11:34:33 +02:00
Maria Matejka
10f41cda87
Refactoring of struct rt_pending_export
...
Now it stores const rte * instead of struct rte_storage * to allow for
different storage backends.
2024-05-22 11:34:33 +02:00
Maria Matejka
fe3d7c1a17
Merge a branch of fixes and updates needed for stabilization of v3.
...
Merge commit 'c06ce709' into HEAD
2024-05-19 11:28:03 +02:00
Maria Matejka
c06ce7090f
Static: Unlock IGP tables on cleanup to avoid problems with hostentry unlocking
2024-05-18 15:50:03 +02:00
Maria Matejka
1e55a8168a
Fixed in-table route refresh counter to not randomly add 256
2024-05-18 15:47:45 +02:00
Maria Matejka
a9124be384
Fixed hostcache notifier pool
...
This pool has to be the service pool to allow the seq bitmaps to grow
from the exporter and feeder routines
2024-05-18 15:47:45 +02:00
Maria Matejka
e38cd2b215
Fixed reporting about exported routes
2024-05-18 15:47:12 +02:00
Maria Matejka
3a2e423d3e
Undefined behavior fix
2024-05-18 15:41:33 +02:00
Maria Matejka
3371ea0843
CLang compilation fix
2024-05-18 15:41:10 +02:00
Ondrej Zajicek
0883ce66bf
Merge commit '1b064355f752b9bfe4644f775697bbd9b711f762' into thread-next
2024-04-01 18:20:18 +02:00
Ondrej Zajicek
4036da3732
Nest: Fix bitfield attributes
...
Fix missing route lookup, causing crash when accessing route attribute.
Also fix additional space in bitfield formatting.
2024-03-28 19:46:24 +01:00
Ondrej Zajicek
c195c7a0d5
Merge commit '224a152c53f304881f8616a1c9255b467062a069' into thread-next
2024-03-28 16:22:23 +01:00
Ondrej Zajicek
62c9f12dfc
Merge commit '574d7eb241a60622b0573ab1460cb23d968ba1cc' into thread-next
2024-03-28 15:00:40 +01:00
Ondrej Zajicek
468f1d6547
Nest: Improve printing of hostentries with MPLS labels
...
MPLS labels in hostentry should be printed with 'mpls' keyword instead of
'labels' to be consistent with the rest of the 'show route' output.
2024-03-27 23:26:25 +01:00
Ondrej Zajicek
eadebc287b
Nest: Fix printing of hostentry table
...
When hostentry is printed, it should show the table in which the nexthop
is resolved, not the dependend one.
2024-03-27 23:16:51 +01:00
Ondrej Zajicek
1b064355f7
Client: Add support for completion of command options
...
We can easily extend command completion to handle also keywords for
command options. Help for command options is not yet supported.
2024-03-05 19:04:10 +01:00
Ondrej Zajicek
114be2af28
Filter: Add route attribute gw_mpls_stack
...
Add route attribute gw_mpls_stack to make MPLS stack of route nexthop
accessible from filters. Its type is T_CLIST, which is really not correct
(as it is a list, while T_CLIST is a set). Therefore, we keep this
attribute *undocumented* and it will be *changed* without further notice.
Based on a patch from Trisha Biswas <tbiswas@fastly.com>, thanks!
2024-03-05 16:47:08 +01:00
Ondrej Zajicek
224a152c53
Filter: Add support for string route attribute
2024-02-14 14:29:19 +01:00
Alexander Zubkov
574d7eb241
BGP: Allow multiple EBGP neighbors with the same peer.
...
We can distinguish BGP sessions if at least one side uses a different IP
address. Extend olock mechanism to handle local IP as a part of key, with
optional wildcard, so BGP sessions could local IP in the olock and not
block themselves.
2024-02-07 19:11:10 +01:00
Maria Matejka
3b217f2984
Fixed L3VPN after merge to v3.
...
Semantics of rt_get_source() has changed between v2 and v3. Also other
minor fixes were needed to make it run.
2024-01-30 23:14:10 +01:00
Maria Matejka
06030d8bf0
Hostentry eattrs are now properly zeroed
2024-01-30 23:14:10 +01:00
Maria Matejka
95adf7b0fa
Fixed regression in route feeding.
...
We were, once again, forgetting to mark empty-net journal entries as
processed, as was fixed in 32bb548c11
.
Introduced in 548dbb2252
.
Caught by cf-ebgp-graceful.
2024-01-30 21:31:13 +01:00
Maria Matejka
29e7cd4a7c
Showing MPLS labels in hostentry display
2024-01-29 22:12:38 +01:00
Maria Matejka
1b0d3f5c8c
Merge commit 'v2.14-83-g1709843f' into thread-next
2024-01-28 14:56:01 +01:00
Maria Matejka
1709843f15
Merge commit 'v2.14-30-g41d6002f' into mq-merge-step-2
2024-01-28 14:55:50 +01:00
Maria Matejka
41d6002f59
Merge commit 'a740054db50b8532680bd1673a5d4519af889c0f' into mq-merge-step-1
2024-01-28 14:55:49 +01:00
Maria Matejka
94a95a6944
Merge commit 'v2.14-28-g87fcb810' into mq-merge-step-2
2024-01-28 14:54:06 +01:00
Maria Matejka
87fcb810af
Merge commit '06301a991d80597a2a0a9e449d0cdf4bc1eda6d1' into mq-merge-step-1
2024-01-28 14:54:05 +01:00
Maria Matejka
bd56a41b3a
Merge commit '5973031460372a4d695c44a9f398d516b0e5bac1' into mq-merge-step-1
2024-01-28 14:45:04 +01:00
Maria Matejka
8d2ec536d9
Merge commit 'v2.13.1-183-g2b05844c' into thread-next
2024-01-28 14:28:17 +01:00
Maria Matejka
2b05844cfb
Merge commit 'v2.13.1-139-gc9d1ebbd' into mq-merge-step-2
2024-01-28 14:28:09 +01:00
Maria Matejka
c9d1ebbd42
Merge commit 'ba01a6f2e66d03eb5d9426fdf4973f30e09c5710' into mq-merge-step-1
2024-01-28 14:28:07 +01:00
Maria Matejka
ea0f2c6194
Fixed attributes normalization with underlays in place
2024-01-28 13:16:25 +01:00
Maria Matejka
f9d3112d01
Interfaces: fixed locking when address is deleted implicitly
2024-01-27 19:01:34 +01:00
Maria Matejka
57b5eb5cbd
Merge commit 'v2.13.1-162-g5bf25678' into thread-next
2024-01-27 19:01:06 +01:00
Ondrej Zajicek
f40e2bc270
Nest: Fix bug in recursive routes with MPLS-labeled nexthops
...
When a recursive route with MPLS-labeled nexthop was exported to kernel
and read back, the nexthop_same() failed due to different labels_orig
field and kernel protocol reinstalled it unnecessarily.
For comparing hext hops, route cache has to distinguish ones with
different labels_orig, but KRT has to ignore that, so we need two
nexthop compare functions.
Thanks to Marcel Menzel for the bugreport.
2024-01-27 17:38:06 +01:00
Maria Matejka
5bf2567853
Merge commit 'v2.13.1-125-g90b9e871' into mq-merge-step-2
2024-01-26 23:29:17 +01:00
Maria Matejka
90b9e871b9
Merge commit 'be09b030ed40c76ee0727dd3980df77094fdc907' into mq-merge-step-1
2024-01-26 23:29:14 +01:00
Maria Matejka
8fb1f098d1
Fixes for CLang
2024-01-26 14:50:56 +01:00
Maria Matejka
25e20485ae
Fixed route table attribute caching
2024-01-26 14:42:55 +01:00
Maria Matejka
365ea12ea1
MPLS Subsystem Proper Locking
...
Added also some debug lines if debug is on.
2024-01-26 14:42:44 +01:00
Maria Matejka
e711a991d4
MPLS: FEC Map moved from protocol to MPLS channel
2024-01-08 13:03:25 +01:00
Maria Matejka
34d040a034
MPLS: Domain list locked by The BIRD Lock
2024-01-08 13:03:25 +01:00
Maria Matejka
9815353c5e
MPLS: Putting internal objects aside
2024-01-08 13:03:25 +01:00
Maria Matejka
f0da632b3c
Channels now can have external obstacles temporarily blocking their shutdown
2024-01-08 13:03:25 +01:00
Maria Matejka
e4e90c6f4d
Channel: Replacing refeed status trie by bitmap
...
This fixes a bug with reloading non-IP channels.
2024-01-08 12:02:25 +01:00
Maria Matejka
548dbb2252
Replacing table FIB by netindex and simple pointer block
...
Using the netindex data structure to simplify route storage inside route
tables. This should also help with future unlocking of route import.
2024-01-08 09:34:32 +01:00
Maria Matejka
3b31138854
Dropped forgotten pieces of orphaned internal API
2024-01-08 09:23:35 +01:00
Ondrej Zajicek
7d2c7d59a3
Nest: Fix memory alignment in attribute cache
...
In attribute cache, adata structures were stored densely in one memory
block, without regard to alignment. Let's force at least u32 alignment.
2023-12-13 17:46:16 +01:00
Maria Matejka
25906bc5e9
Merge commit 'ef814fb2d6415206fce280c37466ea889291b043' into HEAD
2023-12-08 12:13:58 +01:00
Maria Matejka
8cf1be6f67
Merge commit 'bb094fb6'
2023-12-08 12:09:30 +01:00
Maria Matejka
ef814fb2d6
Merge commit 'bb094fb6' into mq-aggregator-for-v3
2023-12-08 12:09:17 +01:00
Maria Matejka
bb094fb6c7
Refactoring also net_roa_check
...
Having 4 functions doing almost the same is more mess than three macros.
2023-12-08 12:08:28 +01:00
Maria Matejka
8c19f8a209
Merge commit 'db1eb46664d4c76d56dc55a63ce7abe853fc6862' into HEAD
2023-12-08 11:33:43 +01:00
Maria Matejka
db1eb46664
Merge commit '54ddf90f6370f06efc71c3ffd6e02d031a86866f' into mq-aggregator-for-v3
2023-12-08 09:08:38 +01:00
Maria Matejka
4aac1b259f
Merge commit '54ddf90f'
2023-12-08 08:30:30 +01:00
Maria Matejka
54ddf90f63
Conf: debug tables
...
For now just a dummy config but it is needed for forward
compatibility with v3.
2023-12-07 14:38:05 +01:00
Maria Matejka
9a91ea52db
Refactoring of net_route
2023-12-07 14:11:16 +01:00
Maria Matejka
3b48dc9bce
Table: Adding route refresh begin and end debug messages
2023-12-07 14:11:16 +01:00
Maria Matejka
1df615991c
Generalized the rte_src lockfree usecount algorithm
2023-12-04 10:39:32 +01:00
Maria Matejka
0bcbff42ca
Table: nicer route validation errors
2023-12-04 10:39:32 +01:00
Maria Matejka
5a916ed53f
Locking: Dropping DEFINE_DOMAIN ugly macro
2023-12-04 10:39:32 +01:00
Maria Matejka
080e580834
Route table objects use the new locked object macro stack
2023-11-20 12:09:31 +01:00
Maria Matejka
8558e666e0
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 17:38:31 +01:00
Maria Matejka
219dc0fdb5
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 16:53:34 +01:00
Maria Matejka
e6362b21dc
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 16:34:26 +01:00
Maria Matejka
c4c2148ab9
Merge commit 'a7a9df86' into mq-aggregator-for-v3
2023-11-09 16:34:20 +01:00
Maria Matejka
4f2212ccf2
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 16:34:04 +01:00
Maria Matejka
6067ad6c07
Merge commit '9b775859' into mq-aggregator-for-v3
2023-11-09 16:00:44 +01:00
Maria Matejka
8f2f612e2f
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:59:03 +01:00
Maria Matejka
926c3295d4
Merge commit 'b6385dec' into mq-aggregator-for-v3
2023-11-09 15:58:58 +01:00
Maria Matejka
3ccf890e58
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:58:41 +01:00
Maria Matejka
45ffbb4d76
Merge commit '81a20ca5' into mq-aggregator-for-v3
2023-11-09 15:50:39 +01:00
Maria Matejka
e61fc5272a
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:50:32 +01:00
Maria Matejka
4d6620a008
Merge commit '35726051' into mq-aggregator-for-v3
2023-11-09 15:50:28 +01:00
Maria Matejka
2193b1efe4
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:50:15 +01:00
Maria Matejka
c7cc1ccd2e
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:50:13 +01:00
Maria Matejka
360de8fb68
Merge commit 'fcf22586' into mq-aggregator-for-v3
2023-11-09 15:50:02 +01:00
Maria Matejka
8429b4bc38
Merge commit '8e9e013b' into mq-aggregator-for-v3
2023-11-09 15:35:18 +01:00
Maria Matejka
e203c5a6dd
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:35:11 +01:00
Maria Matejka
eae4177220
Merge commit '3397ca51' into mq-aggregator-for-v3
2023-11-09 15:35:08 +01:00
Maria Matejka
00e40a6b80
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:20:13 +01:00
Maria Matejka
b979c6ce6e
Merge commit 'bcff3ae7' into mq-aggregator-for-v3
2023-11-09 11:06:07 +01:00
Maria Matejka
e5c320d44a
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 11:04:57 +01:00
Maria Matejka
6270373954
Merge commit '9ca86ef6' into mq-aggregator-for-v3
2023-11-09 10:52:53 +01:00