summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-01Filter: Getting rid of RESULT_OK. Adding RESULT_VOID.Maria Matejka
This is a preparation for filter pre-evaluation.
2019-07-01Filter: The interpreter code now shares its diversion with constructorMaria Matejka
This is a preparation for filter pre-evaluation.
2019-07-01BGP: Prefix hash is too small, increase its max size.Maria Jan Matejka
This doesn't make any change for you until you have millions of updates waiting to be sent. Increasing the max hash size from 2^20 to 2^24.
2019-07-01BGP: split tx explicitlyMaria Jan Matejka
If BGP has too many data to send and BIRD is slower than the link, TX is always possible until all data is sent. This patch limits maximum number of generated BGP messages in one iteration of TX hook.
2019-06-30Add mock-up function for unit testsOndrej Zajicek (work)
They failed without it.
2019-06-30Doc: OSPF graceful restart optionsOndrej Zajicek (work)
2019-06-30OSPF: Support for graceful restartOndrej Zajicek (work)
Implement OSPFv2 (RFC 3623) and OSPFv3 (RFC 5187) graceful restart, for both restarting and helper sides. Graceful restart is initiated by 'graceful down' command.
2019-06-30Nest: Add command to request graceful restartOndrej Zajicek (work)
When 'graceful down' command is entered, protocols are shut down with regard to graceful restart. Namely Kernel protocol does not remove routes and BGP protocol does not send notification, just closes the connection.
2019-06-28Filter: renaming pointers for consistencyMaria Matejka
The struct f_inst * is now always "what" and the union member pointer is always "whati".
2019-06-27Filter: A little cleanup of M4 interpreter generatorMaria Matejka
2019-06-25Merge remote-tracking branch 'refs/remotes/origin/mq-filter-stack' into ↵Maria Matejka
mq-filter-stack
2019-06-25Conf/Filters: Moved argument count to conf scopeMaria Matejka
2019-06-21Filter instructions don't confuse now v1 and res.Maria Matejka
2019-06-19Revert "Filter: Dropped the setter instructions in favor of direct result ↵Maria Matejka
storage." This reverts commit bd91338246c1ba40358243f1bdf5a6dbd3a29f35.
2019-06-13String: bstrtoul macro expanded to bstrtoul10 and 16Maria Matejka
2019-06-13Filter: removal of semantically insane consts in filter_commitMaria Matejka
2019-06-12Add mock-up function for unit testsOndrej Zajicek (work)
They failed without it.
2019-06-12Add CLI command to test reconfiguration statusOndrej Zajicek (work)
Based on patch from Kenth Eriksson <kenth.eriksson@infinera.com>.
2019-06-12BIRD coding conventionsKenth Eriksson
Added Emacs config file describing BIRD coding conventions, as suggested by Kenth Eriksson based on existing practice.
2019-06-12BGP: Fix bug introduced in one of last patchesOndrej Zajicek (work)
2019-06-03Filter: Dropped the setter instructions in favor of direct result storage.Maria Matejka
This should help filter performance a bit.
2019-05-30Filter: Just a little comments in filter structureMaria Matejka
2019-05-29Filter: Stacks moved to thread-local storage if available.Maria Matejka
2019-05-23Filters: If somebody doesn't like _Thread_local, don't fail for now, just be ↵Jan Maria Matejka
a little slower. When the parallel execution comes into place, we'll likely enforce this C11 feature. It's much simpler and also faster than pthread_[sg]etspecific().
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-20Filter: Making the filter state thread local.Jan Maria Matejka
While having the filter code still reentrant if we really need, the compiler can now do constant propagation and address the thread local storage directly to save some computation time.
2019-05-17Lexer now returns known sym / unknown sym / keywordMaria Matejka
2019-04-30Doc: Dynamic BGPOndrej Zajicek (work)
2019-04-30BGP: Compliance with RFC8203bisAlexander Azimov
2019-04-30BGP: Output Local AS number in show protocolOndrej Zajicek (work)
Useful for implementation of agents implementing the SNMP-BGP MIB, which requires the local AS of a session to be specified. Thanks to Jan-Philipp Litza for the patch.
2019-04-30BGP: Dynamic BGPOndrej Zajicek (work)
Support for dynamically spawning BGP protocols for incoming connections. Use 'neighbor range' to specify range of valid neighbor addresses, then incoming connections from these addresses spawn new BGP instances.
2019-04-24Small type in doc.Ondrej Filip
2019-04-12OSPFv3: Fix some overlooked cases in IPv4 modeOndrej Zajicek (work)
Prefixes with max length (/32) were not handled properly. Thanks to bauen1 for the bugreport.
2019-04-08BGP: Handle corner cases in event orderingOndrej Zajicek (work)
When BGP connection is opened, it may happen that rx hook (with remote OPEN) is called before tx hook (for local OPEN). Therefore, we need to do internal changes (like setting local_caps) synchronously with OPENSENT transition and we need to ensure that OPEN is sent before KEEPALIVE.
2019-04-03BGP: Promiscuous ASN modeOndrej Zajicek (work)
Allow to specify just 'internal' or 'external' for remote neighbor instead of specific ASN. In the second case that means BGP peers with any non-local ASNs are accepted.
2019-04-02BGP: Separate runtime and config usage of local/remote ip and as fieldsOndrej Zajicek (work)
2019-03-23Filter: fixed error-checking bug in !~ operatorMaria Matejka
2019-03-22Fixed one warning and one undefined value.Maria Matejka
2019-03-20Fixed an undefined symbol bug in CLI introduced by filter refactoringMaria Matejka
2019-03-19Doc: Route attribute cleanupsOndrej Zajicek (work)
2019-03-19BGP: Mandatory option for channelsOndrej Zajicek (work)
Allow to mark channel to be mandatory, and do not allow BGP sessions if no common AFI/SAFI is established.
2019-03-18BGP: Handle case where capabilites are not usedOndrej Zajicek (work)
If peer does not announce capabilities at all, or when we have capabilities disabled, handle that as implicit IPv4 unicast.
2019-03-18Merge branch 'master' into HEADMaria Matejka
2019-03-18Build: Automatic dependency tracking for generated filesMaria Matejka
2019-03-15Perf: fixed stupid allocation bugMaria Matejka
2019-03-15Gitlab 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-14Nest: Update handling of temporary attributesOndrej 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-06OSPF: Improved handling of tmpattrsOndrej 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-06Faster filters: documentation on what is happening thereMaria Matejka