Martin Mares
9666099035
Rewritten CLI based on coroutines
...
I also moved the boundary between generic parts of the CLI and sysdep
code: the generic parts now assume that CLI runs over a socket, but
the actual creation of the socket is still kept in sysdep.
The documentation does not reflect these changes yet.
2017-07-18 23:51:09 +02:00
Martin Mares
774121633f
Co-routines moved to a separate module with sysdep implementation
2017-07-18 23:01:06 +02:00
Martin Mares
fd3d15b6b5
A simple experiment with coroutine-based CLI
2017-07-18 22:21:27 +02:00
Ondrej Zajicek (work)
a1f5e514ef
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.
2017-07-04 23:36:21 +02:00
Ondrej Zajicek (work)
801fd81efe
Merge branch 'master' into int-new
2017-05-31 14:12:03 +02:00
Ondrej Zajicek (work)
33f7fbc42d
CLI: Fix bug in symbol handling introduced in previous patches
2017-05-31 14:11:40 +02:00
Ondrej Zajicek (work)
a1dc526760
Merge branch 'master' into int-new
2017-05-25 23:37:50 +02:00
Ondrej Zajicek (work)
b7761af34d
Conf: Replace keyword and symbol hash table with generic hash table.
...
The old hash table had fixed size, which makes it slow for config files
with large number of symbols and symbol lookups. The new one is growing
according to needs.
2017-05-25 23:30:39 +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
Ondrej Zajicek (work)
734e9fb8a9
Minor cleanups and fixes
2017-05-23 13:12:25 +02:00
Jan Moskyto Matejka
05d47bd53e
Linpool: default allocation size
2017-05-16 15:34:57 +02:00
Jan Moskyto Matejka
f8d44b01df
Nest: split route show into separate file
2017-05-15 12:10:51 +02:00
Ondrej Zajicek (work)
1d21306785
Minor fixes
2017-04-29 01:24:30 +02:00
Ondrej Zajicek (work)
b29499996b
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.
2017-04-25 19:02:31 +02:00
Ondrej Zajicek (work)
4278abfe27
Check validity of dest w.r.t. net_type
...
Allow to define static roa/flow routes without dest.
2017-04-18 13:56:40 +02:00
Jan Moskyto Matejka
3484cb9a65
Client: separate config syntax structure for "show route for"
2017-04-18 13:45:50 +02:00
Jan Moskyto Matejka
7ee07a3c39
Nest: Fix route lookup
2017-04-12 16:05:56 +02:00
Jan Moskyto Matejka
2faf519cf9
Client: multitable version of show route
2017-04-12 16:04:22 +02:00
Ondrej Zajicek (work)
1e37e35c3e
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.
2017-03-22 18:16:49 +01:00
Jan Moskyto Matejka
3c74416465
Nexthop: Fixed recursive route mpls label merging
2017-03-17 15:48:32 +01:00
Jan Moskyto Matejka
8c9986d310
Filters: VPN Route Distinguishers, Prefix Type, Docs Update
2017-03-13 13:51:20 +01:00
Ondrej Zajicek (work)
665be7f6bd
Nest: Minor fixes in show route
2017-03-09 13:47:00 +01:00
Ondrej Zajicek (work)
5ffb62dd03
Nest: Allow iface-only neighbors
2017-03-09 13:47:00 +01:00
Jan Moskyto Matejka
039a65d0e4
Nexthop: Fixed hostentry
2017-02-24 14:05:11 +01:00
Jan Moskyto Matejka
93f50ca317
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.
2017-02-22 14:11:01 +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)
5509e17d0c
BGP: Support for AS confederations (RFC 5065)
2017-01-22 16:32:42 +01:00
Ondrej Zajicek (work)
f8aad5d5b7
Minor cleanups
2017-01-03 16:30:27 +01:00
Jan Moskyto Matejka
d47c3d64b2
MPLS: Label stack concatenation for recursive routes
2016-12-22 21:38:33 +01:00
Jan Moskyto Matejka
d14f8c3c45
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.
2016-12-22 21:38:33 +01:00
Jan Moskyto Matejka
f2010f9c65
Static: Protocol rework wrt. struct nexthop changes; MPLS label support
2016-12-22 21:38:33 +01:00
Jan Moskyto Matejka
ec5e5d23fa
Nexthop: Support for label stack in nest
2016-12-22 13:23:52 +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)
c42ecaab8d
Tests: Fix build
2016-12-07 16:27:12 +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
f6e8e141df
Check table type at `show route for ...'
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
0eb7f17d9a
nest/a-path.c: Fix description of BS constant (block size)
2016-11-30 11:57:35 +01:00
Ondrej Zajicek (work)
261816b0d4
BGP: Cluster list item should be prepended
...
Commit 3c09af41... changed behavior of int_set_add() from prepend to
append, which makes more sense for community list, but prepend must be
used for cluster list. Add int_set_prepend() and use it in cluster list
handling code.
2016-11-15 16:24:39 +01:00
Pavel Tvrdik
5e3cd0e5b5
Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0
2016-11-11 17:43:09 +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)
cc5b93f72d
Merge tag 'v1.6.2' into int-new
2016-11-08 17:04:29 +01:00
Ondrej Zajicek (work)
390601f038
RIP: Use message authentication interface
...
Based on former commit from Pavel Tvrdik
2016-11-02 17:53:22 +01:00
Pavel Tvrdík
56cb3bedc2
Nest: Add support for MAC algorithms in grammar
2016-11-02 16:23:53 +01:00