Minor finalizations of link state checks.
Adds support for iface link check to static protocol.
Do not remove old static route if it is in new config with different gw.
Better flushing of interfaces.
When device protocol goes down, interfaces should be flushedasynchronously (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...
The pipe cleanup.
Fix %<something>I format strings.
Fixes for the programmer's manual.
Removed lots of trailing newlines in log messages.
Please note that the only calls which don't add newlines automatically(i.e., don't print a full line of output) are debug() and DBG.
Documented all the trivial protocols.
Manual enable/disable works right.
Include "lib/string.h" instead of <string.h>. It should give us bzero()and other non-portable functions on all systems.
Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,several debug() calls converted to DBG.
Static protocol supports full dynamic reconfiguration.
Separated `official protocol names' used in status dumps from name templatesused for automatic generation of instance names.
protocol->name is the official name protocol->template is the name template (usually "name%d"), should be all lowercase.
Updated all protocols to define the templates, checked that their configuration...
Implemented `show static'. It's a relatively good example of how to writeshow commands for other protocols.
Kill remaining master_table relics in KRT code.
Make all protocols pass routing table to rte_update and rte_discard.
I rewrote the interface handling code, so that it supports multipleaddresses per interface (needed for example for IPv6 support).
o struct iface now contains a list of all interface addresses (represented by struct ifa), iface->addr points to the primary address (if any)....
Removed TOS support. This simplifies many things a lot.
Added everything protocols need to know about multiple routing tables,i.e. struct proto now contains field 'table' pointing to routing tablethe protocol is attached to. Use this instead of &master_table.
Modified all protocols except the kernel syncer to use this field.
Don't try to install static routes to disconnected neighbors.
Implemented static device routes.
Expect for reconfiguration issues, the static protocol is complete now.
Static protocol doesn't need any shutdown function. Everything getsdisposed by the core: neighbors, rte's, etc's...
Modified static router to use new interface.
die() -> bug() where appropriate.
Fixed a couple of bugs in static protocol. All static routes except deviceones seem to work well.
All static routes except for device ones should work and appear/disappearwhen their destination comes on/off link. Deserves better testing :)
See example in bird.conf.
Added skeleton of static route protocol.