public void RemoveLink(string ip1, string ip2) { NetworkNode selected1 = FindNode(ip1); NetworkNode selected2 = FindNode(ip2); if (selected1 == null || selected2 == null) { Console.WriteLine("One or both routers are not found!"); return; } Edge sEdge = null; foreach (Edge e in selected1.GetEdges()) { if (e.GetLeft() == selected2 || e.GetRight() == selected2) { sEdge = e; } } if (sEdge == null) { Console.WriteLine("Link not found!"); return; } selected1.RemoveEdge(sEdge); selected2.RemoveEdge(sEdge); Console.WriteLine("Link removed!"); }
private void InitStates() { States.Clear(); foreach (NetworkNode node in CurrentNetwork.GetNetworkNodes()) { if (node == ParentNode) { continue; } NetworkNode nextNode = new NetworkNode(); int targetMetric = MAX_HOPS + 1; foreach (Edge en in ParentNode.GetEdges()) { if (en.GetLeft() == node) { if (en.GetLeft().GetIP() == "0.0.0.0") { continue; } nextNode = en.GetLeft(); targetMetric = 1; break; } if (en.GetRight() == node) { if (en.GetRight().GetIP() == "0.0.0.0") { continue; } nextNode = en.GetRight(); targetMetric = 1; break; } } States.Add(new RoutingState() { NextNode = nextNode, DestinationNode = node, Metric = targetMetric }); } }