summaryrefslogtreecommitdiff
path: root/proto
AgeCommit message (Collapse)Author
2017-12-08Enable ECMP and Link detection by defaultOndrej Zajicek (work)
ECMP is not enabled on BSD, where it is not supported by BIRD.
2017-12-08BGP: Fix IPv6 MPLS/VPN multicast SAFIOndrej Zajicek (work)
2017-12-08BGP: Autoconfigure BGP next hops from preferred addressesOndrej Zajicek (work)
2017-12-07Merge commit '1e8721e2aeccfbc3f533e8b8abc07582cee77e9a' into int-newOndrej Zajicek (work)
2017-12-07Merge commit '7b2c5f3d2826e3175bf31b1c36056c9efc587a2b' into int-newOndrej Zajicek (work)
2017-12-07Merge commit '98bb80a243b58c43453e9be69d19d0350286549c' into int-newOndrej Zajicek (work)
2017-12-07Timers: Revert temporary names and remove old timer.hOndrej Zajicek (work)
2017-12-07Timers: Fix TBF and some last remainsOndrej 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: Fix handling of IPv4 retractionsOndrej Zajicek (work)
Babel TLV parsing code rejected IPv4 retractions without next-hop, although next-hop is needed just for regular updates.
2017-12-07Babel: Remove babel_proto ptr from babel_entryOndrej Zajicek (work)
2017-12-07Babel: Fix hello timeout for short hello intervalsOndrej 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: Fix unicast seqno requestsOndrej Zajicek (work)
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-12-07BGP: Update to new timersOndrej Zajicek (work)
2017-12-07OSPF: Update to new timersOndrej Zajicek (work)
Note that recurrent timers are currently limited to ~1 hour.
2017-12-07Timers: Add typecast to unit-converting macrosOndrej Zajicek (work)
2017-12-07RIP: Update to new timersOndrej Zajicek (work)
2017-12-07RAdv: Update to new timersOndrej Zajicek (work)
2017-12-07RPKI: Update to new timersOndrej Zajicek (work)
2017-12-07Timers: Show sub-second times in some protocol outputsOndrej Zajicek (work)
2017-12-07Timers: Parse and format functions for microsecond timesOndrej Zajicek (work)
Date/time output (e.g. in logs, show commands) can use %f to specify subsecond time. By default, millisecond precision is used in output.
2017-12-07Timers: Replace old timers with microsecond timersOndrej Zajicek (work)
The old timer interface is still kept, but implemented by new timers. The plan is to switch from the old inteface to the new interface, then clean it up.
2017-12-07Timers: Split microsecond timers from BFD code to libOndrej Zajicek (work)
2017-12-07Nest: Maintain separate IPv4, IPv6 and LLv6 preferred addressesOndrej Zajicek (work)
Also redesign preferred address selection and update protocols to use appropriate preferred address. Based on a previous work by Jan Maria Matejka.
2017-11-28Babel: Parse flags in Hello TLVOndrej Zajicek (work)
RFC6126bis introduces a flags field for the Hello TLV, and adds a unicast flag that is used to signify that a hello was sent as unicast. This adds parsing of the flags field and ignores such unicast hellos, which preserves compatibility until we can add a proper implementation of the unicast hello mechanism. Thanks to Toke Hoiland-Jorgensen for the patch.
2017-10-17Babel: Interface address irrelevant for interface pattern matching.Jan Maria Matejka
2017-10-10OSPF: Add option to disable OSPFv3-AFOndrej Zajicek (work)
2017-10-10OSPF: Fix minor issue in TTL checkOndrej Zajicek (work)
The TTL check must be done after instance ID dispatch to avoid warnings when a physical iface is shared by multiple instances and some use TTL security and some not.
2017-10-10OSPF: Fix next hop calculation for PtP links in IPv4 OSPFv3-AFOndrej Zajicek (work)
In such case, next hop has to be taken from Link-LSA like in broadcast case, not from neighbor source address like in other PtP cases. Also add some checks, comments and code cleanup.
2017-10-10OSPF: Support of address families in OSPFv3Ondrej Zajicek (work)
OSPFv3-AF can handle multiple topologies of diferent address families (IPv4, IPv6, both unicast and multicast) using separate instances distinguished by instance ID ranges.
2017-10-06RAdv: Change specific route options to be per-interfaceOndrej Zajicek (work)
And change default values of specific route options to be consistent with values of default router options.
2017-10-04RAdv: Support for more specific routes (RFC 4191)Michal 'vorner' Vaner
The patch implements Default Router Preferences and More-Specific Routes (RFC 4191) for RAdv protocol, allowing to announce router preference and more specific routes in router advertisements. Routes can be exported to RAdv like to regular routing protocols. Some cleanups, bugfixes and other changes done by Ondrej Zajicek.
2017-09-19BGP: Shutdown communication (RFC 8203)Ondrej Zajicek (work)
The patch implements BGP Administrative Shutdown Communication (RFC 8203) allowing BGP operators to pass messages related to BGP session administrative shutdown/restart. It handles both transmit and receive of shutdown messages. Messages are logged and may be displayed by show protocol all command. Thanks to Job Snijders for the basic patch.
2017-09-12Backport some minor changes from int-newOndrej Zajicek (work)
2017-09-12Nest: VRF support for neighbor cache and olock codeOndrej Zajicek (work)
Actually much simpler than expected.
2017-09-06Basic VRF supportOndrej Zajicek (work)
Add basic VRF (virtual routing and forwarding) support. Protocols can be associated with VRFs, such protocols will be restricted to interfaces assigned to the VRF (as reported by Linux kernel) and will use sockets bound to the VRF. E.g., different multihop BGP instances can use diffent kernel routing tables to handle BGP TCP connections. The VRF support is preliminary, currently there are several limitations: - Recent Linux kernels (4.11) do not handle correctly sockets bound to interaces that are part of VRF, so most protocols other than multihop BGP do not work. This will be fixed by future kernel versions. - Neighbor cache ignores VRFs. Breaks config with the same prefix on local interfaces in different VRFs. Not much problem as single hop protocols do not work anyways. - Olock code ignores VRFs. Breaks config with multiple BGP peers with the same IP address in different VRFs. - Incoming BGP connections are not dispatched according to VRFs. Breaks config with multiple BGP peers with the same IP address in different VRFs. Perhaps we would need some kernel API to read VRF of incoming connection? Or probably use multiple listening sockets in int-new branch. - We should handle master VRF interface up/down events and perhaps disable associated protocols when VRF goes down. Or at least disable associated interfaces. - Also we should check if the master iface is really VRF iface and not some other kind of master iface. - BFD session request dispatch should be aware of VRFs. - Perhaps kernel protocol should read default kernel table ID from VRF iface so it is not necessary to configure it. - Perhaps we should have per-VRF default table.
2017-08-30RAdv: Some style nitpicksOndrej Zajicek (work)
2017-08-30RAdv: Configure how long a dead prefix is advertisedMichal 'vorner' Vaner
2017-08-30RAdv: Buffer prefixes awhile after they disappearMichal 'vorner' Vaner
Keep a cache of all the relevant prefixes we send out. When a prefix appears, insert it into the cache. If it dies, keep it there for a while, marked as dead. Send out the dead prefixes with zero lifetime.
2017-08-30RAdv: Extract prefix option preparationMichal 'vorner' Vaner
Put the prefix option preparation into a separate function. We're going to reuse that bit of code.
2017-08-09Merge branch 'master' into int-newOndrej Zajicek (work)
2017-08-09RAdv: Fix typoOndrej Zajicek (work)
2017-08-09RAdv: Style updatesMichal 'vorner' Vaner
Adapt the naming conventions to be a bit closer to the other protocols. proto_radv -> radv_proto struct radv_proto *ra -> struct radv_proto *p struct proto *p -> struct proto *P
2017-08-09RAdv: Style updatesMichal 'vorner' Vaner
Adapt the naming conventions to be a bit closer to the other protocols. proto_radv -> radv_proto struct radv_proto *ra -> struct radv_proto *p struct proto *p -> struct proto *P
2017-08-09radv: Fix RFC reference in commentsMichal 'vorner' Vaner