Skip to content
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

[ntcore] Networking improvements #5659

Merged
merged 2 commits into from
Oct 5, 2023

Conversation

PeterJohnson
Copy link
Member

@PeterJohnson PeterJohnson commented Sep 18, 2023

  • Utilize TrySend to properly backpressure network traffic
  • Split updates into reasonable sized frames using WS fragmentation
  • Use WS pings for network aliveness (requires 4.1 protocol revision)
  • Measure RTT only at start of connection, rather than periodically (this avoids them being affected by other network traffic)
  • Refactor network queue
  • Refactor network ping, ping from server as well
  • Improve meta topic performance
  • Update NT3 to use TrySend as well
  • Document protocol v4.1
  • Implement unified approach for network value updates (currently client and server use very different approaches) that respects requested subscriber update frequency

This adds a new protocol version (4.1) due to WS bugs in prior versions.

Fixes #5223.
Fixes #5224.
Fixes #5233.
Fixes #5262.

@PeterJohnson PeterJohnson added the component: ntcore NetworkTables library label Sep 18, 2023
@PeterJohnson PeterJohnson force-pushed the nt-trysend branch 2 times, most recently from 72adcc6 to 0c30737 Compare October 1, 2023 22:11
@PeterJohnson PeterJohnson marked this pull request as ready for review October 1, 2023 22:11
@PeterJohnson PeterJohnson requested a review from a team as a code owner October 1, 2023 22:11
- Utilize TrySend to properly backpressure network traffic
- Split updates into reasonable sized frames using WS fragmentation
- Use WS pings for network aliveness (requires 4.1 protocol revision)
- Measure RTT only at start of connection, rather than periodically
  (this avoids them being affected by other network traffic)
- Refactor network queue
- Refactor network ping, ping from server as well
- Improve meta topic performance

This adds a new protocol version (4.1) due to WS bugs in prior versions.
@PeterJohnson PeterJohnson merged commit 8b7c685 into wpilibsuite:main Oct 5, 2023
24 checks passed
@PeterJohnson PeterJohnson deleted the nt-trysend branch October 5, 2023 05:02
calcmogul pushed a commit to narmstro2020/allwpilib that referenced this pull request Oct 9, 2023
- Utilize TrySend to properly backpressure network traffic
- Split updates into reasonable sized frames using WS fragmentation
- Use WS pings for network aliveness (requires 4.1 protocol revision)
- Measure RTT only at start of connection, rather than periodically
  (this avoids them being affected by other network traffic)
- Refactor network queue
- Refactor network ping, ping from server as well
- Improve meta topic performance
- Implement unified approach for network value updates (currently client and server use very different approaches) that respects requested subscriber update frequency

This adds a new protocol version (4.1) due to WS bugs in prior versions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: ntcore NetworkTables library
Projects
None yet
2 participants