示例#1
0
        private Node FindRecepient(Package package)
        {
            Node       node = router.topology.FindNode(package.sender);
            RouterData data = node.FindBranch(package.finalDestination);

            return(router.topology.FindNode(data.from));
        }
示例#2
0
        public List <RouterData> GetRouterTree(int parent)
        {
            var ret  = new List <RouterData>();
            var data = Query(f => f.status == (int)CommonEnum.Valid && f.parent == parent).Result;

            if (!data.Any())
            {
                return(ret);
            }
            foreach (var item in data)
            {
                var children = GetRouterTree(item.id);
                var model    = new RouterData
                {
                    component = item.component.StartsWith("@") ? item.component : $"@{item.component}",
                    meta      = new RouterDataMeta {
                        icon = item.icon, title = item.name
                    },
                    name     = item.name,
                    path     = item.name,
                    id       = item.id,
                    children = children
                };
                ret.Add(model);
            }
            return(ret);
        }
示例#3
0
        private RouterData GetPath(ref string from, ref string to)
        {
            Node       node   = null;
            bool       chosen = false;
            RouterData data   = null;

            while (!chosen)
            {
                from = GetNode("Sending node: ");
                to   = GetNode("Getting node: ");
                node = router.topology.FindNode(from);
                data = node.FindBranch(to);
                if (from == to)
                {
                    Console.WriteLine("Chosen nodes are identical. Please try again.");
                }
                else if (data == null)
                {
                    Console.WriteLine("Chosen nodes are not connected. Please try again.");
                }
                else
                {
                    chosen = true;
                }
            }
            if (data.from != data.to)
            {
                data = node.FindBranch(data.from);
            }
            return(data);
        }
示例#4
0
    public RouterData Save()
    {
        RouterData data = new RouterData();

        data.numGPorts  = numGPorts;
        data.numFEPorts = numFEPorts;
        return(data);
    }
        public static void DeleteStaticRoute(VyattaConfigObject ConfigRoot, RouterData Data, string Network)
        {
            if (Network.Contains("-"))
            {
                Network = Netmask.IPRangeToCIDR(Network);
            }

            ConfigRoot.Delete(string.Format("protocols:static:route {0}", Network));
        }
        public FakeParamComponent(RouterData data)
        {
            var id = data.GetValue("id");

            if (!id.Equals("10"))
            {
                throw new System.ArgumentException("Id cannot be null or empty", "Id");
            }
        }
示例#7
0
 public BibaRouter(Routes routes, BibaCompiler compiler, IServiceProvider provider,
                   RouterData data, CurrentRoute currentRoute)
 {
     _routes           = routes;
     _compiler         = compiler;
     _provider         = provider;
     _data             = data;
     _currentRoute     = currentRoute;
     _contractResolver = new CamelCasePropertyNamesContractResolver();
 }
        public AddStaticRouteWizard(RouterData Data)
        {
            InitializeComponent();
            ElementHost.EnableModelessKeyboardInterop(this);

            var DC = new AddStaticRouteWizardData(Data);

            DataContext        = DC;
            DC.UpdatedList    += Addresses_CollectionChanged;
            DC.UpdatedSummary += Summary_Changed;

            AddressList.ItemsSource = DC.Addresses;
            Interface.ItemsSource   = DC.RouterData.Interfaces;
        }
示例#9
0
        internal static async Task <ModuleResponseCode> RouteAsync(RouterData data)
        {
            if (data == null)
            {
                return(ModuleResponseCode.Bypass);
            }

            IRouter Router = null;

            try
            {
                if (Modules.ContainsKey(data.Path))
                {
                    return(await(Router = Modules[data.Path]).Route(data));
                }
                else
                {
                    string wildcard = StringUtils.GetDirectoryName(data.Path);
                    if (Modules.ContainsKey(wildcard))
                    {
                        return(await(Router = Modules[wildcard]).Route(data));
                    }
                    else
                    {
                        wildcard += "/*";
                        if (Modules.ContainsKey(wildcard))
                        {
                            return(await(Router = Modules[wildcard]).Route(data));
                        }
                        else
                        {
                            string path = data.Path;
                            int    idx;
                            while ((idx = path.LastIndexOf('/')) > -1)
                            {
                                path = path.Remove(idx);
                                string path_wildcard = path + "/**";
                                if (Modules.ContainsKey(path_wildcard))
                                {
                                    return(await(Router = Modules[path_wildcard]).Route(data));
                                }
                            }
                            return(ModuleResponseCode.NotFound);
                        }
                    }
                }
            }
            catch (Exception ex) { throw Router == null ? ex : new RouterException(Router, ex); }
        }
示例#10
0
 public ModuleDataAlloc(RouterData Data)
 {
     STR_LANG = Data.STR_LANG; Context = Data.Context; ExtraData = Data.ExtraData;
 }
 public AddStaticRouteWizardData(RouterData Data)
 {
     RouterData = Data;
 }
示例#12
0
 public void Load(RouterData data)
 {
     //routingTable = data.routingTable;
     numFEPorts = data.numFEPorts;
     numGPorts  = data.numGPorts;
 }
        public static VyattaConfigObject AddStaticRoute(VyattaConfigObject ConfigRoot, RouterData Data, string Network, string Target, string Description)
        {
            if (Network.Contains("-"))
            {
                Network = Netmask.IPRangeToCIDR(Network);
            }

            foreach (var Int in Data.Interfaces)
            {
                if ((Int.Description == Target || Int.Interface == Target) &&
                    Int.Gateway != null)
                {
                    Target = Int.Gateway;
                    break;
                }
            }

            string DescriptionOut = string.Format("VCU-Auto: {0}", Description);

            VyattaConfigObject Route = ConfigRoot.AddObject(string.Format("protocols:static:route {0}:next-hop {1}", Network, Target));

            Route.AddAttribute("description").Add(DescriptionOut);
            return(Route);
        }
        public static void AddStaticRoutesForASN(VyattaConfigObject ConfigRoot, int ASN, RouterData Data, string Target, string Name)
        {
            var Netmasks = Data.ASNData.GetNetmasksFromASN(ASN);

            foreach (var Netmask in Netmasks)
            {
                VyattaConfigRouting.AddStaticRoute(ConfigRoot, Data, Netmask.NetmaskString, Target, Name);
            }
        }
        public static void AddStaticRoutesForOrganization(VyattaConfigObject ConfigRoot, string OrganizationSubstring, RouterData Data, string Target, string Name)
        {
            var Netmasks = Data.ASNData.GetNetmasksFromOrganization(OrganizationSubstring);

            foreach (var Netmask in Netmasks)
            {
                VyattaConfigRouting.AddStaticRoute(ConfigRoot, Data, Netmask.NetmaskString, Target, Name);
            }
        }