Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-03-18 | Merge branch 'master' into HEAD | Maria Matejka | |
2019-03-18 | Build: Automatic dependency tracking for generated files | Maria Matejka | |
2019-03-15 | Perf: fixed stupid allocation bug | Maria Matejka | |
2019-03-15 | Gitlab CI: Drop CentOS 6 test build as unsupported. | Maria Matejka | |
If someone wants to maintain BIRD for CentOS 6, feel free to send patches. | |||
2019-03-14 | Nest: Update handling of temporary attributes | Ondrej Zajicek (work) | |
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. | |||
2019-03-06 | OSPF: Improved handling of tmpattrs | Ondrej Zajicek (work) | |
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. | |||
2019-03-06 | Faster filters: documentation on what is happening there | Maria Matejka | |
2019-02-27 | Fixed link time optimizer check for FreeBSD | Maria Matejka | |
2019-02-26 | NEWS and version updatev2.0.4 | Ondrej Zajicek (work) | |
2019-02-26 | Filters: comparison of functions and filters caching | Maria Matejka | |
2019-02-26 | Build: No link time optimization when debug is enabled | Maria Matejka | |
2019-02-25 | Custom number parser to speed up config parsing | Maria Matejka | |
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. | |||
2019-02-25 | Conf: Lexer parses quoted strings in a more descriptive way | Maria Matejka | |
2019-02-22 | Conf: Switch for faster (and slightly bigger) lexer | Maria Matejka | |
2019-02-22 | Conf: Switch for faster (and slightly bigger) lexer | Maria Matejka | |
2019-02-22 | Nest: Do not compare rte.flags during rte_update() | Ondrej Zajicek (work) | |
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. | |||
2019-02-20 | Enabled link time optimization. | Maria Matejka | |
2019-02-20 | Filter: Interpreter merged into the common m4 generator. | Maria Matejka | |
The config-time partial evaluation of constant expressions in filters is nearby. | |||
2019-02-20 | Filter: Fixed bugs in FI_CALL and FI_SWITCH | Maria Matejka | |
2019-02-20 | Test: Added -d flag to die directly after first error. | Maria Matejka | |
2019-02-20 | GDB: Added more pretty printers for filters | Maria Matejka | |
2019-02-20 | Filter: More cleanup -- customized structures also in struct f_line_item | Maria Matejka | |
2019-02-20 | Conf: Symbol implementation converted from void pointers to union | Maria Matejka | |
... and consted some declarations. | |||
2019-02-20 | Filter: merged filter compare functions into common M4 file | Maria Matejka | |
2019-02-20 | Filter: Merged postfixify routine | Maria Matejka | |
2019-02-20 | Filter: Merged filter line item dumpers into common generated source | Maria Matejka | |
2019-02-20 | Filter: auto-generating enum-to-string | Maria Matejka | |
2019-02-20 | Filter generator: workaround for M4 claiming all the put-around code be on ↵ | Maria Matejka | |
one line | |||
2019-02-20 | Filter data manipulation functions separated to their file | Maria Matejka | |
2019-02-20 | Filter: split the constructors to a separate file | Maria Matejka | |
2019-02-20 | Conf: Fixed makefiles | Maria Matejka | |
2019-02-20 | Filter: merged filter instruction constructors, counting line size on ↵ | Maria Matejka | |
instruction construct | |||
2019-02-20 | Test: Fixed annoying warnings (and possible obscure bugs). | Maria Matejka | |
2019-02-20 | Filters: split the large filter.h file to smaller files. | Maria Matejka | |
This should be revised, there are still ugly things in the filter API. | |||
2019-02-20 | Filter: M4 convertors polished a bit. | Maria Matejka | |
2019-02-20 | Filter + Config: Fix bugs, tests and split symbols by type | Maria Matejka | |
2019-02-20 | GDB pretty printers: f_inst and f_val. | Maria Matejka | |
2019-02-20 | Filter: refactoring of instruction constructors | Maria Matejka | |
2019-02-20 | Filter refactoring: dropped the recursion from the interpreter | Maria Matejka | |
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. | |||
2019-02-20 | Filter refactoring: The instructions are converted to the switch body by M4 | Maria Matejka | |
2019-02-20 | Filter refactoring: Drop the roa check specific f_inst | Maria Matejka | |
2019-02-20 | Filter refactoring: The constant f_val is simply included inside the instruction | Maria Matejka | |
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. | |||
2019-02-20 | Filter refactoring: Changed arguments from separate unions to an array | Maria Matejka | |
2019-02-20 | Filter refactoring: Converted condition to three-args instruction | Maria Matejka | |
2019-02-20 | Filter refactoring: Some instructions eat up excessively much space. | Maria Matejka | |
2019-02-20 | Filter refactoring: Expanded the short instructions with common code. | Maria Matejka | |
This will make the further changes more straightforward. | |||
2019-02-20 | Filter refactoring: indentation fix | Maria Matejka | |
2019-02-20 | Filter refactoring: The values are now saved on a custom stack. | Jan Maria Matejka | |
This shall help with performance. | |||
2019-02-20 | Filter refactoring: Passing the resulting struct f_val as a pointer. | Jan Maria Matejka | |
This also drops the multiplexing of errors with the f_val itself together with the T_RETURN f_val type flag. | |||
2019-02-20 | Filter refactoring: Moved filter instruction definition to a separate file | Jan Maria Matejka | |