Commit graph

377 commits

Author SHA1 Message Date
Ondrej Filip 468f2347fc Calculating of nexts hop(s) added. 2000-04-29 15:57:14 +00:00
Pavel Machek 9c1a55deee IpV6 now actually compiles.
Mj, could you provide example of static config for ipv6 that is _not_
rejected by checks? I tried this and got rejected.

	route 62:168::/32 via 62:169::;
	route 1:2::/32 via 1:3::;
2000-04-29 15:45:30 +00:00
Martin Mares cea6366400 The `bgp_origin' attribute is now an enum. 2000-04-28 15:13:29 +00:00
Martin Mares 2edb31b097 Split CF_HDR section to CF_HDR (only includes) and CF_DEFINES (defines,
C declarations etc.).
2000-04-28 15:11:10 +00:00
Pavel Machek decc99fbbd Killed fixme: I already fixed it. 2000-04-28 10:15:57 +00:00
Pavel Machek a769a180d7 Provide rip_get_attr, how do I test it? 2000-04-28 10:14:59 +00:00
Pavel Machek 6c0a7174af Add sample documentation to rip. 2000-04-28 09:55:52 +00:00
Martin Mares f94557dec5 Some more fixes for attributeless UPDATEs. 2000-04-27 22:40:19 +00:00
Martin Mares 54896cbdba Path attribute can be missing if we process a packet with empty NLRI section. 2000-04-27 22:31:11 +00:00
Martin Mares 9165888ad2 Handle connect errors correctly. 2000-04-27 19:41:10 +00:00
Ondrej Filip 2add26dfa9 Stub networks done. 2000-04-26 20:16:36 +00:00
Ondrej Filip 5904a51266 Nets are used before routers. 2000-04-26 14:03:56 +00:00
Martin Mares 5db9bae286 IBGP fixes. 2000-04-26 13:26:31 +00:00
Ondrej Filip dfa9a53a66 Routing table calculation. Dijkstra done. 2000-04-26 12:54:23 +00:00
Pavel Machek c010f4cb37 Use right address for ripv6. 2000-04-26 11:33:03 +00:00
Pavel Machek 7f704c06d8 Cleanup in preparation for ipv6. 2000-04-26 11:07:57 +00:00
Martin Mares 6fd766c17e Implemented automatic restart after error with all the timers needed. 2000-04-25 23:08:31 +00:00
Martin Mares 8573314326 Avoid printing of error messages on Cease notifications. 2000-04-25 23:08:03 +00:00
Martin Mares b3155b3399 Randomize timers properly. 2000-04-25 22:01:19 +00:00
Martin Mares 42532f0846 Support dynamic reconfiguration. 2000-04-25 21:58:17 +00:00
Martin Mares 99f70c78e1 Use the same attribute names as in filters. 2000-04-25 21:31:15 +00:00
Martin Mares 684c25d98f When sending BGP attributes, re-create the flags, so that attributes
added by filters which get the flags wrong are fixed automagically.
2000-04-25 21:21:52 +00:00
Martin Mares efcece2da3 Better reporting of both local and remote errors. 2000-04-25 21:13:25 +00:00
Martin Mares a47a01083b Real parsing of BGP OPEN options including capability
negotiation.
2000-04-25 13:32:17 +00:00
Martin Mares 8b258e4e65 LOCAL_PREF is now always present and exported over all ibgp connections [draft]
Allow setting of address of the local end of the TCP connection.

Several bug fixes.
2000-04-21 13:01:28 +00:00
Martin Mares 2a9e064d7b If no NLRI's are present in an UPDATE message, parse the attributes, but
don't check presence of mandatory attributes. [draft-09]
2000-04-21 12:25:35 +00:00
Martin Mares 7787ace61a Synced to draft-ietf-idr-bgp4-09. 2000-04-20 22:54:22 +00:00
Martin Mares 9bc6ab4041 Fixed reporting of unknown options. 2000-04-20 22:34:50 +00:00
Martin Mares 5f532adde2 Temporarily ignore unknown options. 2000-04-19 13:54:35 +00:00
Martin Mares f381cdce52 The ATOMIC_AGGREGATE parameter is optional transitive. 2000-04-19 13:54:17 +00:00
Martin Mares e0d6a7bda4 Delay fetching of router ID. 2000-04-19 13:28:56 +00:00
Martin Mares 035044b1d9 Select the right source address and don't check port numbers. 2000-04-19 12:51:14 +00:00
Ondrej Filip 85c92555ef Grr, another patch to make it compile. 2000-04-18 22:11:05 +00:00
Ondrej Filip 740d16d972 Another ack bugfix. (Bad test for MIN_LS_ARRIVAL.) 2000-04-18 22:07:58 +00:00
Ondrej Filip 84228eee27 LS ack bugfix. (I didn't remove LSA from LSret hash.) 2000-04-18 21:40:11 +00:00
Ondrej Filip 19fc4c763e LS ack. 2000-04-18 21:13:56 +00:00
Ondrej Filip 26116eac93 Better LS Ack dumping. 2000-04-18 20:34:19 +00:00
Ondrej Filip 48f5a61f69 Bugfix in neighbor dumping. 2000-04-18 19:56:43 +00:00
Ondrej Filip 9eada7ca03 Fixed the serious bug in LSack.
Oh, I'm an idiot. I sent LSACK, but in header was LSUPD. :-(
2000-04-18 19:44:16 +00:00
Ondrej Filip 9eea604769 Multicast open socket for (B)DR bugfix. 2000-04-18 19:31:42 +00:00
Ondrej Filip 79f036ef6e Dump changes. 2000-04-18 19:22:49 +00:00
Ondrej Filip 4472402551 Many %u changer into %I. 2000-04-18 18:29:50 +00:00
Ondrej Filip 89929e9daa Many %u changed into %I and dump cleanup. 2000-04-18 18:21:10 +00:00
Ondrej Filip 1508ee8b53 Iface chstate run only if something really change. 2000-04-18 18:01:26 +00:00
Ondrej Filip dd100e40c6 Better dumping in neighbor chstate. 2000-04-18 17:58:16 +00:00
Ondrej Filip 8914e37dc0 Better chstate dumping. 2000-04-18 17:54:06 +00:00
Ondrej Filip 284c43ff66 Sending of ACK disabled, since I'll find bug. 2000-04-18 17:36:46 +00:00
Ondrej Filip 023f5e86eb Another LSack update. It's still NOT correct and it surely
kills gated or Cyclades OSPF implementation. :-)
2000-04-18 17:00:56 +00:00
Ondrej Filip 67315ef64e Some lsack work. There is something very worng. :-( It locked my network. 2000-04-18 01:06:16 +00:00
Ondrej Filip 2a0925948d Listening on AllDRouters for DR and BACKUP added. 2000-04-17 21:10:40 +00:00
Ondrej Filip 38130b863f Small change in LSA originating. 2000-04-17 20:42:42 +00:00
Martin Mares bd2d8190dd Honor standard communities (no_export, no_advertise, no_export_subconfed)
when exporting routes.
2000-04-17 13:13:08 +00:00
Martin Mares 56a2bed46b 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.
2000-04-17 12:46:07 +00:00
Martin Mares e3558ab14e Normalize community sets when exporting.
Set PARTIAL bits correctly.
2000-04-17 11:25:15 +00:00
Martin Mares 1ed2fe9609 Send and receive communities. 2000-04-17 10:19:15 +00:00
Martin Mares f421cfdd80 Sending of update messages works! 2000-04-17 09:37:31 +00:00
Martin Mares c0668f3696 Created nest/a-path.c and a-set.c which should contain general operations
on AS paths and community sets.

Moved as_path_prepend() there.

Pavel, please move the other functions as well.
2000-04-17 07:53:29 +00:00
Ondrej Filip ebff007f08 LSack receiving bugfix. 2000-04-12 15:37:52 +00:00
Ondrej Filip 4bf41ac8b1 LS Ack receiving done. 2000-04-12 15:20:13 +00:00
Ondrej Filip 58313b24c8 Stupid "+1"-bug fixed. 2000-04-12 14:49:20 +00:00
Martin Mares c8f685cb9d Made last Pavel's changes compile. 2000-04-12 14:14:47 +00:00
Pavel Machek 0a40e97328 as_path_prepend is usable outside bgp. 2000-04-12 14:12:37 +00:00
Martin Mares c2b28c9910 Real bucket lists. 2000-04-12 14:09:26 +00:00
Pavel Machek ac7a2145cc f_new_dynamic_attr gets third argument, type as filters know it. 2000-04-12 14:02:04 +00:00
Martin Mares 12d5677aa3 Define BGP_PATH. 2000-04-12 13:56:04 +00:00
Martin Mares 7750634946 Introduced `ARRAY_SIZE' macro to replace all the sizeof(a)/sizeof(*a) constructs. 2000-04-12 13:21:23 +00:00
Martin Mares ae8f558499 Implemented outgoing attribute cache. 2000-04-10 12:39:51 +00:00
Martin Mares 48e842cc98 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 the
neighbor entry.
2000-04-10 11:21:40 +00:00
Martin Mares ef2c708dfa More BGP progress...
For Pavel: You can use bgp_path_prepend() for prepending AS numbers to AS paths.
2000-04-09 22:05:02 +00:00
Pavel Machek 3d0ea3a7c3 Fix of comment. 2000-04-07 09:02:17 +00:00
Ondrej Filip 2c971094eb LSA flooding done. 2000-04-05 00:51:25 +00:00
Ondrej Filip 10000b96a8 Small clean up. (Duplicate #defines.) 2000-04-04 22:27:19 +00:00
Ondrej Filip f1f7faceb4 "Bug in hashing" fixed. Ehm it was bug in lsrql node removing. 2000-04-04 22:22:08 +00:00
Ondrej Filip d8852b362c LSupdate processing improved. Now there is some bug in hashing. :-( 2000-04-04 15:55:55 +00:00
Ondrej Filip 921a93f217 Flooding work continues. 2000-04-04 00:32:17 +00:00
Ondrej Filip 8496b2e41a Minor change in area list. Now I use MJ's lists. 2000-04-03 22:31:07 +00:00
Ondrej Filip 394acced11 Work on lsupdates continues. Some checksum cleanup. 2000-04-02 20:41:33 +00:00
Ondrej Filip db9fb72769 lsa_cmp moved into lsalib.c 2000-04-02 19:04:23 +00:00
Martin Mares 10be74da20 Formatting of dynamic attributes (except for paths and communities which
will be added soon).
2000-04-01 10:21:11 +00:00
Martin Mares dad177d7e0 RIP: Set attribute class. 2000-04-01 10:20:12 +00:00
Martin Mares f880924990 BGP now handles incoming routes (IPv4 only). 2000-04-01 09:17:33 +00:00
Ondrej Filip 499cb346f6 LSA checksum works. But it's very uneficient on little endian systems. 2000-04-01 02:45:49 +00:00
Martin Mares ac4b4683ae Removal of useless includes continues... 2000-03-31 23:40:00 +00:00
Martin Mares a37410cbdd Use bsprintf() instead of sprintf(). 2000-03-31 23:33:03 +00:00
Martin Mares 221135d6bf Include "lib/string.h" instead of <string.h>. It should give us bzero()
and other non-portable functions on all systems.
2000-03-31 23:30:21 +00:00
Martin Mares c00d31befa Parsing of BGP attributes. 2000-03-31 23:21:37 +00:00
Ondrej Filip 65e55e9cca Checksum changes. Bug is still NOT fixed. :-( 2000-03-31 01:40:12 +00:00
Ondrej Filip 9f940976d1 Some bug fixes. LSA checksum is still bad. I'll fix it later. 2000-03-31 01:14:41 +00:00
Ondrej Filip f45fd3164b Sending of lspd as responce to lsreq done. 2000-03-31 00:21:41 +00:00
Ondrej Filip 14a7921c83 LSA structure changes. (Len added.) 2000-03-30 20:18:51 +00:00
Ondrej Filip de769e24c0 Skeleton structures and files added. 2000-03-30 20:00:42 +00:00
Ondrej Filip 95eb1dba3f Add hashing to link state request list. 2000-03-30 19:37:26 +00:00
Ondrej Filip 76915ec979 Minor changes. 2000-03-30 19:21:17 +00:00
Martin Mares 973399ae2c Basic analysis of UPDATE packets. 2000-03-30 18:44:23 +00:00
Martin Mares b552ecc4d7 Connection state machine works. 2000-03-30 17:39:48 +00:00
Ondrej Filip ce0603a6ed Better list manipulation. 2000-03-30 16:22:58 +00:00
Martin Mares 3fdbafb6f4 More BGP. This time it connects, but the state machine still isn't complete. 2000-03-30 10:44:20 +00:00
Ondrej Filip 6d2b32114f LSreq initial work. 2000-03-30 00:18:59 +00:00
Ondrej Filip 2560c8860e Slave bug fix. 2000-03-29 17:51:40 +00:00
Ondrej Filip 910e557b47 Many changes in dbdes sending & receiving. EXDONE caused. 2000-03-29 17:18:06 +00:00
Ondrej Filip 315648af8e RXMT timer handling bug fix. 2000-03-29 13:02:58 +00:00
Ondrej Filip 3fba209688 Some FIXME added. 2000-03-29 12:47:07 +00:00
Ondrej Filip 96501dfe5f Sending of DBdes bug fixed. 2000-03-29 12:45:37 +00:00
Ondrej Filip 04c6319a63 IMMS reverted to bits. Outgoing packets dumping added.
Cisco does not set inteface MTU. Hmm....
2000-03-29 12:32:25 +00:00
Pavel Machek 8d2e3eba92 Cross-protocol issues solved better 2000-03-29 08:58:06 +00:00
Ondrej Filip 963ea03d87 DBdes sending/receiving changes. 2000-03-29 00:34:28 +00:00
Pavel Machek d0031c5ee9 Use neigh_connected_to in rip, and behave more correctly
w.r.t. whotoldme and nexthop.
2000-03-27 12:21:11 +00:00
Pavel Machek 6480dd0880 I broke compilation. Sorry. 2000-03-26 21:31:57 +00:00
Pavel Machek 8c86f96fa6 Split horizont done right.
Locks done better.
2000-03-26 18:01:27 +00:00
Pavel Machek 9ee07ca53f FIXME was actually already resolved 2000-03-24 10:08:20 +00:00
Pavel Machek 772f489932 Minor change to make code more readable. 2000-03-23 12:08:40 +00:00
Pavel Machek ff8ed63285 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 first
update.
2000-03-22 14:26:03 +00:00
Martin Mares 72a6ef11fe Construction of BGP packets. 2000-03-21 15:53:50 +00:00
Martin Mares c01e37416d Started work on BGP. Wrote main part of the connection handling code. 2000-03-20 21:50:17 +00:00
Martin Mares 2638249d34 Bare skeleton of the BGP. 2000-03-19 22:09:07 +00:00
Pavel Machek 856b87d1e4 Cleanup, mostly debugging messages. 2000-03-13 13:31:00 +00:00
Martin Mares 6b9fa32080 Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,
several debug() calls converted to DBG().
2000-03-12 21:01:38 +00:00
Ondrej Filip ce17d4c165 LSA DB is completely redesigned. Now it should be faster and it needs
less memory.
2000-03-09 22:38:05 +00:00
Pavel Machek af834f8630 Categorized TRACE() messages in rip 2000-03-09 16:38:51 +00:00
Pavel Machek cb822c0777 Rip tracing: still need config hunk to set p->debug. 2000-03-09 15:12:41 +00:00
Pavel Machek 38466dbdac log() classes done right 2000-03-09 14:59:10 +00:00
Ondrej Filip 30147b89ff Sending of DBDes. (Checksum and length calculation NOT done.) 2000-03-08 12:50:28 +00:00
Martin Mares 9f4929e749 Renamed EAF_INLINE to EAF_TEMP to make the name reflect the real meaning. 2000-03-04 22:30:44 +00:00
Pavel Machek 62ab789de5 Added type parameter to f_new_dynamic_attr. 2000-03-01 14:42:59 +00:00
Martin Mares db1326aa5e Dynamic attributes are now declared in per-protocol grammar files instead
of 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.
2000-03-01 11:32:23 +00:00
Martin Mares ef0883a12f Adapted RIP to new interface flags. Pavel, please verify it's right. 2000-02-29 23:20:55 +00:00
Ondrej Filip de30342f97 Router LSA & area adding. 2000-02-25 19:19:41 +00:00
Ondrej Filip b786df7035 Memory allocation in ospf_area changed. 2000-02-25 14:26:54 +00:00
Ondrej Filip ab56f6b16f Area work and router LSA starts when interface goes up. 2000-02-24 00:26:10 +00:00
Ondrej Filip ea28da044a Small change for debugging. 2000-02-23 23:23:19 +00:00
Ondrej Filip 91808fffc2 Structures for router LSA added. 2000-02-23 23:14:18 +00:00
Ondrej Filip 6fa948d6c5 Better debugging. 2000-02-23 23:13:27 +00:00
Ondrej Filip e6fcf113ec Better debuging. 2000-02-23 23:13:10 +00:00
Ondrej Filip 4bf6de8737 Hash table structure redesigned. 2000-02-08 22:43:10 +00:00
Ondrej Filip 316d7bd7d1 Other LS struct added. 2000-02-08 22:13:12 +00:00
Ondrej Filip d3cb698053 LSA type changed from u16 to u8. 2000-02-08 19:24:22 +00:00
Ondrej Filip c7b915d68c Malloc() changed to cfg_alloc(). 2000-02-08 19:12:42 +00:00
Pavel Machek bd215f8bab Do not send empty packets in rip. 2000-01-26 14:12:18 +00:00
Pavel Machek 8660913ba8 Output made prettier. 2000-01-26 12:07:18 +00:00
Martin Mares 295ae16d4d Static protocol supports full dynamic reconfiguration. 2000-01-17 12:38:50 +00:00
Martin Mares d272fe22dd Separated `official protocol names' used in status dumps from name templates
used 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
grammar includes proto_name which generates the name and interns it in the
symbol table.
2000-01-17 11:52:50 +00:00
Martin Mares 0ec90e9fc6 Pipe protocol supports reconfiguration. 2000-01-17 00:20:45 +00:00
Martin Mares 50fe90edf3 First attempt on dynamic reconfiguration. There are still lots of bugs
and problems to solve, but the hardest part works.
2000-01-16 16:44:50 +00:00
Ondrej Filip 1508757478 Preparing for building LS databaze. Huh, why is it so complicated? :-(
Adding definition of some constants.
2000-01-05 00:03:47 +00:00
Martin Mares 3f996d46df Added missing semicolon.
rip.h compiles in IPv6 mode, rip.c still doesn't.
1999-12-16 13:14:32 +00:00
Martin Mares 6aea8905c4 TODO entries and FIXME's. 1999-12-16 12:18:33 +00:00
Pavel Machek dff1f57917 Added hooks for show route.
Fixed passing metrics around routing tables.
1999-12-08 13:33:44 +00:00
Pavel Machek 4d4de35f00 Fix timing and fix endianity in metrics. 1999-12-08 12:51:45 +00:00
Martin Mares feed822676 Implemented `show static'. It's a relatively good example of how to write
show commands for other protocols.
1999-12-03 11:41:23 +00:00
Pavel Machek e7f76bae8c Stupid bug (essentially while(1) loop) occuring sometimes during start
of bird fixed.
1999-12-01 13:44:42 +00:00