|  | @@ -22,14 +22,16 @@ use smoltcp::iface::{NeighborCache, EthernetInterfaceBuilder};
 | 
	
		
			
				|  |  |  use smoltcp::socket::SocketSet;
 | 
	
		
			
				|  |  |  use smoltcp::socket::{TcpSocket, TcpSocketBuffer};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -const AMOUNT: usize = 10_000_000;
 | 
	
		
			
				|  |  | +const AMOUNT: usize = 1_000_000_000;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  enum Client { Reader, Writer }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  fn client(kind: Client) {
 | 
	
		
			
				|  |  |      let port = match kind { Client::Reader => 1234, Client::Writer => 1235 };
 | 
	
		
			
				|  |  |      let mut stream = TcpStream::connect(("192.168.69.1", port)).unwrap();
 | 
	
		
			
				|  |  | -    let mut buffer = vec![0; 64];
 | 
	
		
			
				|  |  | +    let mut buffer = vec![0; 1_000_000];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    let start = Instant::now();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      let mut processed = 0;
 | 
	
		
			
				|  |  |      while processed < AMOUNT {
 | 
	
	
		
			
				|  | @@ -47,7 +49,15 @@ fn client(kind: Client) {
 | 
	
		
			
				|  |  |              Err(err) => panic!("cannot process: {}", err)
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    println!("client done");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    let end = Instant::now();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    let elapsed = end - start;
 | 
	
		
			
				|  |  | +    let elapsed = elapsed.as_secs() as f64
 | 
	
		
			
				|  |  | +                + elapsed.subsec_nanos() as f64 * 1e-9;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    println!("throughput: {:.3} Gbps", AMOUNT as f64 / elapsed / 0.125e9);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      CLIENT_DONE.store(true, Ordering::SeqCst);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -139,6 +149,6 @@ fn main() {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        phy_wait(fd, iface.poll_delay(&sockets, timestamp)).expect("wait error");
 | 
	
		
			
				|  |  | +        phy_wait(fd, iface.poll_delay(&sockets, timestamp).or(Some(1000))).expect("wait error");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |