summaryrefslogtreecommitdiff
path: root/nest/proto.c
AgeCommit message (Collapse)Author
2011-11-07Implements protocol templates.Ondrej Zajicek
Based on the patch from Alexander V. Chernikov. Extended to support almost all protocols. Uses 'protocol bgp NAME from TEMPLATE { ... }' syntax.
2011-06-20Fixes a bug related to protocol enabling and reconfigure.Ondrej Zajicek
When a protocol was enabled interactively (but disabled in the config file), then reconfigure in some cases forgets to disable it.
2011-04-01Fixes a problem with BGP protocols and implicit router IDs.Ondrej Zajicek
2011-03-13Implements Router Advertisement protocol.Ondrej Zajicek
2010-07-05Implements hostcache and recursive next hops.Ondrej Zajicek
Hostcache is a structure for monitoring changes in a routing table that is used for routes with dynamic/recursive next hops. This is needed for proper iBGP next hop handling.
2010-06-02Implements command that shows memory usage.Ondrej Zajicek
2010-04-27Avoid warning if not compiled with pipes.Ondrej Filip
2010-04-07Implements BGP 'show protocols' info details.Ondrej Zajicek
2010-02-27Better flushing of interfaces.Ondrej Zajicek
When device protocol goes down, interfaces should be flushed asynchronously (in the same way like routes from protocols are flushed), when protocol goes to DOWN/HUNGRY. This fixes the problem with static routes staying in kernel routing table after BIRD shutdown.
2010-02-26Many changes in (mainly) kernel syncers.Ondrej Zajicek
- 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 - min_scope check is removed, all routes have SCOPE_UNIVERSE by default - also fixes some remaining compiler warnings
2010-02-21Fix configure to enable warnings and fix most of them.Ondrej Zajicek
2010-02-21Restricted read-only CLI.Ondrej Zajicek
Also adds support for executing commands using birdc <cmd>.
2010-02-20Implements pattern match for 'show protocols' command.Ondrej Zajicek
And generally consolidates protocol commands.
2010-02-13Removes phantom protocol from the pipe design.Ondrej Zajicek
It seems that by adding one pipe-specific exception to route announcement code and by adding one argument to rt_notify() callback i could completely eliminate the need for the phantom protocol instance and therefore make the code more straightforward. It will also fix some minor bugs (like ignoring debug flag changes from the command line).
2010-02-13Fixes protocol statistics for pipes.Ondrej Zajicek
2010-02-11Fixes a tricky bug in the pipe protocol.Ondrej Zajicek
When uncofiguring the pipe and the peer table, the peer table was unlocked when pipe protocol state changed to down/flushing and not to down/hungry. This leads to the removal of the peer table before the routes from the pipe were flushed. The fix leads to adding some pipe-specific hacks to the nest, but this seems inevitable.
2010-02-08Adds asterisk to the primary route in 'show route' cmd.Ondrej Zajicek
And also fixes a minor bug.
2010-02-06Adds some log messages related to configure.Ondrej Zajicek
Also fixes a bug in the previous patch.
2010-02-06Modifies configure to just reload protocols when filters change.Ondrej Zajicek
Before this change, protocols were restarted in that case.
2010-02-03Makes date/time formats configurable.Ondrej Zajicek
2010-01-03Implements MRTdump feature.Ondrej Zajicek
2009-12-14Finishes 'route reload' feature.Ondrej Zajicek
2009-12-02Fixes silly bug.Ondrej Zajicek
2009-12-02Implements route re-feed.Ondrej Zajicek
This can be used to re-feed routes to protocol after soft change in export filters.
2009-11-26Implements BGP route refresh.Ondrej Zajicek
2009-11-17Implement description field of protocol.Ondrej Zajicek
2009-10-12Implements protocol-specific router id and updates documentation.Ondrej Zajicek
2009-08-11Replace assert with log.Ondrej Zajicek
Although it is true unless there is a bug in BIRD, this assert is not needed (code below does not require that assumption), so we should not crash.
2009-06-19Adds support for soft reconfiguration.Ondrej Zajicek
2009-06-04Implements route statistics and fixes some minor bugs.Ondrej Zajicek
2009-02-12Fixes bug in protocol state machineOndrej Zajicek
Scheduling flush must be done before resource pool freeing as it frees some allocated list nodes from a global list.
2008-12-08Fixes core state machine.Ondrej Zajicek
The core state machine was broken - it didn't free resources in START -> DOWN transition and might freed resources after UP -> STOP transition before protocol turned down. It leads to deadlock on olock acquisition when lock was not freed during previous stop. The current behavior is that resources, allocated during DOWN -> * transition, are freed in * -> DOWN transition, and flushing (scheduled in UP -> *) just counteract feeding (scheduled in * -> UP). Protocol fell down when both flushing is done (if needed) and protocol reports DOWN. BTW, is thera a reason why neighbour cache item acquired by protocol is not tracked by resource mechanism?
2008-11-22Fixes race condition leading to memory corruption and crash.Ondrej Zajicek
When protocol started, feeding was scheduled. If protocol got down before feeding was executed, then function responsible for connecting protocol to kernel routing tables was called after the function responsible for disconnecting, then resource pool of protocol was freed, but freed linked list structures remains in the list.
2004-06-05Marked unused parameters in core code as such.Martin Mares
2000-06-07Spelling fixes to progdoc.Martin Mares
2000-06-02Added documentation on protocols.Martin Mares
Protocol hooks deserve an extra chapter (to come soon).
2000-05-30Better formatting of protocol status.Martin Mares
2000-05-19No more problems when protocols gets disabled during feeding.Martin Mares
2000-05-19Asynchronous feeding of protocols.Martin Mares
2000-05-16Don't log state changes if nothing user-visible has changed.Martin Mares
2000-05-06Cosmetic fixes.Martin Mares
2000-05-04Removed a lot of unused variables.Martin Mares
Please try compiling your code with --enable-warnings to see them. (The unused parameter warnings are usually bogus, the unused variable ones are very useful, but gcc is unable to control them separately.)
2000-04-27Event handlers no longer return re-queue flag. Instead of using it, justMartin Mares
call ev_schedule() on the same handler which should work perfectly now.
2000-04-26Fixed several bugs in protocol state machine. Reconfigurations andMartin Mares
restarts of BGP seem to work now.
2000-04-25Don't forget to set filter pointers in struct proto when reconfiguring.Martin Mares
2000-04-01Changed initialization of protocol list -- now we call proto_build() insteadMartin Mares
of 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, set to EAP_xxx) and also a callback for naming and formatting of attributes. The callback can return one of the following results: GA_UNKNOWN Attribute not recognized. GA_NAME Attribute name recognized and put to the buffer, generic code should format the value. GA_FULL Both attribute name and value put to the buffer. Please update protocols generating dynamic attributes to provide the attr_class and formatting hook.
2000-03-31Include "lib/string.h" instead of <string.h>. It should give us bzero()Martin Mares
and other non-portable functions on all systems.
2000-03-19Bare skeleton of the BGP.Martin Mares
2000-03-12Fixed a bunch of FIXME's by removing them :)Martin Mares
2000-03-12Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,Martin Mares
several debug() calls converted to DBG().