Fixes for the programmer's manual.
Oops! Configuration compiles now.
Use `switch' for `disabled'.
Updated CLI helps.
Fixes to the progdoc.
Spelling fixes to progdoc.
Added IP protocols.
Avoid sentence containing a colon to start new doc subsection.
Documented sockets, events and timers.
Description of protocol module moved to where it belongs. If documentationof standard modules is stored in their source, such auxilliary filesshould be as well.
Minor changes to the progdocs.
Documented protocol hooks.
Added documentation on protocols.
Protocol hooks deserve an extra chapter (to come soon).
Better description of the route distribution process.
Documentation on routing tables and route attributes.
Removed rta_find() since nobody uses it and it's more convenientto use ea_find() directly.
Removed comments about workings of the old neighbor cache which are(1) obsolete and (2) replaced by the progdoc.
I've changed the init callback type to a typedef to work around a bugin kernel-doc I'm too lazy to hunt now.
Inactive sticky neighbors have no scope.
Modified the neighbor cache to remember local addresses as well.
neighbor->scope now contains proper address scope which is zero (SCOPE_HOST)for local addresses, higher (SCOPE_LINK, ..., SCOPE_UNIVERSE) for remote ones.
Route attributes for OSPF.
Killed bug in merging of dynamic attributes.
Better formatting of protocol status.
Added read-only access to all required fields in rta.
Better rt dumping.
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.
To find out a type of route (external, inter/intra area)
Routing table garbage collector gets really called.
Fixed a very nasty bug in FIB iterators.
Fixed freeing of non-embedded extended attributes.
No more problems when protocols gets disabled during feeding.
Fixed a buglet in asynchronous feeding and increased maximum numberof routes allowed per feeding phase.
Asynchronous feeding of protocols.
Fixed incorrect error message about router ID syntax.
Don't segfault when someone adds passwords.
Password same now actually works
Don't log state changes if nothing user-visible has changed.
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
Added fib_route() which does (although very slow) lookup of longest-matchrouting in a FIB.
Unified parsing of prefixes.
Had to rename `prefix' in filters to `fprefix'.
Changed semantics of the rt_update hook. The attribute list we pass nowcontains all attributes, not just the temporary ones. This avoids havingto merge the lists inside protocols or doing searches on both of them.
Also, do filtering of routes properly. (I'd like to avoid it, but it's...
Fixed nasty segfault in rip.
password_same utility function
Added more convient interface for ea_find.
What is special about int default;? Compiler chokes on that!
rt_prune: Don't kill routes from protocols in FS_FEEDING state. If debugging,call fib_check() on the table's fib.
Several simplifications of the fib iterators.
Implemented `show route count' which is `show route stats' withexception that it doesn't print the routes themselves.
Stop feeding the protocol if it suddenly shuts down.
Really free attributes.
Use preferences properly.
Fixed `show route primary'.
Debugged printing and pruning of neighbor cache entries.
Don't count networks with no routes (they are not displayed at all andwill be removed during the next garbage collection pass).
Implemented `show route <...> stats'.
Squashed one bug in fib_rehash(). No more routes disappearing as if structby a lightning :)
Killed one more reference to RTS_RIP_EXT.
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...
Fixed silly bug in previous commit.
When rte_update is called for an identical route, don't announce anything.
Please implement the rte_same hook in your protocols. It should justcompare your metrics stored directly in rte, the rest is done by the core.
Added skeleton Doc files for the whole developer's documentation.
#ifdef out lots of debugging information.
The long resource/routing table dump printed upon startup is gone nowand if you wish to see it, just send bird SIGUSR1 or use the `debug'commands.
Removed a lot of unused variables.
Please try compiling your code with --enable-warnings to see them. (Theunused parameter warnings are usually bogus, the unused variable onesare very useful, but gcc is unable to control them separately.)
Switched off LOCAL_DEBUG.
IPv6 address classification fixes.
Split CF_HDR section to CF_HDR (only includes) and CF_DEFINES (defines,C declarations etc.).
Fixed a couple of nasty CLI bugs which were triggered on long or multi-partoutputs. It took a whole evening to hunt them down, but now the CLI seemsto work fine.
Now I run three BGP connections with several thousand routes!
Event handlers no longer return re-queue flag. Instead of using it, justcall ev_schedule() on the same handler which should work perfectly now.
Fixed stupid bug in as_path_format().
Better formatting of router ID's.
Fixed several bugs in protocol state machine. Reconfigurations andrestarts of BGP seem to work now.
Don't forget to set filter pointers in struct proto when reconfiguring.
Don't import/export MED and LOCAL_PREF on external links.Added real comparison of BGP routes (inspired by the Cisco one).Default local preference and default MED are now settable.Defined filter keywords for all BGP attributes we know.
The previous fix for spacing was (a) totally out of context, (b) wrong.Please read the code when trying to change it.
Also killed a couple of type clashes.
Put space between entries so they are separated.
FIXME: should use format as in filters.
Int sets moved to core. It is now possible to have variable of type clist.
Define EAF_ORIGINATED and propagate it properly when merging attribute lists.
Aesthetical tweaks (asterisk spells `asterisk' etc.)
as_path_match moved to a-path.c
Path_getlen moved to nest and length was made callable from filters.
Printing of AS paths and community sets.
Created nest/a-path.c and a-set.c which should contain general operationson AS paths and community sets.
Moved as_path_prepend() there.
Pavel, please move the other functions as well.
As usuall, most important info was missing.
Export ea_same() and ea_hash().
Fix stupid bug in neighbor cache.
BGP doesn't need any inline attributes.
Changed initialization of protocol list -- now we call proto_build() insteadof 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,...
BGP now handles incoming routes (IPv4 only).
When tracing, always print incoming part of the trace before the outgoing one.
Avoid buffer overflows in `show routes' command.