- Apr 14, 2023
-
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
- Apr 12, 2023
-
-
Maria Matejka authored
-
- Apr 06, 2023
-
-
Maria Matejka authored
-
Maria Matejka authored
When several BGPs requested a BFD session in short time, chances were that the second BGP would file a request while the pickup routine was still running and it would get enqueued into the waiting list instead of being picked up. Fixed this by enforcing pickup loop restart when new requests got added, and also by atomically moving the unpicked requests to a temporary list to announce admin down before actually being added into the wait list.
-
- Apr 04, 2023
-
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
Now sk_open() requires an explicit IO loop to open the socket in. Also specific functions for socket RX pause / resume are added to allow for BGP corking. And last but not least, socket reloop is now synchronous to resolve weird cases of the target loop stopping before actually picking up the relooped socket. Now the caller must ensure that both loops are locked while relooping, and this way all sockets always have their respective loop.
-
Maria Matejka authored
If there are lots of loops in a single thread and only some of the loops are actually active, the other loops are now kept aside and not checked until they actually get some timers, events or active sockets. This should help with extreme loads like 100k tables and protocols. Also ping and loop pickup mechanism was allowing subtle race conditions. Now properly handling collisions between loop ping and pickup.
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
Repeated pipe refeed should not end route refresh as the prune routine may start pruning otherwise valid routes. The same applies for BGP repeated route refresh.
-
Maria Matejka authored
When changing default table behavior, I missed that it enabled to configure multiple master4 and master6 tables. Now BIRD recognizes it and fails properly.
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
The import table feed wasn't resetting the table-specific route values like REF_FILTERED and thus made the route look like filtered even though it should have been re-evaluated as accepted.
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
This brought unnecessary complexity into the decision procedures while the performance aspects weren't worth it. It just saved one ea_list traversal when many others are also done.
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
The "dump *" commands are totally garbled by the time annotations.
-
Ondřej Zajíček authored
The change 371eb490 introduced early free of old_config. Unfortunately, it did not properly check whether it is not still in use (blocked by obstacle during reconfiguration). Fix that. It also means that we still could have a short peak when three configs are in use (when a new reconfig is requeste while the previous one is still active).
-
Maria Matejka authored
-
Maria Matejka authored
-
- Feb 14, 2023
-
-
The babel protocol normally sends all its messages as multicast packets, but the protocol specification allows most messages to be sent as either unicast or multicast, and the two can be mixed freely. In particular, the babeld implementation can be configured to unicast updates to all peers instead of sending them as unicast. Daniel discovered that this can cause problems with the packet counter checks in the MAC extension due to packet reordering. This happens on WiFi networks where clients have power save enabled (which is quite common in infrastructure networks): in this case, the access point will buffer all multicast traffic and only send it out along with its beacons, leading to a maximum buffering in default Linux-based access point configuration of up to 200 ms. This means that a Babel sender that mixes unicast and multicast messages can have the unicast messages overtake the multicast messages because of this buffering; when authentication is enabled, this causes the receiver to discard the multicast message when it does arrive because it now has a packet counter value less than the unicast message that arrived before it. Daniel observed that this happens frequently enough that Babel ceases to work entirely when runner over a WiFi network. The issue has been described in draft-ietf-babel-mac-relaxed, which is currently pending RFC publication. That also describes two mitigation mechanisms: Keeping separate PC counters for unicast and multicast, and using a reorder window for PC values. This patch implements the former as that is the simplest, and resolves the particular issue seen on WiFi. Thanks to Daniel Gröber for the bugreport. Minor changes from committer.
-
The patch implements an IPv4 via IPv6 extension (RFC 9229) to the Babel routing protocol (RFC 8966) that allows annoncing routes to an IPv4 prefix with an IPv6 next hop, which makes it possible for IPv4 traffic to flow through interfaces that have not been assigned an IPv4 address. The implementation is compatible with the current Babeld version. Thanks to Toke Høiland-Jørgensen for early review on this work. Minor changes from committer.
-
- Feb 07, 2023
-
-
Maria Matejka authored
-