summaryrefslogtreecommitdiff
path: root/sysdep/unix/krt.c
AgeCommit message (Collapse)Author
2012-12-26Implements undo command and optional timeout for configurationOndrej Zajicek
Several new configure command variants: configure undo - undo last reconfiguration configure timeout - configure with scheduled undo if not confirmed in timeout configure confirm - confirm last configuration configure check - just parse and validate config file
2012-11-10Allows rejected routes to be kept and examined.Ondrej Zajicek
When 'import keep rejected' protocol option is activated, routes rejected by the import filter are kept in the routing table, but they are hidden and not propagated to other protocols. It is possible to examine them using 'show route rejected'.
2012-08-29Fixes a bug in primary IP selection.Ondrej Zajicek
2012-05-03Fixes flushing of device routes.Ondrej Zajicek
2012-04-30Cleanup in sysdep KRT code, part 3.Ondrej Zajicek
Just one more renaming, old krt_set_notify() to krt_replace_rte().
2012-04-30Cleanup in sysdep KRT code, part 2.Ondrej Zajicek
Remove support for historic Linux kernels, merge krt-iface, krt-set and krt-scan stub headers.
2012-04-30Cleanup in sysdep KRT code, part 1.Ondrej Zajicek
OS-dependent functions renamed to be more consistent, prepared to merge krt-set and krt-scan headers. Name changes: struct krt_if_params -> struct kif_params struct krt_if_status -> struct kif_status struct krt_set/scan_params -> struct krt_params struct krt_set/scan_status -> struct krt_status krt_if_params_same -> kif_sys_reconfigure krt_if_copy_params -> kif_sys_copy_config krt_set/scan_params_same -> krt_sys_reconfigure krt_set/scan_copy_params -> krt_sys_copy_config krt_if_scan -> kif_do_scan krt_set_notify -> krt_do_notify krt_scan_fire -> krt_do_scan krt_if_ -> kif_sys_ krt_scan_ -> krt_sys_ krt_set_ -> krt_sys_
2012-03-30Merge branch 'soon'Ondrej Zajicek
Conflicts: nest/proto.c nest/rt-table.c
2012-03-25Fixes several minor bugs in kernel syncer.Ondrej Zajicek
2012-03-23Adds krt_metric linux route attribute.Ondrej Zajicek
2012-03-23Adds krt_source route attribute.Ondrej Zajicek
Thanks Jeremie Dimino for the original patch.
2012-02-03Fixes a bug causing crash during soft reconfiguration of export to kernel proto.Ondrej Zajicek
2012-01-24Assign default protocol preference via proto_config_new().Ondrej Zajicek
The patch from Alexander V. Chernikov.
2012-01-23Implements handling of BSD iface arrival/departure notifications.Ondrej Zajicek
Thanks to Alexander V. Chernikov for original patch.
2011-11-07Implements protocol templates.Ondrej Zajicek
Based on the patch from Alexander V. Chernikov. Extended to support almost all protocols. Uses 'protocol bgp NAME from TEMPLATE { ... }' syntax.
2011-04-13Adds support for several Linux kernel route attributes.Ondrej Zajicek
2010-07-12Fixes missing check in reconfiguration.Ondrej Zajicek
2010-04-04Restrict export of device routes to the kernel protocol.Ondrej Zajicek
In usual configuration, such export is already restricted with the aid of the direct protocol but there are some races that can circumvent it. This makes it harder to break kernel device routes. Also adds an option to disable this restriction.
2010-02-27Better flushing of interfaces.Ondrej Zajicek
When device protocol goes down, interfaces should be flushed asynchronously (in the same way like routes from protocols are flushed), when protocol goes to DOWN/HUNGRY. This fixes the problem with static routes staying in kernel routing table after BIRD shutdown.
2010-02-26Many changes in (mainly) kernel syncers.Ondrej Zajicek
- BSD kernel syncer is now self-conscious and can learn alien routes - important bugfix in BSD kernel syncer (crash after protocol restart) - many minor changes and bugfixes in kernel syncers and neighbor cache - direct protocol does not generate host and link local routes - min_scope check is removed, all routes have SCOPE_UNIVERSE by default - also fixes some remaining compiler warnings
2010-02-13Removes phantom protocol from the pipe design.Ondrej Zajicek
It seems that by adding one pipe-specific exception to route announcement code and by adding one argument to rt_notify() callback i could completely eliminate the need for the phantom protocol instance and therefore make the code more straightforward. It will also fix some minor bugs (like ignoring debug flag changes from the command line).
2009-06-01The pipe cleanup.Ondrej Zajicek
2009-05-31Changes pipes to transfer all routes between routing table, not just optimal ↵Ondrej Zajicek
routes.
2009-05-29Implements primary address selection base on 'primary' option.Ondrej Zajicek
2009-05-04Syntax error fix for systems without CONFIG_SELF_CONSCIOUS (KRT_ALLOW_LEARN)Ondrej Filip
2009-03-20Fix bugs related to kernel table synchronization.Ondrej Zajicek
KRF_INSTALLED flag was not cleared during reconfiguration that lead to not removing routes during reconfigure when export rules changed. We also should not try to remove routes we didi not installed, on Linux this leads to warnings (as kernel checks route source field and do not allow to remove non-bird routes) but we should not rely on it.
2009-02-26Rate limit for most abundant log messagesOndrej Zajicek
2008-11-21Fixes segfault with multiple routing tables.Ondrej Zajicek
2008-10-26Bugfix for routing table breaking bug.Ondrej Zajicek
Here is a patch fixing a bug that causes breakage of a local routing table during shutdown of Bird. The problem was caused by shutdown of 'device' protocol before shutdown of 'kernel' protocol. When 'device' protocol went down, the route (with local network prefix) From different protocol (BGP or OSPF) became preferred and installed to the kernel routing table. Such routes were broken (like 192.168.1.0/24 via 192.168.1.2). I think it is also the cause of problem reported by Martin Kraus. The patch disables updating of kernel routing table during shutdown of Bird. I am not sure whether this is the best way to fix it, I would prefer to forbid 'kernel' protocol to overwrite routes with 'proto kernel'. The patch also fixes a problem that during shutdown sometimes routes created by Bird remained in the kernel routing table.
2004-06-07Used parameter can be marked as unused. :-) Thanx MJ.Ondrej Filip
2004-06-07Marked unused parameters as unused.Ondrej Filip
2004-06-05Marked unused parameters in sysdep code as such.Martin Mares
2003-08-13This probably IS the memory leak we're looking for. Alien routes weren'tMartin Mares
correctly disposed of.
2002-11-13Added missing includes.Martin Mares
2000-06-08Fixes for the programmer's manual.Martin Mares
2000-06-07Fixes to the progdoc.Martin Mares
2000-06-07Spelling fixes to progdoc.Martin Mares
2000-06-05Documented all the sysdeps (only briefly, I admit).Martin Mares
Except for Filters, RIP and OSPF, the progdocs are complete.
2000-05-16When in persist mode, don't delete routes from kernel tables even ifMartin Mares
they cease to exist in our routing tables due to protocols having shut down.
2000-05-13Adapted to new rt_notify semantics.Martin Mares
2000-05-08Don't crash when reporting deleted routes.Martin Mares
Set preferences correctly.
2000-05-04Removed a lot of unused variables.Martin Mares
Please try compiling your code with --enable-warnings to see them. (The unused parameter warnings are usually bogus, the unused variable ones are very useful, but gcc is unable to control them separately.)
2000-03-12Cleaned up debugging in kernel syncer. Netlink has still LOCAL_DEBUGMartin Mares
turned on, but after some testing I'll gag it.
2000-03-04Garbage collector events and counters are now per table and one dayMartin Mares
they can be made configurable if it turns out to be useful.
2000-01-18Killed protocol->priority. Protocol startup should be clean and hack-free now.Martin Mares
It seems everything still works (except for disable/enable/restart which hangs sometimes, but it's another story).
2000-01-18Kernel route syncer now supports dynamic reconfiguration. Also it doesn'tMartin Mares
depend on the startup counter hack now and uses a zero-time timer instead to make itself scheduled after normal protocol startup.
2000-01-17Separated `official protocol names' used in status dumps from name templatesMartin Mares
used for automatic generation of instance names. protocol->name is the official name protocol->template is the name template (usually "name%d"), should be all lowercase. Updated all protocols to define the templates, checked that their configuration grammar includes proto_name which generates the name and interns it in the symbol table.
2000-01-17Reconfiguration for device protocol.Martin Mares
2000-01-16First attempt on dynamic reconfiguration. There are still lots of bugsMartin Mares
and problems to solve, but the hardest part works.
1999-12-08Except for special protocols (nowadays only the kernel syncer), don'tMartin Mares
export host and link scope routes.