summaryrefslogtreecommitdiff
path: root/proto/pipe/pipe.c
AgeCommit message (Collapse)Author
2016-04-08Route update: move table lookup from protocols into rte_update2().Jan Moskyto Matejka
Many protocols do almost the same when creating a rte_update request before calling rte_update2(). This commit should simplify the protocol side of the route-creation routine.
2016-04-07Channelize: rt_notify arg conversion table -> channelJan Moskyto Matejka
2016-02-01Channels - explicit links between protocols and tablesOndrej Zajicek (work)
The patch adds support for channels, structures connecting protocols and tables and handling most interactions between them. The documentation is missing yet.
2015-11-05Initial commit on integrated BIRDOndrej Zajicek (work)
New data types net_addr and variants (in lib/net.h) describing network addresses (prefix/pxlen). Modifications of FIB structures to handle these data types and changing everything to use these data types instead of prefix/pxlen pairs where possible. The commit is WiP, some protocols are not yet updated (BGP, Kernel), and the code contains some temporary scaffolding. Comments are welcome.
2015-02-21Store protocol config size inside protocol structureOndrej Zajicek
Make proto_config_new() use this info instead of supplied size. Thanks to Alexander V. Chernikov for the patch.
2015-02-21Replacing GNU old-style field designator extensionPavel Tvrdik
2014-04-27Fixes limit verification during reconfiguration.Ondrej Zajicek
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-01-10Separate import and receive limits.Ondrej Zajicek
They have different behavior w.r.t. filtered routes that are kept.
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-04-24Implements generalized export limits.Ondrej Zajicek
And also fixes some minor bugs in limits.
2012-04-21Fixes in generalized import limits.Ondrej Zajicek
2012-04-15Implements generalized import hooks.Ondrej Zajicek
Thanks to Alexander V. Chernikov for the original patch.
2012-03-15Better support for multitable protocols.Ondrej Zajicek
The nest-protocol interaction is changed to better handle multitable protocols. Multitable protocols now declare that by 'multitable' field, which tells nest that a protocol handles things related to proto-rtable interaction (table locking, announce hook adding, reconfiguration of filters) itself. Filters and stats are moved to announce hooks, a protocol could have different filters and stats to different tables. The patch is based on one from Alexander V. Chernikov, thanks.
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-07-05Implements hostcache and recursive next hops.Ondrej Zajicek
Hostcache is a structure for monitoring changes in a routing table that is used for routes with dynamic/recursive next hops. This is needed for proper iBGP next hop handling.
2010-02-21Fix configure to enable warnings and fix most of them.Ondrej Zajicek
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).
2010-02-13Fixes protocol statistics for pipes.Ondrej Zajicek
2010-02-11Fixes a tricky bug in the pipe protocol.Ondrej Zajicek
When uncofiguring the pipe and the peer table, the peer table was unlocked when pipe protocol state changed to down/flushing and not to down/hungry. This leads to the removal of the peer table before the routes from the pipe were flushed. The fix leads to adding some pipe-specific hacks to the nest, but this seems inevitable.
2009-12-20Fixes a new bug in the pipe protocol soft reconfiguration.Ondrej Zajicek
Also updates route reload for pipes.
2009-12-20Fixes unnecessary pipe restart during configure.Ondrej Zajicek
2009-12-02Fixes some problems in pipes.Ondrej Zajicek
For transparent pipes, loop detection works correctly now. Pipes are now more symmetric - in both directions filtering is done in do_rte_announce().
2009-09-17Fixes preference in transparent pipes.Ondrej Zajicek
2009-06-01The pipe cleanup.Ondrej Zajicek
2009-06-01Adds opaque/transparent pipe mode selection.Ondrej Zajicek
2009-05-31Changes pipes to transfer all routes between routing table, not just optimal ↵Ondrej Zajicek
routes.
2004-06-05... in pipe.Martin Mares
2000-06-04Documented all the trivial protocols.Martin Mares
2000-05-13Adapted to new rt_notify semantics.Martin Mares
2000-03-12Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,Martin Mares
several debug() calls converted to DBG().
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-17Pipe protocol supports reconfiguration.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-01Implemented get_status for the pipe protocol (reports name of the otherMartin Mares
side of the pipe). Please do so for your protocols as well.
1999-08-03Forgot to do a `cvs add', grr.Martin Mares