Beispiel #1
0
        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!");
        }
Beispiel #2
0
        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
                });
            }
        }