summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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)
2020-04-22Tests: Activate BGP testOndrej Zajicek (work)
2020-04-15BGP: Fix handling of 16bit-only ASN translationNasato Goto
The bug generated invalid AGGREGATOR attribute during translation of 32bit ASN to 16bit-only BGP peer. The patch fixes that.
2020-04-09Configuration strings are constant.Maria Matejka
This is merely a const propagation. There was no problem in there.
2020-04-08Doc: Update prefix set commentOndrej Zajicek (work)
2020-04-05Fletcher16 test fixed to work at bigendian architectures.Maria Matejka
To be honest, it was wrong in concept, anyway it accidentally worked.
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-03-14RIP: Improvements to demand circuit modeOndrej Zajicek (work)
Restart iface after changing demand circuit mode during reconfiguration. Fix next_regular interval reset during reconfiguration. Send flushing response when iface goes down.
2020-03-12Perf: changed route update pattern to be more like common protocolsMaria Matejka
2020-03-07Netlink: Handle interfaces with missing broadcast addressesOndrej Zajicek (work)