Skip to content

Conversation

camshaft
Copy link
Contributor

@camshaft camshaft commented Mar 13, 2025

Description of changes:

This change adds a source_queue_id to control packets. This allows clients to discover the actual server's queue ID sooner rather than waiting for a stream packet to come back. I've also implemented logic to stop sending the source queue ID as soon as we get a packet back from the peer with the correct queue id.

Call-outs:

This also moves the source_control_port field to be unused for Stream and Control packets. Note that streams still write a 0 for backward compatibility. The control frames are only used for UDP-based streams, which are still WIP so it can be removed entirely there. Long term, we can potentially reuse the space for something else.

The reason for the removal is it's been mostly replaced with the source_queue_id functionality. There is still a potential port migration on the server after it creates a dedicated owned socket for the stream but that only happens once on the initial response and it would be better to look at the source_port field in the UDP datagram in case there's a NAT in the middle that is translating our ports.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@camshaft camshaft force-pushed the camshaft/dc-control-source-queue-id branch 3 times, most recently from 87059d1 to 8da19c7 Compare March 13, 2025 19:34
@camshaft camshaft force-pushed the camshaft/dc-control-source-queue-id branch from 8da19c7 to 484ed32 Compare March 13, 2025 19:38
@camshaft camshaft marked this pull request as ready for review March 13, 2025 19:43
@camshaft camshaft merged commit e4574f6 into main Mar 13, 2025
126 checks passed
@camshaft camshaft deleted the camshaft/dc-control-source-queue-id branch March 13, 2025 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants