Default rounting table for 'show route export/preexport/protocol' is the one related to a respective protocol.
Implements router advertisements activated by received routes.
The RAdv protocol could be configured to change its behavior based onavailability of routes, e.g., do not announce router lifetime when adefault route is not available.
Separate import and receive limits.
They have different behavior w.r.t. filtered routes that are kept.
Fixes route tracing w.r.t. kept filtered routes.
Changes 'rejected' to 'filtered' in one of the last patches.
Allows rejected routes to be kept and examined.
When 'import keep rejected' protocol option is activated, routesrejected by the import filter are kept in the routing table, but theyare hidden and not propagated to other protocols. It is possible toexamine them using 'show route rejected'.
Allows to redefine master table.
Merge branch 'rt-accepted'
nest/config.Y nest/rt-table.c proto/bgp/bgp.c
Finalize RA_ACCEPTED handling.
Fixes a bug in RA_ACCEPTED handling.
Some fixes in route export limits.
Some minor fixes.
Implements generalized export limits.
And also fixes some minor bugs in limits.
Fixes in generalized import limits.
Implements generalized import hooks.
Thanks to Alexander V. Chernikov for the original patch.
Implement RA_ACCEPTED mode of route propagation.
Merge branch 'soon'
Fixes responsiveness for protocol shutdown.
When a protocol went down, all its routes were flushed in one step, thatmay block BIRD for too much time. The patch fixes that by limitingmaximum number of routes flushed in one step.
Better support for multitable protocols.
The nest-protocol interaction is changed to better handle multitableprotocols. Multitable protocols now declare that by 'multitable' field,which tells nest that a protocol handles things related to proto-rtableinteraction (table locking, announce hook adding, reconfiguration of...
Implements deterministic MED handling.
Thanks to Alexander V. Chernikov for many suggestions.
Signal problems with route installation to kernel tables.
Fixes a bug with setting preference during show route cmd.
If show route cmd was used with a filter that changed preference,BIRD crashed.
Compilation was failing without OSPF or RIP protocol - FIXED.
Fixes a nasty bug in OSPF.
Sending malformed network prefixes in LSAs causes OSPF to crashjust after the LSA is propagated to the other routers.
Core multipath support.
Fixes a one byte buffer overflow.
Do not allow interdependent recursive routes.
Adds igp_metric attribute.
Implements IGP metric comparison for BGP routes.
Use link-local addresses in recursive next hops for IPv6 BGP.
Hostcache should use trie to filter relevant route changes.
For hostentry cache, replace FIB with a hash table using (IP, dep table) as a key.
Fixes a buffer overflow in TX code of IPv6 BGP.
Implements hostcache and recursive next hops.
Hostcache is a structure for monitoring changes in a routing table thatis used for routes with dynamic/recursive next hops. This is needed forproper iBGP next hop handling.
Implements command that shows memory usage.
Restrict export of device routes to the kernel protocol.
In usual configuration, such export is already restrictedwith the aid of the direct protocol but there are someraces that can circumvent it. This makes it harder tobreak kernel device routes. Also adds an option to...
Update lastmod in 'ignored' case only for RIP routes.
Many changes in (mainly) kernel syncers.
- BSD kernel syncer is now self-conscious and can learn alien routes- important bugfix in BSD kernel syncer (crash after protocol restart)- many minor changes and bugfixes in kernel syncers and neighbor cache- direct protocol does not generate host and link local routes...
Fix configure to enable warnings and fix most of them.
Removes phantom protocol from the pipe design.
It seems that by adding one pipe-specific exception to routeannouncement code and by adding one argument to rt_notify() callback icould completely eliminate the need for the phantom protocol instanceand therefore make the code more straightforward. It will also fix some...
Fixes protocol statistics for pipes.
Fixes a tricky bug in the pipe protocol.
When uncofiguring the pipe and the peer table, the peer table wasunlocked when pipe protocol state changed to down/flushing and not todown/hungry. This leads to the removal of the peer table beforethe routes from the pipe were flushed....
Adds asterisk to the primary route in 'show route' cmd.
And also fixes a minor bug.
Makes date/time formats configurable.
Finishes 'route reload' feature.
Implements route re-feed.
This can be used to re-feed routes to protocol after soft change inexport filters.
Fixes some problems in pipes.
For transparent pipes, loop detection works correctly now.Pipes are now more symmetric - in both directions filteringis done in do_rte_announce().
Fixes one missing log message.
Implements BGP route refresh.
Fixes serious bug in core related to route filtering.
If protocol announces a route, route is accepted by import filter torouting table, and later it announces replacement of that route that isrejected by import filter, old route remains in routing table.
Fixes another bug in rte_recalculate().
Previous bugfix revealed another hidden bug here.
Fixes bug that caused losing of some routes.
When update changes preferred route in such a way thatit ceased to be preferred, the new route was linkedto wrong place and lost.
Implements route statistics and fixes some minor bugs.
Escaped debbuging message removed.
The pipe cleanup.
Changes pipes to transfer all routes between routing table, not just optimal routes.
Change import/preimport to export/preexport to be consistent with filters.
'show route protocol <p>' added to CLI.
Fixes bug in pipe route filtering.
Routes comming through pipe from primary to secondary table werefiltered by both EXPORT and IMPORT filters, but they should beonly filtered by EXPORT filters.
Fixes feeding of new protocol, only preferred routes are announced.
Grrr, committing too fast.#include "alloca.h" -> #include "lib/alloca.h"
Use #include "alloca.h"
protocol->import_control() could potentially call rte_cow() as well.AFAIK it doesn't happen in any of our protocol, but better be sure.
This was a potential memory leak, but not the one Feela observed.
This one could happen when an import filter of some protocol modifiedthe rte (so that it would be rte_cow()ed) and later rejected it.
Added missing includes.
Fix %<something>I format strings.
Fixes for the programmer's manual.
Fixes to the progdoc.
Spelling fixes to progdoc.
Better description of the route distribution process.
Documentation on routing tables and route attributes.
Killed bug in merging of dynamic attributes.
Routing table garbage collector gets really called.
Fixed a buglet in asynchronous feeding and increased maximum numberof routes allowed per feeding phase.
Asynchronous feeding of protocols.
Added `show route for
' which looks up route leading to
Changed semantics of the rt_update hook. The attribute list we pass nowcontains all attributes, not just the temporary ones. This avoids havingto merge the lists inside protocols or doing searches on both of them.
Also, do filtering of routes properly. (I'd like to avoid it, but it's...
rt_prune: Don't kill routes from protocols in FS_FEEDING state. If debugging,call fib_check() on the table's fib.
Implemented `show route count' which is `show route stats' withexception that it doesn't print the routes themselves.
Stop feeding the protocol if it suddenly shuts down.
Fixed `show route primary'.
Don't count networks with no routes (they are not displayed at all andwill be removed during the next garbage collection pass).
Implemented `show route <...> stats'.
Added commands `show route protocol <p>' and `show route import <p>' whichshow the routing table as exported to the protocol given resp. as returnedfrom its import control hook.
To get handling of filtered extended attributes right (even in the old`show route where <filter>' command), the get_route_info hook gets an...
Fixed silly bug in previous commit.
When rte_update is called for an identical route, don't announce anything.
Please implement the rte_same hook in your protocols. It should justcompare your metrics stored directly in rte, the rest is done by the core.
Removed a lot of unused variables.
Please try compiling your code with --enable-warnings to see them. (Theunused parameter warnings are usually bogus, the unused variable onesare very useful, but gcc is unable to control them separately.)
IPv6 address classification fixes.
Event handlers no longer return re-queue flag. Instead of using it, justcall ev_schedule() on the same handler which should work perfectly now.
Changed initialization of protocol list -- now we call proto_build() insteadof calling the protocols manually.
Implemented printing of dynamic attributes in `show route all'.
Each protocol can now register its own attribute class (protocol->attr_class,...
When tracing, always print incoming part of the trace before the outgoing one.
Avoid buffer overflows in `show routes' command.
Include "lib/string.h" instead of <string.h>. It should give us bzero()and other non-portable functions on all systems.
Use FF_FORCE_TMPATTR where appropriate.
f_run gets one more parameter to distinguish between in and out modes.
Protocol tracing: Don't dump core on filtered out routes.
Fixed a bunch of FIXME's by removing them :)
Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,several debug() calls converted to DBG.