author | Craig Dowell <craigdo@ee.washington.edu> |
Wed, 03 Sep 2008 11:38:18 -0700 | |
changeset 3593 | dfd634417b8d |
parent 3551 | fbf628eb3ca6 |
child 3645 | 5a0182408867 |
permissions | -rw-r--r-- |
3505 | 1 |
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> |
2 |
<html> |
|
3 |
<head> |
|
4 |
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
|
5 |
<title>ns-3 Change Log</title> |
|
6 |
</head> |
|
7 |
<body> |
|
8 |
||
9 |
<h1> |
|
10 |
ns-3: API and model change history</h1> |
|
11 |
<!-- |
|
12 |
This ChangeLog is updated in the reverse order |
|
13 |
with the most recent changes coming first. Date format: DD-MM-YYYY |
|
14 |
--> |
|
15 |
<p> |
|
16 |
ns-3 is an evolving system and there will be API or behavioral changes |
|
17 |
from time to time. Users who try to use scripts or models across |
|
18 |
versions of ns-3 may encounter problems at compile time, run time, or |
|
19 |
may see the simulation output change. </p> |
|
20 |
<p> |
|
21 |
We have adopted the development policy that we are going to try to ease |
|
22 |
the impact of these changes on users by documenting these changes in a |
|
23 |
single place (this file), and not by providing a temporary or permanent |
|
24 |
backward-compatibility software layer. </p> |
|
25 |
<p> |
|
26 |
The goal is that users who encounter a problem when trying to use older |
|
27 |
code with newer code should be able to consult this file to find |
|
28 |
guidance as to how to fix the problem. For instance, if a method name |
|
29 |
or signature has changed, it should be stated what the new replacement |
|
30 |
name is. </p> |
|
31 |
<p> |
|
32 |
Note that users who upgrade the simulator across versions, or who work |
|
33 |
directly out of the development tree, may find that simulation output |
|
34 |
changes even when the compilation doesn't break, such as when a |
|
35 |
simulator default value is changed. Therefore, it is good practice for |
|
36 |
_anyone_ using code across multiple ns-3 releases to consult this file, |
|
37 |
as well as the RELEASE_NOTES, to understand what has changed over time. |
|
38 |
</p> |
|
39 |
<p> |
|
40 |
This file is a best-effort approach to solving this issue; we will do |
|
41 |
our best but can guarantee that there will be things that fall through |
|
42 |
the cracks, unfortunately. If you, as a user, can suggest improvements |
|
43 |
to this file based on your experience, please contribute a patch or drop |
|
44 |
us a note on ns-developers mailing list. </p> |
|
45 |
||
46 |
<hr> |
|
47 |
<h1>changes from ns-3.1 to ns-3.2</h1> |
|
3593
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
48 |
|
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
49 |
<h2>new API:</h2> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
50 |
|
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
51 |
<li>26-08-2008; changeset |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
52 |
<a href="http://code.nsnam.org/ns-3-dev/rev/5aa65b1ea001">5aa65b1ea001</a></li> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
53 |
<ul> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
54 |
<li> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
55 |
Add multithreaded and real-time simulator implementation. Allows for emulated |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
56 |
net devices running in threads other than the main simulation thread to schedule |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
57 |
events. Allows for pacing the simulation clock at 1x real-time. |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
58 |
</li> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
59 |
</ul> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
60 |
</li> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
61 |
|
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
62 |
|
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
63 |
<li>26-08-2008; changeset |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
64 |
<a href="http://code.nsnam.org/ns-3-dev/rev/c69779f5e51e">c69779f5e51e</a></li> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
65 |
<ul> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
66 |
<li> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
67 |
Add threading and synchronization primitives. Enabling technology for |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
68 |
multithreaded simulator implementation. |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
69 |
</li> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
70 |
</ul> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
71 |
</li> |
dfd634417b8d
update AUTHORS, CHANGES, RELEASE_NOTES for ns-3.2
Craig Dowell <craigdo@ee.washington.edu>
parents:
3551
diff
changeset
|
72 |
|
3505 | 73 |
<h2>new API in existing classes:</h2> |
74 |
||
75 |
<ul> |
|
76 |
<li>01-08-2008; changeset |
|
77 |
<a href="http://code.nsnam.org/ns-3-dev/rev/a18520551cdf">a18520551cdf</a></li> |
|
78 |
<ul> |
|
79 |
<li>class ArpCache has two new attributes: MaxRetries |
|
80 |
and a Drop trace. It also has some new public methods but these are |
|
81 |
mostly for internal use. |
|
82 |
</ul> |
|
83 |
</li> |
|
84 |
</ul> |
|
85 |
||
86 |
<h2>changes to existing API:</h2> |
|
87 |
||
88 |
<ul> |
|
3551
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
89 |
<li>25-08-2008; changeset |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
90 |
<a href="http://code.nsnam.org/ns-3-dev/rev/e5ab96db540e">e5ab96db540e</a></li> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
91 |
<ul> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
92 |
<li> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
93 |
bug 273: constify packet pointers.<br> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
94 |
The normal and the promiscuous receive callbacks of the NetDevice API |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
95 |
have been changed from: |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
96 |
<pre> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
97 |
Callback<bool,Ptr<NetDevice>,Ptr<Packet>,uint16_t,const Address &> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
98 |
Callback<bool,Ptr<NetDevice>, Ptr<Packet>, uint16_t, |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
99 |
const Address &, const Address &, enum PacketType > |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
100 |
</pre> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
101 |
to: |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
102 |
<pre> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
103 |
Callback<bool,Ptr<NetDevice>,Ptr<const Packet>,uint16_t,const Address &> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
104 |
Callback<bool,Ptr<NetDevice>, Ptr<const Packet>, uint16_t, |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
105 |
const Address &, const Address &, enum PacketType > |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
106 |
</pre> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
107 |
to avoid the kind of bugs reported in |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
108 |
<a href="http://www.nsnam.org/bugzilla/show_bug.cgi?id=273">bug 273</a>. |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
109 |
Users who implement a subclass of the NetDevice base class need to change the signature |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
110 |
of their SetReceiveCallback and SetPromiscReceiveCallback methods. |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
111 |
</li> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
112 |
</ul> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
113 |
</li> |
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
114 |
|
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
115 |
|
3508
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
116 |
<li>04-08-2008; changeset |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
117 |
<a href="http://code.nsnam.org/ns-3-dev/rev/cba7b2b80fe8">cba7b2b80fe8</a></li> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
118 |
<ul> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
119 |
<li> |
3551
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
120 |
Cleanup of MTU confusion and initialization in CsmaNetDevice<br> |
3508
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
121 |
The MTU of the CsmaNetDevice defaulted to 65535. This did not correspond with |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
122 |
the expected MTU found in Ethernet-like devices. Also there was not clear |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
123 |
documentation regarding which MTU was being set. There are two MTU here, one |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
124 |
at the MAC level and one at the PHY level. We split out the MTU setting to make |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
125 |
this more clear and set the default PHY level MTU to 1500 to be more like |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
126 |
Ethernet. The encapsulation mode defaults to LLC/SNAP which then puts the |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
127 |
MAC level MTU at 1492 by default. We allow users to now set the encapsulation |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
128 |
mode, MAC MTU and PHY MTU while keeping the three values consistent. See the |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
129 |
Doxygen of CsmaNetDevice::SetMaxPayloadLength for a detailed description of the |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
130 |
issues and solution. |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
131 |
</li> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
132 |
</ul> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
133 |
</li> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
134 |
|
3551
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
135 |
|
3505 | 136 |
<li>21-07-2008; changeset |
137 |
<a href=" |
|
138 |
http://code.nsnam.org/ns-3-dev/rev/99698bc858e8">99698bc858e8</a></li> |
|
139 |
<ul> |
|
140 |
<li> class NetDevice has added a pure virtual method that |
|
141 |
must be implemented by all subclasses: |
|
142 |
<pre> |
|
143 |
virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb) = 0; |
|
144 |
</pre> |
|
145 |
All NetDevices must support this method, and must call this callback |
|
146 |
when processing packets in the receive direction (the appropriate place |
|
147 |
to call this is device-dependent). An approach to stub this out |
|
148 |
temporarily, if you do not care about immediately enabling this |
|
149 |
functionality, would be to add this to your device: |
|
150 |
<pre> |
|
151 |
void |
|
152 |
ExampleNetDevice::SetPromiscReceiveCallback |
|
153 |
(NetDevice::PromiscReceiveCallback cb) |
|
154 |
{ |
|
155 |
NS_ASSERT_MSG (false, "No implementation yet for |
|
156 |
SetPromiscReceiveCallback"); |
|
157 |
} |
|
158 |
</pre> |
|
159 |
To implement this properly, consult the CsmaNetDevice for examples of |
|
160 |
when the m_promiscRxCallback is called. |
|
161 |
</li> |
|
162 |
</ul> |
|
163 |
</li> |
|
164 |
||
3551
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
165 |
|
3505 | 166 |
<li>03-07-2008; changeset |
167 |
<a href="http://code.nsnam.org/ns-3-dev/rev/d5f8e5fae1c6">d5f8e5fae1c6</a></li> |
|
168 |
<ul> |
|
169 |
<li> |
|
170 |
Miscellaneous cleanup of Udp Helper API, to fix bug 234 |
|
171 |
<pre> |
|
172 |
class UdpEchoServerHelper |
|
173 |
{ |
|
174 |
public: |
|
175 |
- UdpEchoServerHelper (); |
|
176 |
- void SetPort (uint16_t port); |
|
177 |
+ UdpEchoServerHelper (uint16_t port); |
|
178 |
+ |
|
179 |
+ void SetAttribute (std::string name, const AttributeValue &value); |
|
180 |
ApplicationContainer Install (NodeContainer c); |
|
181 |
||
182 |
class UdpEchoClientHelper |
|
183 |
{ |
|
184 |
public: |
|
185 |
- UdpEchoClientHelper (); |
|
186 |
+ UdpEchoClientHelper (Ipv4Address ip, uint16_t port); |
|
187 |
- void SetRemote (Ipv4Address ip, uint16_t port); |
|
188 |
- void SetAppAttribute (std::string name, const AttributeValue &value); |
|
189 |
+ void SetAttribute (std::string name, const AttributeValue &value); |
|
190 |
ApplicationContainer Install (NodeContainer c); |
|
191 |
</pre> |
|
192 |
</li> |
|
193 |
</ul> |
|
194 |
</li> |
|
195 |
||
3551
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
196 |
|
3505 | 197 |
<li>03-07-2008; changeset |
198 |
<a href=" |
|
199 |
http://code.nsnam.org/ns-3-dev/rev/3cdd9d60f7c7">3cdd9d60f7c7</a></li> |
|
200 |
<ul> |
|
201 |
<li> |
|
202 |
Rename all instances method names using "Set..Parameter" to "Set..Attribute" |
|
203 |
(bug 232) |
|
204 |
</li> |
|
205 |
<li> How to fix your code: Any use of helper API that was using a method |
|
206 |
"Set...Parameter()" should be changed to read "Set...Attribute()". e.g. |
|
207 |
<pre> |
|
208 |
- csma.SetChannelParameter ("DataRate", DataRateValue (5000000)); |
|
209 |
- csma.SetChannelParameter ("Delay", TimeValue (MilliSeconds (2))); |
|
210 |
+ csma.SetChannelAttribute ("DataRate", DataRateValue (5000000)); |
|
211 |
+ csma.SetChannelAttribute ("Delay", TimeValue (MilliSeconds (2))); |
|
212 |
</pre> |
|
213 |
</li> |
|
214 |
</ul> |
|
215 |
</li> |
|
216 |
</ul> |
|
217 |
||
218 |
<h2>changed behavior:</h2> |
|
219 |
<ul> |
|
220 |
<li> 28-07-2008; changeset |
|
221 |
<a href="http://code.nsnam.org/ns-3-dev/rev/6f68f1044df1">6f68f1044df1</a> |
|
222 |
<ul> |
|
223 |
<li> |
|
224 |
OLSR: HELLO messages hold time changed to 3*hello |
|
225 |
interval from hello interval. This is an important bug fix as |
|
226 |
hold time == refresh time was never intentional, as it leads to |
|
227 |
instability in neighbor detection. |
|
228 |
</ul> |
|
229 |
</li> |
|
230 |
</ul> |
|
3551
fbf628eb3ca6
document API change
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3508
diff
changeset
|
231 |
|
3505 | 232 |
|
233 |
</body> |
|
234 |
</html> |