| Branch: | Revision:

iof-bird-daemon / nest / route.h @ 7152e5ef

History | View | Annotate | Download (21.6 KB)

# Date Author Comment
7152e5ef 05/10/2016 12:07 PM Jan Moskyto Matejka

Build system reworked to one global Makefile with includes and no nesting

Also removed the lib-dir merging with sysdep. Updated #include's

Fixed make doc on recent Debian together with moving generated doc into

Moved into root dir...

9a74622c 02/10/2016 12:26 PM Jan Moskyto Matejka

Updated RTA hashes to 32-bit values.

... and reworked the hashes a bit. Also added mem_hash function
which just computes a hash of given memory block.

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.

650b4189 01/20/2016 03:46 PM Pavel Tvrdík

Delete old ROA code

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.

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

Add ROA_* constants values to grammar of configuration


74c838a8 12/29/2015 02:42 PM Ondrej Zajicek (work)

Move ID allocator to a separate file and use it also in OSPF

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.

0f7d5b1a 12/20/2015 05:16 PM Ondrej Zajicek (work)

Nest: Reimplement fib_route() and add some consts

9656dce7 12/20/2015 12:04 PM Jan Moskyto Matejka

ROA code switchoff

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

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

8eb8e546 10/17/2015 12:44 PM Ondrej Zajicek (work)

Merge branch 'master' into rip-new

acb04cfd 10/17/2015 12:43 PM Ondrej Zajicek (work)

Minor changes

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.

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

Moving of mulipath merging code from OSPF to nest

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

unsigned [int] -> uint

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

unsgined char -> byte

9fdf9d29 05/12/2015 02:42 PM Ondrej Zajicek

KRT: Add support for plenty of kernel route metrics

Linux kernel route metrics (RTA_METRICS netlink route attribute) are
represented and accessible as new route attributes:

krt_mtu, krt_window, krt_rtt, krt_rttvar, krt_sstresh, krt_cwnd, krt_advmss,
krt_reordering, krt_hoplimit, krt_initcwnd, krt_rto_min, krt_initrwnd,...

315f23a0 05/10/2015 05:44 PM Ondrej Zajicek

Add bitfield route attribute type

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.

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


28a10f84 10/02/2013 12:41 PM Ondrej Zajicek

Some fixes in filter code.

Thanks to Sergey Popovich for original patches.

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

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.

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.

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

Finalize RA_ACCEPTED handling.

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.

af582c48 03/18/2012 04:32 PM Ondrej Zajicek

Route Origin Authorization basics.

- ROA tables, which are used as a basic part for RPKI.
- Commands for examining and modifying ROA tables.
- Filter operators based on ROA tables consistent with RFC 6483.
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.

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

BGP Extended communities.

fdf16eb6 07/03/2011 05:43 PM Ondrej Zajicek

Prints full community lists during 'show route all'.

71ca7716 04/13/2011 10:32 AM Ondrej Zajicek

Adds support for several Linux kernel route attributes.

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

Core multipath support.

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

Adds igp_metric attribute.

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

Implements IGP metric comparison for BGP routes.

1b180121 07/28/2010 09:45 AM Ondrej Zajicek

Use link-local addresses in recursive next hops for IPv6 BGP.

c477f489 07/27/2010 04:20 PM Ondrej Zajicek

Hostcache should use trie to filter relevant route changes.

f2b76f2c 07/26/2010 02:39 PM Ondrej Zajicek

For hostentry cache, replace FIB with a hash table using (IP, dep table) as a key.

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.

c27b2449 02/08/2010 03:01 PM Ondrej Zajicek

Shows source (Router ID) for OSPF routes and adds such attribute.

A sad thing is that we does not have a 'router_id' filter type,
so it must be given as decimal number in filters.

d82fc18d 10/07/2009 08:10 PM Ondrej Zajicek

Implement proper LSA ID generation.

f98e2915 06/01/2009 12:07 PM Ondrej Zajicek

The pipe cleanup.

23ac9e9a 05/31/2009 01:24 PM Ondrej Zajicek

Changes pipes to transfer all routes between routing table, not just optimal routes.

ea2ae6dd 05/22/2009 03:12 PM Ondrej Zajicek

Change import/preimport to export/preexport to be consistent with filters.

4d176e14 05/11/2009 12:01 AM Ondrej Filip

'show route protocol <p>' added to CLI.

98ac6176 06/25/2004 04:39 PM Ondrej Filip

A lot of changes:
- metric is 3 byte long now
- summary lsa originating
- more OSPF areas possible
- virtual links
- better E1/E2 routes handling
- some bug fixes..

I have to do:
- md5 auth (last mandatory item from rfc2328)
- !!!!DEBUG!!!!! (mainly virtual link system has probably a lot of bugs)...

8bf684ec 06/11/2004 09:05 AM Ondrej Filip

RTS_OSPF_BONDARY is nonsense, RTS_OSPF_IA must have smaller id than RTS_OSPF_EXT

a60277b9 05/31/2004 01:35 PM Ondrej Filip

Added RTD_NONE /* Just for internal use */

ad390755 06/21/2000 07:40 PM Pavel Machek

RIP bugfix

566a0eed 06/02/2000 12:29 PM Martin Mares

Removed rta_find() since nobody uses it and it's more convenient
to use ea_find() directly.

ce4aca09 06/01/2000 04:16 PM Martin Mares

FIB documentation.

I've changed the init callback type to a typedef to work around a bug
in kernel-doc I'm too lazy to hunt now.

5919c66e 05/30/2000 09:25 PM Martin Mares

Route attributes for OSPF.

73232f6b 05/30/2000 10:36 AM Ondrej Filip

Better rt dumping.

cdc25e8d 05/28/2000 07:07 PM Ondrej Filip

To find out a type of route (external, inter/intra area)

0ba8a614 05/19/2000 07:40 PM Martin Mares

Fixed a very nasty bug in FIB iterators.

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

Asynchronous feeding of protocols.

56d6c530 05/13/2000 11:42 AM Martin Mares

Added fib_route() which does (although very slow) lookup of longest-match
routing in a FIB.

ec21aecf 05/11/2000 10:33 AM Pavel Machek

Fixed nasty segfault in rip.

c0100454 05/10/2000 06:54 AM Pavel Machek

Added more convient interface for ea_find.

What is special about int default;? Compiler chokes on that!

8abbde02 05/08/2000 07:11 PM Martin Mares

Several simplifications of the fib iterators.

916c8c0a 05/08/2000 10:40 AM Martin Mares

Use preferences properly.

23693958 05/07/2000 11:28 AM Martin Mares

Implemented `show route <...> stats'.

ce1da96e 05/06/2000 10:57 PM Martin Mares

Added commands `show route protocol <p>' and `show route import <p>' which
show the routing table as exported to the protocol given resp. as returned
from its import control hook.

To get handling of filtered extended attributes right (even in the old
`show route where <filter>' command), the get_route_info hook gets an...

beaf86e1 05/04/2000 09:23 PM Martin Mares

Removed RTS_RIP_EXT.

51a183af 04/17/2000 11:23 AM Martin Mares

Define EAF_ORIGINATED and propagate it properly when merging attribute lists.

c6add07f 04/17/2000 10:18 AM Martin Mares

Printing of AS paths and community sets.

b475c543 04/10/2000 10:08 PM Martin Mares

Fix comments.

73e03bce 04/10/2000 02:45 PM Pavel Machek

As usuall, most important info was missing.

6f57dcc0 04/10/2000 12:39 PM Martin Mares

Export ea_same() and ea_hash().

d3feceff 04/09/2000 10:04 PM Martin Mares

BGP doesn't need any inline attributes.

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

ca97b489 03/20/2000 06:45 PM Martin Mares

Define new data types for BGP.

9f4929e7 03/04/2000 10:30 PM Martin Mares

Renamed EAF_INLINE to EAF_TEMP to make the name reflect the real meaning.

b9626ec6 03/04/2000 10:21 PM Martin Mares

Garbage collector events and counters are now per table and one day
they can be made configurable if it turns out to be useful.

ee76a92a 03/04/2000 09:09 PM Martin Mares

Implemented real attribute cache.

c8518ae1 03/01/2000 03:05 PM Martin Mares

Removed RTF_EXTERIOR and RTF_TAGGED (unused).

50fe90ed 01/16/2000 04:44 PM Martin Mares

First attempt on dynamic reconfiguration. There are still lots of bugs
and problems to solve, but the hardest part works.

476e1084 12/16/1999 01:51 PM Martin Mares

Minor cleanups.

730f2e2c 12/01/1999 03:10 PM Martin Mares

Added dumping of routing tables (`show route'). This includes filtering.

774f1499 11/25/1999 12:01 PM Pavel Machek

Fix timeouts. Triggered updates are not done, yet.

8d24b689 11/18/1999 02:41 PM Martin Mares

Allow EA type to be set to 'undefined' which overrides all further definitons
of that EA in the same list and causes ea_find() to fail unless you add
EA_ALLOW_UNDEF to the second argument.

ea_sort (resp. ea_do_prune()) removes all undef'd attributes from the list....

da40b6f7 11/18/1999 01:42 PM Martin Mares


2727bb7c 11/04/1999 01:29 PM Martin Mares

Renamed attr->attrs to attr->eattrs.

9c11ec9e 08/03/1999 07:34 PM Martin Mares

Implemented a Table-to-Table protocol a.k.a The Pipe.

7de45ba4 08/03/1999 07:33 PM Martin Mares

Kernel route syncer supports multiple tables.

The changes are just too extensive for lazy me to list them
there, but see the comment at the top of sysdep/unix/krt.c.
The code got a bit more ifdeffy than I'd like, though.

Also fixed a bunch of FIXME's and added a couple of others. :)

9c9e49ac 05/31/1999 07:15 PM Pavel Machek

Added extended attributes for rip.

0e02abfd 05/17/1999 08:14 PM Martin Mares

From now we support multiple tables. The master_table variable is
definitely gone. Both rte_update() and rte_discard() have an additional
argument telling which table should they modify.

Also, rte_update() no longer walks the whole protocol list -- each table...

08e2d625 04/12/1999 06:01 PM Martin Mares

Removed TOS support. This simplifies many things a lot.

e2dc2f30 04/05/1999 08:25 PM Martin Mares

Routing table core changes to support full route filtering:

o Introduced rte_cow() which should be used for copying on write the
rte's in filters. Each rte now carries a flag saying whether it's
a real route (possessing table linkage and other insignia) or a local...

c10421d3 04/03/1999 01:05 PM Martin Mares

More changes to the kernel syncer.

o Now compatible with filtering.
o Learning of kernel routes supported only on CONFIG_SELF_CONSCIOUS
systems (on the others it's impossible to get it semantically correct).
o Learning now stores all of its routes in a separate fib and selects...