diff options
author | Jake McGinty <me@jake.su> | 2018-03-04 01:20:33 +0000 |
---|---|---|
committer | Jake McGinty <me@jake.su> | 2018-03-04 01:23:53 +0000 |
commit | 67dbba64dc5a6faa633cc6cbc539b48feea4a6f2 (patch) | |
tree | c394a4b56d6ed23c305ba75a0d2245ab31cbaa94 /benches | |
parent | udp: move all the UDP-related internals into its own struct (diff) | |
download | wireguard-rs-67dbba64dc5a6faa633cc6cbc539b48feea4a6f2.tar.xz wireguard-rs-67dbba64dc5a6faa633cc6cbc539b48feea4a6f2.zip |
udp: continue simplifying wrappers
Diffstat (limited to 'benches')
-rw-r--r-- | benches/criterion.rs | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/benches/criterion.rs b/benches/criterion.rs index d9a4a03..955d384 100644 --- a/benches/criterion.rs +++ b/benches/criterion.rs @@ -5,14 +5,18 @@ extern crate x25519_dalek; extern crate rand; extern crate snow; extern crate pnet_packet; +extern crate socket2; use criterion::{Benchmark, Criterion, Throughput}; use wireguard::peer::{Peer, Session}; use wireguard::noise; use x25519_dalek::{generate_secret, generate_public}; use rand::OsRng; +use std::io::Write; +use std::net::{SocketAddr, IpAddr, Ipv6Addr, Ipv4Addr}; use std::time::Duration; use pnet_packet::{Packet, ipv4::MutableIpv4Packet}; +use socket2::{Socket, Domain, Type, Protocol}; struct Keypair { pub private: [u8; 32], @@ -102,7 +106,45 @@ fn benchmarks(c: &mut Criterion) { peer_resp.handle_incoming_transport(addr, &packet).expect("handle_incoming_transport") }); }).throughput(Throughput::Bytes(1420))); -} + +// c.bench("udp_send_to", Benchmark::new("udp_send_to", |b| { +//// let addr = SocketAddr::new(IpAddr::V6(Ipv4Addr::new(185, 112, 146, 247).to_ipv6_mapped()), 51820); +// let addr = SocketAddr::new(IpAddr::V6(Ipv4Addr::new(127,0,0,1).to_ipv6_mapped()), 51820); +// let socket = Socket::new(Domain::ipv6(), Type::dgram(), Some(Protocol::udp())).unwrap(); +// socket.set_only_v6(false).unwrap(); +// socket.bind(&SocketAddr::new("::".parse().unwrap(), 0).into()).unwrap(); +// let buf = [1u8; 1450]; +// b.iter(move || { +// socket.send_to(&buf, &addr.into()); +// }); +// }).throughput(Throughput::Bytes(1450))); +// +// c.bench("udp_send", Benchmark::new("udp_send", |b| { +//// let addr = SocketAddr::new(IpAddr::V6(Ipv4Addr::new(185, 112, 146, 247).to_ipv6_mapped()), 51820); +// let addr = SocketAddr::new(IpAddr::V6(Ipv4Addr::new(127,0,0,1).to_ipv6_mapped()), 51820); +// let socket = Socket::new(Domain::ipv6(), Type::dgram(), Some(Protocol::udp())).unwrap(); +// socket.set_only_v6(false).unwrap(); +// socket.bind(&SocketAddr::new("::".parse().unwrap(), 0).into()).unwrap(); +// let buf = [1u8; 1450]; +// socket.connect(&addr.into()).unwrap(); +// b.iter(move || { +// socket.send(&buf); +// }); +// }).throughput(Throughput::Bytes(1450))); +// +// c.bench("udp_write", Benchmark::new("udp_send", |b| { +//// let addr = SocketAddr::new(IpAddr::V6(Ipv4Addr::new(185, 112, 146, 247).to_ipv6_mapped()), 51820); +// let addr = SocketAddr::new(IpAddr::V6(Ipv4Addr::new(127,0,0,1).to_ipv6_mapped()), 51820); +// let mut socket = Socket::new(Domain::ipv6(), Type::dgram(), Some(Protocol::udp())).unwrap(); +// socket.set_only_v6(false).unwrap(); +// socket.bind(&SocketAddr::new("::".parse().unwrap(), 0).into()).unwrap(); +// let buf = [1u8; 1450]; +// socket.connect(&addr.into()).unwrap(); +// b.iter(move || { +// socket.write(&buf); +// }); +// }).throughput(Throughput::Bytes(1450))); +//} fn custom_criterion() -> Criterion { Criterion::default().warm_up_time(Duration::new(1, 0)).measurement_time(Duration::new(3, 0)) |