diff --git a/ethox-iperf/bin/main.rs b/ethox-iperf/bin/main.rs index c3a3d46..771d4a5 100644 --- a/ethox-iperf/bin/main.rs +++ b/ethox-iperf/bin/main.rs @@ -26,10 +26,12 @@ fn main() { let mut neighbors = [arp::Neighbor::default(); 1]; let mut routes = [ip::Route::new_ipv4_gateway(config.gateway.address()); 1]; + let neighbors = arp::NeighborCache::new(&mut neighbors[..]); + let mut ip = ip::Endpoint::new( Slice::One(config.host.into()), ip::Routes::import(List::new_full(routes.as_mut().into())), - arp::NeighborCache::new(&mut neighbors[..])); + arp::Endpoint::new(neighbors)); println!("[+] Configured layers, communicating"); diff --git a/ethox/src/layer/arp/tests.rs b/ethox/src/layer/arp/tests.rs index 80496df..e1c520b 100644 --- a/ethox/src/layer/arp/tests.rs +++ b/ethox/src/layer/arp/tests.rs @@ -17,10 +17,14 @@ fn simple_arp() { // No prior ARP cache entries needed. let mut neighbors = [arp_layer::Neighbor::default(); 1]; let mut routes = [ip_layer::Route::unspecified(); 2]; - let mut ip = ip_layer::Endpoint::new(ip::Cidr::new(IP_ADDR_HOST.into(), 24), + let arp = arp_layer::Endpoint::new( + arp_layer::NeighborCache::new(Slice::empty())); + let mut ip = ip_layer::Endpoint::new( + ip::Cidr::new(IP_ADDR_HOST.into(), 24), // No routes necessary for local link. ip_layer::Routes::new(&mut routes[..]), - arp_layer::NeighborCache::new(Slice::empty())); + arp, + ); let mut arp = arp_layer::Endpoint::new(arp_layer::NeighborCache::new(&mut neighbors[..])); diff --git a/ethox/src/layer/icmp/tests.rs b/ethox/src/layer/icmp/tests.rs index dfc4f43..618b9e0 100644 --- a/ethox/src/layer/icmp/tests.rs +++ b/ethox/src/layer/icmp/tests.rs @@ -31,7 +31,7 @@ fn answer_ping() { let neighbors = { let mut eth_cache = arp::NeighborCache::new(&mut neighbors[..]); eth_cache.fill(IP_ADDR_OTHER.into(), MAC_ADDR_OTHER, None).unwrap(); - eth_cache + arp::Endpoint::new(eth_cache) }; let mut ip = [ip::Route::unspecified(); 2]; let mut ip = ip::Endpoint::new(Cidr::new(IP_ADDR_HOST.into(), 24), @@ -72,7 +72,7 @@ fn queue_ping(nic: &mut Loopback>) { let neighbors = { let mut eth_cache = arp::NeighborCache::new(&mut neighbors[..]); eth_cache.fill(IP_ADDR_HOST.into(), MAC_ADDR_HOST, None).unwrap(); - eth_cache + arp::Endpoint::new(eth_cache) }; let mut ip = ip::Endpoint::new( Cidr::new(IP_ADDR_OTHER.into(), 24), diff --git a/ethox/src/layer/ip/tests.rs b/ethox/src/layer/ip/tests.rs index de66688..a7fa4be 100644 --- a/ethox/src/layer/ip/tests.rs +++ b/ethox/src/layer/ip/tests.rs @@ -34,7 +34,7 @@ fn simple_ipv4() { let neighbors = { let mut eth_cache = arp::NeighborCache::new(&mut neighbors[..]); eth_cache.fill(IP_ADDR_DST.into(), MAC_ADDR_DST, None).unwrap(); - eth_cache + arp::Endpoint::new(eth_cache) }; let mut ip = [ip::Route::unspecified(); 2]; let mut ip = ip::Endpoint::new(Cidr::new(IP_ADDR_SRC.into(), 24), @@ -82,7 +82,7 @@ fn simple_ipv6() { let neighbors = { let mut eth_cache = arp::NeighborCache::new(&mut neighbors[..]); eth_cache.fill(IP_ADDR_DST.into(), MAC_ADDR_DST, None).unwrap(); - eth_cache + arp::Endpoint::new(eth_cache) }; let mut ip = [ip::Route::unspecified(); 2]; let mut ip = ip::Endpoint::new(Cidr::new(IP_ADDR_SRC.into(), 24), diff --git a/ethox/src/layer/udp/tests.rs b/ethox/src/layer/udp/tests.rs index ea6a4ec..6da404d 100644 --- a/ethox/src/layer/udp/tests.rs +++ b/ethox/src/layer/udp/tests.rs @@ -50,7 +50,7 @@ fn simple() { let neighbors = { let mut eth_cache = arp::NeighborCache::new(&mut neighbors[..]); eth_cache.fill(IP_ADDR_DST.into(), MAC_ADDR_DST, None).unwrap(); - eth_cache + arp::Endpoint::new(eth_cache) }; let mut ip = [ip::Route::unspecified(); 2]; let mut ip = ip::Endpoint::new(Cidr::new(IP_ADDR_SRC.into(), 24),