Added proto_get_named() to be used in CLI commands to get protocol instanceof a given protocol with optionally given name. See `show static' for anexample.
`show protocols' now shows time of last state change and protocol-dependentstatus information (obtained via newly introduced hook protocol->get_status).
Remember protocol instance in proto_config and use that for`show protocols <name>'.
`show interfaces' and `show protocols' works.
Added few basic commands: show status, show interfaces [summary],show protocols (incomplete).
Events now return a value. If it's non-zero, the event is re-queuedfor processing in next event cycle. This can be used to prevent backgroundactions (hint: user commands) from hogging the CPU for too long time.
Protocol engine bug fixes:
o Make proto_config->table always point to the right table even if it should be the default one. o When shutting down, kill protocol in reverse order of their priority. o When stopping a protocol down, disconnect it from...
From now we support multiple tables. The master_table variable isdefinitely gone. Both rte_update() and rte_discard() have an additionalargument telling which table should they modify.
Also, rte_update() no longer walks the whole protocol list -- each table...
Changed syntax of attaching filters to protocols to hopefully the finalversion:
EXPORT <filter-spec> for outbound routes (i.e., those announced by BIRD to the rest of the world). IMPORT <filter-spec> for inbound routes (i.e., those imported by BIRD from the rest of the world)....
Clarify resource dumps and include them in the main debugging dump.
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.
Slightly better generator of default protocol instance names.
Allow input and output filters (only accept/reject style as we didn't definemodifying filters yet) to be attached to protocol instances.
Yes, joining the crew. Sorry for being late. Added dummy functions for OSPF.
Initialize allocated struct proto :-)
Fix several things I broke today.
Added a hack forcing protocols with priority>0 to be started upimmediately. Grrr, need to find a real solution some day.
Introduced protocol priority (all 'normal' protocols should use thedefault zero priority). No more "kernel syncer initialized beforedevice routes" problems.
When protocols go down, prune the neighbor list.
Perform gracious shutdown upon receipt of SIGTERM. Finally we cantest the whole protocol shutdown code... :)
Implemented real cleanup and pruning of routing table on protocol shutdown.
Real implementation of protocol state machines. Delayed startup/shutdownshould work now. Initial feeding of protocols by interfaces/routes isdone from the event queue to prevent unwanted recursion.
Implemented new configuration/reconfiguration interface and defined protocolstate machines. Full explanation will follow soon.
Initialize only protocols which are compiled in :)
Handle disabled protocol instances.
Replaced nest/confile.h by conf/conf.h, added a lot of new definitions.
Proto struct now contain (down | starting | up) state.
Preconfig, postconfig and init hooks can be NULL.
Split protocol init to building of protocol list and real protocol init.Added kernel route table syncer skeleton.
Solve chicken-and-egg problems with protocol startup. We now queue all inactiveprotocols and don't send route/interface updates to them and when they come up,we resend the whole route/interface tables privately.
Removed the "scan interface list after protocol start" work-around.
Adding proto_dump_all() function
Basic protocol operations.
protos_init, not proto_init.
Added routing table and routing attribute code.