Ondrej Filip
85ae398a61
The source address configuration in BGP added.
2008-08-24 23:20:46 +00:00
Ondrej Filip
98ac61766d
A lot of changes:
...
- metric is 3 byte long now
- summary lsa originating
- more OSPF areas possible
- virtual links
- better E1/E2 routes handling
- some bug fixes..
I have to do:
- md5 auth (last mandatory item from rfc2328)
- !!!!DEBUG!!!!! (mainly virtual link system has probably a lot of bugs)
- 2328 appendig E
2004-06-25 16:39:53 +00: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
Ondrej Filip
7fdd338c36
ALIGN -> BIRD_ALIGN
2004-06-01 10:28:25 +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
6ea8ca1469
Updated a comment.
2003-02-23 10:22:04 +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
8c92bf6a0d
Temporary fix for BGP protocol capability announcement for IPv6 mode.
2003-02-22 10:40:35 +00:00
Martin Mares
60a72ed49b
Fixed length check miscalculation in IPv6 receive path.
2003-02-22 10:25:22 +00:00
Martin Mares
7d875e094b
Added missing includes.
2002-11-13 08:47:06 +00:00
Martin Mares
de10a974f2
Added missing semicolons.
2002-11-13 08:46:12 +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
bc00185e5a
Updated to new neighbor cache.
2000-06-01 13:00:19 +00:00
Martin Mares
fcb5f4a725
Updated all the Doc files to new format.
2000-05-31 11:30:18 +00:00
Martin Mares
7294f68b3b
path metric' and
disable after error' are switches, not numeric clauses.
2000-05-29 22:08:04 +00:00
Martin Mares
d2a7c0e9b2
Don't print trace messages about null updates.
2000-05-19 18:05:19 +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
e3f2d5fce3
Cleanup of configuration.
...
o Use `expr' instead of `NUM' and `ipa' instead of `IPA',
so that defined symbols work everywhere.
o `define' now accepts both numbers and IP addresses.
o Renamed `ipa' in filters to `fipa'.
Pavel, please update filters to accept define'd symbols as well.
2000-05-15 11:48:23 +00:00
Martin Mares
02bd064ab7
Adapted to new rt_notify semantics.
2000-05-13 11:02:02 +00:00
Martin Mares
2138d3b4d8
Use correct flags for the LOCAL_PREF attribute.
...
When an invalid attribute is found, copy the entire attribute to the data
section of the NOTIFICATION message.
2000-05-11 12:20:07 +00:00
Martin Mares
c09d1e8df2
KEEPALIVE TIME ought to set keepalive time, not connect retry time :)
2000-05-08 22:32:17 +00:00
Martin Mares
0c3588bf5e
Don't crash when the socket gets closed between updates.
...
Also, this time not only update `remains', but update it right :)
2000-05-08 14:53:22 +00:00
Martin Mares
9ff8f334ed
Update `remains' counter correctly.
2000-05-08 14:32:19 +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
507eea4c8b
Don't generate corrupted packets when sending only route deletes.
2000-05-08 12:37:24 +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
ab1129c1bd
Added skeleton Doc files for the whole developer's documentation.
2000-05-05 17:17:42 +00:00
Martin Mares
beaf86e13c
Removed RTS_RIP_EXT.
2000-05-04 21:23:10 +00:00
Martin Mares
2a149b18cc
Unused variables in IPv6 code.
2000-05-04 20:38:44 +00:00
Martin Mares
93a786cb03
Removed a lot of unused variables.
...
Please try compiling your code with --enable-warnings to see them. (The
unused parameter warnings are usually bogus, the unused variable ones
are very useful, but gcc is unable to control them separately.)
2000-05-04 20:30:36 +00:00
Martin Mares
cf3d6470d7
IPv6 BGP support finished. Also simplified the BGP stuff a bit.
2000-05-04 20:02:56 +00:00
Martin Mares
1c1da87b27
Receive-only IPv6 BGP.
2000-05-04 09:03:31 +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
d1a74339d4
Handle redistribution of unknown attributes correctly.
2000-05-02 12:51:39 +00:00
Martin Mares
cea6366400
The `bgp_origin' attribute is now an enum.
2000-04-28 15:13:29 +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
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
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
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
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
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