-
Notifications
You must be signed in to change notification settings - Fork 352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some work participant discovery #2086
base: master
Are you sure you want to change the base?
Commits on Sep 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for b67c90e - Browse repository at this point
Copy the full SHA b67c90eView commit details -
Centralized SPDP message scheduler
This replaces the per-participant timed-event for periodically broadcasting its SPDP message by a central device that schedules and sends the SPDP messages for all participants and maintains the set of addresses to which to send them. There are a number of benefits to this model: * We can make it more likely (certain, if we want) that SPDP messages to a single destination go out in a single packet, reducing the packet rate if there are many participants. * We are no longer dependent on an "addrset" for tracking the set of addresses to publish to (and we don't need to special-case SPDP writers). That means we now have the option of "aging" locators and lowering the frequency or giving up on them altogether if there just doesn't seem to be anything at that address.
Configuration menu - View commit details
-
Copy full SHA for 9d3067b - Browse repository at this point
Copy the full SHA 9d3067bView commit details -
Cache SPDP sample in participant
This eliminates looking up the SPDP sample in the WHC, which became rather painful with the introduction of serdata_plist, and eliminates the problem of the dispose+unregister not getting stored in the WHC (removed from the index, best-effort so not retained until ACKs come in). It also solves having to construct an address set based on the addresses in the SPDP administration and patching that into the SPDP writer, which was a horrible hack to begin with.
Configuration menu - View commit details
-
Copy full SHA for 0685ed1 - Browse repository at this point
Copy the full SHA 0685ed1View commit details -
Raise default MaxAutoParticipantIndex
The old default of 9 (so 10 participants) was hit rather often. This raises the default to 99 (so 100 participants). The only real downside is that increases the number of SPDP packets 10x if unicast discovery is used.
Configuration menu - View commit details
-
Copy full SHA for d72b56f - Browse repository at this point
Copy the full SHA d72b56fView commit details -
Fix memory leak on OOM in _confgen
Signed-off-by: Erik Boasson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 81e0612 - Browse repository at this point
Copy the full SHA 81e0612View commit details -
Configuration menu - View commit details
-
Copy full SHA for 51a4c9e - Browse repository at this point
Copy the full SHA 51a4c9eView commit details -
Pruning of discovery addresses
If one adds a host to the peer list, we add MaxAutoParticipantIndex+1 locators for it, but it generally doesn't make much sense to keep pinging all of them if there is no response. Especially if MaxAutoParticipantIndex is large, it causes a lot of periodic traffic.
Configuration menu - View commit details
-
Copy full SHA for e1a95a5 - Browse repository at this point
Copy the full SHA e1a95a5View commit details -
Track whether a SPDP locator was discovered
SPDP locators can be added by the configuration but also by discovering a peer that we (presumably) cannot reach via multicast. The question is what to do with such a discovered address when the peer is no longer there. If we learnt a locator through discovery and we know for certain that the peer is no longer there (i.e., received a dispose/unregister) and that there are also no other peers at the locator, it makes sense to remove the address: a new peer that shows up at that locator would presumably try to contact us. If instead the peer's lease expired, we need to keep pinging it for a some time in case it was just the disconnect. So for each SPDP locator we need to know why we have it in the table of addreses. Signed-off-by: Erik Boasson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 653c70f - Browse repository at this point
Copy the full SHA 653c70fView commit details -
Periodically trace outgoing message queue length
This replaces the somewhat silly (and ancient) tracing of the queue length on every insert.
Configuration menu - View commit details
-
Copy full SHA for 0f9b718 - Browse repository at this point
Copy the full SHA 0f9b718View commit details -
EADDRNOTAVAIL is not a generic error for sendmsg
Signed-off-by: Erik Boasson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for bba519e - Browse repository at this point
Copy the full SHA bba519eView commit details -
Consider pinging localhost when ppidx not default
Signed-off-by: Erik Boasson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4cb337b - Browse repository at this point
Copy the full SHA 4cb337bView commit details
Commits on Sep 24, 2024
-
Peers up to and including MaxAutoParticipantIndex
Signed-off-by: Erik Boasson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 40db716 - Browse repository at this point
Copy the full SHA 40db716View commit details
Commits on Sep 25, 2024
-
Add tests for various SPDP-related behaviours
Replaces src/core/xtests/spdp_scenarios.bash
Configuration menu - View commit details
-
Copy full SHA for 31e30cb - Browse repository at this point
Copy the full SHA 31e30cbView commit details