author | Craig Dowell <craigdo@ee.washington.edu> |
Mon, 04 Aug 2008 17:44:53 -0700 | |
changeset 3508 | 7a3c6148c22d |
parent 3505 | 16005bad2e0b |
child 3551 | fbf628eb3ca6 |
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> |
|
48 |
<h2>new API in existing classes:</h2> |
|
49 |
||
50 |
<ul> |
|
51 |
<li>01-08-2008; changeset |
|
52 |
<a href="http://code.nsnam.org/ns-3-dev/rev/a18520551cdf">a18520551cdf</a></li> |
|
53 |
<ul> |
|
54 |
<li>class ArpCache has two new attributes: MaxRetries |
|
55 |
and a Drop trace. It also has some new public methods but these are |
|
56 |
mostly for internal use. |
|
57 |
</ul> |
|
58 |
</li> |
|
59 |
</ul> |
|
60 |
||
61 |
<h2>changes to existing API:</h2> |
|
62 |
||
63 |
<ul> |
|
3508
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
64 |
<li>04-08-2008; changeset |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
65 |
<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
|
66 |
<ul> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
67 |
<li> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
68 |
Cleanup of MTU confusion and initialization in CsmaNetDevice |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
69 |
<pre> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
70 |
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
|
71 |
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
|
72 |
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
|
73 |
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
|
74 |
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
|
75 |
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
|
76 |
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
|
77 |
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
|
78 |
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
|
79 |
issues and solution. |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
80 |
</pre> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
81 |
</li> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
82 |
</ul> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
83 |
</li> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
84 |
</ul> |
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
85 |
|
7a3c6148c22d
actually use CHANGES.html
Craig Dowell <craigdo@ee.washington.edu>
parents:
3505
diff
changeset
|
86 |
<ul> |
3505 | 87 |
<li>21-07-2008; changeset |
88 |
<a href=" |
|
89 |
http://code.nsnam.org/ns-3-dev/rev/99698bc858e8">99698bc858e8</a></li> |
|
90 |
<ul> |
|
91 |
<li> class NetDevice has added a pure virtual method that |
|
92 |
must be implemented by all subclasses: |
|
93 |
<pre> |
|
94 |
virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb) = 0; |
|
95 |
</pre> |
|
96 |
All NetDevices must support this method, and must call this callback |
|
97 |
when processing packets in the receive direction (the appropriate place |
|
98 |
to call this is device-dependent). An approach to stub this out |
|
99 |
temporarily, if you do not care about immediately enabling this |
|
100 |
functionality, would be to add this to your device: |
|
101 |
<pre> |
|
102 |
void |
|
103 |
ExampleNetDevice::SetPromiscReceiveCallback |
|
104 |
(NetDevice::PromiscReceiveCallback cb) |
|
105 |
{ |
|
106 |
NS_ASSERT_MSG (false, "No implementation yet for |
|
107 |
SetPromiscReceiveCallback"); |
|
108 |
} |
|
109 |
</pre> |
|
110 |
To implement this properly, consult the CsmaNetDevice for examples of |
|
111 |
when the m_promiscRxCallback is called. |
|
112 |
</li> |
|
113 |
</ul> |
|
114 |
</li> |
|
115 |
</ul> |
|
116 |
||
117 |
<ul> |
|
118 |
<li>03-07-2008; changeset |
|
119 |
<a href="http://code.nsnam.org/ns-3-dev/rev/d5f8e5fae1c6">d5f8e5fae1c6</a></li> |
|
120 |
<ul> |
|
121 |
<li> |
|
122 |
Miscellaneous cleanup of Udp Helper API, to fix bug 234 |
|
123 |
<pre> |
|
124 |
class UdpEchoServerHelper |
|
125 |
{ |
|
126 |
public: |
|
127 |
- UdpEchoServerHelper (); |
|
128 |
- void SetPort (uint16_t port); |
|
129 |
+ UdpEchoServerHelper (uint16_t port); |
|
130 |
+ |
|
131 |
+ void SetAttribute (std::string name, const AttributeValue &value); |
|
132 |
ApplicationContainer Install (NodeContainer c); |
|
133 |
||
134 |
class UdpEchoClientHelper |
|
135 |
{ |
|
136 |
public: |
|
137 |
- UdpEchoClientHelper (); |
|
138 |
+ UdpEchoClientHelper (Ipv4Address ip, uint16_t port); |
|
139 |
- void SetRemote (Ipv4Address ip, uint16_t port); |
|
140 |
- void SetAppAttribute (std::string name, const AttributeValue &value); |
|
141 |
+ void SetAttribute (std::string name, const AttributeValue &value); |
|
142 |
ApplicationContainer Install (NodeContainer c); |
|
143 |
</pre> |
|
144 |
</li> |
|
145 |
</ul> |
|
146 |
</li> |
|
147 |
</ul> |
|
148 |
||
149 |
<ul> |
|
150 |
<li>03-07-2008; changeset |
|
151 |
<a href=" |
|
152 |
http://code.nsnam.org/ns-3-dev/rev/3cdd9d60f7c7">3cdd9d60f7c7</a></li> |
|
153 |
<ul> |
|
154 |
<li> |
|
155 |
Rename all instances method names using "Set..Parameter" to "Set..Attribute" |
|
156 |
(bug 232) |
|
157 |
</li> |
|
158 |
<li> How to fix your code: Any use of helper API that was using a method |
|
159 |
"Set...Parameter()" should be changed to read "Set...Attribute()". e.g. |
|
160 |
<pre> |
|
161 |
- csma.SetChannelParameter ("DataRate", DataRateValue (5000000)); |
|
162 |
- csma.SetChannelParameter ("Delay", TimeValue (MilliSeconds (2))); |
|
163 |
+ csma.SetChannelAttribute ("DataRate", DataRateValue (5000000)); |
|
164 |
+ csma.SetChannelAttribute ("Delay", TimeValue (MilliSeconds (2))); |
|
165 |
</pre> |
|
166 |
</li> |
|
167 |
</ul> |
|
168 |
</li> |
|
169 |
</ul> |
|
170 |
||
171 |
<h2>changed behavior:</h2> |
|
172 |
<ul> |
|
173 |
<li> 28-07-2008; changeset |
|
174 |
<a href="http://code.nsnam.org/ns-3-dev/rev/6f68f1044df1">6f68f1044df1</a> |
|
175 |
<ul> |
|
176 |
<li> |
|
177 |
OLSR: HELLO messages hold time changed to 3*hello |
|
178 |
interval from hello interval. This is an important bug fix as |
|
179 |
hold time == refresh time was never intentional, as it leads to |
|
180 |
instability in neighbor detection. |
|
181 |
</ul> |
|
182 |
</li> |
|
183 |
</ul> |
|
184 |
</li> |
|
185 |
||
186 |
</body> |
|
187 |
</html> |