Commit graph

1185 commits

Author SHA1 Message Date
Ondrej Zajicek f796945f04 Fixes LSA checksum computation for larger LSAs. 2011-07-03 23:24:38 +02:00
Ondrej Zajicek fdf16eb658 Prints full community lists during 'show route all'. 2011-07-03 19:43:30 +02:00
Ondrej Zajicek 35f8c731ea Fixes output of BGP timers in 'show protocols all'. 2011-06-25 14:51:16 +02:00
Ondrej Zajicek d8b5a786d2 IPV6_CHECKSUM should not be used on ICMPv6 sockets. 2011-06-25 11:35:54 +02:00
Ondrej Zajicek ae85e28cf4 Fixes a bug in OSPF causing DoS by an invalid packet. 2011-06-20 07:37:55 +02:00
Ondrej Zajicek 61c96d7244 Fixes bug that causes crash with strange BGP updates. 2011-05-31 17:27:46 +02:00
Ondrej Zajicek 1155c79209 Fixes compatibility with Mikrotik. 2011-05-19 01:20:00 +02:00
Ondrej Zajicek 5964569c23 Merge commit 'origin/master' 2011-04-29 19:03:19 +02:00
Ondrej Zajicek 73272f04af Adds BGP option related to MED handling.
Adds option 'med metric' allows to compare MEDs
between routes received from different neighbors.
2011-04-22 16:13:27 +02:00
Ondrej Filip d600909da9 Fixed bug FICORA #503685. 2011-04-13 13:19:37 +02:00
Ondrej Zajicek 4ef0950603 Fixes a problem with BGP protocols and implicit router IDs. 2011-04-01 13:55:52 +02:00
Ondrej Zajicek d93a43a57d Fix leaked debug message. 2011-04-01 12:21:18 +02:00
Ondrej Zajicek 06fb60c4af Fixes some problems in BGP error handling. 2011-03-30 01:09:18 +02:00
Ondrej Zajicek ab16497189 Fixes a nasty bug in OSPF.
Sending malformed network prefixes in LSAs causes OSPF to crash
just after the LSA is propagated to the other routers.
2011-03-29 01:41:46 +02:00
Ondrej Zajicek 52a43ae3b7 Minor changes in addresses.
Mainly changes IA_UNNUMBERED to IA_PEER and adds IA_HOST. Also do not
show broadcast addr in show interfaces. Nobody cares for that.
2011-03-28 22:46:18 +02:00
Ondrej Zajicek 8e48831a97 Vastly improved OSPF reconfiguration.
Now it can handle a change in iface pattern structure.
It can add, remove and reconfigure interfaces, vlinks and areas.
2011-03-17 15:53:36 +01:00
Ondrej Zajicek 93e868c730 Implements Router Advertisement protocol. 2011-03-13 11:33:50 +01:00
Ondrej Zajicek e7b4948cbd A simplification of the next-hop calculation.
Thanks to Joakim Tjernlund for the idea.
2010-12-28 01:43:07 +01:00
Ondrej Zajicek 919f5411c4 Implements Point-to-MultiPoint interface type for OSPF. 2010-12-24 18:08:07 +01:00
Ondrej Zajicek 39847cda73 Add some comments. 2010-12-23 12:24:40 +01:00
Ondrej Zajicek f0160f0e06 Fixes a minor memory wasting. 2010-12-23 10:25:22 +01:00
Ondrej Zajicek 57c574d82a Multipath support for OSPF 2010-12-07 23:35:39 +01:00
Ondrej Zajicek 9852f81064 Multipath support for static protocol. 2010-12-07 23:34:36 +01:00
Ondrej Zajicek 7e95c05d88 Core multipath support. 2010-12-07 23:33:55 +01:00
Ondrej Zajicek 391931d456 Minor finalizations of link state checks. 2010-11-19 13:46:21 +01:00
Ondrej Zajicek 79f561a173 Fixes a typo (in OSPF_MAX_PKT_SIZE value).
And updates a comment.
2010-11-19 12:45:17 +01:00
Ondrej Zajicek d9e7e1b13d Adds support for iface link detection to OSPF. 2010-11-13 14:19:23 +01:00
Ondrej Zajicek fe181e7c63 Adds support for iface link check to static protocol. 2010-11-11 12:24:27 +01:00
Ondrej Zajicek 5cdf264f93 Fixes a bug related to implicit backbone on ABR. 2010-11-10 16:43:11 +01:00
Ondrej Zajicek c4443085a1 OSPF tx buffers should have the same size as rx buffers.
We should be able to send everything we received.
2010-11-04 17:25:48 +01:00
Ondrej Zajicek d5356072ac Fixes a bug in LSA update of large LSAs. 2010-11-04 17:22:43 +01:00
Ondrej Zajicek d3209d939d Fixes a bug in OSPF. 2010-11-03 10:04:46 +01:00
Ondrej Zajicek fcf5a4f4b3 Change default for BGP IPv6 socket to V6ONLY.
Also add a new option 'dual' for the old behavior.
2010-11-03 10:02:24 +01:00
Ondrej Zajicek ed76033c84 Fixes some typos. 2010-10-22 08:35:19 +02:00
Ondrej Zajicek 948c865fac Fixes a crash in RIP during reconfigure. 2010-09-03 17:15:02 +02:00
Ondrej Zajicek 3cb6c83f1a Fixes a memory leak in RIP. 2010-09-03 16:32:00 +02:00
Ondrej Zajicek faf58cec4d Fixes a bug in NBMA on an iface with multiple IP addresses. 2010-08-22 14:43:53 +02:00
Ondrej Zajicek ac4a1eedfc Change default for handling missing link-local addresses on route servers. 2010-08-13 14:30:36 +02:00
Ondrej Zajicek 265d06dcbc Fixes IPv6 build. 2010-08-04 15:27:11 +02:00
Ondrej Zajicek ba5e5940aa Adds igp_metric attribute. 2010-08-02 13:11:53 +02:00
Ondrej Zajicek d395fe4855 Fixes bug in OSPF ext-LSA origination. 2010-07-31 11:37:30 +02:00
Ondrej Zajicek d1e146f2f8 Implements IGP metric comparison for BGP routes. 2010-07-31 01:04:32 +02:00
Ondrej Zajicek ac3ac49a71 Adds route resolvability test. 2010-07-28 13:13:34 +02:00
Ondrej Zajicek 1b180121a9 Use link-local addresses in recursive next hops for IPv6 BGP. 2010-07-28 11:45:35 +02:00
Ondrej Zajicek 852b7062e3 Fixes a buffer overflow in TX code of IPv6 BGP. 2010-07-22 15:09:35 +02:00
Ondrej Zajicek 087cecd0e2 Adds some options and documentation related to recursive next hops. 2010-07-13 12:48:23 +02:00
Ondrej Zajicek 9be9a26413 Implements proper multihop BGP.
Also does some incompatible changes to config file syntax,
like removing 'via IP' from multihop option.
2010-07-12 17:39:39 +02:00
Ondrej Zajicek cfe34a316e Implements hostcache and recursive next hops.
Hostcache is a structure for monitoring changes in a routing table that
is used for routes with dynamic/recursive next hops. This is needed for
proper iBGP next hop handling.
2010-07-05 17:50:19 +02:00
Ondrej Zajicek 824de84d48 Do not start with huge OSPF FIBs.
Most OSPF instances don't need 64k FIB fields. This change halves
resident memory usage on small OSPF networks.
2010-06-02 22:25:39 +02:00
Ondrej Filip 4461b89791 Minor bug that appears only in debug mode. 2010-06-02 12:11:20 +02:00
Ondrej Zajicek a34b09349e Disable BGP protocol when cannot open listening socket. 2010-05-31 11:35:29 +02:00
Ondrej Zajicek 9b061f7ea5 Minor fixes. 2010-05-28 11:16:39 +02:00
Ondrej Zajicek 691057f033 Support loopback/dummy addresses. 2010-05-26 16:09:22 +02:00
Ondrej Zajicek e0a62ad0f8 Fixes a bug in duplicit configured stubnets.
If there was the same configured stubnet on local and remote
router, the remote route always won regardless of its cost.
2010-05-26 12:32:30 +02:00
Ondrej Zajicek 52572e94ec Check for OSPF seqnum wraparound and handle it. 2010-05-23 12:34:09 +02:00
Ondrej Zajicek 6d04ef8987 Comment update. 2010-05-21 16:40:09 +02:00
Ondrej Zajicek c1cefd7bea Do not remove old static route if it is in new config with different gw. 2010-05-16 11:03:59 +02:00
Ondrej Zajicek 7ff5803bec Do not originate summary or external LSA if it already here and not changed. 2010-05-16 10:27:20 +02:00
Ondrej Zajicek 475977242a Handle EPIPE as a common connection close event. 2010-05-14 16:54:39 +02:00
Ondrej Zajicek ee7408c2be Fixes a bug in LSA flooding.
LSAs are sometimes prematurely removed from LS retransmission lists.
2010-05-07 15:54:27 +02:00
Ondrej Zajicek 54818e9beb A minor bugfix in OSPF ext-LSA processing. 2010-05-03 00:10:48 +02:00
Ondrej Zajicek 506fa1a73e Merge several fixes suggested by Joakim Tjernlund. 2010-05-02 22:41:40 +02:00
Ondrej Zajicek 6384c7d7aa OSPF: most of summary LSA orig./flush logic rewritten.
Fixes many bugs in the old code and makes it much cleaner.
2010-05-02 19:58:34 +02:00
Ondrej Zajicek ba32170657 Better support for /31 networks. 2010-04-28 00:39:57 +02:00
Ondrej Zajicek 48b0814ace A fix in OSPFv3 next_hop calculation. 2010-04-27 18:29:01 +02:00
Ondrej Zajicek 9d1ee13887 Neighbors on OSPF broadcast networks should be identified by IP address, not RID.
Allows simple support for multiple interfaces to the same network.
2010-04-26 19:08:57 +02:00
Ondrej Zajicek 4e5fb4b60c Skip LSA host<->network endianity conversions on big endians. 2010-04-25 20:12:34 +02:00
Ondrej Zajicek 0ea8fb4abe Fixes and enhancements in 'show ospf state' command.
Now it shows a distance, option to change showing reachable/all network
nodes and better handling of AS-external LSAs in multiple areas. The
command 'show ospf topology' was changed to not show stubnets in both
OSPFv2 and OSPFv3 (previously it displayed stubnets in OSPFv2).
2010-04-24 15:18:21 +02:00
Ondrej Zajicek 3b89a2327b Fixes several problems in OSPF vlink implementation. 2010-04-21 21:50:38 +02:00
Ondrej Zajicek 6e80676096 Fixes next hop calculation on NBMA and parallel PTP links. 2010-04-11 12:22:47 +02:00
Ondrej Zajicek 7969ea3b41 Fixes a bug in OSPF on NBMA interfaces.
A very tricky bug. OSPF on NBMA interfaces probably never really worked.
When a packet was sent to multiple destinations, the checksum was
calculated multiple times from a packet with already filled checksum
field (from previous calculation). Therefore, many packets were sent
with an invalid checksum.
2010-04-11 10:19:54 +02:00
Ondrej Zajicek 6b5a8649a4 Do not export empty community list attribute in BGP. 2010-04-08 17:56:56 +02:00
Ondrej Zajicek b8113a5e92 Implements BGP 'show protocols' info details. 2010-04-07 00:19:23 +02:00
Ondrej Zajicek e60d55becd Fixes OSPFv3 route generation for local stub networks. 2010-04-02 19:03:18 +02:00
Ondrej Zajicek e7b09e4ab9 Use SO_BINDTODEVICE also in Linux/IPv6. 2010-04-02 16:11:46 +02:00
Ondrej Zajicek bed417288e Minor fixes to previous patches. 2010-04-02 11:31:20 +02:00
Ondrej Zajicek 126683feed Filter language updates; new route attributes and datatype.
- Adds bgp_originator_id and bgp_cluster_list route attributes.
 - Adds dotted quad filter datatype (for router IDs, used by
   bgp_originator_id and ospf_router_id route attributes).
 - Fixes pair ~ pair set matching.
 - Documentation updates.
2010-03-29 19:29:03 +02:00
Ondrej Zajicek 48cff379a7 Added some comments. 2010-03-26 16:21:29 +01:00
Ondrej Zajicek af157fa3db Disable multiple OSPF pseudointerfaces on BSD. 2010-03-26 14:48:01 +01:00
Ondrej Zajicek 885b3d6127 Fixes LLS compatibility. 2010-03-22 14:00:47 +01:00
Ondrej Zajicek 0aad2b9292 Temporary OSPF commit - sockets. 2010-03-14 16:36:59 +01:00
Ondrej Zajicek 54305181f6 Merge branch 'new' into socket2 2010-03-11 18:55:59 +01:00
Ondrej Zajicek e7b76b9760 Temoporary OSPF commit - socket changes. 2010-03-11 18:07:24 +01:00
Ondrej Zajicek 53434e44a9 Better flushing of interfaces.
When device protocol goes down, interfaces should be flushed
asynchronously (in the same way like routes from protocols are flushed),
when protocol goes to DOWN/HUNGRY.

This fixes the problem with static routes staying in kernel routing
table after BIRD shutdown.
2010-02-27 16:00:07 +01:00
Ondrej Zajicek 3075824dbd Comparing cluster list length should be later in bgp_rte_better(). 2010-02-26 14:09:24 +01:00
Ondrej Zajicek ff2857b03d Many changes in (mainly) kernel syncers.
- BSD kernel syncer is now self-conscious and can learn alien routes
- important bugfix in BSD kernel syncer (crash after protocol restart)
- many minor changes and bugfixes in kernel syncers and neighbor cache
- direct protocol does not generate host and link local routes
- min_scope check is removed, all routes have SCOPE_UNIVERSE by default
- also fixes some remaining compiler warnings
2010-02-26 10:55:58 +01:00
Ondrej Zajicek e81b440f68 Fix configure to enable warnings and fix most of them. 2010-02-21 14:34:53 +01:00
Ondrej Filip 89534cdae5 'rr client id' is not expression but ID (like router id). 2010-02-20 21:14:02 +01:00
Ondrej Zajicek dca75fd7c2 Removes phantom protocol from the pipe design.
It seems that by adding one pipe-specific exception to route
announcement code and by adding one argument to rt_notify() callback i
could completely eliminate the need for the phantom protocol instance
and therefore make the code more straightforward. It will also fix some
minor bugs (like ignoring debug flag changes from the command line).
2010-02-13 12:26:26 +01:00
Ondrej Zajicek 9db74169be Fixes protocol statistics for pipes. 2010-02-13 10:44:46 +01:00
Ondrej Zajicek c83876265e Fixes a tricky bug in the pipe protocol.
When uncofiguring the pipe and the peer table, the peer table was
unlocked when pipe protocol state changed to down/flushing and not to
down/hungry. This leads to the removal of the peer table before
the routes from the pipe were flushed.

The fix leads to adding some pipe-specific hacks to the nest,
but this seems inevitable.
2010-02-11 22:27:06 +01:00
Ondrej Zajicek a2ea1bac60 Moves errno.h include. 2010-02-11 21:19:20 +01:00
Ondrej Zajicek 2af25a971a Fixes a crash caused by missing error hook on BGP listening socket.
Error happened when too many BGP connections arrived in one moment
(ECONNABORTED).
2010-02-11 11:12:58 +01:00
Ondrej Zajicek 353729f513 Temporary OSPF commit - socket changes. 2010-02-11 10:23:35 +01:00
Ondrej Zajicek c27b2449d1 Shows source (Router ID) for OSPF routes and adds such attribute.
A sad thing is that we does not have a 'router_id' filter type,
so it must be given as decimal number in filters.
2010-02-08 16:01:03 +01:00
Ondrej Zajicek aa80826e4a Unnumbered OSPF interfaces should be always in the point-to-point mode. 2010-02-07 09:49:34 +01:00
Ondrej Zajicek 44f26560ec Workaround for some broken BGP implementations that skip initial KEEPALIVE. 2010-02-02 10:14:21 +01:00
Ondrej Zajicek 41677025ee Changes 'ignore communities' to 'interpret communities'. 2010-01-28 15:59:18 +01:00
Ondrej Zajicek 6cb8f742f1 Better handling of well-known communities.
Process well-known communities before the export filter (old behavior is
to process these attributes after, which does not allow to send route
with such community) and just for routes received from other BGP
protocols. Also fixes a bug in next_hop check.
2010-01-27 17:22:57 +01:00
Ondrej Zajicek a306208582 Comment update. 2010-01-13 14:53:33 +01:00
Ondrej Zajicek 99f5fc14cd A partial vlink fix. 2010-01-08 22:19:41 +01:00
Ondrej Zajicek fc33143f02 A fix for broken multi-area OSPF 2010-01-08 17:22:51 +01:00
Ondrej Filip 6901fd0685 More information about vlinks. 2010-01-07 23:42:11 +01:00
Ondrej Filip 18722dc98c Bugfix in DBG call. 2010-01-07 23:03:19 +01:00
Ondrej Filip 3127b81755 Be a little bit more verbose on virtual links. 2010-01-07 22:54:39 +01:00
Ondrej Zajicek cf0858c217 A fix of a previous fix. 2010-01-07 22:43:06 +01:00
Ondrej Zajicek ba39197c11 Fixes vlinks for OSPFv2. 2010-01-07 22:22:10 +01:00
Ondrej Zajicek 29bfbae793 Debugging change leaked to repository. 2010-01-07 16:24:36 +01:00
Ondrej Zajicek 3034b384dd A minor fix in OSPF. 2010-01-07 11:46:11 +01:00
Ondrej Zajicek cf31112f0d Implements MRTdump feature. 2010-01-03 12:17:52 +01:00
Ondrej Zajicek 610bb3cff0 Show command cleanups. 2009-12-22 10:49:39 +01:00
Ondrej Zajicek c4ae53858b Change default mode of pipes to transparent.
Opaque pipes are obsolete and should disappear in the future.
2009-12-21 11:53:58 +01:00
Ondrej Zajicek fbcb7d5faf Change default LOCAL_PREF attribute to 100 (suggested value by RFC 4277). 2009-12-21 11:50:42 +01:00
Ondrej Zajicek ba9a122142 Merge branch 'ospf3' into new 2009-12-20 22:57:44 +01:00
Ondrej Zajicek c4199e3031 Merge branch 'dev' into ospf3 2009-12-20 22:56:09 +01:00
Ondrej Zajicek ea7ada3809 Fixes a new bug in the pipe protocol soft reconfiguration.
Also updates route reload for pipes.
2009-12-20 14:59:12 +01:00
Ondrej Zajicek 1a5178587f Fixes unnecessary pipe restart during configure. 2009-12-20 12:13:15 +01:00
Ondrej Zajicek 0225ea4edd Merge branch 'ospf3' into new 2009-12-15 00:32:13 +01:00
Ondrej Zajicek f2d7da742b Fixes export of routes with link-local gw. 2009-12-15 00:30:07 +01:00
Ondrej Zajicek 43c1ceccb9 Remove bgp_as4_support variable. 2009-12-14 23:31:25 +01:00
Ondrej Zajicek f75747073e Implements route reload for OSPF. 2009-12-14 21:17:15 +01:00
Ondrej Zajicek 63542845df Merge branch 'dev' into ospf3
Conflicts:

	proto/ospf/lsreq.c
	proto/ospf/lsupd.c
	proto/ospf/rt.c
2009-12-14 20:37:32 +01:00
Ondrej Zajicek 34a877ccac Minor updates. 2009-12-14 17:29:33 +01:00
Ondrej Zajicek 28008482a9 Minor fixes in OSPF. 2009-12-12 01:35:51 +01:00
Ondrej Zajicek 8a70a13e7e Implements protocol-specific Router ID for OSPF.
And fixes one minor bug.
2009-12-11 11:06:51 +01:00
Ondrej Zajicek be2d38b7e9 Temporary OSPFv3 commit. 2009-12-11 00:31:56 +01:00
Ondrej Zajicek 9807690b41 Fixes link-back check. 2009-12-06 22:05:50 +01:00
Ondrej Zajicek b76aeb8234 Fixes next hop handling. 2009-12-04 22:20:13 +01:00
Ondrej Zajicek 9895502392 Fixes OSPFv2 build. 2009-12-03 23:20:02 +01:00
Ondrej Zajicek bb3c7c6d22 Fixes some log messages. 2009-12-03 18:56:39 +01:00
Ondrej Zajicek 69fbf9a251 Minor fix in LSA update. 2009-12-03 18:25:14 +01:00
Ondrej Zajicek 11787b8473 Fixes some problems in pipes.
For transparent pipes, loop detection works correctly now.
Pipes are now more symmetric - in both directions filtering
is done in do_rte_announce().
2009-12-02 17:26:16 +01:00
Ondrej Zajicek 4b84bd4554 Fixes some crashes in OSPFv2. 2009-11-29 10:29:33 +01:00
Ondrej Zajicek e4a810b0ce Temporary commit. 2009-11-29 10:09:25 +01:00
Ondrej Zajicek bf47fe4b2e Implements BGP route refresh. 2009-11-26 20:47:59 +01:00
Ondrej Zajicek 3f9b7bfe9f Implements option that controls IPv6 BGP next hops when lladdr is missing. 2009-11-18 20:32:36 +01:00
Ondrej Zajicek d0e2d6d1e0 Show both IPv6 next hop addresses in BGP. 2009-11-17 14:17:23 +01:00
Ondrej Zajicek 3228c72cc0 Implements RFC 5004 - prefer older external routes. 2009-11-17 11:41:29 +01:00
Ondrej Zajicek cbf8b08d62 Temporary OSPFv3 devel commit 2009-11-17 10:31:33 +01:00
Ondrej Zajicek 4ac7c8341c Use IPv6 checksums in OSPFv3. 2009-11-09 23:22:53 +01:00
Ondrej Zajicek 3f22fa9e74 Merge branch 'dev' into ospf3 2009-11-09 22:54:39 +01:00
Ondrej Zajicek a6bc04d591 Implements better checks on incoming packets and LSAs in OSPF. 2009-10-29 23:57:42 +01:00
Ondrej Zajicek 9d4d38d1a5 Fixes some problems related to link-local routes in KRT interface. 2009-10-28 22:39:24 +01:00
Ondrej Zajicek 9727681a38 Implements proper handling of summary/external LSA IDs. 2009-10-25 20:02:28 +01:00
Ondrej Zajicek 988992446d Implement command to show LSA db. 2009-10-15 11:57:25 +02:00
Ondrej Zajicek b66abe8ef9 Reimplements 'show ospf state' for OSPFv3 and fixes some bugs. 2009-10-15 00:28:04 +02:00
Ondrej Zajicek 4cdd078453 Implements protocol-specific router id and updates documentation. 2009-10-12 23:31:42 +02:00
Ondrej Zajicek 52b9b2a178 Rename as_path_get_last/as_path_get_first to be consistent. 2009-10-12 20:44:58 +02:00
Ondrej Zajicek ea89da381f Workaround for stupid callback scheduler.
There is no reak callback scheduler and previous behavior causes
bad things during hard congestion (like BGP hold timeouts).

Smart callback scheduler is still missing, but main loop was
changed such that it first processes all tx callbacks (which
are fast enough) (but max 4* per socket) + rx callbacks for CLI,
and in the second phase it processes one rx callback per
socket up to four sockets (as rx callback can be slow when
there are too many protocols, because route redistribution
is done synchronously inside rx callback). If there is event
callback ready, second phase is skipped in 90% of iterations
(to speed up CLI during congestion).
2009-10-11 18:56:16 +02:00
Ondrej Zajicek d82fc18d75 Implement proper LSA ID generation. 2009-10-07 21:10:29 +01:00
Ondrej Zajicek a5bf5f781c Show bad peer AS number in log in decimal. 2009-09-24 23:14:44 +02:00
Ondrej Zajicek be6e39ebbf Passive option. 2009-09-24 22:12:11 +02:00
Ondrej Zajicek 54fe0d9230 Fixes setting of IP addresses to route attributes (NEXT_HOP). 2009-09-18 13:59:04 +02:00
Ondrej Zajicek 46eb80d5d5 Fixes headers for uintptr_t (and build on NetBSD). 2009-09-17 17:52:36 +02:00
Ondrej Zajicek 0781e9c62c Fixes preference in transparent pipes. 2009-09-17 12:40:02 +02:00
Ondrej Zajicek 9f0ba7b1c7 Implements proper RID handling in OSPFv3. 2009-09-17 12:18:03 +02:00
Ondrej Zajicek c15e569065 Make endianity swapping simpler. 2009-09-08 17:06:47 +02:00
Ondrej Zajicek be86240662 Temporary OSPFv3 development commit.
Finally, it is working.
2009-09-08 13:45:02 +02:00
Ondrej Zajicek f9c799a00e Temporary OSPFv3 development commit (changing multicast support). 2009-09-04 11:06:51 +02:00
Ondrej Zajicek d2ceaf4ec8 Temporary OSPFv3 development commit 2009-08-28 13:45:43 +02:00
Ondrej Zajicek 05198c12f4 Some cleanups. 2009-08-27 19:01:04 +02:00
Ondrej Zajicek 061ab802a6 Temporary OSPFv3 development commit 2009-08-27 18:25:46 +02:00
Ondrej Zajicek 949bd34e81 Fixes bug related to AS2->AS4 conversion. 2009-08-25 19:01:37 +02:00
Ondrej Zajicek b49e6f5a65 Temporary OSPFv3 development commit 2009-08-25 16:42:14 +02:00
Ondrej Zajicek c3226991a0 Temporary OSPFv3 development commit 2009-08-21 09:27:52 +02:00
Ondrej Filip 87d7fd9725 Bugfix - each protocol can be compiled separately. 2009-08-16 22:36:41 +02:00
Ondrej Zajicek b92c8e3019 Merge branch 'master' into dev 2009-08-10 10:16:00 +02:00
Ondrej Filip 0d328932be Symbols PASSWORDS and BROADCAST not declared for OSPF 2009-07-30 18:39:41 +02:00
Ondrej Zajicek 3aab39f589 Use %R in OSPF when appropriate. 2009-07-23 16:51:28 +02:00
Ondrej Zajicek 70670bf317 Fixed bug related to reconfiguration of BGP with MD5 passwords. 2009-07-09 15:42:39 +02:00
Ondrej Zajicek 2389c46fe3 Another pile of ipa_from_u32() calls. 2009-07-05 21:18:55 +02:00
Ondrej Zajicek b082c1bfcc Fixes OSPF on big-endians.
Hmm, #ifdef is not very typo-safe.
2009-07-05 20:26:51 +02:00
Ondrej Zajicek f9bdcad469 Fixes type mismatch in OSPF printf statements.
Mixing ip_addr and u32 does bad things on Ultrasparc.
Although both have the same size. Fascinating.
It was not catched by compiler because of varargs.
2009-07-05 19:01:54 +02:00
Ondrej Zajicek d72cdff411 Replace 'bind' option with 'listen' option.
To be consistent with other daemons.
2009-06-23 11:08:30 +02:00
Ondrej Zajicek da95a7a7da Fixes bug in ORIGIN check. 2009-06-23 11:00:38 +02:00
Ondrej Zajicek 29c430f856 Changes handling of AS_PATH_CONFED_* segments in AS_PATH.
Although standard says that if we receive AS_PATH_CONFED_*
(and we are not a part of a confederation) segment, we should
drop session, nobody does that and it is unwise to do that.

Now we drop session just in case that peer ASN is in
AS_PATH_CONFED_* segment (to detect peer that considers BIRD
as a part of its confederation).
2009-06-23 10:50:57 +02:00
Ondrej Zajicek 789772ed45 Implements option that changes BGP listening socket parametres. 2009-06-18 19:20:07 +02:00
Ondrej Zajicek 1b3b3e34ec Minor bugfixes. 2009-06-18 14:32:44 +02:00
Ondrej Zajicek 3867520281 Implements an option that allows to change a set of stub networks. 2009-06-11 17:25:38 +02:00
Ondrej Zajicek 3d15dcdb1c Changes OSPF to generate stub networks for non-primary addresses.
Also does some reorganization in RT LSA announcement.
2009-06-10 23:45:08 +02:00
Ondrej Zajicek b99d378698 Minor BGP changes related to error wait time. 2009-06-07 00:38:38 +02:00
Ondrej Zajicek 7238262671 Fixes bug related to startup delay change. 2009-06-06 18:56:33 +02:00
Ondrej Zajicek dd91e46765 Differentiate between error delay and connect/reconnect delay.
The difference is here to reject incoming connections in the
first case.
2009-06-06 18:16:22 +02:00
Ondrej Zajicek 72b28a041d Implements import route limits. 2009-06-04 13:31:09 +02:00
Ondrej Zajicek f98e291579 The pipe cleanup. 2009-06-01 14:07:13 +02:00
Ondrej Zajicek 2d45e09f58 Adds opaque/transparent pipe mode selection. 2009-06-01 12:10:10 +02:00
Ondrej Zajicek 23ac9e9a9e Changes pipes to transfer all routes between routing table, not just optimal routes. 2009-05-31 15:24:27 +02:00
Ondrej Zajicek f571473ef3 Hello packets on PTP networks should have zero netmask.
This also ensures that misconfigured routers (one side
ptp and one side broadcast) do not make adjacency.
2009-05-24 17:55:33 +02:00
Ondrej Zajicek 8cc598a520 Ignore Hello packets from different IP network (than primary). 2009-05-24 17:51:27 +02:00
Ondrej Zajicek 20e94fb85b A change in OSPF and RIP interface patterns.
Allows to add more interface patterns to one common 'options'
section like:

interface "eth3", "eth4" { options common to eth3 and eth4 };

Also removes undocumented and unnecessary ability to specify
more interface patterns with different 'options' sections:

interface "eth3" { options ... }, "eth4" { options ... };
2009-05-06 22:02:45 +02:00
Ondrej Zajicek 10ab65a8c9 Fixes one recently introduced IPv6 BGP compatibility problem. 2009-05-06 15:18:52 +02:00
Ondrej Zajicek b7a735ea9d Allow 'third party' BGP updates for originated routes. 2009-04-29 22:17:40 +02:00
Ondrej Zajicek 4827b69ff4 Fixes BGP IPv6 link local next hop handling.
When sending 'third party' BGP update, Bird used bogus link local
addresses instead of addresses it received before.
2009-04-29 18:58:24 +02:00
Ondrej Zajicek ad440a570b Fixes handling of 'next hop self' and 'source address' configuration
options.
2009-04-28 18:11:56 +02:00
Ondrej Zajicek 64cf11f544 Fixes BGPv6 bug - missing endianity conversion.
Also removes code skipping SNPAs
(obsoleted by newer RFCs, should be ignored).
2009-04-23 23:15:07 +02:00
Ondrej Zajicek f307842ad8 Fixes BGPv6 bug - mandatory attributes weren't validated; 2009-04-23 14:44:02 +02:00
Ondrej Zajicek 8f0c887a52 Fixe bug in BGPv6 that causes to send invalid network withdraws. 2009-04-23 14:16:05 +02:00
Ondrej Zajicek b9539e78d8 Fixes bug in BGPv6 causing crash by checking missing attributes. 2009-04-23 12:36:24 +02:00
Ondrej Zajicek 024c310b53 Fixes broken cryptographic authentication in OSPF
Cryptographic authentication in OSPF is defective by
design - there might be several packets independently
sent to the network (for example HELLO, LSUPD and LSACK)
where they might be reordered and that causes crypt.
sequence number error.

That can be workarounded by not incresing sequence number
too often. Now we update it only when last packet was sent
before at least one second. This can constitute a risk of
replay attacks, but RFC supposes something similar (like time
in seconds used as CSN).
2009-04-08 20:15:01 +02:00
Ondrej Zajicek b722fe7ebd Fixes bug in OSPF packet retransmission.
If a DBDES packet from a master to a slave is lost, then the old code
does not retransmit it and instead send a next one with the same
sequence number. That leads to silent desynchronization of LSA
databases.
2009-04-06 16:53:06 +02:00
Ondrej Zajicek 8298d780be Better OSPF packet tracing log messages.
Replaces old OSPF packet tracing messages with
uniform messages with packet dumps.
2009-04-06 16:17:47 +02:00
Ondrej Zajicek 48d79d521c Better handling of AS4 optional attribute errors
AS4 optional attribute errors were handled by session
drop (according to BGP RFC). This patch implements
error handling according to new BGP AS4 draft (*)
 - ignoring invalid AS4 optional attributes.

(*) http://www.ietf.org/internet-drafts/draft-chen-rfc4893bis-02.txt
2009-03-18 20:30:21 +01:00
Ondrej Zajicek e8ba557c7f Update capability handshake options
Add 'capabilities' option, change default behavior to advertise ipv4,
add some checks and ignore incoming capabilities when capabilities
are disabled.
2009-03-13 12:49:44 +01:00
Ondrej Zajicek e3299ab148 Added Cisco and Quagga capability workaround option. 2009-03-05 11:52:47 +01:00
Ondrej Zajicek 82a79586e5 Better handling of too long attributes
This patch extends the length for attributes from 1024 to 2048
(because both AS_PATH and AS4_PATH attributes take 2+4 B per AS).

If there is not enough space for attributes, Bird skips that
route group. Old behavior (skipping remaining attributes)
leads to skipping required attributes and session drop.
2009-02-27 15:24:46 +01:00
Ondrej Zajicek cb53039271 Rate limit for most abundant log messages 2009-02-26 14:23:54 +01:00
Ondrej Zajicek a9dc5e1ef2 Fixes another bug in packet retransmissions.
When slave was in full state, it didn't retransmit
lost packets. That leads to OSPF connection locked
in states loading-full.
2009-02-25 16:28:21 +01:00
Ondrej Zajicek cd17c651a6 Add format for BGP_AGGREGATOR attribute 2009-02-21 17:47:56 +01:00
Ondrej Zajicek d901db3fb7 Fixes bug in packet retransmissions.
When packet was lost during dbdes exchange, slave did not retransmit
it. That leads to OSPF connection locked in states exchange-exstart.
2009-02-12 19:46:51 +01:00
Ondrej Zajicek e3c460bc90 Fixes some past config grammar update that caused password related regression. 2009-01-16 12:08:07 +01:00
Ondrej Zajicek 3b108f18e8 One null-pointer dereference bugfix hidden in whitespace changes 2009-01-16 10:58:52 +01:00
Ondrej Zajicek 0dd7ccc766 Fix typo. 2009-01-13 19:25:27 +01:00
Ondrej Zajicek 0844b65d13 Fix OSPF protocol error recovery behavior.
When OSPF neighbor state drops down to EXSTART,
clear LSA request and retransmit lists, as specified
by RFC. I hope that this will prevent oscillations
between EXSTART and LOADING states, which sometimes
happened.

It also contains related fix from Yury Shevchuk that
properly resets DB summary list iterator.
2009-01-13 19:15:49 +01:00
Ondrej Zajicek f15cb99c79 Add check detecting packet overwrite in TX buffer. 2009-01-12 23:42:51 +01:00
Ondrej Zajicek 23d6702952 Some fixes and update of OSPF debug messages 2009-01-11 12:14:27 +01:00
Ondrej Zajicek 0e9617e400 Move check for NULL before usage of variable. 2009-01-11 10:51:54 +01:00
Ondrej Zajicek f20907adf6 Fixes bug in OSPF
Checksum was not recalculated when LSA was changed and
packets with bad checksum were sent.
2009-01-11 10:47:41 +01:00
Ondrej Zajicek 165a622727 Adds support for fallback to capabilityless BGP connect
When capability related error is received, next connect will be
without capabilities. Also cease error subcodes descriptions
(according to [RFC4486]) are added.
2008-12-24 17:24:41 +01:00
Ondrej Zajicek 591211557f Fixes bug related to reconfiguration of BGP.
BGP keeps its copy of configuration ptr and didn't update it during
reconfiguration. But old configuration is freed during reconfiguration.
That leads to unnecessary reset of BGP connection during reconfiguration
(old conf is corrupted and therefore different) and possibly other strange
behavior.
2008-12-24 12:18:10 +01:00
Ondrej Zajicek 11b32d9117 Major changes to BGP
Fixes two race conditions causing crash of Bird, several unhandled
cases during BGP initialization, and some other bugs. Also changes
handling of startup delay to be more useful and implement
reporting of last error in 'show protocols' command.
2008-12-19 01:34:39 +01:00
Ondrej Zajicek 3f670371cf OSPF routes appeared with random value of ospf_tag attribute.
This patch fixes it.
2008-11-14 21:13:56 +01:00
Ondrej Zajicek aebe06b40c Proper format functions for ORIGINATOR_ID, CLUSTER_LIST 2008-11-08 23:33:22 +01:00
Ondrej Zajicek b21f68b4cd Fix bugs in OSPF MD5 authentication. First bug is that default
values for MD5 password ID changed during reconfigure, Second
bug is that BIRD chooses password in first-fit manner, but RFC
says that it should use the one with the latest generate-from.

It also modifies the syntax for multiple passwords.
Now it is possible to just add more 'password' statements
to the interface section and it is not needed to use
'passwords' section. Old syntax can be used too.
2008-11-08 17:24:23 +01:00
Ondrej Zajicek fd91ae3325 Fix problem with local time changes. 2008-11-05 22:36:49 +01:00
Ondrej Zajicek 1389f3699f Fixes bugs in IPv6 code caused by recent commits. 2008-11-05 21:39:04 +01:00
Ondrej Zajicek a39b165e45 Multihop BGP was completely broken, because listening socket has always
ttl 1.
2008-11-01 16:58:40 +01:00
Ondrej Zajicek a92fe60717 Implementation of route server. 2008-11-01 12:55:43 +01:00
Ondrej Zajicek e16466b379 Fix race condition that breaks BGP connections after reconfigure.
RFC says that only connections in OpenConfirm and Established state
should participate in connection collision detection.

The current implementation leads to race condition when both sides
are trying to connect at the almost same time, then both sides
receive OPEN message by different connections at the almost same
time and close the other connection. Both connections are
closed and the both sides end in  start/idle or start/active
state.
2008-10-29 14:16:34 +01:00
Ondrej Zajicek f0ad56f441 Fixes some sloppiness of commit a3b70dc499. 2008-10-28 16:10:42 +01:00
Ondrej Zajicek a98fbf0f12 Merge branch 'dev' into out 2008-10-27 00:20:22 +01:00
Ondrej Zajicek a3b70dc499 Two new informative CLI commands for OSPF.
Two new CLI commands for OSPF giving nice informative (and still machine
parsable) representation of OSPF network graph (based on datas from the
LSA database).

The first command (show ospf topology) shows routers, networks and stub
networks, The second command (show ospf state) shows also external
routes and area-external networks and routers propagated by given area
boundary router.
2008-10-27 00:03:30 +01:00
Ondrej Zajicek 52586ccdf1 Missing newline. 2008-10-26 23:53:05 +01:00
Ondrej Zajicek a97122a3ca Bugfix in LSA origination for PTP OSPF links.
The code generating LSAs for PTP OSPF links is buggy. The old behavior
is that it generates PTP link if there is a full/ptp neighbor and stub
link if there isn't. According to RFC 2328, the correct behavior is to
generate stub link in both cases (in the first case together with PTP
link).

And because of buggy detection of unnumbered networks, for numbered
networks the code creates stub links with 0.0.0.0/32.
2008-10-26 23:43:13 +01:00
Ondrej Zajicek b6bf284a90 Bugfixes in MULIT_EXIT_DISC attribute handling.
- Old MED handling was completely different from behavior
   specified in RFCs - for example they havn't been propagated
   to neighboring areas.

 - Update tie-breaking according to RFC 4271.

 - Change default value for 'default bgp_med' configuration
   option according to RFC 4271.
2008-10-26 22:59:21 +01:00
Ondrej Zajicek 4819c3e17a Bugfix in LOCAL_PREF attribute handling. 2008-10-26 22:54:23 +01:00
Ondrej Zajicek ba5ed6f3e4 Implementation of an option for disabling AS4 support per BGP instance. 2008-10-26 22:48:02 +01:00
Ondrej Zajicek 4847a894bf Implementation of route reflection for BGP 2008-10-26 22:45:09 +01:00
Ondrej Zajicek d51aa28190 Implementation of MD5 authentication of BGP sessions. 2008-10-26 22:42:39 +01:00
Ondrej Zajicek 11cb620266 Implementation of 4B ASN support for BGP 2008-10-26 22:36:08 +01:00
Ondrej Filip 226cb2bc3f Expand ospf dump information. 2008-08-25 12:51:06 +00:00
Ondrej Filip 73e53eb555 Endianity problem in debug message fix. 2008-08-25 12:00:55 +00:00
Ondrej Filip 85ae398a61 The source address configuration in BGP added. 2008-08-24 23:20:46 +00:00
Ondrej Filip f39e3bfdbf Small bugfix in tracing. 2005-03-15 23:42:41 +00:00
Ondrej Filip 94c42054ea Added new parametr 'rx buffer <num>'. BIRD is able to receive
very large packets (if configured).
2005-03-15 22:06:36 +00:00
Ondrej Filip e6ea2e375e Maximal packet size in virtual links is 576. 2005-03-15 20:51:33 +00:00
Ondrej Filip e300066d5f OSPF can accept larger packets than MTU. 2005-03-14 11:24:56 +00:00
Ondrej Filip 427e59939b Look for large packets. 2005-03-14 11:07:10 +00:00
Ondrej Filip a2d5b405d4 Bugfix in external routes calculation. 2005-03-14 10:59:52 +00:00
Ondrej Filip 39fc85b4c6 Unused code deleted. 2005-02-20 19:03:34 +00:00
Ondrej Filip 63ca37f313 Cleanup - all unused variables deleted. 2005-02-20 18:56:06 +00:00