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
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
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
Martin Mares
9831e5916f
Staticized lots of local functions.
2004-06-05 09:58:23 +00:00
Martin Mares
e21423bab8
... in BGP.
2004-06-05 09:27:17 +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
6a57bb3110
Killed a couple of unused variables.
...
We really should compile with warnings enabled.
2004-05-31 20:57:38 +00:00
Martin Mares
11d4474c17
Better selection of link-local NLRI addresses, at least for our own
...
address. Need to do it better for the other neighbors -- the current
solution works only if they use the standard 64+64 global addresses
and the interface identifier in lower 64 bits is the same as for the
link-scope addresses.
2003-02-22 22:47:45 +00:00
Martin Mares
7d875e094b
Added missing includes.
2002-11-13 08:47:06 +00:00
Martin Mares
bcbdcbb6ae
Don't accept incoming connections when the neighbor is not up.
2000-06-20 07:49:08 +00:00
Martin Mares
58f7d004fd
Fixes to the progdoc.
2000-06-07 13:25:53 +00:00
Martin Mares
2e9b24211a
Spelling fixes to progdoc.
2000-06-07 12:29:08 +00:00
Martin Mares
54e55169da
BGP documented.
2000-06-04 17:06:18 +00:00
Martin Mares
5e88d73025
BGP now reports originating AS and origin type in get_route_info().
2000-05-19 11:01:41 +00:00
Martin Mares
f4ab231746
bgp_get_status: If protocol is down, don't print BGP state.
2000-05-15 12:19:28 +00:00
Martin Mares
93d6bf38a6
The bgp_list is gone. Incomming connections are now handled in a much
...
more straightforward manner by scanning the active configuration for
matching protocols.
2000-05-08 13:26:30 +00:00
Martin Mares
79681f4a19
Link the instance to the global BGP list as soon as possible.
2000-05-08 11:04:22 +00:00
Martin Mares
acfce55c86
Setup of incoming connection is now a separate function.
2000-05-07 10:41:45 +00:00
Martin Mares
53943a0022
Defined format specifier %M' which behaves as
%m', but takes the
...
error code as an argument.
Use it in socket hooks where we really shouldn't rely on errno containing
the right value or even existing.
2000-05-02 16:10:04 +00:00
Martin Mares
85368cd4b7
Full protocol tracing.
2000-05-02 16:07:41 +00:00
Martin Mares
9165888ad2
Handle connect errors correctly.
2000-04-27 19:41:10 +00:00
Martin Mares
5db9bae286
IBGP fixes.
2000-04-26 13:26:31 +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
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
efcece2da3
Better reporting of both local and remote errors.
2000-04-25 21:13:25 +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
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
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
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
f880924990
BGP now handles incoming routes (IPv4 only).
2000-04-01 09:17:33 +00:00
Martin Mares
c00d31befa
Parsing of BGP attributes.
2000-03-31 23:21:37 +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
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
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