summaryrefslogtreecommitdiff
path: root/proto
AgeCommit message (Collapse)Author
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-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-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
2017-08-04radv: Fix RFC reference in commentsMichal 'vorner' Vaner
2017-07-04Implement onlink flag for nexthopsOndrej Zajicek (work)
Add proper support for per-nexthop onlink flag in routes to handle next hop addresses that are not covered by interface IP ranges. Supported by kernel and static protocols. Thanks to Vincent Bernat for the idea.
2017-06-14Babel: Fix pointer arithmetic in subtlv parsingOndrej Zajicek (work)
The subtlv parsing code was doing byte-based arithmetic with non-void pointers, causing it to read beyond the end of the packet. Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
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-09Babel: Implement IPv6 prefix compression on outgoing updatesOndrej Zajicek (work)
Previously, the Babel protocol would never use prefix compression on outgoing updates (but would parse it on incoming ones). This adds compression of IPv6 addresses of outgoing updates. The compression only works to the extent that the FIB is walked in lexicographic order; i.e. a prefix is only compressed if it shares bytes with the previous prefix in the same packet. 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.
2017-05-23Change parser to handle numbers as unsignedOndrej Zajicek (work)
Lexer always parsed numbers as unsigned, but parser handled them as signed and grammar contained many unnecessary checks for negativity.
2017-05-23Minor cleanups and fixesOndrej Zajicek (work)
2017-05-16Linpool: default allocation sizeJan Moskyto Matejka
2017-04-29Minor fixesOndrej Zajicek (work)
2017-04-28Merge master into int-newOndrej Zajicek (work)
2017-04-18Check validity of dest w.r.t. net_typeOndrej Zajicek (work)
Allow to define static roa/flow routes without dest.
2017-04-12BGP: Add support for SAFI 129 (VPN multicast)Ondrej Zajicek (work)
Which, in contrast to SAFI 128, does not use MPLS labels.
2017-04-12Static: Support for dual-AF IGP tablesOndrej Zajicek (work)
When recursive routes with hybrid next hops (e.g. IPv6 route with IPv4 next hop) are allowed, we need both IPv4 and IPv6 IGP tables.
2017-03-29BGP: Simplify igp table optionsOndrej Zajicek (work)
2017-03-29BGP: Update list of supported standardsOndrej Zajicek (work)
2017-03-26BGP: Support for routes with mixed-AF next hopsOndrej Zajicek (work)
Covers IPv4/VPNv4 routes with IPv6 next hop (RFC 5549), IPv6 routes with IPv4 next hop (RFC 4798) and VPNv6 routes with IPv4 next hop (RFC 4659). Unfortunately it also makes next hop hooks more messy. Each BGP channel now could have two IGP tables, one for IPv4 next hops, the other for IPv6 next hops.