]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
4 years agoFilter: Moved f_inst allocation to separate function
Maria Matejka [Mon, 1 Jul 2019 10:49:02 +0000 (12:49 +0200)] 
Filter: Moved f_inst allocation to separate function

4 years agoFilter: Getting rid of RESULT_OK. Adding RESULT_VOID.
Maria Matejka [Mon, 1 Jul 2019 10:07:06 +0000 (12:07 +0200)] 
Filter: Getting rid of RESULT_OK. Adding RESULT_VOID.

This is a preparation for filter pre-evaluation.

4 years agoFilter: The interpreter code now shares its diversion with constructor
Maria Matejka [Mon, 1 Jul 2019 09:57:35 +0000 (11:57 +0200)] 
Filter: The interpreter code now shares its diversion with constructor

This is a preparation for filter pre-evaluation.

4 years agoFilter: renaming pointers for consistency
Maria Matejka [Fri, 28 Jun 2019 09:08:48 +0000 (11:08 +0200)] 
Filter: renaming pointers for consistency

The struct f_inst * is now always "what"
and the union member pointer is always "whati".

4 years agoFilter: A little cleanup of M4 interpreter generator
Maria Matejka [Thu, 27 Jun 2019 13:55:48 +0000 (15:55 +0200)] 
Filter: A little cleanup of M4 interpreter generator

4 years agoMerge remote-tracking branch 'refs/remotes/origin/mq-filter-stack' into mq-filter...
Maria Matejka [Tue, 25 Jun 2019 20:40:05 +0000 (22:40 +0200)] 
Merge remote-tracking branch 'refs/remotes/origin/mq-filter-stack' into mq-filter-stack

4 years agoConf/Filters: Moved argument count to conf scope
Maria Matejka [Tue, 25 Jun 2019 14:18:06 +0000 (16:18 +0200)] 
Conf/Filters: Moved argument count to conf scope

4 years agoFilter instructions don't confuse now v1 and res.
Maria Matejka [Fri, 21 Jun 2019 09:33:28 +0000 (11:33 +0200)] 
Filter instructions don't confuse now v1 and res.

4 years agoRevert "Filter: Dropped the setter instructions in favor of direct result storage."
Maria Matejka [Wed, 19 Jun 2019 12:09:57 +0000 (14:09 +0200)] 
Revert "Filter: Dropped the setter instructions in favor of direct result storage."

This reverts commit bd91338246c1ba40358243f1bdf5a6dbd3a29f35.

4 years agoString: bstrtoul macro expanded to bstrtoul10 and 16
Maria Matejka [Thu, 13 Jun 2019 12:27:58 +0000 (14:27 +0200)] 
String: bstrtoul macro expanded to bstrtoul10 and 16

4 years agoFilter: removal of semantically insane consts in filter_commit
Maria Matejka [Thu, 13 Jun 2019 12:24:48 +0000 (14:24 +0200)] 
Filter: removal of semantically insane consts in filter_commit

4 years agoFilter: Dropped the setter instructions in favor of direct result storage.
Maria Matejka [Fri, 31 May 2019 15:33:41 +0000 (17:33 +0200)] 
Filter: Dropped the setter instructions in favor of direct result storage.

This should help filter performance a bit.

4 years agoFilter: Just a little comments in filter structure
Maria Matejka [Thu, 30 May 2019 12:42:54 +0000 (14:42 +0200)] 
Filter: Just a little comments in filter structure

4 years agoFilter: Stacks moved to thread-local storage if available.
Maria Matejka [Wed, 29 May 2019 19:03:52 +0000 (21:03 +0200)] 
Filter: Stacks moved to thread-local storage if available.

4 years agoFilters: If somebody doesn't like _Thread_local, don't fail for now, just be a little...
Jan Maria Matejka [Thu, 23 May 2019 11:27:24 +0000 (11:27 +0000)] 
Filters: If somebody doesn't like _Thread_local, don't fail for now, just be a little slower.

When the parallel execution comes into place, we'll likely enforce this
C11 feature. It's much simpler and also faster than pthread_[sg]etspecific().

4 years agoFilter: Some people can't pronounce "postfixify" correctly. Let's try "linearize...
Jan Maria Matejka [Wed, 22 May 2019 15:16:32 +0000 (15:16 +0000)] 
Filter: Some people can't pronounce "postfixify" correctly. Let's try "linearize" instead.

This is just a naming change.

4 years agoFilter: Store variables and function arguments on stack
Jan Maria Matejka [Tue, 21 May 2019 16:33:37 +0000 (16:33 +0000)] 
Filter: Store variables and function arguments on stack

4 years agoFilter: Making the filter state thread local.
Jan Maria Matejka [Mon, 20 May 2019 17:53:10 +0000 (17:53 +0000)] 
Filter: Making the filter state thread local.

While having the filter code still reentrant if we really need,
the compiler can now do constant propagation and address the
thread local storage directly to save some computation time.

4 years agoLexer now returns known sym / unknown sym / keyword
Maria Matejka [Fri, 17 May 2019 20:18:49 +0000 (22:18 +0200)] 
Lexer now returns known sym / unknown sym / keyword

5 years agoFilter: fixed error-checking bug in !~ operator
Maria Matejka [Sat, 23 Mar 2019 12:32:14 +0000 (13:32 +0100)] 
Filter: fixed error-checking bug in !~ operator

5 years agoFixed one warning and one undefined value.
Maria Matejka [Fri, 22 Mar 2019 20:40:35 +0000 (21:40 +0100)] 
Fixed one warning and one undefined value.

5 years agoFixed an undefined symbol bug in CLI introduced by filter refactoring
Maria Matejka [Wed, 20 Mar 2019 15:50:58 +0000 (16:50 +0100)] 
Fixed an undefined symbol bug in CLI introduced by filter refactoring

5 years agoMerge branch 'master' into HEAD
Maria Matejka [Mon, 18 Mar 2019 11:54:40 +0000 (12:54 +0100)] 
Merge branch 'master' into HEAD

5 years agoBuild: Automatic dependency tracking for generated files
Maria Matejka [Fri, 15 Mar 2019 14:07:00 +0000 (15:07 +0100)] 
Build: Automatic dependency tracking for generated files

5 years agoPerf: fixed stupid allocation bug
Maria Matejka [Thu, 7 Mar 2019 17:02:05 +0000 (18:02 +0100)] 
Perf: fixed stupid allocation bug

5 years agoGitlab CI: Drop CentOS 6 test build as unsupported.
Maria Matejka [Wed, 6 Mar 2019 20:45:28 +0000 (21:45 +0100)] 
Gitlab CI: Drop CentOS 6 test build as unsupported.

If someone wants to maintain BIRD for CentOS 6,
feel free to send patches.

5 years agoNest: Update handling of temporary attributes
Ondrej Zajicek (work) [Thu, 14 Mar 2019 16:22:22 +0000 (17:22 +0100)] 
Nest: Update handling of temporary attributes

The temporary atttributes are no longer removed by ea_do_prune(), but
they are undefined by store_tmp_attrs() protocol hooks. This fixes
several bugs where temporary attributes were removed when they should
not or not removed when they should be. The flag EAF_TEMP is no longer
needed and was removed.

Update all protocol make_tmp_attrs() / store_tmp_attrs() hooks to use
helper functions and to handle unset attributes properly.

Also fix some related bugs like improper handling of empty eattr list.

5 years agoOSPF: Improved handling of tmpattrs
Ondrej Zajicek (work) [Wed, 6 Mar 2019 17:14:12 +0000 (18:14 +0100)] 
OSPF: Improved handling of tmpattrs

Keep track of whether OSPF tmpattrs are actually defined for given route
(using flags in rte->pflags). That makes them behave more like real
eattrs so a protocol can define just a subset of them or they can be
undefined by filters.

Do not set ospf_metric2 for other than type 2 external OSPF routes and do
not set ospf_tag for non-external OSPF routes. That also fixes a bug
where internal/inter-area route propagated from one OSPF instance to
another is initiated with infinity ospf_metric2.

Thanks to Yaroslav Dronskii for the bugreport.

5 years agoFaster filters: documentation on what is happening there
Maria Matejka [Wed, 6 Mar 2019 14:01:10 +0000 (15:01 +0100)] 
Faster filters: documentation on what is happening there

5 years agoFixed link time optimizer check for FreeBSD
Maria Matejka [Wed, 27 Feb 2019 13:40:05 +0000 (14:40 +0100)] 
Fixed link time optimizer check for FreeBSD

5 years agoNEWS and version update v2.0.4
Ondrej Zajicek (work) [Tue, 26 Feb 2019 17:19:35 +0000 (18:19 +0100)] 
NEWS and version update

5 years agoFilters: comparison of functions and filters caching
Maria Matejka [Tue, 26 Feb 2019 15:44:24 +0000 (16:44 +0100)] 
Filters: comparison of functions and filters caching

5 years agoBuild: No link time optimization when debug is enabled
Maria Matejka [Tue, 26 Feb 2019 15:11:40 +0000 (16:11 +0100)] 
Build: No link time optimization when debug is enabled

5 years agoCustom number parser to speed up config parsing
Maria Matejka [Mon, 25 Feb 2019 22:28:36 +0000 (23:28 +0100)] 
Custom number parser to speed up config parsing

The glibc's generic parser is slow due to its versatility. Specialized
parsers for base-10 and base-16 are much faster and we don't use other
bases.

5 years agoConf: Lexer parses quoted strings in a more descriptive way
Maria Matejka [Mon, 25 Feb 2019 16:19:47 +0000 (17:19 +0100)] 
Conf: Lexer parses quoted strings in a more descriptive way

5 years agoConf: Switch for faster (and slightly bigger) lexer
Maria Matejka [Fri, 22 Feb 2019 11:41:51 +0000 (12:41 +0100)] 
Conf: Switch for faster (and slightly bigger) lexer

5 years agoConf: Switch for faster (and slightly bigger) lexer
Maria Matejka [Fri, 22 Feb 2019 11:41:51 +0000 (12:41 +0100)] 
Conf: Switch for faster (and slightly bigger) lexer

5 years agoNest: Do not compare rte.flags during rte_update()
Ondrej Zajicek (work) [Fri, 22 Feb 2019 01:16:39 +0000 (02:16 +0100)] 
Nest: Do not compare rte.flags during rte_update()

Route flags are mosty internal state of rtable, they are not significant
to whether a route has changed. With the old code, all routes received as
a part of enhanced route refresh are always re-announced to other peers
due to change in REF_STALE.

5 years agoEnabled link time optimization.
Maria Matejka [Wed, 20 Feb 2019 21:14:28 +0000 (22:14 +0100)] 
Enabled link time optimization.

5 years agoFilter: Interpreter merged into the common m4 generator.
Maria Matejka [Tue, 19 Feb 2019 11:34:16 +0000 (12:34 +0100)] 
Filter: Interpreter merged into the common m4 generator.

The config-time partial evaluation of constant expressions in filters is nearby.

5 years agoFilter: Fixed bugs in FI_CALL and FI_SWITCH
Maria Matejka [Mon, 18 Feb 2019 13:57:15 +0000 (14:57 +0100)] 
Filter: Fixed bugs in FI_CALL and FI_SWITCH

5 years agoTest: Added -d flag to die directly after first error.
Maria Matejka [Mon, 18 Feb 2019 13:56:49 +0000 (14:56 +0100)] 
Test: Added -d flag to die directly after first error.

5 years agoGDB: Added more pretty printers for filters
Maria Matejka [Mon, 18 Feb 2019 13:56:10 +0000 (14:56 +0100)] 
GDB: Added more pretty printers for filters

5 years agoFilter: More cleanup -- customized structures also in struct f_line_item
Maria Matejka [Fri, 15 Feb 2019 22:59:44 +0000 (23:59 +0100)] 
Filter: More cleanup -- customized structures also in struct f_line_item

5 years agoConf: Symbol implementation converted from void pointers to union
Maria Matejka [Fri, 15 Feb 2019 12:53:17 +0000 (13:53 +0100)] 
Conf: Symbol implementation converted from void pointers to union

... and consted some declarations.

5 years agoFilter: merged filter compare functions into common M4 file
Maria Matejka [Wed, 13 Feb 2019 11:25:30 +0000 (12:25 +0100)] 
Filter: merged filter compare functions into common M4 file

5 years agoFilter: Merged postfixify routine
Maria Matejka [Tue, 12 Feb 2019 19:37:32 +0000 (20:37 +0100)] 
Filter: Merged postfixify routine

5 years agoFilter: Merged filter line item dumpers into common generated source
Maria Matejka [Tue, 12 Feb 2019 13:16:28 +0000 (14:16 +0100)] 
Filter: Merged filter line item dumpers into common generated source

5 years agoFilter: auto-generating enum-to-string
Maria Matejka [Tue, 12 Feb 2019 10:35:41 +0000 (11:35 +0100)] 
Filter: auto-generating enum-to-string

5 years agoFilter generator: workaround for M4 claiming all the put-around code be on one line
Maria Matejka [Tue, 12 Feb 2019 10:31:18 +0000 (11:31 +0100)] 
Filter generator: workaround for M4 claiming all the put-around code be on one line

5 years agoFilter data manipulation functions separated to their file
Maria Matejka [Mon, 11 Feb 2019 16:12:48 +0000 (17:12 +0100)] 
Filter data manipulation functions separated to their file

5 years agoFilter: split the constructors to a separate file
Maria Matejka [Mon, 11 Feb 2019 15:44:14 +0000 (16:44 +0100)] 
Filter: split the constructors to a separate file

5 years agoConf: Fixed makefiles
Maria Matejka [Mon, 11 Feb 2019 14:27:47 +0000 (15:27 +0100)] 
Conf: Fixed makefiles

5 years agoFilter: merged filter instruction constructors, counting line size on instruction...
Maria Matejka [Fri, 8 Feb 2019 12:38:12 +0000 (13:38 +0100)] 
Filter: merged filter instruction constructors, counting line size on instruction construct

5 years agoTest: Fixed annoying warnings (and possible obscure bugs).
Maria Matejka [Fri, 8 Feb 2019 10:19:04 +0000 (11:19 +0100)] 
Test: Fixed annoying warnings (and possible obscure bugs).

5 years agoFilters: split the large filter.h file to smaller files.
Maria Matejka [Thu, 7 Feb 2019 20:25:38 +0000 (21:25 +0100)] 
Filters: split the large filter.h file to smaller files.

This should be revised, there are still ugly things in the filter API.

5 years agoFilter: M4 convertors polished a bit.
Maria Matejka [Wed, 6 Feb 2019 13:41:39 +0000 (14:41 +0100)] 
Filter: M4 convertors polished a bit.

5 years agoFilter + Config: Fix bugs, tests and split symbols by type
Maria Matejka [Wed, 30 Jan 2019 13:03:47 +0000 (14:03 +0100)] 
Filter + Config: Fix bugs, tests and split symbols by type

5 years agoGDB pretty printers: f_inst and f_val.
Maria Matejka [Wed, 23 Jan 2019 16:08:27 +0000 (17:08 +0100)] 
GDB pretty printers: f_inst and f_val.

5 years agoFilter: refactoring of instruction constructors
Maria Matejka [Mon, 21 Jan 2019 08:17:54 +0000 (09:17 +0100)] 
Filter: refactoring of instruction constructors

5 years agoFilter refactoring: dropped the recursion from the interpreter
Maria Matejka [Thu, 27 Dec 2018 13:26:11 +0000 (14:26 +0100)] 
Filter refactoring: dropped the recursion from the interpreter

This is a major change of how the filters are interpreted. If everything
works how it should, it should not affect you unless you are hacking the
filters themselves.

Anyway, this change should make a huge improvement in the filter performance
as previous benchmarks showed that our major problem lies in the
recursion itself.

There are also some changes in nest and protocols, related mostly to
spreading const declarations throughout the whole BIRD and also to
refactored dynamic attribute definitions. The need of these came up
during the whole work and it is too difficult to split out these
not-so-related changes.

5 years agoFilter refactoring: The instructions are converted to the switch body by M4
Maria Matejka [Thu, 20 Dec 2018 15:25:54 +0000 (16:25 +0100)] 
Filter refactoring: The instructions are converted to the switch body by M4

5 years agoFilter refactoring: Drop the roa check specific f_inst
Maria Matejka [Thu, 20 Dec 2018 15:07:59 +0000 (16:07 +0100)] 
Filter refactoring: Drop the roa check specific f_inst

5 years agoFilter refactoring: The constant f_val is simply included inside the instruction
Maria Matejka [Thu, 20 Dec 2018 14:25:04 +0000 (15:25 +0100)] 
Filter refactoring: The constant f_val is simply included inside the instruction

With 32 bits, size of the args is 12 bytes, the f_val is 20 bytes.
With 64 bits, size of the args is 24 bytes, the f_val the same.

This is not so nice on 32 bits, anyway the f_inst itself is
24 vs. 32 bytes and the overall size of filters must be 32k of
instructions to get to one megabyte of RAM eaten by f_inst.

Therefore it seems to be improbable for common user to get into
problems with this change.

5 years agoFilter refactoring: Changed arguments from separate unions to an array
Maria Matejka [Thu, 20 Dec 2018 13:55:40 +0000 (14:55 +0100)] 
Filter refactoring: Changed arguments from separate unions to an array

5 years agoFilter refactoring: Converted condition to three-args instruction
Maria Matejka [Thu, 20 Dec 2018 13:34:35 +0000 (14:34 +0100)] 
Filter refactoring: Converted condition to three-args instruction

5 years agoFilter refactoring: Some instructions eat up excessively much space.
Maria Matejka [Thu, 20 Dec 2018 13:29:47 +0000 (14:29 +0100)] 
Filter refactoring: Some instructions eat up excessively much space.

5 years agoFilter refactoring: Expanded the short instructions with common code.
Maria Matejka [Thu, 20 Dec 2018 13:05:32 +0000 (14:05 +0100)] 
Filter refactoring: Expanded the short instructions with common code.

This will make the further changes more straightforward.

5 years agoFilter refactoring: indentation fix
Maria Matejka [Tue, 18 Dec 2018 16:10:05 +0000 (17:10 +0100)] 
Filter refactoring: indentation fix

5 years agoFilter refactoring: The values are now saved on a custom stack.
Jan Maria Matejka [Mon, 17 Dec 2018 14:00:01 +0000 (15:00 +0100)] 
Filter refactoring: The values are now saved on a custom stack.

This shall help with performance.

5 years agoFilter refactoring: Passing the resulting struct f_val as a pointer.
Jan Maria Matejka [Mon, 17 Dec 2018 12:51:11 +0000 (13:51 +0100)] 
Filter refactoring: Passing the resulting struct f_val as a pointer.

This also drops the multiplexing of errors with the f_val itself
together with the T_RETURN f_val type flag.

5 years agoFilter refactoring: Moved filter instruction definition to a separate file
Jan Maria Matejka [Mon, 17 Dec 2018 12:08:08 +0000 (13:08 +0100)] 
Filter refactoring: Moved filter instruction definition to a separate file

5 years agoFilter refactoring: Moved the bitfield bit position formula to route.h
Jan Maria Matejka [Mon, 17 Dec 2018 11:58:01 +0000 (12:58 +0100)] 
Filter refactoring: Moved the bitfield bit position formula to route.h

5 years agoFilter refactoring: Moved the interpret macros inside the block
Jan Maria Matejka [Mon, 17 Dec 2018 11:48:33 +0000 (12:48 +0100)] 
Filter refactoring: Moved the interpret macros inside the block

5 years agoConfigure: Don't check for implicit fallthrough unless when debugging.
Jan Maria Matejka [Mon, 17 Dec 2018 11:45:21 +0000 (12:45 +0100)] 
Configure: Don't check for implicit fallthrough unless when debugging.

5 years agoFilter: Converted static global variables to a filter_state struct.
Jan Maria Matejka [Tue, 27 Feb 2018 14:39:39 +0000 (15:39 +0100)] 
Filter: Converted static global variables to a filter_state struct.

The static filter state was messy and blocked the planned parallel
execution of filters. Anyway, this will be also slower as the state
structure must be passed almost everywhere with us.

5 years agoHTML are no longer generated in srcdir
Ondrej Zajicek (work) [Tue, 19 Feb 2019 17:30:28 +0000 (18:30 +0100)] 
HTML are no longer generated in srcdir

5 years agoDoc: Detect SP/OpenSP automatically
Ondrej Zajicek (work) [Tue, 19 Feb 2019 17:20:07 +0000 (18:20 +0100)] 
Doc: Detect SP/OpenSP automatically

5 years agoNest: Prevent withdraws from propagation back to source protocol (for accepted mode)
Ondrej Zajicek (work) [Tue, 19 Feb 2019 15:26:09 +0000 (16:26 +0100)] 
Nest: Prevent withdraws from propagation back to source protocol (for accepted mode)

Update for one of previous patches, handles the the issue for
first-accepted mode of route propagation.

5 years agoOSPF: Reset LSAs during area type change
Ondrej Zajicek (work) [Sun, 17 Feb 2019 00:54:01 +0000 (01:54 +0100)] 
OSPF: Reset LSAs during area type change

When area is reconfigured to a different type, we need to flush LSAs as
they may not be valid (e.g. NSSA-LSA for non-NSSA area). Also, when we
have have just one OSPF area and that changes type, we could restart OSPF
as there is no state to keep anyway. That solves issue with different
handling of external routes exported to OSPF based of main area type.

5 years agoOSPF: Basic support for DN-bit handling (RFC 4576)
Ondrej Zajicek (work) [Wed, 13 Feb 2019 14:40:22 +0000 (15:40 +0100)] 
OSPF: Basic support for DN-bit handling (RFC 4576)

External LSAs originated by OSPF routers with VPN-PE behavior enabled are
marked by DN flag and they are ignored by other OSPF routers with VPN-PE
enabled.

5 years agoOSPF: Do not originate Router-Information LSA
Ondrej Zajicek (work) [Sat, 9 Feb 2019 15:15:01 +0000 (16:15 +0100)] 
OSPF: Do not originate Router-Information LSA

As we do not have much usage for it yet.

5 years agoMerge remote-tracking branch 'origin/mq-opt'
Ondrej Zajicek (work) [Sat, 9 Feb 2019 14:53:16 +0000 (15:53 +0100)] 
Merge remote-tracking branch 'origin/mq-opt'

5 years agoNest: Improve export counter handling
Ondrej Zajicek (work) [Tue, 5 Feb 2019 18:00:43 +0000 (19:00 +0100)] 
Nest: Improve export counter handling

One of previous workarounds for phantom route avoidance breaks export
counters by expanding sending of spurious withdraws, which are send when
we are not sure whether we have advertised that routes in the past.
If not, then export counter is decreased, but it was not increased
before, so it overflows under zero.

The patch fixes that by sendung spurious withdraws, but not counting them
on export counter. That may lead to error in the other direction, but that
happens only as a race condition (i.e., in normal operation filters
return proper values about old route export state).

5 years agoNest: Report preferred counters also when 'import keep filtered' is enabled
Ondrej Zajicek (work) [Tue, 5 Feb 2019 14:59:26 +0000 (15:59 +0100)] 
Nest: Report preferred counters also when 'import keep filtered' is enabled

Thanks to Michal Nowak for reporting the issue.

5 years agoOSPF: Send direct acknowledgements as unicast
Ondrej Zajicek (work) [Sun, 3 Feb 2019 19:22:40 +0000 (20:22 +0100)] 
OSPF: Send direct acknowledgements as unicast

Direct acknowledgements should be send as unicast to a corresponding
neighbor. Only delayed acks should be send as multicast to all/designated
routers.

5 years agoOSPF: Reject duplicate DBDES packets after dead interval
Ondrej Zajicek (work) [Sun, 3 Feb 2019 16:31:27 +0000 (17:31 +0100)] 
OSPF: Reject duplicate DBDES packets after dead interval

Master may free last DBDES packet immediately. Slave must wait dead
interval before freeing last DBDES packet and then reject duplicate
DBDES packets with SeqNumberMismatch.

5 years agoOSPF: DD seqnum should be initialized only for first attempts
Ondrej Zajicek (work) [Sun, 3 Feb 2019 15:20:37 +0000 (16:20 +0100)] 
OSPF: DD seqnum should be initialized only for first attempts

After SeqNumberMismatch/BadLSReq, we should continue with the old
seqnum++. The old code tries to do that by n->adj, but it was set
nowhere.

5 years agoOSPF: Reject DBDES packets with non-matching MTU
Ondrej Zajicek (work) [Sun, 3 Feb 2019 14:45:43 +0000 (15:45 +0100)] 
OSPF: Reject DBDES packets with non-matching MTU

As it is specified in RFC 2328. The old code just provided warning.

5 years agoNest: Reestablish preferred counters
Ondrej Zajicek (work) [Sat, 2 Feb 2019 12:28:16 +0000 (13:28 +0100)] 
Nest: Reestablish preferred counters

5 years agoPerf: Added forgotten all-protocol options mq-opt
Maria Matejka [Fri, 1 Feb 2019 13:09:01 +0000 (14:09 +0100)] 
Perf: Added forgotten all-protocol options

5 years agoNest: FIB rehash values tweaked for better performance
Maria Matejka [Tue, 29 Jan 2019 14:19:06 +0000 (15:19 +0100)] 
Nest: FIB rehash values tweaked for better performance

5 years agoPerf: Prune the table after every loop to have clean state.
Maria Matejka [Tue, 29 Jan 2019 13:22:55 +0000 (14:22 +0100)] 
Perf: Prune the table after every loop to have clean state.

5 years agoPerf: Write also BIRD version to have all the needed data in the logfile
Maria Matejka [Thu, 31 Jan 2019 14:03:43 +0000 (15:03 +0100)] 
Perf: Write also BIRD version to have all the needed data in the logfile

5 years agoNest: Don't lookup net in table before filters are run.
Maria Matejka [Thu, 31 Jan 2019 14:02:15 +0000 (15:02 +0100)] 
Nest: Don't lookup net in table before filters are run.

Using dummy net instead. This should help with performance on rejected
routes.

5 years agoNest: Prevent withdraws from propagation back to source protocol
Ondrej Zajicek (work) [Wed, 30 Jan 2019 16:25:21 +0000 (17:25 +0100)] 
Nest: Prevent withdraws from propagation back to source protocol

The earlier fix loosen conditions for not running filters on old
route when deciding about route propagation to a protocol to avoid
issues with ghost routes in some race conditions.

Unfortunately, the fix also caused back-propagation of withdraws. For
regular updates, back-propagation is prevented in import_control hooks,
but these are not called on withdraws. For them, import_control hooks
are called on old routes instead, changing (old, NULL) notification
to (NULL, NULL), which is ignored. By not calling export processing
in some cases, the withdraw is not ignored and is back-propagated.

This patch fixes that by contract conditions so the earlier fix is not
applied to back-propagated updates.

5 years agoDoc: Add documentation for OSPF retransmit delay option
Ondrej Zajicek (work) [Sat, 26 Jan 2019 20:02:35 +0000 (21:02 +0100)] 
Doc: Add documentation for OSPF retransmit delay option

Thanks to Igor Podlesny for notification.

5 years agoDoc: Remove doc for already removed option
Ondrej Zajicek (work) [Sat, 26 Jan 2019 19:44:37 +0000 (20:44 +0100)] 
Doc: Remove doc for already removed option

5 years agoBGP: Cleanup channels when going down
Ondrej Zajicek (work) [Sat, 26 Jan 2019 18:48:16 +0000 (19:48 +0100)] 
BGP: Cleanup channels when going down

When going up, uncleaned old channel state may trigger unexpected
conditions crashing bird.

5 years agoOSPF: Opaque LSAs and Router Information LSA
Ondrej Zajicek (work) [Thu, 24 Jan 2019 21:34:33 +0000 (22:34 +0100)] 
OSPF: Opaque LSAs and Router Information LSA

Add support for OSPFv2 Opaque LSAs (RFC 5250) and for Router Information
LSA (RFC 7770). The second part is here mainly for testing opaque LSAs.