]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
6 years agoOne more configure cleanup
Ondrej Zajicek (work) [Wed, 17 May 2017 11:17:40 +0000 (13:17 +0200)] 
One more configure cleanup

Simplify BIRD client library checks, add proper devel header checks and
prefer dependency on just tinfo than full ncurses.

6 years agoRemove autoconf macros for time_t and alignment
Ondrej Zajicek (work) [Wed, 10 May 2017 23:29:39 +0000 (01:29 +0200)] 
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.

6 years agoMinor autoconf cleanups
Ondrej Zajicek (work) [Tue, 9 May 2017 16:58:22 +0000 (18:58 +0200)] 
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.

6 years agoMinor autoconf cleanup and documentation update
Ondrej Zajicek (work) [Tue, 9 May 2017 14:46:41 +0000 (16:46 +0200)] 
Minor autoconf cleanup and documentation update

6 years agoSome more autoconf cleanups
Ondrej Zajicek (work) [Tue, 9 May 2017 11:44:02 +0000 (13:44 +0200)] 
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.

7 years agoSome autoconf cleanups
Ondrej Zajicek (work) [Tue, 14 Mar 2017 12:46:51 +0000 (13:46 +0100)] 
Some autoconf cleanups

The patch allows to use autoreconf, replaces some long obsolete
constructs and does some other minor cleanups. Also, the file
configure.in is renamed to configure.ac, as the old name has been
deprecated for a long time.

Thanks to Ruben Kerkhof for the patchset.

7 years agoBGP: Allow to specify interface for regular sessions
Ondrej Zajicek (work) [Tue, 14 Mar 2017 11:56:47 +0000 (12:56 +0100)] 
BGP: Allow to specify interface for regular sessions

This may be useful if multple interfaces share the same network range.

Thanks to Fritz Grimpen for the original patch.

7 years agoBGP: Fix bug in ADD_PATH
Ondrej Zajicek (work) [Sat, 11 Mar 2017 15:21:28 +0000 (16:21 +0100)] 
BGP: Fix bug in ADD_PATH

When a BGP session with ADD_PATH is restarted and the neighbor do not
announce ADD_PATH capability during reconnect, the accept_ra_types is
still set to RA_ANY.

Thanks to Lennert Buytenhek for the bugreport

7 years agoBGP: Allow exchanging LOCAL_PREF with eBGP peers
Ondrej Zajicek (work) [Thu, 23 Feb 2017 15:32:07 +0000 (16:32 +0100)] 
BGP: Allow exchanging LOCAL_PREF with eBGP peers

Adds option 'allow bgp_local_pref' to override the usual restriction of
LOCAL_PREF on eBGP sessions.

Thanks to Lennert Buytenhek for the patch.

7 years agoBGP: Update RFC references
Ondrej Zajicek (work) [Sun, 19 Feb 2017 11:02:39 +0000 (12:02 +0100)] 
BGP: Update RFC references

7 years agoDoc: Fix RIP example
Ondrej Zajicek (work) [Sun, 19 Feb 2017 10:25:16 +0000 (11:25 +0100)] 
Doc: Fix RIP example

Thanks to Steve Leung for the bugreport.

7 years agoStatic: Fix bug in static route filter expressions
Ondrej Zajicek (work) [Fri, 17 Feb 2017 21:54:06 +0000 (22:54 +0100)] 
Static: Fix bug in static route filter expressions

During reconfiguration, old and new filter expressions in static routes
are compared using i_same() function. When filter expressions contain
function calls, it is necessary that old filter expressions are the
second argument in i_same(), as it is internally modified by i_same().
Otherwise pointers to old (and freed) data appear in the config
structure.

Thanks to Lennert Buytenhek for tracking and reporting the bug.

7 years agoFilter: Fix missing case for !~ operator
Ondrej Zajicek (work) [Tue, 24 Jan 2017 14:35:38 +0000 (15:35 +0100)] 
Filter: Fix missing case for !~ operator

Thanks to Vincent Bernat for the patch.

7 years agoFix IP_HDRINCL usage on FreeBSD 11
Ondrej Zajicek (work) [Tue, 17 Jan 2017 12:21:25 +0000 (13:21 +0100)] 
Fix IP_HDRINCL usage on FreeBSD 11

FreeBSD 11 changed endianity of ip_len field from host order to network
order. Also DragonFly BSD allegedly expects network order here.

Thanks to Olivier Cochard-Labbé for the patch.

7 years agoNEWS and version update v1.6.3
Ondrej Zajicek (work) [Wed, 21 Dec 2016 15:46:47 +0000 (16:46 +0100)] 
NEWS and version update

7 years agoNetlink: fix occasional netlink hangs on busy machines
Jan Moskyto Matejka [Tue, 20 Dec 2016 19:13:08 +0000 (20:13 +0100)] 
Netlink: fix occasional netlink hangs on busy machines

7 years agoOSPF: Fix ECMP external merging
Ondrej Zajicek (work) [Thu, 15 Dec 2016 14:31:25 +0000 (15:31 +0100)] 
OSPF: Fix ECMP external merging

The variable nfa is not cleaned before each loop iteration and can have
a wrong value of nfa.nhs_reuse from the previous step.

Thanks to Bernardo Figueiredo for the bugreport and analysis.

7 years agoOSPF: Fix net-summary origination combined with stubnet option
Ondrej Zajicek (work) [Tue, 13 Dec 2016 16:34:42 +0000 (17:34 +0100)] 
OSPF: Fix net-summary origination combined with stubnet option

Stubnet nodes in OSPF FIB were removed during rt_sync(), but the pointer
remained in top_hash_entry.nf, so net-summary LSA origination was
confused, reported 'LSA ID collision' and net-summary LSAs were not
originated properly.

Thanks to Naveen Chowdary Yerramneni for bugreport and analysis.

7 years agoBGP: Fix memory leak in graceful restart code
Ondrej Zajicek (work) [Fri, 25 Nov 2016 10:51:38 +0000 (11:51 +0100)] 
BGP: Fix memory leak in graceful restart code

Prefix and bucket tables are initialized when entering established state
but not explicitly freed when leaving it (that is handled by protocol
restart). With graceful restart, BGP may enter and leave established
state multiple times without hard protocol restart causing memory leak.

7 years agoBGP: Cluster list item should be prepended
Ondrej Zajicek (work) [Tue, 15 Nov 2016 15:24:39 +0000 (16:24 +0100)] 
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.

7 years agoMinor code cleanups
Ondrej Zajicek (work) [Tue, 8 Nov 2016 16:46:29 +0000 (17:46 +0100)] 
Minor code cleanups

7 years agoAdd missing extern
Ondrej Zajicek (work) [Thu, 3 Nov 2016 08:53:53 +0000 (09:53 +0100)] 
Add missing extern

7 years agoBFD: Authentication
Ondrej Zajicek (work) [Sun, 30 Oct 2016 22:51:23 +0000 (23:51 +0100)] 
BFD: Authentication

Implement BFD authentication (part of RFC 5880). Supports plaintext
passwords and cryptographic MD5 / SHA-1 authentication.

Based on former commit from Pavel Tvrdik

7 years agoOSPF: Use message authentication interface
Ondrej Zajicek (work) [Thu, 27 Oct 2016 18:58:21 +0000 (20:58 +0200)] 
OSPF: Use message authentication interface

Based on former commit from Pavel Tvrdik

7 years agoRIP: Use message authentication interface
Ondrej Zajicek (work) [Wed, 26 Oct 2016 14:07:45 +0000 (16:07 +0200)] 
RIP: Use message authentication interface

Based on former commit from Pavel Tvrdik

7 years agoDOC: Password algorithm option
Pavel Tvrdík [Thu, 28 Jan 2016 16:05:15 +0000 (17:05 +0100)] 
DOC: Password algorithm option

7 years agoNest: Add support for MAC algorithms in grammar
Pavel Tvrdík [Tue, 26 Jan 2016 15:45:13 +0000 (16:45 +0100)] 
Nest: Add support for MAC algorithms in grammar

7 years agoAdd generic message authentication interface
Ondrej Zajicek (work) [Tue, 25 Oct 2016 15:04:17 +0000 (17:04 +0200)] 
Add generic message authentication interface

Add generic interface for generating and verifying MACs (message
authentication codes). Replace multiple HMAC implementation with
a generic one.

7 years agoBSD: Fix build on OpenBSD broken by previous commit
Ondrej Zajicek (work) [Tue, 1 Nov 2016 15:18:27 +0000 (16:18 +0100)] 
BSD: Fix build on OpenBSD broken by previous commit

7 years agoBuild: switch on -Wextra, get rid of most of the warnings
Jan Moskyto Matejka [Fri, 14 Oct 2016 13:37:04 +0000 (15:37 +0200)] 
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.

7 years agoLog: Fix broken syslog name
Ondrej Zajicek (work) [Tue, 1 Nov 2016 10:37:49 +0000 (11:37 +0100)] 
Log: Fix broken syslog name

BIRD passed string from configuration to openlog(), which kept it
internally. After reconfiguration the old string was freed, therefore
openlog had invalid copy.

Thanks to Chris Caputo for the original patch.

7 years agoIANA assigned a different number to large BGP communities - changed.
Ondrej Filip [Thu, 27 Oct 2016 09:08:28 +0000 (11:08 +0200)] 
IANA assigned a different number to large BGP communities - changed.

7 years agoFilter: Minor formatting changes in test.conf
Ondrej Zajicek (work) [Tue, 18 Oct 2016 11:06:05 +0000 (13:06 +0200)] 
Filter: Minor formatting changes in test.conf

7 years agoClist: The add() function will append a new value
Pavel Tvrdik [Thu, 13 Oct 2016 14:57:21 +0000 (16:57 +0200)] 
Clist: The add() function will append a new value

The add() function used to prepend a new community to clist, but after
this fix the add() function appends new community.

7 years agoFilter: Expand testing of large community sets
Pavel Tvrdik [Thu, 13 Oct 2016 13:17:41 +0000 (15:17 +0200)] 
Filter: Expand testing of large community sets

7 years agoFixed memory bloating on kernel merge paths together with export filter.
Jan Moskyto Matejka [Wed, 12 Oct 2016 12:16:34 +0000 (14:16 +0200)] 
Fixed memory bloating on kernel merge paths together with export filter.

Some memory was being allocated from bad linpool, not from the given one
as they should.

Thanks to Madhu and Justin Cattle for reporting this.

7 years agoDoc: Change debug to { flag1|flag2|flag3 [, ...] } style
Pavel Tvrdik [Mon, 5 Sep 2016 09:20:28 +0000 (11:20 +0200)] 
Doc: Change debug to { flag1|flag2|flag3  [, ...] } style

Thanks to Micah Anderson for bug report and Ondrej Zajicek for the idea!

7 years agoNest: Remove trailing whitespaces
Pavel Tvrdik [Mon, 19 Sep 2016 14:01:29 +0000 (16:01 +0200)] 
Nest: Remove trailing whitespaces

7 years agoDoc: Fix deprecated unescaped braces in perl script
Pavel Tvrdik [Mon, 26 Sep 2016 16:05:51 +0000 (18:05 +0200)] 
Doc: Fix deprecated unescaped braces in perl script

This commit should fix warning `make docs'

./sgml2html bird.sgml Unescaped left brace in regex is deprecated,
  passed through in regex; marked by <-- HERE in m/\\nameurl{ <-- HERE
    (.*)}{(.*)}/ at fmt_latex2e.pl line 287.

7 years agoTree/Trie: Check the end of buffer
Pavel Tvrdik [Sat, 1 Oct 2016 10:50:29 +0000 (12:50 +0200)] 
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.

7 years agoDoc: Add tag for links to RFCs
Pavel Tvrdik [Thu, 29 Sep 2016 16:08:40 +0000 (18:08 +0200)] 
Doc: Add tag for links to RFCs

7 years agoDoc: Fix inline <htmlurl></htmlurl>
Pavel Tvrdik [Mon, 3 Oct 2016 10:35:36 +0000 (12:35 +0200)] 
Doc: Fix inline <htmlurl></htmlurl>

Don't make space before or after link name.

7 years agoDoc: Do not use symlinks for files
Pavel Tvrdik [Mon, 3 Oct 2016 10:04:44 +0000 (12:04 +0200)] 
Doc: Do not use symlinks for files

7 years agoDoc: Generate one-sided version
Pavel Tvrdik [Mon, 3 Oct 2016 09:46:40 +0000 (11:46 +0200)] 
Doc: Generate one-sided version

This removes jumping offset for odd and even pages for binding book.

7 years agoDoc: Use [table t] or [table name]
Pavel Tvrdik [Mon, 3 Oct 2016 09:39:56 +0000 (11:39 +0200)] 
Doc: Use [table t] or [table name]

7 years agoDoc: Fix unnecessary special chars
Pavel Tvrdik [Mon, 3 Oct 2016 09:36:44 +0000 (11:36 +0200)] 
Doc: Fix unnecessary special chars

7 years agoDoc: Enable break lines in <tag></tag>
Pavel Tvrdik [Mon, 3 Oct 2016 08:59:43 +0000 (10:59 +0200)] 
Doc: Enable break lines in <tag></tag>

7 years agoDoc: Daemon command-line options alphabet order
Pavel Tvrdik [Mon, 3 Oct 2016 08:32:28 +0000 (10:32 +0200)] 
Doc: Daemon command-line options alphabet order

7 years agoDoc: Add command-line options --version, --help
Pavel Tvrdik [Mon, 3 Oct 2016 08:22:24 +0000 (10:22 +0200)] 
Doc: Add command-line options --version, --help

7 years agoDoc: Add labels to all chapters and options
Pavel Tvrdik [Mon, 26 Sep 2016 16:00:59 +0000 (18:00 +0200)] 
Doc: Add labels to all chapters and options

7 years agoDoc: Generate clickable PDF
Pavel Tvrdik [Thu, 29 Sep 2016 12:05:25 +0000 (14:05 +0200)] 
Doc: Generate clickable PDF

7 years agoDoc: Fix whitespaces
Pavel Tvrdik [Thu, 29 Sep 2016 09:20:04 +0000 (11:20 +0200)] 
Doc: Fix whitespaces

7 years agoFilter: fix missing separator
Ondrej Zajicek (work) [Tue, 4 Oct 2016 21:19:35 +0000 (23:19 +0200)] 
Filter: fix missing separator

7 years agoNest: Fix signedness of large communities
Ondrej Zajicek (work) [Tue, 4 Oct 2016 10:45:39 +0000 (12:45 +0200)] 
Nest: Fix signedness of large communities

7 years agoDoc: Documentation for large communities
Ondrej Zajicek (work) [Mon, 3 Oct 2016 22:31:43 +0000 (00:31 +0200)] 
Doc: Documentation for large communities

7 years agoFilter: large community sets
Ondrej Zajicek (work) [Sat, 1 Oct 2016 20:31:01 +0000 (22:31 +0200)] 
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.

7 years agoBGP: Support for large communities
Ondrej Zajicek (work) [Sat, 1 Oct 2016 10:50:29 +0000 (12:50 +0200)] 
BGP: Support for large communities

Add support for large communities (draft-ietf-idr-large-community),
96bit alternative to RFC 1997 communities.

Thanks to Matt Griswold for the original patch.

7 years agoNEWS and version update v1.6.2
Ondrej Zajicek (work) [Thu, 29 Sep 2016 13:06:19 +0000 (15:06 +0200)] 
NEWS and version update

7 years agoDocs: fix BFD label
Pavel Tvrdik [Thu, 29 Sep 2016 11:28:18 +0000 (13:28 +0200)] 
Docs: fix BFD label

BFD headline will appear in Table of Contents again.

7 years agoKernel socket missing err_hook fix
Jan Moskyto Matejka [Thu, 29 Sep 2016 10:00:53 +0000 (12:00 +0200)] 
Kernel socket missing err_hook fix

Thanks to Tim Weippert for bugreport.

7 years agoNEWS and version update v1.6.1
Ondrej Zajicek (work) [Thu, 22 Sep 2016 11:34:56 +0000 (13:34 +0200)] 
NEWS and version update

7 years agoAdd !~ operator to filter grammar
Pavel Tvrdik [Tue, 20 Sep 2016 13:13:01 +0000 (15:13 +0200)] 
Add !~ operator to filter grammar

7 years agoRemove cvsignore
Ondrej Zajicek [Wed, 21 Sep 2016 10:07:59 +0000 (12:07 +0200)] 
Remove cvsignore

We have gitignore

7 years agoKRT: Add krt_scope attribute
Ondrej Zajicek (work) [Mon, 19 Sep 2016 10:29:56 +0000 (12:29 +0200)] 
KRT: Add krt_scope attribute

Add a new route attribute, krt_scope, to expose the Linux kernel route
scope. Constants from /etc/iproute2/rt_scopes (prefixed by "ips_") are
expected to be used with the attribute. Both import and export are
supported.

Also, the patch fixes device route export to the kernel, by setting link
scope automatically.

7 years agoMain: Improve BIRD help messages
Pavel Tvrdik [Thu, 8 Sep 2016 14:27:40 +0000 (16:27 +0200)] 
Main: Improve BIRD help messages

7 years agoAdd stdlib.h to client/commands.c
Pavel Tvrdik [Wed, 7 Sep 2016 12:58:51 +0000 (14:58 +0200)] 
Add stdlib.h to client/commands.c

7 years agoBFD: Fix invalid read from pollfd array
Pavel Tvrdik [Thu, 8 Sep 2016 11:45:36 +0000 (13:45 +0200)] 
BFD: Fix invalid read from pollfd array

It is possible that sockets_add() are called between sockets_prepare()
and sockets_fire() during poll loop in birdloop_main(), so we need to
use loop->poll_fd.used instead of loop->sock_num to find the last field.

7 years agort-table: Fix kernel protocol export filter memory bug
Pavel Tvrdik [Tue, 6 Sep 2016 15:08:45 +0000 (17:08 +0200)] 
rt-table: Fix kernel protocol export filter memory bug

Kernel protocol calls rt_export_merged(), which used @rte_update_pool for
temporary allocations, supposing it is called from other functions from
rt-table.c that handles locking and flushing of the linpool. Therefore,
linpool was not flushed properly and memory leaked.

Add linpool argument to rt_export_merged() and use @krt_filter_lp when
called from kernel protocol.

Thanks to Justin Cattle and Alexander Frolkin for the bugreport.

(Commit squashed and updated by Ondrej Zajicek)

7 years agoFilter: Prefer xmalloc/xfree to malloc/free
Pavel Tvrdik [Tue, 6 Sep 2016 15:18:15 +0000 (17:18 +0200)] 
Filter: Prefer xmalloc/xfree to malloc/free

7 years agoKRT: Add kernel metric protocol option
Ondrej Zajicek (work) [Thu, 15 Sep 2016 12:59:06 +0000 (14:59 +0200)] 
KRT: Add kernel metric protocol option

Kernel routes with different metrics do not clash with each other,
therefore using dedicated metric value is a reliable way to avoid
overwriting routes from other sources (e.g. kernel device routes).

Although kernel route metric could already be set as a route attribute by
filters, that is not consistent with the way how Linux kernel handles
route metric - not just a route attribute, but a part of a route key.

7 years agoKRT: Support for IPv6 ECMP
Ondrej Zajicek (work) [Wed, 14 Sep 2016 09:40:15 +0000 (11:40 +0200)] 
KRT: Support for IPv6 ECMP

Linux represents IPv6 ECMP routes as a sequence of unipath routes with
the same prefix. We have to translate between our representation (one
route with multipath next hop) and the Linux representation in both
directions.

Proper learning of alien IPv6 ECMP routes still not supported.

Thanks to Mikhail Sennikovskii for the original patch.

7 years agoNest: Keep multipath next hops sorted
Ondrej Zajicek (work) [Tue, 30 Aug 2016 15:17:27 +0000 (17:17 +0200)] 
Nest: Keep multipath next hops sorted

7 years agoKRT: Fix trivial error
Ondrej Zajicek (work) [Wed, 31 Aug 2016 12:02:41 +0000 (14:02 +0200)] 
KRT: Fix trivial error

7 years agoKRT: Forbid path merging on BSD
Ondrej Zajicek (work) [Tue, 30 Aug 2016 10:43:46 +0000 (12:43 +0200)] 
KRT: Forbid path merging on BSD

We support ECMP routes only on Linux. Exported routes are checked in
krt_capable(), but a route generated during path merging avoids this
check.

7 years agoMerge remote-tracking branch 'origin/misc-fixes'
Ondrej Zajicek (work) [Tue, 23 Aug 2016 15:35:26 +0000 (17:35 +0200)] 
Merge remote-tracking branch 'origin/misc-fixes'

7 years agoMinor README update
Ondrej Zajicek (work) [Tue, 23 Aug 2016 15:33:00 +0000 (17:33 +0200)] 
Minor README update

7 years agoWhitespace fixes
Pavel Tvrdik [Tue, 16 Aug 2016 11:02:32 +0000 (13:02 +0200)] 
Whitespace fixes

7 years agoAdd link to INSTALL in README file
Pavel Tvrdik [Tue, 16 Aug 2016 08:42:12 +0000 (10:42 +0200)] 
Add link to INSTALL in README file

7 years agoRewrote README file
Pavel Tvrdik [Tue, 16 Aug 2016 08:15:58 +0000 (10:15 +0200)] 
Rewrote README file

* Made structure with headlines,
* reordered,
* kicked out 'What is missing' part,
* Updated content by home page site and user docs

7 years agoAdd .gitignore to ignore generated files
Ondřej Surý [Tue, 16 Aug 2016 07:25:50 +0000 (09:25 +0200)] 
Add .gitignore to ignore generated files

7 years agowhitespace fixes
Ondřej Surý [Tue, 16 Aug 2016 07:24:12 +0000 (09:24 +0200)] 
whitespace fixes

7 years agoInclude <stdint.h> in cf-lex.l to avoid UINTx_MAX redefinition
Ondřej Surý [Tue, 16 Aug 2016 07:23:55 +0000 (09:23 +0200)] 
Include <stdint.h> in cf-lex.l to avoid UINTx_MAX redefinition

7 years agoAdds mailing list address at the top of README file
Pavel Tvrdik [Mon, 15 Aug 2016 14:16:36 +0000 (16:16 +0200)] 
Adds mailing list address at the top of README file

7 years agoBabel: Immediately update hello interval on interface reconfigure
Ondrej Zajicek (work) [Wed, 20 Jul 2016 13:55:45 +0000 (15:55 +0200)] 
Babel: Immediately update hello interval on interface reconfigure

An interface reconfiguration may change both the hello and update
intervals. An update interval change is immediately put into effect,
while a hello interval change is not. This also updates the hello
interval immediately (if the new interval is shorter than the old one),
and sends a hello to notify peers of the change.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoNetlink: Fix build with older headers missing IFA_FLAGS
Ondrej Zajicek (work) [Wed, 20 Jul 2016 13:31:25 +0000 (15:31 +0200)] 
Netlink: Fix build with older headers missing IFA_FLAGS

7 years agoNetlink: Ignore tentative addresses
Ondrej Zajicek (work) [Wed, 20 Jul 2016 13:06:57 +0000 (15:06 +0200)] 
Netlink: Ignore tentative addresses

Ignore tentative IPv6 addresses and wait until finish of Duplicate
Address Detection (We got notification when an address is no longer
tentative) to avoid problems when protocols try to use interfaces
with tentative link-local addresses.

Based on patch from Jan Moskyto Matejka

7 years agoDoc: Fix password ID option description
Ondrej Zajicek (work) [Tue, 19 Jul 2016 13:40:57 +0000 (15:40 +0200)] 
Doc: Fix password ID option description

Thanks to Alexander Velkov for noticing it

7 years agoBabel: Do not maintain feasibility distance for our own routes
Ondrej Zajicek (work) [Tue, 19 Jul 2016 12:38:36 +0000 (14:38 +0200)] 
Babel: Do not maintain feasibility distance for our own routes

We do not need to maintain feasibility distances for our own router
ID (we ignore the updates anyway). Not doing so makes the routes be
garbage collected sooner when export filters change.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoBabel: Do not keep an infeasible route as selected
Ondrej Zajicek (work) [Tue, 19 Jul 2016 12:28:53 +0000 (14:28 +0200)] 
Babel: Do not keep an infeasible route as selected

When a route becomes infeasible it should not be kept as selected; this
is forbidden by section 3.6 of the RFC and prevents subsequent updates
from the same router ID from replacing it.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoBabel: Send wildcard retractions on shutdown and startup
Ondrej Zajicek (work) [Tue, 19 Jul 2016 12:23:41 +0000 (14:23 +0200)] 
Babel: Send wildcard retractions on shutdown and startup

This makes BIRD send a wildcard retraction on all interfaces before
shutting down and right after starting up. This helps ensure that
neighbours will discard the announced routes as soon as possible,
rather than only after the normal timeout procedures.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoBabel: Rework handling of retractions
Ondrej Zajicek (work) [Tue, 19 Jul 2016 11:33:02 +0000 (13:33 +0200)] 
Babel: Rework handling of retractions

An update with wildcard AE and infinite metric should be treated as a
global retraction of all prefixes announced by that neighbour, per
section 4.4.9 of the RFC. In addition, router ID and seqno in retraction
updates should be ignored. This reworks the handling of retractions and
adjusts the parser to handle all this correctly.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoBabel: Documentation updates
Ondrej Zajicek (work) [Tue, 19 Jul 2016 10:16:51 +0000 (12:16 +0200)] 
Babel: Documentation updates

This updates the documentation to correctly mention Babel when protocols
are listed, and adds examples and route attribute documentation to the
Babel section of the docs.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoBabel: Make sure intervals do not overflow
Ondrej Zajicek (work) [Tue, 19 Jul 2016 09:57:20 +0000 (11:57 +0200)] 
Babel: Make sure intervals do not overflow

Intervals are carried as 16-bit centisecond values, but kept internally
in 16-bit second values, which causes a potential for overflow. This adds
some checks to make sure this does not happen.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoPrepare for longer interface names - clean up of the code.
Ondrej Filip [Sun, 17 Jul 2016 12:54:52 +0000 (14:54 +0200)] 
Prepare for longer interface names - clean up of the code.

7 years agoBGP: Fix extended messages
Ondrej Zajicek (work) [Mon, 11 Jul 2016 18:41:32 +0000 (20:41 +0200)] 
BGP: Fix extended messages

Change attribute length limit to handle extended (64 kB) messages.

Do not mix updates and withdraws (RFC 7606).

7 years agoLog: Fix error handling of debug file open
Ondrej Zajicek (work) [Mon, 11 Jul 2016 18:22:55 +0000 (20:22 +0200)] 
Log: Fix error handling of debug file open

Logging is not yet initialized, we have to use fprintf() here.

Thanks to Pavel Tvrdik for noticing and debugging it.

7 years agoFilter: Fixes reconfiguration with last_nonaggregated operator
Ondrej Zajicek (work) [Fri, 1 Jul 2016 09:03:13 +0000 (11:03 +0200)] 
Filter: Fixes reconfiguration with last_nonaggregated operator

7 years agoBGP: Skip empty path segments in received AS_PATH
Ondrej Zajicek (work) [Wed, 29 Jun 2016 12:11:03 +0000 (14:11 +0200)] 
BGP: Skip empty path segments in received AS_PATH

Although RFC 4271 does not forbid empty path segments, they are useless
and some implementations consider them invalid. It is clarified in RFC 7606,
specifying that AS_PATH with empty segment is considered malformed.

7 years agocppcheck: fix va_end() functions
Pavel Tvrdík [Tue, 29 Mar 2016 08:37:31 +0000 (10:37 +0200)] 
cppcheck: fix va_end() functions

7 years agoFilters: Fixes pm_same() w.r.t. ASN ranges and ASN expressions
Ondrej Zajicek (work) [Wed, 8 Jun 2016 22:30:41 +0000 (00:30 +0200)] 
Filters: Fixes pm_same() w.r.t. ASN ranges and ASN expressions

This is necessary for proper detection of filter changes during
reconfigurations.