Browse Source

Inet framework

Anay 6 years ago
parent
commit
2c547e60f4
100 changed files with 5205 additions and 0 deletions
  1. 382 0
      inet/.cproject
  2. 12 0
      inet/.gdbinit.py
  3. 4 0
      inet/.gitattributes
  4. 72 0
      inet/.gitignore
  5. 6 0
      inet/.gitmodules
  6. 4 0
      inet/.nedfolders
  7. 5 0
      inet/.oppbuildspec
  8. 1173 0
      inet/.oppfeatures
  9. 97 0
      inet/.project
  10. 61 0
      inet/CREDITS
  11. 108 0
      inet/INSTALL
  12. 4 0
      inet/License
  13. 57 0
      inet/Makefile
  14. 51 0
      inet/README.md
  15. 1 0
      inet/Version
  16. 2626 0
      inet/WHATSNEW
  17. 7 0
      inet/doc/index.html
  18. 366 0
      inet/doc/misc/directory-tree-history.txt
  19. 93 0
      inet/doc/misc/logging-guidelines.txt
  20. 58 0
      inet/doc/opp.css
  21. BIN
      inet/doc/walkthrough/images/animspeed.gif
  22. BIN
      inet/doc/walkthrough/images/arp-contents.gif
  23. BIN
      inet/doc/walkthrough/images/arp-ctx-asobj.gif
  24. BIN
      inet/doc/walkthrough/images/arp-ctxmenu.gif
  25. BIN
      inet/doc/walkthrough/images/arp-dispstr.gif
  26. BIN
      inet/doc/walkthrough/images/arp-icon.gif
  27. BIN
      inet/doc/walkthrough/images/arp-log.gif
  28. BIN
      inet/doc/walkthrough/images/arp-outputport.gif
  29. BIN
      inet/doc/walkthrough/images/arp-params.gif
  30. BIN
      inet/doc/walkthrough/images/arp-queue.gif
  31. BIN
      inet/doc/walkthrough/images/arp-reply-sent.gif
  32. BIN
      inet/doc/walkthrough/images/arp-req-sent.gif
  33. BIN
      inet/doc/walkthrough/images/arp-resolved.gif
  34. BIN
      inet/doc/walkthrough/images/arpcache1.gif
  35. BIN
      inet/doc/walkthrough/images/arpcache2.gif
  36. BIN
      inet/doc/walkthrough/images/arpcache3.gif
  37. BIN
      inet/doc/walkthrough/images/arpreply-fields.gif
  38. BIN
      inet/doc/walkthrough/images/arpreq-ctrlinfo.gif
  39. BIN
      inet/doc/walkthrough/images/arpreq-fields.gif
  40. BIN
      inet/doc/walkthrough/images/arptest-1s.gif
  41. BIN
      inet/doc/walkthrough/images/arptest-startrx.gif
  42. BIN
      inet/doc/walkthrough/images/arptest.gif
  43. BIN
      inet/doc/walkthrough/images/autoconfmsg.gif
  44. BIN
      inet/doc/walkthrough/images/cli-activeopen.gif
  45. BIN
      inet/doc/walkthrough/images/cli-encapsyn.gif
  46. BIN
      inet/doc/walkthrough/images/cli-sendsyn.gif
  47. BIN
      inet/doc/walkthrough/images/client.gif
  48. BIN
      inet/doc/walkthrough/images/dlg-nomoreevents.gif
  49. BIN
      inet/doc/walkthrough/images/dlg-rununtil.gif
  50. BIN
      inet/doc/walkthrough/images/dlg-simoptions1.gif
  51. BIN
      inet/doc/walkthrough/images/dlg-stopexpress.gif
  52. BIN
      inet/doc/walkthrough/images/doc-arp.gif
  53. BIN
      inet/doc/walkthrough/images/doc-frontpage.gif
  54. BIN
      inet/doc/walkthrough/images/doxy-arpclass.gif
  55. BIN
      inet/doc/walkthrough/images/doxy-handlemsg.gif
  56. BIN
      inet/doc/walkthrough/images/doxy-processarp.gif
  57. BIN
      inet/doc/walkthrough/images/doxy-processinbound.gif
  58. BIN
      inet/doc/walkthrough/images/doxy-processoutbound.gif
  59. BIN
      inet/doc/walkthrough/images/doxy-processoutbound1.gif
  60. BIN
      inet/doc/walkthrough/images/doxy-processoutbound2.gif
  61. BIN
      inet/doc/walkthrough/images/doxy-sendarpreq.gif
  62. BIN
      inet/doc/walkthrough/images/doxy-sendtomac.gif
  63. BIN
      inet/doc/walkthrough/images/doxy-updatedispstr.gif
  64. BIN
      inet/doc/walkthrough/images/endtx-event.gif
  65. BIN
      inet/doc/walkthrough/images/ethinterface.gif
  66. BIN
      inet/doc/walkthrough/images/ipdgram.gif
  67. BIN
      inet/doc/walkthrough/images/linkcolors.gif
  68. BIN
      inet/doc/walkthrough/images/m-restart.gif
  69. BIN
      inet/doc/walkthrough/images/mac-tx.gif
  70. BIN
      inet/doc/walkthrough/images/mousepointer.gif
  71. BIN
      inet/doc/walkthrough/images/router.gif
  72. BIN
      inet/doc/walkthrough/images/router1-rx.gif
  73. BIN
      inet/doc/walkthrough/images/router1eth1-rx.gif
  74. BIN
      inet/doc/walkthrough/images/rundemo-doc.gif
  75. BIN
      inet/doc/walkthrough/images/rundemo2.gif
  76. BIN
      inet/doc/walkthrough/images/server.gif
  77. BIN
      inet/doc/walkthrough/images/speedbar.gif
  78. BIN
      inet/doc/walkthrough/images/statusbar-startrx.gif
  79. BIN
      inet/doc/walkthrough/images/syn-ctrlinfo.gif
  80. BIN
      inet/doc/walkthrough/images/tb-inspectnet.gif
  81. BIN
      inet/doc/walkthrough/images/tb-run.gif
  82. BIN
      inet/doc/walkthrough/images/tb-rununtil.gif
  83. BIN
      inet/doc/walkthrough/images/tcpmain.gif
  84. BIN
      inet/doc/walkthrough/images/timeout-event.gif
  85. BIN
      inet/doc/walkthrough/images/wait-ifg.gif
  86. 4 0
      inet/doc/walkthrough/makethumbs.cmd
  87. 13 0
      inet/doc/walkthrough/opp.css
  88. 1 0
      inet/doc/walkthrough/thumbs/.keepme
  89. BIN
      inet/doc/walkthrough/thumbs/animspeed.gif
  90. BIN
      inet/doc/walkthrough/thumbs/arp-contents.gif
  91. BIN
      inet/doc/walkthrough/thumbs/arp-ctx-asobj.gif
  92. BIN
      inet/doc/walkthrough/thumbs/arp-ctxmenu.gif
  93. BIN
      inet/doc/walkthrough/thumbs/arp-dispstr.gif
  94. BIN
      inet/doc/walkthrough/thumbs/arp-icon.gif
  95. BIN
      inet/doc/walkthrough/thumbs/arp-log.gif
  96. BIN
      inet/doc/walkthrough/thumbs/arp-outputport.gif
  97. BIN
      inet/doc/walkthrough/thumbs/arp-params.gif
  98. BIN
      inet/doc/walkthrough/thumbs/arp-queue.gif
  99. BIN
      inet/doc/walkthrough/thumbs/arp-reply-sent.gif
  100. BIN
      inet/doc/walkthrough/thumbs/arp-req-sent.gif

+ 382 - 0
inet/.cproject

@@ -0,0 +1,382 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+	<storageModule moduleId="org.eclipse.cdt.core.settings">
+		<cconfiguration id="org.omnetpp.cdt.gnu.config.debug.229043752">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.omnetpp.cdt.gnu.config.debug.229043752" moduleId="org.eclipse.cdt.core.settings" name="gcc-debug">
+				<externalSettings/>
+				<extensions>
+					<extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactName="${ProjName}" buildProperties="" description="" id="org.omnetpp.cdt.gnu.config.debug.229043752" name="gcc-debug" parent="org.omnetpp.cdt.gnu.config.debug">
+					<folderInfo id="org.omnetpp.cdt.gnu.config.debug.229043752." name="/" resourcePath="">
+						<toolChain id="org.omnetpp.cdt.gnu.toolchain.debug.268477749" name="GCC for OMNeT++" superClass="org.omnetpp.cdt.gnu.toolchain.debug">
+							<targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.MachO64;org.eclipse.cdt.core.PE" id="org.omnetpp.cdt.targetPlatform.946608572" isAbstract="false" name="Windows, Linux, Mac" osList="win32,linux,macosx" superClass="org.omnetpp.cdt.targetPlatform"/>
+							<builder id="org.omnetpp.cdt.gnu.builder.debug.859740860" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="OMNeT++ Make Builder (opp_makemake)" parallelBuildOn="true" parallelizationNumber="optimal" superClass="org.omnetpp.cdt.gnu.builder.debug">
+								<outputEntries>
+									<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name=""/>
+								</outputEntries>
+							</builder>
+							<tool id="cdt.managedbuild.tool.gnu.archiver.base.1843986175" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+							<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1544720771" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
+								<option id="gnu.cpp.compiler.option.preprocessor.def.33891026" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false"/>
+								<option id="gnu.cpp.compiler.option.include.paths.1304941279" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
+									<listOptionValue builtIn="false" value="../../src"/>
+								</option>
+								<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1163034331" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+							</tool>
+							<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.892294620" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
+								<option id="gnu.c.compiler.option.preprocessor.def.symbols.193803687" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false"/>
+								<option id="gnu.c.compiler.option.include.paths.552444216" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
+									<listOptionValue builtIn="false" value="../../src"/>
+								</option>
+								<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1458844290" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+							</tool>
+							<tool id="cdt.managedbuild.tool.gnu.c.linker.base.1169210834" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
+							<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1065738287" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
+								<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1326537913" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+									<additionalInput kind="additionalinput" paths="$(LIBS)"/>
+								</inputType>
+							</tool>
+							<tool id="cdt.managedbuild.tool.gnu.assembler.base.420284418" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
+								<option id="gnu.both.asm.option.include.paths.1342559985" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
+									<listOptionValue builtIn="false" value="../../src"/>
+								</option>
+								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.732390572" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+							</tool>
+						</toolChain>
+					</folderInfo>
+					<folderInfo id="org.omnetpp.cdt.gnu.config.debug.229043752.1347345336" name="/" resourcePath="src">
+						<toolChain id="org.omnetpp.cdt.gnu.toolchain.debug.36814089" name="GCC for OMNeT++" superClass="org.omnetpp.cdt.gnu.toolchain.debug" unusedChildren="">
+							<tool id="cdt.managedbuild.tool.gnu.archiver.base.729949669" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base.1843986175"/>
+							<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.961645002" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base.1544720771">
+								<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.334409714" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+							</tool>
+							<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.916622217" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base.892294620">
+								<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.148440838" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+							</tool>
+							<tool id="cdt.managedbuild.tool.gnu.c.linker.base.1972393228" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base.1169210834"/>
+							<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.808920061" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base.1065738287"/>
+							<tool id="cdt.managedbuild.tool.gnu.assembler.base.196156137" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base.420284418">
+								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1346765365" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+							</tool>
+						</toolChain>
+					</folderInfo>
+					<sourceEntries>
+						<entry excluding="inet/transportlayer/tcp_lwip|inet/applications/voipstream|inet/linklayer/ext|inet/transportlayer/tcp_nsc|inet/routing/extras|transport/tcp_nsc|transport/tcp_lwip" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+					</sourceEntries>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+		</cconfiguration>
+		<cconfiguration id="org.omnetpp.cdt.gnu.config.release.1746235823">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.omnetpp.cdt.gnu.config.release.1746235823" moduleId="org.eclipse.cdt.core.settings" name="gcc-release">
+				<externalSettings/>
+				<extensions>
+					<extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactName="${ProjName}" buildProperties="" description="" id="org.omnetpp.cdt.gnu.config.release.1746235823" name="gcc-release" parent="org.omnetpp.cdt.gnu.config.release">
+					<folderInfo id="org.omnetpp.cdt.gnu.config.release.1746235823." name="/" resourcePath="">
+						<toolChain id="org.omnetpp.cdt.gnu.toolchain.release.1498166216" name="GCC for OMNeT++" superClass="org.omnetpp.cdt.gnu.toolchain.release">
+							<targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.MachO64;org.eclipse.cdt.core.PE" id="org.omnetpp.cdt.targetPlatform.1049800537" isAbstract="false" name="Windows, Linux, Mac" osList="win32,linux,macosx" superClass="org.omnetpp.cdt.targetPlatform"/>
+							<builder autoBuildTarget="all" buildPath="${ProjDirPath}" cleanBuildTarget="clean" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="org.omnetpp.cdt.gnu.builder.release.1176677325" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="OMNeT++ Make Builder (opp_makemake)" parallelBuildOn="true" parallelizationNumber="optimal" superClass="org.omnetpp.cdt.gnu.builder.release"/>
+							<tool id="cdt.managedbuild.tool.gnu.archiver.base.1643927787" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+							<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1039888888" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
+								<option id="gnu.cpp.compiler.option.preprocessor.def.655304152" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false"/>
+								<option id="gnu.cpp.compiler.option.include.paths.1086707691" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
+									<listOptionValue builtIn="false" value="../../src"/>
+								</option>
+								<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.958073850" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+							</tool>
+							<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.419916163" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
+								<option id="gnu.c.compiler.option.preprocessor.def.symbols.1241715501" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false"/>
+								<option id="gnu.c.compiler.option.include.paths.951413942" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
+									<listOptionValue builtIn="false" value="../../src"/>
+								</option>
+								<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.406690453" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+							</tool>
+							<tool id="cdt.managedbuild.tool.gnu.c.linker.base.1190158571" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
+							<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.893445214" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
+								<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.422104919" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+									<additionalInput kind="additionalinput" paths="$(LIBS)"/>
+								</inputType>
+							</tool>
+							<tool id="cdt.managedbuild.tool.gnu.assembler.base.960891752" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
+								<option id="gnu.both.asm.option.include.paths.963947628" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
+									<listOptionValue builtIn="false" value="../../src"/>
+								</option>
+								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1865888372" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+							</tool>
+						</toolChain>
+					</folderInfo>
+					<folderInfo id="org.omnetpp.cdt.gnu.config.release.1746235823.358727219" name="/" resourcePath="src">
+						<toolChain id="org.omnetpp.cdt.gnu.toolchain.release.1376750503" name="GCC for OMNeT++" superClass="org.omnetpp.cdt.gnu.toolchain.release" unusedChildren="">
+							<tool id="cdt.managedbuild.tool.gnu.archiver.base.2096795119" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base.1643927787"/>
+							<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.677746910" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base.1039888888">
+								<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1542705715" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+							</tool>
+							<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1628044116" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base.419916163">
+								<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.536815888" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+							</tool>
+							<tool id="cdt.managedbuild.tool.gnu.c.linker.base.893893132" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base.1190158571"/>
+							<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.2055473486" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base.893445214"/>
+							<tool id="cdt.managedbuild.tool.gnu.assembler.base.1679759690" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base.960891752">
+								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.732189096" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+							</tool>
+						</toolChain>
+					</folderInfo>
+					<sourceEntries>
+						<entry excluding="inet/transportlayer/tcp_lwip|inet/applications/voipstream|inet/linklayer/ext|inet/transportlayer/tcp_nsc|inet/routing/extras|transport/tcp_nsc|transport/tcp_lwip" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="src"/>
+					</sourceEntries>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+		</cconfiguration>
+	</storageModule>
+	<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+		<project id="inet.org.omnetpp.cdt.omnetppProjectType.1299021111" name="OMNeT++ Simulation" projectType="org.omnetpp.cdt.omnetppProjectType"/>
+	</storageModule>
+	<storageModule moduleId="scannerConfiguration">
+		<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
+		<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+			<buildOutputProvider>
+				<openAction enabled="true" filePath=""/>
+				<parser enabled="true"/>
+			</buildOutputProvider>
+			<scannerInfoProvider id="makefileGenerator">
+				<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+				<parser enabled="true"/>
+			</scannerInfoProvider>
+		</profile>
+		<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+			<buildOutputProvider>
+				<openAction enabled="true" filePath=""/>
+				<parser enabled="true"/>
+			</buildOutputProvider>
+			<scannerInfoProvider id="specsFile">
+				<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+				<parser enabled="true"/>
+			</scannerInfoProvider>
+		</profile>
+		<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+			<buildOutputProvider>
+				<openAction enabled="true" filePath=""/>
+				<parser enabled="true"/>
+			</buildOutputProvider>
+			<scannerInfoProvider id="specsFile">
+				<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+				<parser enabled="true"/>
+			</scannerInfoProvider>
+		</profile>
+		<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+			<buildOutputProvider>
+				<openAction enabled="true" filePath=""/>
+				<parser enabled="true"/>
+			</buildOutputProvider>
+			<scannerInfoProvider id="specsFile">
+				<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+				<parser enabled="true"/>
+			</scannerInfoProvider>
+		</profile>
+		<profile id="org.omnetpp.cdt.OmnetppGCCPerProjectProfile">
+			<buildOutputProvider>
+				<openAction enabled="false" filePath=""/>
+				<parser enabled="false"/>
+			</buildOutputProvider>
+		</profile>
+		<scannerConfigBuildInfo instanceId="org.omnetpp.cdt.gnu.config.release.960890479">
+			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.omnetpp.cdt.OmnetppGCCPerProjectProfile"/>
+		</scannerConfigBuildInfo>
+		<scannerConfigBuildInfo instanceId="org.omnetpp.cdt.msvc.config.debug.646282618">
+			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.omnetpp.cdt.msvc.MSVCScannerInfo"/>
+			<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="makefileGenerator">
+					<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="specsFile">
+					<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="specsFile">
+					<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="specsFile">
+					<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.omnetpp.cdt.OmnetppGCCPerProjectProfile">
+				<buildOutputProvider>
+					<openAction enabled="false" filePath=""/>
+					<parser enabled="false"/>
+				</buildOutputProvider>
+			</profile>
+		</scannerConfigBuildInfo>
+		<scannerConfigBuildInfo instanceId="org.omnetpp.cdt.gnu.config.debug.1696110582">
+			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.omnetpp.cdt.OmnetppGCCPerProjectProfile"/>
+		</scannerConfigBuildInfo>
+		<scannerConfigBuildInfo instanceId="org.omnetpp.cdt.gnu.config.debug.229043752">
+			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.omnetpp.cdt.OmnetppGCCPerProjectProfile"/>
+		</scannerConfigBuildInfo>
+		<scannerConfigBuildInfo instanceId="org.omnetpp.cdt.gnu.config.release.1673461738">
+			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.omnetpp.cdt.OmnetppGCCPerProjectProfile"/>
+			<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="makefileGenerator">
+					<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="specsFile">
+					<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="specsFile">
+					<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="specsFile">
+					<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.omnetpp.cdt.OmnetppGCCPerProjectProfile">
+				<buildOutputProvider>
+					<openAction enabled="false" filePath=""/>
+					<parser enabled="false"/>
+				</buildOutputProvider>
+			</profile>
+		</scannerConfigBuildInfo>
+		<scannerConfigBuildInfo instanceId="org.omnetpp.cdt.gnu.config.debug.1590007136">
+			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.omnetpp.cdt.OmnetppGCCPerProjectProfile"/>
+		</scannerConfigBuildInfo>
+		<scannerConfigBuildInfo instanceId="org.omnetpp.cdt.gnu.config.debug.200906710">
+			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.omnetpp.cdt.OmnetppGCCPerProjectProfile"/>
+			<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="makefileGenerator">
+					<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="specsFile">
+					<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="specsFile">
+					<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+				<buildOutputProvider>
+					<openAction enabled="true" filePath=""/>
+					<parser enabled="true"/>
+				</buildOutputProvider>
+				<scannerInfoProvider id="specsFile">
+					<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+					<parser enabled="true"/>
+				</scannerInfoProvider>
+			</profile>
+			<profile id="org.omnetpp.cdt.OmnetppGCCPerProjectProfile">
+				<buildOutputProvider>
+					<openAction enabled="false" filePath=""/>
+					<parser enabled="false"/>
+				</buildOutputProvider>
+			</profile>
+		</scannerConfigBuildInfo>
+		<scannerConfigBuildInfo instanceId="org.omnetpp.cdt.gnu.config.release.63841363">
+			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.omnetpp.cdt.OmnetppGCCPerProjectProfile"/>
+		</scannerConfigBuildInfo>
+		<scannerConfigBuildInfo instanceId="org.omnetpp.cdt.gnu.config.release.1746235823">
+			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.omnetpp.cdt.OmnetppGCCPerProjectProfile"/>
+		</scannerConfigBuildInfo>
+	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+	<storageModule moduleId="refreshScope" versionNumber="2">
+		<configuration configurationName="gcc-release">
+			<resource resourceType="PROJECT" workspacePath="/inet"/>
+		</configuration>
+		<configuration configurationName="gcc-debug">
+			<resource resourceType="PROJECT" workspacePath="/inet"/>
+		</configuration>
+	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
+</cproject>

+ 12 - 0
inet/.gdbinit.py

@@ -0,0 +1,12 @@
+import sys
+import os
+
+# add the pretty printer classes to the system class path
+sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))+"/misc/gdb")
+
+if 'register_inet_printers' in dir():
+    print('inet pretty printers already initialized.')
+else:
+    from inet.printers import register_inet_printers
+    register_inet_printers(None)
+    print('Pretty printers initialized: inet')

+ 4 - 0
inet/.gitattributes

@@ -0,0 +1,4 @@
+.cproject merge=ours
+.nedfolders merge=ours
+.oppbuildspec merge=ours
+.project merge=ours

+ 72 - 0
inet/.gitignore

@@ -0,0 +1,72 @@
+# local and generated files not to be committed
+src/Makefile
+src/Makefile.vc
+*_m.h
+*_m.cc
+*_sm.h
+*_sm.cc
+.oppfeaturestate
+.nedexclusions
+src/inet/features.h
+src/inet/opp_defines.h
+precompiled_*.h.*
+/3rdparty
+**/MoBAN_Pattern*.txt
+
+# output and result files
+.settings/
+/doc/doxy/
+/doc/neddoc/
+/doc/src/manual/figures/*.pdf
+/doc/src/manual/inet-manual.pdf
+/doc/inet-manual-draft.pdf
+/examples/*/results/
+/examples/*/*/results/
+/examples/*/*/*/results/
+/examples/*/cache/
+/examples/*/*/cache/
+/tutorials/*/cache/
+/tutorials/*/data/
+/tutorials/wireless/html/
+/tests/*/work/
+/tests/*/*/work/
+/tests/*/results*/
+*.log
+*.sim
+*.pyc
+*.pcap
+*.sca
+*.vec
+*.vci
+.buildlog*
+
+# ignore binary files
+out/
+*.so
+*.dylib
+*.dll
+*.a
+*.lib
+*.exe
+*.o
+*.obj
+*.pdb
+*.idb
+*.manifest
+.qtenv.ini
+.qtenvrc
+.tkenvrc
+.tkenvlog
+.cmdenv-log
+netanim-trace.txt
+*.out
+
+# ignore backup and temp files
+*.UPDATED
+*.FAILED
+*.ERROR
+*.bak
+backups
+*~
+xxx
+/tmp/

+ 6 - 0
inet/.gitmodules

@@ -0,0 +1,6 @@
+[submodule "tutorials"]
+	path = tutorials
+	url = https://github.com/inet-framework/inet-tutorials.git
+[submodule "showcases"]
+	path = showcases
+	url = https://github.com/inet-framework/inet-showcases.git

+ 4 - 0
inet/.nedfolders

@@ -0,0 +1,4 @@
+src
+examples
+tutorials
+showcases

+ 5 - 0
inet/.oppbuildspec

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<buildspec version="4.0">
+    <dir path="." type="custom"/>
+    <dir makemake-options="--make-so --deep -o INET -O out -pINET --meta:export-include-path --meta:export-library --meta:use-exported-libs --meta:feature-cflags --meta:feature-ldflags" path="src" type="makemake"/>
+</buildspec>

+ 1173 - 0
inet/.oppfeatures

@@ -0,0 +1,1173 @@
+<features cppSourceRoots="src" definesFile="src/inet/features.h">
+    <feature
+        id="TCP_common"
+        name="TCP Common"
+        description = "The common part of TCP implementations"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.transportlayer.tcp_common
+                       inet.applications.tcpapp
+                       inet.common.serializer.tcp
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_TCP_COMMON"
+        linkerFlags = ""
+        />
+    <feature
+        id="TCP_INET"
+        name="TCP (INET)"
+        description = "TCP implementation (original INET implementation)"
+        initiallyEnabled = "true"
+        requires = "TCP_common"
+        labels = ""
+        nedPackages = "
+                       inet.transportlayer.tcp
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_TCP_INET"
+        linkerFlags = ""
+        />
+    <feature
+        id="TCP_lwIP"
+        name="TCP (lwIP)"
+        description = "TCP implementation based on lwIP (http://www.sics.se/~adam/lwip)"
+        initiallyEnabled = "false"
+        requires = "TCP_common"
+        labels = ""
+        nedPackages = "
+                       inet.transportlayer.tcp_lwip
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_TCP_LWIP"
+        linkerFlags = ""
+        />
+    <feature
+        id="TCP_NSC"
+        name="TCP (NSC)"
+        description = "TCP module based on Sam Jensen's Network Simulation Cradle
+                       (NSC, http://www.wand.net.nz/~stj2/nsc) that wraps real
+                       OS stacks: Linux, FreeBSD, OpenBSD and lwIP.
+                       NSC must be downloaded and installed separately; read
+                       inet/3rdparty/README for more information."
+        initiallyEnabled = "false"
+        requires = "TCP_common"
+        labels = ""
+        nedPackages = "
+                       inet.transportlayer.tcp_nsc
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_TCP_NSC"
+        linkerFlags = ""
+        />
+    <feature
+        id="IPv4"
+        name="IPv4 protocol"
+        description = "Basic IPv4 support"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.networklayer.ipv4
+                       inet.networklayer.configurator.ipv4
+                       inet.networklayer.arp.ipv4
+                       inet.common.serializer.ipv4
+                       inet.common.serializer.headerserializers.arp
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_IPv4"
+        linkerFlags = ""
+        />
+    <feature
+        id="INET_examples"
+        name="INET examples"
+        description = "Examples for basic internet protocols (IPv4, TCP, UDP)"
+        initiallyEnabled = "true"
+        requires = "IPv4 TCP_INET UDP Ethernet PPP Ieee80211"
+        labels = "protocols examples"
+        nedPackages = "
+                       inet.examples.inet
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="IPv6"
+        name="IPv6 protocol"
+        description = "Basic IPv6 support"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.networklayer.ipv6
+                       inet.networklayer.configurator.ipv6
+                       inet.networklayer.icmpv6
+                       inet.networklayer.ipv6tunneling
+                       inet.node.ipv6
+                       inet.common.serializer.ipv6
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_IPv6"
+        linkerFlags = ""
+        />
+    <feature
+        id="IPv6_examples"
+        name="IPv6 examples"
+        description = "Examples for Basic IPv6 support (IPv6)"
+        initiallyEnabled = "true"
+        requires = "IPv6 TCP_INET UDP Ethernet PPP"
+        labels = "protocols examples"
+        nedPackages = "
+                       inet.examples.ipv6
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="xMIPv6"
+        name="Mobile IPv6 protocol (xMIPv6)"
+        description = "Mobile IPv6 support with Tunneling"
+        initiallyEnabled = "true"
+        requires = "IPv6"
+        labels = "protocols"
+        nedPackages = "
+                       inet.networklayer.xmipv6
+                       inet.node.xmipv6
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_xMIPv6"
+        linkerFlags = ""
+        />
+    <feature
+        id="xMIPv6_examples"
+        name="xMIPv6 examples"
+        description = "Examples for Mobile IPv6 support (xMIPv6)"
+        initiallyEnabled = "true"
+        requires = "xMIPv6 TCP_INET UDP Ethernet PPP Ieee80211 mobility"
+        labels = "protocols examples"
+        nedPackages = "
+                       inet.examples.mobileipv6
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="Generic"
+        name="Generic network layer protocol"
+        description = "Basic Generic network layer support"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.networklayer.generic
+                       inet.networklayer.configurator.generic
+                       inet.networklayer.arp.generic
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_GENERIC"
+        linkerFlags = ""
+        />
+    <feature
+        id="MultiNet"
+        name="Multi network layer"
+        description = "Multi network layer support, e.g. IPv4/IPv6 dual stack"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.networklayer.multi
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="WiseRoute"
+        name="WiseRoute"
+        description = "Wiseroute is a simple loop-free routing algorithm that builds a routing tree from a central network point, designed for sensor networks and convergecast traffic."
+        initiallyEnabled = "true"
+        requires = "Generic"
+        labels = ""
+        nedPackages = "
+                       inet.networklayer.wiseroute
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="Flood"
+        name="Flood"
+        description = "Provides network layer support for deterministic and probabilistic flooding"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.networklayer.flood
+                       inet.networklayer.probabilistic
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_FLOOD"
+        linkerFlags = ""
+        />
+    <feature
+        id="UDP"
+        name="UDP protocol"
+        description = "UDP protocol"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.transportlayer.udp
+                       inet.applications.udpapp
+                       inet.common.serializer.udp
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_UDP"
+        linkerFlags = ""
+        />
+    <feature
+        id="RTP"
+        name="RTP"
+        description = "Real Time Protocol support"
+        initiallyEnabled = "true"
+        requires = "UDP IPv4"
+        labels = ""
+        nedPackages = "
+                       inet.applications.rtpapp
+                       inet.transportlayer.rtp
+                       inet.node.rtp
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_RTP"
+        linkerFlags = ""
+        />
+    <feature
+        id="RTP_examples"
+        name="RTP examples"
+        description = "Examples for Real Time Protocol support (RTP)"
+        initiallyEnabled = "true"
+        requires = "RTP"
+        labels = "protocols examples"
+        nedPackages = "
+                       inet.examples.rtp
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="SCTP"
+        name="SCTP"
+        description = "SCTP Protocol support"
+        initiallyEnabled = "true"
+        requires = "IPv4 IPv6"
+        labels = ""
+        nedPackages = "
+                       inet.applications.sctpapp
+                       inet.applications.sctpapp
+                       inet.transportlayer.sctp
+                       inet.common.serializer.sctp
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_SCTP"
+        linkerFlags = ""
+        />
+    <feature
+        id="SCTP_examples"
+        name="SCTP examples"
+        description = "Examples for SCTP"
+        initiallyEnabled = "true"
+        requires = "SCTP IPv4"
+        labels = "protocols examples"
+        nedPackages = "
+                       inet.examples.sctp
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="DHCP"
+        name="DHCP"
+        description = "DHCP protocol that can be installed as an UDP application"
+        initiallyEnabled = "true"
+        requires = "UDP IPv4"
+        labels = "protocols dhcp"
+        nedPackages = "
+                       inet.applications.dhcp
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_DHCP"
+        linkerFlags = ""
+        />
+    <feature
+        id="DHCP_examples"
+        name="DHCP examples (Ethernet)"
+        description = "examples for DHCP protocol"
+        initiallyEnabled = "true"
+        requires = "DHCP Ethernet mobility radio Ieee80211"
+        labels = "protocols dhcp"
+        nedPackages = "
+                       inet.examples.dhcp
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="Ethernet"
+        name="Ethernet"
+        description = "IEEE 802.3 models (MAC, LLC, Encap) with support for classic
+                       Ethernet (10Mbps), Fast Ethernet (100Mbps) and Gigabit Ethernet (1Gbps).
+                       Includes a switch model with various relay unit implementations,
+                       and also Ethernet-level traffic generators."
+        initiallyEnabled = "true"
+        requires = ""
+        labels = "protocols"
+        nedPackages = "
+                       inet.applications.ethernet
+                       inet.linklayer.ethernet
+                       inet.node.ethernet
+                       inet.common.serializer.headerserializers.ethernet
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_ETHERNET"
+        linkerFlags = ""
+        />
+    <feature
+        id="Ethernet_examples"
+        name="Ethernet examples"
+        description = "Examples for Ethernet"
+        requires = "Ethernet IPv4 TCP_INET"
+        labels = "protocols"
+        nedPackages = "
+                       inet.examples.ethernet
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="PPP"
+        name="PPP"
+        description = "PPP protocol"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = "protocols"
+        nedPackages = "
+                       inet.linklayer.ppp
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_PPP"
+        linkerFlags = ""
+        />
+    <feature
+        id="ExternalInterface"
+        name="Network emulation support"
+        description = "Support for connecting the simulation to a real network.
+                       The ExternalInterface module is responsible for sending/receiving
+                       packets on the network. This feature requires at least version 1.5.3
+                       of the libpcap-dev package."
+        initiallyEnabled = "false"
+        requires = "IPv4"
+        labels = "nic"
+        nedPackages = "
+                       inet.linklayer.ext
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_EXT_IF"
+        linkerFlags = "-lpcap"
+        />
+    <feature
+        id="ExternalInterface_examples"
+        name="Network emulation examples"
+        description = "Examples for network emulation"
+        initiallyEnabled = "false"
+        requires = "ExternalInterface Ethernet"
+        labels = "nic"
+        nedPackages = "
+                       inet.examples.emulation
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="MPLS"
+        name="MPLS support (incl. LDP and RSVP-TE)"
+        description = "MPLS support"
+        requires = "TCP_INET UDP IPv4"
+        labels = "routing"
+        nedPackages = "
+                       inet.networklayer.mpls inet.node.mpls
+                       inet.networklayer.ldp
+                       inet.networklayer.rsvp_te
+                       inet.networklayer.ted
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_MPLS"
+        linkerFlags = ""
+        />
+    <feature
+        id="MPLS_examples"
+        name="MPLS examples"
+        description = "Examples for MPLS support"
+        initiallyEnabled = "true"
+        requires = "MPLS Ethernet PPP"
+        labels = "routing examples"
+        nedPackages = "
+                       inet.examples.mpls
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="OSPFv2"
+        name="OSPFv2"
+        description = "OSPFv2 support"
+        initiallyEnabled = "true"
+        requires = "IPv4"
+        labels = "routing"
+        nedPackages = "
+                       inet.routing.ospfv2
+                       inet.node.ospfv2
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_OSPFv2"
+        linkerFlags = ""
+        />
+    <feature
+        id="OSPFv2_examples"
+        name="OSPFv2 examples"
+        description = "Examples for OSPFv2"
+        initiallyEnabled = "true"
+        requires = "OSPFv2 UDP IPv4 PPP Ethernet"
+        labels = "routing examples"
+        nedPackages = "
+                       inet.examples.ospfv2
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="BGPv4"
+        name="BGPv4"
+        description = "BGP support"
+        initiallyEnabled = "true"
+        requires = "IPv4 OSPFv2 TCP_INET"
+        labels = "routing"
+        nedPackages = "
+                       inet.routing.bgpv4
+                       inet.node.bgp
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_BGPv4"
+        linkerFlags = ""
+        />
+    <feature
+        id="BGPv4_examples"
+        name="BGPv4 examples"
+        description = "Examples for BGPv4"
+        initiallyEnabled = "true"
+        requires = "BGPv4 TCP_INET UDP IPv4 PPP Ethernet"
+        labels = "routing examples"
+        nedPackages = "
+                       inet.examples.bgpv4
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="PIM"
+        name="PIM"
+        description = "PIM support"
+        initiallyEnabled = "true"
+        requires = "IPv4"
+        labels = "routing"
+        nedPackages = "
+                       inet.routing.pim
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_PIM"
+        linkerFlags = ""
+        />
+    <feature
+        id="PIM_examples"
+        name="PIM examples"
+        description = "Examples for PIM"
+        initiallyEnabled = "true"
+        requires = "PIM PPP Ethernet"
+        labels = "routing examples"
+        nedPackages = "
+                       inet.examples.pim
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="DYMO"
+        name="DYMO"
+        description = "Dynamic MANET On-demand Routing"
+        initiallyEnabled = "true"
+        requires = "UDP IPv4 Ieee80211 MultiNet"
+        labels = "routing"
+        nedPackages = "
+                       inet.routing.dymo
+                       inet.node.dymo
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="AODV"
+        name="AODV"
+        description = "Ad hoc On-Demand Distance Vector (AODV) Routing"
+        initiallyEnabled = "true"
+        requires = "UDP IPv4 Ieee80211"
+        labels = "routing"
+        nedPackages = "
+                       inet.routing.aodv
+                       inet.node.aodv
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_AODV"
+        linkerFlags = ""
+        />
+    <feature
+        id="AODV_examples"
+        name="AODV examples"
+        description = "Ad hoc On-Demand Distance Vector (AODV) Routing examples"
+        initiallyEnabled = "true"
+        requires = "AODV"
+        labels = "routing examples"
+        nedPackages = "
+                       inet.examples.aodv
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="GPSR"
+        name="GPSR"
+        description = "Greedy Perimeter Stateless Routing for Wireless Networks"
+        initiallyEnabled = "true"
+        requires = "UDP IPv4 MultiNet"
+        labels = "routing"
+        nedPackages = "
+                       inet.routing.gpsr
+                       inet.node.gpsr
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="RIP"
+        name="RIP"
+        description = "Routing Information Protocol"
+        initiallyEnabled = "true"
+        requires = "UDP IPv4"
+        labels = "routing"
+        nedPackages = "
+                       inet.routing.rip
+                       inet.node.rip
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_RIP"
+        linkerFlags = ""
+        />
+    <feature
+        id="RIP_examples"
+        name="RIP examples"
+        description = "Routing Information Protocol examples"
+        initiallyEnabled = "true"
+        requires = "UDP IPv4 RIP IPv6 Ethernet"
+        labels = "routing examples"
+        nedPackages = "
+                       inet.examples.rip
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="MANET_examples"
+        name="MANET routing examples"
+        description = "Examples for the MANET routing protocols"
+        initiallyEnabled = "true"
+        requires = "TCP_INET UDP IPv4 DYMO GPSR"
+        labels = "routing manet examples MultiNet"
+        nedPackages = "
+                       inet.examples.manetrouting
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="mobility"
+        name="Mobility"
+        description = "Mobility support for wireless simulations"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.mobility.base
+                       inet.mobility.group
+                       inet.mobility.single
+                       inet.mobility.static
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="mobility_examples"
+        name="Mobility examples"
+        description = "Examples for Mobility support"
+        initiallyEnabled = "true"
+        requires = "mobility"
+        labels = "examples"
+        nedPackages = "
+                       inet.examples.mobility
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="physicalenvironment"
+        name="Physical environment"
+        description = "Physical environment support"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.environment.common
+                       inet.environment.ground
+                       inet.environment.objectcache
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="physicalenvironment_examples"
+        name="Physical environment examples"
+        description = "Physical environment examples"
+        requires = "physicalenvironment IPv4 Ieee80211"
+        labels = ""
+        nedPackages = "
+                       inet.examples.objectcache
+                       inet.examples.geometry
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="power"
+        name="Power"
+        description = "Provides energy generator, consumer and storage models such as batteries"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.power.base
+                       inet.power.consumer
+                       inet.power.generator
+                       inet.power.storage
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_POWER"
+        linkerFlags = ""
+        />
+    <feature
+        id="radio"
+        name="Radio"
+        description = "Radio support for wireless simulations"
+        requires = "power"
+        labels = ""
+        nedPackages = "
+                       inet.physicallayer.analogmodel
+                       inet.physicallayer.antenna
+                       inet.physicallayer.backgroundnoise
+                       inet.physicallayer.base
+                       inet.physicallayer.common
+                       inet.physicallayer.communicationcache
+                       inet.physicallayer.energyconsumer
+                       inet.physicallayer.errormodel
+                       inet.physicallayer.modulation
+                       inet.physicallayer.neighborcache
+                       inet.physicallayer.obstacleloss
+                       inet.physicallayer.pathloss
+                       inet.physicallayer.propagation
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_RADIO"
+        linkerFlags = ""
+        />
+    <feature
+        id="Ieee80211"
+        name="IEEE 802.11"
+        description = "Provides IEEE 802.11 (a/b/g/e/p/n) Ad-hoc and Infrastucture mode NICs"
+        initiallyEnabled = "true"
+        requires = "mobility radio idealwireless"
+        labels = "nic wireless"
+        nedPackages = "
+                       inet.linklayer.ieee80211
+                       inet.physicallayer.ieee80211
+                       inet.common.serializer.headerserializers.ieee80211
+                       inet.node.wireless
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_IEEE80211"
+        linkerFlags = ""
+        />
+    <feature
+        id="Ieee802154"
+        name="IEEE 802.15.4"
+        description = "Provides IEEE 802.15.4 Narrowband and Ultra-Wideband NICs"
+        initiallyEnabled = "true"
+        requires = "mobility radio apskradio CSMA idealwireless"
+        labels = "nic wireless"
+        nedPackages = "
+                       inet.linklayer.ieee802154
+                       inet.physicallayer.ieee802154
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_IEEE802154"
+        linkerFlags = ""
+        />
+    <feature
+        id="apskradio"
+        name="APSK radio"
+        description = "Provides a hypothetical generic radio for APSK modulations"
+        requires = "mobility radio Ieee80211"
+        labels = ""
+        nedPackages = "
+                       inet.physicallayer.apskradio
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_APSKRADIO"
+        linkerFlags = ""
+        />
+    <feature
+        id="idealwireless"
+        name="Ideal Wireless"
+        description = "Provides a simple wireless interface that consists
+        	of a unit disk radio and no real MAC protocol. It offers simplicity
+        	for scenarios where Layer 1 and 2 effects can be completely ignored.
+        	Parts: IdealWirelessNic (IdealWirelessMac plus IdealRadio), and
+            IdealRadioMedium."
+        initiallyEnabled = "true"
+        requires = "mobility radio"
+        labels = "nic wireless"
+        nedPackages = "
+                       inet.linklayer.ideal
+                       inet.physicallayer.idealradio
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_IDEALWIRELESS"
+        linkerFlags = ""
+        />
+    <feature
+        id="wireless_examples"
+        name="Wireless examples"
+        description = "Provides various wireless examples"
+        initiallyEnabled = "true"
+        requires = "TCP_INET UDP IPv4 Ethernet Ieee80211 Ieee802154 apskradio idealwireless physicalenvironment AODV CSMA"
+        labels = "nic wireless"
+        nedPackages = "
+                       inet.examples.adhoc
+                       inet.examples.neighborcache
+                       inet.examples.wireless
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="visualization"
+        name="Visualization"
+        description = "Provides network-level visualization features for physical layer,
+                       data link layer and network layer communications, and more.
+                       Supports both canvas (2D) and OSG (3D) graphics."
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.visualizer.base
+                       inet.visualizer.common
+                       inet.visualizer.environment
+                       inet.visualizer.integrated
+                       inet.visualizer.linklayer
+                       inet.visualizer.mobility
+                       inet.visualizer.networklayer
+                       inet.visualizer.physicallayer
+                       inet.visualizer.power
+                       inet.visualizer.scene
+                       inet.visualizer.transportlayer
+                       inet.visualizer.util
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_VISUALIZERS"
+        linkerFlags = ""
+        />
+    <feature
+        id="visualization_examples"
+        name="Visualization examples"
+        description = "Provides examples for the various visualization modules."
+        initiallyEnabled = "true"
+        requires = "visualization physicalenvironment DYMO Ieee80211 IPv4 MultiNet Ethernet"
+        labels = ""
+        nedPackages = "
+                       inet.examples.visualization
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="VoIPStream"
+        name="VoIPStream"
+        description = "Voice over IP tool. Required external libraries: libavcodec libavformat libavresample libavutil"
+        initiallyEnabled = "false"
+        requires = "UDP"
+        labels = ""
+        nedPackages = "
+                       inet.applications.voipstream
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_VOIPSTREAM"
+        linkerFlags = ""
+        />
+    <feature
+        id="VoIPStream_examples"
+        name="VoIPStream examples"
+        description = "Example VoIP simulations"
+        initiallyEnabled = "false"
+        requires = "VoIPStream IPv4 Ethernet"
+        labels = "examples"
+        nedPackages = "
+                       inet.examples.voipstream
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="SimpleVoIP"
+        name="SimpleVoIP"
+        description = "A simplified VoIP model with MOS measurement capability"
+        initiallyEnabled = "true"
+        requires = "UDP"
+        labels = ""
+        nedPackages = "
+                       inet.applications.voip
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="SimpleVoIP_examples"
+        name="SimpleVoIP examples"
+        description = "Example VoIP simulations"
+        initiallyEnabled = "true"
+        requires = "SimpleVoIP IPv4 Ethernet InternetCloud"
+        labels = "examples"
+        nedPackages = "
+                       inet.examples.voip
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="HttpTools"
+        name="HttpTools"
+        description = "Components for web traffic simulation.
+                       This is a port of Kristjan Jonsson's HttpTools,
+                       see http://code.google.com/p/omnet-httptools/."
+        initiallyEnabled = "true"
+        requires = "TCP_common"
+        labels = "application http web"
+        nedPackages = "
+                       inet.applications.httptools
+                       inet.node.httptools
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="HttpTools_examples_direct"
+        name="HttpTools examples with direct sending"
+        description = "HttpTools examples that do not use underlying protocol layers"
+        initiallyEnabled = "true"
+        requires = "HttpTools"
+        labels = "examples http web"
+        nedPackages = "
+                       inet.examples.httptools.direct
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="HttpTools_examples_socket"
+        name="HttpTools examples with socket mode"
+        description = "HttpTools examples that include the simulation of TCP and lower layers as well"
+        initiallyEnabled = "true"
+        requires = "HttpTools IPv4 Ethernet TCP_INET"
+        labels = "examples http web"
+        nedPackages = "
+                       inet.examples.httptools.socket
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="DiffServ"
+        name="DiffServ"
+        description = "Components for implementing Differentiated Services"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.networklayer.diffserv
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="DiffServ_examples"
+        name="DiffServ examples"
+        description = "DiffServ examples"
+        initiallyEnabled = "true"
+        requires = "DiffServ PPP Ethernet IPv4 UDP"
+        labels = ""
+        nedPackages = "
+                       inet.examples.diffserv
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="InternetCloud"
+        name="Internet Cloud"
+        description = "Components for simulating internet cloud"
+        initiallyEnabled = "true"
+        requires = "IPv4"
+        labels = ""
+        nedPackages = "
+                       inet.networklayer.internetcloud
+                       inet.node.internetcloud
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="InternetCloud_examples"
+        name="Internet Cloud examples"
+        description = "Internet Cloud examples"
+        initiallyEnabled = "true"
+        requires = "InternetCloud PPP Ethernet"
+        labels = ""
+        nedPackages = "
+                       inet.examples.internetcloud
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+
+    <feature
+        id="Ieee8021d"
+        name="IEEE 802.1d"
+        description = "STP and RSTP (Spanning Tree Protocol, Rapid Spanning Tree Protocol)"
+        initiallyEnabled = "true"
+        requires = "Ethernet"
+        labels = ""
+        nedPackages = "
+                       inet.linklayer.ieee8021d
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_IEEE8021D"
+        linkerFlags = ""
+        />
+    <feature
+        id="Ieee8021d_examples"
+        name="IEEE 802.1d examples"
+        description = "STP and RSTP examples"
+        initiallyEnabled = "true"
+        requires = "Ethernet Ieee8021d"
+        labels = ""
+        nedPackages = "
+                       inet.examples.ieee8021d
+                      "
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="TUN"
+        name="TUN"
+        description = "TUN/TAP virtual network interface"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.applications.tunapp
+                       inet.linklayer.tun
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_TUN"
+        linkerFlags = ""
+        />
+    <feature
+        id="packetdrill"
+        name="PacketDrill testing"
+        description = "PacketDrill testing application"
+        initiallyEnabled = "true"
+        requires = "TUN TCP_INET UDP SCTP IPv4"
+        labels = ""
+        nedPackages = "
+                       inet.applications.packetdrill
+                       inet.node.packetdrill
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_PACKETDRILL"
+        linkerFlags = ""
+        />
+    <feature
+        id="BMAC"
+        name="BMAC"
+        description = "B-MAC, also called the Berkeley MAC, a Low Power Listening (LPL) protocol"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.linklayer.bmac
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_BMAC"
+        linkerFlags = ""
+        />
+    <feature
+        id="LMAC"
+        name="LMAC"
+        description = "L-MAC, a lightweight MAC protocol for wireless sensor networks"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.linklayer.lmac
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_LMAC"
+        linkerFlags = ""
+        />
+    <feature
+        id="CSMA"
+        name="CSMA"
+        description = "A CSMA (Carrier Sense Multiple Access) MAC protocol, similar to 802.15.4"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.linklayer.csma
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_CSMA"
+        linkerFlags = ""
+        />
+    <feature
+        id="CsmaCaMac"
+        name="CSMA/CA"
+        description = "A CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance) MAC protocol, similar to 802.11b"
+        initiallyEnabled = "true"
+        requires = ""
+        labels = ""
+        nedPackages = "
+                       inet.linklayer.csmaca
+                      "
+        extraSourceFolders = ""
+        compileFlags = "-DWITH_CSMACA"
+        linkerFlags = ""
+        />
+    <feature
+        id="wirelesstutorial"
+        name="Wireless tutorial"
+        description = "A step-by-step tutorial starting from the basics, and introducing new features and concepts related to wireless communication networks."
+        initiallyEnabled = "true"
+        requires = "physicalenvironment apskradio idealwireless Ieee80211 IPv4 UDP AODV"
+        labels = "tutorial wireless"
+        nedPackages = "inet.tutorials.wireless"
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="visualizationtutorial"
+        name="Visualization tutorial"
+        description = "A step-by-step tutorial starting from the basics, and introducing new features and concepts related to visualizing state and behavior of communication networks."
+        initiallyEnabled = "true"
+        requires = "visualization physicalenvironment Ieee80211 IPv4 AODV"
+        labels = "tutorial visualization"
+        nedPackages = "inet.tutorials.visualization"
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="configuratortutorial"
+        name="Configurator tutorial"
+        description = "A step-by-step tutorial starting from the basics, and introducing new features and concepts related to automatic IP address and routing table configuartion."
+        initiallyEnabled = "true"
+        requires = "Ieee80211 IPv4 AODV Ethernet visualization"
+        labels = "tutorial configuration"
+        nedPackages = "inet.tutorials.configurator"
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="visualizershowcases"
+        name="Visualization showcaes"
+        description = "Simple showcases demonstrationg features and concepts related to visualizing state and behavior of communication networks."
+        initiallyEnabled = "true"
+        requires = "visualization physicalenvironment Ethernet Ieee80211 IPv4 AODV"
+        labels = "showcase visualization"
+        nedPackages = "inet.showcases.visualizer"
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+    <feature
+        id="wirelessshowcases"
+        name="Wireless showcaes"
+        description = "Simple showcases demonstrationg wireless features."
+        initiallyEnabled = "true"
+        requires = "visualization physicalenvironment apskradio Ieee80211 IPv4 AODV"
+        labels = "showcase visualization"
+        nedPackages = "inet.showcases.wireless"
+        extraSourceFolders = ""
+        compileFlags = ""
+        linkerFlags = ""
+        />
+</features>

+ 97 - 0
inet/.project

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>inet</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.omnetpp.cdt.MakefileBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.omnetpp.scave.builder.vectorfileindexer</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<triggers>clean,full,incremental,</triggers>
+			<arguments>
+				<dictionary>
+					<key>?children?</key>
+					<value>?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|?name?=entry\\\\\\\|\\\|\||</value>
+				</dictionary>
+				<dictionary>
+					<key>?name?</key>
+					<value></value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.append_environment</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+					<value>all</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.buildArguments</key>
+					<value>MODE=debug CONFIGNAME=${ConfigName}</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.buildCommand</key>
+					<value>make</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.buildLocation</key>
+					<value>${ProjDirPath}</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+					<value>clean</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.contents</key>
+					<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+					<value>false</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.enableFullBuild</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+					<value>all</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.stopOnError</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+					<value>true</value>
+				</dictionary>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+		<nature>org.eclipse.cdt.core.ccnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+		<nature>org.omnetpp.main.omnetppnature</nature>
+	</natures>
+</projectDescription>

+ 61 - 0
inet/CREDITS

@@ -0,0 +1,61 @@
+The INET Framework is developed by Andras Varga.
+
+List of contributors:
+
+----- INET Framework contributors -----
+
+Patch for getting Ethernet and ARP working with IP; ARPTest example, 2004:
+* Emin Ilker Cetinbas   <niw3@yahoo.com>
+
+
+----- INET Framework -----
+
+INET Framework maintainer:
+* Andras Varga          <andras@omnetpp.org>
+
+The INET Framework is loosely based on the IPSuite from University of
+Karlsruhe. After by extensive restructuring and rewrite, very little
+of the original code could be kept -- most if it has been completely
+rewritten in 2003-2004 by Andras Varga.
+
+Changes include: UDP, IP, PPP, TCP reimplemented; TCPSocket added;
+Ethernet and MPLS models integrated; extensive refactoring on MPLS
+and RSVP; LDP reimplemented; added ARP; added app models for TCP and
+Ethernet; added network configurators; added neddoc documentation.
+
+
+----- Ethernet model -----
+
+Ethernet model (2003):
+* David Wu              <davidwu@eng.monash.edu.au>
+* Andras Varga          <andras@whale.hit.bme.hu>
+
+
+----- Original MPLS code -----
+
+MPLS, LDP, RSVP-TE models, 2003:
+* Xuan Thang Nguyen     <Xuan.T.Nguyen@uts.edu.au>
+
+
+----- Old IPSuite -----
+
+Design and coding of original IPSuite (UDP, IP, PPP), 2000:
+* Klaus Wehrle          <wehrle@telematik.informatik.uni-karlsruhe.de>
+* Jochen Reber          <un6b@rz.uni-karlsruhe.de>
+* Dirk Holzhausen       <dholzh@gmx.de>
+
+Old TCP (tcpmodule.cc, obsoleted by new TCP) design and initial coding, 2000:
+* Volker Boehm          <Volker.Boehm@nortelnetworks.com>
+* Verena Kahmann        <kahmann@telematik.informatik.uni-karlsruhe.de>
+* Uli Kaage             <kaage@int.uni-karlsruhe.de>
+
+Bugfixes to old TCP (tcpmodule.cc, obsoleted by new TCP), 2003, 2004:
+* Donald Liang (LYBD), Virginia Tech
+* Jeroen Idserda, University of Twente
+* Joung Woong Lee (zipizigi), University of Tsukuba
+
+RTP models (not yet integrated as of April 2004):
+* Matthias Oppitz       <matthias.oppitz@gmx.de>
+* Arndt Buschmann       <a.buschmann@gmx.de>
+
+If you think your name is missing, please write to andras@omnetpp.org.

+ 108 - 0
inet/INSTALL

@@ -0,0 +1,108 @@
+INSTALLATION INSTRUCTIONS
+=========================
+
+The INET Framework can be compiled on any platform supported by OMNeT++.
+
+PREREQUISITES
+
+You should have a working OMNeT++ installation.
+
+NOTE TO GIT USERS: If you are wondering why the showcases/ and tutorials/
+directories are empty, jump forward to the 'Note to Git users' section
+of this file.
+
+General
+-------
+1. Make sure your OMNeT++ installation works OK (e.g. try running the samples)
+   and it is in the path (to test, try the command "which nedtool"). On
+   Windows, open a console with the "mingwenv.cmd" command. The PATH and other
+   variables will be automatically adjusted for you. Use this console to compile
+   and run INET.
+
+2. Extract the downloaded tarball into a directory of your choice (usually into your
+   workspace directory, if you are using the IDE). NOTE: The built-in Windows
+   archiver has bugs and cannot extract the file correctly. Use some other archiver
+   or do it from command line (tar xvfz inet-yyyymmdd-opp4-src.tgz)
+
+
+If you are building from command line:
+--------------------------------------
+3. Change to the INET directory.
+
+4. Type "make makefiles". This should generate the makefiles for you automatically.
+
+5. Type "make" to build the inet executable (debug version). Use "make MODE=release"
+   to build release version.
+
+6. You can run specific examples by changing into the example's directory and executing "./run"
+
+If you are using the IDE:
+-------------------------
+3. Open the OMNeT++ IDE and choose the workspace where you have extracted the inet directory.
+   The extracted directory must be a subdirectory of the workspace dir.
+
+4. Import the project using: File | Import | General | Existing projects into Workspace.
+   Then select the workspace dir as the root directory, and be sure NOT to check the
+   "Copy projects into workspace" box. Click Finish.
+
+5. Open the project (if already not open) and wait until the indexer finishes.
+   Now you can build the project by pressing CTRL-B (Project | Build all)
+
+6. To run an example from the IDE open the example's directory in the Project Explorer view,
+   find the corresponding omnetpp.ini file. Right click on it and select Run As / Simulation.
+   This should create a Launch Configuration for this example.
+
+If the build was successful, you may try running the demo simulations.
+Change into examples/ and type "./rundemo".
+
+Note:
+-----
+- by default INET is creating a shared library (libINET.dll, libINET.so etc.)
+  in the "src" directory. To use the shared library you can use the "opp_run"
+  command to load it dynamically. Open the "src/run_inet" script to see how
+  to do it.
+- If you add/remove files/directories later in the src directory, you MUST
+  re-create your makefile. Run "make makefiles" again if you are building
+  from the command line. (The IDE does it for you automatically)
+
+Note to GIT users:
+------------------
+
+If you want to check out INET directly from the repository, we recommend using the
+
+    $ git clone --recursive git@github.com:inet-framework/inet.git
+
+command, because the INET repository contains git submodules. If you forget to specify
+--recursive, you can initialize those submodules with:
+
+    $ git submodule update --init
+
+To make the installation simple, the GIT repo contains all IDE configuration files.
+If you make local changes in the IDE you may need to disable the change tracking on
+those files, so GIT will not insist committing those changes back on your next commit.
+You can use the _scripts/track-config-files-[on/off] scripts to enable/disable the 
+change tracking.
+
+To further ease the merging/rebasing operation the .cproject .nedfolders .oppbuildspec .project
+files are configured to be resolved using the 'ours' merge strategy.  Depending on your 
+GIT version, you may need to enable the 'ours' merge driver for the project:
+
+    $ git config merge.ours.driver true
+
+VoIPTool feature
+================
+
+VoIPTool has only been tested on Linux. This does not mean it won't work on other
+systems, but your mileage may vary on getting it up and running.
+
+
+PREREQUISITES.
+
+VoIPTool requires a "devel" package of the avcodec library (part of FFmpeg) 
+to be installed on your system. On Ubuntu, this package can be installed with the 
+following command:
+
+$ sudo apt-get install libavcodec-dev
+$ sudo apt-get install libavformat-dev
+
+The package name and installation command may vary for other Linux systems.

+ 4 - 0
inet/License

@@ -0,0 +1,4 @@
+
+The OMNeT++/OMNEST INET Framework is composed of several parts, each of which
+has its own license, either GPL or LGPL. As a rule, every source file should
+contain the appropriate copyright notice and license conditions.

+ 57 - 0
inet/Makefile

@@ -0,0 +1,57 @@
+FEATURES_H = src/inet/features.h
+
+.PHONY: all clean cleanall makefiles makefiles-so makefiles-lib makefiles-exe checkmakefiles doxy doc submodule-init
+
+all: checkmakefiles $(FEATURES_H)
+	cd src && $(MAKE)
+
+clean: checkmakefiles
+	cd src && $(MAKE) clean
+
+cleanall: checkmakefiles
+	@cd src && $(MAKE) MODE=release clean
+	@cd src && $(MAKE) MODE=debug clean
+	@rm -f src/Makefile $(FEATURES_H)
+	@cd tutorials && $(MAKE) clean && rm -rf doc/tutorials
+
+MAKEMAKE_OPTIONS := -f --deep -o INET -O out -pINET -I.
+
+makefiles: makefiles-so
+
+makefiles-so: $(FEATURES_H)
+	@FEATURE_OPTIONS=$$(./inet_featuretool options -f -l) && cd src && opp_makemake --make-so $(MAKEMAKE_OPTIONS) $$FEATURE_OPTIONS
+
+makefiles-lib: $(FEATURES_H)
+	@FEATURE_OPTIONS=$$(./inet_featuretool options -f -l) && cd src && opp_makemake --make-lib $(MAKEMAKE_OPTIONS) $$FEATURE_OPTIONS
+
+makefiles-exe: $(FEATURES_H)
+	@FEATURE_OPTIONS=$$(./inet_featuretool options -f -l) && cd src && opp_makemake $(MAKEMAKE_OPTIONS) $$FEATURE_OPTIONS
+
+checkmakefiles: submodule-init
+	@if [ ! -f src/Makefile ]; then \
+	echo; \
+	echo '========================================================================'; \
+	echo 'src/Makefile does not exist. Please use "make makefiles" to generate it!'; \
+	echo '========================================================================'; \
+	echo; \
+	exit 1; \
+	fi
+
+submodule-init:
+	@if [ -d .git ]; then \
+	if [ ! -f tutorials/package.ned ]; then \
+	echo 'Fetching git submodules (tutorials, showcases)...'; \
+	git submodule update --init; \
+	fi \
+	fi
+
+# generate an include file that contains all the WITH_FEATURE macros according to the current enablement of features
+$(FEATURES_H): $(wildcard .oppfeaturestate) .oppfeatures
+	@./inet_featuretool defines >$(FEATURES_H)
+
+
+doc:
+	cd tutorials && $(MAKE) && mkdir -p ../doc/tutorials/wireless && cp -r wireless/html/* ../doc/tutorials/wireless
+	cd doc/src/tcp && $(MAKE)
+	cd doc/src/manual && $(MAKE)
+	doxygen doxy.cfg

+ 51 - 0
inet/README.md

@@ -0,0 +1,51 @@
+INET Framework for OMNEST/OMNeT++
+=================================
+
+The INET framework (inet.omnetpp.org) is an open-source communication networks
+simulation package, written for the OMNEST/OMNeT++ simulation system. The INET 
+framework contains models for numerous wired and wireless protocols, a detailed
+physical layer model, application models and more. See the CREDITS file for the
+names of people who have contributed to the INET Framework.
+
+IMPORTANT: The INET Framework is continuously being improved: new parts
+are added, bugs are corrected, and so on. We cannot assert that any protocol
+implemented here will work fully according to the specifications. YOU ARE
+RESPONSIBLE YOURSELF FOR MAKING SURE THAT THE MODELS YOU USE IN YOUR SIMULATIONS
+WORK CORRECTLY, AND YOU'RE GETTING VALID RESULTS.
+
+Contributions are highly welcome. You can make a difference!
+
+See the WHATSNEW file for recent changes.
+
+
+GETTING STARTED
+---------------
+You may start by downloading and installing the INET framework. Read the INSTALL
+file for further information.
+
+Then you can gather initial experience by starting some examples or following the 
+INET wireless tutorial (tutorials/wireless). After that, you can learn the NED 
+language from the OMNeT++ manual & sample simulations.
+
+After that, you may write your own topologies using the NED language. You may
+assign some of the submodule parameters in NED files. You may leave some of
+them unassigned.
+
+Then, you may assign unassigned module parameters in omnetpp.ini of your
+simulation. (You can refer to sample simulations & manual for the content of
+omnetpp.ini)
+
+Finally, you will be ready to run your simulation. As you see, you may use
+the INET framework without writing any C++ code, as long as you use the
+available modules.
+
+To implement new protocols or modify existing ones, you'll need to add your 
+code somewhere under the src directory. If you add new files under the 'src' 
+directory you will need to regenerate the makefiles (using the 'make makefiles' 
+command).
+
+If you want to use external interfaces in INET, please install libpcap-dev (on linux)
+or winpcap (on windows from www.winpcap.org) and enable the "Emulation" feature
+either in the IDE or using the inet_featuretool then regenerate the INET makefile
+using 'make makefiles'.
+

+ 1 - 0
inet/Version

@@ -0,0 +1 @@
+inet-3.6.2-22b15eb

+ 2626 - 0
inet/WHATSNEW

@@ -0,0 +1,2626 @@
+Recent changes in the INET Framework
+====================================
+
+INET 3.6.2 (October 2017) - stable
+----------------------------------
+
+This release contains minor bug fixes and compatibility fixes for the final
+OMNeT++ 5.2 release. It requires OMNeT++ 5.1 or later.
+
+ - Tcp: Fixed incorrect connection pointer in rexmitQueue.
+ - Edcaf: Fixed aifs calculation for customised aifsn.
+ - Visualization: parameter rename
+ - inet_featuretool: Removed warning when treating a missing feature in the state files as default.
+ - Updated showcases and tutorials.
+ - Various fixes to eliminate warnings on clang 4 and gcc 7.x.
+
+
+INET 3.6.1 (July 2017) - stable
+-------------------------------
+
+This release contains minor compatibility fixes. It requires OMNeT++ 5.1 or later.
+
+ - Minor compatibility fix to work with OMNeT++ 5.2 Preview 1
+ - Turned on the parallel build option in the IDE project file.
+
+
+INET-3.6.0 (June 2017) - stable
+-------------------------------
+
+This release contains some important new features, several bug fixes, and a few
+minor enhancements. It requires OMNeT++ 5.1 or later.
+
+Highlights in this release:
+
+ - On Windows, INET is no longer using the auto-import feature of the linker, because
+   it generated more than 65536 symbols. Dependent projects crashed because of this.
+   All INET APIs now should be prefixed with INET_API macro. (fixes #257)
+
+ - The makefile now generates separate precompiled header for debug and release mode.
+   This is required to be able to quicly switch between release and debug mode in the IDE.
+
+ - The IEEE 802.11 MAC model has been extended with several new components. The
+   implementation is entirely based on the standard IEEE 802.11™-2012 Part 11:
+   Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.
+
+   The new architecture is designed to be modular to facilitate experimenting
+   with new policies, features and algorithms within the MAC layer. Users can
+   easily replace individual components with their own implementations. Policies,
+   which most likely to be experimented with, are extracted into their own modules.
+
+   The new model has the following replaceable built-in policies:
+    - ACK policy
+    - RTS/CTS policy
+    - Originator and recipient block ACK agreement policies
+    - MSDU aggregation policy
+    - Fragmentation policy
+
+   The new model also separates the following components:
+    - Coordination functions
+    - Channel access methods
+    - MAC data services
+    - Aggregation and deaggregation
+    - Fragmentation and defragmentation
+    - Block ACK agreements and reordering
+    - Frame exchange sequences
+    - Duplicate removal
+    - Rate selection
+    - Rate control
+    - Protection mechanisms
+    - Recovery procedure
+    - Contention
+    - Frame queues
+    - TX/RX
+
+   There are several enhancements and new features to the previous version, the
+   most notable are frame exchange sequences, block acknowledgement, and MSDU
+   aggregation.
+
+   The new version was thoroughly tested against the old one using fingerprint
+   tests. The tests ensure that the new version doesn't introduce any regression.
+   In fact, the tests brought up a few problems in the old implementation that
+   were fixed in the new one.
+
+ - The power model has been extended with support for charge/current based models
+   as opposed to the existing energy/power based ones. A new energy management
+   component has also been added to separate monitoring and controlling of energy
+   consumers and generators from the rest of the model.
+
+ - New visualizers has been added to display packet drops and link breaks, data
+   contained in interface tables, routes stored in routing tables, queues filled
+   with packets, residual capacity of energy storages, and transport connections
+   between network nodes. The new visualizers are also added to the already existing
+   integrated ones. Note: many features that work with the 2D visualizers currently
+   don't work with the 3D OSG visualizers.
+
+ - Added new features for various tutorials and showcases.
+
+
+INET-3.5.0 (February 2017) - stable
+-----------------------------------
+
+This release contains mostly bug fixes and compatibility changes. It requires
+OMNeT++ 5.1. Earlier versions of OMNeT++ are *not* compatible.
+
+Highlights in this release:
+
+Build:
+
+  - The build process is now using precompiled headers. This can speed up the
+    build process considerably.
+
+  - Feature macros (WITH_*) that show the enablement of features are now placed
+    into a header file (src/inet/features.h) instead of passed on the command line.
+    The build process adds the WITH_OSG and WITH_OSGEARTH macro to the opp_defines.h
+    file when WITH_OSG/WITH_OSGEARTH is set to yes. This allows the IDE to properly
+    highlight/disable the appropriate code fragments.
+
+  - 64-bit build is now supported on Windows.
+
+Visualizers:
+
+  - Added a Plot figure (see InstrumentsExample).
+
+DHCP:
+
+  - DHCP fixes.
+
+  - DHCP can now activated in a Router by setting hasDHCP=true
+
+  - Added new WirelessNetWith2DHCP example.
+
+Radio:
+
+  - Added two-ray interference model (TwoRayInterference) as a pathoss model.
+
+SCTP:
+
+  - Added StreamReconfig support for SCTP (by Irene Ruengeler)
+
+GPSR:
+
+  - Allow to specify the interface name in a parameter instead of
+    using a hardcoded interface name.
+
+Fixes:
+
+  - Small fixes in SimpleEnergyStorage and during Antenna initialization
+
+  - Calling IPv6RoutingTable::getInterfaceByAddress(const L3Address& address) or
+    findGpsrOptionFromNetworkDatagram() function caused infinite recursion.
+
+  - Radio: Fixed FreeSpacePathLoss bug in the loss formula for alpha != 2 case,
+    reported by Benjamin Sliwa.
+
+  - SimpleVoIPServer now resolves destAddress at startTime (instead
+    of initialization)
+
+  - Ieee8021dRelay: fixed a null pointer crash
+
+  - StaticConcentricMobility: fixed a rounding issue
+
+  - ICMP: fixed "icmp error answer to a fragmented udp packet" problem
+
+  - ICMP: fixing bug #64: Buffer Overflow Error
+
+  - AODV: no longer causes assertion failure when RREP-ACK arrived after a timeout
+
+
+INET-3.4.0 (June 2016) - stable
+-------------------------------
+
+This INET release requires OMNeT++ 5.0. This is due to the new visualization
+feature which uses the Canvas and OSG APIs introduced in OMNeT++ 5.0. Most
+other parts of the codebase still builds with OMNeT++ 4.6.
+
+Highlights is this release:
+
+Tutorials:
+
+  - Added a Wireless Tutorial (tutorials/wireless). The tutorial consists of
+    several simulation models of increasing complexity, demonstrating the INET
+    architecture and features related to wireless communication networks. The
+    models are accompanied by a text which explains each step, complete with
+    screenshots and recorded animations.
+
+  - Added draft for a visualization tutorial.
+
+Visualizers:
+
+  - Added a new 'visualizer' folder under 'src' that contains visualizer modules.
+    The current visualizer modules can display the scene (optionally with osgEarth),
+    the network nodes (optionally with 3D models), physical objects in
+    the physical environment, node mobility along with movement trail, discovered
+    network connectivity, discovered network routes, ongoing transmissions,
+    ongoing receptions, propagating radio signals, and statistics.
+
+    The visualizer modules are intentionally kept separate from network protocol
+    models. They are responsible for displaying various aspects of the simulation
+    in a graphical user interface. The most common mechanism they use is looking
+    up other modules and/or subscribing to the signals they emit. The visualizer
+    modules are compatible with both Tkenv and Qtenv. In Qtenv they are able to
+    display on both a 2D canvas and a 3D OSG scene.
+
+Instrument figures:
+
+  - Implemented a facility that allows one to display various gauges, meters
+    and indicators in the network graphics that take their inputs from signals.
+    The "gadgets" themselves are figures that are added into the network using
+    @figure properties, and they are driven by signals via @statistic properties,
+    using a special result recorder ("figure") that sets the value in the target
+    figure. Figure types are: gauge, linearGauge, progressMeter, thermometer,
+    counter, indicatorLabel/indicatorText, and indexedImage. Their sources
+    are in src/inet/common/figures.
+
+    There is a demo in examples/visualization/instruments, and an additional
+    usage example in the Wireless Tutorial (tutorials/wireless).
+
+MAC protocols:
+
+  - Added CsmaCaMac, a simple CSMA/CA-based MAC protocol with optional
+    acknowledgements and a retry mechanism. With the appropriate settings,
+    it can approximate basic 802.11b ad-hoc mode operation. The code is
+    based on the original Ieee80211Mac (802.11b) from 2006.
+
+  - IdealMac: Changed out-of-band ACKs to be optional.
+
+  - LMAC, BMAC, CSMA: Fixed handling of frames with bit errors.
+
+  - WirelessNic: added optional classifier submodule
+
+  - Ieee80211Mac: Resurrected link break signal for giving up a transmission.
+
+Radio:
+
+  - The physical environment model has been extended to include a ground model.
+    Ground models need to implement the IGround interface that currently
+    contains a getElevation() method. A very simple implementation, FlatGround
+    is also provided.
+
+  - The TwoRayGroundReflection model has been updated to use the ground model
+    of the physical environment.
+
+  - Added packetReceivedFromUpper and packetSentToUpper signals.
+
+Mobility:
+
+  - Mobility models now use the initialZ parameter even if position is
+    initialized from the display string.
+
+  - Added VehicleMobility that simulates turning at waypoints.
+
+  - Now all mobile nodes face (i.e. set the  orientation to) the direction of
+    movement. This affects radio reception when direction antenna is used.
+
+Physical enviromment:
+
+  - Added geographic coordinate system support.
+
+  - TracingObstacleLoss renamed to DielectricObstacleLoss.
+
+Misc:
+
+  - Added ApplicationPacket that can be used as generic application payload.
+    Currently it contains a sequence number.
+
+  - UDPBasicApp/UDPSink: changed to use ApplicationPacket, and record
+    received packet sequence numbers
+
+  - RelayUnit: Added packetReceivedFromLowerSignal and packetSentToLowerSignal signals.
+
+  - AODV: Removed AODV-RERR messages for inactive routes.
+
+  - Applications: Added throughput statistic to some applications.
+
+  - IPv4: Added sentTo/receivedFrom upper/lower signals.
+
+  - Common: Added average forest "material".
+
+  - Common: Added throughput result filter.
+
+Build:
+
+  - Added a top level 'doc' target to build all INET documentation in a single step
+
+  - Added project feature tests (tests/features)
+
+
+INET-3.3.0 (June 2016) - stable
+-------------------------------
+
+This release requires OMNeT++ 4.6 or 5.0.
+
+Build:
+
+  - Removed unnecessary -pINET from the makemake options. This caused linking
+    issues on Windows when 'clang' was used as a compiler. (the INET_API
+    macros are needed only for Visual C++)
+
+  - In makefrag, use inet_featuretool instead of scanning the compiler options
+    to detect the enablement of the VoIPStream and NSC features
+
+  - Fix: TCP_lwip did not compile when using the command-line make.
+
+  - Examples: 'run' script can now take parameters containing spaces (as long as
+    they are quoted properly)
+
+SCTP:
+
+  - Packetdrill: Added SCTP support and socket options (by Irene Ruengeler)
+
+  - SCTP: added support for the SCTP_ACCEPT command (by Irene Ruengeler)
+
+Physical layer:
+
+  - Added IdealObstacleLoss. This obstacle loss model determines power loss by
+    checking if there is any obstructing physical object along the straight
+    propagation path. The result is either total power loss if there was
+    such an object or no loss at all if there wasn't.
+
+MANET:
+
+  - The "MANET Routing" feature (a collection of routing protocols ported
+    into INET from other projects) was removed from the source tree. The
+    removed MANET routing algorithms are still available in the INETMANET
+    fork of INET (https://github.com/aarizaq/inetmanet-2.0). INET now contains
+    the following natively implemented MANET routing protocols: AODV, DYMO, GPSR.
+
+Fixes:
+
+  - IPv4: bug fix in IPv4 packet deserialization
+
+  - Ieee802.11: bug fix in 802.11 management code (set TID only for QoS data
+    frames)
+
+  - TelnetApp: bug fix (cancel pending timers correctly)
+
+  - IPv4NetworkConfigurator: bug fix: links were not properly detected by the
+    configurator when nodes connected to a switch were defined after the switch
+    in the NED file
+
+  - IPv6: double delete fixed
+
+  - IPv4RoutingTable: fix: only interfaces with the BROADCAST flag set have
+    local broadcast addresses
+
+  - AODV: fix: AODV stopped with an error if an ICMP error packet was received
+    (ICMP packets are now accepted and silently dropped)
+
+  - examples: removed obsolete fingerprints.ini files
+
+Ethernet:
+
+  - Added a separate EtherPhyFrame class. Motivation: there was no obvious way
+    looking at an EtherFrame to tell whether it already contains preamble+SFD
+    or not.
+
+  - Change: When modeling the decapsulation from PHY header (subtracting preamble
+    and SFD lengths), padding to minimum frame size was also undone. This is
+    no longer done.
+
+  - EtherIFG renamed to EtherFilledIFG
+
+  - Catch duplex-halfduplex misconfiguration and throw error
+
+  - Fix incorrect byte counting during burst
+
+  - Serializer: adapted to the introduction of EtherPhyFrame
+
+  - Serializer: fix: CRC was in wrong byte order
+
+  - Serializer: fix: length field contained incorrect value (size of frame
+    instead of size of payload)
+
+
+INET-3.2.4 (April 2016) - stable
+--------------------------------
+
+This is a minor maintenance release that requires either OMNeT++ 4.6,
+or 5.0. (Earlier test versions of OMNeT++ will not work.)
+
+Changes:
+
+  - build: updated inet_featuretool (the same like the opp_featuretool in OMNeT++ 5.0)
+  - minor fixes to make it build under both OMNeT++ 4.6 and 5.0
+
+
+INET-3.2.3 (March 2016) - Stable
+--------------------------------
+
+This is a minor maintenance release that requires either OMNeT++ 4.6,
+or 5.0rc or later. (Earlier test versions of OMNeT++ will not work.)
+
+Changes:
+
+  - build: updated inet_featuretool (the same like the opp_featuretool in OMNeT++ 5.0 rc)
+  - several fixes to make it compatible with both OMNeT++ 4.6 and 5.0
+  - smoke and fingerprint tests are running on both OMNeT++ 4.6 and 5.0
+  - some variable renames and fixes in ieee802.11
+
+
+INET-3.2.1 (January 2016) - Stable
+----------------------------------
+
+Changes:
+
+  - 802.11 MAC model: EDCA, rate control crashes fixed
+  - Radio: Fixed handling of abort reception/transmission.
+  - Added missing INET_API defines
+  - Physical layer: Fixed memory issues detected by valgrind
+
+
+INET-3.2 (December 2015) - Stable
+---------------------------------
+
+This release requires either OMNeT++ 4.6, or 5.0b3 or later. (Earlier test
+versions of OMNeT++ will not work.)
+
+IEEE 802.11 MAC model:
+
+ - After further refinement, new features, several bugfixes and validation
+   testing, the new MAC model was made the default one. It was also renamed
+   from Ieee80211NewMac to Ieee80211Mac, while the old Ieee80211Mac became
+   Ieee80211OldMac.
+
+ - Improvements on the new MAC model include:
+   * Added fragmentation support;
+   * Added Onoe, ARF, AARF rate control algorithms;
+   * Implemented early Ack timeout;
+
+ - Validation: Several validation tests were run against the ns-3 Wifi model.
+   In the tested configurations, it was ensured that new Mac model behaves
+   *exactly* as the ns-3 model (that is, timestamped packet logs match exactly).
+   Discrepancies were resolved with bugfixes in our code, in the ns-3 code,
+   or both. Bugs found in ns-3 were reported in the ns-3 bugtracker.
+   See tests/misc/ns3.
+
+Physical layer:
+
+ - Added support for the simulation of separate signal parts in the Radio.
+   The preamble, header and data parts can be optionally simulated
+   separately. This results in a more accurate simulation, because a
+   reception may be aborted before the data part is received.
+
+ - Added separate preambleDuration parameters to each radio transmitter for more
+   flexible configuration.
+
+ - Added Ieee80211IdealRadio, an ideal channel model (aka unit disc radio)
+   suitable for use with Ieee80211Mac.
+
+Fixes:
+
+ - Fixed PER computation in NetworkConfiguratorBase.
+
+ - Fixed missing byte length in AODV and added control packet length configuration.
+
+ - RTT initialization was fixed in TCP (Vegas, Westwood) because the original
+   value caused "out of range" error with the overflow check introduced in
+   OMNeT++ 5.0b3.
+
+ - BPDU packet length was incorrectly set sometimes in the 802.1d model.
+
+ - Fixed incorrect sign of lastSpeed in some mobility models.
+
+ - The VoIPStream app has been updated to work with the ffmpeg version
+   distributed in Ubuntu 15.10
+
+ - Added some INET_API macros to compile properly on Windows.
+
+ - QoSClassifier example no longer needs the 802.11 project feature.
+
+
+INET-3.1.1 (October 2015) - Stable
+----------------------------------
+
+Changes:
+
+  - Fixed build problem on Windows
+
+
+INET-3.1.0 (October 2015) - Stable
+----------------------------------
+
+This release requires OMNeT++ 4.6 or later. In addition to several bug fixes,
+it features the following additions compared to INET-3.0:
+
+1. A modular and extensible new 802.11 MAC model.
+
+   It replaces the existing monolithic 802.11 MAC model that has become
+   increasingly difficult to maintain and extend over the years. The new MAC
+   has a modular design, where components can be swapped in and out. Concepts
+   such as contention-based channel access, frame exchange sequences, EDCA
+   queues, aggregation, fragmentation, duplicate detection, block acknow-
+   ledgement, frame rate selection, automatic rate selection, etc would
+   be expressed as self-contained C++ classes that implement abstract
+   interfaces and (may) have multiple implementations.
+
+   This kind of modular design also favours the open-source development model,
+   because abstract interfaces give contributors better cues on where to start
+   implementing a new feature, and new classes can be more readily accepted
+   into the codebase because changes to existing code (and thus the risk of
+   introducing new bugs) can be minimized.
+
+   In this initial form, it has roughly the same set of 802.11 features as the
+   old Ieee80211Mac module: basic DCF and EDCA, with the channel access and
+   some more parameters being configurable.
+
+   For now, the old Ieee80211Mac is still the default one for simulations.
+   To switch to using the new one, add the following line to your omnetpp.ini:
+
+   **.macType = "Ieee80211CompatibleNewMac"
+
+   Ieee80211CompatibleNewMac is a wrapper around Ieee80211NewMac to make its
+   parameterization similar to the old MAC.
+
+   Note that the new MAC is a compound module. You can double-click on the mac
+   submodule (in Tkenv) and expore its internals.
+
+   See the ChangeLog in src/inet/linklayer/ieee80211/newmac/ for more
+   information. The same folder also contains a presentation about the
+   architecture of the new MAC, as it was presented at the 2nd OMNeT++
+   Community Summit in September 2015 (see http://summit.omnetpp.org).
+
+2. Packetdrill. This is a port of Google's Packetdrill testing tool into
+   the INET Framework.
+
+   Google released the script-based Packetdrill tool in 2013. It allows one
+   to test transport protocols like UDP and TCP on Linux and BSD-based
+   operating systems. Scripts define test cases that inject packets to the
+   protocol implementation under test, perform operations using the API
+   controlling the transport protocol, and verify the sending of packets, all
+   at specified times. The ported version provides a simple and powerful
+   method of testing transport protocols implemented in INET.
+
+   Packetdrill has been contributed by Irene Rungeler and Michael Tuexen at
+   FH Muenster. Packetdrill has been presented at the 2nd OMNeT++ Community
+   Summit in September 2015; find the paper and presentation slides
+   at http://summit.omnetpp.org.
+
+3. Manet protocols in inet.routing.extras package are now disabled by default.
+   You can still enable the MANET feature manually or you can use INETMANET
+   (a fork of INET) which contains a more up to date codebase for these protocols.
+
+4. Changes and bug fixes in the (old) 802.11 MAC:
+
+   - The default lot time was not always correctly chosen for the configured
+     mode (modulation and coding scheme).
+
+   - Change maxQueueSize's meaning to per AC queue. Before, maxQueueSize
+     referred to the total of the AC queue lengths, which could cause starvation
+     of higher priority queues (see ChangeLog for more info.)
+
+   - Removed external queue support, that is, the mgmt submodule in the Nic
+     no longer serves as a passive queue for the MAC.
+
+
+INET-3.0.0 (June 2015) - Stable
+-------------------------------
+
+This release requires OMNeT++ 4.6 or later. There are numerous breaking changes
+since the latest stable version (2.6). Please read this file carefully and
+see the ChangeLog files in the source for more details.
+
+Nodes:
+ - Modules that represent a "node" at network level should be tagged with
+   @networkNode property instead of @node. (The @node property name was
+   too generic.) The INode module interface was renamed to INetworkNode, too.
+
+Applications:
+ - The functionality of PingTestApp was merged into PingApp and PingTestApp
+   was removed.
+
+Network Layer:
+ - Refactored IPv4/IPv6 options to use TLVOptions structure.
+
+
+INET-2.99.1 (May 2015) - Development
+------------------------------------
+
+This release is the last development snapshot of the upcoming INET-3.0 version.
+
+The highlights of this release are:
+
+1. Includes a new packet/bit/symbol level physical layer model for the 802.11
+   OFDM PHY according to the IEEE 802.11-2012 standard, and a hypothetical
+   generic packet/bit/symbol level APSK physical layer model for further
+   experimentation. The new implementations include forward error correction
+   encoding/decoding, scrambling/descrambling, interleaving/deinterleaving, and
+   modulation/demodulation.
+
+2. Contains fixes for more than 300 defects found by Coverity, an online C++
+   static code analysis tool. The reported Defect Density is decreased to
+   0.5/kLoC which is considered a result. You can find the detailed results at
+   https://scan.coverity.com/projects/3472
+
+3. Contains several other memory leak and memory management fixes reported by
+   valgrind memcheck.
+
+4. Modernizes C++ source code using new C++11 features such as nullptr, auto
+   types, range loop, override, etc.
+
+Read on for further details.
+
+All components:
+ - Replaced all variants of findModuleWherever calls with module parameters,
+   because their behavior is non-predictable and less composable.
+ - Replaced most getParentModule calls with module parameters to make modules
+   less dependent on their context, and thus more reusable.
+ - Replaced UnimplementedModule and all related *_None modules with calls to
+   firstAvailableOrEmpty NED function, and changed affected submodules to be
+   present conditionally.
+ - Moved interface classes under contract subdirectories. Moved base classes
+   under base subdirectories.
+ - Introduced a new script called 'inet_featuretool' in the root folder of the
+   project that allows listing/enabling/disabling specific features from the
+   command line. Use 'inet_featuretool -h' for further info.
+   The 'make makefiles' command now uses this tool to extract the required
+   command line options to generate the makefile. This means that after
+   enabling/disabling a feature you always have to invoke 'make makefiles'
+   to regenerate the makefile based on the new feature enablement state.
+
+Nodes:
+ - All "node type" modules implement the INode module interface so it is now
+   possible to create networks (using the <"actualNodeType"> like INode construct)
+   where the actual node type can be configured from an ini file.
+
+Emulation:
+ - Network Emulation feature no longer depends on OMNeT++ to detect the presence
+   of PCAP. Instead the feature can be turned on/off by the user.
+
+Common:
+ - Added create-module and delete-module commands to ScenarioManager.
+ - New macros in INETDefs.h to test INET version: INET_VERSION (format: 0xAABB
+   where AA is the major while BB is the minor version in hex) and
+   INET_PATCH_LEVEL (format: 0xCC is the patch level in hex).
+ - On Linux, specifying --valgrind as the first argument for the opp_run script
+   (or a run script in the examples folder) will start the simulation using the
+   'valgrind' memory profiler.
+ - Added a reusable HeatMapFigure and a GaugeFigure.
+ - Added a reusable DelayedInitializer to support static member initialization
+   without having to worry about the initialization order.
+ - Renamed ByteArrayMessage to RawPacket.
+
+Environment:
+ - Added isometric view angles to physical environment visualization.
+ - Added class and module interfaces to physical environment.
+
+Mobility:
+ - Added a new StaticConcentricMobility similar to StaticGridMobility that places
+   nodes on concentric circles.
+ - Removed TracCI and TraCIScenarioManager because these modules are maintained
+   in the Veins framework.
+
+Serializer:
+ - Refactored packet serializer classes to use a safe buffer class to read and
+   write binary data. This allows parsing incorrect binary representations without
+   runtime errors required by bit precise physical layer models.
+ - Refactored recursion in serializers to be extensible with new packet formats
+   without modifying existing code.
+ - Fixed a number of packet length bugs and inconsistencies between serialized
+   and non-serialized forms.
+
+Application:
+ - Merged NetPerfMeter application from the master branch added by Thomas Dreibholz.
+
+PCAP:
+ - Allow flushing the pcapFile after each write to ensure that all packets are
+   captured in case of a crash.
+
+Transport Layer:
+ - Added ITransportPacket interface to TCPSegment, UDPPacket, and SCTPMessage.
+   It allows generic handling of transport packets.
+
+SCTP:
+ - Added fragPoint parameter to limit the size of fragments.
+ - After the handshake only send heartbeats on unconfirmed paths.
+ - Fixed close command handling, i.e. stop reading when the command is sent.
+ - Handle SACK and NR_SACK separately and use getByteLength instead of getBitLength.
+ - Fixed several bugs.
+
+TCP:
+ - Refactored and cleaned up TCP header options.
+ - Fixed scaling window bug (Martin Becke).
+
+Network Layer:
+ - Factored out the network topology extraction algorithm from IPv4NetworkConfigurator
+   into a base class.
+ - Added support to IPv4NetworkConfigurator for computing wireless shortest path
+   based on a simple packet error rate estimation.
+ - Added netmaskRoutes parameter to IPv4RoutingTable to control whether netmask
+   routes are maintained or not.
+ - Added useAdminDist parameter to IPv4RoutingTable to enable/disable the use
+   of Cisco specific routing entry extension (disabled by default).
+ - Added IGMPv3 implementation (the orinal code came from the ANSA project).
+   It has been almost fully rewritten and extended by Tamas Borbely.
+
+Routing:
+ - Added PIM-DM and PIM-SM implementation. The original codebase (from the ANSA project
+   http://nes.fit.vutbr.cz/ansa) has been extensively reviewed, refactored and
+   extended by Tamas Borbely.
+
+Configurator:
+ - Refactored supported metrics (hopCount, delay, dataRate, errorRate) and related
+   parameters in IPv4NetworkConfigurator.
+ - Added autoroute XML configuration element to IPv4NetworkConfigurator. It provides
+   parameters for the automatic route discovery. The autoroute element determines
+   the set of routing tables that will be modified, the set of destinations for
+   which the shortest path will be computed, the used metric and the cost for nodes
+   and links.
+
+Link layer:
+ - Added TUN/TAP virtual network interfaces thanks to Irene Ruengeler. This kind
+   of interfaces send/receive packets to/from TUN applications.
+ - Updated the 802.11 MAC implementation to use the new 802.11 mode descriptors.
+ - Replaced the old 802.11 operational mode and modulation descriptor classes.
+   This change modifies the fingerprint of a few simulations, because the header
+   length was computed incorrectly.
+ - Changed the 802.11 MAC to use asynchronous commands to set the radio mode.
+ - Updated the 802.11 MAC state machine diagram (graphviz) to reflect the current
+   state of the implementation.
+ - Added safety guard to the 802.11 MAC against recursively calling handleWithFSM.
+ - Fixed packet order in transmissionQueue.
+ - Renamed getNetworkInterfaceModule to getInterfaceModule in InterfaceEntry.
+ - Improved response time on external interfaces. On Linux cSocketScheduler is now
+   using immediate mode to reduce the CPU usage while still maintaining a fast
+   sub millisec response time (Artur Scussel). On Windows and MAC OS X the polling
+   interval was reduced to improve the response time.
+ - Added support for sending NF_LINK_BREAK signal from BMAC and CSMA. This is
+   required for certain routing protocols (i.e. AODV) to function properly.
+ - Extended Ethernet macs accept raw packet
+
+Physical layer:
+ - Extended the physical layer contract interfaces for layered implementations.
+ - Added signal representations for packet domain, bit domain, symbol domain,
+   sample domain and analog domain, and also added contracts for the processing
+   components in all of these domains.
+ - Added a detailed 802.11 OFDM physical layer implementation that supports
+   packet-level, bit-level, and symbol-level simulations in compliant, and also
+   in freely configurable non-compliant operational modes.
+ - Replaced the old 802.11 operational mode and modulation descriptor classes.
+   The new classes are more detailed and more complete implementations. They
+   supports both the flat and the layered physical layer models and provide PHY
+   characteristics. The implemented 802.11 modes are: DSSS, HR-DSSS, FHSS, IR,
+   OFDM, ERP-OFDM.
+ - Added IEEE 802.11 High Throughput mode descriptor. This mode is defined in
+   Clause 20. High Throughput (HT) PHY specification in the IEEE 802.11-2012
+   specification. The new HT mode makes available the Wifi n modes in the
+   Ieee80211ModeSet.
+ - Added a simple hypothetical APSK physical layer implementation that supports
+   packet-level, bit-level, and symbol-level simulations with widely configurable
+   bit-domain and symbol-domain parameters.
+ - Consistently moved packet level and bit level implementations into separate
+   subdirectories throughout the physical layer.
+ - Added a generic convolutional encoder/decoder, a generic additive
+   scrambler/descrambler, and a 802.11 specific interleaver/deinterleaver.
+ - Added a separate modulations folder that contains descriptor classes for
+   various keying techniques such as BPSK, QPSK, QAM16, QAM64, QAM256, MQAM,
+   DBPSK, DQPSK, MASK, MFSK, MPSK, DSSS-OQPSK-16, etc.
+ - Reimplemented the computation of BER and SER based on the SNIR for the QAM-like
+   modulations according to wikipedia.
+ - Added a special IntervalTree cache for efficiently computing arrival intervals
+   for transmissions. This change drastically increases the physical layer
+   performance for large networks with lots of ongoing transmissions.
+ - Refactored the radio medium model to support the optional representation of
+   PHY frames for the layered physical layer models.
+ - Refactored the medium analog model to simultaneously support the new layered
+   and the already existing flat radio signal models.
+ - Refactored the existing 802.11 statistical error models to use the new
+   operation mode descriptors.
+ - Extracted the BER table based 802.11 statistical error model into a separate
+   class. This change modifies the fingerprint of simulations that use this
+   error model.
+ - Added a new detailed 802.11 error model that computes erroneous packet
+   domain, bit domain or symbol domain signal representations.
+ - Added 802.11 OFDM PHY frame serializer.
+ - Extracted separate CommunicationCache classes from RadioMedium.
+ - Extracted separate CommunicationLog class from RadioMedium.
+ - Extracted a separate MediumLimitCache module from RadioMedium.
+ - Extracted a separate MediumVisualizer module from RadioMedium.
+ - Added optional recent communication heat map to MediumVisualizer.
+ - Renamed radio control info classes to TransmissionRequest and ReceptionIndication.
+ - Added Ieee80211TransmissionRequest with an optional IIeee80211Mode parameter
+   to allow the mac module to determine the exact physical layer operational mode.
+ - Added CosineAntenna and ParabolicAntenna.
+ - Added basic antenna array support to be used with 802.11 HT modes.
+ - Added arrival parameter to computeReceptionPower. Added snir parameter to
+   computeIsReceptionSuccessful. Added snir parameter to computeReceptionDecision.
+ - Added level parameter to printToStream function to better support logging.
+ - Fixed the indefinite heap growth bug in the RadioMedium.
+
+Tests:
+ - Added separate automated tests for convolutional encoding/decoding,
+   interleaving/deinterleaving, scrambling/descrambling, modulation/demodulation
+   and various combinations.
+
+Examples:
+ - Added a new detailed 802.11 OFDM radio example that supports configurable
+   packet-level, bit-level, and symbol-level simulations for model verification.
+ - Also added a simple hypothetical APSK radio example that supports configurable
+   packet-level, bit-level, and symbol-level simulations for model verification.
+ - Added a work in progress Wireless tutorial in the tutorials/wireless folder.
+
+
+INET-2.99.0 (November 2014) - Development
+-----------------------------------------
+
+This release is a snapshot of the development that has begun in early 2013, and
+will culminate in the release of INET-3.0. The code is work in progress, which
+means all details may still change until 3.0 is reached.
+
+This release requires OMNeT++ 4.6 or later.
+
+The highlights of this release are:
+
+ 1. Network layer refactoring that allows higher layer protocols (including
+    routing protocols) to be written in a network protocol agnostic manner.
+
+ 2. A new physical layer model that builds upon the INET and MiXiM physical
+    layers, and brings them to new heights. Design goals were extreme modularity,
+    extensibility, the ability to support (and easily switch between) various
+    levels of detail, and the ability to add support for exploiting various
+    pieces of parallel hardware.
+
+ 3. Extensive refactoring aimed at improving code quality. It includes
+    directory restructuring, code formatting, refactoring of init stages and
+    publish-subscribe communication, and more.
+
+Read on for further details.
+
+Geometry model:
+
+ - Added new orientation related classes: EulerAngles, Rotation, and Quaternion.
+ - Added new basic 3D geometry classes: LineSegment, Box, Plane, and Polygon.
+ - Added new 3D convex shapes: Cuboid, Sphere, Prism, and Polyhedron.
+ - Added new geometry cache data structures: SpatialGrid, QuadTree, and BVHTree.
+
+Physical environment model:
+
+ - Removed obsolete classes: Obstacle, ObstacleControl, and AnnotationManager.
+ - Implemented a completely new physical environment model as follows.
+ - Added a new global PhysicalEnvironment module that provides some trivial
+   global properties: temperature, space limits, and a list of physical objects.
+ - Added a new PhysicalObject class that has shape, position, orientation,
+   material, and various graphics properties.
+ - Added a new Material class along with some default materials: vacuum, air,
+   copper, aluminium, wood, brick, concrete, and glass.
+ - Added a new IObjectCache interface for efficient physical object queries
+   along a line segment.
+ - Added IObjectCache implementations: GridObjectCache and BVHObjectCache.
+ - Added an XML file format to initialize the physical environment with shapes,
+   materials, and physical objects.
+ - Added support for drawing the physical objects on a compound module canvas
+   (Tkenv) in 2D as seen from a configured view angle.
+ - Added examples that demonstrate the initialization and usage of the physical
+   environment, the physical objects, and the configuration of the object cache.
+
+Power model:
+
+ - Removed obsolete classes: IBattery, BasicBattery, InetSimpleBattery and Energy.
+ - Implemented a completely new power model.
+ - Added new interfaces: IEnergyConsumer, IEnergyStorage, and IEnergyGenerator.
+ - Added implementations: IdealEnergyStorage, and SimpleEnergyStorage.
+ - Added a new power consumer implementation for radios based on the radio mode,
+   the reception state, and the transmission state: StateBasedEnergyConsumer.
+
+Physical layer:
+
+ - Refactored and unified the existing INET and MiXiM physical layer models into
+   a new extended and scalable model as follows.
+ - Designed new interfaces and classes to support optimistic parallel computation
+   of reception results utilizing multicore CPUs and/or GPUs.
+ - Designed new model that supports different level of details with respect to
+   transmitters, receivers, radio signals, antennas, propagation models, etc.
+ - Added new radio signal power representations: scalar and dimensional over
+   time, frequency, space, etc.
+ - Added various performance vs. accuracy tradeoff configuration options (e.g.
+   range filter, radio mode filter, listening mode filter, MAC address filter)
+ - Added concurrent transmitter and receiver radio mode (transceiver mode).
+ - Added separate controllable radio mode and automatic signaling of reception
+   state and transmission state.
+ - Added configurable non-zero time radio mode switching.
+ - Added separate power consumption model based on the radio mode, the reception
+   state and the transmission state.
+ - Added support for burst mode (back to back) transmissions.
+ - Introduced compile time checked physical units in C++ code to avoid conversion
+   errors and to enhance self documentation.
+
+Physical layer radio model:
+
+ - Removed obsolete classes: Radio, IdealRadio, GenericRadio, GenericRadioModel,
+   IRadio, IRadioModel, INoiseGenerator, and some others.
+ - Added new interfaces: IRadio, IAntenna, ITransmitter, IReceiver, and IErrorModel.
+ - Added new implementation classes: Radio, IdealRadio, ScalarRadio,
+   DimensionalRadio, Ieee80211Radio, and Ieee802154UWBIRRadio.
+ - Added a number of implementation base classes and subcomponents unlisted here.
+ - Added and updated error model implementations: FlatErrorModel,
+   Ieee80211NistErrorModel, Ieee80211YansErrorModel
+ - Introduced controllable radio mode: off, sleep, receiver, transmitter,
+   transceiver, and switching.
+ - Introduced automatically signaled reception state: undefined, idle, busy,
+   synchronizing and receiving.
+ - Introduced automatically signaled transmission state: undefined, transmitting.
+ - Added new antenna classes: IsotropicAntenna, ConstantGainAntenna,
+   DipoleAntenna, and InterpolatingAntenna.
+
+Physical layer radio medium model:
+
+ - Removed obsolete classes: ChannelAccess ChannelControl, IdealChannelModel,
+   IdealChannelModelAccess and some others.
+ - Added new interfaces to model the radio medium: IRadioMedium, IPropagation,
+   IBackgroundNoise, IPathLoss, IObstacleLoss, IAttenuation, and INeighborCache.
+ - Added new implementation classes: RadioMedium, IdealRadioMedium,
+   ScalarRadioMedium, DimensionalRadioMedium, Ieee80211RadioMedium, and
+   Ieee802154UWBIRRadioMedium.
+ - Added propagation models: ConstantTimePropagation and ConstantSpeedPropagation.
+ - Added background noise source models: ScalarIsotropicBackgroundNoise and
+   DimensionalIsotropicBackgroundNoise.
+ - Refactored existing path loss models: FreeSpacePathLoss, LogNormalShadowing,
+   TwoRayGroundReflection, NakagamiFading, RayleighFading, RicianFading, and
+   SUIPathLoss.
+ - Added new path loss models: BreakpointPathLoss and UWBIRStochasticPathLoss
+   from MiXiM.
+ - Added a new obstacle loss model: TracingObstacleLoss.
+ - Added INeighborCache implementations: ListNeighborCache, GridNeighborCache,
+   and QuadTreeNeighborCache.
+
+Physical layer communication model:
+
+ - Removed obsolete classes: AirFrame, IdealAirFrame and SnrList.
+ - Added new interfaces: IRadioFrame, ITransmission, IArrival, IReception,
+   INoise, ISNIR, IListening, and IReceptionDecision.
+ - Added new implementation classes: RadioFrame, Arrival, Interference,
+   ScalarSNIR, DimensionalSNIR.
+ - Added a number of implementation base classes unlisted here.
+ - Added range based, narrow band scalar and dimensional signal power
+   representations for transmissions, receptions, and noise.
+
+Link layer:
+
+ - Added a simple MAC protocol for testing purposes: IdealMac.
+ - Ported MAC protocols from MiXiM: CSMA, BMACLayer, and LMacLayer.
+
+Network layer:
+
+ - IPv4/IPv6: dynamic registration of upper layer protocols.
+   TCP, UDP, SCTP, RSVP, OSPF, MANET are all merged into transport gates.
+   Network user modules must register their protocol number by sending
+   an IPRegisterProtocolCommand from initialize().
+   Introduced an IPSocket class that wraps the registration process.
+
+ - Refactoring: routing tables and routes now implement a common IRoutingTable
+   and IRoute C++ interface (details below)
+
+   Motivation: allow uniform access to the IPv4, IPv6 and possibly other routing tables;
+   e.g. some wireless networks may use MAC address as network address. Also, in
+   simulation it sometimes makes sense to work with simple abstract addresses like
+   module names, indices or IDs.
+
+   Being able to uniformly access routing tables containing different types of
+   addresses makes it possible to implement routing protocols in generic way.
+   I.e. the same DYMO module can work with IPv4, IPv6, MAC and other addresses
+   without change and recompiling.
+
+   Ingredients of this patch:
+    - generic L3Address class that can hold all kinds of addresses (=union)
+    - interfaces for generic access: IRoutingTable, IRoute, INetworkDatagram, etc.
+    - Ping refactoring (use generic addressing instead of hardcoded IPv4, IPv6)
+    - merged routing table change notification constants for IPv4 and IPv6
+
+ - NetworkLayer was renamed to IPv4NetworkLayer and moved into src/networklayer/ipv4;
+   same for IPv6 (NetworkLayer6 -> IPv6NetworkLayer).
+
+ - IPvXAddress ha been extended and renamed to L3Address. Similarly,
+   IPvXAddressResolver became L3AddressResolver. In addition to IPv4 and IPv6
+   addresses, L3Address also allows using other kinds of addresses and identifiers
+   (e.g. MACAddress, module IDs, module paths) for network-layer addressing.
+
+ - Added GenericNetworkProtocol, which is a simplified network protocol with
+   table-based forwarding. It uses L3Address, so it is agnostic to the network-layer
+   address type.
+
+ - Added MultiNetworkLayer, which is a wrapper for multiple network layers; in
+   practice it can be used for simulating IPv4/IPv6 dual-stack hosts.
+
+ - Ported network protocols from MiXiM: Flood, ProbabilisticBroadcast, and WiseRoute.
+
+C++ source cleanup:
+
+ - Changed include directives to specify the full path of the header file. This
+   resolves ambiguities caused by different projects having similar header files,
+   and by case-insensitive file systems (Windows).
+
+ - Changed header guards to use a uniform syntax.
+
+ - Applied code formatting (whitespace, braces, etc.) Formatter script (based on
+   uncrustify) is under _scripts/reformat, for future formatting needs.
+
+ - Introduced C++ namespaces: inet, inet::utils, inet::ospf, inet::bgp, inet::sctp, etc.
+
+ - Init stages have been refactored: initialization is now done bottom-up,
+   by layers, and hardcoded init stage numbers have been replaced by symbolic
+   constants.
+
+ - Removed NotificationBoard and INotifiable: all modules now use OMNeT++ signals
+   for publish/subscribe communication.
+
+ - Improved logging: log messages have been classified by importance, and logging
+   to EV has been replaced by EV_ERROR, EV_WARN, EV (for EV_INFO), EV_DETAIL,
+   EV_DEBUG and EV_TRACE accordingly. Proper support for these log categories
+   will be available from OMNeT++ 5.0, for 4.x they are simply mapped to EV.
+
+ - Several modules have been adapted to the coding conventions, e.g. the RTP models.
+
+Directory reorganization:
+
+ - Moved src/ under src/inet/ to avoid header conflicts with 3rd party software.
+
+ - base/ and util/ have been consolidated into common/ and its several subdirectories
+   (e.g. common/misc/, common/geometry/, common/queue/, common/lifecycle/)
+
+ - queue/ has become common/queue/.
+
+ - Routing protocols have been moved into the new routing/ toplevel directory
+   from networklayer/routing/, networklayer/bgpv4 and networklayer/ospfv2/.
+
+ - Protocols in networklayer/manetrouting/ have been moved into routing/extras/.
+
+ - transport/ has been renamed to transportlayer/.
+
+ - battery/ has been replaced by power/, intended to hold models for power management
+   related components.
+
+ - The physicallayer/ toplevel directory has been created to hold the new physical
+   layer model.
+
+ - The environment/ toplevel directory has been created for models that represent
+   the global physical environment.
+
+ - world/ no longer exists, its contents has been distributed to other directories.
+
+ - status/ lives on as common/lifecycle/.
+
+ - networklayer/autorouting/ has become networklayer/configurator/.
+
+ - applications/httptools/ has been split up to several subdirectories: browser/,
+   server/, configurator/, common/.
+
+
+INET 2.6 (March 05, 2015) - Stable
+----------------------------------
+
+This release requires OMNeT++ 4.4 or later. It contains the following changes:
+
+   - made compatible with OMNeT++ 5.0b1
+   - added OLIA for CMT-SCTP (by Martin Becke)
+   - added a trace player feature to NetPerfMeter
+   - fixed compile errors when using OMNeT++ 5.0b1
+   - fixed an issue with too small initial value of 'ssthreshold' in TCP
+   - fixed window scaling in TCP
+   - added INET_VERSION macro (in hexadecimal form e.g.: 0x0206)
+
+
+INET 2.5.1 (November 7, 2014)
+-----------------------------
+
+This release requires OMNeT++ 4.4.
+
+Changes:
+
+   - fixed a crash in SCTP
+   - now builds with all features turned off
+
+
+INET 2.5.0 (October 29, 2014)
+-----------------------------
+
+This release requires OMNeT++ 4.4.
+
+Changes:
+
+   - made the codebase compile in C++11 mode. (required by OMNeT++ 4.6)
+   - added netperfmeter application by Thomas Dreibholz
+
+
+INET-2.4.0 (June 12, 2014)
+--------------------------
+
+New AODV protocol implementation:
+
+   - From-scratch AODV implementation backported from the integration
+     branch; see src/network/routing/
+
+Changes:
+
+   - Added support for link break detection in IdealWireless
+     (using the NF_LINK_BREAK signal)
+   - VoIPStream updated to match the latest version of ffmpeg library.
+   - Added packet printers that can dump packet data in OMNeT++ 4.5/Tkenv
+     in the packet trace window.
+   - Fixed non-conformant 802.11 WAITACK timeout computation
+
+
+INET-2.3.0 (March 17, 2014)
+---------------------------
+
+This release contains several new protocols, and a lot of changes that were
+backported from the current integration branch (destined to be INET 3.0).
+This release requires OMNeT++ 4.3.
+
+Application startTime/stopTime fixes:
+
+   - apps start sending at startTime, and send their last packet
+     before stopTime
+   - negative stopTime means sending forever
+   - if startTime and stopTime are the same, the app sends a single
+     packet only (except TCP apps)
+
+DHCPServer and Client:
+
+   - The whole implementation has been reviewed to bring it closer to
+     the standards defined in RFC 2131 and 2132.
+
+   - Major changes were made both in client's and server's state machines.
+     It is now extended with new states (INIT-REBOOT, REBOOTING) and
+     with new message types (DHCPNAK, DHCPDECLINE). The new states allow
+     the user to model scenarios with lifecycle events.
+
+   - The server's performance model has been removed.
+
+   - The internal representation of the DHCP options were moved to the
+     DHCPOptions INET message definition file.
+
+   - Limitation: The client module currently does not support multiple
+     DHCP servers and BOOTP relay agents.
+
+SCTP improvements submitted by Irene Rungeler and Thomas Dreibholz:
+
+   - added CMT support (Concurrent Multipath Transfer)
+   - added SCTP NAT support
+   - added support for using SCTP over IPv6
+
+STP / RSTP support (802.1d) added to the EthernetSwitch:
+
+   - STP: added IEEE 802.1D-1998 implementation of Spanning Tree Protocol.
+     The source code is based on the ANSA (https://github.com/kvetak/ANSA)
+     implementation.
+
+   - RSTP: added IEEE 802.1D-2004 implementation of Spanning Tree Protocol.
+     The source code is based on Juan Luis Garrote Molinero's implementation
+     from INETMANET.
+
+   - Interfaces can be configured using the new L2NetworkConfigurator module.
+     This module allows one to configure network scenarios at Layer 2.
+
+   - Replaced the EtherSwitch relay unit with a new, STP/RSTP capable one.
+     The CPU and memory modelling are no longer supported in this relay unit.
+
+Nodes automatically pick-up the network configuration on restart:
+
+   - An IPv4NodeConfigurator module has been added to hosts, which is responsible
+     for configuring the host on restart based on information stored in the
+     IPv4NetworkConfigurator module.
+
+INetFilter::IHook API:
+
+   Modules can now hook into the IP module with the new 'NetFilter' API.
+   Routing protocols can be implemented now without modifying the IP
+   module's code. ManetRoutingBase, InternetCloud and ARP have been updated
+   to use the new 'NetFilter' API.
+
+Added new routing protocols:
+
+   - RIP (networklayer/routing/rip)
+   - GPSR (networklayer/routing/gpsr)
+   - DYMO (networklayer/routing/dymo)
+   These protocols use INetFilter::IHook, too.
+
+Revised Mobility code:
+
+   Split the 'models' directory into multiple directories:
+   - contract - specifies the interface of mobility models
+   - common - shared files among mobility models that are not complete
+     mobility models
+   - static - mobility models that actually don't move
+   - single - mobility models controlling only one moving object
+   - group - mobility models controlling multiple interlinked moving objects
+
+Radio:
+
+    Added the Stanford University Interim radio propagation model contributed
+    by Konrad Polys and Krzysztof Grochla.
+
+Other, smaller changes:
+
+  - Added ILifecycle support to most applications
+  - Renamed AppBase to ApplicationBase and moved to 'common'.
+  - UDP: added option to specify the source address of the sent datagram
+  - UDPBasicBurst: added bool parameter: excludeLocalDestAddresses
+  - UDPVideoStreamCli: use stages in initialize
+  - UDPApp*: Added AppBase and subclassed UDP apps from it.
+    Binds sockets at startTime and closes them at stopTime.
+  - EtherApp* bugfixes
+  - Added a command to set TCP queue length threshold. TCP will notify the
+    application if it is ready to transmit more bytes.
+  - registerSignal() calls were moved from initialize() to static
+    variable declarations.
+  - Added/fixed @signal declarations, fixed the type of emitted values.
+  - httptools: removed the fileExists() function.
+  - New logging mechanism + EV handling in preparation for the new OMNeT++ 5.0
+    logging mechanism.
+  - IPv4Route/IPv6Route: added administrative distance field
+  - Added IPv6 header serializer (so ext interfaces can be used with IPv6, too)
+  - Invalid access of message pointers fixed in: OSPF, SCTP, DHCP, PingApp
+
+  - Battery: code review, small fixes.
+  - Revised init stages in all modules
+  - Many smaller fixes and improvements (see the ChangeLog files for further detail.)
+
+
+INET-2.2.0 (August 22, 2013)
+----------------------------
+
+The main highlight of this release is the long-sought support for
+simulating node shutdown/restart events for network nodes.
+This release requires OMNeT++ 4.2 or later.
+
+New features:
+
+1. Lifecycle infrastructure.
+
+   For node shutdown/crash/startup/etc, a LifecycleOperation (e.g.
+   NodeShutdownOperation) is applied to the submodule tree of the  node
+   (host or router) by LifecycleController. Each module can decide how
+   to handle the operation and how to store the resulting state (up/down,etc).
+   Operations can be multi-stage, and don't need to complete immediately
+   (i.e. they can take nonzero simulation time and multiple events to complete).
+
+   Network nodes now also have a status submodule (type NodeStatus) with the sole
+   purpose of storing the whole node's status (up/down) and displaying it
+   via icons.
+
+    - classes: ILifecycle, LifecycleOperation (NodeOperation, InterfaceOperation),
+      LifecycleController, NodeStatus
+    - NodeStatus module to store the network node's status (up or down)
+    - added optional NodeStatus submodule to NodeBase
+    - added a test for the basic Lifecycle infrastructure
+
+   We also removed obsolete ways of shutdown/restart: FailureManager, PowerControl,
+   LDP_FAILED/RSVP_FAILED, etc.
+
+2. Static IP4 configuration:
+
+   A new module, IPv4NodeConfigurator was added to IPv4NetworkLayer. This module
+   is necessary because IPv4NetworkConfigurator cannot configure the node after
+   a restart (see newly introduced node lifecycle operations above), since
+   being a global module, it doesn't know about node lifecycle events. The new
+   module listens to node lifecycle events, and configures the node's routing
+   table and interfaces according to configuration computed by the network's
+   global IPv4NetworkConfigurator module. Initialization-time node configuration
+   is also carried out by the new module.
+
+3. Added TCP Vegas and Westwood algorithms.
+
+   The implementation is a slightly improved version of a 2013 workshop submission:
+   "INET framework extensions for TCP Vegas and TCP Westwood", Maria Fernandez,
+   Carlos Calafate, Juan-Carlos Cano and Pietro Manzoni. OMNeT++ Workshop, 2013.
+   http://www.omnet-workshop.org/2013/uploads/slides/OMNeT-Workshop2013-SP-4.pdf
+
+4. Added IdealWirelessNic (IdealRadio + IdealWirelessMac) and IdealWirelessFrame msg.
+
+   This is a highly abstracted wireless NIC that consists of a unit disk radio
+   and a trivial MAC protocol. It offers simplicity for scenarios where Layer 1
+   and Layer 2 effects can be completely ignored, for example testing the basic
+   functionality of a wireless ad-hoc routing protocol.
+
+   The most important parameter this model accepts is the transmission range.
+   When a radio transmits a frame, all other radios within transmission range
+   will receive the frame correctly, and radios out of range will not be
+   affected at all. There are no collisions -- a radio can simultaneously
+   receive any number of frames, and also transmit a single frame at the same time.
+
+5. STCP received several new features (patches submitted by Irene Ruengeler):
+   - 8 new strategies for SCTP stream scheduling
+   - SCTP Stream Reset (RFC 6525)
+   - SCTP Authentication (RFC 4895)
+   - Add-IP feature for SCTP (RFC 5061)
+   - NR_SACK feature to SCTP
+   - Partial Reliability SCTP (RFC 3758)
+   - SCTP packet drop feature  (draft-stewart-sctp-pktdrprep-15.txt)
+   - SCTP "sack immediately" feature (draft-ietf-tsvwg-sctp-sack-immediately)
+   - several alternatives to send fast retransmissions on SCTP
+
+6. Loopback interface added
+
+   Loopback used to be a special case inside the IPv4/IPv6 modules, now it
+   is handled completely like any other interface, with a separate Loopback
+   module.
+
+7. EtherSwitch, AccessPoint:
+
+   Bare EtherMAC modules have been replaced with EthernetInterface, so that
+   external queues can be used (useful for e.g. QoS).
+
+8. InterfaceTable, NIC, NetworkLayer:
+
+   Revert to earlier behavior of determining networkLayerGateIndex.
+   Now the module connected to a NIC *must* have gate vectors called ifIn and ifOut.
+   If it doesn't, the code decides that the NIC is *not* directly connected to
+   a network layer, and leaves networkLayerGateIndex unfilled.
+
+Other, smaller changes:
+
+  - MANET protocols have been synchronized with the INETMANET project
+  - NodeBase: added optional battery (off by default)
+  - UDP: implemented ReuseAddress option (it's like SO_REUSEADDR socket
+    option in Linux). If ReuseAddress is set to true on two sockets,
+    then they can bind to the same local address/port.
+  - PingApp and other apps: for the stopTime parameter, 'none' is now represented
+    by -1, not 0. As this is the default setting, likely very few simulations
+    (ini files) are affected.
+  - IPv4NetworkConfigurator: added @groups to <interface> (ie. multicast groups
+    can now be also specified in the <interface> element, not only in a separate
+    <multicast-group> element)
+  - in many simulation examples, .irt files were replaced by IPv4NetworkConfigurator XML.
+  - EtherMACFullDuplex: wait IFG *after* frames, not before.
+  - Ieee80211Mac: added signals declarations and statistics in the NED file
+  - EthernetInterface: the encap submodule was made replaceable ("like IEtherEncap")
+  - NED: Added InterfaceTable unconditionally to bridge devices, as it is currently
+    required by IPv4NetworkConfigurator. Also added NotificationBoard required by
+    InterfaceTable.
+  - IPv4NetworkConfigurator: Changed to support mixed wired and wireless LANs
+    for autoconfiguration.
+  - Fixed IPv4NetworkConfigurator bug sometimes not being able to assign addresses.
+    Changed to assign most constrained addresses first.
+  - RTPHost was moved from src/transport to src/nodes/, and changed to be based
+    on StandardHost
+  - TurtleMobility: Fixed getting the position from a mobility signal listener
+    during initialization. The script was resumed before initialize() finished,
+    resulting in incorrect positioning.
+  - StaticGridMobility: Added new parameters to specify the number of rows/columns
+    and the horizontal/verical separation between the nodes. Note that the way
+    the node positions are calculated has changed. You may need to update your
+    INI files (see the NED file for more info.)
+  - Many smaller fixes and improvements
+
+
+INET-2.1.0 (Jan 31, 2013)
+-------------------------
+
+NEW:
+
+  - Added a new module to model an "internet cloud". The component can
+    be configured to model packet delay, datarate and drop probability
+    between each input-output interface pair. The parameter matrix
+    is provided as an XML configuration file. See the README file
+    in src/nodes/internetcloud for further details.
+  - New SimpleVoIPReceiver/Sender applications that gather MOS (Mean
+    Opinion Score) for measuring voice quality.
+  - Added HNA support to the Batman protocol (MANET)
+
+CHANGED:
+
+Applications:
+  - PingApp: Shows the configured destination address at the end of the
+    simulation.
+  - TCPBasicClientApp: bugfix #611: simulation generated an ASSERT if
+    numRequestsPerSession parameter value larger than 1.
+  - TcpApp: socket state is now shown on the GUI (in Echo, Sink and Session apps.)
+  - VoipTool: was renamed to VoIPStream (The actual module names are
+    VoIPStreamSender/Receiver.)
+
+Ethernet:
+  - Transmission channel's 'disabled' parameter is now correctly handled in
+    EtherMacBase.
+
+Ieee80211Mac:
+  - Better parameter processing in MAC: error is thrown if an undefined value
+    is specified for the opmode or autoBitrate parameters.
+  - Added the Ieee80211Descriptor class to assign modulation speed
+    and type for the different opModes.
+  - Bugfix: Default bitrate for opMode 'p' was incorrectly set.
+
+BGP:
+  - Minor optimizations
+  - Bugfix: The text in specification "sets the ConnectRetryTimer to zero" means:
+    restart this timer. The _connectRetryTime member now stores the timeout value.
+
+Manetrouting:
+  - updated documentation
+  - replaced Uint128 with ManetNetworkAddress
+  - removed:
+      - unused ManetTimer and BatmanTimer class
+      - unused static variables
+      - isIpLocalAddress(), uses isLocalAddress()
+      - convertAddressToString()
+      - getXPos(), getYPos() functions, you should use getPosition()
+        instead.
+  - redesigned coordinate and speed storage and access.
+    replaced double x,y with a Coord.  getDirection() now returns the
+    speed vector (as a Coord)
+  - getters returns UNSPECIFIED_ADDRESS if addrType==UNDEFINED
+  - merged sendToIp() code into a common base function sendToIpOnIface()
+
+AODV:
+  - AODV's hand-written descriptors were replaced with generated ones
+    [with A.Varga]
+  - aodv_msg_struct.h: added getter methods expected by the generated
+    descriptors removed hand-written aodv_msg_struct_descriptor.cc
+
+Batman:
+  - Updated and expanded documentation
+  - Updated the code to match the latest available "batmand" version.
+  - Numerous optimizations
+  - Fixed several memory leaks
+  - Fixed routing table corruption and possible crash when multiple
+    radios were used in a single host
+  - Fixed decapsulation of incoming packets. Now it checks for the
+    type of decapsulated packet.
+  - Fix for a problem when aggregated batman packets were
+    dropped erronously.
+  - Added HNA support. Nodes can advertise external networks,
+    so traffic towards those networks can be routed correctly.
+    Use the announcedNetworks parameter to specify multiple connected
+    external networks.
+  - Added SourceModifier script to help the conversion from the original
+    batmand code.
+    - fixes spaces, tabs and empty lines
+    - replaces some c-style structs to c++-style classes
+    - replaces some batmand specified list manipulators with c++ code
+    - replaces malloc/free with new/delete
+    - removes prof_start()/prof_stop() calls
+
+Examples:
+  - Added a new simulation with wired and wireless hosts exchanging UDP
+    data via an AccessPoint. It shows how to use the IPv4NetworkConfigurator
+    to mix wired and wireless networks.
+  - Fixes for BGP examples.
+  - New example to demonstrate HNA support in Batman.
+  - Hostautoconf examample moved to the adhoc folder.
+
+Other changes:
+  - Uint128 class was removed. Use ManetNetworkAddress class instead.
+  - Visual changes in StandardHost/NodeBase: utility module icons are
+    now smaller and wlan[]/PingApp[] modules are displayed in a row.
+  - NodeBase: it is possible to use mobility module even if numRadios = 0
+  - Added check for detecting too small netmask parameter value in
+    HostAutoConfigurator
+  - PacketDump: TCP header option fix (dumped only in verbose mode.)
+  - Bugfix #620. The module pointer returned by a ModuleAccess class is
+    now cached only if get() was used. For get(module) no caching is done.
+  - MACAddress: made the constructor explicit so we will not see
+    unexpected implicit conversions in future
+  - IPv6Address: removed Uint128 related functions and added an
+    additional constructMask() method
+  - headerserializers: compile fix for Visual C++ 10.0 and later
+  - Pcap now records on ALL interfaces by default (including external IFs).
+    Added Enter_Method for better error reporting if a packet cannot be
+    serialized. Also added an icon for PcapRecorder.
+  - Several TCP related fixes.
+
+
+INET-2.0.0 (August 7, 2012)
+---------------------------
+
+If you are upgrading from an earlier INET version (i.e. INET 20111118),
+expect to have to revise your existing omnetpp.ini files and possibly
+NED/C++ files as well.
+
+Changes since 1.99.5:
+
+The DHCP protocol received several fixes. It is now possible to use DHCP
+with both wired and wireless interfaces.
+
+MANET routing protocols updated from INETMANET-2.0 @ 9a3dc7a
+OLSR protocol received several patches allowing it to work with multiple
+radios. It can work now on both wired and wireless interfaces.
+
+Ieee80211:
+  - bugfix: The latest version of INET (1.99.5) contained a bug where
+    speed values for 11MBps and 12MBps were swapped.
+  - A new "bitrate" parameter was added to the Ieee80211Nic module.
+    The Radio and MAC module uses this bitrate to set thir own bitrate
+    value. Its default value is 11Mbps for 802.11b, 27Mbps for 802.11p
+    and 54Mbps for 802.11g and  802.11a. (i.e. the default bitrate depends
+    on the opMode parameter) This can avoid potential configuration
+    inconsitencies. UPDATE all your INI files accordingly.
+
+The Ethernet module now throws an error message if two ethernet ports are
+connected using an IdealChannel. Previously it just silently ignored the
+connection that was definitely against the "least surprise" principle.
+
+A new "Delayer" module has been added and DropsGenerator and DuplicatesGenerator
+has been renamed to OrdinalBasedDropper and OrdinalBasedDuplicator respectively.
+These modules implement the IHook module interface and can be installed inside
+hosts to induce different packet errors. IHook modules can be inserted
+between the network and link layer protocols.
+
+The Ext-interface, TraCI, Mobility and Ping modules received some minor fixes.
+See ChangeLogs in individual source folders for more information.
+
+
+INET-1.99.5 (June 22, 2012)
+---------------------------
+
+This is the final testing version of the 1.99.x series leading to the 2.0
+release. Requires OMNeT++ 4.2 (version 4.2.2 suggested).
+
+Several OSPF fixes and changes in configuration (see the ChangeLog file
+in the OSPF folder for details):
+  - improved error detection in xml config files
+  - replaced the ospfConfigFile string-type ned parameter with ospfConfig parameter (xml type)
+  - uses IPvXAddressResolver for reading IP address and IP netmask values from xml
+  - uses @name instead @id to identify the routers in the xml config
+  - most attributes in xml config became optional, and default values
+      come from ned the parameters of OSPFRouting (with same name)
+  - modified xml schema: converted most subnodes to attributes
+  - Added etc/OSPFold_to_OSPFnew.xsl for converting the old xml format to new, and
+      converted all the ospf config files to the new format in the examples folder
+      (after using the converter you must convert router@id to router@name by hand).
+  - added @toward attribute to XML for easier interface specification
+      old: interfaces were specified by their name (e.g. ifName="eth0").
+      new: interfaces can be specified either by their name (e.g. ifName="eth0"),
+      or by the name of a module the interface is connected to (e.g. toward="Area3.N9")
+  - fixed OSPF.xsd schema
+
+Queueing components:
+  The networklayer/queue folder has moved to linklayer/queue folder as
+  queues are mostly used in linklayer. This is a new framework that can be
+  used to create more complex systems.
+  Old queuing components has been removed:
+   - DropTailQosQueue, REDQueue, WeightedFairQueue
+   - IQoSClassifier (moved to linklayer/ieee80211/mac)
+   - BasicDSCPClassifier
+  Some of them can be substituted by compound modules composed of these newly
+  added components:
+   - FIFOQueue
+   - REDDropper
+   - ThresholdDropper
+   - PriorityScheduler
+   - WRRScheduler
+  For example REDQueue is a combination of a REDDropper and a FIFOQueue,
+  and DropTailQosQueue is a combination of some classifier, DropTailQueues,
+  and a PriorityScheduler. Read the INET Manual (in doc folder) for more
+  information about the usage of these modules.
+
+Brand new Differentiated Services component (using the Queueing framework)
+that is implementing the following standards:
+  - RFC 2474: Definition of the Differentiated Services Field (DS Field) in
+    the IPv4 and IPv6 Headers
+  - RFC 2475: An Architecture for Differentiated Services
+  - RFC 2597: Assured Forwarding PHB Group
+  - RFC 2697: A Single Rate Three Color Marker
+  - RFC 2698: A Two Rate Three Color Marker
+  - RFC 3246: An Expedited Forwarding PHB (Per-Hop Behavior)
+  - RFC 3290: An Informal Management Model for Diffserv Routers
+
+
+New send method on UDPSocket now allows to specify on which interface
+the packets should be sent out.
+
+Added DHCP protocol implementation by Juan Carlos Maureira
+taken over from INETMANET-2.0 @ 7fb431b. It can be deployed just
+like any other UDP apps.
+
+MANET routing protocols updated from INETMANET-2.0 @ 7fb431b
+The whole manetrouting directory was taken over.
+
+Mobility: Added two new mobility models:
+  - TraCI + TraCIScenarioManager to connect with an external server
+  - LinearNodeDistribution - static hosts in a single line in
+    ANY direction
+
+IPv4Route: removed the "type" attribute from the routing entries
+
+VoIPTool: Now compiles with the latest version of ffmpeg libs
+
+IGMPv2: external routers attached to the IGMP module are now
+responsible for implementing the IGMP router logic (emitting queries
+and processing group membership reports). In this case the IGMP
+module passes all incoming IGMP messages to the external router.
+
+Updated 802.11 model from INETMANET-2.0 @ 7fb431b (minor bugfixes)
+All files are synced. The following features were omitted:
+MULTIQUEUES, HWMP and MESH networking related code.
+The default wireless NIC is now using the latest 802.11 code from
+INETMANET. The Ieee80211NewNic was renamed to Ieee80211Nic. With
+the new NIC it is now possible set the operating mode (a,b,g,p)
+The original Ieee80211 implementation was removed to avoid confusion.
+
+The ancient 802.11 implementation from the mobility framework was removed
+(i.e. the mf80211 directory).
+
+Added HostAutoConfigurator module (should be added inside a host)
+This configurator is deprecated and should be used ONLY if the hosts are
+dynamically created/deleted during the simulation. Otherwise please use the
+new IPv4NetworkConfigurator.
+
+IPv4NetworkConfigurator: Examples have been updated to use this configurator.
+XML configuration format changes:
+  - added @among attribute for interface and multicast-group entries:
+    "among='X Y Z'"   means   "hosts='X Y Z' towards='X Y Z'"
+  - added @metric attribute for interface entry in XML
+  - added @id attribute for wireless entry
+  - several smaller bugfixes and documentation changes (see ChangeLog
+    in the directory)
+
+IPv4 fix: subnet directed broadcast (e.g. 192.168.1.255) works now:
+When the datagram reaches the router of the subnet, it should
+be forwarded as a link layer broadcast.
+
+Changes in link layer
+  - added INic moduleinterface, all other network interfaces should
+    implement this
+  - renamed the netwIn, netwOut gates to upperLayerIn, upperLayerOut
+
+Small fixes in MACAddress, PPP, IPv4NetworkConfigurator, VoIPTool,
+Mobility, BatteryModule
+
+
+INET-1.99.4 (March 20, 2012)
+----------------------------
+
+This version contains mainly bugfixes, plus some features that did not make
+into the previous release. Requires OMNeT++ 4.2 (version 4.2.1 suggested).
+
+- Added IPv4NetworkConfigurator, a new network configurator for IPv4
+
+  This is intended to replace both routing files (.irt/.mrt) and
+  specialized network configurators like FlatNetworkConfigurator,
+  and do much more.
+
+  Covers address assignment (manual, automatic), adding manual routes,
+  setting up static routing, optimizing the routing tables, etc.
+  Unlike FlatNetworkConfigurator, it will generate per-interface
+  addresses. Wireless networks are also supported.
+
+- Added an IGMPv2 implementation, based on code contributed by Jesse Jones
+
+Changes in IPv4 multicast routing:
+- We now use reverse path forwarding (routing entry contains
+  source address/mask, multicast group, parent (incoming) interface
+  and the set of child (outgoing) interfaces).
+- The new routing table enables to specify a separate multicast
+  routing tree per source network and multicast group. (Old
+  implementation used a common tree for each source.) The multicast
+  routing tree is represented by IPv4MulticastRoute entries.
+- IRoutingTable has been extended with methods manipulating the
+  multicast routing entries. Notifications are generated, when
+  the multicast routing table changes.
+- IPv4 multicast routing algorithm uses the multicast routes
+  for forwarding decisions.
+- When HL does not specify the multicast interface for outgoing
+  datagrams, then it is selected according to the routing table
+  or the source address of the datagram.
+
+Change from previous behavior:
+- packets sent to a multicast address from higher layer: it used
+  to go out on each interface that had a matching route in the
+  routing table (unless mcast interface was specified by HL).
+  Now it only goes out on the first match route's interface;
+  if there's no match it goes out on the 1st multicast interface
+  (unless mcast interface was specified by HL). If you want to
+  send on multiple interfaces, you have to send multiple packets
+  from the higher layer.
+
+- multicast forwarding: no longer takes into account the routes
+  in the unticast routing table that have mcast destinations.
+  Only the (new format) multicast table is used. This new
+  multicast routing table can only be configured with
+  IPv4NetworkConfigurator, routing files don't support it.
+- mobility: fixed infinite loop when nextChange is set to current
+  simulation time
+
+- base: Added createNode(), createLink() factory methods to Topology class.
+
+- Enhancements in IPvXAddressResolver. The new resolver allows you
+  to specify an interface based on which module the interface is
+  connected to.
+
+- Added a RoutingTableRecorder module that records all the changes
+  in the routing table to a file.
+
+- OSPF & BGP fix:
+    - gateway is now correcty set on routing table entries.
+    - eliminated redundant nextHop field from routing table entries
+
+- Fixed routing table change notifications.
+
+- Added printMulticastRoutingTable() to IRoutingTable
+
+- Added IPingApp interface and support for more than one PingApp
+  in a host.
+
+- Changes in the UDP socket API:
+
+  The first call on an UDP socket do not need to be bind() or connect()
+  anymore. It is possible to create a socket and sending data immediately
+  by calling sendTo(). It is also possible to set socket options before
+  calling connect() or bind(). connect() can be called several times.
+  However the bind() call fails if the socket is already bound.
+
+- LDP: The LDP module now creates a separate UDP socket for each
+  multicast interface of the node, sets the multicast interface
+  on them, and sends a copy of LDP-Hellos via each socket.
+
+- ICMP messages are correctly handled now in all TCP implementations
+  (in LwIP and NSC, too)
+
+See ChangeLogs in individual source folders for more information.
+
+
+INET-1.99.3 (Feb 22, 2012)
+--------------------------
+
+With this release, we have started a review of all basic protocol modules in
+the INET Framework, fixing bugs, refactoring for clarity and maintainability,
+and implementing commonly needed missing features. A testing framework is also
+falling into place. We have added ChangeLog files in each source directory
+to make it easier to follow things for end users and contributors alike, and
+we'll also be requiring ChangeLog entries from contributors who submit code
+patches. ChangeLogs also include a brief history of the corresponding
+components from the start; if you have fixes or amendments, please contact us.
+This version of INET requires OMNeT++ 4.2 (version 4.2.1 suggested).
+
+- Ethernet model improvements: EtherMAC refactored for better readability;
+  added reconnect support, better PAUSE support, support for 40 Gigabit and
+  100 Gigabit Ethernet; several bugfixes; regression and validation tests
+
+- added predefined Ethernet link types: Eth10M, Eth100M, Eth1G, Eth10G,
+  Eth40G, Eth100G
+
+- IPv4 model improvements: better fragmentation and multicast support; IPv4
+  module refactored for readability and maintainability; several bugfixes
+
+- IPv4 routing table improvements: notification for routing entry changes
+  (routing entry objects no longer need to be immutable); lookup performance
+  optimization (routes are kept in decreasing prefix length order to speed up
+  longest prefix match); cleanup and bugfixes
+
+- IPv6 improvements: implemented Default Router Selection as specified in
+  RFC 4861 6.3.6 (round-robin); tunneling is now available without xMIPv6;
+  implemented datagram fragmentation/reassembly; IPv6 now works over PPP;
+  several other bug fixes
+
+- UDP: better multicast support and DSCP support (apps can specify ToS [IPv4] /
+  Traffic Class [IPv6] byte); bug fixes
+
+- PPPInterface, EthernetInterface: use queueType="" instead of queueType=
+  "NoQueue" to turn off external queue module and use internal queue.
+
+- Ieee80211, MANET routing: updated to latest INETMANET release:
+  radio: added support for noise generators and configurable error models;
+  802.11: Airtime Link Metric support; duplicate frame detection / filtering;
+  support for prioritizing of multicast frames
+
+- added WeightedFairQueue from INETMANET
+
+- removed Ieee802.11 Mesh feature. It depended on too many upper layer
+  protocols and features.
+
+- statistics (@statistic properties) cleaned up in all modules: standardized
+  on lower case statistics titles; record packet counts in a less confusing
+  way (NOT as rcvdPkBytes:count); cleaned up recorder lists
+
+- miscellaneous: timer usage optimized in DYMO_FAU; revised PingApp, e.g.
+  printPing is now turned off by default; numerous bug fixes and improvements
+
+- added a test suite (tests/); it contains fingerprint tests (for regression
+  testing); smoke tests (crude regression tests); statistical tests (for
+  validation); unit tests (of classes/modules); and other tests. We make most
+  use of fingerprint tests, so they are probably in the best state.
+
+See ChangeLogs in individual source folders for more information.
+
+
+INET-1.99.2 (Nov 18, 2011)
+--------------------------
+
+Requires OMNeT++ 4.2 (final).
+
+- Integrated Kristjan Jonsson's HttpTools project,
+  http://code.google.com/p/omnet-httptools/
+
+- The mobility models have been revised and brought in sync with their
+  MiXiM versions; added 3D coordinate system from MiXim; added MoBAN mobility
+  model from MiXiM.
+
+- UDP: multicast, broadcast and ttl support; bugfixes; heavy API changes.
+  It is now possible to receive broadcasts and multicasts. Implemented support
+  for the following socket options: time-to-live (unicast and multicast),
+  broadcast, multicast output interface, join multicast group, leave multicast
+  group. Connect without bind is now supported (used to be an error).
+  The cost of the above is changes in the way you talk to the UDP module:
+  UDPControlInfo has been split to several classes (UDPBindCommand, UDPConnect-
+  Command, UDPSendCommand, etc.), and the UDPSocket class has been redesigned.
+  Check transport/udp/ChangeLog for detailed information.
+
+- Apps: some standardization of parameter names, so that various modules don't
+  call the same thing differently. Introduced the following names:
+  'startTime', 'stopTime', 'sendInterval', 'localAddress', 'localPort'.
+  E.g. the following parameters became 'sendInterval': 'messageFreq',
+  'waitTime', 'packetInterval', 'interval', and 'waitInterval'.
+
+- Added a 'stopTime' parameter to several apps: TelnetApp, UDPBasicApp,
+  TCPBasicClientApp, IPvXTrafGen, EtherAppCli
+
+- UDPBasicBurst revised
+
+- Removed Blackboard (it was obsolete and out of use)
+
+- Numerous bugfixes.
+
+
+INET-1.99.1 (May 27, 2011)
+--------------------------
+
+This is a beta of a major feature release, with new models and a lot of
+incompatible changes. It requires at least OMNeT++ 4.2b2.
+If you are upgrading from an earlier INET version, expect to have
+to revise your existing simulations.
+
+- INET can now be compiled with various parts turned off. This is based on
+  the new OMNeT++ Project Features facility, avaiable from 4.2b2, see
+  http://www.omnet-workshop.org/2011/uploads/slides/OMNeT_WS2011_S3_P1_Varga.pdf
+  slides 9-13. INET project features are defined in the .oppfeatures file;
+  features can be turned on/off in Project -> Project Features... in the IDE.
+  Not all features will compile on Windows: the ones that need to be turned off
+  on Windows are TCP_NSC, TCP_lwIP, VoIPTool, MANET Routing, Mesh Networking.
+
+- Integrated the following external packages: VoIPTool, xMIPv6.
+
+- Several components were taken over from INETMANET: MANET routing, combined
+  802.11a/b/g/e model, 802.11 mesh networking, obstacle model, several
+  mobility models, battery model, globalARP feature. Multiple radio support
+  has also been added to INET, loosely based on the INETMANET solution.
+
+- NED-level cleanup of several compound modules: hosts, routers, NICs, APs,
+  switches, etc. There were a lot of very similar modules that differred in the
+  presence or type of one or more submodules, resulting in code duplication
+  and confusion in general. Many variants have been eliminated, and the
+  differences have been mapped to parameters, parametric or conditional
+  submodules.
+
+- ChannelController now deals only with radios and not hosts. This makes it
+  possible to have hosts with several radio interfaces. The radios are
+  registered/unregistered in the ChannelAccess module (previously host
+  registration was done by the mobility modules). ChannelControl/ChannelAccess
+  are now completely independent of the mobility modules. This means that if
+  there is no mobility module present in a host, the host's displaystring
+  will be used to set the static positions of the radios.
+
+- Ethernet switch was moved under the linklayer/ethernet/switch directory.
+  EtherHostQ is now called EtherHost. To have no queue in the Ethernet host,
+  specify queueType="NoQueue" (which in fact inserts a dummy queue).
+  In EtherSwitch, EtherHost and inside the EthernetInterface the
+  csmacdSupport parameter can be used to switch between the full (EtherMAC)
+  and the simplified (EtherMACFullDuplex) implementation.
+
+- EthernetInterfaceFullDuplex removed. By default EthernetInterface is using
+  EtherMACFullDuplex, a simplified MAC that does not support CSMA/CD and works
+  only with point-to-point links. Use the EthernetInterface with
+  csmacdSupport=true to turn on CSMA/CD support (EtherMAC).
+
+- IPv4-related modules and classes whose names started with "IP" were renamed
+  to start with "IPv4", to be more explicit and more future-proof. IP->IPv4,
+  IPAddress->IPv4Address, IPControlInfo->IPv4ControlInfo, IPRoute->IPv4Route,
+  IPDatagram->IPv4Datagram, etc.
+
+- Renamed routingTableFile to routingTable in RoutingTable6. Added default
+  parameter value. You no longer need to specify **.routingTableFile =
+  xmldoc("empty.xml") and have an empty.xml file in the model directory.
+  OMNeT++ 4.2 supports the xml("<inlinexml/>") syntax; we now use that for
+  the default value.
+
+- New PcapRecorder module (in StandardHost) for recording traffic to a pcap file.
+  It is intended as a replacement for the old TCPDump module.
+
+- StandardHost and Router now have a common base (containing Link~ and
+  NetworkLayer) Wireless~ and AdhocHost is derived from StandardHost. All of
+  them (including Router) support multiple wireless, Ethernet, PPP and
+  external interfaces (i.e. multiple wireless radios are supported using
+  different channels)
+
+- Several modules - especially inside StandardHost - are now conditional
+  (using NED's new "conditional submodule" feature), and will be instantiated
+  only if needed. For example, TCP is only instantiated if there are TCP
+  applications configured for the host.
+
+- Router and StandardHost have optional mobility support. The mobility module
+  is created only if there are wireless cards present in the node (numRadios>0).
+  Of course WirelessHost and AdhocHost have mobility by default. You can configure
+  the mobility type using the "mobilityType" parameter. BasicMobility have
+  been renamed to NullMobility (resulting stationary nodes). There is a dummy
+  mobility type called NoMobility which does not have any C++ implementation.
+  Nodes that do not need mobility support (i.e. no radios) should set their type
+  to NoMobility.
+
+- FailedRouter has been removed (was a trivial node). BurstHost moved to the
+  example directory (it was not generic and was used only by a single example).
+  MobileHost has been removed; use AdhocHost instead as a drop-in replacement.
+
+- Network Interface Cards (Ieee80211Nic, EthernetInterface and PPPInterface)
+  now support input and output hook modules that implement the IHook interface.
+  Hooks are useful for simulating packet drops, duplication or measuring thruput.
+  The number of hook modules can be controlled with the numInputHooks /
+  numOutputHooks parameters, and the hook's type via typename.
+  An example: that installs two hooks in the input path of PPP:
+    **.ppp[*].numInputHooks = 2
+    **.ppp[*].inputHook[0].typename = "DropsGenerator"
+    **.ppp[*].inputHook[1].typename = "ThruputMeter"
+
+- Network interfaces can specify a queueType paramater. Possible values:
+  DropTailQueue, DropTailQoSQueue, REDQueue, NoQueue.
+  To disable queueing, use NoQueue: **.ppp[*].queueType = "NoQueue"
+
+- PPPInterfaceNoQueue and EthernetInterfaceNoQueue have been removed; use the
+  queueType="NoQueue" parameter in the interfaces.
+
+- TCP, UDP and SCTP implementations are now pluggable; you can select the
+  implementation with the tcpType, udpType and sctpType parameters in the host.
+  Modules must implement ITCP, IUDP and ISCTP interface and the specify
+  the implementing NED type in the parameter. At the moment SCTP and UDP
+  have only one implementation. TCP has TCP (the default INET implementation),
+  TCP_NSC (Network Simulation Cradle) and TCP_lwIP (the lightweight IP stack).
+
+- AccessPoint has been generalized. Now it supports both (multiple) wireless
+  and ethernet ports. Relaying between ethernet and wireless ports is now
+  supported. A relay unit is created only if more than one ports are present
+  in the AccessPoint, i.e. having a single radio and no ethernet connections
+  will fall back to a single wireless NIC without a relay unit. Having no radio
+  and several ethernet ports connected will practically result in an ethernet
+  switch.
+
+- Wireless NICs now should implement IWirelessNIC. Now we have only a single
+  Ieee80211Nic implementation instead of the 5 variants we have previously.
+  Management type (Adhoc, AccessPoint, Station, AccessPointSimplified and
+  StationSimplified) can be configured using the mgmtType parameter of the NIC
+  (instead of having separate NIC types for each.)
+
+- Multiple radios on independent channels are now supported by all nodes. See
+  the wireless/multiradio example.
+
+- The radio infrastucture have been refactored. All radios should now implement
+  the IRadio interface. They are now pluggable. RadioModel can be configured
+  also via a module parameter. The attenuationModel parameter was moved from
+  the radio to ChannelController (it is now global) and renamed to propagationModel.
+  Several new propagation model have been added (see NED file docs).
+
+- Removed the TCPSpoofingHost node. Use instead StandardHost with the
+  tcpType="TCPSpoof" parameter.
+
+- NAMTrace and NAMTraceWriter modules have been moved to the obsolete directory.
+  Turn on event logging instead and use the eventlog animator in the IDE. Event
+  logging can be turned on with --record-eventlog=true from the command line or
+  using the toolbar button in Tkenv. Once the .elog file is generated, right
+  click on it in the IDE and select Open with / Animation Player.
+
+- ChannelInstaller module has been removed. Implemented a ThruputMeteringChannel that
+  extends DatarateChannel. It adds thruputDisplayFormat that allows showing different
+  statistics along the source gate of the channel. Specifying "" as display format
+  results the same behavior as DatarateChannel (with no performance penalty).
+  If you want to gather statistics, you do not need this channel. The DatarateChannel
+  already emits signals "channelBusy", "messageSent" and "messageDiscarded"
+  that can be used to calculate different statistics. Use "opp_run -h neddecls"
+  to see what statistics are provided by default. e.g in INI file use
+  **.channel.throughput.result-recording-modes=+last to store all channel's
+  thoughput values as scalars.
+
+
+INET-1.99.0 (March 3, 2011)
+---------------------------
+
+This is a beta of a major feature release, with new models and also incompatible
+changes. If you are upgrading from an earlier INET version, expect to have
+to revise your existing omnetpp.ini files and possibly NED/C++ files as well.
+
+The most significant changes:
+
+- replaced cOutVector and recordScalar() with signal-based statistics
+  recording in most places (see @statistic properties in NED files)
+
+- support for more than one type of tcpApp and udpApp in StandardHost
+  (elimination of tcpAppType/udpAppType parameters)
+
+- Interfaces renamed to start with letter "I". BasicMobility -> IMobility,
+  TCPApp->ITCPApp, UDPApp->IUDPApp, SCTPApp->ISCTPApp, MacRelayUnit->IMacRelayUnit,
+  Radio->IRadio, Ieee80211Mgmt->IIeee80211Mgmt, OutputQueue->IOutputQueue,
+  INetworkInterface->IWiredNic
+
+- added new AdhocHost for basic node types used in adhoc networks. Supports
+  mobility and multiple wireless radios. It obsoletes the MFMobileHost
+  (use AdhocHost with **.wlan.type-name=Nic80211) and MobileHost (use AdhocHost
+  with default parameters)
+
+- added new AccessPoint module with configurable wireless, ethernet and relay
+  unit and mobility module types. Obsoletes: WirelessAP and WirelessAPWithEth
+  (use AccessPoint), WirelessAPSimplified and WirelessAPWithEthSimplified
+  (use AccessPoint with **.wlan.type-name=Ieee80211NicAPSimplified),
+  WirelessHost (use StandardHost with numRadios=1) and WirelessHostSimplified
+  (use StandardHost with numRadios=1 and **.wlan.type-name=Ieee80211NicSTASimplified)
+
+- in StandardHost and Router it is now possible to configure what wireless, ethernet, ppp
+  or external interfaces are used. Wired interfaces must implement IWiredNic, and wireless
+  modules must implement IWirelessNic. Mobility type and number of wireless cards (default=0)
+  can be also configured via **.wlan.type-name and **.mobility.type-name. The use of
+  interfaces obsoletes several older modules which differed only in interface types
+  (like WirelessHost or ExtRouter)
+
+- enhanced Router to support external interfaces, ppp, wireless, ethernet etc. This module
+  is similar to StandardHost except it does not contain the transport layer and application layer
+  protocols (plus IPForwarding is enabled by default). Obsoletes the ExtRouter module (use Router)
+
+- NetworkLayer and NetworkLayer6: added dummy modules that implement the IHook interface
+  at the bottom of network layer (above link layer). This allows one to insert
+  thruput metering, packet drop and duplication modules etc. without modifying the module.
+  New modules implementing IHook: ThruputMeter, DropsGenerator, DuplicatesGenerator and Nop.
+  Use **.networkLayer.outputHook.type-name = "ThruputMeter" to configure them (use inputHook
+  for incoming traffic)
+
+- added global ARP optimization. If you are not interested in modeling the traffic of ARP protocol,
+  it is now possible to use a much faster implementation by specifying (by Alfonso Ariza Quintana):
+  **.networkLayer.arp.globalARP=true
+
+- multiple radios (on multiple channels) are supported by StandardHost, AdhocHost
+  and Router if ChannelControllerExtended is used in the network.
+
+- point-to-point Ethernet links can now use normal DatarateChannels
+  (EtherMAC's txrate parameter was removed)
+
+- added a new TCP model that directly wraps the lwIP stack (without
+  NetworkSimulationCradle (NSC) overhead)
+
+- TCP transfer mode (bytecount / cPacket / bytestream) is now
+  controlled by the app via a control info field (the sendQueueClass/
+  receiveQueueClass TCP module parameters were removed); this works across
+  all three TCP models (native OMNeT++, NSC, lwIP)
+
+- experimental support for application-imposed TCP flow control (i.e.
+  implementation of "socket read" calls; this is not yet in the
+  "integration" branch)
+
+- brand new BGPv4 model, contributed by Helene Lageber
+
+- OSPF model: mass renaming and code formatting to make code conform
+  to the rest of INET in coding style
+
+- fix: Ieee80211DataFrame was missing the LLC SNAP header, so all
+  802.11 data frames were simulated with 8 bytes less length than
+  they should have (this will slightly modify simulation results)
+
+- RTP model refactoring to make it use msg files and a control info
+  based interface toward apps
+
+- some improvements INETMANET implemented have been taken over into
+  INET (also to decrease INETMANET maintenance cost)
+
+- started taking over xMIPv6's modification to the base INET, so
+  xMIPv6 won't need to patch INET
+
+- added basic "New INET simulation" wizards which appear under
+  File|New in the IDE
+
+- started working on an INET User Manual (see inet.omnetpp.org)
+
+- added an initial test suite with tests for Ethernet, 802.11 and TCP
+  (uses OMNeT++'s opp_test utility and the "omnetpp" R plugin for
+  scripted checking of simulation results; not yet in "integration")
+
+- many smaller bug fixes and refactoring, mostly invisible for users
+
+In more details:
+
+* Reorganized StandardHost:
+
+Several changes were introduced to make the basic building blocks of
+simulation (StandardHost, AdhocHost, Router etc.) more configurable,
+without the need to copy and modify the modules or derive a new module
+type. Applications, tcp type, nic, mobility, routing protocols can be
+configured using parameters or the **.type-name=typename in the .ini file.
+
+* Ethernet point-to-point links:
+
+In the old code, datarate of Ethernet channels were to be set to zero, and
+the real datarate given in the txrate parameter of EtherMAC. This was to
+work around a limitation in OMNeT++ 3.x's channel support. In the new code,
+the txrate parameter is gone, and the datarate should be set on the
+channel. This is consistent with e.g. PPP. This requires non-backward
+compatible changes to models.
+
+* Support for several different TCP/UDP apps in StandardHost
+
+In the old code, tcpApp[] is declared as
+  tcpApp[numTcpApps]: <tcpAppType> like TCPApp;
+which has the side effect that when using StandardHost, all apps have to be
+the same type (the one in the tcpAppType parameter). OMNeT++ 4.x supports
+setting the types one-by-one, using the following syntax:
+  tcpApp[numTcpApps]: <> like TCPApp;
+and in the ini file, you have to write
+  **.tcpApp[0].type-name = "inet.applications.tcpapp.TCPBasicClientApp"
+  **.tcpApp[1].type-name = "inet.applications.tcpapp.TCPEchoApp"
+  **.tcpApp[*].type-name = "inet.applications.tcpapp.TCPSinkApp"
+  etc.
+The existing tcpAppType/udpAppType/sctpAppType parameters would be removed.
+However, this also means that existing ini files have to be changed.
+If they are not updated, the simulation will not work.
+
+* Multiple TCP implementations, and related parameterization changes
+
+INET now supports Network Simulation Cradle (NSC; wraps several FreeBSD,
+Linux and lwIP stacks), and we have an lwIP-based TCP module as well
+(without the NSC limitations and overhead); the NED types are TCP, TCP_NSC,
+TCP_lwip. Any of them can be selected in StandardHost, via the tcpType
+parameter (the tcp module is now declared as "tcp: <tcpType> like ITCP").
+tcpType defaults to the native OMNeT++ TCP module.
+
+The sendQueueClass/rcvQueueClass parameters are gone. They were used to
+select what to transmit inside TCP segments: C++ objects (cPacket) or byte
+counts only. Now, this can (must) be specified per-connection by the app
+layer, because the app knows best what it requires. Also, instead of two
+class names now there is a single enum value; it should be put into the
+dataTransferMode field of TCPOpenCommand. Potential values are:
+
+   TCP_TRANSFER_UNDEFINED = 0;  // Invalid value
+   TCP_TRANSFER_BYTECOUNT = 1;  // Transmit byte counts only
+   TCP_TRANSFER_OBJECT = 2;     // Transmit the application packet C++ objects
+   TCP_TRANSFER_BYTESTREAM = 3; // Transmit actual bytes
+
+Ideally, all 3 TCP implementations should understand all 3 transfer modes;
+currently OBJECT support is missing from TCP_NSC.
+
+
+INET-20110225
+-------------
+
+- additional statistics in the SCTP module (Alberto Cortes)
+
+- fix for SCTP Path.Max.Retrans threshold problem (Alberto Cortes)
+
+- minor changes in #includes to ensure compatibility with upcoming OMNeT++ 4.2
+
+
+INET-20100723
+-------------
+
+- TCP improvement (Thomas Reschka, Zoltan Bojthe).
+  * implemented RFC 1323 (TCP Extensions for High Performance):
+      - Window Scale option
+      - Timestamps option (Round-Trip Time Measurement - RTTM)
+      - Protect Against Wrapped Sequence Numbers (PAWS)
+      - added a PAWS modification according to the latest proposal
+        of the tcplw@cray.com list (Braden 1993/04/26)
+  * implemented missing part of RFC 2581: Re-starting Idle Connections
+  * various fixes
+  * see details in src/transport/tcp/ChangeLog.
+
+- added examples for new TCP features (Thomas Reschka):
+  * examples/inet/tcptimestamps
+  * examples/inet/tcpwindowscale
+
+- added NetAnimTrace module (Andras Varga). This module can be used to record
+  input for the NetAnim program (http://www.nsnam.org/wiki/index.php/NetAnim)
+
+- Ieee80211Radio: added a shadowing component for the path loss reception model
+  (Nikos Simantirakis). This is a random variable has a normal distribution
+  in dB and results to -normal distribution in mW. This is a widespread and
+  common model used for reproducing shadowing effects (Rappaport, T. S. (2002),
+  Communications - Principles and Practice, Prentice Hall PTR).
+
+- bugfix and small improvements in SCTP, TCPSessionApp, ThruputMeter
+
+- cosmetic changes in many other files (comments, indentation, compiler warning
+  elimination, variable renaming, etc.)
+
+
+INET-20100323
+-------------
+
+- added "label" annotations to gates and modules to support the adaptive palette
+  filtering and gate matching in the connection chooser (OMNeT++ 4.1).
+
+- updated SCTP implementation by Michael Tuexen, Irene Ruengeler and
+  Thomas Dreibholz
+
+- added support for Sam Jensen's Network Simulation Cradle,
+  http://www.wand.net.nz/~stj2/nsc/, which makes real-world TCP stacks available
+  in simulations. Currently NSC supports the FreeBSD, OpenBSD, lwIP and Linux
+  stacks. The TCP_NSC module (transport/tcp_nsc) is a drop-in replacement for the
+  normal TCP module (transport/tcp), and can be activated with a single parameter
+  setting in StandardHost. See src/transport/tcp_nsc, 3rdparty/README, and
+  examples/inet/tcpclientserver.
+
+- added TCP SACK and New Reno implementation by Thomas Reschka. The original TCP
+  version is still available as TCP_old. See src/transport/tcp/ChangeLog for details.
+
+
+INET-20090325
+-------------
+
+- tagged version for OMNeT++ 4.0 final
+- reworked build system to create shared library by default
+- added SCTP from Michael Tuexen and Irene Ruengeler
+
+
+INET-20080920
+-------------
+
+Internal snapshot, for omnetpp-4.0b6.
+
+- performance optimization in all queue modules: remember output gate pointer
+  instead of looking up gate by name for each send()
+
+- Ieee80211AgentSTA.cc: randomize the start time of the scanning process.
+  (Randomizing the time of sending the first beacon in Ieee80211MgmtAP.cc
+  was already done earlier.)
+
+- IP: set TTL to 1 on new datagram if the destination address is link local
+  multicast, to prevent broadcasting to non-neighbouring routers.
+
+- several bugfixes
+
+
+INET-20080709
+-------------
+
+Internal snapshot, for omnetpp-4.0b3.
+
+- interface table and routing table are now accessed via the C++ interfaces
+  IInterfaceTable and IRoutingTable. This is done to reduce interdependencies
+  among modules; more specifically, to allow users implement their own
+  InterfaceTables and RoutingTables and plug them into INET simulations,
+  without any change to the base INET.
+
+- PPP and EtherMAC2: performance: don't fire tx begin/end notifications if
+  no one is listening; remember output gate pointer instead of looking it up
+  by name for each send
+
+- UDPEchoApp: messageLength parameter now understood in bytes not bits
+
+- RoutingTable: implemented routing cache and other optimizations
+
+
+INET-20080630
+-------------
+
+Internal snapshot, for omnetpp-4.0b2.
+
+- to enable and encourage extending INET via subclassing (as opposed to
+  patching), nearly all member functions made virtual (except in data classes
+  like IPAddress), and also, private sections in most classes were changed to
+  protected.
+
+- some refactoring on TCP, UDP and IP, to allow subclassing of TCP, UDP and IP
+  packets: packets are now created via factory methods that can be overridden
+  if needed
+
+- AbstractQueue (base class for IP and other modules) made more efficient: now it
+  doesn't schedule a timer if (when) serviceTime is zero.
+
+- IPAddress class made more efficient [code from Ingmar Baumgart, OverSim]
+
+- parsim: added pack/unpack functions for IPAddress, IPv6Address, IPvXAddress
+
+- InterfaceTable: added deleteInterface(). This also causes RoutingTable to
+  drop routes that correspond to the deleted interface.
+
+- RoutingTable: wrapped naked data members of IPRoute into getters/setters;
+  enforce by returning "const" pointers that routes already added cannot be
+  changed any more (one must delete and re-add it)
+
+- InterfaceTable: created a getInterfaceById() method, NOT to be
+  confused with getInterface(pos)! Ids are stable after deletions,
+  unlike 0..getNumInterfaces()-1 indices, and reliable/safe unlike
+  InterfaceEntry* pointers
+
+- InterfaceTable and RoutingTable now fire proper notifications on changes:
+  NF_INTERFACE_CREATED, NF_INTERFACE_DELETED, NF_INTERFACE_STATE_CHANGED,
+  NF_INTERFACE_CONFIG_CHANGED; NF_IPv4_ROUTE_ADDED, NF_IPv4_ROUTE_DELETED,
+  NF_IPv6_ROUTE_ADDED, NF_IPv6_ROUTE_DELETED, etc.
+
+- NotificationBoard: added hasSubscribers(int category) method, to allow for
+  optimizing out firing change notifications if there's no one listening.
+
+
+INET-20080624
+-------------
+
+Internal snapshot, for omnetpp-4.0b2.
+
+- updated for OMNeT++ 4.0b2
+
+- extensive renaming: added "get" verb to getter methods in most classes;
+  also eliminated @addGetVerb(true) from message classes
+
+- revived the RTP model: starting from Ahmed Ayadi's patch, migrated the code
+  to OMNeT++ 4.0, and started some refactoring (started introducing .msg files
+  for handcoded message classes; not yet finished)
+
+
+INET-20080606
+-------------
+
+Internal snapshot, for omnetpp-4.0b1.
+
+- directory structure reorganized
+
+- converted to OMNeT++ 4.0
+
+- some refactoring (parameter/gate name changes, etc)
+
+- IP/IPv6: do not schedule a timer if processing time is zero (change made
+  in base/AbstractQueue)
+
+- FlatNetworkConfigurator: use @node() property to determine which modules are
+  network nodes (removed moduleTypes, nonIPModuleTypes parameters)
+
+
+INET-20061020
+-------------
+
+- new example network: Examples/Ethernet/ARPTest (old ARPTest renamed)
+
+- bugfixes: AbstractRadio (Dave Symonds); Ieee80211 (also reported by Dave)
+
+
+INET-20060912a
+--------------
+
+- improvements on the wireless infrastructure: support for multiple channels
+  and channel switching by NICs; account for finite radio wave propagation speed
+
+- added new 802.11 model which also supports infrastructure mode; see
+  NetworkInterfaces/Ieee80211. Even for ad-hoc mode, Ieee80211Mac is recommended
+  over the older Mac80211 from MF.
+
+- added Ieee80211Radio which supersedes SnrEval80211 and Decider80211.
+
+- added EtherDuplexMAC, a simplified Ethernet implementation for full duplex
+  point-to-point operation mode when CSMA/CD is not in use.
+
+- makefiles within Examples/ have been largely unnecessary because all
+  simulations just invoke bin/INET. Realizing these makefiles have been
+  confusing to many people, they got removed now. The target to generate
+  them is still present in makemakefiles in case someone needs it.
+
+- several other fixes
+
+
+INET-20060330
+-------------
+
+- checked in the new MPLS, RSVP-TE and LDP models, written/rewritten by
+  Vojta Janota
+
+- new model: Network/Quagga. This is port of the Quagga routing daemon to the
+  INET Framework. Currently provides RIP and OSPFv2 routing. Quagga itself is
+  a fork of Zebra. (Ported to INET by Vojta Janota)
+
+- new model: Network/OSPFv2. This is a new OSPF implementation.
+  (author: Andras Babos)
+
+- UDP rewritten: similarly to TCP, dispatching is now done inside UDP, and
+  apps now identify sockets with a sockId; implemented ephemeral port reuse
+
+- UDPSocket class added to facilitate talking to the UDP model from apps;
+  analogous to TCPSocket (thanks to Michael Tuexen and Vojta Janota for
+  feedback)
+
+- new snapshot of the IPv6 module (by Wei Yang Ng)
+
+- added ability to write nam traces (Util/NAMTraceWriter, World/NAMTrace);
+  feature originally implemented by Vojta Janota (and refactored by Andras,
+  so bugs are very likely mine)
+
+- implemented ThruputMeteringChannel which can display #packets, pk/sec etc
+  on the links; and ChannelInstaller as a temporary solution to install
+  ThruputMeteringChannel instead of the built-in BasicChannel class.
+
+- updated module class ctors/dtors for OMNeT++ 3.2; changed msg->length()/8 to
+  msg->byteLength() and msg->setLength(8*bytes) to msg->setByteLength(bytes),
+  etc.
+
+- TCP: Reno bugs fixed (reported by Pascal Rousseau); TCPMessageBasedSendQueue
+  seqNo bug fixed (Adam Hudson); implemented reuse of ephemeral ports;
+  fixed incorrect behaviour when ACK of SYN carries data (reported by Joachim
+  Meichle); fixed minor issue that when the user issued CLOSE, transition to
+  FIN_WAIT_1 was done immediately and not deferred until all data are sent.
+
+- added Applications/TCPApp/TCPSpoof
+
+- hosts have now the same queues as routers (reported by Michael Tuexen)
+
+- ev replaced with EV in every module (speed increase in Express mode)
+
+- NetworkLayer(6): gates towards interfaces renamed to ifOut[]/ifIn[]
+
+- FlatNetworkConfigurator internals refactored
+
+- added another network configurator, NetworkConfigurator
+
+- RoutingTable: routerId selection moved from stage 1 to stage 3 (you may
+  need to revise your code if it depends on routerId)
+
+
+INET-20050922
+-------------
+- patched for OMNeT++ 3.2:
+  - added '=NULL' default value to all args of hand-code module constructors
+    (2 or 3 places)
+  - RSVPPacket.h: dup() return type has to be cPolymorphic with OMNeT++ 3.2;
+    fixed it using '#if OMNETPP_VERSION<0x0302...#else...#endif'
+
+  Note: THIS IS THE ONLY RELEASE WHICH IS COMPATIBLE WITH BOTH 3.1 AND 3.2
+
+- UDP dispatchByPort bug fixed; further smaller fixes
+
+- IPv6 updated (still unfinished)
+
+- NOT YET FIXED:
+  - TCP bug http://www.omnetpp.org/listarchive/msg05687.php
+  - incorrect handling of host queues (Michael Tuexen)
+
+
+INET-20050720
+-------------
+
+- module types renamed for consistency: PPPModule -> PPP, TCPMain -> TCP,
+  UDPProcessing -> UDP
+
+- C++ methods renamed: isNull() -> isUnspecified() in IPAddress, IPv6Addres,
+  IPvXAddress
+
+- created two subdirs under Transport/TCP: flavours and queues, and moved
+  the appropriate cc/h files there. The structure of the TCP model should
+  now be much more obvious to readers. Also added READMEs explaining things.
+
+- TCP fixes: raise an error (~EADDRINUSE) on attempt to create more than one
+  connections to listen on the same port
+
+- implemented REDQueue
+
+- beginnings of a "Getting started with TCP" doc
+
+
+INET-20050705
+-------------
+- TCP improvements: separate congestion control behaviour classes
+  TCPTahoe, TCPReno and TCPNoCongestionControl provided, for teaching
+  purposes (their code is very short, to the point, and extensively
+  commented).
+
+- TCP: fixed bogus RTT calculation and other other bugs; also, sequence
+  numbers are now recorded into omnetpp.vec, so with Plove one can create
+  sequence number plots like Sally Floyd's [thanks to Ahmet Sekercioglu
+  for help!]
+
+- still TCP: fixed the bug which caused closing of a connection to be reported
+  2MSL (240s) later to the user.
+
+- Added support for drop-tail router queues, and queues with QoS support
+  based on DS Code Point; RED in preparation (see Network/Queue)
+
+- Added wireless and mobility support (based on Mobility Framework code),
+  including 802.11b ad-hoc mode MAC, and several new mobility models
+  (also new to MF). Supports mobility traces from BonnMotion and ANSim.
+
+- Contract directories introduced: Transport/Contract, Network/Contract
+  and NetworkInterfaces/Contract. These directories contain a minimal set
+  of classes necessary for using one layer's functionality from higher layers.
+
+- Added notification mechanism: modules can now notify each other about
+  "events" such as routing table changes, interface status changes (up/down),
+  interface configuration changes, wireless handovers, changes in the state
+  of the wireless channel, mobile node position changes, etc. Notification
+  works via the NotificationBoard which replaces the Blackboard.
+
+- InterfaceTable introduced: it stores all interface configuration that was
+  previously stored in RoutingTable. Per-interface data structure was also
+  split into protocol independent (InterfaceEntry) and protocol dependent
+  (IPv4InterfaceData, IPv6InterfaceData) parts.
+
+- ScenarioManager introduced (experimental, in World/ subdirectory):
+  it addresses the need for simulating scenarios like "what if this cable
+  breaks at t=20s", or "what if traffic intensity grows at t=100s".
+  Scenario is described in an XML file.
+
+- Ping and VideoStream applications added (from IPv6SuiteWithINET)
+
+- ARP got moved up from L2 to L3; this is to prepare for IPv6 support (IPv6
+  doesn't need ARP, so we can no longer have it as part of the network
+  interfaces)
+
+- prepared for IPv6: application layer, transport layer and IPv6 contract
+  taken over from IPv6SuiteWithINET-20050502
+
+- work in progress: from-scratch IPv6 implementation by Wei Yang Ng (Monash
+  University) and Andras Varga
+
+- added INET_API definitions to classes, so that one can build a DLL that can
+  be loaded dynamically into INET.exe (hint: compile DLL code *without*
+  /DBUILDING_INET, and link them with INET.lib! then add [General]/load-libs=
+  to omnetpp.ini.)
+
+- Network/IPv4d subdirectory finally thrown out. It was a bad idea to
+  implement IP with a dozen small modules in the first place.
+
+- added files called !WORK_IN_PROGRESS! with some explanations to
+  directories which contain unfinished simulation models.
+
+
+INET-20050404 released
+----------------------
+- Updated to omnetpp-3.1.
+- patches from Michael Tuexen
+
+
+INET-20050102
+-------------
+- updated to omnetpp-3.0
+
+
+INET-20041007
+-------------
+- package renamed to INET Framework
+
+
+IPSuite-20041007
+----------------
+- practically a complete rewrite of IPSuite took place 03/2004 through
+  10/2004. See change log at http://ctieware.eng.monash.edu.au/twiki/
+  bin/view/Simulation/IPSuiteLogOfChanges
+
+
+Preparations for rewriting IPSuite, 09/2003-03/2004
+---------------------------------------------------
+2004-02-04  Andras Varga
+
+        * got it compiled with omnetpp-3.0pre1. changes:
+        - added #include <iostream>, using std::ostream at a couple of places
+        - deprecated receiveOn(), receiveNewOn() no longer exists, replaced by:
+                msg = receive();
+                ASSERT(dfmsg->arrivedOn("fromEnqHook"));  // FIXME revise this
+        * removed ProcessorManager altogether
+
+2003-09-19  Andras Varga
+
+        * added the MPLS/LDP/RSVP-TE models created by Xuan Thang Nguyen
+        (Xuan.T.Nguyen@uts.edu.au) at UTS (University of Technology, Sydney).
+        See http://charlie.it.uts.edu.au/~tkaphan/xtn/capstone/
+
+        * did IPsuite modifications necessary fo MPLS. Modularity is preserved:
+        it is still possible to build IPSuite without the MPLS models.
+
+2003-09-18  Andras Varga
+
+        * merged patches for compiling with MSVC.
+
+        * module descriptions (comments) added to/rearranged in all NED files
+        for documentation generation with new opp_neddoc.
+
+        * DIRECTORY STRUCTURE WAS REARRANGED along the lines of the OSI layers,
+        and also to make it consistent with the IPv6Suite. Hopefully every file
+        is now where one would expect to find it.
+
+        * added makemake.cmd for generating Makefile.vc's (using opp_nmakemake)
+        for building with MSVC, and makemake for generating Unix makefiles
+
+        * lots of minor fixes to make the code compile with MSVC.
+        Note: for compatibility with MSVC6.0,
+          1. return type of dup() should ALWAYS be cObject* (and cannot be the
+             actual class name)
+          2. class variables cannot be initialized (even const or
+             static const ones) within the class declaration.
+
+        * updated for recent OMNeT++ versions: added ",row" to vector module
+        display strings; removed className() methods, etc.
+
+        * FIXME: KIDSRouter was missing from the original IPSuite! KIDSNw1
+        didn't compile. I temporarily substituted a copy of NextHopRouter.
+
+2003-09-17  Andras Varga
+
+        * taken ipsuite-20021124-src.tgz and started improving it.
+
+
+IPSuite's change log, 2000-2001
+-------------------------------
+Before Andras Varga took over the development in 2003, IPSuite was
+created and developed at University of Karlsruhe, Germany.
+
+2001-12-10  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>
+
+        * Global changes for OMNeT++ 2.2 conformance:
+        copy constructor -> const argument
+        virtual long length(const ) -> virtual long length(const) const
+        virtual int numInitStages() -> virtual int numInitStages () const
+        virtual char *className() -> virtual const char* className() const
+        virtual cObject *dup() -> virtual cObject *dup() const
+        cObject& operator=(cObject& o) -> cObject& operator=(const cObject& o)
+
+2001-08-31  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>
+
+        * CVS-Tag da-kussaether: Work on TCP by Rolf Kussaether;
+        implementation of TCP flavours Reno (fast recovery) and New Reno.
+
+2001-03-19 Verena Kahmann <kahmann@telematik.informatik.uni-karlsruhe.de>
+        * deleted all queues and behaviors except FIFO* and the basic behaviors.
+        Maybe we have to apply some extra cleaning still.
+2000-12-19  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>
+
+        * recent (standalone) TCP model is merged into the ip-suite. The
+        simple test network is now located in ./Networks/TCPTester
+
+2000-12-13  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>
+
+        * makeipsuite: replaced by top level Makefile
+
+        * rundemo: front end for launching all available simulations
+
+        * Makefile: Top level makefile to create Makefiles from Makefile.in
+        in all subdirectories
+
+        * removed mmake in subdirectories and replaced them by Makefile.in
+
+2000-11-22  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>
+
+        * CREDITS: Put your name here if you have contributed to the
+        OMNeT++ Internet Protocol Suite

+ 7 - 0
inet/doc/index.html

@@ -0,0 +1,7 @@
+<html>
+   <head>
+      <title>Redirect Page</title>
+      <meta http-equiv="refresh" content="0;url=neddoc/index.html"></head>
+      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+   <body/>
+</html>

+ 366 - 0
inet/doc/misc/directory-tree-history.txt

@@ -0,0 +1,366 @@
+DIRECTORY TREE HISTORY
+======================
+
+This file describes changes in the INET project's directory tree. Folders
+are sometimes renamed, moved, new folders are created by splitting files
+from an existing folder, folders are merged, deleted, etc. This file exists
+because it is not easy to get an overview of these changes from the git
+history alone. (When you view a file or folder's history in git, the log
+ends where the file or folder was renamed or moved in the project tree.)
+
+As a consequence of renames, you need to invoke gitk (or git log) with
+multiple path args to see the full history of a given folder.
+
+   HINT: Change to the project root and invoke gitk there (instead of
+   invoking it in a random directory and giving it a full path)!
+   Otherwise gitk won't show the files affected by the selected patch
+   (the "file list" panel of gitk will be empty.)
+
+For example, if you wish to see the full history of src/linklayer/ieee80211,
+you need to issue the following command in the project root folder:
+
+$ gitk -- src/linklayer/ieee80211 INET/src/linklayer/ieee80211 \
+          NetworkInterfaces/Ieee80211
+
+For src/networklayer/ipv4:
+
+$ gitk -- src/networklayer/ipv4 INET/src/networklayer/ipv4 Network/IPv4
+
+For src/transport/tcp_common/contract:
+
+$ gitk -- src/transport/tcp_common/contract src/transport/contract \
+          INET/src/transport/contract Transport/Contract
+
+For src/transport/tcp_common:
+
+$ gitk -- src/transport/tcp_common src/transport/tcp \
+          INET/src/transport/tcp Transport/TCP
+
+Integration (since 2010)
+------------------------
+
+Folders that appeared due to the integration of code from external projects
+include:
+
+Added DHCP
++ src/applications/dhcp
+
+Added Traci
++ src/world/traci
++ src/applications/traci
++ examples/traci
++ examples/traci_launchd
+
+Added Diffserv
++ src/networklayer/diffserv
++ examples/diffserv
+
+src/networklayer/queue/                -> src/linklayer/queue/
+
+Added HttpTools:
++ src/world/httptools
++ src/applications/httptools
++ src/nodes/httptools
++ examples/httptools
++ examples/httptools/direct
++ examples/httptools/direct/flashdirect
++ examples/httptools/direct/pairdirect
++ examples/httptools/sites
++ examples/httptools/sites/www_single_org
++ examples/httptools/socket
++ examples/httptools/socket/pairsocket
++ examples/httptools/socket/simpleddos
++ examples/httptools/socket/tenserverssocket
+
+Added VoIPTool:
++ src/applications/voiptool
++ examples/voiptool
++ examples/voiptool/VoIPToolLargeNet
++ examples/voiptool/VoIPToolTest
++ examples/voiptool/VoIPToolTrafficTest
++ examples/voiptool/soundFiles
+
+Added MANETRouting from INETMANET:
++ src/networklayer/manetrouting
++ src/networklayer/manetrouting/aodv
++ src/networklayer/manetrouting/aodv/aodv-uu
++ src/networklayer/manetrouting/base
++ src/networklayer/manetrouting/batman
++ src/networklayer/manetrouting/dsdv
++ src/networklayer/manetrouting/dsr
++ src/networklayer/manetrouting/dsr/dsr-uu
++ src/networklayer/manetrouting/dymo
++ src/networklayer/manetrouting/dymo/dymoum
++ src/networklayer/manetrouting/dymo_fau
++ src/networklayer/manetrouting/olsr
++ examples/manetrouting
++ examples/manetrouting/fg80211
++ examples/manetrouting/fg80211/ini
++ examples/manetrouting/grid_aodv
++ examples/manetrouting/multiradio
++ examples/manetrouting/net80211_aodv
++ examples/manetrouting/net80211_control
+
+Added xMIPv6:
++ src/networklayer/ipv6tunneling
++ src/networklayer/xmipv6
++ src/nodes/xmipv6
++ examples/mobileipv6
+
+Added TCP variants:
++ src/transport/tcp_nsc
++ src/transport/tcp_lwip
+
+New examples:
++ examples/bgpv4/BGPandOSPF/RoutingConfig
++ examples/inet/bottleneck
++ examples/inet/pcaprecorder
++ examples/inet/udpburst
++ examples/wireless/synchronized
+...
+
+
+Adding Feature Support (2011-03-28 through 2011-05-13)
+------------------------------------------------------
+
+Around April 2011, Project Features support was implemented in OMNeT++ 4.2,
+and feature support was introduced into the INET Framework using
+development snapshots of OMNeT++. (4.2 was not released until November,)
+Feature support necessitated splitting up some folders, e.g. the
+contract/ folders under transport/ and networklayer/.
+
+src/util/headerserializers/         -> src/util/headerserializers/ipv4
+                                       src/util/headerserializers/sctp
+                                       src/util/headerserializers/tcp
+                                       src/util/headerserializers/udp
+
+src/util/headerserializers/headers  -> src/util/headerserializers/ipv4/headers
+                                       src/util/headerserializers/udp/headers
+                                       src/util/headerserializers/tcp/headers
+                                       src/util/headerserializers/sctp/headers
+
+src/mobility                        -> src/mobility
+                                       src/mobility/models
+
+src/networklayer/autorouting        -> src/networklayer/autorouting/ipv4
+                                       src/networklayer/autorouting/ipv6
+
+src/networklayer/contract           -> src/networklayer/ipv4/contract
+                                       src/networklayer/ipv6/contract
+
+src/transport/contract              -> src/transport/sctp/contract
+                                       src/transport/tcp_common/contract
+                                       src/transport/udp/contract
+
+src/transport/tcp                   -> src/transport/tcp_common
+                                       src/transport/tcp
+
+src/world                           -> src/world/annotations
+                                       src/world/obstacles
+                                       src/world/powercontrol
+                                       src/world/radio
+                                       src/world/scenario
+
+src/linklayer/etherswitch           -> src/linklayer/ethernet/switch
+
+src/linklayer/mfcore                -> src/linklayer/mf80211/core
+
+src/nodes/inet                      -> src/nodes/inet
+                                       src/nodes/bgp
+                                       src/nodes/ospfv2
+                                       src/nodes/mf80211
+
+
+Quagga Project Split (2009-02-24)
+---------------------------------
+
+Between 2008-01-25 and 2009-02-24, there were only two toplevel directories,
+INET/ and Quagga/. On 2009-02-24, Quagga was moved out to its own project
+on github. The INET files were moved one level up in the tree, so src/,
+examples/, doc/ etc became the toplevel directories.
+
+INET/doc           -> doc
+INET/src           -> src
+INET/examples      -> examples
+INET/etc           -> etc
+INET/tests         -> tests
+Quagga             -> [https://github.com/inet-framework/inet-quagga]
+
+
+Porting from OMNeT++ 3.x (2008-01-25..28)
+-----------------------------------------
+
+While porting INET to OMNeT++ 4.0 in 2008, the directory tree has been
+reorganized. In short, all model code has been moved into a new src/ folder,
+all directory names became lowercase, and several directories were
+renamed in addition to the case change. These changes are in the git repo
+in several commits, all dated 2008-01-28.
+
+Documentation      -> INET/doc
+Examples           -> INET/examples
+Etc                -> INET/etc
+Tests              -> INET/tests
+Applications       -> INET/src/applications
+Base               -> INET/src/base
+NetworkInterfaces  -> INET/src/linklayer
+Mobility           -> INET/src/mobility
+Network            -> INET/src/networklayer
+Nodes              -> INET/src/nodes
+Transport          -> INET/src/transport
+Util               -> INET/src/util
+World              -> INET/src/world
+
+and:
+
+Network/Quagga     -> Quagga/src
+Examples/Quagga    -> Quagga/examples
+
+
+CUMULATIVE LIST OF TREE CHANGES
+-------------------------------
+
+The following table shows the mapping between the original (pre-2008)
+state and the state after adding feature support (mid-2011).
+
+It does not include new directories that appeared due to the integration
+of external code.
+
+NEW:                                       OLD:
+doc                                        was Documentation
+doc/src                                    was Documentation/src
+doc/src/tcp                                was Documentation/src/tcp
+doc/walkthrough                            was Documentation/walkthrough
+doc/walkthrough/images                     was Documentation/walkthrough/images
+doc/walkthrough/thumbs                     was Documentation/walkthrough/thumbs
+_scripts                                   was Etc/scripts
+etc                                        was Etc, Etc/XMLSchema, Etc/XSD2HTML
+etc/plugins                                was Etc/plugins
+examples                                   was Examples
+examples/adhoc                             was Examples/Adhoc
+examples/adhoc/ieee80211                   was Examples/Adhoc/Ieee80211
+examples/adhoc/mf80211                     was Examples/Adhoc/MF80211
+examples/ethernet                          was Examples/Ethernet
+examples/ethernet/arptest                  was Examples/Ethernet/ARPTest
+examples/ethernet/arptest2                 was Examples/Ethernet/ARPTest2
+examples/ethernet/lans                     was Examples/Ethernet/LANs
+examples/inet                              was Examples/INET
+examples/inet/bulktransfer                 was Examples/INET/BulkTransfer
+examples/inet/flatnet                      was Examples/INET/FlatNet
+examples/inet/kidsnw1                      was Examples/INET/KIDSNw1
+examples/inet/multicast                    was Examples/INET/Multicast
+examples/inet/nclients                     was Examples/INET/NClients
+examples/inet/redtest                      was Examples/INET/REDTest
+examples/inet/routerperf                   was Examples/INET/RouterPerf
+examples/ipv6                              was Examples/IPv6
+examples/ipv6/demonetworketh               was Examples/IPv6/DemoNetworkEth
+examples/ipv6/nclients                     was Examples/IPv6/NClients
+examples/mobility                          was Examples/Adhoc/Mobility
+examples/mpls                              was Examples/MPLS
+examples/mpls/ldp                          was Examples/MPLS/LDP
+examples/mpls/net37                        was Examples/MPLS/Net37
+examples/mpls/testte_failure               was Examples/MPLS/TestTE_Failure
+examples/mpls/testte_failure2              was Examples/MPLS/TestTE_Failure2
+examples/mpls/testte_reroute               was Examples/MPLS/TestTE_Reroute
+examples/mpls/testte_routing               was Examples/MPLS/TestTE_Routing
+examples/mpls/testte_tunnel                was Examples/MPLS/TestTE_Tunnel
+examples/ospfv2                            was Examples/OSPFv2
+examples/ospfv2/areas                      was Examples/OSPFv2/Areas
+examples/ospfv2/backbone                   was Examples/OSPFv2/Backbone
+examples/ospfv2/fulltest                   was Examples/OSPFv2/FullTest
+examples/ospfv2/simpletest                 was Examples/OSPFv2/SimpleTest
+examples/rtp                               was Examples/RTP
+examples/rtp/data                          was Examples/RTP/Data
+examples/rtp/multicast1                    was Examples/RTP/Multicast1
+examples/rtp/multicast2                    was Examples/RTP/Multicast2
+examples/rtp/unicast                       was Examples/RTP/Unicast
+examples/wireless                          was Examples/Wireless
+examples/wireless/handover                 was Examples/Wireless/Handover
+examples/wireless/hosttohost               was Examples/Wireless/HostToHost
+examples/wireless/lan80211                 was Examples/Wireless/80211Lan
+examples/wireless/throughput               was Examples/Wireless/Throughput
+src/applications                           was Applications
+src/applications/ethernet                  was Applications/Ethernet
+src/applications/generic                   was Applications/Generic
+src/applications/pingapp                   was Applications/PingApp
+src/applications/rtpapp                    split from Transport/RTP
+src/applications/tcpapp                    was Applications/TCPApp
+src/applications/udpapp                    was Applications/UDPApp
+src/base                                   was Base
+src/linklayer                              was NetworkInterfaces
+src/linklayer/contract                     was NetworkInterfaces/Contract
+src/linklayer/ethernet                     was NetworkInterfaces/Ethernet
+src/linklayer/ethernet/switch              was NetworkInterfaces/EtherSwitch
+src/linklayer/ieee80211                    was NetworkInterfaces/Ieee80211
+src/linklayer/ieee80211/mac                was NetworkInterfaces/Ieee80211/Mac
+src/linklayer/ieee80211/mgmt               was NetworkInterfaces/Ieee80211/Mgmt
+src/linklayer/ieee80211/radio              split from NetworkInterfaces/Radio
+src/linklayer/mf80211                      was NetworkInterfaces/MF80211
+src/linklayer/mf80211/core                 was NetworkInterfaces/MFCore
+src/linklayer/mf80211/macLayer             was NetworkInterfaces/MF80211/macLayer
+src/linklayer/mf80211/phyLayer             was NetworkInterfaces/MF80211/phyLayer
+src/linklayer/mf80211/phyLayer/decider     was NetworkInterfaces/MF80211/phyLayer/decider
+src/linklayer/mf80211/phyLayer/snrEval     was NetworkInterfaces/MF80211/phyLayer/snrEval
+src/linklayer/ppp                          was NetworkInterfaces/PPP
+src/linklayer/radio                        was NetworkInterfaces/Radio
+src/mobility                               was Mobility
+src/mobility/models                        split from split from Mobility
+src/networklayer                           was Network
+src/networklayer/arp                       was Network/ARP
+src/networklayer/autorouting               was Network/AutoRouting
+src/networklayer/autorouting/ipv4          split from Network/AutoRouting
+src/networklayer/autorouting/ipv6          split from Network/AutoRouting
+src/networklayer/common                    split from Network/Contract
+src/networklayer/contract                  was Network/Contract
+src/networklayer/extras                    was Network/Extras
+src/networklayer/icmpv6                    was Network/ICMPv6
+src/networklayer/ipv4                      was Network/IPv4
+src/networklayer/ipv4/contract             split from Network/Contract
+src/networklayer/ipv6                      was Network/IPv6
+src/networklayer/ipv6/contract             split from Network/Contract
+src/networklayer/ldp                       was Network/LDP
+src/networklayer/mpls                      was Network/MPLS
+src/networklayer/ospfv2                    was Network/OSPFv2
+src/networklayer/ospfv2/interface          was Network/OSPFv2/Interface
+src/networklayer/ospfv2/messagehandler     was Network/OSPFv2/MessageHandler
+src/networklayer/ospfv2/neighbor           was Network/OSPFv2/Neighbor
+src/networklayer/ospfv2/router             was Network/OSPFv2/Router
+src/networklayer/queue                     was Network/Queue
+src/networklayer/rsvp_te                   was Network/RSVP_TE
+src/networklayer/ted                       was Network/TED
+src/nodes                                  was Nodes
+src/nodes/inet                             was Nodes/INET
+src/nodes/ipv6                             was Nodes/IPv6
+src/nodes/mf80211                          was Nodes/Adhoc
+src/nodes/mpls                             was Nodes/MPLS
+src/nodes/ospfv2                           split from Nodes/INET
+src/nodes/wireless                         was Nodes/Wireless
+src/transport                              was Transport
+src/transport/contract                     was Transport/Contract
+src/transport/rtp                          was Transport/RTP
+src/transport/rtp/profiles                 was Transport/RTP/Profiles
+src/transport/rtp/profiles/avprofile       was Transport/RTP/Profiles/AVProfile
+src/transport/tcp                          was Transport/TCP
+src/transport/tcp/flavours                 was Transport/TCP/flavours
+src/transport/tcp/queues                   was Transport/TCP/queues
+src/transport/tcp_common                   split from Transport/TCP
+src/transport/tcp_common/contract          split from Transport/Contract
+src/transport/udp                          was Transport/UDP
+src/transport/udp/contract                 split from Transport/Contract
+src/util                                   was Util
+src/util/headerserializers                 was Util/HeaderSerializers
+src/util/headerserializers/headers         was Util/HeaderSerializers/headers
+src/util/headerserializers/ipv4            split from Util/HeaderSerializers
+src/util/headerserializers/ipv4/headers    split from Util/HeaderSerializers/headers
+src/util/headerserializers/tcp             split from Util/HeaderSerializers
+src/util/headerserializers/tcp/headers     split from Util/HeaderSerializers/headers
+src/util/headerserializers/udp             split from Util/HeaderSerializers
+src/util/headerserializers/udp/headers     split from Util/HeaderSerializers/headers
+src/world                                  was World
+tests                                      was Tests
+tests/dlltest                              was Tests/DLLTest
+tests/ipv4                                 was Tests/IPv4
+tests/ipv6                                 was Tests/IPv6
+tests/newtcp                               was Tests/NewTCP
+tests/newtcp/test                          was Tests/NewTCP/test
+
+

+ 93 - 0
inet/doc/misc/logging-guidelines.txt

@@ -0,0 +1,93 @@
+
+
+
+Some unresolved questions:
+ - what context information should be present in each log line? how do we support
+   easy and efficient searching and filtering of log output? how do we support
+   easy use of grep and similar tools?
+ - do we suggest that context information that doesn't change during an event
+   should be reported only once? should context information be repeated or not in
+   subsequent lines?
+
+
+
+LOGGING GUIDELINES
+==================
+This document describes how to write and organize log statements in the INET
+framework. The target audience of this document includes maintainers, developers
+and contributors.
+
+General Logging Guidelines
+--------------------------
+Log output should be valid English sentences starting with an uppercase letter
+and ending with correct punctuation. Log output that spans multiple lines
+should use indentation where it isn't immediately obvious that the lines
+are related to each other. Dynamic content should be marked with single quotes.
+Key value pairs should be labeled and separated by '='. Enumerated values should
+be properly separated with spaces.
+
+Target Audience of Logging
+--------------------------
+The people who read the log output can be divided based on the knowledge they
+have regarding the protocol specification. They may know
+ - the public interface of the protocol
+ - the internals of the protocol
+ - the actual implementation of the protocol
+
+Log Levels
+----------
+This chapter describes when to use the various log levels provided by OMNeT++
+The rules presented here extend the rules provided in the OMNeT++ documentation.
+
+fatal
+ - target for people (not necessarily programmers) who know the public interface
+ - don't report programming errors, use C++ exceptions for this purpose
+ - report protocol specific unrecoverable fatal error situations
+ - use rarely if at all
+
+error
+ - target for people (not necessarily programmers) who know the public interface
+ - don't report programming errors, use C++ exceptions for this purpose
+ - report protocol specific recoverable error situations
+
+warn
+ - target for people (not necessarily programmers) who know the public interface
+ - report protocol specific exceptional situations
+ - don't report things that occur too often such as collisions on a radio channel
+
+info
+ - target for people (not necessarily programmers) who know the public interface
+ - think about the module as a closed (black) box
+ - report protocol specific public input, output, state changes and decisions
+
+detail
+ - target for users (not necessarily programmers) who know the internals
+ - think about the module as an open (white) box
+ - report protocol specific internal state changes and decisions
+ - report scheduling and processing of protocol specific timers
+
+debug
+ - target for developers/maintainers who know the actual implementation
+ - report implementation specific state changes and decisions
+ - report internal variable and data structure states and changes
+ - report current states and transitions of state machines
+
+trace
+ - target for developers/maintainers who know the actual implementation
+ - report the execution of initialize stages, operation stages
+ - report entering/leaving functions, loops, blocks, branches, recursions
+
+Log Categories
+--------------
+
+test
+ - report output that is checked for in automated tests
+
+time
+ - report performance related data that is measured in terms of wall clock time
+
+parameter
+ - report the actual parameter values picked up during initialization
+
+default (empty)
+ - report any other information using the default category

+ 58 - 0
inet/doc/opp.css

@@ -0,0 +1,58 @@
+H1 { text-align: center; }
+CAPTION { font-weight: bold }
+A.qindex {}
+A.qindexRef {}
+A.el { text-decoration: none; font-weight: bold }
+A.elRef { font-weight: bold }
+A.code { text-decoration: none; font-weight: normal; color: #4444ee }
+A.codeRef { font-weight: normal; color: #4444ee }
+A:hover { text-decoration: none; background-color: #f2f2ff }
+DL.el { margin-left: -1cm }
+DIV.fragment { width: 100%; border: none; background-color: #eeeeee }
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+TD.md { background-color: #f2f2ff; font-weight: bold; }
+TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; }
+TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; }
+DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold }
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
+BODY { background: white }
+TD.indexkey {
+   background-color: #eeeeff;
+   font-weight: bold;
+   padding-right  : 10px;
+   padding-top    : 2px;
+   padding-left   : 10px;
+   padding-bottom : 2px;
+   margin-left    : 0px;
+   margin-right   : 0px;
+   margin-top     : 2px;
+   margin-bottom  : 2px
+}
+TD.indexvalue {
+   background-color: #eeeeff;
+   font-style: italic;
+   padding-right  : 10px;
+   padding-top    : 2px;
+   padding-left   : 10px;
+   padding-bottom : 2px;
+   margin-left    : 0px;
+   margin-right   : 0px;
+   margin-top     : 2px;
+   margin-bottom  : 2px
+}
+span.keyword       { color: #008000 }
+span.keywordtype   { color: #604020 }
+span.keywordflow   { color: #e08000 }
+span.comment       { color: #800000 }
+span.preprocessor  { color: #806020 }
+span.stringliteral { color: #002080 }
+span.charliteral   { color: #008080 }
+
+
+      body,td,p,ul,ol,li,h1,h2,h3,h4 {font-family:arial,sans-serif }
+      body,td,p,ul,ol,li { font-size:10pt }
+      h1 { font-size:18pt; text-align:center }
+      th { font-size:10pt; text-align:left; vertical-align:top; background:#E0E0f0 }
+      td { font-size:10pt; text-align:left; vertical-align:top }
+      tt { font-family:Courier,Courier New,Fixed,Terminal }
+      img          { border:none }

BIN
inet/doc/walkthrough/images/animspeed.gif


BIN
inet/doc/walkthrough/images/arp-contents.gif


BIN
inet/doc/walkthrough/images/arp-ctx-asobj.gif


BIN
inet/doc/walkthrough/images/arp-ctxmenu.gif


BIN
inet/doc/walkthrough/images/arp-dispstr.gif


BIN
inet/doc/walkthrough/images/arp-icon.gif


BIN
inet/doc/walkthrough/images/arp-log.gif


BIN
inet/doc/walkthrough/images/arp-outputport.gif


BIN
inet/doc/walkthrough/images/arp-params.gif


BIN
inet/doc/walkthrough/images/arp-queue.gif


BIN
inet/doc/walkthrough/images/arp-reply-sent.gif


BIN
inet/doc/walkthrough/images/arp-req-sent.gif


BIN
inet/doc/walkthrough/images/arp-resolved.gif


BIN
inet/doc/walkthrough/images/arpcache1.gif


BIN
inet/doc/walkthrough/images/arpcache2.gif


BIN
inet/doc/walkthrough/images/arpcache3.gif


BIN
inet/doc/walkthrough/images/arpreply-fields.gif


BIN
inet/doc/walkthrough/images/arpreq-ctrlinfo.gif


BIN
inet/doc/walkthrough/images/arpreq-fields.gif


BIN
inet/doc/walkthrough/images/arptest-1s.gif


BIN
inet/doc/walkthrough/images/arptest-startrx.gif


BIN
inet/doc/walkthrough/images/arptest.gif


BIN
inet/doc/walkthrough/images/autoconfmsg.gif


BIN
inet/doc/walkthrough/images/cli-activeopen.gif


BIN
inet/doc/walkthrough/images/cli-encapsyn.gif


BIN
inet/doc/walkthrough/images/cli-sendsyn.gif


BIN
inet/doc/walkthrough/images/client.gif


BIN
inet/doc/walkthrough/images/dlg-nomoreevents.gif


BIN
inet/doc/walkthrough/images/dlg-rununtil.gif


BIN
inet/doc/walkthrough/images/dlg-simoptions1.gif


BIN
inet/doc/walkthrough/images/dlg-stopexpress.gif


BIN
inet/doc/walkthrough/images/doc-arp.gif


BIN
inet/doc/walkthrough/images/doc-frontpage.gif


BIN
inet/doc/walkthrough/images/doxy-arpclass.gif


BIN
inet/doc/walkthrough/images/doxy-handlemsg.gif


BIN
inet/doc/walkthrough/images/doxy-processarp.gif


BIN
inet/doc/walkthrough/images/doxy-processinbound.gif


BIN
inet/doc/walkthrough/images/doxy-processoutbound.gif


BIN
inet/doc/walkthrough/images/doxy-processoutbound1.gif


BIN
inet/doc/walkthrough/images/doxy-processoutbound2.gif


BIN
inet/doc/walkthrough/images/doxy-sendarpreq.gif


BIN
inet/doc/walkthrough/images/doxy-sendtomac.gif


BIN
inet/doc/walkthrough/images/doxy-updatedispstr.gif


BIN
inet/doc/walkthrough/images/endtx-event.gif


BIN
inet/doc/walkthrough/images/ethinterface.gif


BIN
inet/doc/walkthrough/images/ipdgram.gif


BIN
inet/doc/walkthrough/images/linkcolors.gif


BIN
inet/doc/walkthrough/images/m-restart.gif


BIN
inet/doc/walkthrough/images/mac-tx.gif


BIN
inet/doc/walkthrough/images/mousepointer.gif


BIN
inet/doc/walkthrough/images/router.gif


BIN
inet/doc/walkthrough/images/router1-rx.gif


BIN
inet/doc/walkthrough/images/router1eth1-rx.gif


BIN
inet/doc/walkthrough/images/rundemo-doc.gif


BIN
inet/doc/walkthrough/images/rundemo2.gif


BIN
inet/doc/walkthrough/images/server.gif


BIN
inet/doc/walkthrough/images/speedbar.gif


BIN
inet/doc/walkthrough/images/statusbar-startrx.gif


BIN
inet/doc/walkthrough/images/syn-ctrlinfo.gif


BIN
inet/doc/walkthrough/images/tb-inspectnet.gif


BIN
inet/doc/walkthrough/images/tb-run.gif


BIN
inet/doc/walkthrough/images/tb-rununtil.gif


BIN
inet/doc/walkthrough/images/tcpmain.gif


BIN
inet/doc/walkthrough/images/timeout-event.gif


BIN
inet/doc/walkthrough/images/wait-ifg.gif


+ 4 - 0
inet/doc/walkthrough/makethumbs.cmd

@@ -0,0 +1,4 @@
+@echo off
+pushd images && for %%i in (*.gif) do echo %%i && "C:\Program Files\IrfanView\i_view32.exe" %%~ni.gif /resample=(60p,60p) /aspectratio /convert=..\thumbs\%%~ni.gif
+
+

+ 13 - 0
inet/doc/walkthrough/opp.css

@@ -0,0 +1,13 @@
+
+body,td,p,ul,ol,li,h1,h2,h3,h4 {font-family:arial,sans-serif }
+body,td,p,ul,ol,li { font-size:11pt }
+body { background-color:#E0E0E0 }
+
+h1 { font-size:18pt; text-align:center }
+p.img { padding-left:10pt }
+pre.comment { font-size:10pt; padding-left:5pt }
+pre.src { font-size:9pt; background:#D8D8D8; padding:5pt; border:1px solid; border-color:#a0a0a0 }
+th { font-size:10pt; text-align:left; vertical-align:top; background:#E0E0f0 }
+td { font-size:10pt; text-align:left; vertical-align:top }
+tt { font-family:Courier,Courier New,Fixed,Terminal }
+img { border:none }

+ 1 - 0
inet/doc/walkthrough/thumbs/.keepme

@@ -0,0 +1 @@
+

BIN
inet/doc/walkthrough/thumbs/animspeed.gif


BIN
inet/doc/walkthrough/thumbs/arp-contents.gif


BIN
inet/doc/walkthrough/thumbs/arp-ctx-asobj.gif


BIN
inet/doc/walkthrough/thumbs/arp-ctxmenu.gif


BIN
inet/doc/walkthrough/thumbs/arp-dispstr.gif


BIN
inet/doc/walkthrough/thumbs/arp-icon.gif


BIN
inet/doc/walkthrough/thumbs/arp-log.gif


BIN
inet/doc/walkthrough/thumbs/arp-outputport.gif


BIN
inet/doc/walkthrough/thumbs/arp-params.gif


BIN
inet/doc/walkthrough/thumbs/arp-queue.gif


BIN
inet/doc/walkthrough/thumbs/arp-reply-sent.gif


BIN
inet/doc/walkthrough/thumbs/arp-req-sent.gif


Some files were not shown because too many files changed in this diff