Commit graph

79 commits

Author SHA1 Message Date
Martin Mares 570ce189d7 Implemented `route last modified' time. 1998-10-18 10:49:46 +00:00
Martin Mares 2a900b1b15 Fixed misleading comment. 1998-10-17 11:26:28 +00:00
Martin Mares 7f3d198df1 Each protocol now hears even its own routes and needs to make its own
loop detection. This is needed since both RIP and OSPF handle multiple
neighbors and they need to redistribute routes learned from each neighbor
to the remaining ones.
1998-10-17 11:24:13 +00:00
Martin Mares 47b793064c Solve chicken-and-egg problems with protocol startup. We now queue all inactive
protocols and don't send route/interface updates to them and when they come up,
we resend the whole route/interface tables privately.

Removed the "scan interface list after protocol start" work-around.
1998-10-17 11:05:18 +00:00
Martin Mares d92882be9b WALK_LIST_DELSAFE now actually works (it really couldn't since it didn't
reference list head at all).
1998-10-17 11:02:39 +00:00
Pavel Machek c05ea56f8e rip should now correctly listen, but entries will not time out. 1998-10-17 10:25:22 +00:00
Pavel Machek 8333431c4d Rip: rip_rta_same added. 1998-10-15 15:12:24 +00:00
Martin Mares 93f1c532e9 Moved scanning of interfaces, so that they get initialized after all
routing protocol instances.
1998-10-14 13:38:17 +00:00
Pavel Machek cf3934c569 Lists: unneccessary test killed, make code friendly to non-gcc. 1998-10-14 13:27:53 +00:00
Martin Mares c93214d442 o There are cases when SIOCGIFINDEX is defined, but it doesn't work. When
this happens, don't reject the whole interface, just mark it as index 0.
o  Removed Pavel's comment about EFAULT and SIGSEGV. EFAULT is a valid return
   code for cases where the buffer is too small.
o  Commented out the smart interface list size logic temporarily as it seems
   Linux 2.0 SIOCGIFCONF doesn't react to ifc_req==NULL sanely. Replaced it
   by exponential stepping.
1998-10-13 19:57:33 +00:00
Pavel Machek fdf33cde1c Strange, on atrey ioctl() does not fill structure, and bird segfaults
on it. Now we "only" die().
1998-10-13 14:59:46 +00:00
Pavel Machek 21580e304f I prefer to have broken drivers than completely stupid ones...
Linus Torvalds

Rip now uses main routing table properly: entries are stored directly
into main routing table and we are relying on core to call our's
compare. That unfortunately broke garbage collecting (and probably
many more things). It compiles.
1998-10-13 14:32:18 +00:00
Pavel Machek 1d941de47a RIP now somehow listens to main routing table (dont expect it to work) 1998-10-07 19:33:50 +00:00
Martin Mares 8c43696da0 Route update hook now gets network prefix as well as updated
route attributes.
1998-08-31 21:13:42 +00:00
Pavel Machek bf65d27dea Bird's info are now understood by ripquery. 1998-07-30 07:43:45 +00:00
Pavel Machek 279f4c7b7b Rip now includes code to reply, but it is currently broken. 1998-07-28 21:44:11 +00:00
Pavel Machek 48b41d5811 Do not segfault on iface == NULL. 1998-07-28 21:42:08 +00:00
Pavel Machek a872b0f7da Reversed buggy patch. 1998-07-20 20:05:40 +00:00
Martin Mares c25e90efed Added comment explaining `now'. 1998-07-15 19:42:23 +00:00
Martin Mares 1be52eea57 Removed format specification attributes for log() and debug() until
GCC is fixed to handle custom formats.
1998-07-10 08:39:34 +00:00
Martin Mares 786d0bb9e7 Added ipa_class_mask() which guesses netmask for classful addressing.
For pure A/B/C class addresses it just returns the class netmask, for
subnets it tries to guess subnet mask. Please make sure the address
you pass to this function is really a valid host address (i.e., call
ipa_validate() first).
1998-07-10 08:38:29 +00:00
Martin Mares 28a9a189d7 Replaced remaining references of clock_t by bird_clock_t. 1998-07-10 08:32:18 +00:00
Pavel Machek a103373f61 Commiting RIP. RIP should somehow listen, will not reply. I needed to
commit it so that whole thing compiles.
1998-07-09 19:39:04 +00:00
Pavel Machek 86b0023033 Making SIGUSR1 dump also all protocols. 1998-07-09 19:37:39 +00:00
Pavel Machek 87d2be86e5 Adding proto_dump_all() function 1998-07-09 19:36:52 +00:00
Pavel Machek cf3527e2f4 Adding MIN()/MAX() macros 1998-07-09 19:36:05 +00:00
Pavel Machek aea2dcabdc Adding walk list which permits you to delete entries. 1998-07-09 19:35:23 +00:00
Martin Mares 962ba482fd Use '%I' instead of dirty address printing hacks. 1998-06-17 14:36:02 +00:00
Martin Mares d997534f65 Oops, forgot '%m'... 1998-06-17 14:34:13 +00:00
Martin Mares 9556f22585 debug() and log() use the new printf. Feel free to use new formatting
sequences for all output.
1998-06-17 14:33:29 +00:00
Martin Mares ecacdfa434 Added local version of sprintf (bsprintf and bvsprintf) offering few new
format strings:

	%I	IP address
	%#I	IP address in hexadecimal
	%1I	IP address padded to full length
	%m	strerror(errno)
1998-06-17 14:31:36 +00:00
Martin Mares 97d858c590 ip_ntop() and ip_ntox() for IPv4. 1998-06-17 14:28:46 +00:00
Martin Mares 6b5e06abb5 Added function for converting of IP addresses to printable form. 1998-06-17 14:26:30 +00:00
Martin Mares 620a355a15 Now sending IF_CHANGE_CREATE when a new interface appears and IF_CHANGE_UP
only if it's really up.
1998-06-04 20:30:11 +00:00
Martin Mares 236d4eb8ce FIB_WALK and friends are now slightly more friendly. 1998-06-04 20:29:44 +00:00
Martin Mares 66e53309ac Dumping of _static_ attributes implemented. 1998-06-04 20:29:05 +00:00
Martin Mares b1e4f81485 We have full interface routes now. 1998-06-04 20:28:43 +00:00
Martin Mares 0cdbd3975a Handle route deletion without segfaults. A bit more debug dumps. 1998-06-04 20:28:19 +00:00
Martin Mares 5331da6a4d Fixed processing of timers. 1998-06-04 20:27:49 +00:00
Martin Mares fd50083df4 Killed socket debug code. Initialize config pool and protocols.
More to come later...
1998-06-03 08:43:44 +00:00
Martin Mares c5ffa44759 Skeleton of device route protocol. As it's tightly coupled with our kernel,
it sits here instead of `proto/dev'.
1998-06-03 08:42:16 +00:00
Martin Mares d9f330c5ff Protocol hooks. All of them may be NULL. 1998-06-03 08:40:10 +00:00
Martin Mares 7f4a39886c Basic protocol operations. 1998-06-03 08:38:53 +00:00
Martin Mares a5f1a60e02 Changed protocol declarations a bit. 1998-06-03 08:38:06 +00:00
Martin Mares 33beab4f6c Added configuration pool. 1998-06-03 08:36:34 +00:00
Martin Mares c5fd704e48 Protocols will reside in directory `proto'. 1998-06-03 08:35:40 +00:00
Martin Mares 869c695998 Synced to new interface code. 1998-06-01 21:41:32 +00:00
Martin Mares 4cc78c5082 - Rewrote whole interface logic. Removed support for multiple addresses per
interface since it makes much trouble everywhere. Instead, we understand
  secondary addresses as subinterfaces.

- In case interface addresses or basic flags change, we simply convert it
  to a down/up sequence.

- Implemented the universal neighbour cache. (Just forget what did previous
  includes say of neighbour caching, this one is brand new.)
1998-06-01 21:41:11 +00:00
Martin Mares 0fe3b28b68 Added ipa_xor() and ipa_in_net(). 1998-06-01 21:36:58 +00:00
Martin Mares af847acc27 Whee, multicast sockets work!
Implemented recurrent timers.
1998-05-26 21:46:38 +00:00