summaryrefslogtreecommitdiff
path: root/proto/babel/babel.h
AgeCommit message (Collapse)Author
2018-05-03Babel: Add option to randomize router IDOndrej Zajicek (work)
When a Babel node restarts, it loses its sequence number, which can cause its routes to be rejected by peers until the state is cleared out by other nodes in the network (which can take on the order of minutes). There are two ways to fix this: Having stable storage to keep the sequence number across restarts, or picking a different router ID each time. This implements the latter, by introducing a new option that will cause BIRD to randomize a high 32 bits of router ID every time it starts up. This avoids the problem at the cost of not having stable router IDs in the network. Thanks to Toke Hoiland-Jorgensen for the patch.
2018-02-13Babel: Add source-specific routing supportOndrej Zajicek (work)
This patch adds support for source-specific routing to the Babel protocol. It changes the protocol to support both NET_IP6 and NET_IP6_SADR channels for IPv6 addresses. If only a NET_IP6 channel is configured, source-specific updates are ignored. Otherwise, non-source-specific routes are simply treated as source-specific routes with SADR prefix 0. Thanks to Toke Hoiland-Jorgensen for the original patch. Minor changes by Ondrej Santiago Zajicek.
2017-12-07Timers: Revert temporary names and remove old timer.hOndrej Zajicek (work)
2017-12-07Babel: More changes and bugfixesOndrej Zajicek (work)
Several changes and bugfixes in Babel, namely: - Exported route parameters stored directly in route table entry - Exported non-babel routes no longer stored in per-entry route list - Route update, selection and retraction simplified and fixed - Route feasibility is evalualated per update and stored with route - Unreachable route handling fixed, based on hold interval - Added 'show babel routes' command Overall, it fixes some issues with proper propagation of triggered updates, making Babel convergence after topology change almost instant.
2017-12-07Babel: Fix handling of seqno requestsOndrej Zajicek (work)
Old behavior has several deficiencies compared to standard behavior (no triggered updates for replies, no retransmissions, ...).
2017-12-07Babel: Remove babel_proto ptr from babel_entryOndrej Zajicek (work)
2017-12-07Babel: Revamp cost computation and run route selection when cost changeOndrej Zajicek (work)
Also fix several minor bugs and add 'limit' option for k-out-of-j link sensing strategy. Change default from 8-of-16 to 12-of-16. Change IHU expiry factor from 1.5 to 3.5 (as in RFC 6126).
2017-12-07Babel: Avoid batch seqno updatesOndrej Zajicek (work)
2017-12-07Babel: Fix Hello and IHU expirationOndrej Zajicek (work)
2017-12-07Babel: Update to new timersOndrej Zajicek (work)
2017-06-09Babel: Parse sub-TLVs and skip TLVs with mandatory sub-TLVOndrej Zajicek (work)
RFC6126bis formally introduces sub-TLVs to the Babel protocol, including mandatory sub-TLVs. This adds support for parsing sub-TLVs to the Babel protocol and skips TLVs that contain mandatory sub-TLVs, as per the spec. For details, see section 4.4 of https://tools.ietf.org/html/draft-ietf-babel-rfc6126bis-02 Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for the patch.
2017-06-08Babel: Add support for dual-stack IPv4/IPv6 operationOndrej Zajicek (work)
This adds support for dual-stack v4/v6 operation to the Babel protocol. Routing messages will be exchanged over IPv6, but IPv4 routes can be carried in the messages being exchanged. This matches how the reference Babel implementation (babeld) works. The nexthop address for v4 can be configured per interface, and will default to the first available IPv4 address on the given interface. For symmetry, a configuration option to configure the IPv6 nexthop address is also added. Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for the patch.
2016-12-10Babel: Update to integrated branchOndrej Zajicek (work)
2016-12-07Merge branch 'int-new-rpki-squashed' (early part) into int-newJan Moskyto Matejka
2016-12-07LibSSH may be switched off together with RPKIJan Moskyto Matejka
2016-12-07Make: upgrade Babel makefilesJan Moskyto Matejka
2016-11-01Build: switch on -Wextra, get rid of most of the warningsJan Moskyto Matejka
There are several unresolved -Wmissing-field-initializers on older versions of GCC than 5.1, all of them false positive.
2016-07-19Babel: Send wildcard retractions on shutdown and startupOndrej Zajicek (work)
This makes BIRD send a wildcard retraction on all interfaces before shutting down and right after starting up. This helps ensure that neighbours will discard the announced routes as soon as possible, rather than only after the normal timeout procedures. Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2016-07-19Babel: Make sure intervals do not overflowOndrej Zajicek (work)
Intervals are carried as 16-bit centisecond values, but kept internally in 16-bit second values, which causes a potential for overflow. This adds some checks to make sure this does not happen. Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2016-04-28Add the Babel routing protocol (RFC 6126)Ondrej Zajicek (work)
This patch implements the IPv6 subset of the Babel routing protocol. Based on the patch from Toke Hoiland-Jorgensen, with some heavy modifications and bugfixes. Thanks to Toke Hoiland-Jorgensen for the original patch.