// // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // // // The main module of the P2PNS implementation // // @author Ingmar Baumgart // simple P2pns parameters: debugOutput : bool, // enable debug output twoStageResolution: bool; // enable two stage name resolution (KBR/DHT) gates: in: from_lowerTier; // gate from the lower tier in: from_upperTier; // gate from the upper tier in: direct_in; // gate for sendDirect in: trace_in; // gate for trace file commands out: to_lowerTier; // gate to the lower tier out: to_upperTier; // gate to the upper tier endsimple // // The name cache module of the P2PNS implementation // // @author Ingmar Baumgart // simple P2pnsCache endsimple // // Implementation of "P2PNS: A distributed name service for P2PSIP" // // @author Ingmar Baumgart // module P2pnsModules gates: in: from_udp; // gate from the UDP layer in: from_lowerTier; // gate from the lower tier in: from_upperTier; // gate from the upper tier out: to_udp; // gate to the UDP layer out: to_lowerTier; // gate to the lower tier out: to_upperTier; // gate to the upper tier submodules: p2pns: P2pns; display: "i=block/app"; p2pnsCache: P2pnsCache; display: "i=block/table"; connections nocheck: from_lowerTier --> p2pns.from_lowerTier; to_lowerTier <-- p2pns.to_lowerTier; from_upperTier --> p2pns.from_upperTier; to_upperTier <-- p2pns.to_upperTier; endmodule