protected void AddBrokenNode(ref NodeMapping nm, Address addr, int broken_port, bool nctunnel) { nm.Node = new StructuredNode(addr as AHAddress, BrunetNamespace); TAAuthorizer auth = new IDTAAuthorizer(broken_port); nm.Node.AddEdgeListener(new SimulationEdgeListener(nm.ID, 0, auth, true)); IRelayOverlap ito = null; if (NCEnable) { nm.NCService = new NCService(nm.Node, new Point()); // Until we figure out what's going on with VivaldiTargetSelector its not quite useful for these purposes // (nm.Node as StructuredNode).Sco.TargetSelector = new VivaldiTargetSelector(nm.Node, ncservice); } if (nctunnel && NCEnable) { ito = new NCRelayOverlap(nm.NCService); } else { ito = new SimpleRelayOverlap(); } nm.Node.AddEdgeListener(new Relay.RelayEdgeListener(nm.Node, ito)); nm.Node.RemoteTAs = GetRemoteTAs(); nm.Node.Connect(); CurrentNetworkSize++; }
protected void AddBrokenNode(ref NodeMapping nm, Address addr, int broken_port, bool nctunnel) { nm.Node = new StructuredNode(addr as AHAddress, BrunetNamespace); TAAuthorizer auth = new IDTAAuthorizer(broken_port); nm.Node.AddEdgeListener(new SimulationEdgeListener(nm.ID, 0, auth, true)); IRelayOverlap ito = null; if(NCEnable) { nm.NCService = new NCService(nm.Node, new Point()); // Until we figure out what's going on with VivaldiTargetSelector its not quite useful for these purposes // (nm.Node as StructuredNode).Sco.TargetSelector = new VivaldiTargetSelector(nm.Node, ncservice); } if(nctunnel && NCEnable) { ito = new NCRelayOverlap(nm.NCService); } else { ito = new SimpleRelayOverlap(); } nm.Node.AddEdgeListener(new Relay.RelayEdgeListener(nm.Node, ito)); nm.Node.RemoteTAs = GetRemoteTAs(); nm.Node.Connect(); CurrentNetworkSize++; }
protected void AddBrokenNode(ref NodeMapping nm, Address addr, int broken_port, bool nctunnel) { nm.Node = new StructuredNode(addr as AHAddress, BrunetNamespace); TAAuthorizer auth = new IDTAAuthorizer(broken_port); nm.Node.AddEdgeListener(new SimulationEdgeListener(nm.ID, 0, auth, true)); ITunnelOverlap ito = null; if(NCEnable) { nm.NCService = new NCService(nm.Node, new Point()); // Until we figure out what's going on with VivaldiTargetSelector its not quite useful for these purposes // (nm.Node as StructuredNode).Sco.TargetSelector = new VivaldiTargetSelector(nm.Node, ncservice); } if(nctunnel && NCEnable) { ito = new NCTunnelOverlap(nm.NCService); } else { ito = new SimpleTunnelOverlap(); } nm.Node.AddEdgeListener(new Tunnel.TunnelEdgeListener(nm.Node, ito)); ArrayList RemoteTAs = new ArrayList(); for(int i = 0; i < 5 && i < TakenIDs.Count; i++) { int rport = (int) TakenIDs.GetByIndex(_rand.Next(0, TakenIDs.Count)); RemoteTAs.Add(TransportAddressFactory.CreateInstance("brunet.function://127.0.0.1:" + rport)); } nm.Node.RemoteTAs = RemoteTAs; nm.Node.Connect(); }