summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-06-10OSPF: Fix bad header length testOndrej Zajicek (work)
Thanks to Slava Aseev for the thorough bugreport.
2020-06-03Doc: Add 'ptp address' to OSPF doc overviewKenth Eriksson
2020-06-03Test: Fix unit test mockupsOndrej Zajicek (work)
2020-06-03Netlink: Fix parsing of MPLS multipath routesKazuki Yamaguchi
Add support for RTA_MULTIPATH attribute parsing for AF_MPLS routes. BIRD is capable of installing a multipath route into kernel on Linux, but it would not be seen because parsing fails. This made BIRD attempt to install the same route repeatedly. (The patch minorly updated by committer)
2020-06-03RPKI: Fix unnecessary reconnection on reconfigurationKazuki Yamaguchi
Compare the new timing parameters with the old configuration, not with the temporary state of the current connection. The timing values in struct rpki_cache is updated by a version 1 End Of Data PDU, unless this behavior is suppressed by the configuration explicitly by the "keep" keyword. Consequently, every reconfiguration of BIRD triggers a reconnection even if it is not necessary.
2020-06-03Log: Do not open logfiles when parse-and-exit option is activeOndrej Zajicek (work)
This is a quick workaround for an issue where configured logfiles are opened/created during parsing of a config file even when parse-and-exit option is active. We should later refactor the logging code to avoid opening log during parsing altogether.
2020-06-02OSPF: setting list node to zero before enlistingMaria Matejka
2020-05-26Babel: Set onlink flag for IPv4 routes with unreachable next hopOndrej Zajicek (work)
If the next hop of a route is not a reachable address, the route should be installed as onlink. This enables a configuration common in mesh networks where the mesh interface is assigned a /32 and babel handles the routing by installing onlink routes. Thanks to Toke Hoiland-Jorgensen for the patch.
2020-05-26OSPF: Fix handling of unnumbered PtPsOndrej Zajicek (work)
This issue has a long history. In 2012, we changed data field for unnumbered PtP links from iface id (specified by RFC) to IP address based on reports of bugs in Quagga that required it, and we used out-of-band information to distinquish unnumberred PtPs with the same local IP address. Then with OSPF graceful restart implementation, we found that we can no longer use out-of-band information, and we need to use only LSAdb info for routing table calculation, but i forgot to finish handling of this case, so multiple unnumbered PtPs with the same local IP addresses were broken. Considering that even recent Mikrotik RouterOS has broken next hop calculation that depends on IP address in PtP link data field, we cannot just switch back to the iface id for unnumbered PtP links. The patch makes two changes: First, it goes back to use out-of-band (position) info for distinguishing local interfaces in SPF when graceful restart is not enabled, while still uses LSAdb-only approach for SPF calculation when graceful restart is enabled. Second, it adds OSPF interface option 'ptp address', which controls whether IP address or iface id is used in data field. It is enabled by default except for unnumbered PtP links with enabled graceful restart. Thanks to Kenth Eriksson for the bugreport and Joakim Tjernlund for suggestions.
2020-05-19Nest: Allow key id 0Ondrej Zajicek (work)
There is nothing in RFCs specifying that id 0 is not allowed. Some implementations does not support it, while some other use key id 0 by default. We allow it but start with key id 1 by default. Thanks to Kenth Eriksson for the bugreport.
2020-05-19RIP: Triggered RIP (demand circuit) documentationOndrej Zajicek (work)
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-12RIP: Fix handling of passive mode for demand circuit interfacesOndrej Zajicek (work)
2020-05-11Nest: Fix neighbor handling for colliding rangesOndrej Zajicek (work)
Resolve neighbors using longest prefix match. Although interface ranges should not generally collide, it may happen for unnumbered links. Thanks to Kenth Eriksson for the bugreport.
2020-05-05Tests: Activate BGP-int testOndrej Zajicek (work)
2020-05-05Tests: Change unsupported Ubuntu 19.04 for supported version 19.10Matous Holinka
2020-05-02Filter: Remove quitbird commandOndrej Zajicek (work)
No need for this debug filter command and it can be abused from CLI.
2020-05-01Fixed a harmless warning in production buildMaria Matejka
2020-05-01Merge remote-tracking branch 'origin/mq-static-analysis'Maria Matejka
2020-05-01Slab: Init node in slab head to NULLs.Maria Matejka
2020-05-01Timer: Adding missing initializer.Maria Matejka
2020-05-01Lexer: strtoul shall never set endptr to NULL; it should be an errorMaria Matejka
2020-05-01Unix socket: Path length check directly before copying the path.Maria Matejka
This is not needed as the string is always short enough, anyway it may be needed in future and one strlen during BIRD start is cheap enough.
2020-05-01Lists: Replaced replace_node() by update_node() which is the only use of ↵Maria Matejka
that function.
2020-05-01Lists: fix a stupid sanitizer bugMaria Matejka
2020-05-01Uninitialized list nodes fixesMaria Matejka
2020-05-01Nest: Added const to ea_show just to declare that this shouldn't really ↵Maria Matejka
change anything
2020-05-01OSPF: Zero-initialization of a temporary neighborMaria Matejka
2020-05-01Nest: Several assumptions to tame the static analyzerMaria Matejka
2020-05-01Nest: Assumption in rt-show for not-so-intuitive invariant.Maria Matejka
2020-05-01Static scanner and expensive debugging setup fixMaria Matejka
2020-05-01RPKI: fixed rare va_list leakMaria Matejka
2020-05-01Static check: Don't report dead codeMaria Matejka
2020-05-01OSPF: Adding a note about a static analyzer result.Maria Matejka
2020-05-01OSPF: variable-length array of size 0 replaced by alloca()'d pointerMaria Matejka
NULL pointer is safer than a random pointer onto stack if this function gets changed and eventually broken.
2020-05-01List expensive check.Maria Matejka
2020-05-01Expensive check declarationMaria Matejka
Intended to be run at every operation with complex data structures to check their consistency and validity.
2020-05-01IPv6 address parser: fail on incomplete addressesMaria Matejka
2020-05-01Filter: Don't alloc varargs array if its length would be zeroMaria Matejka
2020-05-01Filter: Removed forgotten dead codeMaria Matejka
2020-05-01Non-null function argument declarationMaria Matejka
2020-04-29BGP: Fix handling of strange IPv6 link-local-only next hopsOndrej Zajicek (work)
There are three common ways how to encode IPv6 link-local-only next hops: (:: ll), (ll), and (ll ll). We use the first one but we should accept all three. The patch fixes handling of the last one. Thanks to Sebastian Hahn for the bugreport.
2020-04-28More assertion categoriesMaria Matejka
2020-04-28Not calling memcpy with n=0.Maria Matejka
2020-04-28Filter: fixed omitted overflow check in EC constructorMaria Matejka
2020-04-28Makefile rule for static analyzerMaria Matejka
2020-04-28Tests: Activate BGP-auth testOndrej Zajicek (work)
2020-04-28Tests: Activate OSPF-VRF testOndrej Zajicek (work)