MPLS: Label stack concatenation for recursive routes
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.
Static: Protocol rework wrt. struct nexthop changes; MPLS label support
Nexthop: Support for label stack in nest
Removing (struct rta)->cast. Never used.
Merged multipath and single-path data structures.
Dropped struct mpnh and mpnh_*()Now struct nexthop exists, nexthop_*(), and also included struct nexthopinto struct rta.
Also converted RTD_DEVICE and RTD_ROUTER to RTD_UNICAST. If it is neededto distinguish between these two cases, RTD_DEVICE is equivalent to...
Tests: Fix build
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
BGP redesign
Integrated and extensible BGP with generalized AFI handling,support for IPv4+IPv6 AFI and unicast+multicast SAFI.
Check table type at `show route for ...'
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...
nest/a-path.c: Fix description of BS constant (block size)
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
Merge tag 'v1.6.2' into int-new
RIP: Use message authentication interface
Based on former commit from Pavel Tvrdik
Nest: Add support for MAC algorithms in grammar
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.
Clist: The add() function will append a new value
The add() function used to prepend a new community to clist, but afterthis fix the add() function appends new community.
Fixed memory bloating on kernel merge paths together with export filter.
Some memory was being allocated from bad linpool, not from the given oneas they should.
Thanks to Madhu and Justin Cattle for reporting this.
Doc: Change debug to { flag1|flag2|flag3 [, ...] } style
Thanks to Micah Anderson for bug report and Ondrej Zajicek for the idea!
Nest: Remove trailing whitespaces
Nest: Fix signedness of large communities
BGP: Support for large communities
Add support for large communities (draft-ietf-idr-large-community),96bit alternative to RFC 1997 communities.
Thanks to Matt Griswold for the original patch.
rt-table: Fix kernel protocol export filter memory bug
Kernel protocol calls rt_export_merged(), which used @rte_update_pool fortemporary allocations, supposing it is called from other functions fromrt-table.c that handles locking and flushing of the linpool. Therefore,...
Nest: Keep multipath next hops sorted
Whitespace fixes
Babel: Documentation updates
This updates the documentation to correctly mention Babel when protocolsare listed, and adds examples and route attribute documentation to theBabel section of the docs.
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
Prepare for longer interface names - clean up of the code.
Add AS# ranges to bgpmask.
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
Merge remote-tracking branch 'origin/rte-update' into int-new
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.
Direct: Implement check link for direct protocol
When enabled, direct protocol generates routes only if the underlyinglink state is up.
Route update: move table lookup from protocols into rte_update2().
Many protocols do almost the same when creating a rte_update requestbefore calling rte_update2(). This commit should simplify the protocolside of the route-creation routine.
Merge branch 'master' into int-new-channels
Channelize: rt_notify arg conversion table -> channel
Merge branch 'int-new-channels' of gitlab.labs.nic.cz:labs/bird into int-new-channels
Nest: Reset export route counter during graceful restart
Counter exp_routes is increased during initial route feed after GRrecovery, so it has to start with zero, otherwise BIRD will end withdouble value in exp_routes.
KRT: Fix route learn scan when route changed
When a kernel route changed, function krt_learn_scan() noticed that andreplaced the route in internal kernel FIB, but after that, functionkrt_learn_prune() failed to propagate the new route to the nest, because...
BGP: Add documentaion for extended messages
nest/proto fix local_debug mode
Fix typo
Hash: typecast error fix
Filter: Implement last_nonaggregated operator on bgp_path
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.
Fix closing flushed channel
Fix reading from freed memory. Free at: channel_set_state(c, CS_DOWN) Read at: WALK_LIST2_DELSAFE(c, n, x, tab->channels, table_node)
Fixed sigsegv for missing proto->rt_notify hook
If rt_notify is NULL, the export must always stay DOWN.
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.
Add 'GENERATE/ACCEPT FROM datetime TO datetime' to password options
BSD: Explicitly dropping routes with mismatched AF's.
Delete old ROA code
Rewrite roa_check() for integrated BIRD
Thanks to Ondrej Zajicek for his support with writing this code.
Add ROA_* constants values to grammar of configuration
Add ROA_UNKNOWN, ROA_VALID and ROA_INVALID
NET ROAx: add max_pxlen, fix format
Fix check in net_route() in debug mode
Add NET ROA4/6 structures
Move ID allocator to a separate file and use it also in OSPF
Follow-up work on integration
Modify FIB_WALK() and FIB_ITERATE() to work with new FIB code
Returned user data pointers have offset relative to fib_node.
Contains some patches from Jan Moskyto Matejka
Nest: Reimplement fib_route() and add some consts
Integrated address print lengths
Minor changes by Ondrej Santiago Zajicek
ROA code switchoff
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
Merge branch 'master' into rip-new
Follow-up commit on integrated BIRD
Use net_addr for interface address prefixes, support net_addr inconfiguration parser.
Nest: Fixes bug in missing cleanup during table removal
When a table is removed during reconfiguration, a reference was notcleared in the old configuration, which breaks undo.
Conf: Fixes bug in symbol lookup during reconfiguration
Symbol lookup by cf_find_symbol() not only did the lookup but also addednew void symbols allocated from cfg_mem linpool, which gets broken whenlookups are done outside of config parsing, which may lead to crashes...
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....
Minor changes
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.
Nest: Fixes one of previous commit
Static: Support for BFD controlled static routes
Nest: Fixes symbols in router id
Thanks to Peter Hudec for noticing the problem.
Direct: Fixes behavior for the same routes on different interfaces
Thanks to Andrew (seti.kr.ua) for the bug report.
BGP multipath support
Kernel option 'merge paths' allows to merge routes exported to kernelprotocol (currently BGP and static routes) to multipath routes.
Fixes subtle bug in temporary attribute handling
In some cases, export filter accessed attributes of a different route.
Moving of mulipath merging code from OSPF to nest
Fixes bug in pipe feeding when filtered routes are kept in table
unsigned [int] -> uint
unsgined char -> byte
Fixes unnamed protocols from templates