summaryrefslogtreecommitdiff
path: root/nest/rt-dev.c
AgeCommit message (Collapse)Author
2015-02-21Replacing GNU old-style field designator extensionPavel Tvrdik
2013-11-23Merge branch 'master' into add-pathOndrej Zajicek
Conflicts: filter/filter.c nest/proto.c nest/rt-table.c proto/bgp/bgp.h proto/bgp/config.Y
2013-09-10Fixes a bug related to multiple IPs and direct protocol.Ondrej Zajicek
Multiple IPs in the same IP prefix confuse the direct protocol and could cause withdrawal of a valid prefix. Thanks to Dan Rimal for a bugreport.
2012-08-14Implements ADD-PATH extension for BGP.Ondrej Zajicek
Allows to send and receive multiple routes for one network by one BGP session. Also contains necessary core changes to support this (routing tables accepting several routes for one network from one protocol). It needs some more cleanup before merging to the master branch.
2012-01-24Assign default protocol preference via proto_config_new().Ondrej Zajicek
The patch from Alexander V. Chernikov.
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.
2010-03-14Temporary OSPF commit - sockets.Ondrej Zajicek
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
2009-06-01The pipe cleanup.Ondrej Zajicek
2009-05-06A change in OSPF and RIP interface patterns.Ondrej Zajicek
Allows to add more interface patterns to one common 'options' section like: interface "eth3", "eth4" { options common to eth3 and eth4 }; Also removes undocumented and unnecessary ability to specify more interface patterns with different 'options' sections: interface "eth3" { options ... }, "eth4" { options ... };
2000-06-07Spelling fixes to progdoc.Martin Mares
2000-06-04Document.Martin Mares
2000-03-31Include "lib/string.h" instead of <string.h>. It should give us bzero()Martin Mares
and other non-portable functions on all systems.
2000-03-12Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,Martin Mares
several debug() calls converted to DBG().
2000-02-29Rewrote interface type detection logic. The `unnumbered' flag is now perMartin Mares
address, not per interface (hence it's ifa->flags & IA_UNNUMBERED) and should be set reliably. IF_MULTIACCESS should be fixed now, but it isn't wise to rely on it on interfaces configured with /30 prefix.
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-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-17Device protocol supports reconfiguration.Martin Mares
2000-01-16Don't forget to set proto->min_scope = SCOPE_HOST.Martin Mares
1999-11-04Renamed attr->attrs to attr->eattrs.Martin Mares
1999-08-03Cleaned up handling of interface patterns:Martin Mares
o Parsing of interface patterns moved to generic code, introduced this_ipatt which works similarly to this_iface. o Interface patterns now support selection by both interface names and primary IP addresses. o Proto `direct' updated. o RIP updated as well, it also seems the memory corruption bug there is gone.
1999-05-17Kill remaining master_table relics in KRT code.Martin Mares
Make all protocols pass routing table to rte_update and rte_discard.
1999-05-06I rewrote the interface handling code, so that it supports multipleMartin Mares
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.
1999-04-12Removed TOS support. This simplifies many things a lot.Martin Mares
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-03Introduced protocol priority (all 'normal' protocols should use theMartin Mares
default zero priority). No more "kernel syncer initialized before device routes" problems.
1999-02-13Parameter order for the proto->if_notify hook was different in the includeMartin Mares
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).
1999-02-05Implemented new configuration/reconfiguration interface and defined protocolMartin Mares
state machines. Full explanation will follow soon.
1998-11-29Added configuration of the device internal protocol. This is primarilyMartin Mares
intended to serve as an example of interface pattern list use. As a side effect, you can disable generating of device routes by disabling this protocol.
1998-10-20Added pointer to network to RTE. The complications with passing NET separatelyMartin Mares
aren't worth 4 bytes per RTE. rte_discard and rte_dump don't need net * as parameter.
1998-10-19Fixed generation of device routes for unnumbered point-to-point links.Martin Mares
1998-10-18Removed global pointer to proto_dev.Martin Mares
1998-06-04We have full interface routes now.Martin Mares
1998-06-03Skeleton of device route protocol. As it's tightly coupled with our kernel,Martin Mares
it sits here instead of `proto/dev'.