Skip to content

Commit

Permalink
Add overlay files to enable performance data output
Browse files Browse the repository at this point in the history
  • Loading branch information
tautschnig committed Jun 19, 2024
1 parent 1bc0129 commit 5d73a67
Show file tree
Hide file tree
Showing 39 changed files with 1,187 additions and 0 deletions.
39 changes: 39 additions & 0 deletions tests/perf/overlays/s2n-quic/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
[workspace]
members = [
"common/s2n-*",
"quic/s2n-*",
"dc/s2n-*",
]
default-members = [
"common/s2n-*",
"quic/s2n-*",
]
resolver = "2"
# don't include any workspaces outside of the main project
exclude = [
"examples",
"tools",
]

[profile.release]
lto = true
codegen-units = 1
incremental = false

[profile.bench]
lto = true
codegen-units = 1
incremental = false
# improve flamegraph information
debug = true

[profile.fuzz]
inherits = "dev"
opt-level = 3
incremental = false
codegen-units = 1

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
38 changes: 38 additions & 0 deletions tests/perf/overlays/s2n-quic/common/s2n-codec/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
[package]
name = "s2n-codec"
version = "0.39.0"
description = "Internal crate used by s2n-quic"
repository = "https://github.com/aws/s2n-quic"
authors = ["AWS s2n"]
edition = "2021"
rust-version = "1.71"
license = "Apache-2.0"
# Exclude corpus files when publishing to crates.io
exclude = ["corpus.tar.gz"]

[features]
default = ["std", "bytes"]
alloc = []
std = ["alloc"]
testing = ["std", "generator"]
checked_range_unsafe = []
generator = ["bolero-generator"]

[dependencies]
bolero-generator = { version = "0.11", default-features = false, optional = true }
byteorder = { version = "1.1", default-features = false }
bytes = { version = "1", default-features = false, optional = true }
zerocopy = { version = "0.7", features = ["derive"] }

[dev-dependencies]
bolero = "0.11"
bolero-generator = "0.11"

[package.metadata.kani]
flags = { tests = true }
unstable = { stubbing = true }

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
47 changes: 47 additions & 0 deletions tests/perf/overlays/s2n-quic/dc/s2n-quic-dc/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
[package]
name = "s2n-quic-dc"
version = "0.39.0"
description = "Internal crate used by s2n-quic"
repository = "https://github.com/aws/s2n-quic"
authors = ["AWS s2n"]
edition = "2021"
rust-version = "1.71"
license = "Apache-2.0"
# Exclude corpus files when publishing to crates.io
exclude = ["corpus.tar.gz"]

[features]
testing = ["bolero-generator"]

[dependencies]
atomic-waker = "1"
aws-lc-rs = "1"
bitflags = "2"
bolero-generator = { version = "0.11", optional = true }
bytes = "1"
crossbeam-channel = "0.5"
crossbeam-queue = { version = "0.3" }
libc = "0.2"
num-rational = { version = "0.4", default-features = false }
once_cell = "1"
s2n-codec = { version = "=0.39.0", path = "../../common/s2n-codec", default-features = false }
s2n-quic-core = { version = "=0.39.0", path = "../../quic/s2n-quic-core", default-features = false }
s2n-quic-platform = { version = "=0.39.0", path = "../../quic/s2n-quic-platform" }
slotmap = "1"
thiserror = "1"
tokio = { version = "1", features = ["io-util"], optional = true }
tracing = "0.1"
zerocopy = { version = "0.7", features = ["derive"] }

[dev-dependencies]
bolero = "0.11"
bolero-generator = "0.11"
insta = "1"
s2n-codec = { path = "../../common/s2n-codec", features = ["testing"] }
s2n-quic-core = { path = "../../quic/s2n-quic-core", features = ["testing"] }
tokio = { version = "1", features = ["io-util"] }

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
33 changes: 33 additions & 0 deletions tests/perf/overlays/s2n-quic/dc/s2n-quic-dc/benches/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
[package]
name = "benches"
version = "0.1.0"
edition = "2021"
publish = false

[dependencies]
aws-lc-rs = "1"
criterion = { version = "0.4", features = ["html_reports"] }
s2n-codec = { path = "../../../common/s2n-codec" }
s2n-quic-dc = { path = "../../s2n-quic-dc", features = ["testing"] }

[[bench]]
name = "bench"
harness = false

[workspace]
members = ["."]

[profile.release]
lto = true
codegen-units = 1
incremental = false

[profile.bench]
lto = true
codegen-units = 1
incremental = false

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
37 changes: 37 additions & 0 deletions tests/perf/overlays/s2n-quic/dc/wireshark/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[package]
name = "wireshark_dcquic"
version = "0.0.0"
edition = "2021"
publish = false
rust-version = "1.77"

[lib]
crate-type = ["rlib", "cdylib"]

[dependencies]
s2n-codec = { path = "../../common/s2n-codec" }
s2n-quic-core = { path = "../../quic/s2n-quic-core" }
s2n-quic-dc = { path = "../s2n-quic-dc" }

[dev-dependencies]
bolero = "0.11"
s2n-quic-core = { path = "../../quic/s2n-quic-core", features = ["testing", "generator"] }
s2n-quic-dc = { path = "../s2n-quic-dc", features = ["testing"] }

[workspace]
members = [".", "xtask"]

[profile.fuzz]
inherits = "dev"
opt-level = 3
incremental = false
codegen-units = 1

# this is to avoid conflicts with already installed plugins
[profile.release-test]
inherits = "release"

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
15 changes: 15 additions & 0 deletions tests/perf/overlays/s2n-quic/dc/wireshark/xtask/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[package]
name = "xtask"
version = "0.1.0"
edition = "2021"
publish = false

[dependencies]
clap = { version = "4", features = ["derive"] }
homedir = "0.2"
xshell = "0.2"

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[package]
name = "async-client-hello-callback"
version = "0.1.0"
authors = ["AWS s2n"]
edition = "2021"

[dependencies]
s2n-quic = { version = "1", path = "../../quic/s2n-quic", features = ["provider-tls-s2n", "unstable_client_hello"]}
tokio = { version = "1", features = ["full"] }
moka = "0.9"
rand = "0.8"

[workspace]
members = ["."]

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[package]
name = "custom-congestion-controller"
version = "0.1.0"
authors = ["AWS s2n"]
edition = "2021"

[dependencies]
s2n-quic = { version = "1", path = "../../quic/s2n-quic", features = ["unstable-congestion-controller"] }
tokio = { version = "1", features = ["full"] }

[workspace]
members = ["."]

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
17 changes: 17 additions & 0 deletions tests/perf/overlays/s2n-quic/examples/dos-mitigation/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[package]
name = "dos-mitigation"
version = "0.1.0"
authors = ["AWS s2n"]
edition = "2021"

[dependencies]
s2n-quic = { version = "1", path = "../../quic/s2n-quic", features = ["provider-event-tracing"] }
tokio = { version = "1", features = ["full"] }

[workspace]
members = ["."]

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
17 changes: 17 additions & 0 deletions tests/perf/overlays/s2n-quic/examples/echo/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[package]
name = "echo"
version = "0.1.0"
authors = ["AWS s2n"]
edition = "2021"

[dependencies]
s2n-quic = { version = "1", path = "../../quic/s2n-quic" }
tokio = { version = "1", features = ["full"] }

[workspace]
members = ["."]

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
17 changes: 17 additions & 0 deletions tests/perf/overlays/s2n-quic/examples/event-framework/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[package]
name = "event-framework"
version = "0.1.0"
authors = ["AWS s2n"]
edition = "2021"

[dependencies]
s2n-quic = { version = "1", path = "../../quic/s2n-quic", features = ["provider-event-tracing"] }
tokio = { version = "1", features = ["full"] }

[workspace]
members = ["."]

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
17 changes: 17 additions & 0 deletions tests/perf/overlays/s2n-quic/examples/jumbo-frame/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[package]
name = "jumbo-frame"
version = "0.1.0"
authors = ["AWS s2n"]
edition = "2021"

[dependencies]
s2n-quic = { version = "1", path = "../../quic/s2n-quic" }
tokio = { version = "1", features = ["full"] }

[workspace]
members = ["."]

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
28 changes: 28 additions & 0 deletions tests/perf/overlays/s2n-quic/examples/post-quantum/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
[package]
name = "post-quantum"
version = "0.1.0"
authors = ["AWS s2n"]
edition = "2021"
publish = false

[dependencies]
s2n-quic = { version = "1", path = "../../quic/s2n-quic" }
# enable the post-quantum feature in s2n-tls
s2n-tls = { version = "*", features = ["pq"] }
tokio = { version = "1", features = ["full"] }
# Build the vendored version to make it easy to test.
#
# For a production build, it's probably better to link to the system dependency instead
# so you automatically get security patches.
#
# NOTE: The version of the `openssl-sys` crate is not the same as OpenSSL itself.
# Versions 1.0.1 - 3.0.0 are automatically discovered.
openssl-sys = { version = "0.9", features = ["vendored"] }

[workspace]
members = ["."]

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
13 changes: 13 additions & 0 deletions tests/perf/overlays/s2n-quic/examples/resumption/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[package]
name = "resumption"
version = "0.1.0"
edition = "2021"

[dependencies]
s2n-quic = { version = "1", path = "../../quic/s2n-quic", features = ["provider-tls-s2n", "unstable_resumption"]}
tokio = { version = "1", features = ["full"] }

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
22 changes: 22 additions & 0 deletions tests/perf/overlays/s2n-quic/examples/rustls-mtls/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[package]
name = "rustls-mtls"
version = "0.1.0"
edition = "2021"
authors = ["Rick Richardson <[email protected]>", "AWS s2n"]

[dependencies]
# Remove the `provider-tls-default` feature and add `provider-tls-rustls` in order to use the rustls backend
s2n-quic = { version = "1", path = "../../quic/s2n-quic", default-features = false, features = ["provider-address-token-default", "provider-tls-rustls", "provider-event-tracing"] }
rustls-pemfile = "2"
tokio = { version = "1", features = ["full"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["ansi"] }
tracing-appender = { version = "0.2" }

[workspace]
members = ["."]

# We need runtime statistics for performance evaluation
[kani.flags]
enable-unstable = true
cbmc-args = ["--verbosity", "9" ]
Loading

0 comments on commit 5d73a67

Please sign in to comment.