]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
5 years agoLib: recursive printf
Jan Maria Matejka [Wed, 22 Aug 2018 12:58:53 +0000 (14:58 +0200)] 
Lib: recursive printf

Use like this:

void func(const char *msg, va_list args) {
  ...
  bvsnprintf(buf, len, "file %s, line %d: %V (foo %d, bar %d)", file, line, msg, &args, foo, bar);
  ...
}

5 years agoDOC: Remove pipe mode reference
Ondrej Zajicek (work) [Tue, 21 Aug 2018 13:24:55 +0000 (15:24 +0200)] 
DOC: Remove pipe mode reference

Pipe mode was removed in 2.0, remove reference to it in the documentation.

Thanks to Piotr Wydrych for the bugreport.

5 years agoBison: A bit more verbose error messages in config.
Jan Maria Matejka [Tue, 14 Aug 2018 12:36:44 +0000 (14:36 +0200)] 
Bison: A bit more verbose error messages in config.

5 years agoMake: Add option to force colors in compiler output
Jan Maria Matejka [Tue, 17 Jul 2018 13:39:06 +0000 (15:39 +0200)] 
Make: Add option to force colors in compiler output

5 years agoM4: generate synchronization lines
Jan Maria Matejka [Tue, 17 Jul 2018 13:30:59 +0000 (15:30 +0200)] 
M4: generate synchronization lines

This also includes Bison version check. Versions before 3.0 don't
support them in a reliable way and we don't promise to work with
versions older than 2.4.

5 years agosysdep/unix/main.c: Remove trailing spaces
Pavel Tvrdik [Mon, 14 Nov 2016 13:53:10 +0000 (14:53 +0100)] 
sysdep/unix/main.c: Remove trailing spaces

5 years agoDoc: Fix notes related to obsolete option
Ondrej Zajicek (work) [Tue, 7 Aug 2018 12:46:24 +0000 (14:46 +0200)] 
Doc: Fix notes related to obsolete option

Thanks to Julien Dessaux for the report.

5 years agoBGP: Long-lived graceful restart
Ondrej Zajicek (work) [Tue, 31 Jul 2018 16:40:38 +0000 (18:40 +0200)] 
BGP: Long-lived graceful restart

The patch implements long-lived graceful restart for BGP, namely
draft-uttaro-idr-bgp-persistence-03.

5 years agoBSD: Use MSG_DONTROUTE for unicast packets on FreeBSD
Ondrej Zajicek (work) [Sat, 28 Jul 2018 14:54:06 +0000 (16:54 +0200)] 
BSD: Use MSG_DONTROUTE for unicast packets on FreeBSD

BSD systems cannot use SO_DONTROUTE, because it does not work properly
with multicast packets (perhaps it tries to find iface based on multicast
group address). But we can use MSG_DONTROUTE sendmsg() flag for unicast
packets. Works on FreeBSD, is ignored on OpenBSD and is broken on NetBSD
(i guess due to integrated routing table and ARP table).

5 years agoRAdv: Fix crash during prefix change
Ondrej Zajicek (work) [Thu, 19 Jul 2018 18:54:10 +0000 (20:54 +0200)] 
RAdv: Fix crash during prefix change

Thanks to Julian Schuh for the bugreport.

5 years agoOSPF: Fix crash during route removal
Ondrej Zajicek (work) [Thu, 19 Jul 2018 18:48:13 +0000 (20:48 +0200)] 
OSPF: Fix crash during route removal

The bug was introduced by an earler patch which removed additional eattr
argument to rt_notify hook.

5 years agoNest: Fix race condition during reconfiguration, part 2
Ondrej Zajicek (work) [Fri, 6 Jul 2018 00:04:45 +0000 (02:04 +0200)] 
Nest: Fix race condition during reconfiguration, part 2

If export filter is changed during reconfiguration and a route disappears
between reconfiguration and refeed (e.g., if the route is a static route
also removed during the reconfiguration), the route is not withdrawn.

The issue was fixed for regular channels by an earlier patch. This patch
fixes the issue for channels in RA_ACCEPTED mode (first-pass-the-filter),
used by BGP with 'secondary' option.

5 years agoCleanup some warnings
Ondrej Zajicek (work) [Tue, 3 Jul 2018 16:08:35 +0000 (18:08 +0200)] 
Cleanup some warnings

5 years agoNest: Fix race condition during reconfiguration
Ondrej Zajicek (work) [Tue, 3 Jul 2018 15:52:51 +0000 (17:52 +0200)] 
Nest: Fix race condition during reconfiguration

If export filter is changed during reconfiguration and a route disappears
between reconfiguration and refeed (e.g., if the route is a static route
also removed during the reconfiguration), the route is not withdrawn.
The patch fixes that by adding tx reconfiguration timestamp.

5 years agoBGP: Use implicit-NULL label when announcing MPLS routes with local next-hop
Ondrej Zajicek (work) [Sat, 30 Jun 2018 23:03:16 +0000 (01:03 +0200)] 
BGP: Use implicit-NULL label when announcing MPLS routes with local next-hop

We currently cannot assing local labels, but we can still be LSP egress
router. Therefore when we announce labeled route with local next-hop, we
should announce implicit-NULL label instead of rejecting it completely.

5 years agoBGP: Fix parsing of MPLS withdrawals
Ondrej Zajicek (work) [Sat, 30 Jun 2018 22:43:24 +0000 (00:43 +0200)] 
BGP: Fix parsing of MPLS withdrawals

RFC 3107 was bit vague with regard to labeled withdrawals, RFC 8277
clarified that. The old code was incompatible with some implementations,
namely with Juniper.

Thanks to Vadim Fedorenko for the original patch.

5 years agoBGP: Attribute set function merged with its common counterpart
Maria Jan Matejka [Fri, 29 Jun 2018 15:23:27 +0000 (17:23 +0200)] 
BGP: Attribute set function merged with its common counterpart

5 years agoBSD: Fix of the previous commit
Ondrej Zajicek (work) [Wed, 27 Jun 2018 15:08:59 +0000 (17:08 +0200)] 
BSD: Fix of the previous commit

5 years agoNest: Neighbor cache cleanups
Ondrej Zajicek (work) [Wed, 27 Jun 2018 14:51:53 +0000 (16:51 +0200)] 
Nest: Neighbor cache cleanups

Simplify neighbor cache code, fix several minor bugs, and improve
handling of ONLINK flag.

5 years agoAutotools: updated config.guess and config.sub
Maria Matejka [Mon, 23 Apr 2018 13:59:02 +0000 (15:59 +0200)] 
Autotools: updated config.guess and config.sub

Updated to version 63b4ce2e8c28aee6a32133e400436e4ca885215a
from git://git.savannah.gnu.org/config.git

Previous version was 93b5037172b15ad28952481933517f1ba93d125b

5 years agoAndroid: check for extra libs needed for build
Maria Matejka [Mon, 23 Apr 2018 13:54:20 +0000 (15:54 +0200)] 
Android: check for extra libs needed for build

5 years agoDoc: renamed progdoc files Doc -> progdoc to fix collision with doc/ folder on case...
Maria Matejka [Mon, 23 Apr 2018 09:29:13 +0000 (11:29 +0200)] 
Doc: renamed progdoc files Doc -> progdoc to fix collision with doc/ folder on case-insensitive filesystems

5 years agoConfig: Dropping CF_ADDTO.
Jan Maria Matejka [Tue, 26 Jun 2018 12:29:03 +0000 (14:29 +0200)] 
Config: Dropping CF_ADDTO.

5 years agoFilter: fixed eattr cached pointer
Jan Maria Matejka [Tue, 19 Jun 2018 14:16:08 +0000 (16:16 +0200)] 
Filter: fixed eattr cached pointer

Use ACCESS_RTE to guard **f_rte, use ACCESS_EATTRS to guard **f_eattrs.
Use f_rta_cow() before writing to rta or eattrs, use f_rte_cow() before
writing preference (stored in rte).

Do not access eattrs indirectly through (*f_rte)->attrs->eattrs, it is
way too slow. The cached pointer is faster.

5 years agoMerge branch 'int-new' into HEAD
Jan Maria Matejka [Tue, 19 Jun 2018 12:32:16 +0000 (14:32 +0200)] 
Merge branch 'int-new' into HEAD

5 years agoBabel: Fix handling of missing IPv4 next hops
Ondrej Zajicek (work) [Wed, 13 Jun 2018 13:22:29 +0000 (15:22 +0200)] 
Babel: Fix handling of missing IPv4 next hops

In case of missing IPv4 next hop, we should skip such routes
on transmit and ignore such routes on receive.

Thanks to Julian Schuh for the bugreport and Toke Hoiland-Jorgensen
for the original patch.

5 years agoBGP: Handle missing NEXT_HOP attribute properly
Ondrej Zajicek (work) [Wed, 13 Jun 2018 12:47:37 +0000 (14:47 +0200)] 
BGP: Handle missing NEXT_HOP attribute properly

RFC 7606 specifies handle-as-withdraw instead of session reset.

5 years agoNest: Removing separate tmpa from route propagation
Jan Maria Matejka [Tue, 29 May 2018 10:08:12 +0000 (12:08 +0200)] 
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
the route itself.

This led to some confusion, quirks, and strange filter code that handled
extended route attributes. Dropping it now.

The protocol interface has changed in an uniform way -- the
`struct ea_list *attrs` argument has been removed from store_tmp_attrs(),
import_control(), rt_notify() and get_route_info().

5 years agoOSPF: Fix invalid NSSA RFC references
Ondrej Zajicek (work) [Tue, 29 May 2018 12:23:14 +0000 (14:23 +0200)] 
OSPF: Fix invalid NSSA RFC references

5 years agoProtocol: Introducing an enum protocol_class
Jan Maria Matejka [Mon, 7 May 2018 12:47:00 +0000 (14:47 +0200)] 
Protocol: Introducing an enum protocol_class

This supersedes the EAP_* constants.

5 years agoFilter: macro for recursive interpretation of instructions
Jan Maria Matejka [Wed, 2 May 2018 10:34:35 +0000 (12:34 +0200)] 
Filter: macro for recursive interpretation of instructions

5 years agoFilter: Simple type checks converted to ARG() macro
Jan Maria Matejka [Mon, 30 Apr 2018 14:06:53 +0000 (16:06 +0200)] 
Filter: Simple type checks converted to ARG() macro

5 years agoFilter: Removing the third argument hack
Jan Maria Matejka [Mon, 30 Apr 2018 11:29:05 +0000 (13:29 +0200)] 
Filter: Removing the third argument hack

Just to make the code a bit more clean and easier to maintain.

5 years agoFilter: instruction names
Jan Maria Matejka [Mon, 30 Apr 2018 10:49:22 +0000 (12:49 +0200)] 
Filter: instruction names

5 years agoFilter: Instruction codes linearized
Jan Maria Matejka [Mon, 30 Apr 2018 10:39:32 +0000 (12:39 +0200)] 
Filter: Instruction codes linearized

5 years agoMacro: Added a bunch of dirty C preprocessor tricks
Jan Maria Matejka [Mon, 30 Apr 2018 10:20:04 +0000 (12:20 +0200)] 
Macro: Added a bunch of dirty C preprocessor tricks

Included are Makefile implicit rules to show the preprocessed source.
When debugging something around this, it may be handy.

5 years agoDo not initialize route metrics in import_control hook
Ondrej Zajicek (work) [Thu, 24 May 2018 12:51:05 +0000 (14:51 +0200)] 
Do not initialize route metrics in import_control hook

During route export, the receiving protocol often initialized route
metrics to default value in its import_control hook before export filter
was executed. This is inconsistent with the expectation that an export
filter would process the same route as one in the routing table and it
breaks setting these metrics before (e.g. for static routes directly in
static protocol).

The patch removes the initialization of route metrics in import_control
hook, the default values are already handled in rt_notify hook called
after export filters.

The patch also changed the behavior of OSPF to keep metrics when a route
is reannounced between OSPF instances (to be consistent with other
protocols) and the behavior when both ospf_metric1 and ospf_metric2
are specified (to have more expected behavior).

5 years agoFilter: Add support for src filter op to access SADR source prefix
Ondrej Zajicek (work) [Wed, 16 May 2018 09:19:29 +0000 (11:19 +0200)] 
Filter: Add support for src filter op to access SADR source prefix

The patch allows to use 'net.src' to access SADR source prefix
from filters.

Thanks to Toke Hoiland-Jorgensen for the original patch for srclen.

6 years agoBetter initialization of random generator
Ondrej Zajicek (work) [Thu, 3 May 2018 15:07:39 +0000 (17:07 +0200)] 
Better initialization of random generator

Use full time precision to initialize random generator. The old
code was prone to initialize it to the same values in specific
circumstances (boot without RTC, multiple VMs starting at once).

6 years agoBabel: Add option to randomize router ID
Ondrej Zajicek (work) [Thu, 3 May 2018 14:55:11 +0000 (16:55 +0200)] 
Babel: Add option to randomize router ID

When a Babel node restarts, it loses its sequence number, which can cause
its routes to be rejected by peers until the state is cleared out by other
nodes in the network (which can take on the order of minutes).

There are two ways to fix this: Having stable storage to keep the sequence
number across restarts, or picking a different router ID each time.

This implements the latter, by introducing a new option that will cause
BIRD to randomize a high 32 bits of router ID every time it starts up.
This avoids the problem at the cost of not having stable router IDs in
the network.

Thanks to Toke Hoiland-Jorgensen for the patch.

6 years agoBabel: Fix type of route entry router ID
Ondrej Zajicek (work) [Thu, 3 May 2018 14:02:29 +0000 (16:02 +0200)] 
Babel: Fix type of route entry router ID

The router ID being assigned to routes was a uint, which discards the
upper 32 bits. This also has the nice side effect of echoing the wrong
router ID back to other routers.

Thanks to Toke Hoiland-Jorgensen for the patch.

6 years agoMakefile: Only set git version if BIRD is build from its repository.
Jan Maria Matejka [Thu, 3 May 2018 09:14:49 +0000 (11:14 +0200)] 
Makefile: Only set git version if BIRD is build from its repository.

Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for reporting this bug.

6 years agoFilter: Added missing instruction comparators.
Jan Maria Matejka [Fri, 27 Apr 2018 12:38:41 +0000 (14:38 +0200)] 
Filter: Added missing instruction comparators.

These instructions caused SIGABORTs on reconfiguration.

6 years agoOSPF: Support of authentication trailer for OSPFv3
Ondrej Zajicek (work) [Wed, 25 Apr 2018 13:50:57 +0000 (15:50 +0200)] 
OSPF: Support of authentication trailer for OSPFv3

Implement RFC 7166, crypthographic authentication for OSPFv3
analogous to authentication used for OSPFv2.

6 years agoBGP: Fix extended next hop handling
Ondrej Zajicek (work) [Thu, 12 Apr 2018 14:55:56 +0000 (16:55 +0200)] 
BGP: Fix extended next hop handling

For IPv4 with extended next hop, we use MP-BGP format and therefore no
independent NEXT_HOP attribute.

Thanks to Arvin Gan for the bugreport.

6 years agoDoc: Documentation for BGP disable after cease option
Ondrej Zajicek (work) [Tue, 3 Apr 2018 15:31:45 +0000 (17:31 +0200)] 
Doc: Documentation for BGP disable after cease option

6 years agoDoc: Documentation for BGP extended next hop feature
Ondrej Zajicek (work) [Tue, 3 Apr 2018 14:53:58 +0000 (16:53 +0200)] 
Doc: Documentation for BGP extended next hop feature

Thanks to Arvin Gan for the bugreport.

6 years agoDoc: Remove some superfluous slashes
Ondrej Zajicek (work) [Sat, 24 Mar 2018 00:53:03 +0000 (01:53 +0100)] 
Doc: Remove some superfluous slashes

6 years agoAutoconf replaced by autoreconf
Ondrej Filip [Fri, 23 Mar 2018 16:24:58 +0000 (17:24 +0100)] 
Autoconf replaced by autoreconf

6 years agoDate added. v2.0.2
Ondrej Filip [Thu, 22 Mar 2018 12:30:10 +0000 (13:30 +0100)] 
Date added.

6 years agoMerge branch 'int-new' of ssh://gitlab.labs.nic.cz/labs/bird into int-new
Ondrej Filip [Thu, 22 Mar 2018 12:25:58 +0000 (13:25 +0100)] 
Merge branch 'int-new' of ssh://gitlab.labs.nic.cz/labs/bird into int-new

6 years agoNEWS and version update
Ondrej Zajicek (work) [Wed, 21 Mar 2018 14:17:56 +0000 (15:17 +0100)] 
NEWS and version update

6 years agoDoc: Minor update
Ondrej Zajicek (work) [Wed, 21 Mar 2018 15:32:51 +0000 (16:32 +0100)] 
Doc: Minor update

6 years agoDoc: Redesign default config file
Ondrej Zajicek (work) [Tue, 20 Mar 2018 18:28:26 +0000 (19:28 +0100)] 
Doc: Redesign default config file

The old one does not work with 2.0.x.

6 years agoMerge remote-tracking branch 'birdlab-tmp/int-new' into int-new
Ondrej Zajicek (work) [Mon, 19 Mar 2018 12:29:39 +0000 (13:29 +0100)] 
Merge remote-tracking branch 'birdlab-tmp/int-new' into int-new

6 years agoNest: Fix table reconfiguration when nettype changes
Ondrej Zajicek (work) [Sun, 18 Mar 2018 12:48:47 +0000 (13:48 +0100)] 
Nest: Fix table reconfiguration when nettype changes

Thanks to Toke Hoiland-Jorgensen for the bugreport.

6 years agoNest: SADR support for Direct
Ondrej Zajicek (work) [Sun, 18 Mar 2018 01:56:51 +0000 (02:56 +0100)] 
Nest: SADR support for Direct

6 years agoDoc: SADR documentation
Ondrej Zajicek (work) [Sat, 17 Mar 2018 21:25:06 +0000 (22:25 +0100)] 
Doc: SADR documentation

6 years agoDoc: Update BGP documentation
Ondrej Zajicek (work) [Sat, 17 Mar 2018 16:14:02 +0000 (17:14 +0100)] 
Doc: Update BGP documentation

Thanks to Joshua McQuistan for the bugreport.

6 years agoMerge branch 'master' into int-new
Jan Maria Matejka [Wed, 14 Mar 2018 11:57:16 +0000 (12:57 +0100)] 
Merge branch 'master' into int-new

6 years agoFilter: make bgpmask literals real constructors
Jan Maria Matejka [Wed, 28 Feb 2018 15:57:50 +0000 (16:57 +0100)] 
Filter: make bgpmask literals real constructors

The bgpmask literals can include expressions. This is OK but they have
to be interpreted as soon as the code is run, not in the time the code
is used as value.

This led to strange behavior like rewriting bgpmasks when they shan't
be rewritten:

function mask_generator(int as)
{
return [= * as * =];
}

function another()
bgpmask m1;
bgpmask m2;
{
m1 = mask_generator(10);
m2 = mask_generator(20);
if (m1 == m2) {
print("strange"); # this would happen
}
}

Moreover, sending this to CLI would cause stack overflow and knock down the
whole BIRD, as soon as there is at least one route to execute the given
filter on.

show route filter bgpmask mmm; bgppath ppp; { ppp = +empty+; mmm = [= (ppp ~ mmm) =]; print(mmm); accept; }

The magic match operator (~) inside the bgpmask literal would try to
resolve mmm, which points to the same bgpmask so it would resolve
itself, call the magic match operator and vice versa.

After this patch, the bgpmask literal will get resolved as soon as it's
assigned to mmm and it also will return a type error as bool is not
convertible to ASN in BIRD.

6 years agoMerge branch 'master' into int-new
Jan Maria Matejka [Tue, 13 Mar 2018 16:02:49 +0000 (17:02 +0100)] 
Merge branch 'master' into int-new

6 years agoFilters: Removed FI_COMMA, not used for 19 years.
Jan Maria Matejka [Tue, 13 Mar 2018 11:08:37 +0000 (12:08 +0100)] 
Filters: Removed FI_COMMA, not used for 19 years.

This instruction was removed in the commit linked below
and never used ever again. Rest in peace.

commit 84c7e1943f0dbf896b1dd8d02a21120aa00463f4
Author: Pavel Machek <pavel@ucw.cz>
Date:   Tue Mar 2 19:49:28 1999 +0000

6 years agoMerge branch 'master' into int-new
Jan Maria Matejka [Tue, 13 Mar 2018 15:51:04 +0000 (16:51 +0100)] 
Merge branch 'master' into int-new

6 years agoFilter: recursion to loop
Jan Maria Matejka [Wed, 29 Nov 2017 10:38:01 +0000 (11:38 +0100)] 
Filter: recursion to loop

It was supposed to do tail-recursion in interpret() but it didn't
compile as such. Converting it to loop makes a significant filter
performance improvement for flat filters.

6 years agoFilter: Instruction codes named as enum
Maria Jan Matejka [Thu, 19 Oct 2017 10:39:44 +0000 (12:39 +0200)] 
Filter: Instruction codes named as enum

The two-letter instructions were quite messy but they could be easily
read from memory dumps. Now GDB (since 2012) supports pretty printing
enum values and GCC checks the switch construction for missing enum
values so we are converting the nice two-byte values to enums.

Anyway, the enum still keeps the old two-byte values to be able to read
the instruction codes even without GDB from plain memory dump.

6 years agoFilter: the test conf checks also a bit of BGP args
Jan Maria Matejka [Tue, 6 Mar 2018 15:04:56 +0000 (16:04 +0100)] 
Filter: the test conf checks also a bit of BGP args

Uncommented an old test.

6 years agoConfig: Dropped the ipv4:netmask4 syntax for IPv4 prefixes.
Jan Maria Matejka [Tue, 6 Mar 2018 15:03:35 +0000 (16:03 +0100)] 
Config: Dropped the ipv4:netmask4 syntax for IPv4 prefixes.

6 years agoMerge branch 'master' into int-new
Ondrej Zajicek (work) [Wed, 7 Mar 2018 16:41:49 +0000 (17:41 +0100)] 
Merge branch 'master' into int-new

6 years agoBabel: Fix build with restricted protocol set
Ondrej Zajicek (work) [Wed, 7 Mar 2018 16:35:24 +0000 (17:35 +0100)] 
Babel: Fix build with restricted protocol set

All keywords used in Babel config have to be declared locally.

Thanks to Leo Vandewoestijne for the bugreport.

6 years agoMerge branch 'int-new' of ssh://gitlab.labs.nic.cz/labs/bird into int-new
Ondrej Filip [Tue, 27 Feb 2018 05:08:03 +0000 (06:08 +0100)] 
Merge branch 'int-new' of ssh://gitlab.labs.nic.cz/labs/bird into int-new

6 years agoHandle properly enums for extended attributes
Ondrej Zajicek (work) [Tue, 13 Feb 2018 18:52:22 +0000 (19:52 +0100)] 
Handle properly enums for extended attributes

6 years agoAdd cscope Makefile target
Ondrej Zajicek (work) [Tue, 13 Feb 2018 16:00:24 +0000 (17:00 +0100)] 
Add cscope Makefile target

For those who prefer cscope to etags

Thanks to Toke Hoiland-Jorgensen for the patch.

6 years agoBabel: Fix accidental bitwise or assignment
Ondrej Zajicek (work) [Tue, 13 Feb 2018 15:42:03 +0000 (16:42 +0100)] 
Babel: Fix accidental bitwise or assignment

Fix an accidental bitwise or assignment that was supposed to be a
comparison.

Thanks to Toke Hoiland-Jorgensen for the patch.

6 years agoBabel: Add source-specific routing support
Ondrej Zajicek (work) [Tue, 13 Feb 2018 15:39:36 +0000 (16:39 +0100)] 
Babel: Add source-specific routing support

This patch adds support for source-specific routing to the Babel protocol.
It changes the protocol to support both NET_IP6 and NET_IP6_SADR channels
for IPv6 addresses. If only a NET_IP6 channel is configured,
source-specific updates are ignored. Otherwise, non-source-specific
routes are simply treated as source-specific routes with SADR prefix 0.

Thanks to Toke Hoiland-Jorgensen for the original patch.
Minor changes by Ondrej Santiago Zajicek.

6 years agoAdd support for source-specific IPv6 routes to BIRD core
Ondrej Zajicek (work) [Tue, 13 Feb 2018 15:27:57 +0000 (16:27 +0100)] 
Add support for source-specific IPv6 routes to BIRD core

This patch adds support for source-specific IPv6 routes to BIRD core.
This is based on Dean Luga's original patch, with the review comments
addressed. SADR support is added to network address parsing in confbase.Y
and to the kernel protocol on Linux.

Currently there is no way to mix source-specific and non-source-specific
routes (i.e., SADR tables cannot be connected to non-SADR tables).

Thanks to Toke Hoiland-Jorgensen for the original patch.
Minor changes by Ondrej Santiago Zajicek.

6 years agoNest: Trivial whitespace cleanup
Ondrej Zajicek (work) [Tue, 6 Feb 2018 16:43:55 +0000 (17:43 +0100)] 
Nest: Trivial whitespace cleanup

6 years agoKRT: Fix IPv6 route learn
Ondrej Zajicek (work) [Tue, 6 Feb 2018 15:08:45 +0000 (16:08 +0100)] 
KRT: Fix IPv6 route learn

Internal table used for route learn was created with non-matching net
type for IPv6 kernel proto.

Thanks to Toke Hoiland-Jorgensen for the bugreport

6 years agoNest: Fix corner case in recursive next hop lookup
Ondrej Zajicek (work) [Mon, 29 Jan 2018 11:49:37 +0000 (12:49 +0100)] 
Nest: Fix corner case in recursive next hop lookup

Thanks to Svenne Krap for the bugreport.

6 years agoNest: remove duplicate function
Ondrej Zajicek (work) [Wed, 24 Jan 2018 12:55:12 +0000 (13:55 +0100)] 
Nest: remove duplicate function

6 years agoMerge branch 'master' into int-new
Ondrej Zajicek (work) [Tue, 23 Jan 2018 17:29:32 +0000 (18:29 +0100)] 
Merge branch 'master' into int-new

6 years agoIO: Fix socket priority
Ondrej Zajicek (work) [Tue, 23 Jan 2018 16:05:45 +0000 (17:05 +0100)] 
IO: Fix socket priority

On Linux, setting the ToS will also set the priority and the range of
accepted values is quite limited (masked by 0x1e). Therefore, 0xc0 is
translated to a priority of 0, not something we want, overriding the
"7" priority which was set previously explicitely. To avoid that, just
move setting priority later in the code.

Thanks to Vincent Bernat for the patch.

6 years agoKRT: Fix option 'merge paths'
Ondrej Zajicek (work) [Tue, 23 Jan 2018 14:12:43 +0000 (15:12 +0100)] 
KRT: Fix option 'merge paths'

6 years agoKRT: Remove useless option
Ondrej Zajicek (work) [Tue, 23 Jan 2018 13:48:07 +0000 (14:48 +0100)] 
KRT: Remove useless option

6 years agoDoc: Fix example
Ondrej Zajicek (work) [Tue, 23 Jan 2018 13:26:18 +0000 (14:26 +0100)] 
Doc: Fix example

6 years agoPipe: show export state
Jan Maria Matejka [Tue, 16 Jan 2018 15:10:13 +0000 (16:10 +0100)] 
Pipe: show export state

6 years agoPipe: fixed template bug
Jan Maria Matejka [Tue, 16 Jan 2018 13:46:06 +0000 (14:46 +0100)] 
Pipe: fixed template bug

When pipe inherited from template, every channel config was lost.

6 years agoBGP: Implement 'disable after cease' option
Ondrej Zajicek (work) [Tue, 16 Jan 2018 18:17:04 +0000 (19:17 +0100)] 
BGP: Implement 'disable after cease' option

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

6 years agoFilter: Allow silent filter execution
Ondrej Zajicek (work) [Tue, 16 Jan 2018 15:20:01 +0000 (16:20 +0100)] 
Filter: Allow silent filter execution

A filter should log messages only if executed explicitly (e.g., during
route export or route import). When a filter is executed for technical
reasons (e.g., to establish whether a route was exported before), it
should run silently.

6 years agoError in version guessing v2.0.1
Ondrej Filip [Tue, 16 Jan 2018 13:36:46 +0000 (14:36 +0100)] 
Error in version guessing

6 years agoAdd note to NEWS
Ondrej Zajicek (work) [Tue, 16 Jan 2018 13:18:57 +0000 (14:18 +0100)] 
Add note to NEWS

6 years agoNotice about RFC 8212 added
Ondrej Filip [Tue, 16 Jan 2018 09:45:03 +0000 (10:45 +0100)] 
Notice about RFC 8212 added

6 years agoBGP: Require explicit import and export policies for EBGP channels
Ondrej Zajicek (work) [Tue, 16 Jan 2018 03:14:49 +0000 (04:14 +0100)] 
BGP: Require explicit import and export policies for EBGP channels

To comply with RFC 8212 requirements.

6 years agoNEWS and version update
Ondrej Zajicek (work) [Sun, 14 Jan 2018 20:52:58 +0000 (21:52 +0100)] 
NEWS and version update

6 years agoKRT: Fix direct routes for BSD
Ondrej Zajicek (work) [Sun, 14 Jan 2018 13:30:38 +0000 (14:30 +0100)] 
KRT: Fix direct routes for BSD

Old way to set direct routes is to use local IP as gateway, but that does
not work properly on newer FreeBSDs. Now we use sockaddr_dl containing
interface index as gateway.

6 years agoUse non-fatal asserts even for regular build
Ondrej Zajicek (work) [Wed, 10 Jan 2018 15:17:37 +0000 (16:17 +0100)] 
Use non-fatal asserts even for regular build

6 years agoNest: Allow modification of channels inherited from templates
Ondrej Zajicek (work) [Tue, 9 Jan 2018 17:42:22 +0000 (18:42 +0100)] 
Nest: Allow modification of channels inherited from templates

Multiple definitions of same channels are forbidden, but inherited
channel can be redefined. In such case channel options are merged.

6 years agoMoved freebsd cflags and ldflags to configure
Jan Maria Matejka [Tue, 9 Jan 2018 15:46:00 +0000 (16:46 +0100)] 
Moved freebsd cflags and ldflags to configure

6 years agoNest: Fix filter reconfiguration
Ondrej Zajicek (work) [Tue, 9 Jan 2018 13:36:11 +0000 (14:36 +0100)] 
Nest: Fix filter reconfiguration

Function filter_same() must be called with arguments in proper order,
otherwise it breaks the new filter, causing crash during route
processing.

6 years agoFilter: Handle undefined BGP paths as empty
Ondrej Zajicek (work) [Wed, 3 Jan 2018 14:44:05 +0000 (15:44 +0100)] 
Filter: Handle undefined BGP paths as empty

The same is already done for clists. Also fixes defined() to work
properly for paths and clists.