summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
1999-04-05Changed syntax of attaching filters to protocols to hopefully the finalMartin Mares
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 :)).
1999-04-05Several filter changes. (Pavel, please check if they are OK.)Martin Mares
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.
1999-04-05Use a more reasonable pool chunk size: 4080 bytes seem to be a goodMartin Mares
approximation of a integral fraction of page size even if both malloc overhead and chunk header space is counted.
1999-04-03More changes to the kernel syncer.Martin Mares
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.
1999-04-03Added new protocol hook for dumping of protocol-dependent routeMartin Mares
attributes. Please implement in all protocols.
1999-04-03Defined CONFIG_SELF_CONSCIOUS whenever the kernel scanner is ableMartin Mares
to distinguish between our own routes and alien ones.
1999-04-02Fixed `too many interfaces' cases.Martin Mares
1999-04-02Believe it or not, printf()'s does not work too much without this one.Pavel Machek
1999-04-01Argh, the fix was wrong.Martin Mares
1999-04-01Portability fixes.Martin Mares
1999-04-01First few FreeBSD portability fixes.Martin Mares
1999-03-29Updated the TODO list.Martin Mares
1999-03-29Remember that we can run device syncer without kernel syncerMartin Mares
and vice versa now.
1999-03-29Please don't commit debugging code which makes BIRD exit before anythingMartin Mares
actually starts to happen. Grrr.
1999-03-29Prefer `gm4' over `m4' (due to BSD et al.).Martin Mares
1999-03-29Update of filters towards new interface.Pavel Machek
1999-03-29Clarify resource dumps and include them in the main debugging dump.Martin Mares
1999-03-29Don't try to delete interface routes on CONFIG_AUTO_ROUTES systems.Martin Mares
1999-03-29Added FIXME: If a strange interface appears, ignore it instead of onlyMartin Mares
writing an error message...
1999-03-29Added lp_flush() which flushes contents of a linear pool, leaving all theMartin Mares
memory available for subsequent allocations from the same pool. Both flushing and re-using the memory costs just few instructions.
1999-03-29Moved all system-dependent #include's containing endianity conversionMartin Mares
functions to sysdep header endian.h.
1999-03-29#define NULL if not defined by system includes.Martin Mares
1999-03-29After today's lengthy discussions about filter syntax, let's clean upMartin Mares
whitespace/semicolon rules for whole config file: o All non-zero amounts of whitespace are equivalent to single space (aka `all the whitespace has been born equal' ;-)). o Comments count as whitespace. o Whitespace has no syntactic signifance (it can only separate lexical elements). o Consequence: line ends are no longer treated as `;'s. o Every declaration must be terminated by an explicit `;' unless or by a group enclosed in `{' and `}'.
1999-03-27Cleaned up system configuration files -- removed few obsolete parameters,Martin Mares
documented the remaining ones (sysdep/cf/README). Available configurations: o linux-20: Old Linux interface via /proc/net/route (selected by default on pre-2.1 kernels). o linux-21: Old Linux interface, but device routes handled by the kernel (selected by default for 2.1 and newer kernels). o linux-22: Linux with Netlink (I play with it a lot yet, so it isn't a default). o linux-ipv6: Prototype config for IPv6 on Linux. Not functional yet.
1999-03-26Added everything protocols need to know about multiple routing tables,Martin Mares
i.e. struct proto now contains field 'table' pointing to routing table the protocol is attached to. Use this instead of &master_table. Modified all protocols except the kernel syncer to use this field.
1999-03-26Moved to a much more systematic way of configuring kernel protocols.Martin Mares
o Nothing is configured automatically. You _need_ to specify the kernel syncer in config file in order to get it started. o Syncing has been split to route syncer (protocol "Kernel") and interface syncer (protocol "Device"), device routes are generated by protocol "Direct" (now can exist in multiple instances, so that it will be possible to feed different device routes to different routing tables once multiple tables get supported). See doc/bird.conf.example for a living example of these shiny features.
1999-03-26Allow different instances of the same protocol with identical preferences.Martin Mares
1999-03-26Slightly better generator of default protocol instance names.Martin Mares
1999-03-26Don't compile OSPF by default.Martin Mares
1999-03-26Don't try to manipulate neighbor lists for copied interface structures.Martin Mares
This avoids few nasty references to free memory.
1999-03-24Removed our declaration of RTPROT_BIRD since Alexey has assignedMartin Mares
us a real protocol number in 2.2.4 kernel.
1999-03-17rte_update: Check sanity of incoming entries. Throw out (and log) all routesMartin Mares
to bogus prefixes and non-local routes to host scope addresses.
1999-03-17Allow input and output filters (only accept/reject style as we didn't defineMartin Mares
modifying filters yet) to be attached to protocol instances.
1999-03-17A couple of filter tweaks:Martin Mares
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.
1999-03-17Removed the `rta_same' hook since it's no longer needed (all protocolsMartin Mares
needing some local information should use extended attrs and cached rta's).
1999-03-17Implemented extended route attributes and all related functions.Martin Mares
1999-03-17Initialize pointers to functions so that code is actually alive.Pavel Machek
1999-03-17Compilation fix for mj.Pavel Machek
1999-03-17Don't segfault on unknown interface.Pavel Machek
1999-03-17accept & reject should now workPavel Machek
1999-03-09Yes, joining the crew. Sorry for being late. Added dummy functions for OSPF.Ondrej Filip
1999-03-09Resolved conflicts, you no longer need to wrap constants in const()Pavel Machek
1999-03-09Added '=' to operator listPavel Machek
1999-03-08Filters are now a tiny bit stronger (if is actually working ;-)Pavel Machek
1999-03-04Fixed processing of !krt_capable() routes. Converted device route decisionsMartin Mares
to the krt_capable mechanism as well.
1999-03-04KRT: Implemented asynchronous route / interface state notificationsMartin Mares
(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.
1999-03-04Although there are still heaps of FIXME's, Netlink works.Martin Mares
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 :)).
1999-03-04Converted some mb_alloc/bzero pairs to mb_allocz.Martin Mares
1999-03-04Initialize allocated struct proto :-)Martin Mares
1999-03-04Use dmalloc instead of EFence when available (dmalloc has lot of improvementsMartin Mares
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().