Statistics
| Branch: | Revision:

iof-bird-daemon / proto @ 517d05df

# Date Author Comment
517d05df 12/08/2017 03:00 PM Ondrej Zajicek (work)

Enable ECMP and Link detection by default

ECMP is not enabled on BSD, where it is not supported by BIRD.

49c7ef3b 12/08/2017 01:00 PM Ondrej Zajicek (work)

BGP: Fix IPv6 MPLS/VPN multicast SAFI

ccee67ca 12/08/2017 01:26 AM Ondrej Zajicek (work)

BGP: Autoconfigure BGP next hops from preferred addresses

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

Merge commit '1e8721e2aeccfbc3f533e8b8abc07582cee77e9a' into int-new

46434a3c 12/07/2017 05:35 PM Ondrej Zajicek (work)

Merge commit '7b2c5f3d2826e3175bf31b1c36056c9efc587a2b' into int-new

4ff15a75 12/07/2017 04:41 PM Ondrej Zajicek (work)

Merge commit '98bb80a243b58c43453e9be69d19d0350286549c' into int-new

a6f79ca5 12/07/2017 12:54 PM Ondrej Zajicek (work)

Timers: Revert temporary names and remove old timer.h

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

Timers: Fix TBF and some last remains

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

Babel: More changes and bugfixes

Several changes and bugfixes in Babel, namely:

- Exported route parameters stored directly in route table entry
- Exported non-babel routes no longer stored in per-entry route list
- Route update, selection and retraction simplified and fixed...

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

Babel: Fix handling of seqno requests

Old behavior has several deficiencies compared to standard behavior
(no triggered updates for replies, no retransmissions, ...).

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

Babel: Fix handling of IPv4 retractions

Babel TLV parsing code rejected IPv4 retractions without next-hop,
although next-hop is needed just for regular updates.

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

Babel: Remove babel_proto ptr from babel_entry

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

Babel: Fix hello timeout for short hello intervals

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

Babel: Revamp cost computation and run route selection when cost change

Also fix several minor bugs and add 'limit' option for k-out-of-j
link sensing strategy. Change default from 8-of-16 to 12-of-16.
Change IHU expiry factor from 1.5 to 3.5 (as in RFC 6126).

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

Babel: Fix unicast seqno requests

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

Babel: Avoid batch seqno updates

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

Babel: Fix Hello and IHU expiration

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

Babel: Update to new timers

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

BGP: Update to new timers

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

OSPF: Update to new timers

Note that recurrent timers are currently limited to ~1 hour.

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

Timers: Add typecast to unit-converting macros

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

RIP: Update to new timers

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

RAdv: Update to new timers

d59c1a29 12/07/2017 12:52 PM Ondrej Zajicek (work)

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

534215a1 12/07/2017 12:46 PM Ondrej Zajicek (work)

Timers: Split microsecond timers from BFD code to lib

153f02da 12/07/2017 12:06 PM Ondrej Zajicek (work)

Nest: Maintain separate IPv4, IPv6 and LLv6 preferred addresses

Also redesign preferred address selection and update protocols to use
appropriate preferred address.

Based on a previous work by Jan Maria Matejka.

1e8721e2 11/28/2017 06:33 PM Ondrej Zajicek (work)

Babel: Parse flags in Hello TLV

RFC6126bis introduces a flags field for the Hello TLV, and adds a unicast flag
that is used to signify that a hello was sent as unicast. This adds parsing of
the flags field and ignores such unicast hellos, which preserves compatibility...

4ae3ee12 10/17/2017 02:52 PM Jan Maria Matejka

Babel: Interface address irrelevant for interface pattern matching.

2d7fb19c 10/10/2017 02:10 PM Ondrej Zajicek (work)

OSPF: Add option to disable OSPFv3-AF

2549300b 10/10/2017 02:10 PM Ondrej Zajicek (work)

OSPF: Fix minor issue in TTL check

The TTL check must be done after instance ID dispatch to avoid warnings
when a physical iface is shared by multiple instances and some use TTL
security and some not.

f097f765 10/10/2017 02:10 PM Ondrej Zajicek (work)

OSPF: Fix next hop calculation for PtP links in IPv4 OSPFv3-AF

In such case, next hop has to be taken from Link-LSA like in broadcast
case, not from neighbor source address like in other PtP cases.

Also add some checks, comments and code cleanup.

d3f4f92b 10/10/2017 02:10 PM Ondrej Zajicek (work)

OSPF: Support of address families in OSPFv3

OSPFv3-AF can handle multiple topologies of diferent address families
(IPv4, IPv6, both unicast and multicast) using separate instances
distinguished by instance ID ranges.

7c0bab3a 10/06/2017 10:24 AM Ondrej Zajicek (work)

RAdv: Change specific route options to be per-interface

And change default values of specific route options to be consistent with
values of default router options.

2a95e633 10/04/2017 02:27 PM Michal 'vorner' Vaner

RAdv: Support for more specific routes (RFC 4191)

The patch implements Default Router Preferences and More-Specific Routes
(RFC 4191) for RAdv protocol, allowing to announce router preference and
more specific routes in router advertisements. Routes can be exported to...

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

f2dd602f 09/12/2017 02:33 PM Ondrej Zajicek (work)

Backport some minor changes from int-new

9f4908fe 09/12/2017 01:49 PM Ondrej Zajicek (work)

Nest: VRF support for neighbor cache and olock code

Actually much simpler than expected.

943478b0 09/06/2017 03:38 PM Ondrej Zajicek (work)

Basic VRF support

Add basic VRF (virtual routing and forwarding) support. Protocols can be
associated with VRFs, such protocols will be restricted to interfaces
assigned to the VRF (as reported by Linux kernel) and will use sockets
bound to the VRF. E.g., different multihop BGP instances can use diffent...

08b6a617 08/30/2017 02:34 PM Ondrej Zajicek (work)

RAdv: Some style nitpicks

ec7d6a50 08/30/2017 02:34 PM Michal 'vorner' Vaner

RAdv: Configure how long a dead prefix is advertised

e2d2b3ef 08/30/2017 02:34 PM Michal 'vorner' Vaner

RAdv: Buffer prefixes awhile after they disappear

Keep a cache of all the relevant prefixes we send out. When a prefix
appears, insert it into the cache. If it dies, keep it there for a
while, marked as dead.

Send out the dead prefixes with zero lifetime.

3ac5d1ce 08/30/2017 02:34 PM Michal 'vorner' Vaner

RAdv: Extract prefix option preparation

Put the prefix option preparation into a separate function. We're going
to reuse that bit of code.

69f73992 08/09/2017 10:46 AM Ondrej Zajicek (work)

Merge branch 'master' into int-new

b3fae3a8 08/09/2017 10:41 AM Ondrej Zajicek (work)

RAdv: Fix typo

1f182675 08/09/2017 10:38 AM Michal 'vorner' Vaner

RAdv: Style updates

Adapt the naming conventions to be a bit closer to the other protocols.

proto_radv -> radv_proto
struct radv_proto *ra -> struct radv_proto *p
struct proto *p -> struct proto *P

5a41eed2 08/09/2017 10:22 AM Michal 'vorner' Vaner

RAdv: Style updates

Adapt the naming conventions to be a bit closer to the other protocols.

proto_radv -> radv_proto
struct radv_proto *ra -> struct radv_proto *p
struct proto *p -> struct proto *P

637ed498 08/09/2017 09:59 AM Michal 'vorner' Vaner

radv: Fix RFC reference in comments

afd9845e 08/04/2017 08:52 AM Michal 'vorner' Vaner

radv: Fix RFC reference in comments

a1f5e514 07/04/2017 09:36 PM Ondrej Zajicek (work)

Implement onlink flag for nexthops

Add proper support for per-nexthop onlink flag in routes to handle next
hop addresses that are not covered by interface IP ranges. Supported by
kernel and static protocols.

Thanks to Vincent Bernat for the idea.

5220cb63 06/14/2017 10:34 AM Ondrej Zajicek (work)

Babel: Fix pointer arithmetic in subtlv parsing

The subtlv parsing code was doing byte-based arithmetic with non-void pointers,
causing it to read beyond the end of the packet.

Signed-off-by: Toke Høiland-Jørgensen <>

145ebfa1 06/09/2017 12:33 PM Ondrej Zajicek (work)

Babel: Parse sub-TLVs and skip TLVs with mandatory sub-TLV

RFC6126bis formally introduces sub-TLVs to the Babel protocol, including
mandatory sub-TLVs. This adds support for parsing sub-TLVs to the Babel
protocol and skips TLVs that contain mandatory sub-TLVs, as per the spec....

b3c6273e 06/09/2017 11:00 AM Ondrej Zajicek (work)

Babel: Implement IPv6 prefix compression on outgoing updates

Previously, the Babel protocol would never use prefix compression on outgoing
updates (but would parse it on incoming ones). This adds compression of IPv6
addresses of outgoing updates.

The compression only works to the extent that the FIB is walked in lexicographic...

4324025f 06/08/2017 10:18 AM Ondrej Zajicek (work)

Babel: Add support for dual-stack IPv4/IPv6 operation

This adds support for dual-stack v4/v6 operation to the Babel protocol.
Routing messages will be exchanged over IPv6, but IPv4 routes can be
carried in the messages being exchanged. This matches how the reference...

6aaaa635 05/23/2017 03:40 PM Ondrej Zajicek (work)

Change parser to handle numbers as unsigned

Lexer always parsed numbers as unsigned, but parser handled them as
signed and grammar contained many unnecessary checks for negativity.

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

Minor cleanups and fixes

05d47bd5 05/16/2017 01:34 PM Jan Moskyto Matejka

Linpool: default allocation size

1d213067 04/28/2017 11:24 PM Ondrej Zajicek (work)

Minor fixes

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

Merge master into int-new

4278abfe 04/18/2017 11:56 AM Ondrej Zajicek (work)

Check validity of dest w.r.t. net_type

Allow to define static roa/flow routes without dest.

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.

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

Static: Support for dual-AF IGP tables

When recursive routes with hybrid next hops (e.g. IPv6 route with IPv4 next
hop) are allowed, we need both IPv4 and IPv6 IGP tables.

6fe11c99 03/29/2017 01:31 PM Ondrej Zajicek (work)

BGP: Simplify igp table options

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

01111fc4 03/23/2017 01:10 PM Ondrej Zajicek (work)

BGP: Bugfix in VPN NLRI encoding

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.

ead7b8f4 03/22/2017 01:54 PM Jan Moskyto Matejka

Merge branch 'nexthop-merged' into int-new

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

Nexthop: Fixed recursive route mpls label merging

33b6c292 03/14/2017 11:56 AM Ondrej Zajicek (work)

BGP: Allow to specify interface for regular sessions

This may be useful if multple interfaces share the same network range.

Thanks to Fritz Grimpen for the original patch.

27f6ba65 03/14/2017 11:56 AM Ondrej Zajicek (work)

BGP: Fix bug in ADD_PATH

When a BGP session with ADD_PATH is restarted and the neighbor do not
announce ADD_PATH capability during reconnect, the accept_ra_types is
still set to RA_ANY.

Thanks to Lennert Buytenhek for the bugreport

665be7f6 03/09/2017 12:47 PM Ondrej Zajicek (work)

Nest: Minor fixes in show route

7126cadf 03/09/2017 12:47 PM Ondrej Zajicek (work)

Static: Minor overhaul

The patch fixes several bugs introduced in previous changes, simplifies
the protocol by handing routes uniformly, introduces asynchronous route
processing to avoid issues with separate notifications for each next-hop
in ECMP routes, and makes reconfiguration faster by avoiding quadratic...

da3cf9ea 03/08/2017 04:37 PM Ondrej Zajicek (work)

Update OSPF and RIP protocol names and related documentation

039a65d0 02/24/2017 01:05 PM Jan Moskyto Matejka

Nexthop: Fixed hostentry

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.

b2b84359 02/22/2017 11:02 AM Jan Moskyto Matejka

Babel post-merge fixes

c609d039 02/22/2017 10:58 AM Jan Moskyto Matejka

Merge branch 'int-new' into nexthop-merged

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

BGP: Update RFC references

62e64905 02/20/2017 01:26 AM Ondrej Zajicek (work)

Several minor fixes

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

BGP: Update RFC references

30c734fc 02/17/2017 09:54 PM Ondrej Zajicek (work)

Static: Fix bug in static route filter expressions

During reconfiguration, old and new filter expressions in static routes
are compared using i_same() function. When filter expressions contain
function calls, it is necessary that old filter expressions are the...

c259669f 02/08/2017 01:34 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

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

5509e17d 01/22/2017 03:32 PM Ondrej Zajicek (work)

BGP: Support for AS confederations (RFC 5065)

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

Minor cleanups

d47c3d64 12/22/2016 08:38 PM Jan Moskyto Matejka

MPLS: Label stack concatenation for recursive routes

f2010f9c 12/22/2016 08:38 PM Jan Moskyto Matejka

Static: Protocol rework wrt. struct nexthop changes; MPLS label support

ec5e5d23 12/22/2016 12:23 PM Jan Moskyto Matejka

Nexthop: Support for label stack in nest

5b208e29 12/22/2016 12:09 PM Jan Moskyto Matejka

Removing (struct rta)->cast. Never used.

4e276a89 12/22/2016 12:01 PM Jan Moskyto Matejka

Merged multipath and single-path data structures.

Dropped struct mpnh and mpnh_*()
Now struct nexthop exists, nexthop_*(), and also included struct nexthop
into struct rta.

Also converted RTD_DEVICE and RTD_ROUTER to RTD_UNICAST. If it is needed
to distinguish between these two cases, RTD_DEVICE is equivalent to...

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

BGP: Report capabilities in show protocols all

7d95c445 12/15/2016 02:37 PM Ondrej Zajicek (work)

OSPF: Fix ECMP external merging

The variable nfa is not cleaned before each loop iteration and can have
a wrong value of nfa.nhs_reuse from the previous step.

Thanks to Bernardo Figueiredo for the bugreport and analysis.

eeba61cc 12/13/2016 07:18 PM Ondrej Zajicek (work)

Minor cleanups

9e7d3a78 12/13/2016 04:34 PM Ondrej Zajicek (work)

OSPF: Fix net-summary origination combined with stubnet option

Stubnet nodes in OSPF FIB were removed during rt_sync(), but the pointer
remained in top_hash_entry.nf, so net-summary LSA origination was
confused, reported 'LSA ID collision' and net-summary LSAs were not...

5e8df049 12/09/2016 11:44 PM Ondrej Zajicek (work)

Babel: Update to integrated branch

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

BGP: Add support for flowspec (RFC 5575)