History | View | Annotate | Download (9.28 KB)
Oops! Configuration compiles now.
Use `switch' for `disabled'.
Updated CLI helps.
Added read-only access to all required fields in rta.
Tracing of CLI connections/commands can be now controlledby `debug commands <level>' in the configuration. Level 0 meansno tracing, 1 means connections only, 2 includes all commands.
Fixed incorrect error message about router ID syntax.
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.
Added `show route for
' which looks up route leading to given network.
Unified parsing of prefixes.
Had to rename `prefix' in filters to `fprefix'.
Implemented `show route count' which is `show route stats' withexception that it doesn't print the routes themselves.
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...
Removed RTS_RIP_EXT.
Split CF_HDR section to CF_HDR (only includes) and CF_DEFINES (defines,C declarations etc.).
BGP now handles incoming routes (IPv4 only).
Added tracing of interface events.
Added configuration of default protocol debugging flags.
Added protocol debugging flags (protocol.h: D_xxx), parsing of themin configuration files and commands for manipulating them.
Current debug message policy:
o D_STATES, D_ROUTES and D_FILTERS are handled in generic code. o Other debug flags should be handled in the protocols and whenever...
Garbage collector events and counters are now per table and one daythey can be made configurable if it turns out to be useful.
Completion works. Unfortunately, we have to access a couple of internalsymbols of libreadline :-(
Split off general commands to cmds.c.
Added `show symbols' command which dumps whole symbol table togetherwith symbol types etc.
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...
Reworked proto lists -- each proto is now in two lists: the global one(proto_list) and per-type one (original lists). A lot of things simplified.
Implemented `disable', `enable' and `restart' CLI commands.
Implemented echoing of log messages to CLI connections. Just try `echo all'.
Don't forget to send an OK reply after dumping debug information.
Added DEBUG commands.
Removed CLI tests, real commands now serve as much better examples.
Renamed SHOW PROTOCOLS VERBOSE to SHOW PROTOCOLS ALL to be consistentwith the other commands.
Implemented `show route where <condition>' command.
Pavel, please check my addition to filter/config.Y.
Added dumping of routing tables (`show route'). This includes filtering.
Use TIME_INFINITY for initialization of password entries insteadof 2000000000 (BTW who wrote that???)
`show interfaces' and `show protocols' works.
Added few basic commands: show status, show interfaces [summary],show protocols (incomplete).
Added some temporary examples of how to define CLI commands (search for CF_CLI).
To define a new command, just add a new rule to the gramar: CF_CLI(COMMAND NAME, arguments, help-args, help-text) { what-should-the-command-do } ;where <arguments> are appended to the RHS of the rule, <help-args> is the...
An example of how to define enums.
Parse CLI commands. We use the same parser as for configuration files (becausewe want to allow filter and similar complex constructs to be used in commandsand we should avoid code duplication), only with CLI_MARKER token prependedbefore the whole input....
Obvious bugs in authentication fixed.
Basic support for IPv6. The system-dependent part doesn't work yet,but the core routines are there and seem to be working.
o lib/ipv6.[ch] written o Lexical analyser recognizes IPv6 addresses and when in IPv6 mode, treats pure IPv4 addresses as router IDs....
Cleaned up handling of interface patterns:
o Parsing of interface patterns moved to generic code, introduced this_ipatt which works similarly to this_iface. o Interface patterns now support selection by both interface names and primary IP addresses....
Added PASSIVE option to paswwords.
Change format of passwords (less ;'s) and fix password.h to allowmultiple inclusions.
Skeleton for password handling, currently I only build structures anddo nothing more advanced for them
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)....
After today's lengthy discussions about filter syntax, let's clean upwhitespace/semicolon rules for whole config file:
o All non-zero amounts of whitespace are equivalent to single space (aka `all the whitespace has been born equal' ;-)). o Comments count as whitespace....
Moved to a much more systematic way of configuring kernel protocols.
o Nothing is configured automatically. You need to specify the kernel syncer in config file in order to get it started. o Syncing has been split to route syncer (protocol "Kernel") and...
Allow input and output filters (only accept/reject style as we didn't definemodifying filters yet) to be attached to protocol instances.
Implemented new configuration/reconfiguration interface and defined protocolstate machines. Full explanation will follow soon.
Name cleanups as suggested by Pavel:
- cfg_strcpy() > cfg_strdup() mempool -> linpool, mp_* -> lp_* [to avoid confusion with memblock, mb_*]
Anyway, it might be better to stop ranting about names and do some real work.
Added configuration of the device internal protocol. This is primarilyintended to serve as an example of interface pattern list use. As a sideeffect, you can disable generating of device routes by disablingthis protocol.
Allow setting debug value and `disabled' flag in protocol definition.
Oops, forgot to remove a debugging kludge.
Trivial 15-line bison excercise: Implemented expressions includinguser-defined numeric symbols. Whenever possible, use `expr' insteadof `NUM' to get full express ion power :-)
First attempt at protocol configuration (now done only for RIP).
Parser fragment for the core. Now handles only router ID setting.