Skip to content

Commit

Permalink
Merge 66548d7 into bdaf35b
Browse files Browse the repository at this point in the history
  • Loading branch information
nviennot committed Apr 5, 2020
2 parents bdaf35b + 66548d7 commit 4db3c7a
Showing 1 changed file with 20 additions and 10 deletions.
30 changes: 20 additions & 10 deletions rustls/examples/internal/bench.rs
Expand Up @@ -169,7 +169,8 @@ impl KeyType {
fn make_server_config(version: rustls::ProtocolVersion,
suite: &'static rustls::SupportedCipherSuite,
client_auth: ClientAuth,
resume: Resumption)
resume: Resumption,
mtu: Option<usize>)
-> ServerConfig {
let kt = KeyType::for_suite(suite);
let client_auth = match client_auth {
Expand Down Expand Up @@ -201,6 +202,8 @@ fn make_server_config(version: rustls::ProtocolVersion,
cfg.versions.clear();
cfg.versions.push(version);

cfg.mtu = mtu;

cfg
}

Expand Down Expand Up @@ -246,7 +249,7 @@ fn bench_handshake(version: rustls::ProtocolVersion,
clientauth: ClientAuth,
resume: Resumption) {
let client_config = Arc::new(make_client_config(version, suite, clientauth, resume));
let server_config = Arc::new(make_server_config(version, suite, clientauth, resume));
let server_config = Arc::new(make_server_config(version, suite, clientauth, resume, None));

if !suite.usable_for_version(version) {
return;
Expand Down Expand Up @@ -318,10 +321,10 @@ fn do_handshake(client: &mut ClientSession, server: &mut ServerSession) {
}

fn bench_bulk(version: rustls::ProtocolVersion, suite: &'static rustls::SupportedCipherSuite,
plaintext_size: u64) {
plaintext_size: u64, mtu: Option<usize>) {
let client_config =
Arc::new(make_client_config(version, suite, ClientAuth::No, Resumption::No));
let server_config = Arc::new(make_server_config(version, suite, ClientAuth::No, Resumption::No));
let server_config = Arc::new(make_server_config(version, suite, ClientAuth::No, Resumption::No, mtu));

if !suite.usable_for_version(version) {
return;
Expand Down Expand Up @@ -361,14 +364,17 @@ fn bench_bulk(version: rustls::ProtocolVersion, suite: &'static rustls::Supporte
drain(&mut client, buf.len());
}

let mtu_str = format!("mtu:{}", mtu.map(|v| v.to_string()).unwrap_or("default".to_string()));
let total_mbs = ((plaintext_size * rounds) as f64) / (1024. * 1024.);
println!("bulk\t{:?}\t{:?}\tsend\t{:.2}\tMB/s",
println!("bulk\t{:?}\t{:?}\t{}\tsend\t{:.2}\tMB/s",
version,
suite.suite,
mtu_str,
total_mbs / time_send);
println!("bulk\t{:?}\t{:?}\trecv\t{:.2}\tMB/s",
println!("bulk\t{:?}\t{:?}\t{}\trecv\t{:.2}\tMB/s",
version,
suite.suite,
mtu_str,
total_mbs / time_recv);
}

Expand All @@ -377,7 +383,7 @@ fn bench_memory(version: rustls::ProtocolVersion,
session_count: u64) {
let client_config =
Arc::new(make_client_config(version, suite, ClientAuth::No, Resumption::No));
let server_config = Arc::new(make_server_config(version, suite, ClientAuth::No, Resumption::No));
let server_config = Arc::new(make_server_config(version, suite, ClientAuth::No, Resumption::No, None));

if !suite.usable_for_version(version) {
return;
Expand Down Expand Up @@ -434,9 +440,12 @@ fn selected_tests(mut args: env::Args) {
.map(|arg| arg.parse::<u64>()
.expect("3rd arg must be plaintext size integer"))
.unwrap_or(1048576);
let mtu = args.next()
.map(|arg| arg.parse::<usize>()
.expect("4th arg must be mtu integer"));
let suite = lookup_suite(&suite);
bench_bulk(rustls::ProtocolVersion::TLSv1_3, suite, len);
bench_bulk(rustls::ProtocolVersion::TLSv1_2, suite, len);
bench_bulk(rustls::ProtocolVersion::TLSv1_3, suite, len, mtu);
bench_bulk(rustls::ProtocolVersion::TLSv1_2, suite, len, mtu);
}
None => {
panic!("bulk needs ciphersuite argument");
Expand Down Expand Up @@ -491,7 +500,8 @@ fn selected_tests(mut args: env::Args) {
fn all_tests() {
for version in &[rustls::ProtocolVersion::TLSv1_3, rustls::ProtocolVersion::TLSv1_2] {
for suite in &rustls::ALL_CIPHERSUITES {
bench_bulk(*version, suite, 1024 * 1024);
bench_bulk(*version, suite, 1024 * 1024, None);
bench_bulk(*version, suite, 1024 * 1024, Some(10000));
bench_handshake(*version, suite, ClientAuth::No, Resumption::No);
bench_handshake(*version, suite, ClientAuth::Yes, Resumption::No);
bench_handshake(*version, suite, ClientAuth::No, Resumption::SessionID);
Expand Down

0 comments on commit 4db3c7a

Please sign in to comment.