8ca8683c70
Beware the NULL route, my son... The bugs that bite, the BIRDs that crash :-)
1998-10-20 15:47:02 +00:00
acc62f5e1d
Insert/remove hooks return void, not int.
1998-10-20 15:17:38 +00:00
a0762910a6
Added pointer to network to RTE. The complications with passing NET separately
...
aren't worth 4 bytes per RTE.
rte_discard and rte_dump don't need net * as parameter.
1998-10-20 15:13:18 +00:00
7d83290780
Generate router_id automatically if possible (standard "smallest of local
...
regular interface addresses" rule).
Protocols should NOT rely on router_id existence -- when router ID is not
available, the router_id variable is set to zero and protocols requiring
valid router ID should just refuse to start, reporting such error to the log.
1998-10-19 18:13:36 +00:00
36f2caf147
Fixed generation of device routes for unnumbered point-to-point links.
1998-10-19 17:46:45 +00:00
f184ea6f7e
Proto struct now contain (down | starting | up) state.
1998-10-19 17:45:29 +00:00
4c45595e3b
o FIB flags now available for FIB users.
...
o struct network: FIB flags used for kernel syncing.
o struct network: `next' field deleted (historical relic).
1998-10-18 22:24:41 +00:00
3629bcf0c7
Preconfig, postconfig and init hooks can be NULL.
1998-10-18 12:26:02 +00:00
0432c0173b
Split protocol init to building of protocol list and real protocol init.
...
Added kernel route table syncer skeleton.
1998-10-18 11:53:21 +00:00
05e56feb57
Removed global pointer to proto_dev.
1998-10-18 11:50:36 +00:00
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
570ce189d7
Implemented `route last modified' time.
1998-10-18 10:49:46 +00:00
2a900b1b15
Fixed misleading comment.
1998-10-17 11:26:28 +00:00
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
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
8c43696da0
Route update hook now gets network prefix as well as updated
...
route attributes.
1998-08-31 21:13:42 +00:00
48b41d5811
Do not segfault on iface == NULL.
1998-07-28 21:42:08 +00:00
87d2be86e5
Adding proto_dump_all() function
1998-07-09 19:36:52 +00:00
962ba482fd
Use '%I' instead of dirty address printing hacks.
1998-06-17 14:36:02 +00:00
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
236d4eb8ce
FIB_WALK and friends are now slightly more friendly.
1998-06-04 20:29:44 +00:00
66e53309ac
Dumping of _static_ attributes implemented.
1998-06-04 20:29:05 +00:00
b1e4f81485
We have full interface routes now.
1998-06-04 20:28:43 +00:00
0cdbd3975a
Handle route deletion without segfaults. A bit more debug dumps.
1998-06-04 20:28:19 +00:00
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
d9f330c5ff
Protocol hooks. All of them may be NULL.
1998-06-03 08:40:10 +00:00
7f4a39886c
Basic protocol operations.
1998-06-03 08:38:53 +00:00
a5f1a60e02
Changed protocol declarations a bit.
1998-06-03 08:38:06 +00:00
33beab4f6c
Added configuration pool.
1998-06-03 08:36:34 +00:00
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
fe82105e5d
Debug messages.
1998-05-26 21:43:45 +00:00
8a48ecb8b1
Implemented scanning of network interfaces. Mostly very ugly code due to
...
terrible kernel interface (SIOGIFCONF and friends).
1998-05-26 21:42:05 +00:00
ed68a5c6a4
Resource pools are now named.
1998-05-26 21:37:37 +00:00
6d45cf21be
Added debug dump function, but it's still empty :(
1998-05-24 14:49:14 +00:00
ded3ee6ddd
protos_init, not proto_init.
1998-05-24 14:48:52 +00:00
b53499cdaa
Added interface index (used only by OS-dependent code since ifindexes itself
...
are OS-dependent).
1998-05-24 14:48:09 +00:00
a2ccbb0b97
Implemented timers. Using bird_clock_t for absolute time from now...
1998-05-24 14:40:29 +00:00
235562ca5a
Point-to-point links: added address of the opposite end.
1998-05-24 09:20:59 +00:00
2326b001d6
Added routing table and routing attribute code.
1998-05-20 11:54:33 +00:00
62aa008abd
Parts of routing table code. Data structure declarations should be
...
complete now.
1998-05-15 07:54:32 +00:00
a8b6038225
Next attempt on data structures...
1998-05-03 16:42:45 +00:00
1feea03e74
Changed #include <x/y> to #include "x/y" for our local includes, so that
...
gcc -MM can be used to separate them from the system ones.
Added automatic generation of dependencies.
1998-04-28 14:39:34 +00:00
c40e05a0df
Added IP address manipulation macros, interface declarations and logging.
1998-04-23 14:01:15 +00:00
481f69854a
Added few route attributes.
1998-04-23 08:09:39 +00:00
58ef912c6b
First look at data structures. More to come tomorrow...
1998-04-22 12:58:34 +00:00