Age | Commit message (Collapse) | Author |
|
to bogus prefixes and non-local routes to host scope addresses.
|
|
modifying filters yet) to be attached to protocol instances.
|
|
o Introduced struct filter which serves as an external reference
to filter. Using struct symbol for this is unwise since it doesn't
allow extra information attached to the filter and it also forces
all filters to be named.
o Implemented config rule 'filter' which matches either named filter
or an embedded unnamed filter (`{ <filter> }').
o Fixed totally bogus comment at the top of filter.h.
o Added a missing prototype for f_run() to filter.h.
|
|
needing some local information should use extended attrs and cached
rta's).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
to the krt_capable mechanism as well.
|
|
(via Netlink). Tweaked kernel synchronization rules a bit. Discovered
locking bug in kernel Netlink :-)
Future plans: Hunt all the bugs and solve all the FIXME's.
|
|
To build BIRD with Netlink support, just configure it with
./configure --with-sysconfig=linux-21
After it will be tested well enough, I'll probably make it a default
for 2.2 kernels (and rename it to linux-22 :)).
|
|
|
|
|
|
over EFence and also hopefully smaller memory overhead, but sadly it's non-free
for commercial use).
If the DMALLOC_OPTIONS environment variable is not set, switch on `reasonable'
checks by default.
Also introduced mb_allocz() for cleared mb_alloc().
|
|
|
|
|
|
|
|
immediately. Grrr, need to find a real solution some day.
|
|
The new kernel syncer is cleanly split between generic UNIX module
and OS dependent submodules:
- krt.c (the generic part)
- krt-iface (low-level functions for interface handling)
- krt-scan (low-level functions for routing table scanning)
- krt-set (low-level functions for setting of kernel routes)
krt-set and krt-iface are common for all BSD-like Unices, krt-scan is heavily
system dependent (most Unices require /dev/kmem parsing, Linux uses /proc),
Netlink substitues all three modules.
We expect each UNIX port supports kernel routing table scanning, kernel
interface table scanning, kernel route manipulation and possibly also
asynchronous event notifications (new route, interface state change;
not implemented yet) and build the KRT protocol on the top of these
primitive operations.
|
|
default zero priority). No more "kernel syncer initialized before
device routes" problems.
|
|
|
|
|
|
|
|
o Introduced if_find_by_index()
o Recognizing two types of interface updates: full update (starting with
if_start_update(), ending with if_end_update(), guaranteed to see
all existing interfaces) and a partial update (only if_update(),
usually due to asynchronous interface notifications).
|
|
o Introduced IF_LINK_UP flag corresponding to real link state.
o Allowed addressless interfaces.
o IF_UP is now automatically calculated and set iff the interface
is administratively up, has link up and has an IP address assigned.
It may be IF_IGNORED, though (as in case of the loopback).
o Any changes which include up/down transition are considered small
enough to not provoke artificial upping and downing of the interface.
o When an interface disappears (i.e., it wasn't seen in the last scan),
we announce this change only once.
o IF_LOOPBACK implies IF_IGNORE.
|
|
|
|
|
|
|
|
link it to get debugging malloc.
|
|
|
|
especially for netlink communication.
|
|
|
|
but the framework is there and I'll try finish it soon.
|
|
in the static portion of configuration includes available as well.
|
|
avoid namespace clashes with <linux/rtnetlink.h>. Other files should
not be affected since they use 'rta' directly.
|
|
is not defined. Also moved declarations of Unix iface logic to krt.h.
|
|
|
|
not tested.
|
|
That's all for today, midnight gets closer.
|
|
|
|
Expect for reconfiguration issues, the static protocol is complete now.
|
|
file and different in reality. Decided to use the same order as we do
for proto->rt_notify (i.e., first new value and second the old one).
|
|
also to implicit ';'.
|
|
nodes having no routes attached. Such cleanup must be done from event handler
since most functions manipulating the routing tables expect network entries
won't disappear from under their hands and it's also probably faster when
done asynchronously.
|
|
disposed by the core: neighbors, rte's, etc's...
|