Martin Mares
5b22683d2f
After contemplating about RIP route timeouts for a long time, I've implemented
...
protocol callbacks for route insertion and deletion from the central table.
RIP should maintain its own per-protocol queue of existing routes, scan it
periodically and call rte_discard() for routes that have timed out.
1998-10-18 11:13:16 +00:00
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