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

Add experimental support for HTTP/2 #4010

Merged
merged 83 commits into from
Jul 14, 2022
Merged

Conversation

jumaffre
Copy link
Contributor

@jumaffre jumaffre commented Jul 1, 2022

Part of #3342

Now ready for review. Thanks @wintersteiger for fixing the memory leaks!

This PR adds experimental support for client requests over HTTP/2, which will eventually allow developers to build gRPC applications. The support is very much experimental for now but we have parity with most tests run in the e2e_logging end-to-end test (except a few tests that test request forwarding, excluded via the no_http2() decorator).

The nghttp2 library now always gets included in the enclave application and a single RPC interface always creates HTTP/2 endpoints if the app_protocol configuration entry is set to HTTP2 (default is HTTP1).

Of course, there's still plenty to do to support HTTP/2 as a first-class protocol (see #3342 for follow-up work) but this PR should have just enough that we can merge this into main.

@jumaffre
Copy link
Contributor Author

jumaffre commented Jul 5, 2022

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 4 pipeline(s).

@jumaffre
Copy link
Contributor Author

jumaffre commented Jul 6, 2022

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 4 pipeline(s).

doc/host_config_schema/cchost_config.json Show resolved Hide resolved
src/enclave/rpc_sessions.h Show resolved Hide resolved
src/enclave/rpc_sessions.h Show resolved Hide resolved
src/enclave/rpc_sessions.h Show resolved Hide resolved
src/http/http2.h Outdated Show resolved Hide resolved
src/http/http2_types.h Show resolved Hide resolved
src/http/http2_types.h Outdated Show resolved Hide resolved
tests/e2e_common_endpoints.py Show resolved Hide resolved
tests/infra/clients.py Outdated Show resolved Hide resolved
tests/infra/logging_app.py Show resolved Hide resolved
@jumaffre
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 4 pipeline(s).

@achamayou achamayou enabled auto-merge (squash) July 14, 2022 14:13
@achamayou achamayou merged commit 8a41971 into microsoft:main Jul 14, 2022
@jumaffre jumaffre mentioned this pull request Dec 22, 2022
3 tasks
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.

3 participants