summaryrefslogtreecommitdiff
path: root/conf
AgeCommit message (Collapse)Author
2019-06-25Conf/Filters: Moved argument count to conf scopeMaria Matejka
2019-06-13String: bstrtoul macro expanded to bstrtoul10 and 16Maria Matejka
2019-05-22Filter: Some people can't pronounce "postfixify" correctly. Let's try ↵Jan Maria Matejka
"linearize" instead. This is just a naming change.
2019-05-21Filter: Store variables and function arguments on stackJan Maria Matejka
2019-05-17Lexer now returns known sym / unknown sym / keywordMaria Matejka
2019-03-18Merge branch 'master' into HEADMaria Matejka
2019-03-18Build: Automatic dependency tracking for generated filesMaria Matejka
2019-02-26Filters: comparison of functions and filters cachingMaria Matejka
2019-02-25Custom number parser to speed up config parsingMaria 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-25Conf: Lexer parses quoted strings in a more descriptive wayMaria Matejka
2019-02-22Conf: Switch for faster (and slightly bigger) lexerMaria Matejka
2019-02-22Conf: Switch for faster (and slightly bigger) lexerMaria Matejka
2019-02-20Filter: Fixed bugs in FI_CALL and FI_SWITCHMaria Matejka
2019-02-20Conf: Symbol implementation converted from void pointers to unionMaria Matejka
... and consted some declarations.
2019-02-20Conf: Fixed makefilesMaria Matejka
2019-02-20Filters: 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-20Filter + Config: Fix bugs, tests and split symbols by typeMaria Matejka
2019-02-20Filter: refactoring of instruction constructorsMaria Matejka
2019-02-20Filter refactoring: dropped the recursion from the interpreterMaria 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-20Filter 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.
2018-12-14Doc: Rename code documentation files back to DocOndrej Zajicek (work)
2018-12-06Custom route attributesMaria Matejka
For local route marking purposes, local custom route attributes may be defined. These attributes are seamlessly stripped after export filter to every real protocol like Kernel, BGP or OSPF, they however pass through pipes. We currently allow at most 256 custom attributes. This should be much faster than currently used bgp communities for marking routes.
2018-11-20The MRT protocolOndrej Zajicek (work)
The new MRT protocol is responsible for periodic RIB table dumps in the MRT format (RFC 6396). Also the existing code for BGP4MP MRT dumps is refactored and splitted between BGP to MRT protocols, will be more integrated into MRT in the future. Example: protocol mrt { table "*"; filename "%N_%F_%T.mrt"; period 60; } It is partially based on the old MRT code from Pavel Tvrdik.
2018-09-11Conf: Show the line:char position where the syntax error happensJan Maria Matejka
2018-08-14Bison: A bit more verbose error messages in config.Jan Maria Matejka
2018-08-14M4: generate synchronization linesJan Maria Matejka
This also includes Bison version check. Versions before 3.0 don't support them in a reliable way and we don't promise to work with versions older than 2.4.
2018-06-26Doc: renamed progdoc files Doc -> progdoc to fix collision with doc/ folder ↵Maria Matejka
on case-insensitive filesystems
2018-06-26Config: Dropping CF_ADDTO.Jan Maria Matejka
2018-03-13Merge branch 'master' into int-newJan Maria Matejka
2018-03-13Filter: Instruction codes named as enumMaria Jan Matejka
The two-letter instructions were quite messy but they could be easily read from memory dumps. Now GDB (since 2012) supports pretty printing enum values and GCC checks the switch construction for missing enum values so we are converting the nice two-byte values to enums. Anyway, the enum still keeps the old two-byte values to be able to read the instruction codes even without GDB from plain memory dump.
2018-03-08Config: Dropped the ipv4:netmask4 syntax for IPv4 prefixes.Jan Maria Matejka
2018-03-07Babel: Fix build with restricted protocol setOndrej Zajicek (work)
All keywords used in Babel config have to be declared locally. Thanks to Leo Vandewoestijne for the bugreport.
2018-02-13Add support for source-specific IPv6 routes to BIRD coreOndrej Zajicek (work)
This patch adds support for source-specific IPv6 routes to BIRD core. This is based on Dean Luga's original patch, with the review comments addressed. SADR support is added to network address parsing in confbase.Y and to the kernel protocol on Linux. Currently there is no way to mix source-specific and non-source-specific routes (i.e., SADR tables cannot be connected to non-SADR tables). Thanks to Toke Hoiland-Jorgensen for the original patch. Minor changes by Ondrej Santiago Zajicek.
2017-12-12Revive FIB and kernel MPLS codeOndrej Zajicek (work)
2017-12-08Docs: Update to v2.0Jan Maria Matejka
2017-12-07Timers: Revert temporary names and remove old timer.hOndrej Zajicek (work)
2017-12-07Timers: Fix TBF and some last remainsOndrej Zajicek (work)
2017-12-07Nest: Update to new timersOndrej Zajicek (work)
2017-12-07Timers: Add typecast to unit-converting macrosOndrej Zajicek (work)
2017-12-07Timers: Parse and format functions for microsecond timesOndrej Zajicek (work)
Date/time output (e.g. in logs, show commands) can use %f to specify subsecond time. By default, millisecond precision is used in output.
2017-12-07Timers: Replace old timers with microsecond timersOndrej Zajicek (work)
The old timer interface is still kept, but implemented by new timers. The plan is to switch from the old inteface to the new interface, then clean it up.
2017-05-30Merge branch 'master' into int-newOndrej Zajicek (work)
2017-05-30Workaround for older bisonsOndrej Zajicek (work)
2017-05-25Merge branch 'master' into int-newOndrej Zajicek (work)
2017-05-25Conf: Replace keyword and symbol hash table with generic hash table.Ondrej Zajicek (work)
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-23Change parser to handle numbers as unsignedOndrej Zajicek (work)
Lexer always parsed numbers as unsigned, but parser handled them as signed and grammar contained many unnecessary checks for negativity.
2017-05-23Add a hint for an invalid IP prefixPavel Tvrdik
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-23Minor cleanups and fixesOndrej Zajicek (work)
2017-05-18Fix VPN-RD parsing on 32-bit systemsOndrej Zajicek (work)
When shift count >= width of type the behavior is undefined.
2017-05-16Linpool: default allocation sizeJan Moskyto Matejka