diff --git a/.cargo/config.toml b/.cargo/config.toml index 6c02d18a06..2cf5ce3300 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,3 +1,6 @@ [build] rustflags=['--cfg', 's2n_internal_dev'] rustdocflags=['--cfg', 's2n_internal_dev'] + +[alias] +xdp-xtask = "run --package xdp-xtask --" diff --git a/Cargo.toml b/Cargo.toml index 7d67a68502..75a26a702b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,11 @@ members = [ "common/s2n-*", "quic/s2n-*", "dc/s2n-*", + "tools/memory-report", + "tools/udp-attack", + "tools/xdp/s2n-quic-xdp", + "tools/xdp/tester", + "tools/xdp/xtask", ] default-members = [ "common/s2n-*", @@ -18,6 +23,18 @@ exclude = [ [workspace.dependencies] bolero = "0.12" bolero-generator = { version = "0.12", default-features = false } +s2n-codec = { version = "=0.51.0", path = "./common/s2n-codec", default-features = false } +s2n-quic-core = { version = "=0.51.0", path = "./quic/s2n-quic-core", default-features = false } +s2n-quic-crypto = { version = "=0.51.0", path = "./quic/s2n-quic-crypto", default-features = false } +s2n-quic-h3 = { version = "=0.1.0", path = "./quic/s2n-quic-h3", default-features = false } +s2n-quic-platform = { version = "=0.51.0", path = "./quic/s2n-quic-platform", default-features = false } +s2n-quic-qns = { version = "=0.51.0", path = "./quic/s2n-quic-qns", default-features = false } +s2n-quic-rustls = { version = "=0.51.0", path = "./quic/s2n-quic-rustls", default-features = false } +s2n-quic-tls = { version = "=0.51.0", path = "./quic/s2n-quic-tls", default-features = false } +s2n-quic-tls-default = { version = "=0.51.0", path = "./quic/s2n-quic-tls-default", default-features = false } +s2n-quic-transport = { version = "=0.51.0", path = "./quic/s2n-quic-transport", default-features = false } +s2n-quic-xdp = { version = "=0.51.0", path = "./tools/xdp/s2n-quic-xdp", default-features = false } +s2n-quic = { version = "=1.51.0", path = "./quic/s2n-quic", default-features = false } [profile.release-debug] inherits = "dev" diff --git a/quic/s2n-quic-bench/Cargo.toml b/quic/s2n-quic-bench/Cargo.toml index d86be94703..645ed29355 100644 --- a/quic/s2n-quic-bench/Cargo.toml +++ b/quic/s2n-quic-bench/Cargo.toml @@ -13,8 +13,8 @@ bytes = "1" criterion = { version = "0.5", features = ["html_reports"] } crossbeam-channel = { version = "0.5" } internet-checksum = "0.2" -s2n-codec = { path = "../../common/s2n-codec", features = ["testing"] } -s2n-quic-core = { path = "../s2n-quic-core", features = ["testing"] } +s2n-codec = { workspace = true, features = ["testing"] } +s2n-quic-core = { workspace = true, features = ["testing"] } [[bench]] name = "bench" diff --git a/quic/s2n-quic-core/Cargo.toml b/quic/s2n-quic-core/Cargo.toml index a0c6b9e800..144cd057b5 100644 --- a/quic/s2n-quic-core/Cargo.toml +++ b/quic/s2n-quic-core/Cargo.toml @@ -41,7 +41,7 @@ num-rational = { version = "0.4", default-features = false } num-traits = { version = "0.2", default-features = false, features = ["libm"] } pin-project-lite = { version = "0.2" } probe = { version = "0.5", optional = true } -s2n-codec = { version = "=0.51.0", path = "../../common/s2n-codec", default-features = false } +s2n-codec = { workspace = true } subtle = { version = "2", default-features = false } tracing = { version = "0.1", default-features = false, optional = true } zerocopy = { version = "0.7", features = ["derive"] } @@ -56,7 +56,7 @@ futures = "0.3" futures-test = "0.3" ip_network = "0.4" plotters = { version = "0.3", default-features = false, features = ["svg_backend", "line_series"] } -s2n-codec = { path = "../../common/s2n-codec", features = ["testing"] } +s2n-codec = { workspace = true, features = ["testing"] } [target.'cfg(loom)'.dev-dependencies] loom = { version = "0.7", features = ["checkpoint", "futures"] } diff --git a/quic/s2n-quic-crypto/Cargo.toml b/quic/s2n-quic-crypto/Cargo.toml index 89030304d9..e6441fe6da 100644 --- a/quic/s2n-quic-crypto/Cargo.toml +++ b/quic/s2n-quic-crypto/Cargo.toml @@ -20,11 +20,11 @@ testing = [] aws-lc-rs = { version = "1.9", features = ["prebuilt-nasm"] } cfg-if = "1" lazy_static = "1" -s2n-codec = { version = "=0.51.0", path = "../../common/s2n-codec", default-features = false } -s2n-quic-core = { version = "=0.51.0", path = "../s2n-quic-core", default-features = false } +s2n-codec = { workspace = true } +s2n-quic-core = { workspace = true } zeroize = { version = "1", default-features = false, features = ["derive"] } [dev-dependencies] hex-literal = "0.4" insta = { version = "1", features = ["json"] } -s2n-quic-core = { path = "../s2n-quic-core", features = ["testing"] } +s2n-quic-core = { workspace = true, features = ["testing"] } diff --git a/quic/s2n-quic-h3/Cargo.toml b/quic/s2n-quic-h3/Cargo.toml index e2703b2331..cefd180899 100644 --- a/quic/s2n-quic-h3/Cargo.toml +++ b/quic/s2n-quic-h3/Cargo.toml @@ -13,7 +13,7 @@ publish = false bytes = { version = "1", default-features = false } futures = { version = "0.3", default-features = false } h3 = "0.0.6" -s2n-quic = { path = "../s2n-quic" } +s2n-quic = { workspace = true } tracing = { version = "0.1", optional = true } [features] diff --git a/quic/s2n-quic-platform/Cargo.toml b/quic/s2n-quic-platform/Cargo.toml index d438fe89d8..b35047a7d3 100644 --- a/quic/s2n-quic-platform/Cargo.toml +++ b/quic/s2n-quic-platform/Cargo.toml @@ -25,8 +25,8 @@ bolero-generator = { workspace = true, optional = true } cfg-if = "1" futures = { version = "0.3", default-features = false, features = ["async-await"], optional = true } lazy_static = { version = "1", optional = true } -s2n-quic-core = { version = "=0.51.0", path = "../s2n-quic-core", default-features = false } -s2n-quic-xdp = { version = "=0.51.0", path = "../../tools/xdp/s2n-quic-xdp", optional = true } +s2n-quic-core = { workspace = true, default-features = false } +s2n-quic-xdp = { workspace = true, optional = true } socket2 = { version = "0.5", features = ["all"], optional = true } tokio = { version = "1", default-features = false, features = ["macros", "net", "rt", "time"], optional = true } tracing = { version = "0.1", optional = true } @@ -41,7 +41,7 @@ bolero.workspace = true bolero-generator.workspace = true futures = { version = "0.3", features = ["std"] } insta = { version = "1", features = ["json"] } -s2n-quic-core = { path = "../s2n-quic-core", features = ["testing"] } +s2n-quic-core = { workspace = true, features = ["testing"] } tokio = { version = "1", features = ["full"] } tracing = { version = "0.1" } diff --git a/quic/s2n-quic-qns/Cargo.toml b/quic/s2n-quic-qns/Cargo.toml index 52250103f4..e3eceb192f 100644 --- a/quic/s2n-quic-qns/Cargo.toml +++ b/quic/s2n-quic-qns/Cargo.toml @@ -23,9 +23,9 @@ http = "1.0" humansize = "2" lru = "0.12" rand = "0.8" -s2n-codec = { path = "../../common/s2n-codec" } -s2n-quic-core = { path = "../s2n-quic-core", features = ["testing"] } -s2n-quic-h3 = { path = "../s2n-quic-h3" } +s2n-codec = { workspace = true } +s2n-quic-core = { workspace = true, features = ["testing"] } +s2n-quic-h3 = { workspace = true } structopt = "0.3" tokio = { version = "1", features = ["full"] } tracing = "0.1" @@ -33,10 +33,10 @@ tracing-subscriber = { version = "0.3", features = ["env-filter"] } url = "2" [target.'cfg(unix)'.dependencies] -s2n-quic = { path = "../s2n-quic", features = ["provider-event-console-perf", "provider-event-tracing", "provider-tls-rustls", "provider-tls-s2n"] } +s2n-quic = { workspace = true, features = ["provider-event-console-perf", "provider-event-tracing", "provider-tls-rustls", "provider-tls-s2n"] } [target.'cfg(not(unix))'.dependencies] -s2n-quic = { path = "../s2n-quic", features = ["provider-event-console-perf", "provider-event-tracing", "provider-tls-rustls"] } +s2n-quic = { workspace = true, features = ["provider-event-console-perf", "provider-event-tracing", "provider-tls-rustls"] } # the mimalloc build is currently broken on android [target.'cfg(not(target_os = "android"))'.dependencies] @@ -45,9 +45,9 @@ mimalloc = { version = "0.1", default-features = false } # Use unstable s2n-quic features # unstable_client_hello and unstable_resumption use s2n-tls, and thus are only enabled for unix platforms [target.'cfg(all(s2n_internal_dev, unix))'.dependencies] -s2n-quic = { path = "../s2n-quic", features = ["unstable_client_hello", "unstable_resumption"] } +s2n-quic = { workspace = true, features = ["unstable_client_hello", "unstable_resumption"] } [target.'cfg(s2n_internal_dev)'.dependencies] -s2n-quic = { path = "../s2n-quic", features = ["unstable-provider-packet-interceptor"] } +s2n-quic = { workspace = true, features = ["unstable-provider-packet-interceptor"] } [lints.rust.unexpected_cfgs] level = "warn" diff --git a/quic/s2n-quic-qns/benchmark/client/Dockerfile.build b/quic/s2n-quic-qns/benchmark/client/Dockerfile.build deleted file mode 100644 index 365f02964e..0000000000 --- a/quic/s2n-quic-qns/benchmark/client/Dockerfile.build +++ /dev/null @@ -1,79 +0,0 @@ -FROM rust:latest as planner -WORKDIR app -RUN cargo install cargo-chef --version 0.1.23 - -#Install git -RUN apt-get update; \ - apt-get install -y git; - -RUN git clone https://github.com/quinn-rs/quinn.git .; \ - git checkout 6e4bcbb2fcb57ced2ef261c9662521c5baf37f3c; -RUN cargo chef prepare --recipe-path recipe.json - -FROM rust:latest as cacher -WORKDIR app -RUN cargo install cargo-chef --version 0.1.23 -COPY --from=planner /app/recipe.json recipe.json -RUN cargo chef cook --recipe-path recipe.json - -FROM rust:latest AS builder -WORKDIR app - -ARG release="true" - -# copy quinn sources -RUN git init; \ - git remote add origin https://github.com/quinn-rs/quinn; \ - git fetch origin 6e4bcbb2fcb57ced2ef261c9662521c5baf37f3c; \ - git reset --hard FETCH_HEAD; - -# Copy over the cached dependencies -COPY --from=cacher /app/target target -COPY --from=cacher /usr/local/cargo /usr/local/cargo - -RUN set -eux; \ - cargo build \ - --bin perf_client \ - --release; \ - cp target/release/perf_client .; \ - rm -rf target - -####################### -# Endpoint base image # -####################### -FROM ubuntu:latest AS endpoint-base - -ENV RUST_BACKTRACE="1" - -ARG sim_hash="1f569016bcd9f7076fc9fd932c1415d28d3020f7" - -RUN set -eux; \ - apt-get update; \ - apt-get install -y wget net-tools iputils-ping tcpdump ethtool iperf3 iproute2; \ - wget https://raw.githubusercontent.com/marten-seemann/quic-network-simulator/${sim_hash}/endpoint/setup.sh; \ - chmod +x setup.sh; \ - wget https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh; \ - chmod +x wait-for-it.sh; - -ENTRYPOINT [ "/run_endpoint.sh" ] - -FROM endpoint-base - -ENV RUST_BACKTRACE="1" - -RUN set -eux; \ - apt-get update; \ - apt-get install -y strace; - -# copy entrypoint -COPY quic/s2n-quic-qns/benchmark/client/run_endpoint.sh . -RUN chmod +x run_endpoint.sh - -# copy runner -COPY --from=builder /app/perf_client /usr/bin/perf_client -RUN set -eux; \ - chmod +x /usr/bin/perf_client; \ - ldd /usr/bin/perf_client; \ - # ensure the binary works \ - perf_client --help; \ - echo done diff --git a/quic/s2n-quic-qns/benchmark/client/run_endpoint.sh b/quic/s2n-quic-qns/benchmark/client/run_endpoint.sh deleted file mode 100755 index a8c95a520e..0000000000 --- a/quic/s2n-quic-qns/benchmark/client/run_endpoint.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# -# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -# SPDX-License-Identifier: Apache-2.0 -# - -set -e -set -o pipefail - -# Set up the routing needed for the simulation -/setup.sh - -# The following variables are available for use: -# - ROLE contains the role of this execution context, client or server -# - SERVER_PARAMS contains user-supplied command line parameters -# - CLIENT_PARAMS contains user-supplied command line parameters - -LOG_DIR=/logs -LOG=$LOG_DIR/logs.txt - -QNS_BIN="perf_client" - -CERT_ARGS="" - -if [ -d "/certs" ]; then - CERT_ARGS="--private-key /certs/priv.key --certificate /certs/cert.pem" -fi - -# Wait for the simulator to start up. -/wait-for-it.sh sim:57832 -s -t 30 -$QNS_BIN \ - --download-size "$DOWNLOAD_B" \ - --upload-size "$UPLOAD_B" \ - --duration "$DURATION" \ - --json "$LOG_DIR/perf_client.json" \ - server4:443 2>&1 | tee $LOG diff --git a/quic/s2n-quic-qns/benchmark/docker-compose.yml b/quic/s2n-quic-qns/benchmark/docker-compose.yml deleted file mode 100644 index 1a5b964641..0000000000 --- a/quic/s2n-quic-qns/benchmark/docker-compose.yml +++ /dev/null @@ -1,199 +0,0 @@ -version: "2.4" - -services: - sim: - # This QNS image is patched to allow TCP traffic from the iperf endpoints to be simulated, - # as the original QNS only supports UDP packets - # TODO: https://github.com/aws/s2n-quic/issues/757 - image: wesleyrosenblum/quic-network-simulator - container_name: sim - hostname: sim - stdin_open: true - tty: true - volumes: - - ${LOG_DIR}/sim:/logs - environment: - - WAITFORSERVER=$WAITFORSERVER - - SCENARIO=$SCENARIO - cap_add: - - NET_ADMIN - expose: - - "57832" - networks: - leftnet: - ipv4_address: 193.167.0.2 - ipv6_address: fd00:cafe:cafe:0::2 - rightnet: - ipv4_address: 193.167.100.2 - ipv6_address: fd00:cafe:cafe:100::2 - extra_hosts: - - "server:193.167.100.100" - - server: - image: aws/s2n-quic-qns - container_name: server - hostname: server - stdin_open: true - tty: true - volumes: - - ${LOG_DIR}/server:/logs - environment: - - CRON=$CRON - - ROLE=server - - SERVER_PARAMS=$SERVER_PARAMS - - QNS_MODE=perf - - SSLKEYLOGFILE=/logs/keys.log - - QLOGDIR=/logs/qlog/ - - TEST_TYPE=MEASUREMENT - - VERSION=$VERSION - depends_on: - - sim - cap_add: - - NET_ADMIN - ulimits: - memlock: 67108864 - networks: - rightnet: - ipv4_address: 193.167.100.100 - ipv6_address: fd00:cafe:cafe:100::100 - - server-main: - image: public.ecr.aws/s2n/s2n-quic-qns:main - container_name: server-main - hostname: server - stdin_open: true - tty: true - volumes: - - ${LOG_DIR}/server:/logs - environment: - - CRON=$CRON - - ROLE=server - - SERVER_PARAMS=$SERVER_PARAMS - - QNS_MODE=perf - - SSLKEYLOGFILE=/logs/keys.log - - QLOGDIR=/logs/qlog/ - - TEST_TYPE=MEASUREMENT - - VERSION=$VERSION - depends_on: - - sim - cap_add: - - NET_ADMIN - ulimits: - memlock: 67108864 - networks: - rightnet: - ipv4_address: 193.167.100.100 - ipv6_address: fd00:cafe:cafe:100::100 - - client: - build: - context: ${ROOT_DIR} - dockerfile: ${ROOT_DIR}/quic/s2n-quic-qns/benchmark/client/Dockerfile.build - container_name: client - hostname: client - stdin_open: true - tty: true - volumes: - - ${LOG_DIR}/client:/logs - environment: - - CRON=$CRON - - ROLE=client - - CLIENT_PARAMS=$CLIENT_PARAMS - - QNS_MODE=perf - - SSLKEYLOGFILE=/logs/keys.log - - QLOGDIR=/logs/qlog/ - - REQUESTS=$REQUESTS - - VERSION=$VERSION - - DOWNLOAD_B=$DOWNLOAD_B - - UPLOAD_B=$UPLOAD_B - - DURATION=$DURATION - - RUST_LOG=info - - TEST_TYPE=MEASUREMENT - depends_on: - - sim - cap_add: - - NET_ADMIN - ulimits: - memlock: 67108864 - networks: - leftnet: - ipv4_address: 193.167.0.100 - ipv6_address: fd00:cafe:cafe:0::100 - extra_hosts: - - "server4:193.167.100.100" - - "server6:fd00:cafe:cafe:100::100" - - "server46:193.167.100.100" - - "server46:fd00:cafe:cafe:100::100" - - iperf_server: - build: - context: ${ROOT_DIR} - dockerfile: ${ROOT_DIR}/quic/s2n-quic-qns/etc/Dockerfile - target: iperf - container_name: iperf_server - stdin_open: true - tty: true - environment: - - ROLE=server - depends_on: - - sim - cap_add: - - NET_ADMIN - networks: - rightnet: - ipv4_address: 193.167.100.110 - ipv6_address: fd00:cafe:cafe:100::110 - extra_hosts: - - "client4:193.167.0.90" - - "client6:fd00:cafe:cafe:0::100" - - "client46:193.167.0.90" - - "client46:fd00:cafe:cafe:0::100" - - iperf_client: - build: - context: ${ROOT_DIR} - dockerfile: ${ROOT_DIR}/quic/s2n-quic-qns/etc/Dockerfile - target: iperf - container_name: iperf_client - stdin_open: true - tty: true - volumes: - - ${LOG_DIR}/client:/logs - environment: - - ROLE=client - - SERVER=server4 - - IPERF_CONGESTION=cubic - - DURATION=$DURATION - depends_on: - - sim - cap_add: - - NET_ADMIN - networks: - leftnet: - ipv4_address: 193.167.0.90 - ipv6_address: fd00:cafe:cafe:0::90 - extra_hosts: - - "server4:193.167.100.110" - - "server6:fd00:cafe:cafe:100::110" - - "server46:193.167.100.110" - - "server46:fd00:cafe:cafe:100::110" - -networks: - leftnet: - driver: bridge - driver_opts: - com.docker.network.bridge.enable_ip_masquerade: 'false' - enable_ipv6: true - ipam: - config: - - subnet: 193.167.0.0/24 - - subnet: fd00:cafe:cafe:0::/64 - rightnet: - driver: bridge - driver_opts: - com.docker.network.bridge.enable_ip_masquerade: 'false' - enable_ipv6: true - ipam: - config: - - subnet: 193.167.100.0/24 - - subnet: fd00:cafe:cafe:100::/64 diff --git a/quic/s2n-quic-qns/benchmark/iperf/run.sh b/quic/s2n-quic-qns/benchmark/iperf/run.sh deleted file mode 100644 index dc17d40fcf..0000000000 --- a/quic/s2n-quic-qns/benchmark/iperf/run.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -# -# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -# SPDX-License-Identifier: Apache-2.0 -# - -./setup.sh -./wait-for-it.sh sim:57832 -s -t 10 - -if [ "$ROLE" == "server" ]; then - iperf3 -s -else - ./wait-for-it.sh $SERVER:5201 -s -t 10 - iperf3 -c $SERVER -t $DURATION -i 1 -R -C $IPERF_CONGESTION --json > /logs/iperf.json -fi \ No newline at end of file diff --git a/quic/s2n-quic-rustls/Cargo.toml b/quic/s2n-quic-rustls/Cargo.toml index 7acfcf173b..204a966f5d 100644 --- a/quic/s2n-quic-rustls/Cargo.toml +++ b/quic/s2n-quic-rustls/Cargo.toml @@ -18,10 +18,10 @@ bytes = { version = "1", default-features = false } # By [default](https://docs.rs/crate/rustls/latest/features) rustls includes the `tls12` feature. rustls = { version = "0.23", default-features = false, features=["std", "aws-lc-rs", "logging"] } rustls-pemfile = "2" -s2n-codec = { version = "=0.51.0", path = "../../common/s2n-codec", default-features = false, features = ["alloc"] } -s2n-quic-core = { version = "=0.51.0", path = "../s2n-quic-core", default-features = false, features = ["alloc"] } -s2n-quic-crypto = { version = "=0.51.0", path = "../s2n-quic-crypto", default-features = false } +s2n-codec = { workspace = true, default-features = false, features = ["alloc"] } +s2n-quic-core = { workspace = true, default-features = false, features = ["alloc"] } +s2n-quic-crypto = { workspace = true, default-features = false } [dev-dependencies] insta = { version = "1", features = ["json"] } -s2n-quic-core = { path = "../s2n-quic-core", features = ["testing"] } +s2n-quic-core = { workspace = true, features = ["testing"] } diff --git a/quic/s2n-quic-sim/Cargo.toml b/quic/s2n-quic-sim/Cargo.toml index 03b41d4f0c..b25d61035f 100644 --- a/quic/s2n-quic-sim/Cargo.toml +++ b/quic/s2n-quic-sim/Cargo.toml @@ -19,8 +19,8 @@ once_cell = "1" prost = "0.13" rand = "0.8" rayon = "1" -s2n-quic = { path = "../s2n-quic", features = ["unstable-provider-io-testing", "provider-event-tracing"] } -s2n-quic-core = { path = "../s2n-quic-core", features = ["testing"] } +s2n-quic = { workspace = true, features = ["unstable-provider-io-testing", "provider-event-tracing"] } +s2n-quic-core = { workspace = true, features = ["testing"] } serde = { version = "1", features = ["derive"] } serde_json = "1" structopt = "0.3" diff --git a/quic/s2n-quic-tls-default/Cargo.toml b/quic/s2n-quic-tls-default/Cargo.toml index 1f45a08f71..354c6bfea0 100644 --- a/quic/s2n-quic-tls-default/Cargo.toml +++ b/quic/s2n-quic-tls-default/Cargo.toml @@ -24,10 +24,10 @@ fips = ["s2n-quic-tls?/fips"] # order to support the `?` syntax, we declare s2n-quic-tls as an optional dependency. # `s2n-quic-tls` only gets enabled based on the target. [dependencies] -s2n-quic-tls = { version = "=0.51.0", path = "../s2n-quic-tls", optional = true } +s2n-quic-tls = { workspace = true, optional = true } [target.'cfg(unix)'.dependencies] -s2n-quic-tls = { version = "=0.51.0", path = "../s2n-quic-tls" } +s2n-quic-tls = { workspace = true } [target.'cfg(not(unix))'.dependencies] -s2n-quic-rustls = { version = "=0.51.0", path = "../s2n-quic-rustls" } +s2n-quic-rustls = { workspace = true } diff --git a/quic/s2n-quic-tls/Cargo.toml b/quic/s2n-quic-tls/Cargo.toml index 2616543415..7e6fe1ebfb 100644 --- a/quic/s2n-quic-tls/Cargo.toml +++ b/quic/s2n-quic-tls/Cargo.toml @@ -19,9 +19,9 @@ unstable_private_key = [] bytes = { version = "1", default-features = false } errno = "0.3" libc = "0.2" -s2n-codec = { version = "=0.51.0", path = "../../common/s2n-codec", default-features = false } -s2n-quic-core = { version = "=0.51.0", path = "../s2n-quic-core", default-features = false, features = ["alloc"] } -s2n-quic-crypto = { version = "=0.51.0", path = "../s2n-quic-crypto", default-features = false } +s2n-codec = { workspace = true } +s2n-quic-core = { workspace = true, features = ["alloc"] } +s2n-quic-crypto = { workspace = true, default-features = false } s2n-tls = { version = "0.3", features = ["quic"] } [dev-dependencies] @@ -33,8 +33,8 @@ openssl = { version = "0.10" } # 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"] } -s2n-quic-core = { path = "../s2n-quic-core", features = ["testing"] } -s2n-quic-rustls = { path = "../s2n-quic-rustls" } +s2n-quic-core = { workspace = true, features = ["testing"] } +s2n-quic-rustls = { workspace = true } # tests depend on alert behavior from >=0.3.8 s2n-tls = { version = "0.3.8", features = ["quic"] } diff --git a/quic/s2n-quic-transport/Cargo.toml b/quic/s2n-quic-transport/Cargo.toml index 15fd57ce89..519271dab0 100644 --- a/quic/s2n-quic-transport/Cargo.toml +++ b/quic/s2n-quic-transport/Cargo.toml @@ -23,8 +23,8 @@ futures-core = { version = "0.3", default-features = false, features = ["alloc"] hashbrown = "0.15" intrusive-collections = "0.9" once_cell = "1" -s2n-codec = { version = "=0.51.0", path = "../../common/s2n-codec", features = ["bytes"], default-features = false } -s2n-quic-core = { version = "=0.51.0", path = "../s2n-quic-core", features = ["alloc"], default-features = false } +s2n-codec = { workspace = true, features = ["bytes"] } +s2n-quic-core = { workspace = true, features = ["alloc"] } siphasher = "1.0" smallvec = { version = "1", default-features = false } @@ -32,8 +32,8 @@ smallvec = { version = "1", default-features = false } bolero.workspace = true futures-test = "0.3" # For testing Waker interactions insta = { version = "1", features = ["json"] } -s2n-codec = { path = "../../common/s2n-codec", features = ["testing"] } -s2n-quic-core = { path = "../s2n-quic-core", features = ["testing"] } +s2n-codec = { workspace = true, features = ["testing"] } +s2n-quic-core = { workspace = true, features = ["testing"] } [lints.rust.unexpected_cfgs] level = "warn" diff --git a/quic/s2n-quic/Cargo.toml b/quic/s2n-quic/Cargo.toml index ebde2f30f1..61f0ac6ec1 100644 --- a/quic/s2n-quic/Cargo.toml +++ b/quic/s2n-quic/Cargo.toml @@ -71,23 +71,23 @@ hash_hasher = { version = "2", optional = true } humansize = { version = "2", optional = true } rand = "0.8" rand_chacha = "0.3" -s2n-codec = { version = "=0.51.0", path = "../../common/s2n-codec" } -s2n-quic-core = { version = "=0.51.0", path = "../s2n-quic-core" } -s2n-quic-crypto = { version = "=0.51.0", path = "../s2n-quic-crypto", optional = true } -s2n-quic-platform = { version = "=0.51.0", path = "../s2n-quic-platform", features = ["tokio-runtime"] } -s2n-quic-rustls = { version = "=0.51.0", path = "../s2n-quic-rustls", optional = true } -s2n-quic-tls = { version = "=0.51.0", path = "../s2n-quic-tls", optional = true } -s2n-quic-tls-default = { version = "=0.51.0", path = "../s2n-quic-tls-default", optional = true } -s2n-quic-transport = { version = "=0.51.0", path = "../s2n-quic-transport" } +s2n-codec = { workspace = true } +s2n-quic-core = { workspace = true, features = ["std"] } +s2n-quic-crypto = { workspace = true, optional = true } +s2n-quic-platform = { workspace = true, features = ["tokio-runtime"] } +s2n-quic-rustls = { workspace = true, optional = true } +s2n-quic-tls = { workspace = true, optional = true } +s2n-quic-tls-default = { workspace = true, optional = true } +s2n-quic-transport = { workspace = true } tokio = { version = "1", default-features = false, features = ["sync"] } zerocopy = { version = "0.7", optional = true, features = ["derive"] } zeroize = { version = "1", optional = true, default-features = false } [dev-dependencies] bolero.workspace = true -s2n-quic-core = { path = "../s2n-quic-core", features = ["branch-tracing", "event-tracing", "probe-tracing", "testing"] } -s2n-quic-platform = { path = "../s2n-quic-platform", features = ["testing"] } -s2n-quic-transport = { path = "../s2n-quic-transport", features = ["unstable_resumption", "unstable-provider-dc"] } +s2n-quic-core = { workspace = true, features = ["branch-tracing", "event-tracing", "probe-tracing", "testing"] } +s2n-quic-platform = { workspace = true, features = ["testing"] } +s2n-quic-transport = { workspace = true, features = ["unstable_resumption", "unstable-provider-dc"] } tokio = { version = "1", features = ["full"] } tracing = { version = "0.1" } tracing-subscriber = { version = "0.3", features = ["env-filter"] } diff --git a/tools/memory-report/Cargo.toml b/tools/memory-report/Cargo.toml index d05ad59ca2..02f16881b0 100644 --- a/tools/memory-report/Cargo.toml +++ b/tools/memory-report/Cargo.toml @@ -7,9 +7,6 @@ publish = false [dependencies] dhat = "0.3" -s2n-quic = { path = "../../quic/s2n-quic" } -s2n-quic-core = { path = "../../quic/s2n-quic-core", features = ["testing"] } +s2n-quic = { workspace = true } +s2n-quic-core = { workspace = true, features = ["testing"] } tokio = { version = "1", features = ["full"] } - -[workspace] -members = ["."] diff --git a/tools/udp-attack/Cargo.toml b/tools/udp-attack/Cargo.toml index d2e317e49f..791bab4d17 100644 --- a/tools/udp-attack/Cargo.toml +++ b/tools/udp-attack/Cargo.toml @@ -8,6 +8,3 @@ publish = false clap = { version = "4", features = ["derive"] } tokio = { version = "1", features = ["full"] } rand = "0.8" - -[workspace] -members = ["."] diff --git a/tools/udp-attack/rust-toolchain b/tools/udp-attack/rust-toolchain deleted file mode 100644 index a8c550885a..0000000000 --- a/tools/udp-attack/rust-toolchain +++ /dev/null @@ -1,3 +0,0 @@ -[toolchain] -channel = "1.71.1" -components = [ "rustc", "clippy", "rustfmt" ] diff --git a/tools/xdp/.cargo/config.toml b/tools/xdp/.cargo/config.toml deleted file mode 100644 index 35049cbcb1..0000000000 --- a/tools/xdp/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[alias] -xtask = "run --package xtask --" diff --git a/tools/xdp/Cargo.toml b/tools/xdp/Cargo.toml deleted file mode 100644 index 4f7e9f9170..0000000000 --- a/tools/xdp/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[workspace] -members = ["s2n-quic-xdp", "tester", "xtask"] -resolver = "2" - -[workspace.dependencies] -bolero = "0.12" -bolero-generator = { version = "0.12", default-features = false } \ No newline at end of file diff --git a/tools/xdp/rust-toolchain b/tools/xdp/rust-toolchain deleted file mode 100644 index 5a54c5c7af..0000000000 --- a/tools/xdp/rust-toolchain +++ /dev/null @@ -1,3 +0,0 @@ -[toolchain] -channel = "1.80.0" -components = [ "rustc", "clippy", "rustfmt" ] diff --git a/tools/xdp/s2n-quic-xdp/Cargo.toml b/tools/xdp/s2n-quic-xdp/Cargo.toml index eb1090f95c..38110c2ace 100644 --- a/tools/xdp/s2n-quic-xdp/Cargo.toml +++ b/tools/xdp/s2n-quic-xdp/Cargo.toml @@ -18,8 +18,8 @@ aya = { version = "0.13", default-features = false } bitflags = "2" errno = "0.3" libc = "0.2" -s2n-codec = { version = "=0.51.0", path = "../../../common/s2n-codec" } -s2n-quic-core = { version = "=0.51.0", path = "../../../quic/s2n-quic-core" } +s2n-codec = { workspace = true } +s2n-quic-core = { workspace = true } tokio = { version = "1", features = ["net"], optional = true } [dev-dependencies] @@ -27,7 +27,7 @@ bolero.workspace = true futures = "0.3" pin-project-lite = "0.2" rand = "0.8" -s2n-quic-core = { path = "../../../quic/s2n-quic-core", features = ["testing"] } +s2n-quic-core = { workspace = true, features = ["testing"] } tokio = { version = "1", features = ["full"] } [lints.rust.unexpected_cfgs] diff --git a/tools/xdp/tester/Cargo.toml b/tools/xdp/tester/Cargo.toml index 1e4f84c7e6..9f3e869c0c 100644 --- a/tools/xdp/tester/Cargo.toml +++ b/tools/xdp/tester/Cargo.toml @@ -11,5 +11,5 @@ clap = { version = "4.1", features = ["derive"] } anyhow = "1.0.68" env_logger = "0.11" log = "0.4" -s2n-quic-xdp = { path = "../s2n-quic-xdp" } +s2n-quic-xdp = { workspace = true } tokio = { version = "1.24", features = ["macros", "rt", "rt-multi-thread", "net", "signal"] } diff --git a/tools/xdp/xtask/Cargo.toml b/tools/xdp/xtask/Cargo.toml index f7e59da983..a10ebaaad5 100644 --- a/tools/xdp/xtask/Cargo.toml +++ b/tools/xdp/xtask/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "xtask" +name = "xdp-xtask" version = "0.1.0" edition = "2021"