WHATSNEW 112 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626
  1. Recent changes in the INET Framework
  2. ====================================
  3. INET 3.6.2 (October 2017) - stable
  4. ----------------------------------
  5. This release contains minor bug fixes and compatibility fixes for the final
  6. OMNeT++ 5.2 release. It requires OMNeT++ 5.1 or later.
  7. - Tcp: Fixed incorrect connection pointer in rexmitQueue.
  8. - Edcaf: Fixed aifs calculation for customised aifsn.
  9. - Visualization: parameter rename
  10. - inet_featuretool: Removed warning when treating a missing feature in the state files as default.
  11. - Updated showcases and tutorials.
  12. - Various fixes to eliminate warnings on clang 4 and gcc 7.x.
  13. INET 3.6.1 (July 2017) - stable
  14. -------------------------------
  15. This release contains minor compatibility fixes. It requires OMNeT++ 5.1 or later.
  16. - Minor compatibility fix to work with OMNeT++ 5.2 Preview 1
  17. - Turned on the parallel build option in the IDE project file.
  18. INET-3.6.0 (June 2017) - stable
  19. -------------------------------
  20. This release contains some important new features, several bug fixes, and a few
  21. minor enhancements. It requires OMNeT++ 5.1 or later.
  22. Highlights in this release:
  23. - On Windows, INET is no longer using the auto-import feature of the linker, because
  24. it generated more than 65536 symbols. Dependent projects crashed because of this.
  25. All INET APIs now should be prefixed with INET_API macro. (fixes #257)
  26. - The makefile now generates separate precompiled header for debug and release mode.
  27. This is required to be able to quicly switch between release and debug mode in the IDE.
  28. - The IEEE 802.11 MAC model has been extended with several new components. The
  29. implementation is entirely based on the standard IEEE 802.11™-2012 Part 11:
  30. Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.
  31. The new architecture is designed to be modular to facilitate experimenting
  32. with new policies, features and algorithms within the MAC layer. Users can
  33. easily replace individual components with their own implementations. Policies,
  34. which most likely to be experimented with, are extracted into their own modules.
  35. The new model has the following replaceable built-in policies:
  36. - ACK policy
  37. - RTS/CTS policy
  38. - Originator and recipient block ACK agreement policies
  39. - MSDU aggregation policy
  40. - Fragmentation policy
  41. The new model also separates the following components:
  42. - Coordination functions
  43. - Channel access methods
  44. - MAC data services
  45. - Aggregation and deaggregation
  46. - Fragmentation and defragmentation
  47. - Block ACK agreements and reordering
  48. - Frame exchange sequences
  49. - Duplicate removal
  50. - Rate selection
  51. - Rate control
  52. - Protection mechanisms
  53. - Recovery procedure
  54. - Contention
  55. - Frame queues
  56. - TX/RX
  57. There are several enhancements and new features to the previous version, the
  58. most notable are frame exchange sequences, block acknowledgement, and MSDU
  59. aggregation.
  60. The new version was thoroughly tested against the old one using fingerprint
  61. tests. The tests ensure that the new version doesn't introduce any regression.
  62. In fact, the tests brought up a few problems in the old implementation that
  63. were fixed in the new one.
  64. - The power model has been extended with support for charge/current based models
  65. as opposed to the existing energy/power based ones. A new energy management
  66. component has also been added to separate monitoring and controlling of energy
  67. consumers and generators from the rest of the model.
  68. - New visualizers has been added to display packet drops and link breaks, data
  69. contained in interface tables, routes stored in routing tables, queues filled
  70. with packets, residual capacity of energy storages, and transport connections
  71. between network nodes. The new visualizers are also added to the already existing
  72. integrated ones. Note: many features that work with the 2D visualizers currently
  73. don't work with the 3D OSG visualizers.
  74. - Added new features for various tutorials and showcases.
  75. INET-3.5.0 (February 2017) - stable
  76. -----------------------------------
  77. This release contains mostly bug fixes and compatibility changes. It requires
  78. OMNeT++ 5.1. Earlier versions of OMNeT++ are *not* compatible.
  79. Highlights in this release:
  80. Build:
  81. - The build process is now using precompiled headers. This can speed up the
  82. build process considerably.
  83. - Feature macros (WITH_*) that show the enablement of features are now placed
  84. into a header file (src/inet/features.h) instead of passed on the command line.
  85. The build process adds the WITH_OSG and WITH_OSGEARTH macro to the opp_defines.h
  86. file when WITH_OSG/WITH_OSGEARTH is set to yes. This allows the IDE to properly
  87. highlight/disable the appropriate code fragments.
  88. - 64-bit build is now supported on Windows.
  89. Visualizers:
  90. - Added a Plot figure (see InstrumentsExample).
  91. DHCP:
  92. - DHCP fixes.
  93. - DHCP can now activated in a Router by setting hasDHCP=true
  94. - Added new WirelessNetWith2DHCP example.
  95. Radio:
  96. - Added two-ray interference model (TwoRayInterference) as a pathoss model.
  97. SCTP:
  98. - Added StreamReconfig support for SCTP (by Irene Ruengeler)
  99. GPSR:
  100. - Allow to specify the interface name in a parameter instead of
  101. using a hardcoded interface name.
  102. Fixes:
  103. - Small fixes in SimpleEnergyStorage and during Antenna initialization
  104. - Calling IPv6RoutingTable::getInterfaceByAddress(const L3Address& address) or
  105. findGpsrOptionFromNetworkDatagram() function caused infinite recursion.
  106. - Radio: Fixed FreeSpacePathLoss bug in the loss formula for alpha != 2 case,
  107. reported by Benjamin Sliwa.
  108. - SimpleVoIPServer now resolves destAddress at startTime (instead
  109. of initialization)
  110. - Ieee8021dRelay: fixed a null pointer crash
  111. - StaticConcentricMobility: fixed a rounding issue
  112. - ICMP: fixed "icmp error answer to a fragmented udp packet" problem
  113. - ICMP: fixing bug #64: Buffer Overflow Error
  114. - AODV: no longer causes assertion failure when RREP-ACK arrived after a timeout
  115. INET-3.4.0 (June 2016) - stable
  116. -------------------------------
  117. This INET release requires OMNeT++ 5.0. This is due to the new visualization
  118. feature which uses the Canvas and OSG APIs introduced in OMNeT++ 5.0. Most
  119. other parts of the codebase still builds with OMNeT++ 4.6.
  120. Highlights is this release:
  121. Tutorials:
  122. - Added a Wireless Tutorial (tutorials/wireless). The tutorial consists of
  123. several simulation models of increasing complexity, demonstrating the INET
  124. architecture and features related to wireless communication networks. The
  125. models are accompanied by a text which explains each step, complete with
  126. screenshots and recorded animations.
  127. - Added draft for a visualization tutorial.
  128. Visualizers:
  129. - Added a new 'visualizer' folder under 'src' that contains visualizer modules.
  130. The current visualizer modules can display the scene (optionally with osgEarth),
  131. the network nodes (optionally with 3D models), physical objects in
  132. the physical environment, node mobility along with movement trail, discovered
  133. network connectivity, discovered network routes, ongoing transmissions,
  134. ongoing receptions, propagating radio signals, and statistics.
  135. The visualizer modules are intentionally kept separate from network protocol
  136. models. They are responsible for displaying various aspects of the simulation
  137. in a graphical user interface. The most common mechanism they use is looking
  138. up other modules and/or subscribing to the signals they emit. The visualizer
  139. modules are compatible with both Tkenv and Qtenv. In Qtenv they are able to
  140. display on both a 2D canvas and a 3D OSG scene.
  141. Instrument figures:
  142. - Implemented a facility that allows one to display various gauges, meters
  143. and indicators in the network graphics that take their inputs from signals.
  144. The "gadgets" themselves are figures that are added into the network using
  145. @figure properties, and they are driven by signals via @statistic properties,
  146. using a special result recorder ("figure") that sets the value in the target
  147. figure. Figure types are: gauge, linearGauge, progressMeter, thermometer,
  148. counter, indicatorLabel/indicatorText, and indexedImage. Their sources
  149. are in src/inet/common/figures.
  150. There is a demo in examples/visualization/instruments, and an additional
  151. usage example in the Wireless Tutorial (tutorials/wireless).
  152. MAC protocols:
  153. - Added CsmaCaMac, a simple CSMA/CA-based MAC protocol with optional
  154. acknowledgements and a retry mechanism. With the appropriate settings,
  155. it can approximate basic 802.11b ad-hoc mode operation. The code is
  156. based on the original Ieee80211Mac (802.11b) from 2006.
  157. - IdealMac: Changed out-of-band ACKs to be optional.
  158. - LMAC, BMAC, CSMA: Fixed handling of frames with bit errors.
  159. - WirelessNic: added optional classifier submodule
  160. - Ieee80211Mac: Resurrected link break signal for giving up a transmission.
  161. Radio:
  162. - The physical environment model has been extended to include a ground model.
  163. Ground models need to implement the IGround interface that currently
  164. contains a getElevation() method. A very simple implementation, FlatGround
  165. is also provided.
  166. - The TwoRayGroundReflection model has been updated to use the ground model
  167. of the physical environment.
  168. - Added packetReceivedFromUpper and packetSentToUpper signals.
  169. Mobility:
  170. - Mobility models now use the initialZ parameter even if position is
  171. initialized from the display string.
  172. - Added VehicleMobility that simulates turning at waypoints.
  173. - Now all mobile nodes face (i.e. set the orientation to) the direction of
  174. movement. This affects radio reception when direction antenna is used.
  175. Physical enviromment:
  176. - Added geographic coordinate system support.
  177. - TracingObstacleLoss renamed to DielectricObstacleLoss.
  178. Misc:
  179. - Added ApplicationPacket that can be used as generic application payload.
  180. Currently it contains a sequence number.
  181. - UDPBasicApp/UDPSink: changed to use ApplicationPacket, and record
  182. received packet sequence numbers
  183. - RelayUnit: Added packetReceivedFromLowerSignal and packetSentToLowerSignal signals.
  184. - AODV: Removed AODV-RERR messages for inactive routes.
  185. - Applications: Added throughput statistic to some applications.
  186. - IPv4: Added sentTo/receivedFrom upper/lower signals.
  187. - Common: Added average forest "material".
  188. - Common: Added throughput result filter.
  189. Build:
  190. - Added a top level 'doc' target to build all INET documentation in a single step
  191. - Added project feature tests (tests/features)
  192. INET-3.3.0 (June 2016) - stable
  193. -------------------------------
  194. This release requires OMNeT++ 4.6 or 5.0.
  195. Build:
  196. - Removed unnecessary -pINET from the makemake options. This caused linking
  197. issues on Windows when 'clang' was used as a compiler. (the INET_API
  198. macros are needed only for Visual C++)
  199. - In makefrag, use inet_featuretool instead of scanning the compiler options
  200. to detect the enablement of the VoIPStream and NSC features
  201. - Fix: TCP_lwip did not compile when using the command-line make.
  202. - Examples: 'run' script can now take parameters containing spaces (as long as
  203. they are quoted properly)
  204. SCTP:
  205. - Packetdrill: Added SCTP support and socket options (by Irene Ruengeler)
  206. - SCTP: added support for the SCTP_ACCEPT command (by Irene Ruengeler)
  207. Physical layer:
  208. - Added IdealObstacleLoss. This obstacle loss model determines power loss by
  209. checking if there is any obstructing physical object along the straight
  210. propagation path. The result is either total power loss if there was
  211. such an object or no loss at all if there wasn't.
  212. MANET:
  213. - The "MANET Routing" feature (a collection of routing protocols ported
  214. into INET from other projects) was removed from the source tree. The
  215. removed MANET routing algorithms are still available in the INETMANET
  216. fork of INET (https://github.com/aarizaq/inetmanet-2.0). INET now contains
  217. the following natively implemented MANET routing protocols: AODV, DYMO, GPSR.
  218. Fixes:
  219. - IPv4: bug fix in IPv4 packet deserialization
  220. - Ieee802.11: bug fix in 802.11 management code (set TID only for QoS data
  221. frames)
  222. - TelnetApp: bug fix (cancel pending timers correctly)
  223. - IPv4NetworkConfigurator: bug fix: links were not properly detected by the
  224. configurator when nodes connected to a switch were defined after the switch
  225. in the NED file
  226. - IPv6: double delete fixed
  227. - IPv4RoutingTable: fix: only interfaces with the BROADCAST flag set have
  228. local broadcast addresses
  229. - AODV: fix: AODV stopped with an error if an ICMP error packet was received
  230. (ICMP packets are now accepted and silently dropped)
  231. - examples: removed obsolete fingerprints.ini files
  232. Ethernet:
  233. - Added a separate EtherPhyFrame class. Motivation: there was no obvious way
  234. looking at an EtherFrame to tell whether it already contains preamble+SFD
  235. or not.
  236. - Change: When modeling the decapsulation from PHY header (subtracting preamble
  237. and SFD lengths), padding to minimum frame size was also undone. This is
  238. no longer done.
  239. - EtherIFG renamed to EtherFilledIFG
  240. - Catch duplex-halfduplex misconfiguration and throw error
  241. - Fix incorrect byte counting during burst
  242. - Serializer: adapted to the introduction of EtherPhyFrame
  243. - Serializer: fix: CRC was in wrong byte order
  244. - Serializer: fix: length field contained incorrect value (size of frame
  245. instead of size of payload)
  246. INET-3.2.4 (April 2016) - stable
  247. --------------------------------
  248. This is a minor maintenance release that requires either OMNeT++ 4.6,
  249. or 5.0. (Earlier test versions of OMNeT++ will not work.)
  250. Changes:
  251. - build: updated inet_featuretool (the same like the opp_featuretool in OMNeT++ 5.0)
  252. - minor fixes to make it build under both OMNeT++ 4.6 and 5.0
  253. INET-3.2.3 (March 2016) - Stable
  254. --------------------------------
  255. This is a minor maintenance release that requires either OMNeT++ 4.6,
  256. or 5.0rc or later. (Earlier test versions of OMNeT++ will not work.)
  257. Changes:
  258. - build: updated inet_featuretool (the same like the opp_featuretool in OMNeT++ 5.0 rc)
  259. - several fixes to make it compatible with both OMNeT++ 4.6 and 5.0
  260. - smoke and fingerprint tests are running on both OMNeT++ 4.6 and 5.0
  261. - some variable renames and fixes in ieee802.11
  262. INET-3.2.1 (January 2016) - Stable
  263. ----------------------------------
  264. Changes:
  265. - 802.11 MAC model: EDCA, rate control crashes fixed
  266. - Radio: Fixed handling of abort reception/transmission.
  267. - Added missing INET_API defines
  268. - Physical layer: Fixed memory issues detected by valgrind
  269. INET-3.2 (December 2015) - Stable
  270. ---------------------------------
  271. This release requires either OMNeT++ 4.6, or 5.0b3 or later. (Earlier test
  272. versions of OMNeT++ will not work.)
  273. IEEE 802.11 MAC model:
  274. - After further refinement, new features, several bugfixes and validation
  275. testing, the new MAC model was made the default one. It was also renamed
  276. from Ieee80211NewMac to Ieee80211Mac, while the old Ieee80211Mac became
  277. Ieee80211OldMac.
  278. - Improvements on the new MAC model include:
  279. * Added fragmentation support;
  280. * Added Onoe, ARF, AARF rate control algorithms;
  281. * Implemented early Ack timeout;
  282. - Validation: Several validation tests were run against the ns-3 Wifi model.
  283. In the tested configurations, it was ensured that new Mac model behaves
  284. *exactly* as the ns-3 model (that is, timestamped packet logs match exactly).
  285. Discrepancies were resolved with bugfixes in our code, in the ns-3 code,
  286. or both. Bugs found in ns-3 were reported in the ns-3 bugtracker.
  287. See tests/misc/ns3.
  288. Physical layer:
  289. - Added support for the simulation of separate signal parts in the Radio.
  290. The preamble, header and data parts can be optionally simulated
  291. separately. This results in a more accurate simulation, because a
  292. reception may be aborted before the data part is received.
  293. - Added separate preambleDuration parameters to each radio transmitter for more
  294. flexible configuration.
  295. - Added Ieee80211IdealRadio, an ideal channel model (aka unit disc radio)
  296. suitable for use with Ieee80211Mac.
  297. Fixes:
  298. - Fixed PER computation in NetworkConfiguratorBase.
  299. - Fixed missing byte length in AODV and added control packet length configuration.
  300. - RTT initialization was fixed in TCP (Vegas, Westwood) because the original
  301. value caused "out of range" error with the overflow check introduced in
  302. OMNeT++ 5.0b3.
  303. - BPDU packet length was incorrectly set sometimes in the 802.1d model.
  304. - Fixed incorrect sign of lastSpeed in some mobility models.
  305. - The VoIPStream app has been updated to work with the ffmpeg version
  306. distributed in Ubuntu 15.10
  307. - Added some INET_API macros to compile properly on Windows.
  308. - QoSClassifier example no longer needs the 802.11 project feature.
  309. INET-3.1.1 (October 2015) - Stable
  310. ----------------------------------
  311. Changes:
  312. - Fixed build problem on Windows
  313. INET-3.1.0 (October 2015) - Stable
  314. ----------------------------------
  315. This release requires OMNeT++ 4.6 or later. In addition to several bug fixes,
  316. it features the following additions compared to INET-3.0:
  317. 1. A modular and extensible new 802.11 MAC model.
  318. It replaces the existing monolithic 802.11 MAC model that has become
  319. increasingly difficult to maintain and extend over the years. The new MAC
  320. has a modular design, where components can be swapped in and out. Concepts
  321. such as contention-based channel access, frame exchange sequences, EDCA
  322. queues, aggregation, fragmentation, duplicate detection, block acknow-
  323. ledgement, frame rate selection, automatic rate selection, etc would
  324. be expressed as self-contained C++ classes that implement abstract
  325. interfaces and (may) have multiple implementations.
  326. This kind of modular design also favours the open-source development model,
  327. because abstract interfaces give contributors better cues on where to start
  328. implementing a new feature, and new classes can be more readily accepted
  329. into the codebase because changes to existing code (and thus the risk of
  330. introducing new bugs) can be minimized.
  331. In this initial form, it has roughly the same set of 802.11 features as the
  332. old Ieee80211Mac module: basic DCF and EDCA, with the channel access and
  333. some more parameters being configurable.
  334. For now, the old Ieee80211Mac is still the default one for simulations.
  335. To switch to using the new one, add the following line to your omnetpp.ini:
  336. **.macType = "Ieee80211CompatibleNewMac"
  337. Ieee80211CompatibleNewMac is a wrapper around Ieee80211NewMac to make its
  338. parameterization similar to the old MAC.
  339. Note that the new MAC is a compound module. You can double-click on the mac
  340. submodule (in Tkenv) and expore its internals.
  341. See the ChangeLog in src/inet/linklayer/ieee80211/newmac/ for more
  342. information. The same folder also contains a presentation about the
  343. architecture of the new MAC, as it was presented at the 2nd OMNeT++
  344. Community Summit in September 2015 (see http://summit.omnetpp.org).
  345. 2. Packetdrill. This is a port of Google's Packetdrill testing tool into
  346. the INET Framework.
  347. Google released the script-based Packetdrill tool in 2013. It allows one
  348. to test transport protocols like UDP and TCP on Linux and BSD-based
  349. operating systems. Scripts define test cases that inject packets to the
  350. protocol implementation under test, perform operations using the API
  351. controlling the transport protocol, and verify the sending of packets, all
  352. at specified times. The ported version provides a simple and powerful
  353. method of testing transport protocols implemented in INET.
  354. Packetdrill has been contributed by Irene Rungeler and Michael Tuexen at
  355. FH Muenster. Packetdrill has been presented at the 2nd OMNeT++ Community
  356. Summit in September 2015; find the paper and presentation slides
  357. at http://summit.omnetpp.org.
  358. 3. Manet protocols in inet.routing.extras package are now disabled by default.
  359. You can still enable the MANET feature manually or you can use INETMANET
  360. (a fork of INET) which contains a more up to date codebase for these protocols.
  361. 4. Changes and bug fixes in the (old) 802.11 MAC:
  362. - The default lot time was not always correctly chosen for the configured
  363. mode (modulation and coding scheme).
  364. - Change maxQueueSize's meaning to per AC queue. Before, maxQueueSize
  365. referred to the total of the AC queue lengths, which could cause starvation
  366. of higher priority queues (see ChangeLog for more info.)
  367. - Removed external queue support, that is, the mgmt submodule in the Nic
  368. no longer serves as a passive queue for the MAC.
  369. INET-3.0.0 (June 2015) - Stable
  370. -------------------------------
  371. This release requires OMNeT++ 4.6 or later. There are numerous breaking changes
  372. since the latest stable version (2.6). Please read this file carefully and
  373. see the ChangeLog files in the source for more details.
  374. Nodes:
  375. - Modules that represent a "node" at network level should be tagged with
  376. @networkNode property instead of @node. (The @node property name was
  377. too generic.) The INode module interface was renamed to INetworkNode, too.
  378. Applications:
  379. - The functionality of PingTestApp was merged into PingApp and PingTestApp
  380. was removed.
  381. Network Layer:
  382. - Refactored IPv4/IPv6 options to use TLVOptions structure.
  383. INET-2.99.1 (May 2015) - Development
  384. ------------------------------------
  385. This release is the last development snapshot of the upcoming INET-3.0 version.
  386. The highlights of this release are:
  387. 1. Includes a new packet/bit/symbol level physical layer model for the 802.11
  388. OFDM PHY according to the IEEE 802.11-2012 standard, and a hypothetical
  389. generic packet/bit/symbol level APSK physical layer model for further
  390. experimentation. The new implementations include forward error correction
  391. encoding/decoding, scrambling/descrambling, interleaving/deinterleaving, and
  392. modulation/demodulation.
  393. 2. Contains fixes for more than 300 defects found by Coverity, an online C++
  394. static code analysis tool. The reported Defect Density is decreased to
  395. 0.5/kLoC which is considered a result. You can find the detailed results at
  396. https://scan.coverity.com/projects/3472
  397. 3. Contains several other memory leak and memory management fixes reported by
  398. valgrind memcheck.
  399. 4. Modernizes C++ source code using new C++11 features such as nullptr, auto
  400. types, range loop, override, etc.
  401. Read on for further details.
  402. All components:
  403. - Replaced all variants of findModuleWherever calls with module parameters,
  404. because their behavior is non-predictable and less composable.
  405. - Replaced most getParentModule calls with module parameters to make modules
  406. less dependent on their context, and thus more reusable.
  407. - Replaced UnimplementedModule and all related *_None modules with calls to
  408. firstAvailableOrEmpty NED function, and changed affected submodules to be
  409. present conditionally.
  410. - Moved interface classes under contract subdirectories. Moved base classes
  411. under base subdirectories.
  412. - Introduced a new script called 'inet_featuretool' in the root folder of the
  413. project that allows listing/enabling/disabling specific features from the
  414. command line. Use 'inet_featuretool -h' for further info.
  415. The 'make makefiles' command now uses this tool to extract the required
  416. command line options to generate the makefile. This means that after
  417. enabling/disabling a feature you always have to invoke 'make makefiles'
  418. to regenerate the makefile based on the new feature enablement state.
  419. Nodes:
  420. - All "node type" modules implement the INode module interface so it is now
  421. possible to create networks (using the <"actualNodeType"> like INode construct)
  422. where the actual node type can be configured from an ini file.
  423. Emulation:
  424. - Network Emulation feature no longer depends on OMNeT++ to detect the presence
  425. of PCAP. Instead the feature can be turned on/off by the user.
  426. Common:
  427. - Added create-module and delete-module commands to ScenarioManager.
  428. - New macros in INETDefs.h to test INET version: INET_VERSION (format: 0xAABB
  429. where AA is the major while BB is the minor version in hex) and
  430. INET_PATCH_LEVEL (format: 0xCC is the patch level in hex).
  431. - On Linux, specifying --valgrind as the first argument for the opp_run script
  432. (or a run script in the examples folder) will start the simulation using the
  433. 'valgrind' memory profiler.
  434. - Added a reusable HeatMapFigure and a GaugeFigure.
  435. - Added a reusable DelayedInitializer to support static member initialization
  436. without having to worry about the initialization order.
  437. - Renamed ByteArrayMessage to RawPacket.
  438. Environment:
  439. - Added isometric view angles to physical environment visualization.
  440. - Added class and module interfaces to physical environment.
  441. Mobility:
  442. - Added a new StaticConcentricMobility similar to StaticGridMobility that places
  443. nodes on concentric circles.
  444. - Removed TracCI and TraCIScenarioManager because these modules are maintained
  445. in the Veins framework.
  446. Serializer:
  447. - Refactored packet serializer classes to use a safe buffer class to read and
  448. write binary data. This allows parsing incorrect binary representations without
  449. runtime errors required by bit precise physical layer models.
  450. - Refactored recursion in serializers to be extensible with new packet formats
  451. without modifying existing code.
  452. - Fixed a number of packet length bugs and inconsistencies between serialized
  453. and non-serialized forms.
  454. Application:
  455. - Merged NetPerfMeter application from the master branch added by Thomas Dreibholz.
  456. PCAP:
  457. - Allow flushing the pcapFile after each write to ensure that all packets are
  458. captured in case of a crash.
  459. Transport Layer:
  460. - Added ITransportPacket interface to TCPSegment, UDPPacket, and SCTPMessage.
  461. It allows generic handling of transport packets.
  462. SCTP:
  463. - Added fragPoint parameter to limit the size of fragments.
  464. - After the handshake only send heartbeats on unconfirmed paths.
  465. - Fixed close command handling, i.e. stop reading when the command is sent.
  466. - Handle SACK and NR_SACK separately and use getByteLength instead of getBitLength.
  467. - Fixed several bugs.
  468. TCP:
  469. - Refactored and cleaned up TCP header options.
  470. - Fixed scaling window bug (Martin Becke).
  471. Network Layer:
  472. - Factored out the network topology extraction algorithm from IPv4NetworkConfigurator
  473. into a base class.
  474. - Added support to IPv4NetworkConfigurator for computing wireless shortest path
  475. based on a simple packet error rate estimation.
  476. - Added netmaskRoutes parameter to IPv4RoutingTable to control whether netmask
  477. routes are maintained or not.
  478. - Added useAdminDist parameter to IPv4RoutingTable to enable/disable the use
  479. of Cisco specific routing entry extension (disabled by default).
  480. - Added IGMPv3 implementation (the orinal code came from the ANSA project).
  481. It has been almost fully rewritten and extended by Tamas Borbely.
  482. Routing:
  483. - Added PIM-DM and PIM-SM implementation. The original codebase (from the ANSA project
  484. http://nes.fit.vutbr.cz/ansa) has been extensively reviewed, refactored and
  485. extended by Tamas Borbely.
  486. Configurator:
  487. - Refactored supported metrics (hopCount, delay, dataRate, errorRate) and related
  488. parameters in IPv4NetworkConfigurator.
  489. - Added autoroute XML configuration element to IPv4NetworkConfigurator. It provides
  490. parameters for the automatic route discovery. The autoroute element determines
  491. the set of routing tables that will be modified, the set of destinations for
  492. which the shortest path will be computed, the used metric and the cost for nodes
  493. and links.
  494. Link layer:
  495. - Added TUN/TAP virtual network interfaces thanks to Irene Ruengeler. This kind
  496. of interfaces send/receive packets to/from TUN applications.
  497. - Updated the 802.11 MAC implementation to use the new 802.11 mode descriptors.
  498. - Replaced the old 802.11 operational mode and modulation descriptor classes.
  499. This change modifies the fingerprint of a few simulations, because the header
  500. length was computed incorrectly.
  501. - Changed the 802.11 MAC to use asynchronous commands to set the radio mode.
  502. - Updated the 802.11 MAC state machine diagram (graphviz) to reflect the current
  503. state of the implementation.
  504. - Added safety guard to the 802.11 MAC against recursively calling handleWithFSM.
  505. - Fixed packet order in transmissionQueue.
  506. - Renamed getNetworkInterfaceModule to getInterfaceModule in InterfaceEntry.
  507. - Improved response time on external interfaces. On Linux cSocketScheduler is now
  508. using immediate mode to reduce the CPU usage while still maintaining a fast
  509. sub millisec response time (Artur Scussel). On Windows and MAC OS X the polling
  510. interval was reduced to improve the response time.
  511. - Added support for sending NF_LINK_BREAK signal from BMAC and CSMA. This is
  512. required for certain routing protocols (i.e. AODV) to function properly.
  513. - Extended Ethernet macs accept raw packet
  514. Physical layer:
  515. - Extended the physical layer contract interfaces for layered implementations.
  516. - Added signal representations for packet domain, bit domain, symbol domain,
  517. sample domain and analog domain, and also added contracts for the processing
  518. components in all of these domains.
  519. - Added a detailed 802.11 OFDM physical layer implementation that supports
  520. packet-level, bit-level, and symbol-level simulations in compliant, and also
  521. in freely configurable non-compliant operational modes.
  522. - Replaced the old 802.11 operational mode and modulation descriptor classes.
  523. The new classes are more detailed and more complete implementations. They
  524. supports both the flat and the layered physical layer models and provide PHY
  525. characteristics. The implemented 802.11 modes are: DSSS, HR-DSSS, FHSS, IR,
  526. OFDM, ERP-OFDM.
  527. - Added IEEE 802.11 High Throughput mode descriptor. This mode is defined in
  528. Clause 20. High Throughput (HT) PHY specification in the IEEE 802.11-2012
  529. specification. The new HT mode makes available the Wifi n modes in the
  530. Ieee80211ModeSet.
  531. - Added a simple hypothetical APSK physical layer implementation that supports
  532. packet-level, bit-level, and symbol-level simulations with widely configurable
  533. bit-domain and symbol-domain parameters.
  534. - Consistently moved packet level and bit level implementations into separate
  535. subdirectories throughout the physical layer.
  536. - Added a generic convolutional encoder/decoder, a generic additive
  537. scrambler/descrambler, and a 802.11 specific interleaver/deinterleaver.
  538. - Added a separate modulations folder that contains descriptor classes for
  539. various keying techniques such as BPSK, QPSK, QAM16, QAM64, QAM256, MQAM,
  540. DBPSK, DQPSK, MASK, MFSK, MPSK, DSSS-OQPSK-16, etc.
  541. - Reimplemented the computation of BER and SER based on the SNIR for the QAM-like
  542. modulations according to wikipedia.
  543. - Added a special IntervalTree cache for efficiently computing arrival intervals
  544. for transmissions. This change drastically increases the physical layer
  545. performance for large networks with lots of ongoing transmissions.
  546. - Refactored the radio medium model to support the optional representation of
  547. PHY frames for the layered physical layer models.
  548. - Refactored the medium analog model to simultaneously support the new layered
  549. and the already existing flat radio signal models.
  550. - Refactored the existing 802.11 statistical error models to use the new
  551. operation mode descriptors.
  552. - Extracted the BER table based 802.11 statistical error model into a separate
  553. class. This change modifies the fingerprint of simulations that use this
  554. error model.
  555. - Added a new detailed 802.11 error model that computes erroneous packet
  556. domain, bit domain or symbol domain signal representations.
  557. - Added 802.11 OFDM PHY frame serializer.
  558. - Extracted separate CommunicationCache classes from RadioMedium.
  559. - Extracted separate CommunicationLog class from RadioMedium.
  560. - Extracted a separate MediumLimitCache module from RadioMedium.
  561. - Extracted a separate MediumVisualizer module from RadioMedium.
  562. - Added optional recent communication heat map to MediumVisualizer.
  563. - Renamed radio control info classes to TransmissionRequest and ReceptionIndication.
  564. - Added Ieee80211TransmissionRequest with an optional IIeee80211Mode parameter
  565. to allow the mac module to determine the exact physical layer operational mode.
  566. - Added CosineAntenna and ParabolicAntenna.
  567. - Added basic antenna array support to be used with 802.11 HT modes.
  568. - Added arrival parameter to computeReceptionPower. Added snir parameter to
  569. computeIsReceptionSuccessful. Added snir parameter to computeReceptionDecision.
  570. - Added level parameter to printToStream function to better support logging.
  571. - Fixed the indefinite heap growth bug in the RadioMedium.
  572. Tests:
  573. - Added separate automated tests for convolutional encoding/decoding,
  574. interleaving/deinterleaving, scrambling/descrambling, modulation/demodulation
  575. and various combinations.
  576. Examples:
  577. - Added a new detailed 802.11 OFDM radio example that supports configurable
  578. packet-level, bit-level, and symbol-level simulations for model verification.
  579. - Also added a simple hypothetical APSK radio example that supports configurable
  580. packet-level, bit-level, and symbol-level simulations for model verification.
  581. - Added a work in progress Wireless tutorial in the tutorials/wireless folder.
  582. INET-2.99.0 (November 2014) - Development
  583. -----------------------------------------
  584. This release is a snapshot of the development that has begun in early 2013, and
  585. will culminate in the release of INET-3.0. The code is work in progress, which
  586. means all details may still change until 3.0 is reached.
  587. This release requires OMNeT++ 4.6 or later.
  588. The highlights of this release are:
  589. 1. Network layer refactoring that allows higher layer protocols (including
  590. routing protocols) to be written in a network protocol agnostic manner.
  591. 2. A new physical layer model that builds upon the INET and MiXiM physical
  592. layers, and brings them to new heights. Design goals were extreme modularity,
  593. extensibility, the ability to support (and easily switch between) various
  594. levels of detail, and the ability to add support for exploiting various
  595. pieces of parallel hardware.
  596. 3. Extensive refactoring aimed at improving code quality. It includes
  597. directory restructuring, code formatting, refactoring of init stages and
  598. publish-subscribe communication, and more.
  599. Read on for further details.
  600. Geometry model:
  601. - Added new orientation related classes: EulerAngles, Rotation, and Quaternion.
  602. - Added new basic 3D geometry classes: LineSegment, Box, Plane, and Polygon.
  603. - Added new 3D convex shapes: Cuboid, Sphere, Prism, and Polyhedron.
  604. - Added new geometry cache data structures: SpatialGrid, QuadTree, and BVHTree.
  605. Physical environment model:
  606. - Removed obsolete classes: Obstacle, ObstacleControl, and AnnotationManager.
  607. - Implemented a completely new physical environment model as follows.
  608. - Added a new global PhysicalEnvironment module that provides some trivial
  609. global properties: temperature, space limits, and a list of physical objects.
  610. - Added a new PhysicalObject class that has shape, position, orientation,
  611. material, and various graphics properties.
  612. - Added a new Material class along with some default materials: vacuum, air,
  613. copper, aluminium, wood, brick, concrete, and glass.
  614. - Added a new IObjectCache interface for efficient physical object queries
  615. along a line segment.
  616. - Added IObjectCache implementations: GridObjectCache and BVHObjectCache.
  617. - Added an XML file format to initialize the physical environment with shapes,
  618. materials, and physical objects.
  619. - Added support for drawing the physical objects on a compound module canvas
  620. (Tkenv) in 2D as seen from a configured view angle.
  621. - Added examples that demonstrate the initialization and usage of the physical
  622. environment, the physical objects, and the configuration of the object cache.
  623. Power model:
  624. - Removed obsolete classes: IBattery, BasicBattery, InetSimpleBattery and Energy.
  625. - Implemented a completely new power model.
  626. - Added new interfaces: IEnergyConsumer, IEnergyStorage, and IEnergyGenerator.
  627. - Added implementations: IdealEnergyStorage, and SimpleEnergyStorage.
  628. - Added a new power consumer implementation for radios based on the radio mode,
  629. the reception state, and the transmission state: StateBasedEnergyConsumer.
  630. Physical layer:
  631. - Refactored and unified the existing INET and MiXiM physical layer models into
  632. a new extended and scalable model as follows.
  633. - Designed new interfaces and classes to support optimistic parallel computation
  634. of reception results utilizing multicore CPUs and/or GPUs.
  635. - Designed new model that supports different level of details with respect to
  636. transmitters, receivers, radio signals, antennas, propagation models, etc.
  637. - Added new radio signal power representations: scalar and dimensional over
  638. time, frequency, space, etc.
  639. - Added various performance vs. accuracy tradeoff configuration options (e.g.
  640. range filter, radio mode filter, listening mode filter, MAC address filter)
  641. - Added concurrent transmitter and receiver radio mode (transceiver mode).
  642. - Added separate controllable radio mode and automatic signaling of reception
  643. state and transmission state.
  644. - Added configurable non-zero time radio mode switching.
  645. - Added separate power consumption model based on the radio mode, the reception
  646. state and the transmission state.
  647. - Added support for burst mode (back to back) transmissions.
  648. - Introduced compile time checked physical units in C++ code to avoid conversion
  649. errors and to enhance self documentation.
  650. Physical layer radio model:
  651. - Removed obsolete classes: Radio, IdealRadio, GenericRadio, GenericRadioModel,
  652. IRadio, IRadioModel, INoiseGenerator, and some others.
  653. - Added new interfaces: IRadio, IAntenna, ITransmitter, IReceiver, and IErrorModel.
  654. - Added new implementation classes: Radio, IdealRadio, ScalarRadio,
  655. DimensionalRadio, Ieee80211Radio, and Ieee802154UWBIRRadio.
  656. - Added a number of implementation base classes and subcomponents unlisted here.
  657. - Added and updated error model implementations: FlatErrorModel,
  658. Ieee80211NistErrorModel, Ieee80211YansErrorModel
  659. - Introduced controllable radio mode: off, sleep, receiver, transmitter,
  660. transceiver, and switching.
  661. - Introduced automatically signaled reception state: undefined, idle, busy,
  662. synchronizing and receiving.
  663. - Introduced automatically signaled transmission state: undefined, transmitting.
  664. - Added new antenna classes: IsotropicAntenna, ConstantGainAntenna,
  665. DipoleAntenna, and InterpolatingAntenna.
  666. Physical layer radio medium model:
  667. - Removed obsolete classes: ChannelAccess ChannelControl, IdealChannelModel,
  668. IdealChannelModelAccess and some others.
  669. - Added new interfaces to model the radio medium: IRadioMedium, IPropagation,
  670. IBackgroundNoise, IPathLoss, IObstacleLoss, IAttenuation, and INeighborCache.
  671. - Added new implementation classes: RadioMedium, IdealRadioMedium,
  672. ScalarRadioMedium, DimensionalRadioMedium, Ieee80211RadioMedium, and
  673. Ieee802154UWBIRRadioMedium.
  674. - Added propagation models: ConstantTimePropagation and ConstantSpeedPropagation.
  675. - Added background noise source models: ScalarIsotropicBackgroundNoise and
  676. DimensionalIsotropicBackgroundNoise.
  677. - Refactored existing path loss models: FreeSpacePathLoss, LogNormalShadowing,
  678. TwoRayGroundReflection, NakagamiFading, RayleighFading, RicianFading, and
  679. SUIPathLoss.
  680. - Added new path loss models: BreakpointPathLoss and UWBIRStochasticPathLoss
  681. from MiXiM.
  682. - Added a new obstacle loss model: TracingObstacleLoss.
  683. - Added INeighborCache implementations: ListNeighborCache, GridNeighborCache,
  684. and QuadTreeNeighborCache.
  685. Physical layer communication model:
  686. - Removed obsolete classes: AirFrame, IdealAirFrame and SnrList.
  687. - Added new interfaces: IRadioFrame, ITransmission, IArrival, IReception,
  688. INoise, ISNIR, IListening, and IReceptionDecision.
  689. - Added new implementation classes: RadioFrame, Arrival, Interference,
  690. ScalarSNIR, DimensionalSNIR.
  691. - Added a number of implementation base classes unlisted here.
  692. - Added range based, narrow band scalar and dimensional signal power
  693. representations for transmissions, receptions, and noise.
  694. Link layer:
  695. - Added a simple MAC protocol for testing purposes: IdealMac.
  696. - Ported MAC protocols from MiXiM: CSMA, BMACLayer, and LMacLayer.
  697. Network layer:
  698. - IPv4/IPv6: dynamic registration of upper layer protocols.
  699. TCP, UDP, SCTP, RSVP, OSPF, MANET are all merged into transport gates.
  700. Network user modules must register their protocol number by sending
  701. an IPRegisterProtocolCommand from initialize().
  702. Introduced an IPSocket class that wraps the registration process.
  703. - Refactoring: routing tables and routes now implement a common IRoutingTable
  704. and IRoute C++ interface (details below)
  705. Motivation: allow uniform access to the IPv4, IPv6 and possibly other routing tables;
  706. e.g. some wireless networks may use MAC address as network address. Also, in
  707. simulation it sometimes makes sense to work with simple abstract addresses like
  708. module names, indices or IDs.
  709. Being able to uniformly access routing tables containing different types of
  710. addresses makes it possible to implement routing protocols in generic way.
  711. I.e. the same DYMO module can work with IPv4, IPv6, MAC and other addresses
  712. without change and recompiling.
  713. Ingredients of this patch:
  714. - generic L3Address class that can hold all kinds of addresses (=union)
  715. - interfaces for generic access: IRoutingTable, IRoute, INetworkDatagram, etc.
  716. - Ping refactoring (use generic addressing instead of hardcoded IPv4, IPv6)
  717. - merged routing table change notification constants for IPv4 and IPv6
  718. - NetworkLayer was renamed to IPv4NetworkLayer and moved into src/networklayer/ipv4;
  719. same for IPv6 (NetworkLayer6 -> IPv6NetworkLayer).
  720. - IPvXAddress ha been extended and renamed to L3Address. Similarly,
  721. IPvXAddressResolver became L3AddressResolver. In addition to IPv4 and IPv6
  722. addresses, L3Address also allows using other kinds of addresses and identifiers
  723. (e.g. MACAddress, module IDs, module paths) for network-layer addressing.
  724. - Added GenericNetworkProtocol, which is a simplified network protocol with
  725. table-based forwarding. It uses L3Address, so it is agnostic to the network-layer
  726. address type.
  727. - Added MultiNetworkLayer, which is a wrapper for multiple network layers; in
  728. practice it can be used for simulating IPv4/IPv6 dual-stack hosts.
  729. - Ported network protocols from MiXiM: Flood, ProbabilisticBroadcast, and WiseRoute.
  730. C++ source cleanup:
  731. - Changed include directives to specify the full path of the header file. This
  732. resolves ambiguities caused by different projects having similar header files,
  733. and by case-insensitive file systems (Windows).
  734. - Changed header guards to use a uniform syntax.
  735. - Applied code formatting (whitespace, braces, etc.) Formatter script (based on
  736. uncrustify) is under _scripts/reformat, for future formatting needs.
  737. - Introduced C++ namespaces: inet, inet::utils, inet::ospf, inet::bgp, inet::sctp, etc.
  738. - Init stages have been refactored: initialization is now done bottom-up,
  739. by layers, and hardcoded init stage numbers have been replaced by symbolic
  740. constants.
  741. - Removed NotificationBoard and INotifiable: all modules now use OMNeT++ signals
  742. for publish/subscribe communication.
  743. - Improved logging: log messages have been classified by importance, and logging
  744. to EV has been replaced by EV_ERROR, EV_WARN, EV (for EV_INFO), EV_DETAIL,
  745. EV_DEBUG and EV_TRACE accordingly. Proper support for these log categories
  746. will be available from OMNeT++ 5.0, for 4.x they are simply mapped to EV.
  747. - Several modules have been adapted to the coding conventions, e.g. the RTP models.
  748. Directory reorganization:
  749. - Moved src/ under src/inet/ to avoid header conflicts with 3rd party software.
  750. - base/ and util/ have been consolidated into common/ and its several subdirectories
  751. (e.g. common/misc/, common/geometry/, common/queue/, common/lifecycle/)
  752. - queue/ has become common/queue/.
  753. - Routing protocols have been moved into the new routing/ toplevel directory
  754. from networklayer/routing/, networklayer/bgpv4 and networklayer/ospfv2/.
  755. - Protocols in networklayer/manetrouting/ have been moved into routing/extras/.
  756. - transport/ has been renamed to transportlayer/.
  757. - battery/ has been replaced by power/, intended to hold models for power management
  758. related components.
  759. - The physicallayer/ toplevel directory has been created to hold the new physical
  760. layer model.
  761. - The environment/ toplevel directory has been created for models that represent
  762. the global physical environment.
  763. - world/ no longer exists, its contents has been distributed to other directories.
  764. - status/ lives on as common/lifecycle/.
  765. - networklayer/autorouting/ has become networklayer/configurator/.
  766. - applications/httptools/ has been split up to several subdirectories: browser/,
  767. server/, configurator/, common/.
  768. INET 2.6 (March 05, 2015) - Stable
  769. ----------------------------------
  770. This release requires OMNeT++ 4.4 or later. It contains the following changes:
  771. - made compatible with OMNeT++ 5.0b1
  772. - added OLIA for CMT-SCTP (by Martin Becke)
  773. - added a trace player feature to NetPerfMeter
  774. - fixed compile errors when using OMNeT++ 5.0b1
  775. - fixed an issue with too small initial value of 'ssthreshold' in TCP
  776. - fixed window scaling in TCP
  777. - added INET_VERSION macro (in hexadecimal form e.g.: 0x0206)
  778. INET 2.5.1 (November 7, 2014)
  779. -----------------------------
  780. This release requires OMNeT++ 4.4.
  781. Changes:
  782. - fixed a crash in SCTP
  783. - now builds with all features turned off
  784. INET 2.5.0 (October 29, 2014)
  785. -----------------------------
  786. This release requires OMNeT++ 4.4.
  787. Changes:
  788. - made the codebase compile in C++11 mode. (required by OMNeT++ 4.6)
  789. - added netperfmeter application by Thomas Dreibholz
  790. INET-2.4.0 (June 12, 2014)
  791. --------------------------
  792. New AODV protocol implementation:
  793. - From-scratch AODV implementation backported from the integration
  794. branch; see src/network/routing/
  795. Changes:
  796. - Added support for link break detection in IdealWireless
  797. (using the NF_LINK_BREAK signal)
  798. - VoIPStream updated to match the latest version of ffmpeg library.
  799. - Added packet printers that can dump packet data in OMNeT++ 4.5/Tkenv
  800. in the packet trace window.
  801. - Fixed non-conformant 802.11 WAITACK timeout computation
  802. INET-2.3.0 (March 17, 2014)
  803. ---------------------------
  804. This release contains several new protocols, and a lot of changes that were
  805. backported from the current integration branch (destined to be INET 3.0).
  806. This release requires OMNeT++ 4.3.
  807. Application startTime/stopTime fixes:
  808. - apps start sending at startTime, and send their last packet
  809. before stopTime
  810. - negative stopTime means sending forever
  811. - if startTime and stopTime are the same, the app sends a single
  812. packet only (except TCP apps)
  813. DHCPServer and Client:
  814. - The whole implementation has been reviewed to bring it closer to
  815. the standards defined in RFC 2131 and 2132.
  816. - Major changes were made both in client's and server's state machines.
  817. It is now extended with new states (INIT-REBOOT, REBOOTING) and
  818. with new message types (DHCPNAK, DHCPDECLINE). The new states allow
  819. the user to model scenarios with lifecycle events.
  820. - The server's performance model has been removed.
  821. - The internal representation of the DHCP options were moved to the
  822. DHCPOptions INET message definition file.
  823. - Limitation: The client module currently does not support multiple
  824. DHCP servers and BOOTP relay agents.
  825. SCTP improvements submitted by Irene Rungeler and Thomas Dreibholz:
  826. - added CMT support (Concurrent Multipath Transfer)
  827. - added SCTP NAT support
  828. - added support for using SCTP over IPv6
  829. STP / RSTP support (802.1d) added to the EthernetSwitch:
  830. - STP: added IEEE 802.1D-1998 implementation of Spanning Tree Protocol.
  831. The source code is based on the ANSA (https://github.com/kvetak/ANSA)
  832. implementation.
  833. - RSTP: added IEEE 802.1D-2004 implementation of Spanning Tree Protocol.
  834. The source code is based on Juan Luis Garrote Molinero's implementation
  835. from INETMANET.
  836. - Interfaces can be configured using the new L2NetworkConfigurator module.
  837. This module allows one to configure network scenarios at Layer 2.
  838. - Replaced the EtherSwitch relay unit with a new, STP/RSTP capable one.
  839. The CPU and memory modelling are no longer supported in this relay unit.
  840. Nodes automatically pick-up the network configuration on restart:
  841. - An IPv4NodeConfigurator module has been added to hosts, which is responsible
  842. for configuring the host on restart based on information stored in the
  843. IPv4NetworkConfigurator module.
  844. INetFilter::IHook API:
  845. Modules can now hook into the IP module with the new 'NetFilter' API.
  846. Routing protocols can be implemented now without modifying the IP
  847. module's code. ManetRoutingBase, InternetCloud and ARP have been updated
  848. to use the new 'NetFilter' API.
  849. Added new routing protocols:
  850. - RIP (networklayer/routing/rip)
  851. - GPSR (networklayer/routing/gpsr)
  852. - DYMO (networklayer/routing/dymo)
  853. These protocols use INetFilter::IHook, too.
  854. Revised Mobility code:
  855. Split the 'models' directory into multiple directories:
  856. - contract - specifies the interface of mobility models
  857. - common - shared files among mobility models that are not complete
  858. mobility models
  859. - static - mobility models that actually don't move
  860. - single - mobility models controlling only one moving object
  861. - group - mobility models controlling multiple interlinked moving objects
  862. Radio:
  863. Added the Stanford University Interim radio propagation model contributed
  864. by Konrad Polys and Krzysztof Grochla.
  865. Other, smaller changes:
  866. - Added ILifecycle support to most applications
  867. - Renamed AppBase to ApplicationBase and moved to 'common'.
  868. - UDP: added option to specify the source address of the sent datagram
  869. - UDPBasicBurst: added bool parameter: excludeLocalDestAddresses
  870. - UDPVideoStreamCli: use stages in initialize
  871. - UDPApp*: Added AppBase and subclassed UDP apps from it.
  872. Binds sockets at startTime and closes them at stopTime.
  873. - EtherApp* bugfixes
  874. - Added a command to set TCP queue length threshold. TCP will notify the
  875. application if it is ready to transmit more bytes.
  876. - registerSignal() calls were moved from initialize() to static
  877. variable declarations.
  878. - Added/fixed @signal declarations, fixed the type of emitted values.
  879. - httptools: removed the fileExists() function.
  880. - New logging mechanism + EV handling in preparation for the new OMNeT++ 5.0
  881. logging mechanism.
  882. - IPv4Route/IPv6Route: added administrative distance field
  883. - Added IPv6 header serializer (so ext interfaces can be used with IPv6, too)
  884. - Invalid access of message pointers fixed in: OSPF, SCTP, DHCP, PingApp
  885. - Battery: code review, small fixes.
  886. - Revised init stages in all modules
  887. - Many smaller fixes and improvements (see the ChangeLog files for further detail.)
  888. INET-2.2.0 (August 22, 2013)
  889. ----------------------------
  890. The main highlight of this release is the long-sought support for
  891. simulating node shutdown/restart events for network nodes.
  892. This release requires OMNeT++ 4.2 or later.
  893. New features:
  894. 1. Lifecycle infrastructure.
  895. For node shutdown/crash/startup/etc, a LifecycleOperation (e.g.
  896. NodeShutdownOperation) is applied to the submodule tree of the node
  897. (host or router) by LifecycleController. Each module can decide how
  898. to handle the operation and how to store the resulting state (up/down,etc).
  899. Operations can be multi-stage, and don't need to complete immediately
  900. (i.e. they can take nonzero simulation time and multiple events to complete).
  901. Network nodes now also have a status submodule (type NodeStatus) with the sole
  902. purpose of storing the whole node's status (up/down) and displaying it
  903. via icons.
  904. - classes: ILifecycle, LifecycleOperation (NodeOperation, InterfaceOperation),
  905. LifecycleController, NodeStatus
  906. - NodeStatus module to store the network node's status (up or down)
  907. - added optional NodeStatus submodule to NodeBase
  908. - added a test for the basic Lifecycle infrastructure
  909. We also removed obsolete ways of shutdown/restart: FailureManager, PowerControl,
  910. LDP_FAILED/RSVP_FAILED, etc.
  911. 2. Static IP4 configuration:
  912. A new module, IPv4NodeConfigurator was added to IPv4NetworkLayer. This module
  913. is necessary because IPv4NetworkConfigurator cannot configure the node after
  914. a restart (see newly introduced node lifecycle operations above), since
  915. being a global module, it doesn't know about node lifecycle events. The new
  916. module listens to node lifecycle events, and configures the node's routing
  917. table and interfaces according to configuration computed by the network's
  918. global IPv4NetworkConfigurator module. Initialization-time node configuration
  919. is also carried out by the new module.
  920. 3. Added TCP Vegas and Westwood algorithms.
  921. The implementation is a slightly improved version of a 2013 workshop submission:
  922. "INET framework extensions for TCP Vegas and TCP Westwood", Maria Fernandez,
  923. Carlos Calafate, Juan-Carlos Cano and Pietro Manzoni. OMNeT++ Workshop, 2013.
  924. http://www.omnet-workshop.org/2013/uploads/slides/OMNeT-Workshop2013-SP-4.pdf
  925. 4. Added IdealWirelessNic (IdealRadio + IdealWirelessMac) and IdealWirelessFrame msg.
  926. This is a highly abstracted wireless NIC that consists of a unit disk radio
  927. and a trivial MAC protocol. It offers simplicity for scenarios where Layer 1
  928. and Layer 2 effects can be completely ignored, for example testing the basic
  929. functionality of a wireless ad-hoc routing protocol.
  930. The most important parameter this model accepts is the transmission range.
  931. When a radio transmits a frame, all other radios within transmission range
  932. will receive the frame correctly, and radios out of range will not be
  933. affected at all. There are no collisions -- a radio can simultaneously
  934. receive any number of frames, and also transmit a single frame at the same time.
  935. 5. STCP received several new features (patches submitted by Irene Ruengeler):
  936. - 8 new strategies for SCTP stream scheduling
  937. - SCTP Stream Reset (RFC 6525)
  938. - SCTP Authentication (RFC 4895)
  939. - Add-IP feature for SCTP (RFC 5061)
  940. - NR_SACK feature to SCTP
  941. - Partial Reliability SCTP (RFC 3758)
  942. - SCTP packet drop feature (draft-stewart-sctp-pktdrprep-15.txt)
  943. - SCTP "sack immediately" feature (draft-ietf-tsvwg-sctp-sack-immediately)
  944. - several alternatives to send fast retransmissions on SCTP
  945. 6. Loopback interface added
  946. Loopback used to be a special case inside the IPv4/IPv6 modules, now it
  947. is handled completely like any other interface, with a separate Loopback
  948. module.
  949. 7. EtherSwitch, AccessPoint:
  950. Bare EtherMAC modules have been replaced with EthernetInterface, so that
  951. external queues can be used (useful for e.g. QoS).
  952. 8. InterfaceTable, NIC, NetworkLayer:
  953. Revert to earlier behavior of determining networkLayerGateIndex.
  954. Now the module connected to a NIC *must* have gate vectors called ifIn and ifOut.
  955. If it doesn't, the code decides that the NIC is *not* directly connected to
  956. a network layer, and leaves networkLayerGateIndex unfilled.
  957. Other, smaller changes:
  958. - MANET protocols have been synchronized with the INETMANET project
  959. - NodeBase: added optional battery (off by default)
  960. - UDP: implemented ReuseAddress option (it's like SO_REUSEADDR socket
  961. option in Linux). If ReuseAddress is set to true on two sockets,
  962. then they can bind to the same local address/port.
  963. - PingApp and other apps: for the stopTime parameter, 'none' is now represented
  964. by -1, not 0. As this is the default setting, likely very few simulations
  965. (ini files) are affected.
  966. - IPv4NetworkConfigurator: added @groups to <interface> (ie. multicast groups
  967. can now be also specified in the <interface> element, not only in a separate
  968. <multicast-group> element)
  969. - in many simulation examples, .irt files were replaced by IPv4NetworkConfigurator XML.
  970. - EtherMACFullDuplex: wait IFG *after* frames, not before.
  971. - Ieee80211Mac: added signals declarations and statistics in the NED file
  972. - EthernetInterface: the encap submodule was made replaceable ("like IEtherEncap")
  973. - NED: Added InterfaceTable unconditionally to bridge devices, as it is currently
  974. required by IPv4NetworkConfigurator. Also added NotificationBoard required by
  975. InterfaceTable.
  976. - IPv4NetworkConfigurator: Changed to support mixed wired and wireless LANs
  977. for autoconfiguration.
  978. - Fixed IPv4NetworkConfigurator bug sometimes not being able to assign addresses.
  979. Changed to assign most constrained addresses first.
  980. - RTPHost was moved from src/transport to src/nodes/, and changed to be based
  981. on StandardHost
  982. - TurtleMobility: Fixed getting the position from a mobility signal listener
  983. during initialization. The script was resumed before initialize() finished,
  984. resulting in incorrect positioning.
  985. - StaticGridMobility: Added new parameters to specify the number of rows/columns
  986. and the horizontal/verical separation between the nodes. Note that the way
  987. the node positions are calculated has changed. You may need to update your
  988. INI files (see the NED file for more info.)
  989. - Many smaller fixes and improvements
  990. INET-2.1.0 (Jan 31, 2013)
  991. -------------------------
  992. NEW:
  993. - Added a new module to model an "internet cloud". The component can
  994. be configured to model packet delay, datarate and drop probability
  995. between each input-output interface pair. The parameter matrix
  996. is provided as an XML configuration file. See the README file
  997. in src/nodes/internetcloud for further details.
  998. - New SimpleVoIPReceiver/Sender applications that gather MOS (Mean
  999. Opinion Score) for measuring voice quality.
  1000. - Added HNA support to the Batman protocol (MANET)
  1001. CHANGED:
  1002. Applications:
  1003. - PingApp: Shows the configured destination address at the end of the
  1004. simulation.
  1005. - TCPBasicClientApp: bugfix #611: simulation generated an ASSERT if
  1006. numRequestsPerSession parameter value larger than 1.
  1007. - TcpApp: socket state is now shown on the GUI (in Echo, Sink and Session apps.)
  1008. - VoipTool: was renamed to VoIPStream (The actual module names are
  1009. VoIPStreamSender/Receiver.)
  1010. Ethernet:
  1011. - Transmission channel's 'disabled' parameter is now correctly handled in
  1012. EtherMacBase.
  1013. Ieee80211Mac:
  1014. - Better parameter processing in MAC: error is thrown if an undefined value
  1015. is specified for the opmode or autoBitrate parameters.
  1016. - Added the Ieee80211Descriptor class to assign modulation speed
  1017. and type for the different opModes.
  1018. - Bugfix: Default bitrate for opMode 'p' was incorrectly set.
  1019. BGP:
  1020. - Minor optimizations
  1021. - Bugfix: The text in specification "sets the ConnectRetryTimer to zero" means:
  1022. restart this timer. The _connectRetryTime member now stores the timeout value.
  1023. Manetrouting:
  1024. - updated documentation
  1025. - replaced Uint128 with ManetNetworkAddress
  1026. - removed:
  1027. - unused ManetTimer and BatmanTimer class
  1028. - unused static variables
  1029. - isIpLocalAddress(), uses isLocalAddress()
  1030. - convertAddressToString()
  1031. - getXPos(), getYPos() functions, you should use getPosition()
  1032. instead.
  1033. - redesigned coordinate and speed storage and access.
  1034. replaced double x,y with a Coord. getDirection() now returns the
  1035. speed vector (as a Coord)
  1036. - getters returns UNSPECIFIED_ADDRESS if addrType==UNDEFINED
  1037. - merged sendToIp() code into a common base function sendToIpOnIface()
  1038. AODV:
  1039. - AODV's hand-written descriptors were replaced with generated ones
  1040. [with A.Varga]
  1041. - aodv_msg_struct.h: added getter methods expected by the generated
  1042. descriptors removed hand-written aodv_msg_struct_descriptor.cc
  1043. Batman:
  1044. - Updated and expanded documentation
  1045. - Updated the code to match the latest available "batmand" version.
  1046. - Numerous optimizations
  1047. - Fixed several memory leaks
  1048. - Fixed routing table corruption and possible crash when multiple
  1049. radios were used in a single host
  1050. - Fixed decapsulation of incoming packets. Now it checks for the
  1051. type of decapsulated packet.
  1052. - Fix for a problem when aggregated batman packets were
  1053. dropped erronously.
  1054. - Added HNA support. Nodes can advertise external networks,
  1055. so traffic towards those networks can be routed correctly.
  1056. Use the announcedNetworks parameter to specify multiple connected
  1057. external networks.
  1058. - Added SourceModifier script to help the conversion from the original
  1059. batmand code.
  1060. - fixes spaces, tabs and empty lines
  1061. - replaces some c-style structs to c++-style classes
  1062. - replaces some batmand specified list manipulators with c++ code
  1063. - replaces malloc/free with new/delete
  1064. - removes prof_start()/prof_stop() calls
  1065. Examples:
  1066. - Added a new simulation with wired and wireless hosts exchanging UDP
  1067. data via an AccessPoint. It shows how to use the IPv4NetworkConfigurator
  1068. to mix wired and wireless networks.
  1069. - Fixes for BGP examples.
  1070. - New example to demonstrate HNA support in Batman.
  1071. - Hostautoconf examample moved to the adhoc folder.
  1072. Other changes:
  1073. - Uint128 class was removed. Use ManetNetworkAddress class instead.
  1074. - Visual changes in StandardHost/NodeBase: utility module icons are
  1075. now smaller and wlan[]/PingApp[] modules are displayed in a row.
  1076. - NodeBase: it is possible to use mobility module even if numRadios = 0
  1077. - Added check for detecting too small netmask parameter value in
  1078. HostAutoConfigurator
  1079. - PacketDump: TCP header option fix (dumped only in verbose mode.)
  1080. - Bugfix #620. The module pointer returned by a ModuleAccess class is
  1081. now cached only if get() was used. For get(module) no caching is done.
  1082. - MACAddress: made the constructor explicit so we will not see
  1083. unexpected implicit conversions in future
  1084. - IPv6Address: removed Uint128 related functions and added an
  1085. additional constructMask() method
  1086. - headerserializers: compile fix for Visual C++ 10.0 and later
  1087. - Pcap now records on ALL interfaces by default (including external IFs).
  1088. Added Enter_Method for better error reporting if a packet cannot be
  1089. serialized. Also added an icon for PcapRecorder.
  1090. - Several TCP related fixes.
  1091. INET-2.0.0 (August 7, 2012)
  1092. ---------------------------
  1093. If you are upgrading from an earlier INET version (i.e. INET 20111118),
  1094. expect to have to revise your existing omnetpp.ini files and possibly
  1095. NED/C++ files as well.
  1096. Changes since 1.99.5:
  1097. The DHCP protocol received several fixes. It is now possible to use DHCP
  1098. with both wired and wireless interfaces.
  1099. MANET routing protocols updated from INETMANET-2.0 @ 9a3dc7a
  1100. OLSR protocol received several patches allowing it to work with multiple
  1101. radios. It can work now on both wired and wireless interfaces.
  1102. Ieee80211:
  1103. - bugfix: The latest version of INET (1.99.5) contained a bug where
  1104. speed values for 11MBps and 12MBps were swapped.
  1105. - A new "bitrate" parameter was added to the Ieee80211Nic module.
  1106. The Radio and MAC module uses this bitrate to set thir own bitrate
  1107. value. Its default value is 11Mbps for 802.11b, 27Mbps for 802.11p
  1108. and 54Mbps for 802.11g and 802.11a. (i.e. the default bitrate depends
  1109. on the opMode parameter) This can avoid potential configuration
  1110. inconsitencies. UPDATE all your INI files accordingly.
  1111. The Ethernet module now throws an error message if two ethernet ports are
  1112. connected using an IdealChannel. Previously it just silently ignored the
  1113. connection that was definitely against the "least surprise" principle.
  1114. A new "Delayer" module has been added and DropsGenerator and DuplicatesGenerator
  1115. has been renamed to OrdinalBasedDropper and OrdinalBasedDuplicator respectively.
  1116. These modules implement the IHook module interface and can be installed inside
  1117. hosts to induce different packet errors. IHook modules can be inserted
  1118. between the network and link layer protocols.
  1119. The Ext-interface, TraCI, Mobility and Ping modules received some minor fixes.
  1120. See ChangeLogs in individual source folders for more information.
  1121. INET-1.99.5 (June 22, 2012)
  1122. ---------------------------
  1123. This is the final testing version of the 1.99.x series leading to the 2.0
  1124. release. Requires OMNeT++ 4.2 (version 4.2.2 suggested).
  1125. Several OSPF fixes and changes in configuration (see the ChangeLog file
  1126. in the OSPF folder for details):
  1127. - improved error detection in xml config files
  1128. - replaced the ospfConfigFile string-type ned parameter with ospfConfig parameter (xml type)
  1129. - uses IPvXAddressResolver for reading IP address and IP netmask values from xml
  1130. - uses @name instead @id to identify the routers in the xml config
  1131. - most attributes in xml config became optional, and default values
  1132. come from ned the parameters of OSPFRouting (with same name)
  1133. - modified xml schema: converted most subnodes to attributes
  1134. - Added etc/OSPFold_to_OSPFnew.xsl for converting the old xml format to new, and
  1135. converted all the ospf config files to the new format in the examples folder
  1136. (after using the converter you must convert router@id to router@name by hand).
  1137. - added @toward attribute to XML for easier interface specification
  1138. old: interfaces were specified by their name (e.g. ifName="eth0").
  1139. new: interfaces can be specified either by their name (e.g. ifName="eth0"),
  1140. or by the name of a module the interface is connected to (e.g. toward="Area3.N9")
  1141. - fixed OSPF.xsd schema
  1142. Queueing components:
  1143. The networklayer/queue folder has moved to linklayer/queue folder as
  1144. queues are mostly used in linklayer. This is a new framework that can be
  1145. used to create more complex systems.
  1146. Old queuing components has been removed:
  1147. - DropTailQosQueue, REDQueue, WeightedFairQueue
  1148. - IQoSClassifier (moved to linklayer/ieee80211/mac)
  1149. - BasicDSCPClassifier
  1150. Some of them can be substituted by compound modules composed of these newly
  1151. added components:
  1152. - FIFOQueue
  1153. - REDDropper
  1154. - ThresholdDropper
  1155. - PriorityScheduler
  1156. - WRRScheduler
  1157. For example REDQueue is a combination of a REDDropper and a FIFOQueue,
  1158. and DropTailQosQueue is a combination of some classifier, DropTailQueues,
  1159. and a PriorityScheduler. Read the INET Manual (in doc folder) for more
  1160. information about the usage of these modules.
  1161. Brand new Differentiated Services component (using the Queueing framework)
  1162. that is implementing the following standards:
  1163. - RFC 2474: Definition of the Differentiated Services Field (DS Field) in
  1164. the IPv4 and IPv6 Headers
  1165. - RFC 2475: An Architecture for Differentiated Services
  1166. - RFC 2597: Assured Forwarding PHB Group
  1167. - RFC 2697: A Single Rate Three Color Marker
  1168. - RFC 2698: A Two Rate Three Color Marker
  1169. - RFC 3246: An Expedited Forwarding PHB (Per-Hop Behavior)
  1170. - RFC 3290: An Informal Management Model for Diffserv Routers
  1171. New send method on UDPSocket now allows to specify on which interface
  1172. the packets should be sent out.
  1173. Added DHCP protocol implementation by Juan Carlos Maureira
  1174. taken over from INETMANET-2.0 @ 7fb431b. It can be deployed just
  1175. like any other UDP apps.
  1176. MANET routing protocols updated from INETMANET-2.0 @ 7fb431b
  1177. The whole manetrouting directory was taken over.
  1178. Mobility: Added two new mobility models:
  1179. - TraCI + TraCIScenarioManager to connect with an external server
  1180. - LinearNodeDistribution - static hosts in a single line in
  1181. ANY direction
  1182. IPv4Route: removed the "type" attribute from the routing entries
  1183. VoIPTool: Now compiles with the latest version of ffmpeg libs
  1184. IGMPv2: external routers attached to the IGMP module are now
  1185. responsible for implementing the IGMP router logic (emitting queries
  1186. and processing group membership reports). In this case the IGMP
  1187. module passes all incoming IGMP messages to the external router.
  1188. Updated 802.11 model from INETMANET-2.0 @ 7fb431b (minor bugfixes)
  1189. All files are synced. The following features were omitted:
  1190. MULTIQUEUES, HWMP and MESH networking related code.
  1191. The default wireless NIC is now using the latest 802.11 code from
  1192. INETMANET. The Ieee80211NewNic was renamed to Ieee80211Nic. With
  1193. the new NIC it is now possible set the operating mode (a,b,g,p)
  1194. The original Ieee80211 implementation was removed to avoid confusion.
  1195. The ancient 802.11 implementation from the mobility framework was removed
  1196. (i.e. the mf80211 directory).
  1197. Added HostAutoConfigurator module (should be added inside a host)
  1198. This configurator is deprecated and should be used ONLY if the hosts are
  1199. dynamically created/deleted during the simulation. Otherwise please use the
  1200. new IPv4NetworkConfigurator.
  1201. IPv4NetworkConfigurator: Examples have been updated to use this configurator.
  1202. XML configuration format changes:
  1203. - added @among attribute for interface and multicast-group entries:
  1204. "among='X Y Z'" means "hosts='X Y Z' towards='X Y Z'"
  1205. - added @metric attribute for interface entry in XML
  1206. - added @id attribute for wireless entry
  1207. - several smaller bugfixes and documentation changes (see ChangeLog
  1208. in the directory)
  1209. IPv4 fix: subnet directed broadcast (e.g. 192.168.1.255) works now:
  1210. When the datagram reaches the router of the subnet, it should
  1211. be forwarded as a link layer broadcast.
  1212. Changes in link layer
  1213. - added INic moduleinterface, all other network interfaces should
  1214. implement this
  1215. - renamed the netwIn, netwOut gates to upperLayerIn, upperLayerOut
  1216. Small fixes in MACAddress, PPP, IPv4NetworkConfigurator, VoIPTool,
  1217. Mobility, BatteryModule
  1218. INET-1.99.4 (March 20, 2012)
  1219. ----------------------------
  1220. This version contains mainly bugfixes, plus some features that did not make
  1221. into the previous release. Requires OMNeT++ 4.2 (version 4.2.1 suggested).
  1222. - Added IPv4NetworkConfigurator, a new network configurator for IPv4
  1223. This is intended to replace both routing files (.irt/.mrt) and
  1224. specialized network configurators like FlatNetworkConfigurator,
  1225. and do much more.
  1226. Covers address assignment (manual, automatic), adding manual routes,
  1227. setting up static routing, optimizing the routing tables, etc.
  1228. Unlike FlatNetworkConfigurator, it will generate per-interface
  1229. addresses. Wireless networks are also supported.
  1230. - Added an IGMPv2 implementation, based on code contributed by Jesse Jones
  1231. Changes in IPv4 multicast routing:
  1232. - We now use reverse path forwarding (routing entry contains
  1233. source address/mask, multicast group, parent (incoming) interface
  1234. and the set of child (outgoing) interfaces).
  1235. - The new routing table enables to specify a separate multicast
  1236. routing tree per source network and multicast group. (Old
  1237. implementation used a common tree for each source.) The multicast
  1238. routing tree is represented by IPv4MulticastRoute entries.
  1239. - IRoutingTable has been extended with methods manipulating the
  1240. multicast routing entries. Notifications are generated, when
  1241. the multicast routing table changes.
  1242. - IPv4 multicast routing algorithm uses the multicast routes
  1243. for forwarding decisions.
  1244. - When HL does not specify the multicast interface for outgoing
  1245. datagrams, then it is selected according to the routing table
  1246. or the source address of the datagram.
  1247. Change from previous behavior:
  1248. - packets sent to a multicast address from higher layer: it used
  1249. to go out on each interface that had a matching route in the
  1250. routing table (unless mcast interface was specified by HL).
  1251. Now it only goes out on the first match route's interface;
  1252. if there's no match it goes out on the 1st multicast interface
  1253. (unless mcast interface was specified by HL). If you want to
  1254. send on multiple interfaces, you have to send multiple packets
  1255. from the higher layer.
  1256. - multicast forwarding: no longer takes into account the routes
  1257. in the unticast routing table that have mcast destinations.
  1258. Only the (new format) multicast table is used. This new
  1259. multicast routing table can only be configured with
  1260. IPv4NetworkConfigurator, routing files don't support it.
  1261. - mobility: fixed infinite loop when nextChange is set to current
  1262. simulation time
  1263. - base: Added createNode(), createLink() factory methods to Topology class.
  1264. - Enhancements in IPvXAddressResolver. The new resolver allows you
  1265. to specify an interface based on which module the interface is
  1266. connected to.
  1267. - Added a RoutingTableRecorder module that records all the changes
  1268. in the routing table to a file.
  1269. - OSPF & BGP fix:
  1270. - gateway is now correcty set on routing table entries.
  1271. - eliminated redundant nextHop field from routing table entries
  1272. - Fixed routing table change notifications.
  1273. - Added printMulticastRoutingTable() to IRoutingTable
  1274. - Added IPingApp interface and support for more than one PingApp
  1275. in a host.
  1276. - Changes in the UDP socket API:
  1277. The first call on an UDP socket do not need to be bind() or connect()
  1278. anymore. It is possible to create a socket and sending data immediately
  1279. by calling sendTo(). It is also possible to set socket options before
  1280. calling connect() or bind(). connect() can be called several times.
  1281. However the bind() call fails if the socket is already bound.
  1282. - LDP: The LDP module now creates a separate UDP socket for each
  1283. multicast interface of the node, sets the multicast interface
  1284. on them, and sends a copy of LDP-Hellos via each socket.
  1285. - ICMP messages are correctly handled now in all TCP implementations
  1286. (in LwIP and NSC, too)
  1287. See ChangeLogs in individual source folders for more information.
  1288. INET-1.99.3 (Feb 22, 2012)
  1289. --------------------------
  1290. With this release, we have started a review of all basic protocol modules in
  1291. the INET Framework, fixing bugs, refactoring for clarity and maintainability,
  1292. and implementing commonly needed missing features. A testing framework is also
  1293. falling into place. We have added ChangeLog files in each source directory
  1294. to make it easier to follow things for end users and contributors alike, and
  1295. we'll also be requiring ChangeLog entries from contributors who submit code
  1296. patches. ChangeLogs also include a brief history of the corresponding
  1297. components from the start; if you have fixes or amendments, please contact us.
  1298. This version of INET requires OMNeT++ 4.2 (version 4.2.1 suggested).
  1299. - Ethernet model improvements: EtherMAC refactored for better readability;
  1300. added reconnect support, better PAUSE support, support for 40 Gigabit and
  1301. 100 Gigabit Ethernet; several bugfixes; regression and validation tests
  1302. - added predefined Ethernet link types: Eth10M, Eth100M, Eth1G, Eth10G,
  1303. Eth40G, Eth100G
  1304. - IPv4 model improvements: better fragmentation and multicast support; IPv4
  1305. module refactored for readability and maintainability; several bugfixes
  1306. - IPv4 routing table improvements: notification for routing entry changes
  1307. (routing entry objects no longer need to be immutable); lookup performance
  1308. optimization (routes are kept in decreasing prefix length order to speed up
  1309. longest prefix match); cleanup and bugfixes
  1310. - IPv6 improvements: implemented Default Router Selection as specified in
  1311. RFC 4861 6.3.6 (round-robin); tunneling is now available without xMIPv6;
  1312. implemented datagram fragmentation/reassembly; IPv6 now works over PPP;
  1313. several other bug fixes
  1314. - UDP: better multicast support and DSCP support (apps can specify ToS [IPv4] /
  1315. Traffic Class [IPv6] byte); bug fixes
  1316. - PPPInterface, EthernetInterface: use queueType="" instead of queueType=
  1317. "NoQueue" to turn off external queue module and use internal queue.
  1318. - Ieee80211, MANET routing: updated to latest INETMANET release:
  1319. radio: added support for noise generators and configurable error models;
  1320. 802.11: Airtime Link Metric support; duplicate frame detection / filtering;
  1321. support for prioritizing of multicast frames
  1322. - added WeightedFairQueue from INETMANET
  1323. - removed Ieee802.11 Mesh feature. It depended on too many upper layer
  1324. protocols and features.
  1325. - statistics (@statistic properties) cleaned up in all modules: standardized
  1326. on lower case statistics titles; record packet counts in a less confusing
  1327. way (NOT as rcvdPkBytes:count); cleaned up recorder lists
  1328. - miscellaneous: timer usage optimized in DYMO_FAU; revised PingApp, e.g.
  1329. printPing is now turned off by default; numerous bug fixes and improvements
  1330. - added a test suite (tests/); it contains fingerprint tests (for regression
  1331. testing); smoke tests (crude regression tests); statistical tests (for
  1332. validation); unit tests (of classes/modules); and other tests. We make most
  1333. use of fingerprint tests, so they are probably in the best state.
  1334. See ChangeLogs in individual source folders for more information.
  1335. INET-1.99.2 (Nov 18, 2011)
  1336. --------------------------
  1337. Requires OMNeT++ 4.2 (final).
  1338. - Integrated Kristjan Jonsson's HttpTools project,
  1339. http://code.google.com/p/omnet-httptools/
  1340. - The mobility models have been revised and brought in sync with their
  1341. MiXiM versions; added 3D coordinate system from MiXim; added MoBAN mobility
  1342. model from MiXiM.
  1343. - UDP: multicast, broadcast and ttl support; bugfixes; heavy API changes.
  1344. It is now possible to receive broadcasts and multicasts. Implemented support
  1345. for the following socket options: time-to-live (unicast and multicast),
  1346. broadcast, multicast output interface, join multicast group, leave multicast
  1347. group. Connect without bind is now supported (used to be an error).
  1348. The cost of the above is changes in the way you talk to the UDP module:
  1349. UDPControlInfo has been split to several classes (UDPBindCommand, UDPConnect-
  1350. Command, UDPSendCommand, etc.), and the UDPSocket class has been redesigned.
  1351. Check transport/udp/ChangeLog for detailed information.
  1352. - Apps: some standardization of parameter names, so that various modules don't
  1353. call the same thing differently. Introduced the following names:
  1354. 'startTime', 'stopTime', 'sendInterval', 'localAddress', 'localPort'.
  1355. E.g. the following parameters became 'sendInterval': 'messageFreq',
  1356. 'waitTime', 'packetInterval', 'interval', and 'waitInterval'.
  1357. - Added a 'stopTime' parameter to several apps: TelnetApp, UDPBasicApp,
  1358. TCPBasicClientApp, IPvXTrafGen, EtherAppCli
  1359. - UDPBasicBurst revised
  1360. - Removed Blackboard (it was obsolete and out of use)
  1361. - Numerous bugfixes.
  1362. INET-1.99.1 (May 27, 2011)
  1363. --------------------------
  1364. This is a beta of a major feature release, with new models and a lot of
  1365. incompatible changes. It requires at least OMNeT++ 4.2b2.
  1366. If you are upgrading from an earlier INET version, expect to have
  1367. to revise your existing simulations.
  1368. - INET can now be compiled with various parts turned off. This is based on
  1369. the new OMNeT++ Project Features facility, avaiable from 4.2b2, see
  1370. http://www.omnet-workshop.org/2011/uploads/slides/OMNeT_WS2011_S3_P1_Varga.pdf
  1371. slides 9-13. INET project features are defined in the .oppfeatures file;
  1372. features can be turned on/off in Project -> Project Features... in the IDE.
  1373. Not all features will compile on Windows: the ones that need to be turned off
  1374. on Windows are TCP_NSC, TCP_lwIP, VoIPTool, MANET Routing, Mesh Networking.
  1375. - Integrated the following external packages: VoIPTool, xMIPv6.
  1376. - Several components were taken over from INETMANET: MANET routing, combined
  1377. 802.11a/b/g/e model, 802.11 mesh networking, obstacle model, several
  1378. mobility models, battery model, globalARP feature. Multiple radio support
  1379. has also been added to INET, loosely based on the INETMANET solution.
  1380. - NED-level cleanup of several compound modules: hosts, routers, NICs, APs,
  1381. switches, etc. There were a lot of very similar modules that differred in the
  1382. presence or type of one or more submodules, resulting in code duplication
  1383. and confusion in general. Many variants have been eliminated, and the
  1384. differences have been mapped to parameters, parametric or conditional
  1385. submodules.
  1386. - ChannelController now deals only with radios and not hosts. This makes it
  1387. possible to have hosts with several radio interfaces. The radios are
  1388. registered/unregistered in the ChannelAccess module (previously host
  1389. registration was done by the mobility modules). ChannelControl/ChannelAccess
  1390. are now completely independent of the mobility modules. This means that if
  1391. there is no mobility module present in a host, the host's displaystring
  1392. will be used to set the static positions of the radios.
  1393. - Ethernet switch was moved under the linklayer/ethernet/switch directory.
  1394. EtherHostQ is now called EtherHost. To have no queue in the Ethernet host,
  1395. specify queueType="NoQueue" (which in fact inserts a dummy queue).
  1396. In EtherSwitch, EtherHost and inside the EthernetInterface the
  1397. csmacdSupport parameter can be used to switch between the full (EtherMAC)
  1398. and the simplified (EtherMACFullDuplex) implementation.
  1399. - EthernetInterfaceFullDuplex removed. By default EthernetInterface is using
  1400. EtherMACFullDuplex, a simplified MAC that does not support CSMA/CD and works
  1401. only with point-to-point links. Use the EthernetInterface with
  1402. csmacdSupport=true to turn on CSMA/CD support (EtherMAC).
  1403. - IPv4-related modules and classes whose names started with "IP" were renamed
  1404. to start with "IPv4", to be more explicit and more future-proof. IP->IPv4,
  1405. IPAddress->IPv4Address, IPControlInfo->IPv4ControlInfo, IPRoute->IPv4Route,
  1406. IPDatagram->IPv4Datagram, etc.
  1407. - Renamed routingTableFile to routingTable in RoutingTable6. Added default
  1408. parameter value. You no longer need to specify **.routingTableFile =
  1409. xmldoc("empty.xml") and have an empty.xml file in the model directory.
  1410. OMNeT++ 4.2 supports the xml("<inlinexml/>") syntax; we now use that for
  1411. the default value.
  1412. - New PcapRecorder module (in StandardHost) for recording traffic to a pcap file.
  1413. It is intended as a replacement for the old TCPDump module.
  1414. - StandardHost and Router now have a common base (containing Link~ and
  1415. NetworkLayer) Wireless~ and AdhocHost is derived from StandardHost. All of
  1416. them (including Router) support multiple wireless, Ethernet, PPP and
  1417. external interfaces (i.e. multiple wireless radios are supported using
  1418. different channels)
  1419. - Several modules - especially inside StandardHost - are now conditional
  1420. (using NED's new "conditional submodule" feature), and will be instantiated
  1421. only if needed. For example, TCP is only instantiated if there are TCP
  1422. applications configured for the host.
  1423. - Router and StandardHost have optional mobility support. The mobility module
  1424. is created only if there are wireless cards present in the node (numRadios>0).
  1425. Of course WirelessHost and AdhocHost have mobility by default. You can configure
  1426. the mobility type using the "mobilityType" parameter. BasicMobility have
  1427. been renamed to NullMobility (resulting stationary nodes). There is a dummy
  1428. mobility type called NoMobility which does not have any C++ implementation.
  1429. Nodes that do not need mobility support (i.e. no radios) should set their type
  1430. to NoMobility.
  1431. - FailedRouter has been removed (was a trivial node). BurstHost moved to the
  1432. example directory (it was not generic and was used only by a single example).
  1433. MobileHost has been removed; use AdhocHost instead as a drop-in replacement.
  1434. - Network Interface Cards (Ieee80211Nic, EthernetInterface and PPPInterface)
  1435. now support input and output hook modules that implement the IHook interface.
  1436. Hooks are useful for simulating packet drops, duplication or measuring thruput.
  1437. The number of hook modules can be controlled with the numInputHooks /
  1438. numOutputHooks parameters, and the hook's type via typename.
  1439. An example: that installs two hooks in the input path of PPP:
  1440. **.ppp[*].numInputHooks = 2
  1441. **.ppp[*].inputHook[0].typename = "DropsGenerator"
  1442. **.ppp[*].inputHook[1].typename = "ThruputMeter"
  1443. - Network interfaces can specify a queueType paramater. Possible values:
  1444. DropTailQueue, DropTailQoSQueue, REDQueue, NoQueue.
  1445. To disable queueing, use NoQueue: **.ppp[*].queueType = "NoQueue"
  1446. - PPPInterfaceNoQueue and EthernetInterfaceNoQueue have been removed; use the
  1447. queueType="NoQueue" parameter in the interfaces.
  1448. - TCP, UDP and SCTP implementations are now pluggable; you can select the
  1449. implementation with the tcpType, udpType and sctpType parameters in the host.
  1450. Modules must implement ITCP, IUDP and ISCTP interface and the specify
  1451. the implementing NED type in the parameter. At the moment SCTP and UDP
  1452. have only one implementation. TCP has TCP (the default INET implementation),
  1453. TCP_NSC (Network Simulation Cradle) and TCP_lwIP (the lightweight IP stack).
  1454. - AccessPoint has been generalized. Now it supports both (multiple) wireless
  1455. and ethernet ports. Relaying between ethernet and wireless ports is now
  1456. supported. A relay unit is created only if more than one ports are present
  1457. in the AccessPoint, i.e. having a single radio and no ethernet connections
  1458. will fall back to a single wireless NIC without a relay unit. Having no radio
  1459. and several ethernet ports connected will practically result in an ethernet
  1460. switch.
  1461. - Wireless NICs now should implement IWirelessNIC. Now we have only a single
  1462. Ieee80211Nic implementation instead of the 5 variants we have previously.
  1463. Management type (Adhoc, AccessPoint, Station, AccessPointSimplified and
  1464. StationSimplified) can be configured using the mgmtType parameter of the NIC
  1465. (instead of having separate NIC types for each.)
  1466. - Multiple radios on independent channels are now supported by all nodes. See
  1467. the wireless/multiradio example.
  1468. - The radio infrastucture have been refactored. All radios should now implement
  1469. the IRadio interface. They are now pluggable. RadioModel can be configured
  1470. also via a module parameter. The attenuationModel parameter was moved from
  1471. the radio to ChannelController (it is now global) and renamed to propagationModel.
  1472. Several new propagation model have been added (see NED file docs).
  1473. - Removed the TCPSpoofingHost node. Use instead StandardHost with the
  1474. tcpType="TCPSpoof" parameter.
  1475. - NAMTrace and NAMTraceWriter modules have been moved to the obsolete directory.
  1476. Turn on event logging instead and use the eventlog animator in the IDE. Event
  1477. logging can be turned on with --record-eventlog=true from the command line or
  1478. using the toolbar button in Tkenv. Once the .elog file is generated, right
  1479. click on it in the IDE and select Open with / Animation Player.
  1480. - ChannelInstaller module has been removed. Implemented a ThruputMeteringChannel that
  1481. extends DatarateChannel. It adds thruputDisplayFormat that allows showing different
  1482. statistics along the source gate of the channel. Specifying "" as display format
  1483. results the same behavior as DatarateChannel (with no performance penalty).
  1484. If you want to gather statistics, you do not need this channel. The DatarateChannel
  1485. already emits signals "channelBusy", "messageSent" and "messageDiscarded"
  1486. that can be used to calculate different statistics. Use "opp_run -h neddecls"
  1487. to see what statistics are provided by default. e.g in INI file use
  1488. **.channel.throughput.result-recording-modes=+last to store all channel's
  1489. thoughput values as scalars.
  1490. INET-1.99.0 (March 3, 2011)
  1491. ---------------------------
  1492. This is a beta of a major feature release, with new models and also incompatible
  1493. changes. If you are upgrading from an earlier INET version, expect to have
  1494. to revise your existing omnetpp.ini files and possibly NED/C++ files as well.
  1495. The most significant changes:
  1496. - replaced cOutVector and recordScalar() with signal-based statistics
  1497. recording in most places (see @statistic properties in NED files)
  1498. - support for more than one type of tcpApp and udpApp in StandardHost
  1499. (elimination of tcpAppType/udpAppType parameters)
  1500. - Interfaces renamed to start with letter "I". BasicMobility -> IMobility,
  1501. TCPApp->ITCPApp, UDPApp->IUDPApp, SCTPApp->ISCTPApp, MacRelayUnit->IMacRelayUnit,
  1502. Radio->IRadio, Ieee80211Mgmt->IIeee80211Mgmt, OutputQueue->IOutputQueue,
  1503. INetworkInterface->IWiredNic
  1504. - added new AdhocHost for basic node types used in adhoc networks. Supports
  1505. mobility and multiple wireless radios. It obsoletes the MFMobileHost
  1506. (use AdhocHost with **.wlan.type-name=Nic80211) and MobileHost (use AdhocHost
  1507. with default parameters)
  1508. - added new AccessPoint module with configurable wireless, ethernet and relay
  1509. unit and mobility module types. Obsoletes: WirelessAP and WirelessAPWithEth
  1510. (use AccessPoint), WirelessAPSimplified and WirelessAPWithEthSimplified
  1511. (use AccessPoint with **.wlan.type-name=Ieee80211NicAPSimplified),
  1512. WirelessHost (use StandardHost with numRadios=1) and WirelessHostSimplified
  1513. (use StandardHost with numRadios=1 and **.wlan.type-name=Ieee80211NicSTASimplified)
  1514. - in StandardHost and Router it is now possible to configure what wireless, ethernet, ppp
  1515. or external interfaces are used. Wired interfaces must implement IWiredNic, and wireless
  1516. modules must implement IWirelessNic. Mobility type and number of wireless cards (default=0)
  1517. can be also configured via **.wlan.type-name and **.mobility.type-name. The use of
  1518. interfaces obsoletes several older modules which differed only in interface types
  1519. (like WirelessHost or ExtRouter)
  1520. - enhanced Router to support external interfaces, ppp, wireless, ethernet etc. This module
  1521. is similar to StandardHost except it does not contain the transport layer and application layer
  1522. protocols (plus IPForwarding is enabled by default). Obsoletes the ExtRouter module (use Router)
  1523. - NetworkLayer and NetworkLayer6: added dummy modules that implement the IHook interface
  1524. at the bottom of network layer (above link layer). This allows one to insert
  1525. thruput metering, packet drop and duplication modules etc. without modifying the module.
  1526. New modules implementing IHook: ThruputMeter, DropsGenerator, DuplicatesGenerator and Nop.
  1527. Use **.networkLayer.outputHook.type-name = "ThruputMeter" to configure them (use inputHook
  1528. for incoming traffic)
  1529. - added global ARP optimization. If you are not interested in modeling the traffic of ARP protocol,
  1530. it is now possible to use a much faster implementation by specifying (by Alfonso Ariza Quintana):
  1531. **.networkLayer.arp.globalARP=true
  1532. - multiple radios (on multiple channels) are supported by StandardHost, AdhocHost
  1533. and Router if ChannelControllerExtended is used in the network.
  1534. - point-to-point Ethernet links can now use normal DatarateChannels
  1535. (EtherMAC's txrate parameter was removed)
  1536. - added a new TCP model that directly wraps the lwIP stack (without
  1537. NetworkSimulationCradle (NSC) overhead)
  1538. - TCP transfer mode (bytecount / cPacket / bytestream) is now
  1539. controlled by the app via a control info field (the sendQueueClass/
  1540. receiveQueueClass TCP module parameters were removed); this works across
  1541. all three TCP models (native OMNeT++, NSC, lwIP)
  1542. - experimental support for application-imposed TCP flow control (i.e.
  1543. implementation of "socket read" calls; this is not yet in the
  1544. "integration" branch)
  1545. - brand new BGPv4 model, contributed by Helene Lageber
  1546. - OSPF model: mass renaming and code formatting to make code conform
  1547. to the rest of INET in coding style
  1548. - fix: Ieee80211DataFrame was missing the LLC SNAP header, so all
  1549. 802.11 data frames were simulated with 8 bytes less length than
  1550. they should have (this will slightly modify simulation results)
  1551. - RTP model refactoring to make it use msg files and a control info
  1552. based interface toward apps
  1553. - some improvements INETMANET implemented have been taken over into
  1554. INET (also to decrease INETMANET maintenance cost)
  1555. - started taking over xMIPv6's modification to the base INET, so
  1556. xMIPv6 won't need to patch INET
  1557. - added basic "New INET simulation" wizards which appear under
  1558. File|New in the IDE
  1559. - started working on an INET User Manual (see inet.omnetpp.org)
  1560. - added an initial test suite with tests for Ethernet, 802.11 and TCP
  1561. (uses OMNeT++'s opp_test utility and the "omnetpp" R plugin for
  1562. scripted checking of simulation results; not yet in "integration")
  1563. - many smaller bug fixes and refactoring, mostly invisible for users
  1564. In more details:
  1565. * Reorganized StandardHost:
  1566. Several changes were introduced to make the basic building blocks of
  1567. simulation (StandardHost, AdhocHost, Router etc.) more configurable,
  1568. without the need to copy and modify the modules or derive a new module
  1569. type. Applications, tcp type, nic, mobility, routing protocols can be
  1570. configured using parameters or the **.type-name=typename in the .ini file.
  1571. * Ethernet point-to-point links:
  1572. In the old code, datarate of Ethernet channels were to be set to zero, and
  1573. the real datarate given in the txrate parameter of EtherMAC. This was to
  1574. work around a limitation in OMNeT++ 3.x's channel support. In the new code,
  1575. the txrate parameter is gone, and the datarate should be set on the
  1576. channel. This is consistent with e.g. PPP. This requires non-backward
  1577. compatible changes to models.
  1578. * Support for several different TCP/UDP apps in StandardHost
  1579. In the old code, tcpApp[] is declared as
  1580. tcpApp[numTcpApps]: <tcpAppType> like TCPApp;
  1581. which has the side effect that when using StandardHost, all apps have to be
  1582. the same type (the one in the tcpAppType parameter). OMNeT++ 4.x supports
  1583. setting the types one-by-one, using the following syntax:
  1584. tcpApp[numTcpApps]: <> like TCPApp;
  1585. and in the ini file, you have to write
  1586. **.tcpApp[0].type-name = "inet.applications.tcpapp.TCPBasicClientApp"
  1587. **.tcpApp[1].type-name = "inet.applications.tcpapp.TCPEchoApp"
  1588. **.tcpApp[*].type-name = "inet.applications.tcpapp.TCPSinkApp"
  1589. etc.
  1590. The existing tcpAppType/udpAppType/sctpAppType parameters would be removed.
  1591. However, this also means that existing ini files have to be changed.
  1592. If they are not updated, the simulation will not work.
  1593. * Multiple TCP implementations, and related parameterization changes
  1594. INET now supports Network Simulation Cradle (NSC; wraps several FreeBSD,
  1595. Linux and lwIP stacks), and we have an lwIP-based TCP module as well
  1596. (without the NSC limitations and overhead); the NED types are TCP, TCP_NSC,
  1597. TCP_lwip. Any of them can be selected in StandardHost, via the tcpType
  1598. parameter (the tcp module is now declared as "tcp: <tcpType> like ITCP").
  1599. tcpType defaults to the native OMNeT++ TCP module.
  1600. The sendQueueClass/rcvQueueClass parameters are gone. They were used to
  1601. select what to transmit inside TCP segments: C++ objects (cPacket) or byte
  1602. counts only. Now, this can (must) be specified per-connection by the app
  1603. layer, because the app knows best what it requires. Also, instead of two
  1604. class names now there is a single enum value; it should be put into the
  1605. dataTransferMode field of TCPOpenCommand. Potential values are:
  1606. TCP_TRANSFER_UNDEFINED = 0; // Invalid value
  1607. TCP_TRANSFER_BYTECOUNT = 1; // Transmit byte counts only
  1608. TCP_TRANSFER_OBJECT = 2; // Transmit the application packet C++ objects
  1609. TCP_TRANSFER_BYTESTREAM = 3; // Transmit actual bytes
  1610. Ideally, all 3 TCP implementations should understand all 3 transfer modes;
  1611. currently OBJECT support is missing from TCP_NSC.
  1612. INET-20110225
  1613. -------------
  1614. - additional statistics in the SCTP module (Alberto Cortes)
  1615. - fix for SCTP Path.Max.Retrans threshold problem (Alberto Cortes)
  1616. - minor changes in #includes to ensure compatibility with upcoming OMNeT++ 4.2
  1617. INET-20100723
  1618. -------------
  1619. - TCP improvement (Thomas Reschka, Zoltan Bojthe).
  1620. * implemented RFC 1323 (TCP Extensions for High Performance):
  1621. - Window Scale option
  1622. - Timestamps option (Round-Trip Time Measurement - RTTM)
  1623. - Protect Against Wrapped Sequence Numbers (PAWS)
  1624. - added a PAWS modification according to the latest proposal
  1625. of the tcplw@cray.com list (Braden 1993/04/26)
  1626. * implemented missing part of RFC 2581: Re-starting Idle Connections
  1627. * various fixes
  1628. * see details in src/transport/tcp/ChangeLog.
  1629. - added examples for new TCP features (Thomas Reschka):
  1630. * examples/inet/tcptimestamps
  1631. * examples/inet/tcpwindowscale
  1632. - added NetAnimTrace module (Andras Varga). This module can be used to record
  1633. input for the NetAnim program (http://www.nsnam.org/wiki/index.php/NetAnim)
  1634. - Ieee80211Radio: added a shadowing component for the path loss reception model
  1635. (Nikos Simantirakis). This is a random variable has a normal distribution
  1636. in dB and results to -normal distribution in mW. This is a widespread and
  1637. common model used for reproducing shadowing effects (Rappaport, T. S. (2002),
  1638. Communications - Principles and Practice, Prentice Hall PTR).
  1639. - bugfix and small improvements in SCTP, TCPSessionApp, ThruputMeter
  1640. - cosmetic changes in many other files (comments, indentation, compiler warning
  1641. elimination, variable renaming, etc.)
  1642. INET-20100323
  1643. -------------
  1644. - added "label" annotations to gates and modules to support the adaptive palette
  1645. filtering and gate matching in the connection chooser (OMNeT++ 4.1).
  1646. - updated SCTP implementation by Michael Tuexen, Irene Ruengeler and
  1647. Thomas Dreibholz
  1648. - added support for Sam Jensen's Network Simulation Cradle,
  1649. http://www.wand.net.nz/~stj2/nsc/, which makes real-world TCP stacks available
  1650. in simulations. Currently NSC supports the FreeBSD, OpenBSD, lwIP and Linux
  1651. stacks. The TCP_NSC module (transport/tcp_nsc) is a drop-in replacement for the
  1652. normal TCP module (transport/tcp), and can be activated with a single parameter
  1653. setting in StandardHost. See src/transport/tcp_nsc, 3rdparty/README, and
  1654. examples/inet/tcpclientserver.
  1655. - added TCP SACK and New Reno implementation by Thomas Reschka. The original TCP
  1656. version is still available as TCP_old. See src/transport/tcp/ChangeLog for details.
  1657. INET-20090325
  1658. -------------
  1659. - tagged version for OMNeT++ 4.0 final
  1660. - reworked build system to create shared library by default
  1661. - added SCTP from Michael Tuexen and Irene Ruengeler
  1662. INET-20080920
  1663. -------------
  1664. Internal snapshot, for omnetpp-4.0b6.
  1665. - performance optimization in all queue modules: remember output gate pointer
  1666. instead of looking up gate by name for each send()
  1667. - Ieee80211AgentSTA.cc: randomize the start time of the scanning process.
  1668. (Randomizing the time of sending the first beacon in Ieee80211MgmtAP.cc
  1669. was already done earlier.)
  1670. - IP: set TTL to 1 on new datagram if the destination address is link local
  1671. multicast, to prevent broadcasting to non-neighbouring routers.
  1672. - several bugfixes
  1673. INET-20080709
  1674. -------------
  1675. Internal snapshot, for omnetpp-4.0b3.
  1676. - interface table and routing table are now accessed via the C++ interfaces
  1677. IInterfaceTable and IRoutingTable. This is done to reduce interdependencies
  1678. among modules; more specifically, to allow users implement their own
  1679. InterfaceTables and RoutingTables and plug them into INET simulations,
  1680. without any change to the base INET.
  1681. - PPP and EtherMAC2: performance: don't fire tx begin/end notifications if
  1682. no one is listening; remember output gate pointer instead of looking it up
  1683. by name for each send
  1684. - UDPEchoApp: messageLength parameter now understood in bytes not bits
  1685. - RoutingTable: implemented routing cache and other optimizations
  1686. INET-20080630
  1687. -------------
  1688. Internal snapshot, for omnetpp-4.0b2.
  1689. - to enable and encourage extending INET via subclassing (as opposed to
  1690. patching), nearly all member functions made virtual (except in data classes
  1691. like IPAddress), and also, private sections in most classes were changed to
  1692. protected.
  1693. - some refactoring on TCP, UDP and IP, to allow subclassing of TCP, UDP and IP
  1694. packets: packets are now created via factory methods that can be overridden
  1695. if needed
  1696. - AbstractQueue (base class for IP and other modules) made more efficient: now it
  1697. doesn't schedule a timer if (when) serviceTime is zero.
  1698. - IPAddress class made more efficient [code from Ingmar Baumgart, OverSim]
  1699. - parsim: added pack/unpack functions for IPAddress, IPv6Address, IPvXAddress
  1700. - InterfaceTable: added deleteInterface(). This also causes RoutingTable to
  1701. drop routes that correspond to the deleted interface.
  1702. - RoutingTable: wrapped naked data members of IPRoute into getters/setters;
  1703. enforce by returning "const" pointers that routes already added cannot be
  1704. changed any more (one must delete and re-add it)
  1705. - InterfaceTable: created a getInterfaceById() method, NOT to be
  1706. confused with getInterface(pos)! Ids are stable after deletions,
  1707. unlike 0..getNumInterfaces()-1 indices, and reliable/safe unlike
  1708. InterfaceEntry* pointers
  1709. - InterfaceTable and RoutingTable now fire proper notifications on changes:
  1710. NF_INTERFACE_CREATED, NF_INTERFACE_DELETED, NF_INTERFACE_STATE_CHANGED,
  1711. NF_INTERFACE_CONFIG_CHANGED; NF_IPv4_ROUTE_ADDED, NF_IPv4_ROUTE_DELETED,
  1712. NF_IPv6_ROUTE_ADDED, NF_IPv6_ROUTE_DELETED, etc.
  1713. - NotificationBoard: added hasSubscribers(int category) method, to allow for
  1714. optimizing out firing change notifications if there's no one listening.
  1715. INET-20080624
  1716. -------------
  1717. Internal snapshot, for omnetpp-4.0b2.
  1718. - updated for OMNeT++ 4.0b2
  1719. - extensive renaming: added "get" verb to getter methods in most classes;
  1720. also eliminated @addGetVerb(true) from message classes
  1721. - revived the RTP model: starting from Ahmed Ayadi's patch, migrated the code
  1722. to OMNeT++ 4.0, and started some refactoring (started introducing .msg files
  1723. for handcoded message classes; not yet finished)
  1724. INET-20080606
  1725. -------------
  1726. Internal snapshot, for omnetpp-4.0b1.
  1727. - directory structure reorganized
  1728. - converted to OMNeT++ 4.0
  1729. - some refactoring (parameter/gate name changes, etc)
  1730. - IP/IPv6: do not schedule a timer if processing time is zero (change made
  1731. in base/AbstractQueue)
  1732. - FlatNetworkConfigurator: use @node() property to determine which modules are
  1733. network nodes (removed moduleTypes, nonIPModuleTypes parameters)
  1734. INET-20061020
  1735. -------------
  1736. - new example network: Examples/Ethernet/ARPTest (old ARPTest renamed)
  1737. - bugfixes: AbstractRadio (Dave Symonds); Ieee80211 (also reported by Dave)
  1738. INET-20060912a
  1739. --------------
  1740. - improvements on the wireless infrastructure: support for multiple channels
  1741. and channel switching by NICs; account for finite radio wave propagation speed
  1742. - added new 802.11 model which also supports infrastructure mode; see
  1743. NetworkInterfaces/Ieee80211. Even for ad-hoc mode, Ieee80211Mac is recommended
  1744. over the older Mac80211 from MF.
  1745. - added Ieee80211Radio which supersedes SnrEval80211 and Decider80211.
  1746. - added EtherDuplexMAC, a simplified Ethernet implementation for full duplex
  1747. point-to-point operation mode when CSMA/CD is not in use.
  1748. - makefiles within Examples/ have been largely unnecessary because all
  1749. simulations just invoke bin/INET. Realizing these makefiles have been
  1750. confusing to many people, they got removed now. The target to generate
  1751. them is still present in makemakefiles in case someone needs it.
  1752. - several other fixes
  1753. INET-20060330
  1754. -------------
  1755. - checked in the new MPLS, RSVP-TE and LDP models, written/rewritten by
  1756. Vojta Janota
  1757. - new model: Network/Quagga. This is port of the Quagga routing daemon to the
  1758. INET Framework. Currently provides RIP and OSPFv2 routing. Quagga itself is
  1759. a fork of Zebra. (Ported to INET by Vojta Janota)
  1760. - new model: Network/OSPFv2. This is a new OSPF implementation.
  1761. (author: Andras Babos)
  1762. - UDP rewritten: similarly to TCP, dispatching is now done inside UDP, and
  1763. apps now identify sockets with a sockId; implemented ephemeral port reuse
  1764. - UDPSocket class added to facilitate talking to the UDP model from apps;
  1765. analogous to TCPSocket (thanks to Michael Tuexen and Vojta Janota for
  1766. feedback)
  1767. - new snapshot of the IPv6 module (by Wei Yang Ng)
  1768. - added ability to write nam traces (Util/NAMTraceWriter, World/NAMTrace);
  1769. feature originally implemented by Vojta Janota (and refactored by Andras,
  1770. so bugs are very likely mine)
  1771. - implemented ThruputMeteringChannel which can display #packets, pk/sec etc
  1772. on the links; and ChannelInstaller as a temporary solution to install
  1773. ThruputMeteringChannel instead of the built-in BasicChannel class.
  1774. - updated module class ctors/dtors for OMNeT++ 3.2; changed msg->length()/8 to
  1775. msg->byteLength() and msg->setLength(8*bytes) to msg->setByteLength(bytes),
  1776. etc.
  1777. - TCP: Reno bugs fixed (reported by Pascal Rousseau); TCPMessageBasedSendQueue
  1778. seqNo bug fixed (Adam Hudson); implemented reuse of ephemeral ports;
  1779. fixed incorrect behaviour when ACK of SYN carries data (reported by Joachim
  1780. Meichle); fixed minor issue that when the user issued CLOSE, transition to
  1781. FIN_WAIT_1 was done immediately and not deferred until all data are sent.
  1782. - added Applications/TCPApp/TCPSpoof
  1783. - hosts have now the same queues as routers (reported by Michael Tuexen)
  1784. - ev replaced with EV in every module (speed increase in Express mode)
  1785. - NetworkLayer(6): gates towards interfaces renamed to ifOut[]/ifIn[]
  1786. - FlatNetworkConfigurator internals refactored
  1787. - added another network configurator, NetworkConfigurator
  1788. - RoutingTable: routerId selection moved from stage 1 to stage 3 (you may
  1789. need to revise your code if it depends on routerId)
  1790. INET-20050922
  1791. -------------
  1792. - patched for OMNeT++ 3.2:
  1793. - added '=NULL' default value to all args of hand-code module constructors
  1794. (2 or 3 places)
  1795. - RSVPPacket.h: dup() return type has to be cPolymorphic with OMNeT++ 3.2;
  1796. fixed it using '#if OMNETPP_VERSION<0x0302...#else...#endif'
  1797. Note: THIS IS THE ONLY RELEASE WHICH IS COMPATIBLE WITH BOTH 3.1 AND 3.2
  1798. - UDP dispatchByPort bug fixed; further smaller fixes
  1799. - IPv6 updated (still unfinished)
  1800. - NOT YET FIXED:
  1801. - TCP bug http://www.omnetpp.org/listarchive/msg05687.php
  1802. - incorrect handling of host queues (Michael Tuexen)
  1803. INET-20050720
  1804. -------------
  1805. - module types renamed for consistency: PPPModule -> PPP, TCPMain -> TCP,
  1806. UDPProcessing -> UDP
  1807. - C++ methods renamed: isNull() -> isUnspecified() in IPAddress, IPv6Addres,
  1808. IPvXAddress
  1809. - created two subdirs under Transport/TCP: flavours and queues, and moved
  1810. the appropriate cc/h files there. The structure of the TCP model should
  1811. now be much more obvious to readers. Also added READMEs explaining things.
  1812. - TCP fixes: raise an error (~EADDRINUSE) on attempt to create more than one
  1813. connections to listen on the same port
  1814. - implemented REDQueue
  1815. - beginnings of a "Getting started with TCP" doc
  1816. INET-20050705
  1817. -------------
  1818. - TCP improvements: separate congestion control behaviour classes
  1819. TCPTahoe, TCPReno and TCPNoCongestionControl provided, for teaching
  1820. purposes (their code is very short, to the point, and extensively
  1821. commented).
  1822. - TCP: fixed bogus RTT calculation and other other bugs; also, sequence
  1823. numbers are now recorded into omnetpp.vec, so with Plove one can create
  1824. sequence number plots like Sally Floyd's [thanks to Ahmet Sekercioglu
  1825. for help!]
  1826. - still TCP: fixed the bug which caused closing of a connection to be reported
  1827. 2MSL (240s) later to the user.
  1828. - Added support for drop-tail router queues, and queues with QoS support
  1829. based on DS Code Point; RED in preparation (see Network/Queue)
  1830. - Added wireless and mobility support (based on Mobility Framework code),
  1831. including 802.11b ad-hoc mode MAC, and several new mobility models
  1832. (also new to MF). Supports mobility traces from BonnMotion and ANSim.
  1833. - Contract directories introduced: Transport/Contract, Network/Contract
  1834. and NetworkInterfaces/Contract. These directories contain a minimal set
  1835. of classes necessary for using one layer's functionality from higher layers.
  1836. - Added notification mechanism: modules can now notify each other about
  1837. "events" such as routing table changes, interface status changes (up/down),
  1838. interface configuration changes, wireless handovers, changes in the state
  1839. of the wireless channel, mobile node position changes, etc. Notification
  1840. works via the NotificationBoard which replaces the Blackboard.
  1841. - InterfaceTable introduced: it stores all interface configuration that was
  1842. previously stored in RoutingTable. Per-interface data structure was also
  1843. split into protocol independent (InterfaceEntry) and protocol dependent
  1844. (IPv4InterfaceData, IPv6InterfaceData) parts.
  1845. - ScenarioManager introduced (experimental, in World/ subdirectory):
  1846. it addresses the need for simulating scenarios like "what if this cable
  1847. breaks at t=20s", or "what if traffic intensity grows at t=100s".
  1848. Scenario is described in an XML file.
  1849. - Ping and VideoStream applications added (from IPv6SuiteWithINET)
  1850. - ARP got moved up from L2 to L3; this is to prepare for IPv6 support (IPv6
  1851. doesn't need ARP, so we can no longer have it as part of the network
  1852. interfaces)
  1853. - prepared for IPv6: application layer, transport layer and IPv6 contract
  1854. taken over from IPv6SuiteWithINET-20050502
  1855. - work in progress: from-scratch IPv6 implementation by Wei Yang Ng (Monash
  1856. University) and Andras Varga
  1857. - added INET_API definitions to classes, so that one can build a DLL that can
  1858. be loaded dynamically into INET.exe (hint: compile DLL code *without*
  1859. /DBUILDING_INET, and link them with INET.lib! then add [General]/load-libs=
  1860. to omnetpp.ini.)
  1861. - Network/IPv4d subdirectory finally thrown out. It was a bad idea to
  1862. implement IP with a dozen small modules in the first place.
  1863. - added files called !WORK_IN_PROGRESS! with some explanations to
  1864. directories which contain unfinished simulation models.
  1865. INET-20050404 released
  1866. ----------------------
  1867. - Updated to omnetpp-3.1.
  1868. - patches from Michael Tuexen
  1869. INET-20050102
  1870. -------------
  1871. - updated to omnetpp-3.0
  1872. INET-20041007
  1873. -------------
  1874. - package renamed to INET Framework
  1875. IPSuite-20041007
  1876. ----------------
  1877. - practically a complete rewrite of IPSuite took place 03/2004 through
  1878. 10/2004. See change log at http://ctieware.eng.monash.edu.au/twiki/
  1879. bin/view/Simulation/IPSuiteLogOfChanges
  1880. Preparations for rewriting IPSuite, 09/2003-03/2004
  1881. ---------------------------------------------------
  1882. 2004-02-04 Andras Varga
  1883. * got it compiled with omnetpp-3.0pre1. changes:
  1884. - added #include <iostream>, using std::ostream at a couple of places
  1885. - deprecated receiveOn(), receiveNewOn() no longer exists, replaced by:
  1886. msg = receive();
  1887. ASSERT(dfmsg->arrivedOn("fromEnqHook")); // FIXME revise this
  1888. * removed ProcessorManager altogether
  1889. 2003-09-19 Andras Varga
  1890. * added the MPLS/LDP/RSVP-TE models created by Xuan Thang Nguyen
  1891. (Xuan.T.Nguyen@uts.edu.au) at UTS (University of Technology, Sydney).
  1892. See http://charlie.it.uts.edu.au/~tkaphan/xtn/capstone/
  1893. * did IPsuite modifications necessary fo MPLS. Modularity is preserved:
  1894. it is still possible to build IPSuite without the MPLS models.
  1895. 2003-09-18 Andras Varga
  1896. * merged patches for compiling with MSVC.
  1897. * module descriptions (comments) added to/rearranged in all NED files
  1898. for documentation generation with new opp_neddoc.
  1899. * DIRECTORY STRUCTURE WAS REARRANGED along the lines of the OSI layers,
  1900. and also to make it consistent with the IPv6Suite. Hopefully every file
  1901. is now where one would expect to find it.
  1902. * added makemake.cmd for generating Makefile.vc's (using opp_nmakemake)
  1903. for building with MSVC, and makemake for generating Unix makefiles
  1904. * lots of minor fixes to make the code compile with MSVC.
  1905. Note: for compatibility with MSVC6.0,
  1906. 1. return type of dup() should ALWAYS be cObject* (and cannot be the
  1907. actual class name)
  1908. 2. class variables cannot be initialized (even const or
  1909. static const ones) within the class declaration.
  1910. * updated for recent OMNeT++ versions: added ",row" to vector module
  1911. display strings; removed className() methods, etc.
  1912. * FIXME: KIDSRouter was missing from the original IPSuite! KIDSNw1
  1913. didn't compile. I temporarily substituted a copy of NextHopRouter.
  1914. 2003-09-17 Andras Varga
  1915. * taken ipsuite-20021124-src.tgz and started improving it.
  1916. IPSuite's change log, 2000-2001
  1917. -------------------------------
  1918. Before Andras Varga took over the development in 2003, IPSuite was
  1919. created and developed at University of Karlsruhe, Germany.
  1920. 2001-12-10 Ulrich Kaage <kaage@int.uni-karlsruhe.de>
  1921. * Global changes for OMNeT++ 2.2 conformance:
  1922. copy constructor -> const argument
  1923. virtual long length(const ) -> virtual long length(const) const
  1924. virtual int numInitStages() -> virtual int numInitStages () const
  1925. virtual char *className() -> virtual const char* className() const
  1926. virtual cObject *dup() -> virtual cObject *dup() const
  1927. cObject& operator=(cObject& o) -> cObject& operator=(const cObject& o)
  1928. 2001-08-31 Ulrich Kaage <kaage@int.uni-karlsruhe.de>
  1929. * CVS-Tag da-kussaether: Work on TCP by Rolf Kussaether;
  1930. implementation of TCP flavours Reno (fast recovery) and New Reno.
  1931. 2001-03-19 Verena Kahmann <kahmann@telematik.informatik.uni-karlsruhe.de>
  1932. * deleted all queues and behaviors except FIFO* and the basic behaviors.
  1933. Maybe we have to apply some extra cleaning still.
  1934. 2000-12-19 Ulrich Kaage <kaage@int.uni-karlsruhe.de>
  1935. * recent (standalone) TCP model is merged into the ip-suite. The
  1936. simple test network is now located in ./Networks/TCPTester
  1937. 2000-12-13 Ulrich Kaage <kaage@int.uni-karlsruhe.de>
  1938. * makeipsuite: replaced by top level Makefile
  1939. * rundemo: front end for launching all available simulations
  1940. * Makefile: Top level makefile to create Makefiles from Makefile.in
  1941. in all subdirectories
  1942. * removed mmake in subdirectories and replaced them by Makefile.in
  1943. 2000-11-22 Ulrich Kaage <kaage@int.uni-karlsruhe.de>
  1944. * CREDITS: Put your name here if you have contributed to the
  1945. OMNeT++ Internet Protocol Suite