| Branch: | Revision:

iof-bird-daemon / nest / proto.c @ 3b3b0910

History | View | Annotate | Download (43.8 KB)

# Date Author Comment
3e405fb1 12/07/2017 12:53 PM Ondrej Zajicek (work)

Nest: Update to new timers

d3fa9e84 12/07/2017 12:49 PM Ondrej Zajicek (work)

Timers: Show sub-second times in some protocol outputs

f047271c 12/07/2017 12:49 PM Ondrej Zajicek (work)

Timers: Parse and format functions for microsecond times

Date/time output (e.g. in logs, show commands) can use %f to specify
subsecond time. By default, millisecond precision is used in output.

02552526 12/07/2017 12:49 PM Ondrej Zajicek (work)

Timers: Replace old timers with microsecond timers

The old timer interface is still kept, but implemented by new timers. The
plan is to switch from the old inteface to the new interface, then clean
it up.

734e9fb8 05/23/2017 11:12 AM Ondrej Zajicek (work)

Minor cleanups and fixes

b2949999 04/25/2017 05:02 PM Ondrej Zajicek (work)

Nest: Update of show route cmd

Some code cleanup, multiple bugfixes, allows to specify also channel
for 'show route export'. Interesting how such apparenty simple thing
like show route cmd has plenty of ugly corner cases.

f8aad5d5 01/03/2017 03:30 PM Ondrej Zajicek (work)

Minor cleanups

ad88b94b 12/07/2016 02:30 PM Jan Moskyto Matejka

Merge branch 'int-new-rpki-squashed' (early part) into int-new

d15b0b0a 12/07/2016 01:20 PM Ondrej Zajicek (work)

BGP redesign

Integrated and extensible BGP with generalized AFI handling,
support for IPv4+IPv6 AFI and unicast+multicast SAFI.

65d2a88d 12/07/2016 08:35 AM Pavel Tvrdík

RPKI protocol with one cache server per protocol

The RPKI protocol (RFC 6810) using the RTRLib
( that is integrated inside
the BIRD's code.

Implemeted transports are:
- unprotected transport over TCP
- secure transport over SSHv2...

af678af0 05/12/2016 04:03 PM Ondrej Zajicek (work)

Merge remote-tracking branch 'origin/master' into int-new

286e2011 05/12/2016 02:04 PM Ondrej Zajicek (work)

Miscellaneous minor fixes

8e433d6a 05/12/2016 01:49 PM Pavel Tvrdik

Prog Doc: Complete several missing parameters

937e75d8 04/28/2016 04:01 PM Ondrej Zajicek (work)

Add the Babel routing protocol (RFC 6126)

This patch implements the IPv6 subset of the Babel routing protocol.
Based on the patch from Toke Hoiland-Jorgensen, with some heavy
modifications and bugfixes.

Thanks to Toke Hoiland-Jorgensen for the original patch.

7a7ac656 04/08/2016 10:28 AM Jan Moskyto Matejka

Merge branch 'master' into int-new-channels

06edbb67 04/06/2016 11:10 PM Ondrej Zajicek (work)

Nest: Reset export route counter during graceful restart

Counter exp_routes is increased during initial route feed after GR
recovery, so it has to start with zero, otherwise BIRD will end with
double value in exp_routes.

43fd8fae 03/10/2016 03:07 PM Pavel Tvrdík

nest/proto fix local_debug mode

2a013bb3 02/01/2016 03:01 PM Jan Moskyto Matejka

Fixed sigsegv for missing proto->rt_notify hook

If rt_notify is NULL, the export must always stay DOWN.

f4a60a9b 02/01/2016 09:28 AM Ondrej Zajicek (work)

Channels - explicit links between protocols and tables

The patch adds support for channels, structures connecting protocols and
tables and handling most interactions between them. The documentation is
missing yet.

9b9a7143 11/08/2015 11:42 PM Ondrej Zajicek (work)

Conf: Fixes bug in symbol lookup during reconfiguration

Symbol lookup by cf_find_symbol() not only did the lookup but also added
new void symbols allocated from cfg_mem linpool, which gets broken when
lookups are done outside of config parsing, which may lead to crashes...

ae80a2de 06/08/2015 12:24 AM Pavel Tvrdík

unsigned [int] -> uint

9aed29e6 03/29/2015 04:29 PM Ondrej Zajicek

BGP: Enhanced route refresh (RFC 7313) support

Also hook feed_done is renamed to feed_end.

2bbc3083 02/21/2015 08:08 PM Ondrej Zajicek

Store protocol config size inside protocol structure

Make proto_config_new() use this info instead of supplied size.

Thanks to Alexander V. Chernikov for the patch.

1149aa97 05/05/2014 09:05 AM Ondrej Zajicek

Fixes a problem with undoing of deconfiguring of protocol.

Thanks to Sergey Popovich for the original patch.

984d7349 04/26/2014 10:46 PM Ondrej Zajicek

Fixes limit verification during reconfiguration.

1cb0f83d 04/07/2014 09:48 AM Ondrej Zajicek

Fixes some asserts.

227af309 03/24/2014 11:32 AM Ondrej Zajicek

Fixes some minor issues in graceful restart.

6eda3f13 03/23/2014 12:35 AM Ondrej Zajicek

Documentation (and minor fixes) for BGP graceful restart.

0c791f87 03/20/2014 01:07 PM Ondrej Zajicek

BGP graceful restart support.

Also significant core protocol state changes needed for that,
global graceful restart recovery state and kernel proto support
for recovery.

283c7dfa 11/25/2013 05:42 PM Ondrej Zajicek

Merge branch 'master' into add-path

5ebc9293 11/24/2013 09:22 PM Ondrej Zajicek

Last state change should track protocol state change.

And not core state change, which is not much relevant
(e.g. refeed in BGP).

736e143f 11/23/2013 10:50 AM Ondrej Zajicek

Merge branch 'master' into add-path


0aeac9cb 11/22/2013 01:48 AM Ondrej Zajicek

Merge commit 'origin/bfd'

1ec52253 11/19/2013 09:33 PM Ondrej Zajicek

BFD protocol, ready for release.

Supports OSPF and BGP and also statically configured sessions.

ec57bbf6 09/30/2013 12:07 PM Ondrej Filip

Recheck export/import/receive limits during reconfiguration.

6a8d3f1c 09/16/2013 09:57 PM Ondrej Zajicek

BFD work in progress.

Now it compiles and mostly works.

9135c1f0 07/24/2013 12:11 PM Ondrej Zajicek

Fixes bug in protocol flushing and rtable pruning.

When route was propagated to another rtable through a pipe and then the
pipe was reconfigured softly in such a way that any subsequent route
updates are filtered, then the source protocol shutdown didn't clean up...

b662290f 01/10/2013 12:07 PM Ondrej Zajicek

Separate import and receive limits.

They have different behavior w.r.t. filtered routes that are kept.

79b4e12e 12/27/2012 11:56 AM Ondrej Zajicek

Implements interface masks for choosing router id.

Router ID could be automatically determined based of subset of
ifaces/addresses specified by 'router id from' option. The patch also
does some minor changes related to router ID reconfiguration.

Thanks to Alexander V. Chernikov for most of the work.

a92cf57d 12/26/2012 11:40 AM Ondrej Zajicek

Implements undo command and optional timeout for configuration

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...

15550957 11/15/2012 12:29 AM Ondrej Zajicek

Changes 'rejected' to 'filtered' in one of the last patches.

cf98be7b 11/10/2012 01:26 PM Ondrej Zajicek

Allows rejected routes to be kept and examined.

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'.

094d2bdb 08/14/2012 02:46 PM Ondrej Zajicek

Implements ADD-PATH extension for BGP.

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.

5400c0e7 08/06/2012 12:42 AM Ondrej Zajicek

Fixes BGP subcode during global shutdown.

d9b77cc2 04/24/2012 09:39 PM Ondrej Zajicek

Implements generalized export limits.

And also fixes some minor bugs in limits.

7d0a31de 04/21/2012 07:05 PM Ondrej Zajicek

Fixes in generalized import limits.

ebecb6f6 04/15/2012 01:28 PM Ondrej Zajicek

Implements generalized import hooks.

Thanks to Alexander V. Chernikov for the original patch.

bf2abe2f 03/30/2012 09:04 AM Ondrej Zajicek

Merge branch 'soon'


fb829de6 03/28/2012 04:40 PM Ondrej Zajicek

Fixes responsiveness for protocol shutdown.

When a protocol went down, all its routes were flushed in one step, that
may block BIRD for too much time. The patch fixes that by limiting
maximum number of routes flushed in one step.

c0adf7e9 03/15/2012 11:13 AM Ondrej Zajicek

Better support for multitable protocols.

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...

39c028e9 01/24/2012 10:31 AM Ondrej Zajicek

Assign default protocol preference via proto_config_new().

The patch from Alexander V. Chernikov.

a7f23f58 11/06/2011 11:31 PM Ondrej Zajicek

Implements protocol templates.

Based on the patch from Alexander V. Chernikov.
Extended to support almost all protocols.
Uses 'protocol bgp NAME from TEMPLATE { ... }' syntax.

23fd4644 06/20/2011 06:35 PM Ondrej Zajicek

Fixes a bug related to protocol enabling and reconfigure.

When a protocol was enabled interactively (but disabled in the config
file), then reconfigure in some cases forgets to disable it.

4ef09506 04/01/2011 11:55 AM Ondrej Zajicek

Fixes a problem with BGP protocols and implicit router IDs.

93e868c7 03/13/2011 10:33 AM Ondrej Zajicek

Implements Router Advertisement protocol.

cfe34a31 07/05/2010 03:50 PM Ondrej Zajicek

Implements hostcache and recursive next hops.

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.

acb60628 06/02/2010 08:20 PM Ondrej Zajicek

Implements command that shows memory usage.

ba130172 04/27/2010 09:27 AM Ondrej Filip

Avoid warning if not compiled with pipes.

b8113a5e 04/06/2010 10:19 PM Ondrej Zajicek

Implements BGP 'show protocols' info details.

53434e44 02/27/2010 03:00 PM Ondrej Zajicek

Better flushing of interfaces.

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...

ff2857b0 02/26/2010 09:55 AM Ondrej Zajicek

Many changes in (mainly) kernel syncers.

- 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...

e81b440f 02/21/2010 01:34 PM Ondrej Zajicek

Fix configure to enable warnings and fix most of them.

e0a45fb4 02/21/2010 08:57 AM Ondrej Zajicek

Restricted read-only CLI.

Also adds support for executing commands using birdc <cmd>.

e304fd4b 02/19/2010 11:08 PM Ondrej Zajicek

Implements pattern match for 'show protocols' command.

And generally consolidates protocol commands.

dca75fd7 02/13/2010 11:26 AM Ondrej Zajicek

Removes phantom protocol from the pipe design.

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...

9db74169 02/13/2010 09:44 AM Ondrej Zajicek

Fixes protocol statistics for pipes.

c8387626 02/11/2010 09:27 PM Ondrej Zajicek

Fixes a tricky bug in the pipe protocol.

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....

5a56f27c 02/08/2010 11:42 AM Ondrej Zajicek

Adds asterisk to the primary route in 'show route' cmd.

And also fixes a minor bug.

76b53a4e 02/06/2010 09:57 PM Ondrej Zajicek

Adds some log messages related to configure.

Also fixes a bug in the previous patch.

ebae4770 02/06/2010 06:19 PM Ondrej Zajicek

Modifies configure to just reload protocols when filters change.

Before this change, protocols were restarted in that case.

c37e7851 02/02/2010 11:19 PM Ondrej Zajicek

Makes date/time formats configurable.

cf31112f 01/03/2010 11:17 AM Ondrej Zajicek

Implements MRTdump feature.

8a7fb885 12/14/2009 12:32 AM Ondrej Zajicek

Finishes 'route reload' feature.

a421ec33 12/02/2009 09:22 PM Ondrej Zajicek

Fixes silly bug.

11361a10 12/02/2009 09:19 PM Ondrej Zajicek

Implements route re-feed.

This can be used to re-feed routes to protocol after soft change in
export filters.

bf47fe4b 11/26/2009 07:47 PM Ondrej Zajicek

Implements BGP route refresh.

e04555c0 11/17/2009 02:45 PM Ondrej Zajicek

Implement description field of protocol.

4cdd0784 10/12/2009 09:31 PM Ondrej Zajicek

Implements protocol-specific router id and updates documentation.

ac07aacd 08/11/2009 09:03 AM Ondrej Zajicek

Replace assert with log.

Although it is true unless there is a bug in BIRD, this assert is not
needed (code below does not require that assumption), so we should not

bf1aec97 06/19/2009 09:49 PM Ondrej Zajicek

Adds support for soft reconfiguration.

925fe2d3 06/03/2009 11:22 PM Ondrej Zajicek

Implements route statistics and fixes some minor bugs.

b807ef9a 02/12/2009 12:43 PM Ondrej Zajicek

Fixes bug in protocol state machine

Scheduling flush must be done before resource pool freeing as it
frees some allocated list nodes from a global list.

d6a836f8 12/08/2008 11:24 AM Ondrej Zajicek

Fixes core state machine.

The core state machine was broken - it didn't free resources
in START -> DOWN transition and might freed resources after
UP -> STOP transition before protocol turned down. It leads
to deadlock on olock acquisition when lock was not freed...

fbde6c39 11/22/2008 12:12 AM Ondrej Zajicek

Fixes race condition leading to memory corruption and crash.

When protocol started, feeding was scheduled. If protocol
got down before feeding was executed, then function
responsible for connecting protocol to kernel routing
tables was called after the function responsible for...

7c103b1e 06/05/2004 09:10 AM Martin Mares

Marked unused parameters in core code as such.

2e9b2421 06/07/2000 12:29 PM Martin Mares

Spelling fixes to progdoc.

3c6269b8 06/02/2000 01:42 PM Martin Mares

Added documentation on protocols.

Protocol hooks deserve an extra chapter (to come soon).

caab3bb3 05/30/2000 09:23 PM Martin Mares

Better formatting of protocol status.

075898de 05/19/2000 06:03 PM Martin Mares

No more problems when protocols gets disabled during feeding.

ac5d8012 05/19/2000 10:46 AM Martin Mares

Asynchronous feeding of protocols.

df9f0fb3 05/16/2000 01:43 PM Martin Mares

Don't log state changes if nothing user-visible has changed.

498c3339 05/06/2000 09:42 PM Martin Mares

Cosmetic fixes.

93a786cb 05/04/2000 08:30 PM Martin Mares

Removed a lot of unused variables.

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.)

8f6accb5 04/27/2000 10:28 PM Martin Mares

Event handlers no longer return re-queue flag. Instead of using it, just
call ev_schedule() on the same handler which should work perfectly now.

ebd3720f 04/26/2000 12:30 PM Martin Mares

Fixed several bugs in protocol state machine. Reconfigurations and
restarts of BGP seem to work now.

41b26cfb 04/25/2000 09:56 PM Martin Mares

Don't forget to set filter pointers in struct proto when reconfiguring.

3991d84e 04/01/2000 10:19 AM Martin Mares

Changed initialization of protocol list -- now we call proto_build() instead
of calling the protocols manually.

Implemented printing of dynamic attributes in `show route all'.

Each protocol can now register its own attribute class (protocol->attr_class,...

221135d6 03/31/2000 11:30 PM Martin Mares

Include "lib/string.h" instead of <string.h>. It should give us bzero()
and other non-portable functions on all systems.

2638249d 03/19/2000 10:09 PM Martin Mares

Bare skeleton of the BGP.

f098e072 03/12/2000 10:53 PM Martin Mares

Fixed a bunch of FIXME's by removing them :)