Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
addresses per interface (needed for example for IPv6 support).
Visible changes:
o struct iface now contains a list of all interface addresses (represented
by struct ifa), iface->addr points to the primary address (if any).
o Interface has IF_UP set iff it's up and it has a primary address.
o IF_UP is now independent on IF_IGNORED (i.e., you need to test IF_IGNORED
in the protocols; I've added this, but please check).
o The if_notify_change hook has been simplified (only one interface pointer
etc.).
o Introduced a ifa_notify_change hook. (For now, only the Direct protocol
does use it -- it's wise to just listen to device routes in all other
protocols.)
o Removed IF_CHANGE_FLAGS notifier flag (it was meaningless anyway).
o Updated all the code except netlink (I'll look at it tomorrow) to match
the new semantics (please look at your code to ensure I did it right).
Things to fix:
o Netlink.
o Make krt-iface interpret "eth0:1"-type aliases as secondary addresses.
|
|
networks).
Removed old #ifndef logic which was used to avoid IPv4/IPv6 clashes
before conditionals in Modules lists were introduced.
|
|
|
|
|
|
|
|
gateway, and who told us, so they can do usefull jobs from now on.
|
|
|
|
|
|
|
|
of the interface.
|
|
|
|
and not ip_mreqn). This should get multicasts on unnumbered PtP links work.
|
|
o ((flags & IF_CHANGE_UP) == IF_CHANGE_UP) -> (flags & IF_CHANGE_UP)
o bcopy -> memcpy (bcopy is unportable)
o Ifdeffed out add_tail(&(ifa->sk_list),NODE mcsk) -- the node in socket
structure is for internal use by the resource manager only. (Now, the
debugging dump of open sockets looks sane :-)).
|
|
|
|
|
|
|
|
|
|
possible to write if 1.2.3.4 < 1.2.3.5, but I'm not sure if it is good
for anything.)
|
|
|
|
|
|
Changes: struct ospf_iface draft, various constants added...
|
|
|
|
compare function is ready.
|
|
interface addresses).
|
|
|
|
|
|
|
|
|
|
operations on 2.1/2.2 kernels. This allows passing of real interface
indexes instead of referencing interfaces by their IP addresses which
fails badly in presence of unnumbered interfaces.
Unfortunately, this structure is not visible with glibc 2.0 as it provides
its own networking headers :-( Both libc5 and glibc 2.1 should be OK.
|
|
See comments in lib/socket.h for a detailed guide on how to use them.
|
|
|
|
|
|
Also made "depend" work before the tree is compiled first time.
|
|
|
|
|
|
it belongs. (f-util.c stays there for auxiliary and non-important things.)
|
|
|
|
o Introduced rte_cow() which should be used for copying on write the
rte's in filters. Each rte now carries a flag saying whether it's
a real route (possessing table linkage and other insignia) or a local
copy. This function can be expected to be fast since its fast-path
is inlined.
o Introduced rte_update_pool which is a linear memory pool used for
all temporary data during rte_update. You should not reference it directly
-- instead use a pool pointer passed to all related functions.
o Split rte_update to three functions:
rte_update The front end: handles all checking, inbound
filtering and calls rte_recalculate() for the
final version of the route.
rte_recalculate Update the table according to already filtered route.
rte_announce Announce routing table changes to all protocols,
passing them through export filters and so on.
The interface has _not_ changed -- still call rte_update() and it will
do the rest for you automagically.
o Use new filtering semantics to be explained in a separate mail.
|
|
make_tmp_attrs Convert inline attributes to ea_list
store_tmp_attrs Convert ea_list to inline attributes
import_control Pre-import decisions
|
|
version:
EXPORT <filter-spec> for outbound routes (i.e., those announced
by BIRD to the rest of the world).
IMPORT <filter-spec> for inbound routes (i.e., those imported
by BIRD from the rest of the world).
where <filter-spec> is one of:
ALL pass all routes
NONE drop all routes
FILTER <name> use named filter
FILTER { <filter> } use explicitly defined filter
For all protocols, the default is IMPORT ALL, EXPORT NONE. This includes
the kernel protocol, so that you need to add EXPORT ALL to get the previous
configuration of kernel syncer (as usually, see doc/bird.conf.example for
a bird.conf example :)).
|
|
o Changed parameters of f_run. Changed rtein+rteout pair to rte pointer
passed by reference, added ea_list of temporary attrs again passed
by reference and finally added a pointer to memory pool for storing
temporary data (new ea_lists's, temporary rta's etc.).
o Re-ordered result codes, so that all accepts come before all rejects.
o Introduced FILTER_ACCEPT and FILTER_REJECT dummy values (will be
used in protocol configurations).
o Added filter_name() which returns name of a filter or ACCEPT/REJECT
for the dummies.
|
|
approximation of a integral fraction of page size even if both malloc
overhead and chunk header space is counted.
|
|
o Now compatible with filtering.
o Learning of kernel routes supported only on CONFIG_SELF_CONSCIOUS
systems (on the others it's impossible to get it semantically correct).
o Learning now stores all of its routes in a separate fib and selects
the ones the kernel really uses for forwarding packets.
o Better treatment of CONFIG_AUTO_ROUTES ports.
o Lots of internal changes.
|
|
attributes.
Please implement in all protocols.
|
|
to distinguish between our own routes and alien ones.
|