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.
Normalize community sets when exporting.
Set PARTIAL bits correctly.
Send and receive communities.
Sending of update messages works!
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.
LSack receiving bugfix.
LS Ack receiving done.
Stupid "+1"-bug fixed.
Made last Pavel's changes compile.
as_path_prepend is usable outside bgp.
Real bucket lists.
f_new_dynamic_attr gets third argument, type as filters know it.
Introduced `ARRAY_SIZE' macro to replace all the sizeof(a)/sizeof(*a) constructs.
Implemented outgoing attribute cache.
Use neighbor cache to track direct route to the peer or multihop destination.
Calculate next_hop properly based on the local address we get from theneighbor entry.
More BGP progress...
For Pavel: You can use bgp_path_prepend() for prepending AS numbers to AS paths.
Fix of comment.
LSA flooding done.
Small clean up. (Duplicate #defines.)
"Bug in hashing" fixed. Ehm it was bug in lsrql node removing.
LSupdate processing improved. Now there is some bug in hashing. :-(
Flooding work continues.
Minor change in area list. Now I use MJ's lists.
Work on lsupdates continues. Some checksum cleanup.
lsa_cmp moved into lsalib.c
Formatting of dynamic attributes (except for paths and communities whichwill be added soon).
RIP: Set attribute class.
BGP now handles incoming routes (IPv4 only).
LSA checksum works. But it's very uneficient on little endian systems.
Removal of useless includes continues...
Use bsprintf() instead of sprintf().
Include "lib/string.h" instead of <string.h>. It should give us bzero()and other non-portable functions on all systems.
Parsing of BGP attributes.
Checksum changes. Bug is still NOT fixed. :-(
Some bug fixes. LSA checksum is still bad. I'll fix it later.
Sending of lspd as responce to lsreq done.
LSA structure changes. (Len added.)
Skeleton structures and files added.
Add hashing to link state request list.
Basic analysis of UPDATE packets.
Connection state machine works.
Better list manipulation.
More BGP. This time it connects, but the state machine still isn't complete.
LSreq initial work.
Slave bug fix.
Many changes in dbdes sending & receiving. EXDONE caused.
RXMT timer handling bug fix.
Some FIXME added.
Sending of DBdes bug fixed.
IMMS reverted to bits. Outgoing packets dumping added.Cisco does not set inteface MTU. Hmm....
Cross-protocol issues solved better
DBdes sending/receiving changes.
Use neigh_connected_to in rip, and behave more correctlyw.r.t. whotoldme and nexthop.
I broke compilation. Sorry.
Split horizont done right.
Locks done better.
FIXME was actually already resolved
Minor change to make code more readable.
Rip now tries to lock interface.
Fixed fatal errors which caused segfault at startup.
Fixed fatal errors in rip which caused it not to send more than firstupdate.
Construction of BGP packets.
Started work on BGP. Wrote main part of the connection handling code.
Bare skeleton of the BGP.
Cleanup, mostly debugging messages.
Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,several debug() calls converted to DBG.
LSA DB is completely redesigned. Now it should be faster and it needsless memory.
Categorized TRACE messages in rip
Rip tracing: still need config hunk to set p->debug.
log() classes done right
Sending of DBDes. (Checksum and length calculation NOT done.)
Renamed EAF_INLINE to EAF_TEMP to make the name reflect the real meaning.
Added type parameter to f_new_dynamic_attr.
Dynamic attributes are now declared in per-protocol grammar files insteadof filter/config.Y. Bird now compiles even if you disable RIP.
Removed RTA and IMPOSSIBLE tokens (unused).
Removed superfluous comment in filter.h.
I've tried to do my best, but Pavel, please check these changes.
Adapted RIP to new interface flags. Pavel, please verify it's right.
Router LSA & area adding.
Memory allocation in ospf_area changed.
Area work and router LSA starts when interface goes up.
Small change for debugging.
Structures for router LSA added.
Hash table structure redesigned.
Other LS struct added.
LSA type changed from u16 to u8.
Malloc() changed to cfg_alloc().
Do not send empty packets in rip.
Output made prettier.
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...
Pipe protocol supports reconfiguration.
First attempt on dynamic reconfiguration. There are still lots of bugsand problems to solve, but the hardest part works.
Preparing for building LS databaze. Huh, why is it so complicated? :-(
Adding definition of some constants.
Added missing semicolon.
rip.h compiles in IPv6 mode, rip.c still doesn't.
TODO entries and FIXME's.
Added hooks for show route.Fixed passing metrics around routing tables.
Fix timing and fix endianity in metrics.
Implemented `show static'. It's a relatively good example of how to writeshow commands for other protocols.
Stupid bug (essentially while(1) loop) occuring sometimes during startof bird fixed.
Actually check sequence numbers.
Implemented get_status for the pipe protocol (reports name of the otherside of the pipe).
Please do so for your protocols as well.