Commit graph

3183 commits

Author SHA1 Message Date
Ondrej Zajicek (work)
5220cb63e3 Babel: Fix pointer arithmetic in subtlv parsing
The subtlv parsing code was doing byte-based arithmetic with non-void pointers,
causing it to read beyond the end of the packet.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
2017-06-14 12:34:43 +02:00
Ondrej Zajicek (work)
145ebfa1df Babel: Parse sub-TLVs and skip TLVs with mandatory sub-TLV
RFC6126bis formally introduces sub-TLVs to the Babel protocol, including
mandatory sub-TLVs. This adds support for parsing sub-TLVs to the Babel
protocol and skips TLVs that contain mandatory sub-TLVs, as per the spec.

For details, see section 4.4 of
https://tools.ietf.org/html/draft-ietf-babel-rfc6126bis-02

Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for the patch.
2017-06-09 14:33:06 +02:00
Ondrej Zajicek (work)
b3c6273efa Babel: Implement IPv6 prefix compression on outgoing updates
Previously, the Babel protocol would never use prefix compression on outgoing
updates (but would parse it on incoming ones). This adds compression of IPv6
addresses of outgoing updates.

The compression only works to the extent that the FIB is walked in lexicographic
order; i.e. a prefix is only compressed if it shares bytes with the previous
prefix in the same packet.

Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for the patch.
2017-06-09 13:00:20 +02:00
Ondrej Zajicek (work)
300bd0eb85 Babel: Add documentation for dual-stack operation and options
This updates the documentation for the Babel protocol to mention the fact
that it now supports dual-stack operation, and adds documentation for the
new next hop options.

Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for the patch.
2017-06-09 11:56:20 +02:00
Ondrej Zajicek (work)
4324025f98 Babel: Add support for dual-stack IPv4/IPv6 operation
This adds support for dual-stack v4/v6 operation to the Babel protocol.
Routing messages will be exchanged over IPv6, but IPv4 routes can be
carried in the messages being exchanged. This matches how the reference
Babel implementation (babeld) works.

The nexthop address for v4 can be configured per interface, and will
default to the first available IPv4 address on the given interface. For
symmetry, a configuration option to configure the IPv6 nexthop address
is also added.

Thanks to Toke Høiland-Jørgensen <toke@toke.dk> for the patch.
2017-06-08 12:18:16 +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)
77810030d2 Merge branch 'master' into int-new 2017-05-30 14:44:37 +02:00
Ondrej Zajicek (work)
4fec43067e Workaround for older bisons 2017-05-30 14:43:49 +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)
4b2aef8857 Merge branch 'master' into int-new 2017-05-23 18:45:33 +02:00
Ondrej Zajicek (work)
c72b660b74 Client: Fix isspace() calls
Function isspace() expects to get *unsigned* chars (encoded as ints),
not that it matters for plain ASCII.
2017-05-23 18:39:20 +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
Pavel Tvrdik
0705a1c565 Add a hint for an invalid IP prefix
bird> eval 200.210.220.0/16
Invalid IPv4 prefix 200.210.220.0/16, maybe you wanted 200.210.0.0/16

bird> eval 1000:2000::/8
Invalid IPv6 prefix 1000:2000::/8, maybe you wanted 1000::/8
2017-05-23 15:59:27 +02:00
Ondrej Zajicek (work)
734e9fb8a9 Minor cleanups and fixes 2017-05-23 13:12:25 +02:00
Ondrej Zajicek (work)
bb7aa06a48 Fix type mixing in flowspec formatting
Variable of u64 type was passed to vararg function as uint.
2017-05-19 00:36:37 +02:00
Ondrej Zajicek (work)
e521150b8f Fix VPN-RD parsing on 32-bit systems
When shift count >= width of type the behavior is undefined.
2017-05-18 14:51:36 +02:00
Ondrej Zajicek (work)
5a9169e152 Merge branch 'master' into int-new 2017-05-18 14:28:03 +02:00
Ondrej Zajicek (work)
78e4dac993 Fix some forgotten warnings 2017-05-18 14:26:57 +02:00
Ondrej Zajicek (work)
7d5e61a66a Fix of the previous fix
Avoid empty macro argument to avoid default behavior.
2017-05-18 13:29:38 +02:00
Ondrej Zajicek (work)
271fa063a3 Fix minor bug in configure script
Space in action branch breaks build on some platforms.
2017-05-18 12:05:09 +02:00
Ondrej Zajicek (work)
9b701e69cc Merge branch 'master' into int-new 2017-05-17 17:37:27 +02:00
Ondrej Zajicek (work)
d6e01ff900 Fix of the previous commit 2017-05-17 17:30:23 +02:00
Ondrej Zajicek (work)
dab6706aba History lib may be integrated to Readline lib 2017-05-17 17:03:36 +02:00
Ondrej Zajicek (work)
81edd3b3a7 Fix build on systems with dirty headers 2017-05-17 16:21:58 +02:00
Ondrej Zajicek (work)
d19617f06b Merge remote-tracking branch 'origin/int-new' into int-new 2017-05-17 14:50:00 +02:00
Ondrej Zajicek (work)
144c10fad1 Merge branch 'master' into int-new 2017-05-17 14:38:04 +02:00
Ondrej Zajicek (work)
a01e951d0f One more configure cleanup
Simplify BIRD client library checks, add proper devel header checks and
prefer dependency on just tinfo than full ncurses.
2017-05-17 13:17:40 +02:00
Jan Moskyto Matejka
31874783c4 Client: manipulate history only if interactive 2017-05-16 15:48:08 +02:00
Jan Moskyto Matejka
05d47bd53e Linpool: default allocation size 2017-05-16 15:34:57 +02:00
Jan Moskyto Matejka
b880e3ffae Bird readline client saves its history. 2017-05-16 15:34:57 +02:00
Ondrej Zajicek (work)
1c5b4c5d5b Merge branch 'master' into int-new 2017-05-16 14:56:01 +02:00
Ondrej Zajicek (work)
b845ea097c Remove autoconf macros for time_t and alignment
Replaced by constant compile-time expressions. CPU_STRUCT_ALIGN is not
really correct, but is consistent with the old behavior.
2017-05-16 13:05:00 +02:00
Ondrej Zajicek (work)
b81a73d1fb Minor autoconf cleanups
Make indentation and quotation consistent in configure macros.
Also remove --with-sysinclude option, which was broken for 7 years
and nobody complained.

Thanks to Ruben Kerkhof for source patches.
2017-05-16 13:04:02 +02:00
Ondrej Zajicek (work)
e40542ef3a Minor autoconf cleanup and documentation update 2017-05-16 12:59:22 +02:00
Ondrej Zajicek (work)
c253ec3a9c Some more autoconf cleanups
Replace integer type width detection with C99 fixed-width types.
Also remove some unused or obsolete code.

Thanks to Ruben Kerkhof for the patchset.
2017-05-16 12:59:22 +02:00
Jan Moskyto Matejka
f8d44b01df Nest: split route show into separate file 2017-05-15 12:10:51 +02:00
Ondrej Zajicek (work)
fd1f355b7b Merge branch 'master' into int-new 2017-05-09 17:37:38 +02:00
Ondrej Zajicek (work)
71652572e3 Minor autoconf cleanup and documentation update 2017-05-09 16:46:41 +02:00
Ondrej Zajicek (work)
525a88d879 Merge branch 'master' into int-new 2017-05-09 14:48:21 +02:00
Ondrej Zajicek (work)
5d6dc93043 Some more autoconf cleanups
Replace integer type width detection with C99 fixed-width types.
Also remove some unused or obsolete code.

Thanks to Ruben Kerkhof for the patchset.
2017-05-09 13:45:26 +02:00
Ondrej Zajicek (work)
95639d9577 Device: Fix option 'primary' 2017-05-03 12:56:17 +02:00
Ondrej Zajicek (work)
8e25f7d229 One last update to NEWS and example 2017-04-29 22:14:36 +02:00
Ondrej Zajicek (work)
92a85089b8 NEWS and version update 2017-04-29 21:49:13 +02:00
Ondrej Zajicek (work)
b644a490f0 BSD: Fix address scan on OpenBSD 2017-04-29 18:37:51 +02:00
Ondrej Zajicek (work)
1d21306785 Minor fixes 2017-04-29 01:24:30 +02:00
Ondrej Zajicek (work)
e919601aaf Merge master into int-new 2017-04-28 11:19:12 +02:00
Ondrej Zajicek (work)
5ca4bd5d90 Flowspec: Max tcp mask length is 12 bits 2017-04-26 17:13:45 +02:00
Ondrej Zajicek (work)
a1de692a69 Doc: BIRD example update 2017-04-26 14:38:19 +02:00