// // Copyright (C) 2000 Institut fuer Telematik, Universitaet Karlsruhe // Copyright (C) 2003 Andras Varga // // 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. // // // @titlepage // // <center><h1>INET Framework for OMNeT++/OMNEST</h1></center> // <center>release 2006-03-30</center> // // <nohtml>INET Framework contains IPv4, IPv6, TCP, UDP protocol implementations, // and several application models. The framework also includes an MPLS model // with \RSVP-TE and LDP signalling. Link-layer models are PPP and Ethernet. // Static routing can be set up using network autoconfigurators. // </nohtml> // // Mobility and wireless support (currently 802.11b ad-hoc mode) is provided // by a modified version of the lower layers of the // <a href="http://mobility-fw.sourceforge.net/" target="_top">Mobility Framework</a>. // Also, several mobility models have been added (TurtleMobility, // BonnMotionMobility, RandomWPMobility, etc). // // New to this release are the revised and mostly rewritten \MPLS, \RSVP-TE and \LDP // models (Vojta Janota); dynamic routing (OSPFv2 and RIP) provided by the // Quagga Linux/*nix routing daemon (ported into the INET Framework by Vojta Janota); // and a cleanroom \OSPFv2 model (by Andras Babos). // There are several other bugfixes and improvements as well; see the // <tt>WHATSNEW</tt> file in the distribution. // // <a href="history.html">History and contributors</a>. // // Introductory material: // - <a href="../walkthrough/tutorial.html" target="_top">Guided Tour</a> // - <a href="../tcp-tutorial/index.html" target="_top">Getting started with TCP</a> // // A few useful starting points for browsing the documentation: // - the <a href="full-usage-diagram.html">Usage Diagram</a> // includes all modules and networks // - example networks: NClients, BulkTransfer, MulticastNetwork, // ARPTest, MixedLAN, etc. // - hosts, routers, switches: StandardHost, Router, EtherSwitch, EtherHub, // etc. // - network interfaces: EthernetInterface, PPPInterface, Nic80211 // - \IP layer: IP, ARP and ICMP; RoutingTable // - \IPv6 support: IPv6, IPv6NeighbourDiscovery, ICMPv6, RoutingTable6; // see <a href="ipv6overview.html">\IPv6 model overview</a> // - transport layer: TCP, UDP // - InterfaceTable and NotificationBoard are there in every // host and router model // - queues in router network interfaces: DropTailQueue, REDQueue, // DropTailQoSQueue. // - FlatNetworkConfigurator automatically assigns \IP addresses and // sets up static routes; // - ScenarioManager lets you change things in the model in the middle // of the simulation to study transient behaviour // - message classes: IPDatagram, TCPSegment, UDPPacket, EthernetIIFrame, // ARPPacket, PPPFrame, GenericAppMsg, EtherAppReq, etc. // - control info classes (used in communication between protocol layers): // IPControlInfo, TCPCommand, UDPControlInfo, Ieee802Ctrl, etc. // - application models: UDPVideoStreamSvr, UDPVideoStreamCli, UDPApp, // TCPSessionApp, TCPBasicClientApp, TCPGenericSrvApp, TCPSinkApp, // TCPSrvHostApp, EtherAppCli, EtherAppSrv, PingApp, etc. // - wireless support: ChannelControl, Nic80211 // - mobility: MobileHost; mobility models such as TurtleMobility, // BonnMotionMobility, ANSimMobility, RandomWPMobility, MassMobility // - \MPLS models: the core modules are MPLS, LIBTable, LDP, RSVP, TED, // LinkStateRouting; \MPLS-enabled routers are LDP_LSR, RSVP_LSR; // see also the list of <a href="standards.html">implemented standards</a> // - dynamic routing is provided by the Daemon module (the Quagga routing // daemon ported into the INET Framework) used inside QuaggaRouter; // alternatively one can run OSPFRouter which relies on the OSPFRouting // module; // - support for recording <i>nam</i> traces is provided by NAMTrace and // NAMTraceWriter // // Related documentation: // - <a href="../doxy/index.html" target="_top">C++ source documentation (Doxygen)</a> // // @page history.html, History // // The predecessor of the INET framework was written by Klaus // Wehrle, Jochen Reber, Dirk Holzhausen, Volker Boehm, Verena Kahmann, // Ulrich Kaage and others at the University of Karlsruhe during 2000-2001, // under the name IPSuite. // // The \MPLS, \LDP and \RSVP-TE models were built as an add-on to IPSuite // during 2003 by Xuan Thang Nguyen (Xuan.T.Nguyen@uts.edu.au) and other // students at the University of Technology, Sydney under supervision of // Dr Robin Brown. The package consisted of around 10,000 LOCs, and was // published at http://charlie.it.uts.edu.au/~tkaphan/xtn/capstone (now // unavailable). // // After a period of IPSuite being unmaintained, Andras Varga took over // the development in July 2003. Through a series of snapshot releases in // 2003-2004, modules got completely reorganized, documented, and many of them // rewritten from scratch. The \MPLS models (including \RSVP-TE, \LDP, etc) // also got refactored and merged into the codebase. The complete change log // is available // <a href="http://ctieware.eng.monash.edu.au/twiki/bin/view/Simulation/IPSuiteLogOfChanges" target="_top">here</a>. // // During 2004, Andras added a new, modular and extensible \TCP implementation, // application models, Ethernet implementation and an all-in-one \IP model // to replace the earlier, modularized one. // // The package was renamed INET Framework in October 2004. // // Support for wireless and mobile networks got added during summer 2005 // by using code from the Mobility Framework. // // The \MPLS models (including \LDP and \RSVP-TE) got revised and mostly // rewritten from scratch by Vojta Janota in the first half of 2005 // for his diploma thesis. After further refinements by Vojta, the new code // got merged into the INET CVS in fall 2005, and got eventually released // in the March 2006 INET snapshot. // // The OSPFv2 model was created by Andras Babos during 2004 for his diploma // thesis which was submitted early 2005. After several refinements and fixes, // the code got merged into the INET Framework in 2005, and became part of the // March 2006 INET snapshot. // // The Quagga routing daemon was ported into the INET Framework also by Vojta // Janota. During fall 2005 and the months after, ripd and ospfd got ported, // and the methodology of porting got refined. It is planned to port further // Quagga daemons after March 2006. // // Based on experience from the IPv6Suite (from Ahmet Sekercioglu's group at // CTIE, Monash University, Melbourne) and IPv6SuiteWithINET (Andras's effort // to refactor IPv6Suite and merge it with INET early 2005), Wei Yang Ng // (Monash Uni) implemented a new \IPv6 model from scratch for the // INET Framework in 2005 for his diploma thesis, under guidance from Andras // who was visiting Monash between February and June 2005. This \IPv6 model // got first included in the July 2005 INET snapshot, and gradually refined // afterwards. // // Several other people have contributed to the INET Framework by providing // feedback, reporting bugs, suggesting features and contributing patches; // I'd like to acknowledge their help here as well. //