Age | Commit message (Collapse) | Author | |
---|---|---|---|
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-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 | |
2019-02-20 | Filter refactoring: Moved the bitfield bit position formula to route.h | Jan Maria Matejka | |
2019-02-20 | Filter refactoring: Moved the interpret macros inside the block | Jan Maria Matejka | |
2019-02-20 | Configure: Don't check for implicit fallthrough unless when debugging. | Jan Maria Matejka | |
2019-02-20 | Filter: Converted static global variables to a filter_state struct. | Jan Maria Matejka | |
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. | |||
2019-02-19 | HTML are no longer generated in srcdir | Ondrej Zajicek (work) | |
2019-02-19 | Doc: Detect SP/OpenSP automatically | Ondrej Zajicek (work) | |
2019-02-19 | Nest: Prevent withdraws from propagation back to source protocol (for ↵ | Ondrej Zajicek (work) | |
accepted mode) Update for one of previous patches, handles the the issue for first-accepted mode of route propagation. | |||
2019-02-17 | OSPF: Reset LSAs during area type change | Ondrej Zajicek (work) | |
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. | |||
2019-02-13 | OSPF: Basic support for DN-bit handling (RFC 4576) | Ondrej Zajicek (work) | |
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. | |||
2019-02-09 | OSPF: Do not originate Router-Information LSA | Ondrej Zajicek (work) | |
As we do not have much usage for it yet. | |||
2019-02-09 | Merge remote-tracking branch 'origin/mq-opt' | Ondrej Zajicek (work) | |
2019-02-05 | Nest: Improve export counter handling | Ondrej Zajicek (work) | |
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). |