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.
Updated all the Doc files to new format.
Cleanup of configuration.
o Use `expr' instead of `NUM' and `ipa' instead of `IPA', so that defined symbols work everywhere.o `define' now accepts both numbers and IP addresses.o Renamed `ipa' in filters to `fipa'.
Pavel, please update filters to accept define'd symbols as well.
Unified parsing of prefixes.
Had to rename `prefix' in filters to `fprefix'.
Manual enable/disable works right.
Added skeleton Doc files for the whole developer's documentation.
Split CF_HDR section to CF_HDR (only includes) and CF_DEFINES (defines,C declarations etc.).
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.
New makefiles. Includes support for out-of-source-tree builds.
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.