public static void Evaluator(TunnelOverlapSimulator sim) { Address addr1 = null, addr2 = null; sim.AddDisconnectedPair(out addr1, out addr2, true); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, false); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, false); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, false); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, false); Run(sim, addr1, addr2); Console.WriteLine("NC Tests"); sim.AddDisconnectedPair(addr1, addr2, true); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, true); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, true); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, true); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, true); Run(sim, addr1, addr2); }
public static void Main(string []args) { TunnelOverlapSimulator sim = new TunnelOverlapSimulator(); bool complete; sim.NCEnable = true; Runner.ParseCommandLine(args, out complete, sim); sim.Complete(); Address addr1 = null, addr2 = null; sim.AddDisconnectedPair(out addr1, out addr2, true); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, false); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, false); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, false); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, false); Run(sim, addr1, addr2); Console.WriteLine("NC Tests"); sim.AddDisconnectedPair(addr1, addr2, true); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, true); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, true); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, true); Run(sim, addr1, addr2); sim.AddDisconnectedPair(addr1, addr2, true); Run(sim, addr1, addr2); }
// Static Members public static void Simulator(TunnelOverlapSimulator sim) { Address addr1 = null, addr2 = null; sim.AddDisconnectedPair(out addr1, out addr2, sim.NCEnable); sim.Complete(); SimpleTimer.RunSteps(1000000, false); StructuredNode node1 = (sim.Nodes[addr1] as NodeMapping).Node as StructuredNode; StructuredNode node2 = (sim.Nodes[addr2] as NodeMapping).Node as StructuredNode; node1.ManagedCO.AddAddress(addr2); SimpleTimer.RunSteps(100000, false); Console.WriteLine(addr1 + "<=>" + addr2 + ":"); Console.WriteLine("\t" + node1.ConnectionTable.GetConnection(ConnectionType.Structured, addr2) + "\n"); sim.PrintConnections(node1); Console.WriteLine(); sim.PrintConnections(node2); Console.WriteLine("\nPhase 2 -- Disconnect..."); sim.FindOverlap(node1, node2); sim.CloseOverlap(node1); sim.CloseOverlap(node2); SimpleTimer.RunSteps(100000, false); Console.WriteLine(addr1 + "<=>" + addr2 + ":"); Console.WriteLine("\t" + node1.ConnectionTable.GetConnection(ConnectionType.Structured, addr2) + "\n"); sim.PrintConnections(node1); Console.WriteLine(); sim.PrintConnections(node2); sim.Disconnect(); }
public static void Main(string []args) { TunnelOverlapSimulator sim = new TunnelOverlapSimulator(); bool complete; Runner.ParseCommandLine(args, out complete, sim); sim.Complete(); Address addr1 = null, addr2 = null; sim.AddDisconnectedPair(out addr1, out addr2, sim.NCEnable); sim.Complete(); SimpleTimer.RunSteps(1000000, false); StructuredNode node1 = (sim.Nodes[addr1] as NodeMapping).Node as StructuredNode; StructuredNode node2 = (sim.Nodes[addr2] as NodeMapping).Node as StructuredNode; node1.ManagedCO.AddAddress(addr2); SimpleTimer.RunSteps(100000, false); Console.WriteLine(addr1 + "<=>" + addr2 + ":"); Console.WriteLine("\t" + node1.ConnectionTable.GetConnection(ConnectionType.Structured, addr2) + "\n"); sim.PrintConnections(node1); Console.WriteLine(); sim.PrintConnections(node2); Console.WriteLine("\nPhase 2 -- Disconnect..."); Hashtable ht = new Hashtable(); foreach(Connection con in node1.ConnectionTable.GetConnections(Tunnel.OverlapConnectionOverlord.STRUC_OVERLAP)) { ht[con.Address] = (con.Edge as SimulationEdge).Delay; Console.WriteLine("Closing: " + con); con.Edge.Close(); } ConnectionList cl2 = node2.ConnectionTable.GetConnections(ConnectionType.Structured); foreach(DictionaryEntry de in ht) { Address addr = de.Key as Address; int delay = (int) de.Value; int index = cl2.IndexOf(addr); if(index < 0) { Console.WriteLine("No matching pair for overlap..."); continue; } Connection con = cl2[index]; delay += (con.Edge as SimulationEdge).Delay; Console.WriteLine("Delay: " + delay); } ht.Clear(); foreach(Connection con in node2.ConnectionTable.GetConnections(Tunnel.OverlapConnectionOverlord.STRUC_OVERLAP)) { ht[con.Address] = (con.Edge as SimulationEdge).Delay; Console.WriteLine("Closing: " + con); con.Edge.Close(); } ConnectionList cl1 = node1.ConnectionTable.GetConnections(ConnectionType.Structured); foreach(DictionaryEntry de in ht) { Address addr = de.Key as Address; int delay = (int) de.Value; int index = cl1.IndexOf(addr); if(index < 0) { Console.WriteLine("No matching pair for overlap..."); continue; } Connection con = cl1[index]; delay += (con.Edge as SimulationEdge).Delay; Console.WriteLine("Delay: " + delay); } SimpleTimer.RunSteps(100000, false); Console.WriteLine(addr1 + "<=>" + addr2 + ":"); Console.WriteLine("\t" + node1.ConnectionTable.GetConnection(ConnectionType.Structured, addr2) + "\n"); sim.PrintConnections(node1); Console.WriteLine(); sim.PrintConnections(node2); sim.Disconnect(); }