@@ -218,6 +218,12 @@ impl Peer {
218218
219219pub ( crate ) type RuntimeFactory = Box < dyn FnOnce ( ) -> tokio:: runtime:: Runtime + Send > ;
220220
221+ pub fn default_runtime_factory ( ) -> RuntimeFactory {
222+ Box :: new ( || {
223+ tokio:: runtime:: Builder :: new_multi_thread ( ) . enable_all ( ) . build ( ) . expect ( "to create runtime" )
224+ } )
225+ }
226+
221227/// Common context provided to all namespaces.
222228///
223229/// This context gives access to rtnetlink for network configuration.
@@ -229,23 +235,6 @@ pub struct CommonContext {
229235 _connection_task : tokio:: task:: JoinHandle < ( ) > ,
230236}
231237
232- pub struct HubOptions {
233- runtime_factory : RuntimeFactory ,
234- }
235-
236- impl Default for HubOptions {
237- fn default ( ) -> Self {
238- Self {
239- runtime_factory : Box :: new ( || {
240- tokio:: runtime:: Builder :: new_multi_thread ( )
241- . enable_all ( )
242- . build ( )
243- . expect ( "to create runtime" )
244- } ) ,
245- }
246- }
247- }
248-
249238/// Context provided to tasks running within a peer's namespace.
250239///
251240/// This context gives access to rtnetlink for network configuration
@@ -353,7 +342,7 @@ pub type Result<T> = std::result::Result<T, Error>;
353342/// async fn main() {
354343/// // Create a network with a /16 subnet
355344/// let subnet = Subnet::new(Ipv4Addr::new(10, 0, 0, 0).into(), 16);
356- /// let mut network = Network::new(subnet, HubOptions::default() ).await.unwrap();
345+ /// let mut network = Network::new(subnet).await.unwrap();
357346///
358347/// // Add some peers
359348/// let peer_1 = network.add_peer(PeerOptions::default()).await.unwrap();
@@ -421,7 +410,7 @@ impl Network {
421410 /// 2. A bridge device (`msg-sim-br0`) in the hub namespace
422411 ///
423412 /// Peers can then be added with [`add_peer`](Self::add_peer).
424- pub async fn new ( subnet : Subnet , options : HubOptions ) -> Result < Self > {
413+ pub async fn new ( subnet : Subnet ) -> Result < Self > {
425414 // Create rtnetlink connection in the host namespace.
426415 // This is used for creating veth pairs and moving devices.
427416 let ( connection, handle, _) = rtnetlink:: new_connection ( ) ?;
@@ -439,7 +428,7 @@ impl Network {
439428
440429 // Create the hub namespace that will host the bridge.
441430 let namespace_hub =
442- NetworkNamespace :: new ( Self :: hub_namespace_name ( ) , options . runtime_factory , make_ctx)
431+ NetworkNamespace :: new ( Self :: hub_namespace_name ( ) , default_runtime_factory ( ) , make_ctx)
443432 . await ?;
444433 let fd = namespace_hub. fd ( ) ;
445434
@@ -626,7 +615,7 @@ impl Network {
626615 /// #[tokio::main]
627616 /// async fn main() {
628617 /// let subnet = Subnet::new(Ipv4Addr::new(12, 0, 0, 0).into(), 16);
629- /// let mut network = Network::new(subnet, HubOptions::default() ).await.unwrap();
618+ /// let mut network = Network::new(subnet).await.unwrap();
630619 ///
631620 /// let peer_id = network.add_peer(PeerOptions::default()).await.unwrap();
632621 /// network
@@ -698,7 +687,7 @@ impl Network {
698687 /// #[tokio::main]
699688 /// async fn main() {
700689 /// let subnet = Subnet::new(Ipv4Addr::new(12, 0, 0, 0).into(), 16);
701- /// let mut network = Network::new(subnet, HubOptions::default() ).await.unwrap();
690+ /// let mut network = Network::new(subnet).await.unwrap();
702691 ///
703692 /// let peer_1 = network.add_peer(PeerOptions::default()).await.unwrap();
704693 /// let peer_2 = network.add_peer(PeerOptions::default()).await.unwrap();
@@ -824,7 +813,7 @@ mod msg_sim_network {
824813
825814 use crate :: {
826815 ip:: Subnet ,
827- network:: { HubOptions , Link , Network , PeerIdExt , PeerOptions } ,
816+ network:: { Link , Network , PeerIdExt , PeerOptions } ,
828817 tc:: impairment:: LinkImpairment ,
829818 } ;
830819
@@ -833,7 +822,7 @@ mod msg_sim_network {
833822 async fn create_network_works ( ) {
834823 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
835824 let subnet = Subnet :: new ( Ipv4Addr :: new ( 11 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
836- let _network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
825+ let _network = Network :: new ( subnet) . await . unwrap ( ) ;
837826
838827 let path = format ! ( "/run/netns/{}" , Network :: hub_namespace_name( ) ) ;
839828 let exists = std:: fs:: exists ( path. clone ( ) ) . unwrap ( ) ;
@@ -846,7 +835,7 @@ mod msg_sim_network {
846835 async fn add_peer_works ( ) {
847836 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
848837 let subnet = Subnet :: new ( Ipv4Addr :: new ( 12 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
849- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
838+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
850839
851840 let _peer_id = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
852841 let _peer_id = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
@@ -858,7 +847,7 @@ mod msg_sim_network {
858847 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
859848
860849 let subnet = Subnet :: new ( Ipv4Addr :: new ( 13 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
861- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
850+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
862851
863852 let peer_1 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
864853 let peer_2 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
@@ -904,7 +893,7 @@ mod msg_sim_network {
904893 async fn apply_impairment_works ( ) {
905894 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
906895 let subnet = Subnet :: new ( Ipv4Addr :: new ( 12 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
907- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
896+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
908897
909898 let peer_1 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
910899 let peer_2 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
@@ -926,7 +915,7 @@ mod msg_sim_network {
926915 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
927916
928917 let subnet = Subnet :: new ( Ipv4Addr :: new ( 14 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
929- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
918+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
930919
931920 let peer_1 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
932921 let peer_2 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
@@ -986,7 +975,7 @@ mod msg_sim_network {
986975 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
987976
988977 let subnet = Subnet :: new ( Ipv4Addr :: new ( 15 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
989- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
978+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
990979
991980 let peer_1 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
992981 let peer_2 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
@@ -1094,7 +1083,7 @@ mod msg_sim_network {
10941083 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
10951084
10961085 let subnet = Subnet :: new ( Ipv4Addr :: new ( 16 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
1097- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
1086+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
10981087
10991088 let peer_1 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
11001089 let peer_2 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
@@ -1168,7 +1157,7 @@ mod msg_sim_network {
11681157 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
11691158
11701159 let subnet = Subnet :: new ( Ipv4Addr :: new ( 17 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
1171- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
1160+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
11721161
11731162 let peer_1 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
11741163 let peer_2 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
@@ -1239,7 +1228,7 @@ mod msg_sim_network {
12391228 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
12401229
12411230 let subnet = Subnet :: new ( Ipv4Addr :: new ( 18 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
1242- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
1231+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
12431232
12441233 let peer_1 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
12451234 let peer_2 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
@@ -1270,7 +1259,7 @@ mod msg_sim_network {
12701259 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
12711260
12721261 let subnet = Subnet :: new ( Ipv4Addr :: new ( 19 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
1273- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
1262+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
12741263
12751264 let peer_1 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
12761265 let peer_2 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
@@ -1295,7 +1284,7 @@ mod msg_sim_network {
12951284 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
12961285
12971286 let subnet = Subnet :: new ( Ipv4Addr :: new ( 20 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
1298- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
1287+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
12991288
13001289 let peer_1 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
13011290 let peer_2 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
@@ -1329,7 +1318,7 @@ mod msg_sim_network {
13291318 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
13301319
13311320 let subnet = Subnet :: new ( Ipv4Addr :: new ( 24 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
1332- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
1321+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
13331322
13341323 let peer_1 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
13351324 let peer_2 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
@@ -1360,7 +1349,7 @@ mod msg_sim_network {
13601349 let _ = tracing_subscriber:: fmt:: try_init ( ) ;
13611350
13621351 let subnet = Subnet :: new ( Ipv4Addr :: new ( 21 , 0 , 0 , 0 ) . into ( ) , 16 ) ;
1363- let mut network = Network :: new ( subnet, HubOptions :: default ( ) ) . await . unwrap ( ) ;
1352+ let mut network = Network :: new ( subnet) . await . unwrap ( ) ;
13641353
13651354 let peer_1 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
13661355 let peer_2 = network. add_peer ( PeerOptions :: default ( ) ) . await . unwrap ( ) ;
0 commit comments