forked from zarrar/xMIPv6
-
Notifications
You must be signed in to change notification settings - Fork 1
/
WHATSNEW
442 lines (301 loc) · 16.5 KB
/
WHATSNEW
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
Recent changes in the INET Framework
====================================
- added support for Sam Jensen's Network Simulation Cradle,
http://www.wand.net.nz/~stj2/nsc/, which makes real-world TCP stacks
available in simulations. Currently NSC supports the FreeBSD, OpenBSD,
lwIP and Linux stacks. Our TCP_NSC module (transport/tcp_nsc) is
a drop-in replacement for the normal TCP module (transport/tcp),
and can be activated with a single parameter setting in StandardHost.
See src/transport/tcp_nsc, 3rdparty/README, and examples/inet/simpletest.
- added TCP SACK and New Reno implementation by Thomas Reschka.
The original TCP version is still available as TCP_old.
See src/transport/tcp/ChangeLog for details.
INET-20090325
-------------
- tagged version for OMNeT++ 4.0 final
- reworked build system to create shared library by default
- added SCTP from Michael Tuexen and Irene Ruengeler
INET-20080920
-------------
Internal snapshot, for omnetpp-4.0b6.
- performance optimization in all queue modules: remember output gate pointer
instead of looking up gate by name for each send()
- Ieee80211AgentSTA.cc: randomize the start time of the scanning process.
(Randomizing the time of sending the first beacon in Ieee80211MgmtAP.cc
was already done earlier.)
- IP: set TTL to 1 on new datagram if the destination address is link local
multicast, to prevent broadcasting to non-neighbouring routers.
- several bugfixes
INET-20080709
-------------
Internal snapshot, for omnetpp-4.0b3.
- interface table and routing table are now accessed via the C++ interfaces
IInterfaceTable and IRoutingTable. This is done to reduce interdependencies
among modules; more specifically, to allow users implement their own
InterfaceTables and RoutingTables and plug them into INET simulations,
without any change to the base INET.
- PPP and EtherMAC2: performance: don't fire tx begin/end notifications if
no one is listening; remember output gate pointer instead of looking it up
by name for each send
- UDPEchoApp: messageLength parameter now understood in bytes not bits
- RoutingTable: implemented routing cache and other optimizations
INET-20080630
-------------
Internal snapshot, for omnetpp-4.0b2.
- to enable and encourage extending INET via subclassing (as opposed to
patching), nearly all member functions made virtual (except in data classes
like IPAddress), and also, private sections in most classes were changed to
protected.
- some refactoring on TCP, UDP and IP, to allow subclassing of TCP, UDP and IP
packets: packets are now created via factory methods that can be overridden
if needed
- AbstractQueue (base class for IP and other modules) made more efficient: now it
doesn't schedule a timer if (when) serviceTime is zero.
- IPAddress class made more efficient [code from Ingmar Baumgart, OverSim]
- parsim: added pack/unpack functions for IPAddress, IPv6Address, IPvXAddress
- InterfaceTable: added deleteInterface(). This also causes RoutingTable to
drop routes that correspond to the deleted interface.
- RoutingTable: wrapped naked data members of IPRoute into getters/setters;
enforce by returning "const" pointers that routes already added cannot be
changed any more (one must delete and re-add it)
- InterfaceTable: created a getInterfaceById() method, NOT to be
confused with getInterface(pos)! Ids are stable after deletions,
unlike 0..getNumInterfaces()-1 indices, and reliable/safe unlike
InterfaceEntry* pointers
- InterfaceTable and RoutingTable now fire proper notifications on changes:
NF_INTERFACE_CREATED, NF_INTERFACE_DELETED, NF_INTERFACE_STATE_CHANGED,
NF_INTERFACE_CONFIG_CHANGED; NF_IPv4_ROUTE_ADDED, NF_IPv4_ROUTE_DELETED,
NF_IPv6_ROUTE_ADDED, NF_IPv6_ROUTE_DELETED, etc.
- NotificationBoard: added hasSubscribers(int category) method, to allow for
optimizing out firing change notifications if there's no one listening.
INET-20080624
-------------
Internal snapshot, for omnetpp-4.0b2.
- updated for OMNeT++ 4.0b2
- extensive renaming: added "get" verb to getter methods in most classes;
also eliminated @addGetVerb(true) from message classes
- revived the RTP model: starting from Ahmed Ayadi's patch, migrated the code
to OMNeT++ 4.0, and started some refactoring (started introducing .msg files
for handcoded message classes; not yet finished)
INET-20080606
-------------
Internal snapshot, for omnetpp-4.0b1.
- directory structure reorganized
- converted to OMNeT++ 4.0
- some refactoring (parameter/gate name changes, etc)
- IP/IPv6: do not schedule a timer if processing time is zero (change made
in base/AbstractQueue)
- FlatNetworkConfigurator: use @node() property to determine which modules are
network nodes (removed moduleTypes, nonIPModuleTypes parameters)
INET-20061020
-------------
- new example network: Examples/Ethernet/ARPTest (old ARPTest renamed)
- bugfixes: AbstractRadio (Dave Symonds); Ieee80211 (also reported by Dave)
INET-20060912a
--------------
- improvements on the wireless infrastructure: support for multiple channels
and channel switching by NICs; account for finite radio wave propagation speed
- added new 802.11 model which also supports infrastructure mode; see
NetworkInterfaces/Ieee80211. Even for ad-hoc mode, Ieee80211Mac is recommended
over the older Mac80211 from MF.
- added Ieee80211Radio which supersedes SnrEval80211 and Decider80211.
- added EtherDuplexMAC, a simplified Ethernet implementation for full duplex
point-to-point operation mode when CSMA/CD is not in use.
- makefiles within Examples/ have been largely unnecessary because all
simulations just invoke bin/INET. Realizing these makefiles have been
confusing to many people, they got removed now. The target to generate
them is still present in makemakefiles in case someone needs it.
- several other fixes
INET-20060330
-------------
- checked in the new MPLS, RSVP-TE and LDP models, written/rewritten by
Vojta Janota
- new model: Network/Quagga. This is port of the Quagga routing daemon to the
INET Framework. Currently provides RIP and OSPFv2 routing. Quagga itself is
a fork of Zebra. (Ported to INET by Vojta Janota)
- new model: Network/OSPFv2. This is a new OSPF implementation.
(author: Andras Babos)
- UDP rewritten: similarly to TCP, dispatching is now done inside UDP, and
apps now identify sockets with a sockId; implemented ephemeral port reuse
- UDPSocket class added to facilitate talking to the UDP model from apps;
analogous to TCPSocket (thanks to Michael Tuexen and Vojta Janota for
feedback)
- new snapshot of the IPv6 module (by Wei Yang Ng)
- added ability to write nam traces (Util/NAMTraceWriter, World/NAMTrace);
feature originally implemented by Vojta Janota (and refactored by Andras,
so bugs are very likely mine)
- implemented ThruputMeteringChannel which can display #packets, pk/sec etc
on the links; and ChannelInstaller as a temporary solution to install
ThruputMeteringChannel instead of the built-in BasicChannel class.
- updated module class ctors/dtors for OMNeT++ 3.2; changed msg->length()/8 to
msg->byteLength() and msg->setLength(8*bytes) to msg->setByteLength(bytes),
etc.
- TCP: Reno bugs fixed (reported by Pascal Rousseau); TCPMessageBasedSendQueue
seqNo bug fixed (Adam Hudson); implemented reuse of ephemeral ports;
fixed incorrect behaviour when ACK of SYN carries data (reported by Joachim
Meichle); fixed minor issue that when the user issued CLOSE, transition to
FIN_WAIT_1 was done immediately and not deferred until all data are sent.
- added Applications/TCPApp/TCPSpoof
- hosts have now the same queues as routers (reported by Michael Tuexen)
- ev replaced with EV in every module (speed increase in Express mode)
- NetworkLayer(6): gates towards interfaces renamed to ifOut[]/ifIn[]
- FlatNetworkConfigurator internals refactored
- added another network configurator, NetworkConfigurator
- RoutingTable: routerId selection moved from stage 1 to stage 3 (you may
need to revise your code if it depends on routerId)
INET-20050922
-------------
- patched for OMNeT++ 3.2:
- added '=NULL' default value to all args of hand-code module constructors
(2 or 3 places)
- RSVPPacket.h: dup() return type has to be cPolymorphic with OMNeT++ 3.2;
fixed it using '#if OMNETPP_VERSION<0x0302...#else...#endif'
Note: THIS IS THE ONLY RELEASE WHICH IS COMPATIBLE WITH BOTH 3.1 AND 3.2
- UDP dispatchByPort bug fixed; further smaller fixes
- IPv6 updated (still unfinished)
- NOT YET FIXED:
- TCP bug http://www.omnetpp.org/listarchive/msg05687.php
- incorrect handling of host queues (Michael Tuexen)
INET-20050720
-------------
- module types renamed for consistency: PPPModule -> PPP, TCPMain -> TCP,
UDPProcessing -> UDP
- C++ methods renamed: isNull() -> isUnspecified() in IPAddress, IPv6Addres,
IPvXAddress
- created two subdirs under Transport/TCP: flavours and queues, and moved
the appropriate cc/h files there. The structure of the TCP model should
now be much more obvious to readers. Also added READMEs explaining things.
- TCP fixes: raise an error (~EADDRINUSE) on attempt to create more than one
connections to listen on the same port
- implemented REDQueue
- beginnings of a "Getting started with TCP" doc
INET-20050705
-------------
- TCP improvements: separate congestion control behaviour classes
TCPTahoe, TCPReno and TCPNoCongestionControl provided, for teaching
purposes (their code is very short, to the point, and extensively
commented).
- TCP: fixed bogus RTT calculation and other other bugs; also, sequence
numbers are now recorded into omnetpp.vec, so with Plove one can create
sequence number plots like Sally Floyd's [thanks to Ahmet Sekercioglu
for help!]
- still TCP: fixed the bug which caused closing of a connection to be reported
2MSL (240s) later to the user.
- Added support for drop-tail router queues, and queues with QoS support
based on DS Code Point; RED in preparation (see Network/Queue)
- Added wireless and mobility support (based on Mobility Framework code),
including 802.11b ad-hoc mode MAC, and several new mobility models
(also new to MF). Supports mobility traces from BonnMotion and ANSim.
- Contract directories introduced: Transport/Contract, Network/Contract
and NetworkInterfaces/Contract. These directories contain a minimal set
of classes necessary for using one layer's functionality from higher layers.
- Added notification mechanism: modules can now notify each other about
"events" such as routing table changes, interface status changes (up/down),
interface configuration changes, wireless handovers, changes in the state
of the wireless channel, mobile node position changes, etc. Notification
works via the NotificationBoard which replaces the Blackboard.
- InterfaceTable introduced: it stores all interface configuration that was
previously stored in RoutingTable. Per-interface data structure was also
split into protocol independent (InterfaceEntry) and protocol dependent
(IPv4InterfaceData, IPv6InterfaceData) parts.
- ScenarioManager introduced (experimental, in World/ subdirectory):
it addresses the need for simulating scenarios like "what if this cable
breaks at t=20s", or "what if traffic intensity grows at t=100s".
Scenario is described in an XML file.
- Ping and VideoStream applications added (from IPv6SuiteWithINET)
- ARP got moved up from L2 to L3; this is to prepare for IPv6 support (IPv6
doesn't need ARP, so we can no longer have it as part of the network
interfaces)
- prepared for IPv6: application layer, transport layer and IPv6 contract
taken over from IPv6SuiteWithINET-20050502
- work in progress: from-scratch IPv6 implementation by Wei Yang Ng (Monash
University) and Andras Varga
- added INET_API definitions to classes, so that one can build a DLL that can
be loaded dynamically into INET.exe (hint: compile DLL code *without*
/DBUILDING_INET, and link them with INET.lib! then add [General]/load-libs=
to omnetpp.ini.)
- Network/IPv4d subdirectory finally thrown out. It was a bad idea to
implement IP with a dozen small modules in the first place.
- added files called !WORK_IN_PROGRESS! with some explanations to
directories which contain unfinished simulation models.
INET-20050404 released
----------------------
- Updated to omnetpp-3.1.
- patches from Michael Tuexen
INET-20050102
-------------
- updated to omnetpp-3.0
INET-20041007
-------------
- package renamed to INET Framework
IPSuite-20041007
----------------
- practically a complete rewrite of IPSuite took place 03/2004 through
10/2004. See change log at http://ctieware.eng.monash.edu.au/twiki/
bin/view/Simulation/IPSuiteLogOfChanges
Preparations for rewriting IPSuite, 09/2003-03/2004
---------------------------------------------------
2004-02-04 Andras Varga
* got it compiled with omnetpp-3.0pre1. changes:
- added #include <iostream>, using std::ostream at a couple of places
- deprecated receiveOn(), receiveNewOn() no longer exists, replaced by:
msg = receive();
ASSERT(dfmsg->arrivedOn("fromEnqHook")); // FIXME revise this
* removed ProcessorManager altogether
2003-09-19 Andras Varga
* added the MPLS/LDP/RSVP-TE models created by Xuan Thang Nguyen
(Xuan.T.Nguyen@uts.edu.au) at UTS (University of Technology, Sydney).
See http://charlie.it.uts.edu.au/~tkaphan/xtn/capstone/
* did IPsuite modifications necessary fo MPLS. Modularity is preserved:
it is still possible to build IPSuite without the MPLS models.
2003-09-18 Andras Varga
* merged patches for compiling with MSVC.
* module descriptions (comments) added to/rearranged in all NED files
for documentation generation with new opp_neddoc.
* DIRECTORY STRUCTURE WAS REARRANGED along the lines of the OSI layers,
and also to make it consistent with the IPv6Suite. Hopefully every file
is now where one would expect to find it.
* added makemake.cmd for generating Makefile.vc's (using opp_nmakemake)
for building with MSVC, and makemake for generating Unix makefiles
* lots of minor fixes to make the code compile with MSVC.
Note: for compatibility with MSVC6.0,
1. return type of dup() should ALWAYS be cObject* (and cannot be the
actual class name)
2. class variables cannot be initialized (even const or
static const ones) within the class declaration.
* updated for recent OMNeT++ versions: added ",row" to vector module
display strings; removed className() methods, etc.
* FIXME: KIDSRouter was missing from the original IPSuite! KIDSNw1
didn't compile. I temporarily substituted a copy of NextHopRouter.
2003-09-17 Andras Varga
* taken ipsuite-20021124-src.tgz and started improving it.
IPSuite's change log, 2000-2001
-------------------------------
Before Andras Varga took over the development in 2003, IPSuite was
created and developed at University of Karlsruhe, Germany.
2001-12-10 Ulrich Kaage <kaage@int.uni-karlsruhe.de>
* Global changes for OMNeT++ 2.2 conformance:
copy constructor -> const argument
virtual long length(const ) -> virtual long length(const) const
virtual int numInitStages() -> virtual int numInitStages () const
virtual char *className() -> virtual const char* className() const
virtual cObject *dup() -> virtual cObject *dup() const
cObject& operator=(cObject& o) -> cObject& operator=(const cObject& o)
2001-08-31 Ulrich Kaage <kaage@int.uni-karlsruhe.de>
* CVS-Tag da-kussaether: Work on TCP by Rolf Kussaether;
implementation of TCP flavours Reno (fast recovery) and New Reno.
2001-03-19 Verena Kahmann <kahmann@telematik.informatik.uni-karlsruhe.de>
* deleted all queues and behaviors except FIFO* and the basic behaviors.
Maybe we have to apply some extra cleaning still.
2000-12-19 Ulrich Kaage <kaage@int.uni-karlsruhe.de>
* recent (standalone) TCP model is merged into the ip-suite. The
simple test network is now located in ./Networks/TCPTester
2000-12-13 Ulrich Kaage <kaage@int.uni-karlsruhe.de>
* makeipsuite: replaced by top level Makefile
* rundemo: front end for launching all available simulations
* Makefile: Top level makefile to create Makefiles from Makefile.in
in all subdirectories
* removed mmake in subdirectories and replaced them by Makefile.in
2000-11-22 Ulrich Kaage <kaage@int.uni-karlsruhe.de>
* CREDITS: Put your name here if you have contributed to the
OMNeT++ Internet Protocol Suite