summaryrefslogtreecommitdiff
path: root/filter
AgeCommit message (Collapse)Author
2018-03-13Merge branch 'master' into int-newJan Maria Matejka
2018-03-13Filters: Removed FI_COMMA, not used for 19 years.Jan Maria Matejka
This instruction was removed in the commit linked below and never used ever again. Rest in peace. commit 84c7e1943f0dbf896b1dd8d02a21120aa00463f4 Author: Pavel Machek <pavel@ucw.cz> Date: Tue Mar 2 19:49:28 1999 +0000
2018-03-13Merge branch 'master' into int-newJan Maria Matejka
2018-03-13Filter: recursion to loopJan Maria Matejka
It was supposed to do tail-recursion in interpret() but it didn't compile as such. Converting it to loop makes a significant filter performance improvement for flat filters.
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-08Filter: the test conf checks also a bit of BGP argsJan Maria Matejka
Uncommented an old test.
2018-03-08Config: Dropped the ipv4:netmask4 syntax for IPv4 prefixes.Jan Maria Matejka
2018-02-13Handle properly enums for extended attributesOndrej Zajicek (work)
2018-01-23Merge branch 'master' into int-newOndrej Zajicek (work)
2018-01-16Filter: Allow silent filter executionOndrej Zajicek (work)
A filter should log messages only if executed explicitly (e.g., during route export or route import). When a filter is executed for technical reasons (e.g., to establish whether a route was exported before), it should run silently.
2018-01-16BGP: Require explicit import and export policies for EBGP channelsOndrej Zajicek (work)
To comply with RFC 8212 requirements.
2018-01-03Filter: Handle undefined BGP paths as emptyOndrej Zajicek (work)
The same is already done for clists. Also fixes defined() to work properly for paths and clists.
2017-12-08Filter: Remove old BGP path mask syntax from testsOndrej Zajicek (work)
2017-12-08Docs: Update to v2.0Jan Maria Matejka
2017-12-07Merge commit '1e8721e2aeccfbc3f533e8b8abc07582cee77e9a' into int-newOndrej Zajicek (work)
2017-11-09Filter test: typo fixJan Maria Matejka
2017-10-04RAdv: Support for more specific routes (RFC 4191)Michal 'vorner' Vaner
The patch implements Default Router Preferences and More-Specific Routes (RFC 4191) for RAdv protocol, allowing to announce router preference and more specific routes in router advertisements. Routes can be exported to RAdv like to regular routing protocols. Some cleanups, bugfixes and other changes done by Ondrej Zajicek.
2017-09-20filter: Allow assigning enums into extended attributesMichal 'vorner' Vaner
They are internally ints, but they got refused as a wrong type. This fixes setting of the BGP origin and is also needed for RA.
2017-08-09Merge branch 'master' into int-newOndrej Zajicek (work)
2017-06-19Filters: Do not clamp EC set values to 16 bit for EC_GENERICsOndrej Zajicek (work)
Thanks to Lennert Buytenhek <buytenh@wantstofly.org> for the patch.
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-16Linpool: default allocation sizeJan Moskyto Matejka
2017-04-26Test: Fix broken test for filtersOndrej Zajicek (work)
2017-04-26Merge branch 'int-new' of gitlab.labs.nic.cz:labs/bird into int-newJan Moskyto Matejka
2017-04-26Test: fixed broken test for VPN RD outputJan Moskyto Matejka
2017-04-18Filter: Fix reconfiguration of roa_check()Ondrej Zajicek (work)
2017-03-22Filter: Check whether IP is 4 or 6Jan Moskyto Matejka
2017-03-14Minor cleanupsOndrej Zajicek (work)
BTW, 'prefices' is hypercorrection, as 'prefix' is from 'praefixum' with plural 'praefixa'.
2017-03-13Filters: VPN Route Distinguishers, Prefix Type, Docs UpdateJan Moskyto Matejka
2017-03-09Filter: ROA check test and mixed prefix testJan Moskyto Matejka
2017-02-22Merge branch 'int-new' into nexthop-mergedJan Moskyto Matejka
2017-02-20Several minor fixesOndrej Zajicek (work)
2017-02-08Merge branch 'master' into int-newOndrej Zajicek (work)
2017-01-24Filter: Fix missing case for !~ operatorOndrej Zajicek (work)
Thanks to Vincent Bernat for the patch.
2016-12-22Removing (struct rta)->cast. Never used.Jan Moskyto Matejka
2016-12-22Merged multipath and single-path data structures.Jan Moskyto Matejka
Dropped struct mpnh and mpnh_*() Now struct nexthop exists, nexthop_*(), and also included struct nexthop into struct rta. Also converted RTD_DEVICE and RTD_ROUTER to RTD_UNICAST. If it is needed to distinguish between these two cases, RTD_DEVICE is equivalent to IPA_ZERO(a->nh.gw), RTD_ROUTER is then IPA_NONZERO(a->nh.gw). From now on, we also explicitely want C99 compatible compiler. We assume that this 20-year norm should be known almost everywhere.
2016-12-07Basic flow specification support (RFC 5575)Ondrej Zajicek (work)
Add flow4/flow6 network and rt-table type and operations, config grammar and static protocol support. Squashed flowspec branch from Pavel Tvrdik.
2016-12-07Merge branch 'int-new-rpki-squashed' (early part) into int-newJan Moskyto Matejka
2016-12-07BGP redesignOndrej Zajicek (work)
Integrated and extensible BGP with generalized AFI handling, support for IPv4+IPv6 AFI and unicast+multicast SAFI.
2016-12-07filter/test.conf: add ROA check and operator testsPavel Tvrdik
2016-12-07Add `.maxlen' operator to all ROA prefixes in filtersPavel Tvrdik
Example: bird> eval (1.2.0.0/16 max 20 as 1234).maxlen 20 Todo: Should be described in user docs
2016-12-07Add `.asn' operator to all ROA prefixes in filtersPavel Tvrdik
Example: bird> eval (1.2.0.0/16 max 20 as 1234).asn 1234 Todo: Should be described in user docs
2016-12-07RPKI protocol with one cache server per protocolPavel TvrdĂ­k
The RPKI protocol (RFC 6810) using the RTRLib (http://rpki.realmv6.org/) that is integrated inside the BIRD's code. Implemeted transports are: - unprotected transport over TCP - secure transport over SSHv2 Example configuration of bird.conf: ... roa4 table r4; roa6 table r6; protocol rpki { debug all; # Import both IPv4 and IPv6 ROAs roa4 { table r4; }; roa6 { table r6; }; # Set cache server (validator) address, # overwrite default port 323 remote "rpki-validator.realmv6.org" port 8282; # Overwrite default time intervals retry 10; # Default 600 seconds refresh 60; # Default 3600 seconds expire 600; # Default 7200 seconds } protocol rpki { debug all; # Import only IPv4 routes roa4 { table r4; }; # Set cache server address to localhost, # use default ports tcp => 323 or ssh => 22 remote 127.0.0.1; # Use SSH transport instead of unprotected transport over TCP ssh encryption { bird private key "/home/birdgeek/.ssh/id_rsa"; remote public key "/home/birdgeek/.ssh/known_hosts"; user "birdgeek"; }; } ...
2016-11-30filter/test.conf: Minor changes in order of callsPavel Tvrdik
2016-11-30Remove filter/test_bgp_filtering.conf filePavel Tvrdik
It was an example filtering configuration from BIRD's wiki.
2016-11-30Merge test6.conf IPv6 tests into test.confPavel Tvrdik
2016-11-16filter/test.conf: Extend testsPavel Tvrdik
2016-11-16filter/test.conf: Reorder testsPavel Tvrdik
Tests are sorted from trivial tests to more complex tests
2016-11-16filter/test.conf: Replace print func with assert and formatPavel Tvrdik
2016-11-16Birdtest: Add function format in grammar for stringify expressionPavel Tvrdik