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

added quic support to fddev bench. Numerous QUIC fixes. #1655

Merged
merged 1 commit into from
Apr 30, 2024

Conversation

nbridge-jump
Copy link
Contributor

bench code needs the following, but putting these into another PR:
quic_enable - hard coded flag to use quic rather than udp: should be configurable
only supports one connection. Each benchs should have a connection for each fd_quic tile

This PR should help us move forward with the demo

@nbridge-jump nbridge-jump requested a review from ripatel-fd April 27, 2024 01:37
ulong no_stream;

// vector receive members
struct mmsghdr rx_msgs[IO_VEC_CNT];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we move all this QUIC stuff out to another file or like, fd_quic_client_t ? I feel like there could be a simple minimal interface which the bench tile can call without needing all of this stuff in its namespace.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest we do this in a follow up PR. fd_quic_test_client_t or something.

uchar signature[ static 64 ],
uchar const payload[ static 130 ] ) {
fd_tls_test_sign_ctx_t * ctx = (fd_tls_test_sign_ctx_t *)_ctx;
fd_ed25519_sign( signature, payload, 130UL, ctx->public_key, ctx->private_key, ctx->sha512 );
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about signing on the benchs. The design here is that benchg is scalable and does signing, and benchs just sends on the socket (which is very expensive). If you are mixing those two things it makes the scaling story for the bench topology much more complicated.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you think doing it in bencho is a better choice?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you know, this signing only occurs during handshaking

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, hmm. Then after that it's just TLS or whatever?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mmcgee-jump This signer interface is used by the TLS library to prove that it's in possession of the identity key. It only happens once per QUIC connection.

Copy link
Contributor

@ripatel-fd ripatel-fd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. I think we should add unit tests that exercise all the messed up ACK handling rules in the QUIC protocol.

Copy link
Contributor

@ripatel-fd ripatel-fd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Introduces a remote DoS bug

@nbridge-jump nbridge-jump added this pull request to the merge queue Apr 30, 2024
Merged via the queue into main with commit a14de6c Apr 30, 2024
10 checks passed
@nbridge-jump nbridge-jump deleted the nbridge/bench-quic branch April 30, 2024 16:16
@ripatel-fd ripatel-fd added the quic RFC 9000: QUIC label Nov 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
quic RFC 9000: QUIC
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants