| Branch: | Revision:

iof-bird-daemon / proto / bgp / bgp.h @ 7e5f769d

History | View | Annotate | Download (24.8 KB)

# Date Author Comment
7e5f769d 03/18/2019 01:29 PM Ondrej Zajicek (work)

BGP: Handle case where capabilites are not used

If peer does not announce capabilities at all, or when we have
capabilities disabled, handle that as implicit IPv4 unicast.

b8a3608a 01/26/2019 06:48 PM Ondrej Zajicek (work)

BGP: Cleanup channels when going down

When going up, uncleaned old channel state may trigger unexpected
conditions crashing bird.

1cab2b4a 12/16/2018 10:44 PM Ondrej Zajicek (work)

BGP: Extend 'next hop keep' and 'next hop self' options

Extend 'next hop keep' and 'next hop self' options to have boolean values
(enabled / disabled) and also values 'ibgp'/ 'ebgp' to restrict it to
routes received from IBGP / EBGP. This allows to have it enabled by...

682d3f7d 12/12/2018 01:46 PM Ondrej Zajicek (work)

BGP: implement Adj-RIB-In

The patch implements optional internal import table to a channel and
hooks it to BGP so it can be used as Adj-RIB-In. When enabled, all
received (pre-filtered) routes are stored there and import filters can
be re-evaluated without explicit route refresh. An import table can be...

14375237 12/04/2018 09:53 AM Jan Maria Matejka

Terminology cleanup: The import_control hook is now called preexport.

Once upon a time, far far away, there were the old Bird developers
discussing what direction of route flow shall be called import and
export. They decided to say "import to protocol" and "export to table"...

863ecfc7 11/20/2018 04:45 PM Ondrej Zajicek (work)

The MRT protocol

The new MRT protocol is responsible for periodic RIB table dumps in the
MRT format (RFC 6396). Also the existing code for BGP4MP MRT dumps is
refactored and splitted between BGP to MRT protocols, will be more
integrated into MRT in the future....

5bd73431 07/31/2018 04:40 PM Ondrej Zajicek (work)

BGP: Long-lived graceful restart

The patch implements long-lived graceful restart for BGP, namely

13c0be19 05/30/2018 03:08 PM Jan Maria Matejka

Nest: Removing separate tmpa from route propagation

This is a fundamental change of an original (1999) concept of route
processing inside BIRD. During import/export, there was a temporary
ea_list created which was to be used instead of the another one inside...

ee7e2ffd 05/29/2018 10:35 AM Jan Maria Matejka

Protocol: Introducing an enum protocol_class

This supersedes the EAP_* constants.

75d98b60 01/23/2018 05:29 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

63472779 01/16/2018 06:17 PM Ondrej Zajicek (work)

BGP: Implement 'disable after cease' option

The option allows to specify that some cease subcodes should
disable the protocol when received.

7fc55925 12/09/2017 11:55 PM Ondrej Zajicek (work)

Several minor fixes

830ba75e 12/07/2017 08:54 PM Ondrej Zajicek (work)

Merge commit '1e8721e2aeccfbc3f533e8b8abc07582cee77e9a' into int-new

cc881bd1 12/07/2017 12:53 PM Ondrej Zajicek (work)

BGP: Update to new timers

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.

cd1d9961 09/19/2017 05:57 PM Ondrej Zajicek (work)

BGP: Shutdown communication (RFC 8203)

The patch implements BGP Administrative Shutdown Communication (RFC 8203)
allowing BGP operators to pass messages related to BGP session
administrative shutdown/restart. It handles both transmit and receive of
shutdown messages. Messages are logged and may be displayed by show...

e919601a 04/28/2017 09:19 AM Ondrej Zajicek (work)

Merge master into int-new

711d617d 04/12/2017 02:04 PM Ondrej Zajicek (work)

BGP: Add support for SAFI 129 (VPN multicast)

Which, in contrast to SAFI 128, does not use MPLS labels.

c49e4a65 03/29/2017 11:48 AM Ondrej Zajicek (work)

BGP: Update list of supported standards

ef57b70f 03/26/2017 05:20 PM Ondrej Zajicek (work)

BGP: Support for routes with mixed-AF next hops

Covers IPv4/VPNv4 routes with IPv6 next hop (RFC 5549), IPv6 routes with
IPv4 next hop (RFC 4798) and VPNv6 routes with IPv4 next hop (RFC 4659).
Unfortunately it also makes next hop hooks more messy.

Each BGP channel now could have two IGP tables, one for IPv4 next hops,...

1e37e35c 03/22/2017 05:16 PM Ondrej Zajicek (work)

BGP: Support for MPLS labels and VPN SAFI

Basic support for SAFI 4 and 128 (MPLS labeled IP and VPN) for IPv4 and
IPv6. Should work for route reflector, but does not properly handle
originating routes with next hop self.

Based on patches from Jan Matejka.

3c744164 03/17/2017 02:48 PM Jan Moskyto Matejka

Nexthop: Fixed recursive route mpls label merging

1950a479 02/23/2017 03:32 PM Ondrej Zajicek (work)

BGP: Allow exchanging LOCAL_PREF with eBGP peers

Adds option 'allow bgp_local_pref' to override the usual restriction of
LOCAL_PREF on eBGP sessions.

Thanks to Lennert Buytenhek for the patch.

2be9218a 02/20/2017 01:28 AM Ondrej Zajicek (work)

BGP: Update RFC references

4e379bde 02/19/2017 11:02 AM Ondrej Zajicek (work)

BGP: Update RFC references

82f42ea0 02/07/2017 02:55 PM Ondrej Zajicek (work)

BGP: Minor cleanups

d8022d26 01/24/2017 01:00 AM Ondrej Zajicek (work)

BGP: Partial support for IPv4 routes with IPv6 next hop (RFC 5549)

Mostly capability signalling

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

Minor cleanups

256cc8ee 12/20/2016 04:39 PM Ondrej Zajicek (work)

BGP: Report capabilities in show protocols all

ac3ad139 12/07/2016 05:29 PM Ondrej Zajicek (work)

BGP: Add support for flowspec (RFC 5575)

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.

ed1a908e 11/25/2016 10:51 AM Ondrej Zajicek (work)

BGP: Fix memory leak in graceful restart code

Prefix and bucket tables are initialized when entering established state
but not explicitly freed when leaving it (that is handled by protocol
restart). With graceful restart, BGP may enter and leave established...

3e236955 11/01/2016 01:52 PM Jan Moskyto Matejka

Build: switch on -Wextra, get rid of most of the warnings

There are several unresolved -Wmissing-field-initializers on older
versions of GCC than 5.1, all of them false positive.

3213273d 10/27/2016 09:08 AM Ondrej Filip

IANA assigned a different number to large BGP communities - changed.

66dbdbd9 10/03/2016 10:48 AM Ondrej Zajicek (work)

BGP: Support for large communities

Add support for large communities (draft-ietf-idr-large-community),
96bit alternative to RFC 1997 communities.

Thanks to Matt Griswold for the original patch.

a7baa098 04/13/2016 12:37 PM Ondrej Zajicek (work)

BSD: Add the IPsec SA/SP database entries control

Add code for manipulation with TCP-MD5 keys in the IPsec SA/SP database
at FreeBSD systems. Now, BGP MD5 authentication (RFC 2385) keys are
handled automatically on both Linux and FreeBSD.

Based on patches from Pavel Tvrdik.

06e0d1b6 07/18/2015 11:38 AM Ondrej Zajicek

BGP: Extended messages support

Implements draft-ietf-idr-bgp-extended-messages-10, for now
undocumented and with temporary private capability number.

8d9eef17 06/08/2015 12:24 AM Ondrej Zajicek

BGP multipath support

Kernel option 'merge paths' allows to merge routes exported to kernel
protocol (currently BGP and static routes) to multipath routes.

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.

6cf72d7a 02/22/2015 04:21 PM Ondrej Zajicek

Rename BGP option 'start delay' to 'connect delay'

Also update log message for error-triggered startup delay.

523f020b 02/21/2015 11:15 AM Ondrej Zajicek

Link state support in BGP.

Configurable fast shutdown of a BGP session when an interface loses link.

dcde7ae5 10/02/2014 10:52 AM Ondrej Zajicek

Allows to configure different remote port for BGP sessions.

Thanks to João Taveira Araújo for the original patch.

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.

e7d2ac44 12/01/2013 12:49 PM Ondrej Zajicek

Finishes add-path.

Fixes some bugs and uses generic hash implementation.

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

Merge branch 'master' into add-path


77e43c8b 11/22/2013 09:49 PM Ondrej Zajicek

Minor fixes.

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.

a15dab76 10/21/2013 12:59 PM Ondrej Zajicek

Implements 'allow local as' option.

Similar to allowas-in option on other routers.

ac574513 07/25/2013 11:55 AM Ondrej Zajicek

Implements RFC 6608 Subcodes for BGP FSM Error.

48bc232f 04/16/2013 03:27 PM Ondrej Zajicek

Implements 'next hop keep' option for BGP.

This option allows to keep the received next hop even in cases when
the route is sent to an interface with a different subnet.

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.

abced4a9 07/16/2012 12:44 PM Ondrej Zajicek

Merge branch 'rt-accepted'


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.

00a09f3c 04/15/2012 01:07 PM Ondrej Zajicek

Implement RA_ACCEPTED mode of route propagation.

53ffbff3 01/08/2012 02:31 PM Ondrej Zajicek

Implements support for link-local addresses in BGP.

Thanks Matthias Schiffer for the original patch.

be4cd99a 12/22/2011 12:20 PM Ondrej Zajicek

Implements deterministic MED handling.

Thanks to Alexander V. Chernikov for many suggestions.

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.

b1b19433 08/16/2011 09:13 PM Ondrej Zajicek

The generalized TTL security mechanism (RFC 5082) support.

Thanks to Alexander V. Chernikov for the patch.

42a0c054 08/14/2011 11:55 AM Ondrej Zajicek

BGP Extended communities.

73272f04 04/22/2011 02:13 PM Ondrej Zajicek

Adds BGP option related to MED handling.

Adds option 'med metric' allows to compare MEDs
between routes received from different neighbors.

d1e146f2 07/30/2010 11:04 PM Ondrej Zajicek

Implements IGP metric comparison for BGP routes.

087cecd0 07/13/2010 10:48 AM Ondrej Zajicek

Adds some options and documentation related to recursive next hops.

9be9a264 07/12/2010 03:39 PM Ondrej Zajicek

Implements proper multihop BGP.

Also does some incompatible changes to config file syntax,
like removing 'via IP' from multihop option.

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.

a34b0934 05/31/2010 09:35 AM Ondrej Zajicek

Disable BGP protocol when cannot open listening socket.

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

Implements BGP 'show protocols' info details.

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

41677025 01/28/2010 02:59 PM Ondrej Zajicek

Changes 'ignore communities' to 'interpret communities'.

6cb8f742 01/27/2010 04:22 PM Ondrej Zajicek

Better handling of well-known communities.

Process well-known communities before the export filter (old behavior is
to process these attributes after, which does not allow to send route
with such community) and just for routes received from other BGP
protocols. Also fixes a bug in next_hop check.

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

Implements MRTdump feature.

43c1cecc 12/14/2009 10:31 PM Ondrej Zajicek

Remove bgp_as4_support variable.

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

Implements BGP route refresh.

3f9b7bfe 11/18/2009 07:32 PM Ondrej Zajicek

Implements option that controls IPv6 BGP next hops when lladdr is missing.

3228c72c 11/17/2009 10:41 AM Ondrej Zajicek

Implements RFC 5004 - prefer older external routes.

be6e39eb 09/24/2009 08:12 PM Ondrej Zajicek

Passive option.

46eb80d5 09/17/2009 03:52 PM Ondrej Zajicek

Fixes headers for uintptr_t (and build on NetBSD).

b99d3786 06/06/2009 10:38 PM Ondrej Zajicek

Minor BGP changes related to error wait time.

dd91e467 06/06/2009 04:16 PM Ondrej Zajicek

Differentiate between error delay and connect/reconnect delay.

The difference is here to reject incoming connections in the
first case.

72b28a04 06/04/2009 11:31 AM Ondrej Zajicek

Implements import route limits.

4827b69f 04/29/2009 04:58 PM Ondrej Zajicek

Fixes BGP IPv6 link local next hop handling.

When sending 'third party' BGP update, Bird used bogus link local
addresses instead of addresses it received before.

ad440a57 04/28/2009 04:11 PM Ondrej Zajicek

Fixes handling of 'next hop self' and 'source address' configuration

e8ba557c 03/13/2009 11:49 AM Ondrej Zajicek

Update capability handshake options

Add 'capabilities' option, change default behavior to advertise ipv4,
add some checks and ignore incoming capabilities when capabilities
are disabled.

e3299ab1 03/05/2009 10:52 AM Ondrej Zajicek

Added Cisco and Quagga capability workaround option.

cb530392 02/26/2009 01:23 PM Ondrej Zajicek

Rate limit for most abundant log messages

165a6227 12/24/2008 04:24 PM Ondrej Zajicek

Adds support for fallback to capabilityless BGP connect

When capability related error is received, next connect will be
without capabilities. Also cease error subcodes descriptions
(according to [RFC4486]) are added.

11b32d91 12/19/2008 12:34 AM Ondrej Zajicek

Major changes to BGP

Fixes two race conditions causing crash of Bird, several unhandled
cases during BGP initialization, and some other bugs. Also changes
handling of startup delay to be more useful and implement
reporting of last error in 'show protocols' command.

aebe06b4 11/08/2008 10:33 PM Ondrej Zajicek

Proper format functions for ORIGINATOR_ID, CLUSTER_LIST

a92fe607 11/01/2008 11:55 AM Ondrej Zajicek

Implementation of route server.

ba5ed6f3 10/26/2008 09:48 PM Ondrej Zajicek

Implementation of an option for disabling AS4 support per BGP instance.

4847a894 10/26/2008 09:45 PM Ondrej Zajicek

Implementation of route reflection for BGP

d51aa281 10/26/2008 09:42 PM Ondrej Zajicek

Implementation of MD5 authentication of BGP sessions.

11cb6202 10/26/2008 09:36 PM Ondrej Zajicek

Implementation of 4B ASN support for BGP

11d4474c 02/22/2003 10:47 PM Martin Mares

Better selection of link-local NLRI addresses, at least for our own
address. Need to do it better for the other neighbors -- the current
solution works only if they use the standard 64+64 global addresses
and the interface identifier in lower 64 bits is the same as for the...

5e88d730 05/19/2000 11:01 AM Martin Mares

BGP now reports originating AS and origin type in get_route_info().

93d6bf38 05/08/2000 01:26 PM Martin Mares

The bgp_list is gone. Incomming connections are now handled in a much
more straightforward manner by scanning the active configuration for
matching protocols.

cf3d6470 05/04/2000 08:02 PM Martin Mares

IPv6 BGP support finished. Also simplified the BGP stuff a bit.

1c1da87b 05/04/2000 09:03 AM Martin Mares

Receive-only IPv6 BGP.