2
2
3
3
Released 2024-05-29.
4
4
5
+ This release features a lot of changes, big and small. The list below is not
6
+ exhaustive but tries to highlight and describe the bigger (and perhaps, more
7
+ important) ones.
8
+
5
9
6
10
Breaking changes
7
11
41
45
42
46
* RouteWorkshop / PaMap
43
47
44
- This release introduces the RouteWorkshop to create UPDATE messages based on
48
+ This release introduces the ` RouteWorkshop ` to create UPDATE messages based on
45
49
an NLRI and a set of attributes. For creation, inspection and manipulation of
46
50
those attributes, the ` PaMap ` is introduced. These new types work in
47
51
conjunction with the existing ` UpdateBuilder ` .
48
52
49
53
* BGP FSM (absorbed from _ rotonda-fsm_ )
50
54
51
- _ routecore_ now contains the code to enable actual BGP sessions, i.e. the BGP
52
- FSM and related machinery. By pulling this in into _ routecore_ allows for less
53
- dependency juggling, easier development iterations and more sensible code in
54
- all parts.
55
+ _ routecore_ now contains the code to enable for actual BGP sessions, i.e. the
56
+ BGP FSM and related machinery. By pulling this in into _ routecore_ allows for
57
+ less dependency juggling, easier development iterations and more sensible code
58
+ in all parts. All of this has some rough edges and is prone to changes on the
59
+ near future.
55
60
56
61
The _ rotonda-fsm_ crate for now is left as-is.
57
62
58
63
59
- * Route Selection ('BGP Decision Process') fundamentals
64
+ * Route Selection fundamentals
60
65
61
- This releases introduces a first attempt at providing handles to perform the
66
+ This release introduces a first attempt at providing handles to perform the
62
67
BGP Decision Process as described in RFC4271, colloquially known as 'route
63
68
selection' or 'best path selection'.
64
69
@@ -77,21 +82,23 @@ Other changes
77
82
78
83
After splitting of parts of _ routecore_ into the _ inetnum_ crate, the default
79
84
features set resulted in an almost empty library. Therefore the ` bgp ` flag is
80
- now on by default, and we introduced an ` fsm ` flag to enable the code absorbed
81
- from _ rotonda-fsm_ .
85
+ now on by default, and we introduced an ` fsm ` flag to enable the BGP FSM code
86
+ absorbed from _ rotonda-fsm_ .
82
87
83
88
84
89
Known limitations
85
90
86
91
* Constructed UPDATE messages are MultiProtocol-only
87
92
88
- No conventional withdrawals/announcements, IPv4 Unicast goes into MP path
89
- attributes as well.
90
-
93
+ With regards to announcing and withdrawing NLRI, the ` UpdateBuilder ` is currently
94
+ limited to putting everything in the MultiProtocol path attributes
95
+ (MP_REACH_NLRI, MP_UNREACH_NLRI), so even for IPv4 Unicast.
96
+
91
97
Note that this behaviour is considered preferable as it leads to somewhat more
92
- flexibility/resilience on the protocol level. The _ actual_ limitation in
93
- routecore is that the ` UpdateBuilder ` lacks the option to use the conventional
94
- PDU sections after all. We do plan to reintroduce this, however.
98
+ flexibility/resilience on the protocol level. But in case one of the peers
99
+ does not signal the capability of doing IPv4 Unicast in MultiProtocol
100
+ attributes, we should allow creation of PDUs in the traditional form anyway,
101
+ so we plan to reintroduce this functionality.
95
102
96
103
97
104
## 0.4.0
0 commit comments