Commit graph

448 commits

Author SHA1 Message Date
Ondrej Zajicek
eb0f129fce Merge branch 'socket2' into new 2010-03-26 18:53:31 +01:00
Ondrej Zajicek
af157fa3db Disable multiple OSPF pseudointerfaces on BSD. 2010-03-26 14:48:01 +01:00
Ondrej Zajicek
97e46d28ff Adds check for no protocol and some minor CLI fixes.
- Adds check to deny config file with no specified protocol to prevent
  loading of empty config file.
- Moves CLI init before config parse to receive immediate error message
  when cannot open control socket.
- Fixes socket name path check and other error handling in CLI init.
2010-03-17 12:19:22 +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
afa9f66c27 Adds support for PTP links on BSD. 2010-03-10 01:04:09 +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
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 Zajicek
e0a45fb421 Restricted read-only CLI.
Also adds support for executing commands using birdc <cmd>.
2010-02-21 09:57:26 +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
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
75f8861898 NEWS and version update. 2010-02-10 16:18:17 +01:00
Ondrej Zajicek
7d1966689f RTF_CLONING is removed in FreeBSD 8. 2010-02-10 14:57:16 +01:00
Ondrej Zajicek
76b53a4e20 Adds some log messages related to configure.
Also fixes a bug in the previous patch.
2010-02-06 22:57:51 +01:00
Ondrej Zajicek
c37e78510f Makes date/time formats configurable. 2010-02-03 00:19:24 +01:00
Ondrej Zajicek
861f223a53 BSD compatibility fix. 2010-01-06 23:20:43 +01:00
Ondrej Zajicek
0c75411bec NEWS, version and documentation update. 2010-01-06 16:57:20 +01:00
Ondrej Zajicek
cf31112f0d Implements MRTdump feature. 2010-01-03 12:17:52 +01:00
Ondrej Zajicek
c4199e3031 Merge branch 'dev' into ospf3 2009-12-20 22:56:09 +01:00
Ondrej Zajicek
6877ff73a6 NEWS and version update. 2009-12-19 18:45:46 +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
a6250a7d10 Fix -p option. 2009-11-26 23:23:29 +01:00
Ondrej Zajicek
6a72a276f6 New version. 2009-11-19 12:53:55 +01:00
Ondrej Zajicek
a4644ed6ab Implement option to exit after config file parsing. 2009-11-19 11:44:17 +01:00
Ondrej Zajicek
653b4015f1 After shutdown, BIRD should have exit code 0. 2009-11-13 14:54:43 +01:00
Ondrej Zajicek
d3f36e5978 Fixes BIRD socket unlink. 2009-11-13 14:43:29 +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
9d4d38d1a5 Fixes some problems related to link-local routes in KRT interface. 2009-10-28 22:39:24 +01:00
Ondrej Zajicek
b5332824ea New version. 2009-10-28 20:33:08 +01:00
Ondrej Zajicek
bff74c7aa3 Allows importing 'onlink' routes. 2009-10-20 19:04:28 +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
43c7a1ffa0 New version. 2009-09-30 18:48:38 +02:00
Ondrej Zajicek
aa7088fe26 Fixes one previous commit. 2009-09-30 16:34:47 +02:00
Ondrej Zajicek
2d507e64b7 Do not allow gateway routes with NULL iface. 2009-09-24 19:08:14 +02:00
Ondrej Filip
5eb4d0180e New release 1.1.3 2009-09-11 12:20:30 +02:00
Ondrej Zajicek
be86240662 Temporary OSPFv3 development commit.
Finally, it is working.
2009-09-08 13:45:02 +02:00
Ondrej Zajicek
daeeb8e982 Clear memory allocated by ralloc().
This also fixes bug that timer->recurrent was not cleared
in tm_new() and unexpected recurrence of startup timer
in BGP confused state machine and caused crash.
2009-09-04 11:24:08 +02:00
Ondrej Zajicek
f9c799a00e Temporary OSPFv3 development commit (changing multicast support). 2009-09-04 11:06:51 +02:00
Ondrej Zajicek
061ab802a6 Temporary OSPFv3 development commit 2009-08-27 18:25:46 +02:00
Ondrej Zajicek
b49e6f5a65 Temporary OSPFv3 development commit 2009-08-25 16:42:14 +02:00
Ondrej Filip
a0c405501f Version 1.1.2 2009-08-23 23:04:59 +02:00
Ondrej Zajicek
86975e584e Allow more kernel routing tables in IPv6. 2009-08-21 09:43:31 +02:00
Ondrej Zajicek
c5be5a163c NEWS and version update. 2009-08-12 10:26:42 +02:00
Ondrej Zajicek
6baef17ecf Fixes bug in CLI TX buffer management. 2009-07-14 14:18:54 +02:00
Ondrej Filip
f1684ae6c0 New release 1.1.0! 2009-06-28 09:43:29 +02:00
Ondrej Filip
ef86b8465f Unused file removed. 2009-06-27 18:56:26 +02:00
Ondrej Zajicek
2d785e8d6a Fixes bug on TCP passive socket binding on BSD.
BGP on BSD was bound to random port. I am surprised that
nobody noticed it already.
2009-06-26 13:33:41 +02:00
Ondrej Zajicek
5004d02cb9 Merge branch 'master' into dev 2009-06-26 01:06:12 +02:00
Ondrej Zajicek
1876e18d32 Minor bugfix. 2009-06-25 15:44:43 +02:00
Ondrej Zajicek
200ede8226 NEWS and version update. 2009-06-25 14:42:25 +02:00
Ondrej Zajicek
4323099da9 Fixes bug in scheduling of callback by main loop.
If other side of a socket is sending data faster than
BIRD is processing, BIRD does not schedule any other
callbacks (events, timers, rx/tx callbacks).
2009-06-20 00:59:32 +02:00
Ondrej Zajicek
bf1aec970e Adds support for soft reconfiguration. 2009-06-19 23:49:34 +02:00
Ondrej Zajicek
789772ed45 Implements option that changes BGP listening socket parametres. 2009-06-18 19:20:07 +02:00
Ondrej Filip
dc16584ac2 Small change to make BIRD's IPv6 packaging easier 2009-06-02 00:28:08 +02:00
Ondrej Zajicek
f98e291579 The pipe cleanup. 2009-06-01 14:07:13 +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
874b868544 Implements primary address selection base on 'primary' option. 2009-05-29 22:49:30 +02:00
Ondrej Zajicek
51f4469f03 Fixes problems with rewriting of kernel device routes. 2009-05-29 17:36:37 +02:00
Ondrej Zajicek
6f68f066b6 Add 'primary' configuration option. 2009-05-29 13:32:24 +02:00
Ondrej Zajicek
050ceb867f Update versions. 2009-05-22 18:41:52 +02:00
Ondrej Zajicek
80f0d6764a Fixes type mismatch on BSD systems. 2009-05-22 13:37:07 +02:00
Ondrej Zajicek
6c84554b67 Merge branch 'master' into dev 2009-05-21 09:26:59 +02:00
Ondrej Filip
ef9c9ab9b6 OpenBSD port related changes. 2009-05-11 01:32:49 +02:00
Ondrej Zajicek
19e10907c1 Fixes communication on netlink sockets
Independent sessions on netlink sockets mixed state
in some common variables.
2009-05-08 14:37:06 +02:00
Ondrej Filip
2b70f0742e Linux specific TCP-MD5 handling moved to sysdep/linux/sysio.h
FreeBSD coded added. BSD cannot set BGP passwords itself.
This has to be done by external command.
2009-05-04 18:17:46 +02:00
Ondrej Filip
1bc4b2cc84 Syntax error fix for systems without CONFIG_SELF_CONSCIOUS (KRT_ALLOW_LEARN) 2009-05-04 17:49:56 +02:00
Ondrej Zajicek
11e0568f8b NEWS and version update 2009-04-28 09:46:59 +02:00
Ondrej Zajicek
e366625c0e Fixes mixed-up messages on netlink socket
Under specific circumstances there might be two mixed-up
netlink sessions (one for scan, the other for route change
request). This patch separates netlink scans and requests
to two fds (and seq counters).

This should fix http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=428865
2009-04-17 18:43:11 +02:00
Ondrej Zajicek
4d7d0cb137 Fixes minor bug in pipe.
Missing macro leads to not calling some of protocol's
callbacks.
2009-03-25 18:29:17 +01:00
Ondrej Zajicek
3d574679b8 Fix bugs related to kernel table synchronization.
KRF_INSTALLED flag was not cleared during reconfiguration
that lead to not removing routes during reconfigure when
export rules changed.

We also should not try to remove routes we didi not installed,
on Linux this leads to warnings (as kernel checks route source
field and do not allow to remove non-bird routes) but we should
not rely on it.
2009-03-20 12:58:21 +01:00
Ondrej Zajicek
cb53039271 Rate limit for most abundant log messages 2009-02-26 14:23:54 +01:00
Ondrej Zajicek
11ec0f1a51 Fixes compilation on older systems.
Older kernel headers (the ones in Debian Sarge) does not
have __kernel_sockaddr_storage .
2009-01-16 12:49:51 +01:00
Ondrej Zajicek
35164c5017 rx_hook may be cleaned in some callback so we check it before
executing sk_read().
2008-12-12 17:48:03 +01:00
Ondrej Zajicek
35f983f889 Fixes segfault with multiple routing tables. 2008-11-21 18:17:03 +01:00
Ondrej Zajicek
eac21b46f7 This is bug, isn't it? 2008-11-21 13:01:05 +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
6c8102e3a8 Ignore messages related to wireless extensions. 2008-11-04 14:51:45 +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
a98fbf0f12 Merge branch 'dev' into out 2008-10-27 00:20:22 +01:00
Ondrej Zajicek
68fa95cfec Check of socket name length 2008-10-26 23:55:38 +01:00
Ondrej Zajicek
4c94a6c7e7 Do not repeat 'Invalid broadcast address' error message.
'Invalid broadcast address' error is reported only once for
an interface and not during every interface scan.
2008-10-26 23:23:09 +01:00
Ondrej Zajicek
d7f3b30649 Ignore unknown netlink events.
Bird sometimes reported 'bird: nl_parse_link: Malformed message received'.
The cause is that bird asynchronously received netlink packet from
wireless driver about some wireless event on its link layer. In that
case bird shouldn't complain.
2008-10-26 23:20:50 +01:00
Ondrej Zajicek
1567edea8d Bugfix for routing table breaking bug.
Here is a patch fixing a bug that causes breakage of a local routing
table during shutdown of Bird. The problem was caused by shutdown
of 'device' protocol before shutdown of 'kernel' protocol.  When
'device' protocol went down, the route (with local network prefix)
From different protocol (BGP or OSPF) became preferred and installed
to the kernel routing table. Such routes were broken (like
192.168.1.0/24 via 192.168.1.2). I think it is also the cause
of problem reported by Martin Kraus.

The patch disables updating of kernel routing table during shutdown of
Bird. I am not sure whether this is the best way to fix it, I would
prefer to forbid 'kernel' protocol to overwrite routes with
'proto kernel'.

The patch also fixes a problem that during shutdown sometimes routes
created by Bird remained in the kernel routing table.
2008-10-26 23:09:46 +01:00
Ondrej Zajicek
d51aa28190 Implementation of MD5 authentication of BGP sessions. 2008-10-26 22:42:39 +01:00
Ondrej Filip
97c6fa02e0 Previous patch reverted. :-( 2008-08-25 12:06:20 +00:00
Ondrej Filip
030e3a79cb Buffer overflow fix. 2008-08-25 11:57:46 +00:00
Martin Mares
057021df0d Fix behavior of ipa_opposite().
It was giving wrong results on /30 networks.
2008-08-25 11:19:49 +00:00
Ondrej Filip
3c3271d9fc Close fd of config file after reconfiguration. 2008-08-24 23:24:14 +00:00
Martin Mares
8411a37e7d Detach from the TTY properly. 2007-06-20 07:33:26 +00:00
Ondrej Filip
c81b4ec361 Yes, we will go for 1.0.12 2005-03-16 16:08:40 +00:00
Ondrej Filip
028a4cfc02 Let's go for 1.0.11. 2005-02-20 04:28:55 +00:00
Ondrej Filip
c025b85273 Real write is only in sk_maybe_write. Previous change partially reverted.
Thank you MJ.
2005-02-14 23:15:04 +00:00
Ondrej Filip
7c49f71559 Added s->err_hook wrapper that empties socket. 2005-02-14 21:28:51 +00:00
Ondrej Filip
030d3b387e Small changed to reduce the number of warnings. 2005-02-14 11:58:46 +00:00
Ondrej Filip
75c1c58519 Yes, I'd like to go to 1.0.10 2005-02-14 11:37:40 +00:00
Ondrej Filip
0d3effcf8c Time added in password management. 2005-02-12 22:27:55 +00:00
Ondrej Filip
777acf91bb Everything is tested and works. I thins it's right time to go to 1.0.9. 2004-07-14 21:47:39 +00:00
Ondrej Filip
09e4117cc1 sk_write bugfix for BSD. 2004-06-18 12:54:53 +00:00
Ondrej Filip
b7e9c74cba Used parameter can be marked as unused. :-) Thanx MJ. 2004-06-07 16:51:23 +00:00
Ondrej Filip
282997f21e Some new warnings eliminated. 2004-06-07 10:00:29 +00:00
Ondrej Filip
19d9e30336 Marked unused parameters as unused. 2004-06-07 09:52:15 +00:00
Ondrej Filip
fb257e43fc Deleted some unused code. 2004-06-07 09:09:14 +00:00
Ondrej Filip
41c8976e29 Test old instance of BIRD. 2004-06-06 17:05:25 +00:00
Martin Mares
9831e5916f Staticized lots of local functions. 2004-06-05 09:58:23 +00:00
Martin Mares
6578a60493 Marked unused parameters in sysdep code as such. 2004-06-05 09:11:07 +00:00
Martin Mares
e98bc2ea9b Renamed log() to log_msg(), but still keeping the old name as a macro.
This is done to avoid clashes with gcc-3.3 which has built-in logarithms :)
2004-06-05 09:05:12 +00:00
Martin Mares
4da25acb0a Cleaned up sk_reallocate() and friends.
Also, removed the `if (s)' test, because I believe that as the whole
socket interface doesn't accent NULL pointers, sk_reallocate() shouldn't
be the only exception.
2004-06-05 08:56:43 +00:00
Ondrej Filip
e7ef86a58c OSPF is ready for changing MTU. 2004-06-04 18:51:29 +00:00
Ondrej Filip
85305e5d8f typo in README 2004-06-04 17:32:38 +00:00
Ondrej Filip
7d72aadb8a CONFIG_SKIP_MC_BIND added.
BSD hates it, Linux needs it.
2004-06-03 08:18:14 +00:00
Ondrej Filip
cb4dd4e2f7 Deleted useless rfree. (Socked was freed by cli_free()) 2004-06-02 15:14:49 +00:00
Ondrej Filip
7048461df1 Code clean up. 2004-06-01 13:58:39 +00:00
Ondrej Filip
8281ff201e Reverting last patch. 2004-06-01 12:57:13 +00:00
Ondrej Filip
77772dbc65 Caching loopback interface. 2004-06-01 10:55:10 +00:00
Ondrej Filip
a8bb459a3f log->DBG 2004-06-01 10:53:30 +00:00
Ondrej Filip
1554cc0282 Minor changes caused by MJ's comment. 2004-06-01 10:45:28 +00:00
Ondrej Filip
b613b9928b #ifdef CONFIG_UNIX_DONTROUTE added. 2004-06-01 10:32:02 +00:00
Ondrej Filip
402a9fa78a Useles log()s deleted. 2004-06-01 09:10:11 +00:00
Ondrej Filip
e85bd57a0e bzero has 2 arguments. 2004-06-01 09:07:16 +00:00
Ondrej Filip
b88a1d4040 memset -> bzero 2004-06-01 08:59:47 +00:00
Martin Mares
ea0ac8f69a Move CLI socket to the newly created CLI's pool.
(thanks to Andreas for the original idea)
2004-05-31 22:00:18 +00:00
Martin Mares
38a608c55a Rewritten the I/O loop. All socket operations are now safe, meaning that
you can delete the socket from anywhere in the hooks and nothing should break.
Also, the receive/transmit buffers are now regular xmalloc()'ed buffers,
not separate resources which would need shuffling around between pools.

sk_close() is gone, use rfree() instead.
2004-05-31 21:48:19 +00:00
Martin Mares
5f2a6a9ff3 Fix handling on full pipe to client in bird. Prevent packet overflows
for even only medium sized route table output. Fix a strange garbled
output problem in the client. The latter seems to be caused by some
library doing tcflush while there is still command output pending. So
the best fix here is to do fflush and then tcdrain. Note that this
problem occurs only under certain load situations and is not too easy to
reproduce.

(by Andreas)
2004-05-31 17:55:30 +00:00
Ondrej Filip
c222500d8e Previous change was mistake. 2004-05-31 17:00:22 +00:00
Ondrej Filip
b1a1fabac7 *BSD port added. (Tested on FreeBSD and NetBSD) 2004-05-31 13:25:00 +00:00
Ondrej Filip
bf135bcb1f Prepared for release 1.0.8. 2003-09-01 08:46:07 +00:00
Martin Mares
c197d44e17 This probably IS the memory leak we're looking for. Alien routes weren't
correctly disposed of.
2003-08-13 22:07:55 +00:00
Martin Mares
f240a133b3 Releasing version 1.0.6. 2003-04-06 19:42:28 +00:00
Martin Mares
abf06173a3 Current Linux kernels don't remember rtm_protocol for IPv6 routes and supply RTPROT_BOOT instead.
Work around that.
2003-02-22 23:06:32 +00:00
Martin Mares
8001948b43 Report link-scope addresses as well. 2003-02-22 22:38:15 +00:00
Martin Mares
7d875e094b Added missing includes. 2002-11-13 08:47:06 +00:00
Martin Mares
a19cd81100 Added missing #include and wondering how could it ever compile. 2002-11-13 08:30:56 +00:00
Martin Mares
5fc7c5c513 Don't loop forever when trying to skip an out-sequence netlink reply. 2001-08-03 08:44:51 +00:00
Ondrej Filip
c48b33292b Yes, 1.0.5 released. 2001-06-09 15:13:38 +00:00
Martin Mares
01b776e117 Fixed <time.h> vs. <sys/time.h> problems. 2001-03-06 13:40:39 +00:00
Ondrej Filip
fdb1998202 Serious bug in ext lsa origination found. Going for 1.0.4. 2000-09-03 22:18:40 +00:00
Ondrej Filip
19e930a9bb Version 1.0.3 released. 2000-09-03 17:53:12 +00:00
Ondrej Filip
a24e315762 Released as version 1.0.2. 2000-08-23 06:51:26 +00:00
Martin Mares
fc12a680b1 Released as version 1.0.1. 2000-06-21 22:08:46 +00:00
Martin Mares
2836ce3951 Check broadcast address sanity before believing it. 2000-06-21 09:58:09 +00:00
Martin Mares
f9eb8f7e06 If compiled with --enable-debug, don't even try to log to syslog unless
the user forces it in the config file.
2000-06-19 23:50:02 +00:00
Martin Mares
ca00d4a13a Fix numbering of routing tables in IPv6 version. 2000-06-18 19:49:32 +00:00
Martin Mares
4daf03e513 Use our own SUN_LEN if libc doesn't provide it. 2000-06-16 23:12:47 +00:00
Martin Mares
5ddf4a58f9 During initialization, log to both syslog and stderr. When a configuration
file has been read and it doesn't specify any logging, log to syslog only
(if syslog is not available, then stderr).
2000-06-09 07:32:57 +00:00
Martin Mares
0b3bf4b1d8 Use SUN_LEN() for length of UNIX domain addresses. This should fix problems
with connection to clients on libc5 machines.
2000-06-09 07:30:22 +00:00
Martin Mares
2d176ac5d2 Released as 1.0.0, but marked it as a BETA version. 2000-06-09 06:45:48 +00:00