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.
Removal of useless includes continues...
Include "lib/string.h" instead of <string.h>. It should give us bzero()and other non-portable functions on all systems.
Fixed bug in processing of dynamic attributes.
Use FF_FORCE_TMPATTR where appropriate.
f_run gets one more parameter to distinguish between in and out modes.
if_connected() is again private.
Introduced neigh_connected_to() to serve the same purpose efficiently.
I broke compilation. Sorry.
if_connected is usefull outside of neighbour cache.
Added missing newline in debug output.
Define new data types for BGP.
Bare skeleton of the BGP.
Protocol tracing: Don't dump core on filtered out routes.
Fixed a bunch of FIXME's by removing them :)
Made `show status' show uptime and time of last reconfiguration.
Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,several debug() calls converted to DBG.
Added tracing of interface events.
Oops, got `<' and `>' markers in trace output reversed.
Added debugging of communication between protocols and routing tables.Just ask for "debug routes" if you want to see the routes and "debug filters" if you want even the rejected ones.
Added debugging of protocol state transitions.
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...
Renamed EAF_INLINE to EAF_TEMP to make the name reflect the real meaning.
Garbage collector events and counters are now per table and one daythey can be made configurable if it turns out to be useful.
Enabled short continuations.
Implemented real attribute cache.
Removed RTF_EXTERIOR and RTF_TAGGED (unused).
Reimplemented neighbor cache. Now uses real hashing.
Added proto->hash_key which contains randomly generated hash key usedfor calculation of hash functions depending on proto.