Several minor fixes
VPN4 and VPN6 literals
From now on, protocol static accepts VPN4 and VPN6 addressess.With some concerns about VPN6 Route Distinguishers, I finally choseto have the same format as for VPN4 (where it is defined by RFC 4364).
Netlink: MPLS routes in kernel
Anyway, Bird is now capable to insert both MPLS routes and MPLS encaproutes into kernel.
It was (among others) needed to define platform-specific AF_MPLS to 28as this constant has been assigned in the linux kernel.
No support for BSD now, it may be added in the future.
MPLS: added net_addr_mpls variant of net_addr
Client: No need for birdlib functions
Basic flow specification support (RFC 5575)
Add flow4/flow6 network and rt-table type and operations, config grammarand static protocol support.
Squashed flowspec branch from Pavel Tvrdik.
Merge branch 'int-new-rpki-squashed' (early part) into int-new
Integrated and extensible BGP with generalized AFI handling,support for IPv4+IPv6 AFI and unicast+multicast SAFI.
LibSSH may be switched off together with RPKI
Add `.asn' operator to all ROA prefixes in filters
Example: bird> eval (184.108.40.206/16 max 20 as 1234).asn 1234
Todo: Should be described in user docs
RPKI protocol with one cache server per protocol
The RPKI protocol (RFC 6810) using the RTRLib(http://rpki.realmv6.org/) that is integrated insidethe BIRD's code.
Implemeted transports are: - unprotected transport over TCP - secure transport over SSHv2...
Add lp_strdup function for string duplication on linpool
Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0
Unit Testing for BIRD
- Unit Testing Framework (BirdTest) - Integration of BirdTest into the BIRD build system - Tests for several BIRD modules
Based on squashed Pavel Tvrdik's int-test branch, updated for current int-new branch.
Merge branch 'master' into int-new
Minor code cleanups
Merge tag 'v1.6.2' into int-new
Add missing extern
RIP: Use message authentication interface
Based on former commit from Pavel Tvrdik
Add generic message authentication interface
Add generic interface for generating and verifying MACs (messageauthentication codes). Replace multiple HMAC implementation witha generic one.
Build: switch on -Wextra, get rid of most of the warnings
There are several unresolved -Wmissing-field-initializers on olderversions of GCC than 5.1, all of them false positive.
Log: Fix broken syslog name
BIRD passed string from configuration to openlog(), which kept itinternally. After reconfiguration the old string was freed, thereforeopenlog had invalid copy.
Thanks to Chris Caputo for the original patch.
IO: Minor changes in socket AF handing
AF can be specified implicitly by saddr or daddr, flags SKF_V4ONLY andSKF_V6ONLY are to be removed.
Merge branch 'int-new' of gitlab.labs.nic.cz:labs/bird into int-new
Hash: Fix of previous commit
Make int-new compilable again
Merge remote-tracking branch 'origin/int-new' into int-new
Merge remote-tracking branch 'origin/master' into int-new
Hash: fixed rta hashing wrt. structure padding
Miscellaneous minor fixes
Prog Doc: Complete several missing parameters
Merge branch 'int-new' into int-new-merged
Build system reworked to one global Makefile with includes and no nesting
Also removed the lib-dir merging with sysdep. Updated #include'saccordingly.
Fixed make doc on recent Debian together with moving generated doc intoobjdir.
Moved Makefile.in into root dir...
Add the Babel routing protocol (RFC 6126)
This patch implements the IPv6 subset of the Babel routing protocol.Based on the patch from Toke Hoiland-Jorgensen, with some heavymodifications and bugfixes.
Thanks to Toke Hoiland-Jorgensen for the original patch.
BSD: Add the IPsec SA/SP database entries control
Add code for manipulation with TCP-MD5 keys in the IPsec SA/SP databaseat FreeBSD systems. Now, BGP MD5 authentication (RFC 2385) keys arehandled automatically on both Linux and FreeBSD.
Based on patches from Pavel Tvrdik.
Merge branch 'master' into int-new-channels
Main: Add local option
Add option that changes default paths for config file and control socketto the current working directory.
IO: Replace RX priority heuristic with explicit mark
In BIRD, RX has lower priority than TX with the exception of RX fromcontrol socket. The patch replaces heuristic based on socket type withexplicit mark and uses it for both control socket and BGP session waiting...
Birdlib: Modify lists to avoid problems with pointer aliasing rules
The old linked list implementation used some wild typecasts and requiredGCC option -fno-strict-aliasing to work properly. This patch fixes that.However, we still keep the option due to other potential problems....
Birdlib: Do cleanups after remove/free
To avoid byzantine behavior in case of some errors, linked lists arecleared after rem_node() and resource headers are cleared after rfree().
Hash: typecast error fix
Updated RTA hashes to 32-bit values.
... and reworked the hashes a bit. Also added mem_hash functionwhich just computes a hash of given memory block.
Channels - explicit links between protocols and tables
The patch adds support for channels, structures connecting protocols andtables and handling most interactions between them. The documentation ismissing yet.
NET ROAx: add max_pxlen, fix format
Net address format: Do not print the -4 or -6 suffix in %I4 and %I6
NET ROAx more small changes
- Remove `u8 src` from net_add_roaX- Add `u8 max_pxlen` to net_add_roaX- Add some missing macro and functions for ROA- Remove ASN from hash function for ROA
Thanks to Ondrej Santiago Zajicek
ROA change printf 'ASN: xxx' to 'ASxxx'
Hidden AF_INET* inside sysdep/
Add NET ROA4/6 structures
Explicit ip4_addr / ip6_addr printf support
Move ID allocator to a separate file and use it also in OSPF
Follow-up work on integration
Better fix of missing AF_INET6? definition in lib/socket.h
Moved the code to sysdep.
BSD wants to include sys/socket.h in lib/socket.h (AF_INET6? definitions)
Contains some patches from Jan Moskyto Matejka
Integrated address print lengths
Minor changes by Ondrej Santiago Zajicek
Implemented missing prefix manipulation functions
Stop perusing f_prefix for non-prefix-set uses
Multiple changes by Ondrej Santiago Zajicek
Removed BITS_PER_IP_ADDRESS, MAX_PREFIX_LENGTH, BIRD_AF
Explicit setting of AF_INET(6|) in IP socket creation. BFD set to listenon v6, without setting the V6ONLY flag to catch both v4 and v6 traffic.
Squashing and minor changes by Ondrej Santiago Zajicek
Netlink and BSD: Integrating IPv4 and IPv6
MD5: Mormalize naming style
Merge branch 'master' into rip-new
Some consts for function arguments
Patch from Pavel Tvrdik
Minor changes to SHA hash functions
Add SHA-384/512 and HMAC-SHA-384/512 crypto hash
Add SHA-224/256 and HMAC-SHA-224/256 crypto hash
Add SHA1 and SHA1-HMAC crypto hash
Add get_u64() and put_u64() into lib/unaligned.h
Follow-up commit on integrated BIRD
Use net_addr for interface address prefixes, support net_addr inconfiguration parser.
Initial commit on integrated BIRD
New data types net_addr and variants (in lib/net.h) describingnetwork addresses (prefix/pxlen). Modifications of FIB structuresto handle these data types and changing everything to use thesedata types instead of prefix/pxlen pairs where possible....
Major RIP redesign
The new RIP implementation fixes plenty of old bugs and also adds supportfor many new features: ECMP support, link state support, BFD support,configurable split horizon and more. Most options are now per-interface.
BGP multipath support
Kernel option 'merge paths' allows to merge routes exported to kernelprotocol (currently BGP and static routes) to multipath routes.
unsigned [int] -> uint
unsgined char -> byte
OSPF: Redesign LSA checksumming
New LSA checksumming code separates generic Fletcher-16 and OSPF-specificcode and avoids back and forth endianity conversions, making it much morereadable and also several times faster.
Implement latency tracking, internal event log and watchdog
Add minor comment
Use IP_PORTRANGE_HIGH for BFD where available
Better Clang compatibility
Add const to a param msg at functions log_msg, log_rl, die, bug and debug
Fininshing integrated OSPF.
Integrated IP functions.
Merge remote-tracking branch 'origin/master' into soft-int
Implements token bucket filter for rate limiting.
Fixes integer overflow in show memory command.
Thanks to Job Snijders for the bugreport.
Temporary integrated OSPF commit.
IPv4/IPv6 integrated socket code.
Fixed bug in unused function.
BGP graceful restart support.
Also significant core protocol state changes needed for that,global graceful restart recovery state and kernel proto supportfor recovery.
Merge branch 'add-path'
Many changes in I/O and OSPF sockets and packet handling.
I/O: - BSD: specify src addr on IP sockets by IP_HDRINCL - BSD: specify src addr on UDP sockets by IP_SENDSRCADDR - Linux: specify src addr on IP/UDP sockets by IP_PKTINFO - IPv6: specify src addr on IP/UDP sockets by IPV6_PKTINFO...
Fixes some bugs and uses generic hash implementation.
Merge branch 'master' into add-path
filter/filter.c nest/proto.c nest/rt-table.c proto/bgp/bgp.h proto/bgp/config.Y
Changes identifiers to avoid use of reserved ones.
Merge commit 'origin/bfd'