Babel: More changes and bugfixes
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...
Babel: Fix handling of seqno requests
Old behavior has several deficiencies compared to standard behavior(no triggered updates for replies, no retransmissions, ...).
Babel: Fix handling of IPv4 retractions
Babel TLV parsing code rejected IPv4 retractions without next-hop,although next-hop is needed just for regular updates.
Babel: Remove babel_proto ptr from babel_entry
Babel: Fix hello timeout for short hello intervals
Babel: Revamp cost computation and run route selection when cost change
Also fix several minor bugs and add 'limit' option for k-out-of-jlink 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).
Babel: Fix unicast seqno requests
Babel: Avoid batch seqno updates
Babel: Fix Hello and IHU expiration
Babel: Update to new timers
Sysdep: Remove old timer code
Nest: Update to new timers
BGP: Update to new timers
OSPF: Update to new timers
Note that recurrent timers are currently limited to ~1 hour.
Timers: Add typecast to unit-converting macros
RIP: Update to new timers
RAdv: Update to new timers
RPKI: Update to new timers
Kernel: Update to new timers
Timers: Show sub-second times in some protocol outputs
Timers: Fix tests after timer change
Printf: Add support for microsecond times
Use '%t' in bsnprintf() for microsecond times (in btime) with variablesub-second precision.
Timers: Parse and format functions for microsecond times
Date/time output (e.g. in logs, show commands) can use %f to specifysubsecond time. By default, millisecond precision is used in output.
Timers: Replace old timers with microsecond timers
The old timer interface is still kept, but implemented by new timers. Theplan is to switch from the old inteface to the new interface, then cleanit up.
Timers: Integrate microsecond timers to the main loop
Timers: Split microsecond timers from BFD code to lib
BSD: Minor fix of penultimate commit
KRT: Minor fix of last commit
Nest: Maintain separate IPv4, IPv6 and LLv6 preferred addresses
Also redesign preferred address selection and update protocols to useappropriate preferred address.
Based on a previous work by Jan Maria Matejka.
Babel: Interface address irrelevant for interface pattern matching.
Iface address debug dump fix
OSPF: Add option to disable OSPFv3-AF
OSPF: Fix minor issue in TTL check
The TTL check must be done after instance ID dispatch to avoid warningswhen a physical iface is shared by multiple instances and some use TTLsecurity and some not.
OSPF: Fix next hop calculation for PtP links in IPv4 OSPFv3-AF
In such case, next hop has to be taken from Link-LSA like in broadcastcase, not from neighbor source address like in other PtP cases.
Also add some checks, comments and code cleanup.
OSPF: Support of address families in OSPFv3
OSPFv3-AF can handle multiple topologies of diferent address families(IPv4, IPv6, both unicast and multicast) using separate instancesdistinguished by instance ID ranges.
Fix bird.conf example
Make it syntactically correct, so it is accepted.
Merge branch 'master' into int-new
RAdv: Fix typo
RAdv: Style updates
Adapt the naming conventions to be a bit closer to the other protocols.
proto_radv -> radv_protostruct radv_proto *ra -> struct radv_proto *pstruct proto *p -> struct proto *P
radv: Fix RFC reference in comments
Configure: Fix a typo in checking of backtrace()
Implement onlink flag for nexthops
Add proper support for per-nexthop onlink flag in routes to handle nexthop addresses that are not covered by interface IP ranges. Supported bykernel and static protocols.
Thanks to Vincent Bernat for the idea.
Filters: Do not clamp EC set values to 16 bit for EC_GENERICs
Thanks to Lennert Buytenhek <email@example.com> for the patch.
Babel: Fix pointer arithmetic in subtlv parsing
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 <firstname.lastname@example.org>
Babel: Parse sub-TLVs and skip TLVs with mandatory sub-TLV
RFC6126bis formally introduces sub-TLVs to the Babel protocol, includingmandatory sub-TLVs. This adds support for parsing sub-TLVs to the Babelprotocol and skips TLVs that contain mandatory sub-TLVs, as per the spec....
Babel: Implement IPv6 prefix compression on outgoing updates
Previously, the Babel protocol would never use prefix compression on outgoingupdates (but would parse it on incoming ones). This adds compression of IPv6addresses of outgoing updates.
The compression only works to the extent that the FIB is walked in lexicographic...
Babel: Add documentation for dual-stack operation and options
This updates the documentation for the Babel protocol to mention the factthat it now supports dual-stack operation, and adds documentation for thenew next hop options.
Thanks to Toke Høiland-Jørgensen <email@example.com> for the patch.
Babel: Add support for dual-stack IPv4/IPv6 operation
This adds support for dual-stack v4/v6 operation to the Babel protocol.Routing messages will be exchanged over IPv6, but IPv4 routes can becarried in the messages being exchanged. This matches how the reference...
CLI: Fix bug in symbol handling introduced in previous patches
Workaround for older bisons
Conf: Replace keyword and symbol hash table with generic hash table.
The old hash table had fixed size, which makes it slow for config fileswith large number of symbols and symbol lookups. The new one is growingaccording to needs.
Client: Fix isspace() calls
Function isspace() expects to get unsigned chars (encoded as ints),not that it matters for plain ASCII.
Change parser to handle numbers as unsigned
Lexer always parsed numbers as unsigned, but parser handled them assigned and grammar contained many unnecessary checks for negativity.
Add a hint for an invalid IP prefix
bird> eval 220.127.116.11/16Invalid IPv4 prefix 18.104.22.168/16, maybe you wanted 22.214.171.124/16
bird> eval 1000:2000::/8Invalid IPv6 prefix 1000:2000::/8, maybe you wanted 1000::/8
Minor cleanups and fixes
Fix type mixing in flowspec formatting
Variable of u64 type was passed to vararg function as uint.
Fix VPN-RD parsing on 32-bit systems
When shift count >= width of type the behavior is undefined.
Fix some forgotten warnings
Fix of the previous fix
Avoid empty macro argument to avoid default behavior.
Fix minor bug in configure script
Space in action branch breaks build on some platforms.
Fix of the previous commit
History lib may be integrated to Readline lib
Fix build on systems with dirty headers
Merge remote-tracking branch 'origin/int-new' into int-new
One more configure cleanup
Simplify BIRD client library checks, add proper devel header checks andprefer dependency on just tinfo than full ncurses.
Client: manipulate history only if interactive
Linpool: default allocation size
Bird readline client saves its history.
Remove autoconf macros for time_t and alignment
Replaced by constant compile-time expressions. CPU_STRUCT_ALIGN is notreally correct, but is consistent with the old behavior.
Minor autoconf cleanups
Make indentation and quotation consistent in configure macros.Also remove --with-sysinclude option, which was broken for 7 yearsand nobody complained.
Thanks to Ruben Kerkhof for source patches.
Minor autoconf cleanup and documentation update
Some more autoconf cleanups
Replace integer type width detection with C99 fixed-width types.Also remove some unused or obsolete code.
Thanks to Ruben Kerkhof for the patchset.
Nest: split route show into separate file
Device: Fix option 'primary'
One last update to NEWS and example
NEWS and version update
BSD: Fix address scan on OpenBSD
Merge master into int-new
Flowspec: Max tcp mask length is 12 bits
Doc: BIRD example update
Test: Fix broken test for filters
Merge branch 'int-new' of gitlab.labs.nic.cz:labs/bird into int-new
Flowspec: split net_format_flowspec into several functions
Test: fixed broken test for VPN RD output
Debug: Add a Makefile rule for assembler intermediates.
The main Makefile rules directly compile to object files;this target is only for debug purposes.