Commit graph

206 commits

Author SHA1 Message Date
Ondrej Zajicek
a7f23f581f Implements protocol templates.
Based on the patch from Alexander V. Chernikov.
Extended to support almost all protocols.
Uses 'protocol bgp NAME from TEMPLATE { ... }' syntax.
2011-11-07 00:31:23 +01:00
Ondrej Zajicek
14a8f396e1 Fixes sockets for IPv4 RIP.
Thanks Roman Hoog Antink for a suggestion.
2011-10-26 14:10:49 +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
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
0aad2b9292 Temporary OSPF commit - sockets. 2010-03-14 16:36:59 +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
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
f9c799a00e Temporary OSPFv3 development commit (changing multicast support). 2009-09-04 11:06:51 +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
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
aebe06b40c Proper format functions for ORIGINATOR_ID, CLUSTER_LIST 2008-11-08 23:33:22 +01:00
Ondrej Filip
004cf4fc0c Minor bugfix to compile bird in IPv6. 2004-07-15 17:28:13 +00:00
Ondrej Filip
16c2d48d8f Bugfix - RIP now updates routes with worse metric. 2004-07-13 20:53:56 +00:00
Ondrej Filip
5236fb03af Password management redesigned (untested). 2004-06-26 20:11:14 +00:00
Ondrej Filip
5ed68e46d7 Small typo changes. 2004-06-23 23:59:48 +00:00
Ondrej Filip
973cf09c3b Hotfix to problem with metric change reported by Luca. 2004-06-23 21:36:55 +00:00
Ondrej Filip
3fe5f89907 P->magic used just in LOCAL_DEBUG mode 2004-06-23 21:34:26 +00:00
Martin Mares
c91fc9b606 ... and in rip (there are even unused functions!). 2004-06-05 09:27:49 +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
4a02013767 Make RIP nolisten mode actually work. The socket is required for
sending, the received data has to be discarded instead.

(patch by Andreas Steinmetz modified by me)
2004-05-31 17:42:38 +00:00
Martin Mares
502ded5215 Fix reporting of RIP socket errors. Thanks to Eric Leblond for the patch. 2003-12-06 16:41:11 +00:00
Martin Mares
53a50af504 Applied Pavel's fix for broadcast/multicast mode. 2002-03-10 12:32:12 +00:00
Pavel Machek
ad3907559c RIP bugfix 2000-06-21 19:40:46 +00:00
Pavel Machek
07f29765a5 RIPv6 now works. 2000-06-07 14:06:37 +00:00
Pavel Machek
18b4d6bf27 rip ipv6 bugfix 2000-06-07 13:58:49 +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
Pavel Machek
4c5f93d76b Better documentation. There are functions whose description is good when
reading source but whose documentation does not belong to progdocs.
2000-06-05 17:13:36 +00:00
Pavel Machek
8b79c4ccd5 Add safety check. 2000-06-05 15:41:44 +00:00
Pavel Machek
b093c328f5 Updates to both programmers and users doc 2000-06-05 12:52:57 +00:00
Martin Mares
e24ddd9bef Don't set precedence and TTL for the dummy socket. 2000-06-04 20:00:35 +00:00
Martin Mares
201187c558 debug -> DBG 2000-06-04 19:55:11 +00:00
Martin Mares
491cd43b77 Updated RIP to new neighbor cache semantics. When presented with next hop
equal to a local address, just ignore the route (as it is usually just an
external route exported by us echoed by some RIP peer), when given an
invalid next hop, moan to the log.
2000-06-01 12:59:50 +00:00
Martin Mares
3b0b2cb61f IPv6: Absolutize link-scope addresses of incoming packets.
IPv6 socket interface is hopefully right now.
2000-05-30 22:48:14 +00:00
Martin Mares
2cec475b8f Removed several unused local variables. 2000-05-30 21:24:53 +00:00
Martin Mares
dc6405d27e Latest changes by Pavel have removed the error messages printed after
unsuccessful socket open, but replaced them by segmentatio fault!

Grrrrrrrrr.
2000-05-19 17:21:42 +00:00
Pavel Machek
9511a483b1 Less error messages in case sk_open fails. 2000-05-19 16:44:25 +00:00
Pavel Machek
eb4097e4e4 Added name of protocol to messages being logged. 2000-05-19 16:22:53 +00:00
Martin Mares
f7ad556f20 Commented out the `inserting entry which is already there' message since
it's pretty normal: during feeding of the protocol, a new route can appear
which will be announced normally and then repeated by the feeding process.
2000-05-19 11:00:47 +00:00
Pavel Machek
6d5e703dc9 Minor cleaning 2000-05-17 20:23:05 +00:00
Martin Mares
e5a47266d0 Turned off LOCAL_DEBUG. 2000-05-16 15:08:52 +00:00
Pavel Machek
5b846de6a6 Interface dummy is too strange for me... but psst, that's secret. 2000-05-16 15:05:05 +00:00
Pavel Machek
898fdd85dc Rip should now reconfigure itself only if needed. 2000-05-16 14:58:06 +00:00
Martin Mares
28323d9ddb Several minor RIP changes (Pavel, please check as usually):
o  Use FIB_ITERATE_INIT instead of calling the function fit_init()
      which is explictly marked as private in route.h.
   o  When printing trace messages, don't spit out protocol name twice.
   o  Some messages are a bit more verbose.
   o  Added a bunch of FIXME's.
   o  When running in broadcast mode, don't forget to bind the local
      end of the socket to the same broadcast address, so that we don't
      get the broadcasts looped back via different interface. I'm just
      going to look up the same problem for multicasts.
2000-05-11 15:05:13 +00:00
Pavel Machek
ec21aecfdd Fixed nasty segfault in rip. 2000-05-11 10:33:18 +00:00
Pavel Machek
10f5c47d2e Some more paranoia into rip_insert and rip_delete 2000-05-11 09:41:16 +00:00
Pavel Machek
94d1a6c9dc Unused variable killed. 2000-05-11 09:36:55 +00:00
Pavel Machek
2a41c8d9fc use password_same utility function 2000-05-10 13:42:50 +00:00
Pavel Machek
3e47419274 Inlined metric and mode into struct rip_interface to make reconfig
work.

reconfigure is conservative but should work.
2000-05-10 13:23:21 +00:00
Pavel Machek
30aa02d70d rip_reconfigure done right 2000-05-10 13:05:39 +00:00
Pavel Machek
b8524e9be4 ipa_same does not exist. 2000-05-10 12:48:06 +00:00
Pavel Machek
0bff946c0a Nicer messages from rip. 2000-05-10 12:46:47 +00:00
Pavel Machek
6f3849774f Use ea_get_int instead of ea_find. 2000-05-10 12:38:05 +00:00
Pavel Machek
7f5f44bb92 Reconfigure hook copied from bgp. 2000-05-10 12:32:45 +00:00
Pavel Machek
84a1305437 Send first udpate sooner. 2000-05-10 12:26:09 +00:00
Pavel Machek
14758d87c4 Only announce change to main routing table if it is better than current. 2000-05-10 12:23:06 +00:00
Pavel Machek
5e50f0a028 Don't touch used memory. 2000-05-10 11:57:56 +00:00
Pavel Machek
be3b6dc574 Killed unused variable. 2000-05-10 11:48:34 +00:00
Pavel Machek
4bfe4e8551 Fix segfaults by using new ea_get_int. 2000-05-10 06:56:42 +00:00
Martin Mares
92ef4fa719 Preference is a configurable parameter. 2000-05-08 10:38:25 +00:00
Martin Mares
ce1da96ee7 Added commands show route protocol <p>' and show route import <p>' which
show the routing table as exported to the protocol given resp. as returned
from its import control hook.

To get handling of filtered extended attributes right (even in the old
`show route where <filter>' command), the get_route_info hook gets an
attribute list and all protocol specific rte attributes are contained
there as temporary ones. Updated RIP to do that.

Added ea_append() which joins two ea_list's.
2000-05-06 22:57:39 +00:00
Martin Mares
9a220cabbc #ifdef out lots of debugging information.
The long resource/routing table dump printed upon startup is gone now
and if you wish to see it, just send bird SIGUSR1 or use the `debug'
commands.
2000-05-04 20:52:28 +00:00
Pavel Machek
9b63e3a58a Spelling fixes. 2000-05-04 20:08:34 +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
Pavel Machek
2337ade754 Moved documentation to top of file, where it belongs. 2000-04-30 18:47:48 +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
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
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
Pavel Machek
3d0ea3a7c3 Fix of comment. 2000-04-07 09:02:17 +00:00
Martin Mares
dad177d7e0 RIP: Set attribute class. 2000-04-01 10:20:12 +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
Pavel Machek
8d2e3eba92 Cross-protocol issues solved better 2000-03-29 08:58:06 +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
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
Pavel Machek
856b87d1e4 Cleanup, mostly debugging messages. 2000-03-13 13:31:00 +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
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
Martin Mares
ef0883a12f Adapted RIP to new interface flags. Pavel, please verify it's right. 2000-02-29 23:20:55 +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
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
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
Pavel Machek
e7f76bae8c Stupid bug (essentially while(1) loop) occuring sometimes during start
of bird fixed.
1999-12-01 13:44:42 +00:00
Pavel Machek
639e628554 Actually check sequence numbers. 1999-12-01 12:52:57 +00:00
Pavel Machek
1a509a6310 md5 authentication seems to work. 1999-11-25 15:03:12 +00:00
Pavel Machek
d3702d57fd Bugfixes: select right password for password authentication, do not
try to process authentication blocks as datablocks, make it possible
to add data at end of packet. Password authentication should actually work.
1999-11-25 14:54:08 +00:00