Ondrej Zajicek (work)
830ba75e6d
Merge commit '1e8721e2aeccfbc3f533e8b8abc07582cee77e9a' into int-new
2017-12-07 21:54:47 +01:00
Jan Maria Matejka
9ba4b4a63d
Filter test: typo fix
2017-11-09 15:04:05 +01:00
Michal 'vorner' Vaner
2a95e63343
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
RAdv like to regular routing protocols.
Some cleanups, bugfixes and other changes done by Ondrej Zajicek.
2017-10-04 16:27:02 +02:00
Michal 'vorner' Vaner
5a8b1fb047
filter: Allow assigning enums into extended attributes
...
They are internally ints, but they got refused as a wrong type. This
fixes setting of the BGP origin and is also needed for RA.
2017-09-20 15:36:54 +02:00
Ondrej Zajicek (work)
69f7399247
Merge branch 'master' into int-new
2017-08-09 12:46:27 +02:00
Ondrej Zajicek (work)
e46128fb50
Filters: Do not clamp EC set values to 16 bit for EC_GENERICs
...
Thanks to Lennert Buytenhek <buytenh@wantstofly.org> for the patch.
2017-06-19 12:46:40 +02:00
Ondrej Zajicek (work)
6aaaa63519
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.
2017-05-23 17:40:19 +02:00
Jan Moskyto Matejka
05d47bd53e
Linpool: default allocation size
2017-05-16 15:34:57 +02:00
Ondrej Zajicek (work)
751fb2366c
Test: Fix broken test for filters
2017-04-26 14:11:28 +02:00
Jan Moskyto Matejka
69fddac052
Merge branch 'int-new' of gitlab.labs.nic.cz:labs/bird into int-new
2017-04-26 12:30:22 +02:00
Jan Moskyto Matejka
2af807a83f
Test: fixed broken test for VPN RD output
2017-04-26 12:19:39 +02:00
Ondrej Zajicek (work)
6f535924eb
Filter: Fix reconfiguration of roa_check()
2017-04-18 13:56:51 +02:00
Jan Moskyto Matejka
61e501da89
Filter: Check whether IP is 4 or 6
2017-03-22 14:53:37 +01:00
Ondrej Zajicek (work)
a5d2a34497
Minor cleanups
...
BTW, 'prefices' is hypercorrection, as 'prefix' is from 'praefixum' with
plural 'praefixa'.
2017-03-14 17:25:42 +01:00
Jan Moskyto Matejka
8c9986d310
Filters: VPN Route Distinguishers, Prefix Type, Docs Update
2017-03-13 13:51:20 +01:00
Jan Moskyto Matejka
54334b5667
Filter: ROA check test and mixed prefix test
2017-03-09 15:57:54 +01:00
Jan Moskyto Matejka
c609d03986
Merge branch 'int-new' into nexthop-merged
2017-02-22 11:58:04 +01:00
Ondrej Zajicek (work)
62e64905b7
Several minor fixes
2017-02-20 02:26:45 +01:00
Ondrej Zajicek (work)
c259669fa3
Merge branch 'master' into int-new
2017-02-08 14:34:48 +01:00
Ondrej Zajicek (work)
da65a3d898
Filter: Fix missing case for !~ operator
...
Thanks to Vincent Bernat for the patch.
2017-01-24 15:35:38 +01:00
Jan Moskyto Matejka
5b208e296f
Removing (struct rta)->cast. Never used.
2016-12-22 13:09:59 +01:00
Jan Moskyto Matejka
4e276a8920
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
IPA_ZERO(a->nh.gw), RTD_ROUTER is then IPA_NONZERO(a->nh.gw).
From now on, we also explicitely want C99 compatible compiler. We assume
that this 20-year norm should be known almost everywhere.
2016-12-22 13:01:06 +01:00
Ondrej Zajicek (work)
77234bbbde
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.
2016-12-07 15:54:19 +01:00
Jan Moskyto Matejka
ad88b94bca
Merge branch 'int-new-rpki-squashed' (early part) into int-new
2016-12-07 15:30:46 +01:00
Ondrej Zajicek (work)
d15b0b0a1b
BGP redesign
...
Integrated and extensible BGP with generalized AFI handling,
support for IPv4+IPv6 AFI and unicast+multicast SAFI.
2016-12-07 14:20:52 +01:00
Pavel Tvrdik
cd6ca9b1f6
filter/test.conf: add ROA check and operator tests
2016-12-07 09:35:24 +01:00
Pavel Tvrdik
e58f8c28d2
Add `.maxlen' operator to all ROA prefixes in filters
...
Example:
bird> eval (1.2.0.0/16 max 20 as 1234).maxlen
20
Todo: Should be described in user docs
2016-12-07 09:35:24 +01:00
Pavel Tvrdik
69ae578450
Add `.asn' operator to all ROA prefixes in filters
...
Example:
bird> eval (1.2.0.0/16 max 20 as 1234).asn
1234
Todo: Should be described in user docs
2016-12-07 09:35:24 +01:00
Pavel Tvrdík
65d2a88dd2
RPKI protocol with one cache server per protocol
...
The RPKI protocol (RFC 6810) using the RTRLib
(http://rpki.realmv6.org/ ) that is integrated inside
the BIRD's code.
Implemeted transports are:
- unprotected transport over TCP
- secure transport over SSHv2
Example configuration of bird.conf:
...
roa4 table r4;
roa6 table r6;
protocol rpki {
debug all;
# Import both IPv4 and IPv6 ROAs
roa4 { table r4; };
roa6 { table r6; };
# Set cache server (validator) address,
# overwrite default port 323
remote "rpki-validator.realmv6.org" port 8282;
# Overwrite default time intervals
retry 10; # Default 600 seconds
refresh 60; # Default 3600 seconds
expire 600; # Default 7200 seconds
}
protocol rpki {
debug all;
# Import only IPv4 routes
roa4 { table r4; };
# Set cache server address to localhost,
# use default ports tcp => 323 or ssh => 22
remote 127.0.0.1;
# Use SSH transport instead of unprotected transport over TCP
ssh encryption {
bird private key "/home/birdgeek/.ssh/id_rsa";
remote public key "/home/birdgeek/.ssh/known_hosts";
user "birdgeek";
};
}
...
2016-12-07 09:35:24 +01:00
Pavel Tvrdik
5df4073c81
filter/test.conf: Minor changes in order of calls
2016-11-30 11:57:35 +01:00
Pavel Tvrdik
4abe781c27
Remove filter/test_bgp_filtering.conf file
...
It was an example filtering configuration from BIRD's wiki.
2016-11-30 11:57:35 +01:00
Pavel Tvrdik
012a0d6bf8
Merge test6.conf IPv6 tests into test.conf
2016-11-30 11:57:35 +01:00
Pavel Tvrdik
c39a1cb17e
filter/test.conf: Extend tests
2016-11-16 17:01:09 +01:00
Pavel Tvrdik
0ed1e85091
filter/test.conf: Reorder tests
...
Tests are sorted from trivial tests to more complex tests
2016-11-16 13:46:43 +01:00
Pavel Tvrdik
7dea7ccb10
filter/test.conf: Replace print func with assert and format
2016-11-16 12:22:01 +01:00
Pavel Tvrdik
4b135d0958
Birdtest: Add function format in grammar for stringify expression
2016-11-16 12:22:01 +01:00
Pavel Tvrdik
3ec0bedc60
Birdtest: Remove bt_assert command from term
...
The bt_assert function does not return any value, so it was useless to
have a option in term definition.
2016-11-16 12:22:01 +01:00
Pavel Tvrdik
5e3cd0e5b5
Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0
2016-11-11 17:43:09 +01:00
Pavel Tvrdik
fd328869cc
birdtest: Fix no-forked mode in trie_test
2016-11-11 17:02:16 +01:00
Ondrej Zajicek (work)
101c5a50aa
Filter: Add long community tests
...
Based on Pavel Tvrdik's int-test-lc branch.
2016-11-09 19:09:24 +01:00
Ondrej Zajicek (work)
9b0a0ba9e6
Unit Testing for BIRD
...
- Unit Testing Framework (BirdTest)
- Integration of BirdTest into the BIRD build system
- Tests for several BIRD modules
Based on squashed Pavel Tvrdik's int-test branch, updated for
current int-new branch.
2016-11-09 16:36:34 +01:00
Ondrej Zajicek (work)
8860e991f6
Merge branch 'master' into int-new
2016-11-08 19:27:58 +01:00
Ondrej Zajicek (work)
c8cafc8ebb
Minor code cleanups
2016-11-08 17:46:29 +01:00
Ondrej Zajicek (work)
cc5b93f72d
Merge tag 'v1.6.2' into int-new
2016-11-08 17:04:29 +01:00
Jan Moskyto Matejka
3e236955c9
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.
2016-11-01 14:52:54 +01:00
Ondrej Zajicek (work)
c68e8cd374
Filter: Minor formatting changes in test.conf
2016-10-18 13:06:51 +02:00
Pavel Tvrdik
5fd7dacadc
Filter: Expand testing of large community sets
2016-10-13 15:17:41 +02:00
Pavel Tvrdik
c2564d34af
Tree/Trie: Check the end of buffer
...
We set buffer->pos to buffer->end in function buffer_print() when
bvsnprintf() failed, so there would be uninitialized memory between
the old buffer->pos and the current buffer->pos.
2016-10-11 21:25:21 +02:00
Ondrej Zajicek (work)
a998836d4b
Filter: fix missing separator
2016-10-04 23:19:35 +02:00
Ondrej Zajicek (work)
60566c5c80
Filter: large community sets
...
Add support for lc sets to filter code. Grammar of (small) community sets
has to be updated to avoid parser collisions.
2016-10-03 13:47:37 +02:00