public static void Mobile3G(RouteDef def) { // TODO: use Zigorat or Box Muller transform // for better latencies def.Latency = r => r.Next(100, 500).Ms(); def.PacketLoss = r => r.Next(0, 100) == 1; }
public static void Internet(RouteDef obj) { obj.Latency = r => { var next = r.Next(20, 100); Console.WriteLine($"Latency {next} ms"); return(next.Ms()); }; }
public SimRoute(SimScheduler scheduler, SimCluster network, RouteId route, RouteDef def) { _scheduler = scheduler; _network = network; _route = route; _factory = new TaskFactory(_scheduler); _def = def; }
public static void ReverseLatency(RouteDef def) { // from 50 to 10 and back int latency = 50; def.Latency = r => { latency -= 2; if (latency <= 10) { latency = 50; } return(latency.Ms()); }; }
public static void LogAll(RouteDef d) { d.Debug = packet => true; }
public static void IdealFixed(RouteDef def) { def.Latency = random => 50.Ms(); }
public static void AzureIntranet(RouteDef obj) { obj.Latency = r => r.Next(2, 10).Ms(); obj.PacketLoss = r => r.Next(0, 10000) == 1; }