| Branch: | Revision:

iof-bird-daemon / nest / rt-table.c @ 3b3b0910

History | View | Annotate | Download (62.2 KB)

# Date Author Comment
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.

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.

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

Linpool: default allocation size

f8d44b01 05/15/2017 10:10 AM Jan Moskyto Matejka

Nest: split route show into separate file

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.

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.

7ee07a3c 04/12/2017 02:05 PM Jan Moskyto Matejka

Nest: Fix route lookup

2faf519c 04/12/2017 02:04 PM Jan Moskyto Matejka

Client: multitable version of show route

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

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

Nest: Minor fixes in show route

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

Nexthop: Fixed hostentry

93f50ca3 02/22/2017 01:11 PM Jan Moskyto Matejka

Nest: names for nhu_state values

It took too much time to analyze what's the meaning of nhu_state values
so I spent less than the same amount of time documenting it.

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

Several minor fixes

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

MPLS: Label stack concatenation for recursive routes

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

Netlink: MPLS routes in kernel

Anyway, Bird is now capable to insert both MPLS routes and MPLS encap
routes into kernel.

It was (among others) needed to define platform-specific AF_MPLS to 28
as this constant has been assigned in the linux kernel.

No support for BSD now, it may be added in the future.

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

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

77234bbb 12/07/2016 02:54 PM Ondrej Zajicek (work)

Basic flow specification support (RFC 5575)

Add flow4/flow6 network and rt-table type and operations, config grammar
and static protocol support.

Squashed flowspec branch from Pavel Tvrdik.

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.

f6e8e141 12/07/2016 08:35 AM Pavel Tvrdik

Check table type at `show route for ...'

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

8860e991 11/08/2016 06:27 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

cc5b93f7 11/08/2016 04:04 PM Ondrej Zajicek (work)

Merge tag 'v1.6.2' into int-new

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.

2e7fb11a 10/12/2016 12:22 PM Jan Moskyto Matejka

Fixed memory bloating on kernel merge paths together with export filter.

Some memory was being allocated from bad linpool, not from the given one
as they should.

Thanks to Madhu and Justin Cattle for reporting this.

a290da25 09/15/2016 01:57 PM Pavel Tvrdik

rt-table: Fix kernel protocol export filter memory bug

Kernel protocol calls rt_export_merged(), which used @rte_update_pool for
temporary allocations, supposing it is called from other functions from
rt-table.c that handles locking and flushing of the linpool. Therefore,...

84cac51a 09/14/2016 09:53 AM Ondrej Zajicek (work)

Nest: Keep multipath next hops sorted

d107ef78 08/16/2016 11:02 AM Pavel Tvrdik

Whitespace fixes

6887f409 07/17/2016 12:54 PM Ondrej Filip

Prepare for longer interface names - clean up of the code.

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

2003a184 04/08/2016 11:09 AM Jan Moskyto Matejka

Route update: move table lookup from protocols into rte_update2().

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.

4bdf1881 04/07/2016 08:08 AM Jan Moskyto Matejka

Channelize: rt_notify arg conversion table -> channel

1bb3ecb2 02/08/2016 03:08 PM Pavel Tvrdík

Fix closing flushed channel

Fix reading from freed memory.
Free at: channel_set_state(c, CS_DOWN)
Read at: WALK_LIST2_DELSAFE(c, n, x, tab->channels, table_node)

00:00:00:00.261 24718
00:00:09:31.755 24718 Invalid read of size 8
00:00:09:31.755 24718 at 0x4061BA: rt_prune_table (rt-table.c:1688)...
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.

0264ccf6 01/20/2016 03:46 PM Pavel Tvrdík

Rewrite roa_check() for integrated BIRD

Thanks to Ondrej Zajicek for his support with writing this code.

b9f56921 01/07/2016 05:24 PM Pavel Tvrdík

Fix check in net_route() in debug mode

de9b87f5 01/07/2016 05:21 PM Pavel Tvrdík

Add NET ROA4/6 structures

04632fd7 12/24/2015 02:56 PM Ondrej Zajicek (work)

Follow-up work on integration

600998fc 12/21/2015 07:28 PM Ondrej Zajicek (work)

Modify FIB_WALK() and FIB_ITERATE() to work with new FIB code

Returned user data pointers have offset relative to fib_node.

7fd4143e 12/20/2015 12:47 PM Jan Moskyto Matejka

Integrated address print lengths

Minor changes by Ondrej Santiago Zajicek

5e173e9f 12/19/2015 10:49 PM Jan Moskyto Matejka

Stop perusing f_prefix for non-prefix-set uses

Multiple changes by Ondrej Santiago Zajicek

d7661fbe 12/19/2015 02:57 PM Jan Moskyto Matejka


Explicit setting of AF_INET(6|) in IP socket creation. BFD set to listen
on v6, without setting the V6ONLY flag to catch both v4 and v6 traffic.

Squashing and minor changes by Ondrej Santiago Zajicek

04ae8dda 11/25/2015 01:24 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

90f78507 11/24/2015 02:21 PM Ondrej Zajicek (work)

Merge branch 'master' into rip-new

86b4e170 11/09/2015 12:01 AM Ondrej Zajicek (work)

Nest: Fixes bug in missing cleanup during table removal

When a table is removed during reconfiguration, a reference was not
cleared in the old configuration, which breaks undo.

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

fe9f1a6d 11/05/2015 11:48 AM Ondrej Zajicek (work)

Initial commit on integrated BIRD

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

8465dccb 10/05/2015 11:18 AM Ondrej Zajicek (work)

Major RIP redesign

The new RIP implementation fixes plenty of old bugs and also adds support
for many new features: ECMP support, link state support, BFD support,
configurable split horizon and more. Most options are now per-interface.

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.

db027a41 06/08/2015 12:24 AM Ondrej Zajicek

Fixes subtle bug in temporary attribute handling

In some cases, export filter accessed attributes of a different route.

ca34698c 06/08/2015 12:24 AM Ondrej Zajicek

Fixes bug in pipe feeding when filtered routes are kept in table

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

unsigned [int] -> uint

d0e23d42 05/16/2015 10:56 PM Ondrej Zajicek

Simplify flushing process

Related to changes from previous patch.

86f567e1 05/16/2015 06:17 PM Ondrej Zajicek

Fix minor issue in pipe route propagation

In some circumstances during reconfiguration, routes propagated by pipes
to other tables may hang there even after the primary routes are removed.

There is already a workaround for this issue in the code which removes...

51762a45 02/21/2015 01:05 PM Ondrej Zajicek

Allows user data attached to f_trie_node structure.

Thanks to Alexander Chernikov for the patch.

0da562a7 11/08/2014 10:52 PM Ondrej Zajicek

Fixes error message in 'show route' cmd.

Message 'Network not in table' was not reported if a network node without
any routes was found in a routing table.

7aa80901 10/02/2014 10:52 AM Ondrej Zajicek

Implements show route noexport option.

Shows routes that would be exported to the protocol but are rejected by
the export filter.

1123e707 10/02/2014 10:52 AM Ondrej Zajicek

Implements token bucket filter for rate limiting.

c865cae3 04/28/2014 03:31 PM Ondrej Zajicek

Fixes 'show route export' w.r.t. protocols with different RA_* types.

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.

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

Merge branch 'master' into add-path


548c329c 11/22/2013 12:21 AM Ondrej Zajicek

Adds rate limiting to some log messages.

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

fad04c75 06/13/2013 09:27 AM Ondrej Zajicek

Fixes problems with kernel routes multiple routing tables.

Temporary dummy routes created by a kernel protocol during routing table
scan get mixed with real routes propagated from another kernel protocol
through a pipe.

e667622a 02/25/2013 09:39 AM Ondrej Filip

Default rounting table for 'show route export/preexport/protocol' is the one related to a respective protocol.

36da2857 02/08/2013 10:58 PM Ondrej Zajicek

Implements router advertisements activated by received routes.

The RAdv protocol could be configured to change its behavior based on
availability of routes, e.g., do not announce router lifetime when a
default route is not available.

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.

70577529 11/16/2012 12:29 PM Ondrej Zajicek

Fixes route tracing w.r.t. kept filtered routes.

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.

36415e4b 07/20/2012 05:56 PM Ondrej Zajicek

Allows to redefine master table.

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

Merge branch 'rt-accepted'


26822d8f 07/15/2012 11:33 PM Ondrej Zajicek

Finalize RA_ACCEPTED handling.

47c447c4 05/11/2012 10:10 AM Ondrej Zajicek

Minor cleanups.

b7f3df79 05/11/2012 10:01 AM Ondrej Zajicek

Fixes a bug in RA_ACCEPTED handling.

ab758e4f 04/28/2012 10:59 AM Ondrej Zajicek

Some fixes in route export limits.

d494df63 04/26/2012 10:04 PM Ondrej Zajicek

Some minor fixes.

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.

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

Implement RA_ACCEPTED mode of route propagation.

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

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

Implements deterministic MED handling.

Thanks to Alexander V. Chernikov for many suggestions.

32f95476 10/06/2011 08:48 PM Ondrej Zajicek

Signal problems with route installation to kernel tables.

5e9bdac2 05/21/2011 08:48 PM Ondrej Zajicek

Fixes a bug with setting preference during show route cmd.

If show route cmd was used with a filter that changed preference,
BIRD crashed.

b7c48981 05/05/2011 12:14 PM Ondrej Filip

Compilation was failing without OSPF or RIP protocol - FIXED.

ab164971 03/28/2011 11:41 PM Ondrej Zajicek

Fixes a nasty bug in OSPF.

Sending malformed network prefixes in LSAs causes OSPF to crash
just after the LSA is propagated to the other routers.

7e95c05d 12/07/2010 10:33 PM Ondrej Zajicek

Core multipath support.

4ca93a50 09/08/2010 10:08 AM Ondrej Zajicek

Fixes a one byte buffer overflow.

2c9033af 08/03/2010 06:26 AM Ondrej Zajicek

Do not allow interdependent recursive routes.

ba5e5940 08/02/2010 11:11 AM Ondrej Zajicek

Adds igp_metric attribute.