summaryrefslogtreecommitdiff
path: root/filter
AgeCommit message (Collapse)Author
2021-01-12Filter: Disable debuggingMikael Magnusson
2021-01-12Filter: TLVMikael Magnusson
2020-12-28Filter: Fix return on top-levelOndrej Zajicek (work)
Broken detection of top-level case caused crash when return was called from top-of-stack position. It should behave as reject/accept. Thanks to Damian Zaremba for the bugreport.
2020-12-02Filter: Add 'weight' route attributeOndrej Zajicek (work)
Add 'weight' route attribute that allows to get and set ECMP weight of nexthops. Similar to 'gw' attribute, it is limited to the first nexthop, but it is useful for handling BGP multipath, where an ECMP route is merged from multiple regular routes.
2020-11-24Minor cleanups with cfg_allocz()Ondrej Zajicek (work)
Also fixes some more failed asserts due to add_tail().
2020-06-28Filter: Improve handling of sets in BGP path masksKazuki Yamaguchi
Compare the content of PM_ASN_SET in path masks. A reconfiguration was not properly triggering a reload of affected protocols when the members of a set in a path mask change. Also, update the printing code to so that it can display sets in a path mask.
2020-06-28Filter: Fix comparison of BGP path maskKazuki Yamaguchi
Add a missing return statement. Path masks with the same length were all considered the same. Comparing two with different length would cause out-of-bounds memory access.
2020-05-18Nest: Implement BGP path mask loop operatorOndrej Zajicek (work)
Implement regex-like '+' operator in BGP path masks to match previous path mask item multiple times. This is useful as ASNs may appear multiple times in paths due to path prepending for traffic engineering purposes.
2020-05-02Filter: Remove quitbird commandOndrej Zajicek (work)
No need for this debug filter command and it can be abused from CLI.
2020-05-01Filter: Don't alloc varargs array if its length would be zeroMaria Matejka
2020-05-01Filter: Removed forgotten dead codeMaria Matejka
2020-04-28Filter: fixed omitted overflow check in EC constructorMaria Matejka
2020-04-09Configuration strings are constant.Maria Matejka
This is merely a const propagation. There was no problem in there.
2020-03-26Filter: Remove mixed address tests and fix formattingOndrej Zajicek (work)
2020-03-26Filter: Optimize IPv4 prefix setsOndrej Zajicek (work)
Use separate IPv4 and IPv6 implementation of prefix sets. Just this change makes IPv4 prefix sets 60% smaller and 50% faster.
2020-01-07Filter: Fix typecheck for AND/OR.Ondrej Zajicek (work)
Do not apply dynamic type check for second argument of AND/OR, as it is not evaluated immediately like regular argument would be. Thanks to Mikael for the bugreport.
2019-12-17Test: Improve filter_testOndrej Zajicek (work)
Initial parsing of test.conf must be done directly in filter_test main, while reconfiguration is handled as a regular test. Also fix several minor issues in test code.
2019-12-12Filter: fix filter comparison testMaria Matejka
2019-12-10Filter: Fix function comparisonOndrej Zajicek (work)
Check the SYM_FLAG_SAME in new symbols. The old code checked that in old symbols (f2).
2019-12-09Filter: Add support for src/dst accessors for Flowspec and SADROndrej Zajicek (work)
2019-11-05Filter: Add type info for more instructionsOndrej Zajicek (work)
2019-11-05Filter: Improve typecheck error messagesOndrej Zajicek (work)
2019-11-05Filter: Better constant promotionOndrej Zajicek (work)
We use constant promotion from IPv4 to Router-ID values, as they have same literals. Instead of ad-hoc code in filter instructions, add constant promotion code to parse-time typecheck code.
2019-11-05Filter: Improved parse-time typechecksOndrej Zajicek (work)
2019-11-05Filter: Parse-time typechecksOndrej Zajicek
Most expressions can be type-validated in parse time. It is not strong enough to eliminate runtime checks, but at least one gets errors immediately during reconfigure.
2019-11-03Support for address family constantsOndrej Zajicek (work)
We already had them defined on BGP level, but they are more general.
2019-09-24Filter: Fix eval commandOndrej Zajicek (work)
2019-09-23Filters: Function body comparison result now used.Maria Matejka
Function bodies were compared in post-parse time, yet the result was not used and the functions were incorrectly considered the same as before. Now the result is used to reload affected protocols.
2019-09-10Filter: Fix crash with 'where' filters and function callsOndrej Zajicek (work)
The old 'where' code computed size value incorrectly, which leads to invalid instruction lines and filter errors or crashes.
2019-08-13Filter: Fixing empty block and never-executed-statement bugMaria Matejka
2019-08-06Filter: Allow to use set constants / expressions in path masksOndrej Zajicek (work)
Allow to not only use set literals in path masks, but also existing set constants or set expressions.
2019-08-06Filter: Allow to use sets in path masksOndrej Zajicek (work)
2019-07-30Conf: Fixed symbol redefinitionMaria Matejka
2019-07-15Filter: further split of print & die to FI_PRINT, FI_FLUSH and FI_DIEMaria Matejka
2019-07-15Filter: Simpler filter context allocationMaria Matejka
2019-07-15Filter: FID_MEMBER debug string is a C constant stringMaria Matejka
2019-07-15Filter: Converted FI_PRINT and FI_PATHMASK_CONSTRUCT to VARARGMaria Matejka
2019-07-15Filter: fixed excessive stack allocation in functions with args but no local ↵Maria Matejka
vars
2019-07-15Filter: lots of documentationMaria Matejka
2019-07-15Filter: Don't write out when re-evaluating filter for internal purposes.Maria Matejka
2019-07-15Filter: Don't fail badly when trying to access non-existent route in config timeMaria Matejka
2019-07-10Filter: Minor cleanupsOndrej Zajicek (work)
2019-07-03Merge branch 'mq-filter-stack' of gitlab.labs.nic.cz:labs/bird into ↵Maria Matejka
mq-filter-stack
2019-07-03Filter: CLI command to dump all the linearized filtersMaria Matejka
2019-07-03Filter: Split printing and dyingMaria Matejka
2019-07-03Dynamic attributes definition split whether it is bitmask or not.Maria Matejka
2019-07-02Filter: Dropped some more irrelevant whitespace from generated filesMaria Matejka
2019-07-02Filter: Nicer whitespaces in generated inst-gen.hMaria Matejka
2019-07-02Filter: documentation of the M4 preprocessorMaria Matejka
2019-07-02Filter: GCC, don't complain about indentation in generated code.Maria Matejka